[
  {
    "path": ".clang-format",
    "content": "BasedOnStyle: LLVM\nAlignAfterOpenBracket: BlockIndent\nBinPackArguments: false\nBinPackParameters: false\nIndentWidth: 4\n"
  },
  {
    "path": ".clangd_template",
    "content": "# To set up the clangd config.\n# 1. Activate an environment with cuda installed. (probably via conda, skip if using system CUDA)\n# 2. Run:\n#       echo \"# Autogenerated, see .clangd_template\\!\" > .clangd && sed -e \"/^#/d\" -e \"s|YOUR_CUDA_PATH|$(dirname $(dirname $(which nvcc)))|\" .clangd_template >> .clangd\nCompileFlags:\n  Add:\n    - -Xclang\n    - -fcuda-allow-variadic-functions \n    - --cuda-path=YOUR_CUDA_PATH\n  Remove: \n    - --diag_suppress=*\n    - --generate-code=*\n    - -gencode=*\n    - -forward-unknown-to-host-compiler\n    - -Xcompiler\n    - -Xcudafe\n    - --use_fast_math\n    - --options-file\n    - --compiler-options\n    - --expt-relaxed-constexpr\n"
  },
  {
    "path": ".github/workflows/building.yml",
    "content": "name: Building Wheels\n\non: [workflow_dispatch]\n\njobs:\n\n  wheel:\n    runs-on: ${{ matrix.os }}\n    environment: production\n\n    strategy:\n      fail-fast: false\n      matrix:\n        # os: [windows-2019]\n        # python-version: ['3.7']\n        # torch-version: [1.11.0]\n        # cuda-version: ['cu113']\n        os: [ubuntu-20.04, windows-2019]\n        # support version based on: https://download.pytorch.org/whl/torch/\n        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']\n        torch-version: [1.11.0, 1.12.0, 1.13.0, 2.0.0]\n        cuda-version: ['cu113', 'cu115', 'cu116', 'cu117', 'cu118']\n        exclude:\n          - torch-version: 1.11.0\n            python-version: '3.11'\n          - torch-version: 1.11.0\n            cuda-version: 'cu116'\n          - torch-version: 1.11.0\n            cuda-version: 'cu117'\n          - torch-version: 1.11.0\n            cuda-version: 'cu118'\n          \n          - torch-version: 1.12.0\n            python-version: '3.11'\n          - torch-version: 1.12.0\n            cuda-version: 'cu115'\n          - torch-version: 1.12.0\n            cuda-version: 'cu117'\n          - torch-version: 1.12.0\n            cuda-version: 'cu118'\n          \n          - torch-version: 1.13.0\n            cuda-version: 'cu102'\n          - torch-version: 1.13.0\n            cuda-version: 'cu113'\n          - torch-version: 1.13.0\n            cuda-version: 'cu115'\n          - torch-version: 1.13.0\n            cuda-version: 'cu118'\n            \n          - torch-version: 2.0.0\n            python-version: '3.7'\n          - torch-version: 2.0.0\n            cuda-version: 'cu102'\n          - torch-version: 2.0.0\n            cuda-version: 'cu113'\n          - torch-version: 2.0.0\n            cuda-version: 'cu115'\n          - torch-version: 2.0.0\n            cuda-version: 'cu116'\n          \n          - os: windows-2019\n            cuda-version: 'cu102'\n          - os: windows-2019\n            torch-version: 1.13.0\n            python-version: '3.11'\n          \n          # - os: windows-2019\n          #   torch-version: 1.13.0\n          #   cuda-version: 'cu117'\n          #   python-version: '3.9'\n\n\n\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          submodules: 'recursive'\n\n      - name: Set up Python ${{ matrix.python-version }}\n        uses: actions/setup-python@v4\n        with:\n          python-version: ${{ matrix.python-version }}\n\n      - name: Upgrade pip\n        run: |\n          pip install --upgrade setuptools\n          pip install ninja\n\n      - name: Free up disk space\n        if: ${{ runner.os == 'Linux' }}\n        run: |\n          sudo rm -rf /usr/share/dotnet\n\n      - name: Install CUDA ${{ matrix.cuda-version }}\n        if: ${{ matrix.cuda-version != 'cpu' }}\n        run: |\n          bash .github/workflows/cuda/${{ runner.os }}.sh ${{ matrix.cuda-version }}\n\n      - name: Install PyTorch ${{ matrix.torch-version }}+${{ matrix.cuda-version }}\n        run: |\n          pip install torch==${{ matrix.torch-version }} --extra-index-url https://download.pytorch.org/whl/${{ matrix.cuda-version }}\n          python -c \"import torch; print('PyTorch:', torch.__version__)\"\n          python -c \"import torch; print('CUDA:', torch.version.cuda)\"\n          python -c \"import torch; print('CUDA Available:', torch.cuda.is_available())\"\n\n      - name: Patch PyTorch static constexpr on Windows\n        if: ${{ runner.os == 'Windows' }}\n        run: |\n          Torch_DIR=`python -c 'import os; import torch; print(os.path.dirname(torch.__file__))'`\n          sed -i '31,38c\\\n          TORCH_API void lazy_init_num_threads();' ${Torch_DIR}/include/ATen/Parallel.h\n        shell: bash\n\n      - name: Set version\n        if: ${{ runner.os != 'macOS' }}\n        run: |\n          VERSION=`sed -n 's/^__version__ = \"\\(.*\\)\"/\\1/p' gsplat/version.py`\n          TORCH_VERSION=`echo \"pt${{ matrix.torch-version }}\" | sed \"s/..$//\" | sed \"s/\\.//g\"`\n          CUDA_VERSION=`echo ${{ matrix.cuda-version }}`\n          echo \"New version name: $VERSION+$TORCH_VERSION$CUDA_VERSION\"\n          sed -i \"s/$VERSION/$VERSION+$TORCH_VERSION$CUDA_VERSION/\" gsplat/version.py\n        shell:\n          bash\n\n      - name: Install main package for CPU\n        if: ${{ matrix.cuda-version == 'cpu' }}\n        run: |\n          BUILD_NO_CUDA=1 pip install .\n\n      - name: Build wheel\n        run: |\n          pip install wheel\n          source .github/workflows/cuda/${{ runner.os }}-env.sh ${{ matrix.cuda-version }}\n          python setup.py bdist_wheel --dist-dir=dist\n        shell: bash  # `source` does not exist in windows powershell\n\n      - name: Test wheel\n        run: |\n          cd dist\n          ls -lah\n          pip install *.whl\n          python -c \"import gsplat; print('gsplat:', gsplat.__version__)\"\n          cd ..\n        shell: bash  # `ls -lah` does not exist in windows powershell\n"
  },
  {
    "path": ".github/workflows/core_tests.yml",
    "content": "name: Core Tests.\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\npermissions:\n  contents: read\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          submodules: 'recursive'\n          \n      - name: Set up Python 3.8.12\n        uses: actions/setup-python@v4\n        with:\n          python-version: \"3.8.12\"\n      - name: Install dependencies\n        run: |\n          pip install pytest\n          pip install torch==2.0.0 --index-url https://download.pytorch.org/whl/cpu\n          BUILD_NO_CUDA=1 pip install .\n      - name: Run Tests.\n        run: pytest tests/\n"
  },
  {
    "path": ".github/workflows/cuda/Linux-env.sh",
    "content": "#!/bin/bash\n\n# Took from https://github.com/pyg-team/pyg-lib/\n\ncase ${1} in\n  cu118)\n    export CUDA_HOME=/usr/local/cuda-11.8\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6\"\n    ;;\n  cu117)\n    export CUDA_HOME=/usr/local/cuda-11.7\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6\"\n    ;;\n  cu116)\n    export CUDA_HOME=/usr/local/cuda-11.6\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6\"\n    ;;\n  cu115)\n    export CUDA_HOME=/usr/local/cuda-11.5\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6\"\n    ;;\n  cu113)\n    export CUDA_HOME=/usr/local/cuda-11.3\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6\"\n    ;;\n  cu102)\n    export CUDA_HOME=/usr/local/cuda-10.2\n    export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}\n    export PATH=${CUDA_HOME}/bin:${PATH}\n    export TORCH_CUDA_ARCH_LIST=\"3.5;5.0+PTX;6.0;7.0;7.5\"\n    ;;\n  *)\n    ;;\nesac"
  },
  {
    "path": ".github/workflows/cuda/Linux.sh",
    "content": "#!/bin/bash\n\n# Took from https://github.com/pyg-team/pyg-lib/\n\nOS=ubuntu2004\n\ncase ${1} in\n  cu118)\n    CUDA=11.8\n    APT_KEY=${OS}-${CUDA/./-}-local\n    FILENAME=cuda-repo-${APT_KEY}_${CUDA}.0-520.61.05-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}.0/local_installers\n    ;;\n  cu117)\n    CUDA=11.7\n    APT_KEY=${OS}-${CUDA/./-}-local\n    FILENAME=cuda-repo-${APT_KEY}_${CUDA}.1-515.65.01-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}.1/local_installers\n    ;;\n  cu116)\n    CUDA=11.6\n    APT_KEY=${OS}-${CUDA/./-}-local\n    FILENAME=cuda-repo-${APT_KEY}_${CUDA}.2-510.47.03-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}.2/local_installers\n    ;;\n  cu115)\n    CUDA=11.5\n    APT_KEY=${OS}-${CUDA/./-}-local\n    FILENAME=cuda-repo-${APT_KEY}_${CUDA}.2-495.29.05-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}.2/local_installers\n    ;;\n  cu113)\n    CUDA=11.3\n    APT_KEY=${OS}-${CUDA/./-}-local\n    FILENAME=cuda-repo-${APT_KEY}_${CUDA}.0-465.19.01-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}.0/local_installers\n    ;;\n  cu102)\n    CUDA=10.2\n    APT_KEY=${CUDA/./-}-local-${CUDA}.89-440.33.01\n    FILENAME=cuda-repo-${OS}-${APT_KEY}_1.0-1_amd64.deb\n    URL=https://developer.download.nvidia.com/compute/cuda/${CUDA}/Prod/local_installers\n    ;;\n  *)\n    echo \"Unrecognized CUDA_VERSION=${1}\"\n    exit 1\n    ;;\nesac\n\nwget -nv https://developer.download.nvidia.com/compute/cuda/repos/${OS}/x86_64/cuda-${OS}.pin\nsudo mv cuda-${OS}.pin /etc/apt/preferences.d/cuda-repository-pin-600\nwget -nv ${URL}/${FILENAME}\nsudo dpkg -i ${FILENAME}\n\nif [ \"${1}\" = \"cu117\" ] || [ \"${1}\" = \"cu118\" ]; then\n  sudo cp /var/cuda-repo-${APT_KEY}/cuda-*-keyring.gpg /usr/share/keyrings/\nelse\n  sudo apt-key add /var/cuda-repo-${APT_KEY}/7fa2af80.pub\nfi\n\nsudo apt-get update\nsudo apt-get -y install cuda\n\nrm -f ${FILENAME}"
  },
  {
    "path": ".github/workflows/cuda/Windows-env.sh",
    "content": "#!/bin/bash\n\n# Took from https://github.com/pyg-team/pyg-lib/\n\ncase ${1} in\n  cu118)\n    CUDA_HOME=/c/Program\\ Files/NVIDIA\\ GPU\\ Computing\\ Toolkit/CUDA/v11.8\n    PATH=${CUDA_HOME}/bin:$PATH\n    PATH=/c/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH\n    export TORCH_CUDA_ARCH_LIST=\"6.0+PTX\"\n    ;;\n  cu117)\n    CUDA_HOME=/c/Program\\ Files/NVIDIA\\ GPU\\ Computing\\ Toolkit/CUDA/v11.7\n    PATH=${CUDA_HOME}/bin:$PATH\n    PATH=/c/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH\n    export TORCH_CUDA_ARCH_LIST=\"6.0+PTX\"\n    ;;\n  cu116)\n    CUDA_HOME=/c/Program\\ Files/NVIDIA\\ GPU\\ Computing\\ Toolkit/CUDA/v11.6\n    PATH=${CUDA_HOME}/bin:$PATH\n    PATH=/c/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH\n    export TORCH_CUDA_ARCH_LIST=\"6.0+PTX\"\n    ;;\n  cu115)\n    CUDA_HOME=/c/Program\\ Files/NVIDIA\\ GPU\\ Computing\\ Toolkit/CUDA/v11.5\n    PATH=${CUDA_HOME}/bin:$PATH\n    PATH=/c/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH\n    export TORCH_CUDA_ARCH_LIST=\"6.0+PTX\"\n    ;;\n  cu113)\n    CUDA_HOME=/c/Program\\ Files/NVIDIA\\ GPU\\ Computing\\ Toolkit/CUDA/v11.3\n    PATH=${CUDA_HOME}/bin:$PATH\n    PATH=/c/Program\\ Files\\ \\(x86\\)/Microsoft\\ Visual\\ Studio/2017/BuildTools/MSBuild/15.0/Bin:$PATH\n    export TORCH_CUDA_ARCH_LIST=\"6.0+PTX\"\n    ;;\n  *)\n    ;;\nesac"
  },
  {
    "path": ".github/workflows/cuda/Windows.sh",
    "content": "#!/bin/bash\n\n# Took from https://github.com/pyg-team/pyg-lib/\n\n# Install NVIDIA drivers, see:\n# https://github.com/pytorch/vision/blob/master/packaging/windows/internal/cuda_install.bat#L99-L102\ncurl -k -L \"https://drive.google.com/u/0/uc?id=1injUyo3lnarMgWyRcXqKg4UGnN0ysmuq&export=download\" --output \"/tmp/gpu_driver_dlls.zip\"\n7z x \"/tmp/gpu_driver_dlls.zip\" -o\"/c/Windows/System32\"\n\ncase ${1} in\n  cu118)\n    CUDA_SHORT=11.8\n    CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers\n    CUDA_FILE=cuda_${CUDA_SHORT}.0_522.06_windows.exe\n    ;;\n  cu117)\n    CUDA_SHORT=11.7\n    CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.1/local_installers\n    CUDA_FILE=cuda_${CUDA_SHORT}.1_516.94_windows.exe\n    ;;\n  cu116)\n    CUDA_SHORT=11.3\n    CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers\n    CUDA_FILE=cuda_${CUDA_SHORT}.0_465.89_win10.exe\n    ;;\n  cu115)\n    CUDA_SHORT=11.3\n    CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers\n    CUDA_FILE=cuda_${CUDA_SHORT}.0_465.89_win10.exe\n    ;;\n  cu113)\n    CUDA_SHORT=11.3\n    CUDA_URL=https://developer.download.nvidia.com/compute/cuda/${CUDA_SHORT}.0/local_installers\n    CUDA_FILE=cuda_${CUDA_SHORT}.0_465.89_win10.exe\n    ;;\n  *)\n    echo \"Unrecognized CUDA_VERSION=${1}\"\n    exit 1\n    ;;\nesac\n\ncurl -k -L \"${CUDA_URL}/${CUDA_FILE}\" --output \"${CUDA_FILE}\"\necho \"\"\necho \"Installing from ${CUDA_FILE}...\"\nPowerShell -Command \"Start-Process -FilePath \\\"${CUDA_FILE}\\\" -ArgumentList \\\"-s nvcc_${CUDA_SHORT} cuobjdump_${CUDA_SHORT} nvprune_${CUDA_SHORT} cupti_${CUDA_SHORT} cublas_dev_${CUDA_SHORT} cudart_${CUDA_SHORT} cufft_dev_${CUDA_SHORT} curand_dev_${CUDA_SHORT} cusolver_dev_${CUDA_SHORT} cusparse_dev_${CUDA_SHORT} thrust_${CUDA_SHORT} npp_dev_${CUDA_SHORT} nvrtc_dev_${CUDA_SHORT} nvml_dev_${CUDA_SHORT}\\\" -Wait -NoNewWindow\"\necho \"Done!\"\nrm -f \"${CUDA_FILE}\""
  },
  {
    "path": ".gitignore",
    "content": ".clangd\ncompile_commands.json\n\n# Visual Studio Code configs.\n.vscode/\n\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\n# lib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pyenv\n.python-version\n\n# celery beat schedule file\ncelerybeat-schedule\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n\n.DS_Store\n\n# Direnv config.\n.envrc\n\n# line_profiler\n*.lprof\n\n*build\ncompile_commands.json\n*.dump\n\ndata\nresults"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"gsplat/cuda/csrc/third_party/glm\"]\n\tpath = gsplat/cuda/csrc/third_party/glm\n\turl = https://github.com/g-truc/glm.git\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "recursive-include gsplat/cuda/csrc *\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n    <!-- project badges -->\n    <a href=\"https://research.zenseact.com/publications/splatad/\"><img src=\"https://img.shields.io/badge/Project-Page-ffa\"/></a>\n    <!-- paper badges -->\n    <a href=\"https://arxiv.org/abs/2411.16816\">\n        <img src='https://img.shields.io/badge/arXiv-Page-aff'>\n    </a>\n</p>\n\n<div align=\"center\">\n<h3 style=\"font-size:2.0em;\">SplatAD</h3>\n<h4 style=\"font-size:1.5em;\">\nReal-Time Lidar and Camera Rendering with 3D Gaussian Splatting for Autonomous Driving\n</h4>\n</div>\n<div align=\"center\">\n\n<div align=\"center\">\n<picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/_static/imgs/front-fig-stacked.jpg\" />\n    <img alt=\"tyro logo\" src=\"docs/_static/imgs/front-fig-stacked.jpg\" width=\"80%\"/>\n</picture>\n</div>\n\n[Project page](https://research.zenseact.com/publications/splatad/)\n\n</div>\n\n\n# About\nThis is the official repository for the CVPR 2025 paper [_SplatAD: Real-Time Lidar and Camera Rendering with 3D Gaussian Splatting for Autonomous Driving_](https://arxiv.org/abs/2411.16816). The code in this repository builds upon the open-source library [gsplat](https://github.com/nerfstudio-project/gsplat), with modifications and extensions designed for autonomous driving data. \n\nWhile the code contians all components needed to efficiently render camera and lidar data, the SplatAD-model itself, including dataloading, decoders, etc., will be released through [neurad-studio](https://github.com/georghess/neurad-studio).\n\n**We welcome all contributions!**\n\n# Key Features\n- Efficient lidar rendering\n    - Projection to spherical coordinates\n    - Depth and feature rasterization for a non-linear grid of points\n- Rolling shutter compensation for camera and lidar\n\n\n# Installation\nOur code introduce no additional dependencies. We thus refer to the original documentation from gsplat for both [installation](https://github.com/nerfstudio-project/gsplat#installation) and [development setup](https://github.com/nerfstudio-project/gsplat/blob/main/docs/DEV.md).\n\n# Usage\nSee [`rasterization`](gsplat/rendering.py#L22) and [`lidar_rasterization`]((gsplat/rendering.py#L443)) for entry points to camera and lidar rasterization.\nAdditionally, we provide example notebooks under [examples](examples) that demonstrate lidar rendering and rolling shutter compensation.\nFor further examples, check out the [test files](tests).\n\n\n# Built On\n- [gsplat](https://github.com/nerfstudio-project/gsplat) - Collaboration friendly library for CUDA accelerated rasterization of Gaussians with python bindings\n- [3dgs-deblur](https://github.com/SpectacularAI/3dgs-deblur) - Inspiration for the rolling shutter compensation\n\n# Citation\n\nYou can find our paper on [arXiv](https://arxiv.org/abs/2411.16816).\n\nIf you use this code or find our paper useful, please consider citing:\n\n```bibtex\n@article{hess2024splatad,\n  title={SplatAD: Real-Time Lidar and Camera Rendering with 3D Gaussian Splatting for Autonomous Driving},\n  author={Hess, Georg and Lindstr{\\\"o}m, Carl and Fatemi, Maryam and Petersson, Christoffer and Svensson, Lennart},\n  journal={arXiv preprint arXiv:2411.16816},\n  year={2024}\n}\n```\n\n# Contributors\n\n<a href=\"https://github.com/georghess\">\n    <img src=\"https://github.com/georghess.png\" width=\"60px;\" style=\"border-radius: 50%;\"/>\n</a>\n<a href=\"https://github.com/carlinds\">\n    <img src=\"https://github.com/carlinds.png\" width=\"60px;\" style=\"border-radius: 50%;\"/>\n</a>\n\n\\+ [gsplat contributors](https://github.com/nerfstudio-project/gsplat/graphs/contributors)"
  },
  {
    "path": "build_extensions.py",
    "content": "import os\nimport subprocess\nimport shutil\nfrom pathlib import Path\nimport argparse\n\nparser = argparse.ArgumentParser(description=\"Build and cache gsplat CUDA extensions.\")\nparser.add_argument(\n    \"--build-root\",\n    type=Path,\n    required=True,\n    help=\"Path to the central build cache directory (e.g. /shared/gsplat_builds)\",\n)\n\ndef get_commit_hash():\n    return subprocess.check_output([\"git\", \"rev-parse\", \"--short\", \"HEAD\"], text=True).strip()\n\ndef main():\n    args = parser.parse_args()\n    repo_root = Path(__file__).resolve().parent\n    build_root: Path = args.build_root\n    commit = get_commit_hash()\n    build_dir = build_root / commit\n\n    if build_dir.exists():\n        print(f\"✅ Build for {commit} already exists at {build_dir}\")\n        return\n\n    print(f\"🔨 Building gsplat extensions for commit {commit} ...\")\n    build_tmp = repo_root / \"build_tmp\"\n    if build_tmp.exists():\n        shutil.rmtree(build_tmp)\n\n    os.environ[\"BUILD_CUDA\"] = \"1\"\n    subprocess.check_call(\n        [\"python\", \"setup.py\", \"build_ext\", f\"--build-lib={build_tmp}\"],\n        cwd=repo_root\n    )\n\n    build_dir.mkdir(parents=True, exist_ok=True)\n    for so_file in build_tmp.rglob(\"*.so\"):\n        rel = so_file.relative_to(build_tmp)\n        dest = build_dir / rel\n        dest.parent.mkdir(parents=True, exist_ok=True)\n        shutil.copy2(so_file, dest)\n        print(f\"📦 Copied {rel}\")\n\n    shutil.rmtree(build_tmp)\n    print(f\"✅ Done. Stored build at: {build_dir}\")\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "examples/lidar_rendering.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Demo of lidar_rasterization usage\\n\",\n    \"\\n\",\n    \"This notebook shows a minimal example of how to render a lidar point cloud. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import torch\\n\",\n    \"import torch.nn.functional as F\\n\",\n    \"from gsplat.rendering import lidar_rasterization\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"\\n\",\n    \"assert torch.cuda.is_available(), \\\"These examples require a GPU.\\\"\\n\",\n    \"DEVICE = torch.device(\\\"cuda\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Setting up the Gaussians\\n\",\n    \"Let's define some random Gaussians to create a scene to render. We'll place the Gaussians in random directions, at a distance between 20 and 120 meters.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Num lidars, num Gaussians\\n\",\n    \"C, N = 1, 1_000_000\\n\",\n    \"\\n\",\n    \"# Define the Gaussians\\n\",\n    \"means = (torch.rand(N, 1, device=DEVICE)*100 + 20) * F.normalize(torch.randn(N, 3, device=DEVICE), dim=-1) # random range * random direction\\n\",\n    \"quats = F.normalize(torch.randn(N, 4, device=DEVICE))\\n\",\n    \"scales = torch.rand(N, 3, device=DEVICE) + 0.1\\n\",\n    \"opacities = torch.rand(N, device=DEVICE) \\n\",\n    \"features = torch.randn(N, 16, device=DEVICE)\\n\",\n    \"velocities = torch.randn(N, 3, device=DEVICE) * 2\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Setting up the lidar\\n\",\n    \"We define a lidar with 0.2 degrees between beams in the azimuth direction and with 32 elevation channels between -30 and +30 degrees in elevation. **Note**: We define elevation as the angle against the horizontal xy-plane, which is different from other definitions of spherical coordinates.\\n\",\n    \"\\n\",\n    \"For inference, we generate points according to the lidar specs, whereas during training we use actual points. To simulate real data, here we add some noise to the observed azimuth and elevation, and drop points beyond a certain range.\\n\",\n    \"\\n\",\n    \"Note that the points should be defined in the lidar coordinate system _when they were collected_. In other words, ego-motion compensation should be removed prior to running the rasterization if using real data. The movement of the lidar during capture should be provided as input to the rasterization function call. This way, we render the distance between the sensor and surfaces at the time the ray was shot, and can easily simulate different collection rates.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Define the lidar parameters\\n\",\n    \"azimuth_resolution = 0.2 # degrees\\n\",\n    \"min_azimuth = -180 # degrees \\n\",\n    \"max_azimuth = 180 # degrees\\n\",\n    \"n_elevation_channels = 32\\n\",\n    \"min_elevation = -30 # degrees\\n\",\n    \"max_elevation = 30 # degrees\\n\",\n    \"\\n\",\n    \"# Generate the lidar points to be rasterized\\n\",\n    \"azimuths = torch.linspace(\\n\",\n    \"    min_azimuth,\\n\",\n    \"    max_azimuth - azimuth_resolution,\\n\",\n    \"    int((max_azimuth - azimuth_resolution - min_azimuth) / azimuth_resolution) + 1,\\n\",\n    \"    device=DEVICE\\n\",\n    \")\\n\",\n    \"elevations = torch.linspace(\\n\",\n    \"    min_elevation,\\n\",\n    \"    max_elevation,\\n\",\n    \"    n_elevation_channels,\\n\",\n    \"    device=DEVICE\\n\",\n    \")\\n\",\n    \"azim_elev = torch.meshgrid(\\n\",\n    \"    azimuths,\\n\",\n    \"    elevations,\\n\",\n    \"    indexing=\\\"ij\\\"\\n\",\n    \")\\n\",\n    \"azim_elev = torch.stack(azim_elev, dim=-1) # (n_azimuth_channels, n_elevation_channels, 2)\\n\",\n    \"azim_elev += torch.randn_like(azim_elev) * 0.001 # add some noise to the points\\n\",\n    \"pc_range = torch.randn_like(azim_elev[...,0]).abs() * 50 + 2 # random range for the points\\n\",\n    \"pc_azim_elev_range = torch.cat([\\n\",\n    \"    azim_elev,\\n\",\n    \"    pc_range.unsqueeze(-1)\\n\",\n    \"], dim=-1) # (n_azimuth_channels, n_elevation_channels, 3)\\n\",\n    \"\\n\",\n    \"######## remember to convert to radians for going to xyz ########\\n\",\n    \"pc_xyz = torch.stack([\\n\",\n    \"    torch.cos(azim_elev[...,1].deg2rad()) * torch.cos(azim_elev[...,0].deg2rad()) * pc_range,\\n\",\n    \"    torch.cos(azim_elev[...,1].deg2rad()) * torch.sin(azim_elev[...,0].deg2rad()) * pc_range,\\n\",\n    \"    torch.sin(azim_elev[...,1].deg2rad()) * pc_range\\n\",\n    \"], dim=-1) # (n_azimuth_channels, n_elevation_channels, 3)\\n\",\n    \"\\n\",\n    \"range_filter = pc_range <= pc_range.quantile(0.7) # pretend points beyond some range are not visible\\n\",\n    \"pc_xyz = pc_xyz[range_filter] # (n_points, 3)\\n\",\n    \"pc_azim_elev_range = pc_azim_elev_range[range_filter] # (n_points, 3)\\n\",\n    \"\\n\",\n    \"pc_timeoffset = (torch.rand_like(pc_azim_elev_range[...,0:1]) - 0.5) * 0.1 # offset per point from timestamp of the scan\\n\",\n    \"pc_intensity = torch.rand_like(pc_azim_elev_range[...,0:1]) # random intensity for the points\\n\",\n    \"point_cloud = torch.cat([\\n\",\n    \"    pc_azim_elev_range,\\n\",\n    \"    pc_timeoffset,\\n\",\n    \"    pc_intensity,\\n\",\n    \"], dim=-1) # (n_points, 5)\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAZsAAAGgCAYAAAB8JcqWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d5QdaXnn/6lcdfO9nbsltXKYnGBmNAMzMMCQljQGE7xLWBubBQPr9cLub21jcFpgWZZdMxgwB9Ys2CassQ1eMvZgmMAE5dhSt6Rudbw5VX5/f9y57W6pJXVL3VJrpj7nzDmjutVVde+t+37red/neb6SEEIQERERERGxgshX+gIiIiIiIp75RGITEREREbHiRGITEREREbHiRGITEREREbHiRGITEREREbHiRGITEREREbHiRGITEREREbHiRGITEREREbHiRGITEREREbHiRGLzDOZLX/oSkiQxMjJypS/lWcHLX/5yfu3Xfm1Fz9H+Th9//PEVPc+VYmRkBEmS+NKXvrRsx1zod3DHHXfwgQ98YNnOEXFhIrE5B8PDw7znPe9h69atxGIxYrEY11xzDe9+97vZs2fPlb68Vc/69euRJIkXvehFC77++c9/HkmSnjED589+9jO+//3v88EPfnDe9pGREd7+9rezadMmTNOkt7eX5z//+XzoQx+6QlcaAfDBD36QT3/600xMTFzpS3nWEInNAnz729/muuuu48tf/jIvetGL+OQnP8mnPvUpXvayl/EP//AP3HTTTZw4ceJKX+YF+df/+l/TbDYZHBy8Iuc3TZOf/OQnC/6gv/KVr2Ca5hW4qpXh4x//OPfddx+bN2+e3TY0NMTNN9/M9773Pd70pjfxp3/6p7z73e+mo6ODj370o1fwaiNe/epXk0qlePDBB6/0pTxrUK/0Baw2jh07xhvf+EYGBwf50Y9+RF9f37zXP/rRj/Lggw8iy6tfpxVFQVGUK3b+u+66i1/84hf89V//Ne973/tmt4+OjvLTn/6U1772tXzzm9+8Yte3XExNTfGd73yHP/uzP5u3/ZOf/CS1Wo1du3adJfhTU1OX8xIjzkCWZX7pl36Jv/iLv+DDH/4wkiRd6Ut6xrP6R8zLzMc+9jHq9Tpf/OIXzxIaAFVVee9738vatWtnt+3Zs4e3ve1tbNy4cXaq5B3veAf5fH7e377tbW9j/fr1Zx3z93//98+62X/wgx9w9913k8lkSCQSbNu2jf/v//v/5u3zv/7X/+Laa68lFouRzWa57bbb+OpXvzr7+kJz1X/7t3/LK17xCvr7+zEMg02bNvEHf/AHBEEw79j33nsv1113HQcOHOAFL3gBsViMgYEBPvaxj13wM2xjmiave93r5l0TwF/+5V+SzWa5//77F/y7Q4cO8Uu/9EvkcjlM0+S2227j7/7u7+btUygU+O3f/m2uv/56EokEqVSKl73sZezevXvefv/4j/+IJEl87Wtf44/+6I9Ys2YNpmly3333MTQ0NG/fo0eP8sADD9Db24tpmqxZs4Y3vvGNlMvl877P73znO/i+f9aU4bFjx1izZs2CkWV3d/e8f0uSxO///u+ftd/69et529vedtb2RqPBr//6r9PR0UEqleLf/Jt/Q7FYnLfP448/zv33309nZyeWZbFhwwbe8Y53zNvnv/23/8bOnTvp6OjAsixuvfVWvvGNb5x1PkmSeM973sPXv/51rrnmGizL4s4772Tv3r0AfPazn2Xz5s2Ypsm999571jph+3564okn2Llz5+z1nCnQ52Ix9wTA/v37eeELX4hlWaxZs4Y//MM/JAzDBY/54he/mBMnTrBr165FXUPEpRFFNmfw7W9/m82bN3P77bcv+m9+8IMfcPz4cd7+9rfT29vL/v37+dznPsf+/ft55JFHlvzUtH//fl75yldyww038JGPfATDMBgaGuJnP/vZ7D6f//znee9738sv/dIv8b73vQ/bttmzZw+PPvoob37zm8957C996UskEgl+67d+i0QiwY9//GN+7/d+j0qlwsc//vF5+xaLRV760pfyute9jje84Q184xvf4IMf/CDXX389L3vZyxb1Xt785jfzkpe8hGPHjrFp0yYAvvrVr/JLv/RLaJq24Hu/6667GBgY4D/9p/9EPB7na1/7Gq95zWv45je/yWtf+1oAjh8/zre+9S1e//rXs2HDBiYnJ/nsZz/LPffcw4EDB+jv75933P/6X/8rsizz27/925TLZT72sY/xlre8hUcffRQA13W5//77cRyH3/zN36S3t5exsTG+/e1vUyqVSKfT53yPP//5z+no6DhLVAYHB/nhD3/Ij3/8Y174whcu6vNaLO95z3vIZDL8/u//PocPH+Yzn/kMJ06cmBXXqakpXvKSl9DV1cV/+k//iUwmw8jICP/3//7fecf51Kc+xate9Sre8pa34Louf/VXf8XrX/96vv3tb/OKV7xi3r4//elP+bu/+zve/e53A/Anf/InvPKVr+QDH/gADz74IP/u3/07isUiH/vYx3jHO97Bj3/843l/XywWefnLX84b3vAG3vSmN/G1r32Nd73rXei6fpYIzmWx98TExAQveMEL8H1/dr/Pfe5zWJa14HFvvfVWoLXedvPNNy/tC4hYOiJilnK5LADxmte85qzXisWimJ6env2v0WjMvjb3/9v85V/+pQDEQw89NLvtrW99qxgcHDxr3w996ENi7lfxyU9+UgBienr6nNf66le/Wlx77bXnfT9f/OIXBSCGh4fPe62//uu/LmKxmLBte3bbPffcIwDxF3/xF7PbHMcRvb294oEHHjjveYUQYnBwULziFa8Qvu+L3t5e8Qd/8AdCCCEOHDggAPFP//RPs9f3i1/8Yvbv7rvvPnH99dfPu5YwDMXOnTvFli1bZrfZti2CIJh3zuHhYWEYhvjIRz4yu+0nP/mJAMSOHTuE4ziz2z/1qU8JQOzdu1cIIcRTTz0lAPH1r3/9gu/tTO6++25x6623nrV93759wrIsAYibbrpJvO997xPf+ta3RL1eP2tfQHzoQx86a/vg4KB461vfOvvv9md26623Ctd1Z7d/7GMfE4D427/9WyGEEH/zN39z1me7EGfeD67riuuuu0688IUvPOv6DMOYdy999rOfFYDo7e0VlUpldvt//s//+az7rn0/feITn5jd5jiOuOmmm0R3d/fsexkeHhaA+OIXvzi732Lvife///0CEI8++ujstqmpKZFOp8+6nja6rot3vetd5/2MIpaHaBptDpVKBYBEInHWa/feey9dXV2z/33605+efW3uk5Nt28zMzHDHHXcA8OSTTy75OjKZDNCa8jrXFEAmk2F0dJRf/OIXSzr23GutVqvMzMzwvOc9j0ajwaFDh+btm0gk+JVf+ZXZf+u6znOf+1yOHz++6PMpisIb3vAG/vIv/xJoJQasXbuW5z3veWftWygU+PGPf8wb3vCG2WubmZkhn89z//33c/ToUcbGxgAwDGN23SwIAvL5/Ox040Kf+dvf/nZ0XZ/9d/v87ffSjly+973v0Wg0Fv3+APL5PNls9qzt1157Lbt27eJXfuVXGBkZ4VOf+hSvec1r6Onp4fOf//ySznEm73znO+dFhu9617tQVZV/+Id/AP7lHvr2t7+N53nnPM7c+6FYLFIul3ne85634Gd43333zZsGbkf/DzzwAMlk8qztZ94nqqry67/+67P/1nWdX//1X2dqaoonnnhiwetbyj3xD//wD9xxxx0897nPnf37rq4u3vKWt5zz/WezWWZmZs75esTyEYnNHNo/mFqtdtZrn/3sZ/nBD37A//k//+es1wqFAu973/vo6enBsiy6urrYsGEDwAXn+xfil3/5l7nrrrv41V/9VXp6enjjG9/I1772tXnC88EPfpBEIsFzn/tctmzZwrvf/e5502znYv/+/bz2ta8lnU6TSqXo6uqaFZQzr3XNmjVnTQFms9mz1gYuxJvf/GYOHDjA7t27+epXv8ob3/jGBacWh4aGEELwu7/7u/OEvaurazZVuL2wHoYhn/zkJ9myZQuGYdDZ2UlXVxd79uxZ8DNft27dWe8DmH0vGzZs4Ld+67f48z//czo7O7n//vv59Kc/vejvT5zD8Hbr1q18+ctfZmZmhj179vDHf/zHqKrKO9/5Tn74wx8u6tgLsWXLlnn/TiQS9PX1za6V3HPPPTzwwAN8+MMfprOzk1e/+tV88YtfxHGceX/37W9/mzvuuAPTNMnlcnR1dfGZz3xmUZ9hW6Dnrl/O3X7mfdLf3088Hp+3bevWrQDnrAVbyj1x4sSJsz4XgG3bti14bGh9b1FywOUhWrOZQzqdpq+vj3379p31WvtpbaEfxRve8AZ+/vOf8x//43/kpptuIpFIEIYhL33pS+cJxLlu6jMX5y3L4qGHHuInP/kJ3/nOd/jud7/LX//1X/PCF76Q73//+yiKwo4dOzh8+DDf/va3+e53v8s3v/lNHnzwQX7v936PD3/4wwuep1Qqcc8995BKpfjIRz4yW/vx5JNP8sEPfvCsKOpcmWznGljPxe23386mTZt4//vfz/Dw8DnXlNrn/+3f/u1zJg+0U4v/+I//mN/93d/lHe94B3/wB39ALpdDlmXe//73LxgNLua9fOITn+Btb3sbf/u3f8v3v/993vve9/Inf/InPPLII6xZs+ac76+jo+OCAqwoCtdffz3XX389d955Jy94wQv4yle+cs46pDZn3huLRZIkvvGNb/DII4/w93//93zve9/jHe94B5/4xCd45JFHSCQS/PSnP+VVr3oVz3/+83nwwQfp6+tD0zS++MUvnpXU0X4P53pvC7HU+2QhlnJPXAylUonOzs6L/vuIxROJzRm84hWv4M///M957LHH5oXj56JYLPKjH/2ID3/4w/ze7/3e7PajR4+etW82m6VUKp21faGaHVmWue+++7jvvvv47//9v/PHf/zH/Jf/8l/4yU9+MjtAxeNxfvmXf5lf/uVfxnVdXve61/FHf/RH/Of//J8XrGH5x3/8R/L5PP/3//5fnv/8589uHx4evuD7vFTe9KY38Yd/+Ifs2LGDm266acF9Nm7cCICmaRcchL/xjW/wghe8gC984Qvztl/q4NEWhN/5nd/h5z//OXfddRd/9md/xh/+4R+e82+2b9++pBTu2267DYDx8fHZbQvdG67rzttnLkePHuUFL3jB7L9rtRrj4+O8/OUvn7ffHXfcwR133MEf/dEf8dWvfpW3vOUt/NVf/RW/+qu/yje/+U1M0+R73/sehmHM/s0Xv/jFRb+XpXD69Gnq9fq86ObIkSMAC2ZpwtLuicHBwQV/d4cPH15w/7GxMVzXZceOHYu5/IhLJJpGO4MPfOADxGIx3vGOdzA5OXnW62c+rbWf6s7c/j/+x/846283bdpEuVye14FgfHycv/mbv5m3X6FQOOtv2wN0exrkzLRqXde55pprEEKcc45+oWt1XfeyFLb96q/+Kh/60If4xCc+cc59uru7uffee/nsZz+74CA7PT09+/+Kopz1mX/961+fnb9fKpVKBd/35227/vrrkWX5rKmnM7nzzjspFotnrVH89Kc/XfC7aK+rzJ3e2bRpEw899NC8/T73uc+dM7L53Oc+N+/Yn/nMZ/B9fzZLsFgsnvX5nHkPKYqCJEnzzjEyMsK3vvWt873di8b3fT772c/O/tt1XT772c/S1dU1mxl2Jku5J17+8pfzyCOP8Nhjj817/Stf+cqCx26vE+3cufOi3k/E0ogimzPYsmULX/3qV3nTm97Etm3beMtb3sKNN96IEILh4WG++tWvIsvy7LRKKpXi+c9/Ph/72MfwPI+BgQG+//3vLxgtvPGNb+SDH/wgr33ta3nve99Lo9HgM5/5DFu3bp23IPuRj3yEhx56iFe84hUMDg4yNTXFgw8+yJo1a7j77rsBeMlLXkJvby933XUXPT09HDx4kD/90z/lFa94xbzF2rns3LmTbDbLW9/6Vt773vciSRJf/vKXl2W640IMDg4uWEdyJp/+9Ke5++67uf766/m1X/s1Nm7cyOTkJA8//DCjo6OzdTSvfOUr+chHPsLb3/52du7cyd69e/nKV74y+yS8VH784x/znve8h9e//vVs3boV3/f58pe/jKIoPPDAA+f921e84hWoqsoPf/hD3vnOd85u/+hHP8oTTzzB6173Om644QaglTDyF3/xF+RyOd7//vfP7vurv/qr/MZv/AYPPPAAL37xi9m9ezff+973zhmlua7Lfffdxxve8AYOHz7Mgw8+yN13382rXvUqAP73//7fPPjgg7z2ta9l06ZNVKtVPv/5z5NKpWajn1e84hX89//+33npS1/Km9/8Zqampvj0pz/N5s2bV6QlU39/Px/96EcZGRlh69at/PVf/zW7du3ic5/73IJp8G0We0984AMf4Mtf/jIvfelLed/73jeb+jw4OLjg+/nBD37AunXrorTny8UVyIC7KhgaGhLvete7xObNm4VpmsKyLLF9+3bxG7/xG2LXrl3z9h0dHRWvfe1rRSaTEel0Wrz+9a8Xp0+fXjCd9fvf/7647rrrhK7rYtu2beL//J//c1bq849+9CPx6le/WvT39wtd10V/f79405veJI4cOTK7z2c/+1nx/Oc/X3R0dAjDMMSmTZvEf/yP/1GUy+XZfRZKff7Zz34m7rjjDmFZlujv7xcf+MAHxPe+9z0BiJ/85Cez+91zzz0LplafK337TNqpz+djodRnIYQ4duyY+Df/5t+I3t5eoWmaGBgYEK985SvFN77xjdl9bNsW/+E//AfR19cnLMsSd911l3j44YfFPffcI+65557Z/dqpz2emNJ+ZYnv8+HHxjne8Q2zatEmYpilyuZx4wQteIH74wx9e8L0KIcSrXvUqcd99983b9rOf/Uy8+93vFtddd51Ip9NC0zSxbt068ba3vU0cO3Zs3r5BEIgPfvCDorOzU8RiMXH//feLoaGhc6Y+/9M//ZN45zvfKbLZrEgkEuItb3mLyOfzs/s9+eST4k1vepNYt26dMAxDdHd3i1e+8pXi8ccfn3feL3zhC2LLli3CMAyxfft28cUvfvGs+1GIVurzu9/97gU/w49//OPzti/0mbfvp8cff1zceeedwjRNMTg4KP70T/90wWPOTX0WYnH3hBBC7NmzR9xzzz3CNE0xMDAg/uAP/kB84QtfOOt3EASB6OvrE7/zO78jIi4PkhCX4bE2IuIZzk9/+lPuvfdeDh06tGBG1LOde++9l5mZmQWTb64E3/rWt3jzm9/MsWPHFuwUErH8RGs2ERHLwPOe9zxe8pKXLKmdT8SV46Mf/Sjvec97IqG5jESRTURExIqz2iKbiMtPFNlERERERKw4UWQTEREREbHiRJFNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKE4lNRERERMSKo17pC4h49hEEAZ7nIcsyiqIgyzKSJF3py4qIiFhBIrGJuGwIIfB9H9/3aTabAEiShKIoqKqKqqqR+EREPEORhBDiSl9ExDOfMAzxPI8wDBFC4HkekiQhhEAIQRiGAMiyjCzLkfhERDzDiMQmYkVpC0lbaGRZRgiB67rIsnzWvnOFRwgRiU9ExDOESGwiVox2BBMEAdCaMpMkaVZ82tvO9/dzxae9vyzLaJo2O/3WPm5ERMTqJVqziVgR2oISBMGCkYgQ4oIC0RaRdgTUFp8gCPB9f/b1M9d8IvGJiFh9RGITsazMFYP2tNlyDfznEh/f92fXgNri04582tNuERERV5ZIbCKWjTOnzVZ6bWUx4jM9PU1nZyexWCwSn4iIK0gkNhHLQrt2ZrmjmaWwkPgcPXoUy7Jm9zkz2SASn4iIy0MkNhGXxNzaGVj5aGYpnDmt1o58PM/Ddd3Z1yPxiYhYeSKxibho5qY0A4temL/cYtROuFwo8mm/h7nZcXPFp53tFhERcWlEYhOxZOYO0u2ssqUOyKthAG9HPW3mvq+FIp+52W4RERFLIxKbiCUhhKBSqVCv18lms6s+zXgp17YY8Wn3c5ub7baa339ExGoh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7TXsiooK5HJ53Bh05syZ/P73vycUCsX3FD788MOT2vtLnD6xTJ5Zs2bx5JNP8tVXX7F8+XLuu+8+brzxRi655BJKS0uZN29evxh4JoPQQDTXZciQIQwZMoRAIMChQ4d48sknaWxsJD8/n+eff54rrriCadOmJYV7gVRkM7hJ/BF0lrN161aefvppdu7cyaFDh3j99de57bbb+MlPfhIXksWLF6NWq7nhhhuorKzkjTfe4K9//Su33357gkd/9iOXy5kxYwaPP/44+/bt45NPPmHcuHE8+uijFBQUcPXVV/P666/jdDr7JJMnJjRDhgxJqNAcjUqloq6uDlEU2bVrF08//TTNzc3MnTuXZcuWJXp4ADzyyCOkp6czZcoUHn/8ccLhcPy+rVu3csEFF/RYSZg7dy41NTV0dHQkYrgSRyEto/Uz27dv59e//jXV1dUEAgGGDx/OT3/6U26//fYelirdmzozMjJYunQp99xzTwJHfm4jiiKVlZXxaISamhouuugiysrKWLBgAWlpab0Wiu5CM2LEiKQRGlEUefDBB/nnP//Jxo0bGTNmTPy+YDBIJBJJuC2NVGQz+JHERkLiWxBFkX379rFixQpWrFgR34guKytj4cKFWK3WbxUOt9tNeXl5UgrNww8/zEsvvcTGjRsZP378gL33vffey6OPPnrSx+zdu7eH+MV4+eWX+eUvf4nb7Uaj0UhiMwiQxEZCoheIosihQ4d6ZPJ85zvfobS0lEWLFh03kyeZheaJJ57gmWeeYf369UyaNGlA318qsjm3kPZszmGef/55CgoK0Gq1zJgx45j4bIljkclkjBgxgrvvvputW7dy6NAhLr/8clavXs3YsWOZM2cOzzzzDPX19YiiSHl5OQ8//DB5eXlJJzTPPPMMTz/9NOvWrRtwoYFokc2YMWNO+u9EvVDHK7LZvHkzoVAo/hipyCa5kGY25yhvvPEG1157LS+88AIzZszg6aef5q233qKmpib+A5Y4dURRpKmpKR6N8MknnzBq1Chqa2u5/PLL+fvf/55UQvPiiy/ypz/9iXXr1nH++ecnekgnZevWrXzxxRfMnj0bk8nE1q1bue2225g3b148OLGzs5PRo0dzySWXcM8997Bnzx6uv/56nnrqKakaLUmQxOYcZcaMGUybNo3nnnsOiLoJDx06lKVLl/Zwo5boPaIo8skn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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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xWKx8Ic//IEvfvGLJBIJ/uM//mPWutFolEsuuYSrrrqK6667jgceeIA77riDJUuWcOmll76uY7nxxhu56KKL6O/vp6OjA5Bu0Ndccw1arfaUx75+/Xp8Ph//8A//gNls5r777uO9730vDz74IFdeeSUAAwMD/OY3v+Haa6+lra2NyclJ7rnnHjZv3nzKss6//du/oVKp+NznPkc8Hueb3/wmN910E7t37wYkDcnFF19MPp/nU5/6FHV1dQQCAR599FFisRh2u/01jzUUCgGSTmVgYIA77rgDt9vNu971rpPWTSaT8vozcbvdCIJAW1sb69at47777uNb3/oWarVaXqd6Q3617xmkoKdQKNDV1TVrebU8+otf/IL169f/ScHW6di6dSu//vWvuf3229Hr9dx1111ccskl7Nmzh8WLFwPwsY99jAceeIDbbruNhQsXEg6H2bFjB0eOHJH39f777yeTyfDxj38ct9vNnj17+J//+R/8fj/333//rM8sl8tceumlbNq0iW9+85v84he/4LbbbsNsNvNP//RP3HTTTVx11VXcfffd3HzzzZx99tm0tbXN2sZtt92Gw+Hgy1/+MseOHeN73/sew8PDcjB8KiqVCu95z3vYsWMHt956KwsWLODgwYN861vf4vjx4/zmN7+R1/3IRz7Cz3/+c2688UbWrVvHH/7wBy6//PLTnseurq5Zv+8KZyhvdWpI4Z1JPB4XAfG9733vSa9Fo1ExGAzKP5lMRn5t5v9X+eUvfykC4rZt2+RlH/zgB8WWlpaT1v3Sl74kzrzsv/Wtb4mAGAwGT7uvV1xxhbho0aJXPZ4f/ehHIiAODg6+6r7+7d/+rWgymcRcLicv27x5swiIP/3pT+Vl+XxerKurE6+++upX/VxRlMpMl19+uVgqlcS6ujrxq1/9qiiKonj48GERELdu3Srv38wy0/nnny8uWbJk1r5UKhVx3bp14pw5c+RluVxOLJfLsz5zcHBQ1Ov14p133ikvq5Z1FixYIObzeXn5d77zHREQDx48KIqiKO7fv/91lX9OxQc/+EEROOnH5/OJ+/btm7VudX9O9zM+Pi6v+93vflcExC1btsjLyuWy6PP5xLPPPvs19+uHP/zhrGOsUqlU5O+3trZWfN/73id+97vfFYeHh095bK/nmhVFUT6GvXv3ysuGh4dFg8EgXnnllfIy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XkKhEHV1dX/UNQunvu6PHz+OyWSaFYDV19fziU98gk984hNMTU3R1dXF17/+dS699FIOHjzI8ePH+clPfsLNN98sv+epp556zWP4U+nt7eXcc8+V/51KpRgfH+eyyy477Xs6Ojp46aWXOP/88181g9LS0kKlUqG/v39WNubYsWOnfc/g4CALFiz4I49C4e2GUmZSeMv4/Oc/j8lk4sMf/jCTk5MnvX7iU1316e/E5d/+9rdPem9HRwfxeHyWg/D4+DgPP/zwrPUikchJ760GANWWzxPbvnU6HQsXLkQURYrF4imP7VT7WigUuOuuu065/hvJRz7yEb70pS/xn//5n6ddp6amhnPOOYd77rmH8fHxk16vlilAOpYTz/n9998va2r+WBKJBKVSadayJUuWoFKp/mRr+ePHj3Ps2DGWLVv2J70fpCzdlVdeyWOPPcb3vvc9zGYzV1xxxet678qVK9HpdCc5LPf29jIyMnLS+rFYjF27duF0OuXA4/Ves1V27do1S7M0OjrKI488wkUXXYRaraZcLp9UJqqpqaGhoUE+z6e6TkVR5Dvf+c7rOu4/he9///uzfm++973vUSqVXrVr77rrriMQCPCDH/zgpNey2SzpdBpA3sZ///d/z1rnVH8jqnR3d7Nu3bo/5hAU3oYomRmFt4w5c+Zw77338r73vY958+bJDsCiKDI4OMi9996LSqWS0/Y2m01uCS0Wi/h8Pp588slTZjtuuOEG7rjjDq688kpuv/12MpkM3/ve95g7d+6sG8Cdd97Jtm3buPzyy2lpaWFqaoq77rqLxsZGNmzYAMBFF11EXV0d69evp7a2liNHjvC///u/XH755bL250TWrVuH0+nkgx/8ILfffjuCIPCzn/3sDUu7vxotLS2zZtCcju9+97ts2LCBJUuW8NGPfpT29nYmJyfZtWsXfr9f9pF517vexZ133smHPvQh1q1bx8GDB/nFL34hZ3f+WP7whz9w2223ce211zJ37lxKpRI/+9nPUKvVXH311a/5/lKpJOupKpUKQ0ND3H333VQqFVnvM5Pt27ef0v146dKlLF26dNay97///fz0pz9ly5Yt3HTTTZjN5td1TAaDgYsuuoinn36aO++8U17+0ksvceONN3LppZeyceNGXC4XgUCAn/zkJ4yNjfHtb39bDihe7zVbZfHixVx88cWzWrMB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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111, projection='3d')\\n\",\n    \"ax.scatter(pc_xyz[...,0].cpu(), pc_xyz[...,1].cpu(), pc_xyz[...,2].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Lidar Points\\\")\\n\",\n    \"plt.show()\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.scatter(pc_xyz[...,0].cpu(), pc_xyz[...,1].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Lidar Points BEV\\\")\\n\",\n    \"ax.axis('equal')\\n\",\n    \"ax.grid(\\\"on\\\")\\n\",\n    \"plt.show()\\n\",\n    \"\\n\",\n    \"sub_sample_means_idx = torch.randint(0, N, (C, 100_000), device=DEVICE)\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111, projection='3d')\\n\",\n    \"ax.scatter(means[sub_sample_means_idx,0].cpu(), means[sub_sample_means_idx,1].cpu(), means[sub_sample_means_idx,2].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Gaussian Means (Subsampled)\\\")\\n\",\n    \"plt.show()\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.scatter(means[sub_sample_means_idx,0].cpu(), means[sub_sample_means_idx,1].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Gaussian Means BEV (Subsampled)\\\")\\n\",\n    \"ax.axis('equal')\\n\",\n    \"ax.grid(\\\"on\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Prepare data for rasterization\\n\",\n    \"\\n\",\n    \"Before rasterization, we need to put the lidar points we want to render into a suitable format. Similar to how Gaussians are assigned to tiles, we assign the lidar points to tiles. The resulting `raster_pts` serves as a lookup during rasterization, where the thread can check the exact azimuth, elevation and rolling shutter offset time for the point to render. \\n\",\n    \"\\n\",\n    \"The tiles should be at most 256 \\\"pixels\\\", but don't have to be square.\\n\",\n    \"\\n\",\n    \"Note that if more than 256 lidar points fall into the same tile, some of them will be ignored currently. During evaluation, you can account for this by creating two `raster_pts`, where the overflowing points end up in the second `raster_pts`. The rasterization code allows for batching, so this introduces little overhead. During training, shuffling the points is an effective strategy to use all of the points for supervision eventually.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<matplotlib.image.AxesImage at 0x14fc30698280>\"\n      ]\n     },\n     \"execution_count\": 5,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAkcAAAHHCAYAAAC1G/yyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d5Skd3Hu/3TOOUx3T+jJaWeTVlrliLAEQjIYg7F1MelngpFkkuM9IGG4ljE20SCuOSA5YBthLhzAIAySEBLKmyfs5DzdPZ1z7vf3x1LlntUKJFmLAvU5Z480PT3db7/9hvpWPfWUSlEUBYIgCIIgCAIAQP1Cb4AgCIIgCMKLCQmOBEEQBEEQ2pDgSBAEQRAEoQ0JjgRBEARBENqQ4EgQBEEQBKENCY4EQRAEQRDakOBIEARBEAShDQmOBEEQBEEQ2pDgSBAEQRAEoQ0JjgTh56ysrEClUuGuu+76pc9961vfit7e3rO+Tc83z+YzCi8+ent78da3vvWsvPZdd90FlUqFlZWVZ/zcJ5988qxsiyC80EhwJPxa8FK+mF9xxRVQqVT8z+1247zzzsNXv/pVtFqtX9l2lEol3HbbbfjJT37yvL7uQw89hFe96lXo7OyE0WhET08Prr/+evzrv/7r8/o+7Xzxi188Y4A4PT2N22677RkFCL8OPN1++p9y22237TimdTodent7ccsttyCTyTzv7ycIzxbtC70BgvBiIRwOo1wuQ6fTvdCb8hS6urpw++23AwDi8Tj+6Z/+Ce94xzswNzeHv/7rv37Gr/M/+YylUgkf/ehHAZwK2J4PvvGNb+B3fud3sG/fPvzRH/0RXC4XlpeX8dOf/hRf/vKX8Xu/93vPy/uczhe/+EV4vd6nZGGmp6fx0Y9+FFdcccVLMjP4P+HNb34z3vSmN8FgMPBjT7efni/uuOMOWK1WFItF3Hvvvfj85z+Pw4cP46GHHjor7ycIzxQJjgTh56hUKhiNxl/5+7ZaLdRqtV/43g6HA//rf/0v/vld73oXRkZG8Pd///f42Mc+9oyDnRfqMz4dt912G8bHx/Hoo49Cr9fv+N329vYLtFXPP8ViERaL5YXejF+IRqOBRqP5lb7nb//2b8Pr9QI4dUy/6U1vwte//nU8/vjjOHjw4K90WwShHSmrCcLPeTo9zre//W1MTEzAaDRiYmIC3/rWt87493/7t3+Liy66CB6PByaTCQcOHMB//Md/POV5KpUKN910E772ta9h165dMBgMuOeee57VtprNZlxwwQUoFouIx+MAgKWlJbzhDW+A2+3m3//nf/7nL/2Mb33rW2G1WrG5uYnXvva1sFqt8Pl8+NCHPoRms8l/5/P5AAAf/ehHuRxy2223AQCi0Sje9ra3oaurCwaDAcFgEL/5m7/5S8tTi4uLOO+8854SGAGA3+/f8XOr1cJnP/tZ7N69G0ajET6fD9dee+2OUumdd96Jq666Cn6/HwaDAePj47jjjjt2vE5vby+mpqbwwAMP8Oe44oorcNddd+ENb3gDAODKK6/k37WXEX/wgx/g0ksvhcVigc1mw3XXXYepqakdr0/7c3FxEa9+9aths9lw44038mf4zGc+g127dsFoNKKjowPvete7kE6nd7yGoij4+Mc/jq6uLpjNZlx55ZVPeZ+n45xzzsFv/dZv7Xhs9+7dUKlUOH78OD/29a9/HSqVCjMzMwCeqjl6uv3UTrVaxQc+8AH4fD5YLBa87nWv4+PxuXDppZcCOHVcEKlUCh/60Iewe/duWK1W2O12vOpVr8KxY8d2/O1PfvITqFQq3H333fg//+f/oKurC0ajEa94xSuwsLDwlPf6whe+gP7+fphMJhw8eBAPPvggrrjiijN+xltvvRWDg4MwGAzo7u7Gn/zJn6BarT7nzym8+JHMkSD8Av7rv/4Lr3/96zE+Po7bb78dyWSSg4DT+exnP4sbbrgBN954I2q1Gv793/8db3jDG/C9730P11133Y7n3nfffbj77rtx0003wev1PqcSztLSEjQaDZxOJ2KxGC666CKUSiXccsst8Hg8+Md//EfccMMN+I//+A+87nWv+4Wv1Ww2cc011+D888/H3/7t3+LHP/4x/u7v/g4DAwN4z3veA5/PhzvuuAPvec978LrXvY5vvnv27AEAvP71r8fU1BRuvvlm9Pb2Ynt7Gz/60Y+wtrb2Cz9bOBzGvffei42NjTPu03be8Y534K677sKrXvUq/H//3/+HRqOBBx98EI8++ijOPfdcAKfKNLt27cINN9wArVaL7373u/jDP/xDtFotvPe97wUAfOYzn8HNN98Mq9WK//2//zcAoKOjAwMDA7jlllvwuc99Dn/xF3+BsbExAOD//vM//zPe8pa34JprrsEnPvEJlEol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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAh8AAABKCAYAAAAbgTa8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9dElEQVR4nO2deZRU1bX/vzXP89jVXT3QDC0zgiIKYpSAI0pmH1GJiRM4EeMUH1Ff9KExiRifMSbrBX2JRmOCij6VEEBERYjIKND0QM9dVV1d8zyd3x/8zn5dggwGu2lzPmvVWt333rp19r3n7LOnc6+EMcYgEAgEAoFAMEhIh7oBAoFAIBAI/rUQxodAIBAIBIJBRRgfAoFAIBAIBhVhfAgEAoFAIBhUhPEhEAgEAoFgUBHGh0AgEAgEgkFFGB8CgUAgEAgGFWF8CAQCgUAgGFSE8SEQCAQCgWBQEcaHQDDMqa2txaJFi4a6GUelUCjgrrvugtfrhVQqxRVXXDHUTRIIBEOIMD4Egk/x7LPPQiKR0EetVsPj8WDevHn41a9+hXg8PtRNHHb8/ve/x2OPPYZvfOMbeO6557B06dIhbU8qlcIDDzyAd955Z0jbcTy8+eabeOCBB4a6GQLBSUU+1A0QCE5V/uM//gN1dXXI5/Pw+Xx45513cPvtt+OXv/wlVq9ejYkTJw51EwEAjY2NkEpPbT9i/fr1qKysxOOPPz7UTQFwyPh48MEHAQDnnXfe0DbmGLz55pt46qmnhAEi+FIhjA+B4DO46KKLMG3aNPr/3nvvxfr163HppZdi/vz52LdvHzQazWd+P5lMQqfTfeHtVKlUX/hv/LMEAgGYzebP9V3GGDKZzFGv9anCYN1zgWC4c2q7SwLBKcb555+PZcuWob29HX/84x9p+6JFi6DX69HS0oKLL74YBoMBCxcuBABs2rQJ3/zmN1FdXQ2VSgWv14ulS5cinU7T91evXg2JRIJdu3bRtr/+9a+QSCT42te+VtaG0047Dd/+9rfp/0/XfPC00fvvv48f/vCHcDgc0Ol0WLBgAfr6+srOVSqV8MADD8Dj8UCr1eIrX/kK9u7de9x1JMlkEnfccQe8Xi9UKhXGjBmDn//85+Avy25ra4NEIsGGDRvwySefUCrraOmO2tpaXHrppVizZg2mTZsGjUaDZ555BgCwcuVKnH/++XA6nVCpVBg7diyefvrpw87x0UcfYd68ebDb7dBoNKirq8O1115LbXI4HACABx98kNo0MLKwf/9+fOMb34DVaoVarca0adOwevXqst/g13njxo1YvHgxnE4nqqqqjnnNBl6Xn//853j88cdRU1MDjUaD2bNnY8+ePXTcokWL8NRTTwFAWSqQ8+KLL2Lq1KkwGAwwGo2YMGECnnjiieNqg0AwlIjIh0Bwglx11VX48Y9/jL/97W+47rrraHuhUMC8efMwc+ZM/PznP4dWqwUAvPzyy0ilUrjppptgs9mwdetWPPnkk+jq6sLLL78MAJg5cyYkEgneffddSuds2rQJUqkU7733Hv1GX18f9u/fj5tvvvmY7bzllltgsVhw//33o62tDStWrMDNN9+Ml156iY6599578bOf/QyXXXYZ5s2bh507d2LevHnIZDLHPD9jDPPnz8eGDRvw/e9/H5MnT8aaNWtw5513oru7G48//jgcDgf+8Ic/4OGHH0YikcDy5csBHDKgjkZjYyOuvPJK3HDDDbjuuuswZswYAMDTTz+NcePGYf78+ZDL5Xj99dexePFilEolLFmyBMChKMvcuXPhcDhwzz33wGw2o62tDatWrQIAOBwOPP3007jpppuwYMECMu74df/kk09wzjnnoLKyEvfccw90Oh3+/Oc/44orrsBf//pXLFiwoKytixcvhsPhwE9+8hMkk8ljXreB/M///A/i8TiWLFmCTCaDJ554Aueffz52794Nl8uFG264AT09PVi7di3+8Ic/lH137dq1uPLKK3HBBRfg0UcfBQDs27cP77//Pm677bYTaodAMOgwgUBQxsqVKxkA9o9//OMzjzGZTGzKlCn0/zXXXMMAsHvuueewY1Op1GHbli9fziQSCWtvb6dt48aNY9/61rfo/9NPP51985vfZADYvn37GGOMrVq1igFgO3fupONqamrYNddcc1j758yZw0qlEm1funQpk8lkLBKJMMYY8/l8TC6XsyuuuKKsbQ888AADUHbOI/Hqq68yAOyhhx4q2/6Nb3yDSSQS1tzcTNtmz57Nxo0bd9TzDZQHAHv77bcP23ekazlv3jw2YsQI+v+VV1455v3r6+tjANj9999/2L4LLriATZgwgWUyGdpWKpXY2WefzUaNGkXb+HWeOXMmKxQKxyUb5+DBgwwA02g0rKuri7Zv2bKFAWBLly6lbUuWLGFHUtW33XYbMxqNJ/zbAsGpgEi7CASfA71ef8RVLzfddNNh2wbWKiSTSQSDQZx99tlgjGH79u20b9asWdi0aRMAIB6PY+fOnbj++utht9tp+6ZNm2A2mzF+/PhjtvH6668vC9HPmjULxWIR7e3tAIB169ahUChg8eLFZd+75ZZbjnlu4FAhpEwmw6233lq2/Y477gBjDG+99dZxnedI1NXVYd68eYdtH3gto9EogsEgZs+ejdbWVkSjUQCg2pI33ngD+Xz+hH43FAph/fr1+Na3voV4PI5gMIhgMIj+/n7MmzcPTU1N6O7uLvvOddddB5lMdoISHuKKK65AZWUl/X/mmWdi+vTpePPNN4/5XbPZjGQyibVr136u3xYIhhJhfAgEn4NEIgGDwVC2TS6XHzHn39HRgUWLFsFqtUKv18PhcGD27NkAQBMmcMg46O3tRXNzMz744ANIJBLMmDGjzCjZtGkTzjnnnONa3VJdXV32v8ViAQCEw2EAICNk5MiRZcdZrVY69mi0t7fD4/Ecdh14SoWf//NQV1d3xO3vv/8+5syZA51OB7PZDIfDgR//+McA/u9azp49G1//+tfx4IMPwm634/LLL8fKlSuRzWaP+bvNzc1gjGHZsmVwOBxln/vvvx/AobTO8bT1eBg1atRh20aPHo22trZjfnfx4sUYPXo0LrroIlRVVeHaa6/F22+//bnbIhAMJqLmQyA4Qbq6uhCNRg+btFUq1WFGQbFYxFe/+lWEQiHcfffdaGhogE6nQ3d3NxYtWoRSqUTHzpw5EwDw7rvvorW1Faeffjp0Oh1mzZqFX/3qV0gkEti+fTsefvjh42rnZ3nj7P8Xg57KHGllS0tLCy644AI0NDTgl7/8JbxeL5RKJd588008/vjjdC0lEgn+8pe/4MMPP8Trr7+ONWvW4Nprr8UvfvELfPjhh9Dr9Z/5u/wcP/rRj44YeQEON9aGahWO0+nEjh07sGbNGrz11lt46623sHLlSlx99dV47rnnhqRNAsHxIowPgeAE4YV/nzU5DWT37t04cOAAnnvuOVx99dW0/Uih8urqalRXV2PTpk1obW3FrFmzAADnnnsufvjDH+Lll19GsVjEueeee1LkqKmpAXDI2x/ovff391N05Fjf//vf/454PF4W/di/f3/Z+U8Wr7/+OrLZLFavXl0W1dmwYcMRjz/rrLNw1lln4eGHH8YLL7yAhQsX4sUXX8QPfvCDsnTUQEaMGAEAUCgUmDNnzklt/5Foamo6bNuBAwdQW1tL/39WWwFAqVTisssuw2WXXYZSqYTFixfjmWeewbJlyw4zkgSCUwmRdhEIToD169fjpz/9Kerq6mgp7dHg0YeB0QbG2Gcuh5w1axbWr1+PrVu3kvExefJkGAwGPPLII9BoNJg6depJkAS44IILIJfLD1uq+l//9V/H9f2LL74YxWLxsOMff/xxSCQSXHTRRSelnZwjXctoNIqVK1eWHRcOhw+L7kyePBkAKPXCVyJFIpGy45xOJ8477zw888wz6O3tPawNn16q/M/y6quvltWQbN26FVu2bCm7dvy5IZ9ua39/f9n/UqmUVuwcT4pJIBhKRORDIPgM3nrrLezfvx+FQgF+vx/r16/H2rVrUVNTg9WrV0OtVh/zHA0NDaivr8ePfvQjdHd3w2g04q9//etnRhZmzZqF559/HhKJhNIwMpkMZ599NtasWYPzzjsPSqXypMjncrlw22234Re/+AXmz5+PCy+8EDt37sRbb70Fu91+VI8bAC677DJ85StfwX333Ye2tjZMmjQJf/vb3/Daa6/h9ttvR319/UlpJ2fu3Lnk6d9www1IJBL43e9+B6fTWWYoPPfcc/j1r3+NBQsWoL6+HvF4HL/73e9gNBpx8cUXAziUKhk7dixeeukljB49GlarFePHj8f48ePx1FNPYebMmZgwYQKuu+46jBgxAn6/H5s3b0ZXVxd27tx50mQaOXIkZs6ciZtuugnZbBYrVqyAzWbDXXfdRcdwY/PWW2/FvHnzIJPJ8J3vfAc/+MEPEAqFcP7556Oqqgrt7e148sknMXny5GMuZRYIhpyhW2gjEJya8CWU/KNUKpnb7WZf/epX2RNPPMFisdhh37nmmmuYTqc74vn27t3L5syZw/R6PbPb7ey6665jO3fuZADYypUry4795JNPGAB22mmnlW1/6KGHGAC2bNmyw87/WUttP73UdMOGDQwA27BhA20rFAps2bJlzO12M41Gw84//3y2b98+ZrPZ2I033niMK8VYPB5nS5cuZR6PhykUCjZq1Cj22GOPlS3xZezEl9pecsklR9y3evVqNnHiRKZWq1ltbS179NFH2e9//3sGgB08eJAxxtjHH3/MrrzySlZdXc1U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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Generate raster_pts from the point cloud\\n\",\n    \"import math\\n\",\n    \"from gsplat.cuda._wrapper import map_points_to_lidar_tiles, points_mapping_offset_encode, populate_image_from_points\\n\",\n    \"\\n\",\n    \"# Define tiling settings\\n\",\n    \"tile_width = 64 # each tile is 64 beams wide\\n\",\n    \"tile_height = 4 # each tile is 4 beams high\\n\",\n    \"# Boundary points for the tiles in the elevation direction\\n\",\n    \"elevation_boundaries = torch.cat(\\n\",\n    \"                [\\n\",\n    \"                    elevations[0:1] - 1.0,\\n\",\n    \"                    (\\n\",\n    \"                        elevations[tile_height::tile_height]\\n\",\n    \"                        + elevations[tile_height - 1 : -1 : tile_height]\\n\",\n    \"                    )\\n\",\n    \"                    / 2,\\n\",\n    \"                    elevations[-1:] + 1.0,\\n\",\n    \"                ]\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"# Map points to tiles\\n\",\n    \"points_tile_ids, flatten_ids = map_points_to_lidar_tiles(\\n\",\n    \"        points2d=point_cloud[None,:,:2], elev_boundaries=elevation_boundaries, tile_azim_resolution=azimuth_resolution*tile_width, min_azim=min_azimuth\\n\",\n    \"    )\\n\",\n    \"\\n\",\n    \"tile_offsets = points_mapping_offset_encode(\\n\",\n    \"            points_tile_ids,\\n\",\n    \"            1,\\n\",\n    \"            math.ceil((max_azimuth-min_azimuth)/(azimuth_resolution*tile_width)),\\n\",\n    \"            len(elevations) // tile_height,\\n\",\n    \"        )\\n\",\n    \"\\n\",\n    \"# Generate raster_pts, used for lidar rendering\\n\",\n    \"raster_pts = populate_image_from_points(  # [1, H, W, 5] (elev, azimuth, range, time, intensity)\\n\",\n    \"                point_cloud[None],\\n\",\n    \"                image_width=len(azimuths),\\n\",\n    \"                image_height=len(elevations),\\n\",\n    \"                tile_width=tile_width,\\n\",\n    \"                tile_height=tile_height,\\n\",\n    \"                tile_offsets=tile_offsets,\\n\",\n    \"                flatten_id=flatten_ids,\\n\",\n    \"            )\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.scatter(point_cloud[...,0].cpu(), point_cloud[...,1].cpu(), s=0.01, c=point_cloud[...,2].cpu(), cmap='gray')\\n\",\n    \"ax.axis('equal')\\n\",\n    \"ax.set_title(\\\"Lidar Points Scattered with Range\\\")\\n\",\n    \"ax.set_xlabel(\\\"Azimuth\\\")\\n\",\n    \"ax.set_ylabel(\\\"Elevation\\\")\\n\",\n    \"fig.show()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.set_title(\\\"Drawing of raster_pts\\\")\\n\",\n    \"ax.imshow(raster_pts[0, ..., 2].cpu().numpy(), cmap='gray')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Run rasterization\\n\",\n    \"\\n\",\n    \"With Gaussians defined and lidar points in a suitable format we can run the lidar rasterization. Additional arguments to the `lidar_rasterization` are the linear and angular velocitiy of the sensor itself. \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Run the rasterization\\n\",\n    \"viewmats = torch.eye(4, device=DEVICE).unsqueeze(0) # world-to-lidar transform [1, 4, 4]\\n\",\n    \"rendered_feat, rendered_alpha, alpha_sum_until_points, meta_info = lidar_rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    lidar_features=features.unsqueeze(0),\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    raster_pts=raster_pts[..., :4],\\n\",\n    \"    tile_elevation_boundaries=elevation_boundaries.clone(),\\n\",\n    \"    min_azimuth=min_azimuth,\\n\",\n    \"    max_azimuth=max_azimuth,\\n\",\n    \"    min_elevation=min_elevation,\\n\",\n    \"    max_elevation=max_elevation,\\n\",\n    \"    n_elevation_channels=n_elevation_channels,\\n\",\n    \"    azimuth_resolution=azimuth_resolution,\\n\",\n    \"    tile_width=tile_width,\\n\",\n    \"    tile_height=tile_height,\\n\",\n    \")\\n\",\n    \"rendered_expected_depth = rendered_feat[...,-1]\\n\",\n    \"rendered_median_depth = meta_info['median_depths']\\n\",\n    \"rendered_feat = rendered_feat[..., :-1] # remove the depth channel\\n\",\n    \"\\n\",\n    \"valid_pixels = (rendered_alpha > 0).any(dim=-1)\\n\",\n    \"valid_raster_pts = raster_pts[valid_pixels]\\n\",\n    \"valid_rendered_feat = rendered_feat[valid_pixels]\\n\",\n    \"valid_rendered_expected_depth = rendered_expected_depth[valid_pixels]\\n\",\n    \"valid_rendered_median_depth = rendered_median_depth[valid_pixels].squeeze(-1)\\n\",\n    \"pred_points_spherical = torch.cat([valid_raster_pts[..., :2], valid_rendered_expected_depth[:,None]], dim=-1) # (n_valid_points, 3)\\n\",\n    \"pred_points_xyz_expected_depth = torch.stack([\\n\",\n    \"    torch.cos(pred_points_spherical[...,1].deg2rad()) * torch.cos(pred_points_spherical[...,0].deg2rad()) * pred_points_spherical[...,2],\\n\",\n    \"    torch.cos(pred_points_spherical[...,1].deg2rad()) * torch.sin(pred_points_spherical[...,0].deg2rad()) * pred_points_spherical[...,2],\\n\",\n    \"    torch.sin(pred_points_spherical[...,1].deg2rad()) * pred_points_spherical[...,2]\\n\",\n    \"], dim=-1) # (n_valid_points, 3)\\n\",\n    \"pred_points_xyz_median_depth = torch.stack([\\n\",\n    \"    torch.cos(pred_points_spherical[...,1].deg2rad()) * torch.cos(pred_points_spherical[...,0].deg2rad()) * valid_rendered_median_depth,\\n\",\n    \"    torch.cos(pred_points_spherical[...,1].deg2rad()) * torch.sin(pred_points_spherical[...,0].deg2rad()) * valid_rendered_median_depth,\\n\",\n    \"    torch.sin(pred_points_spherical[...,1].deg2rad()) * valid_rendered_median_depth\\n\",\n    \"], dim=-1) # (n_valid_points, 3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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Px+V81QoBIZCoTir+Na3vmXYbDbDZrMZl19+ufHud7/b+Nd//Vej1+vted3S0pJhtVqNq666yhgOh3t+NxqN5N/b29v3+443v/nNxtjYmNHpdORnL3rRi4yZmZn7vfbmm282ABif//zn7/cd+/btM57//Off7/vm5uaM5z3vefKz97///QYA4zWvec2ez1hdXTVsNpvxh3/4h3t+ftdddxl2u11+3uv1jEQiYVxwwQVGt9uV133uc58zABhXXHHF/Y77dMzMzBg//dM/bRSLRaNYLBp33HGH8epXv9oAYLz97W83DMMwVlZWDABGIBAwCoXCnvc/97nPNc4999w912w0GhlPe9rTjH379snPfvM3f9MAYNx0003ys0KhYASDQQOAsbKyIj+/4oor9hz7X/3VXxkAjI9+9KP3O35e42KxaAAw3v/+99/vNWfjGM8E3s9isXjG31erVQOAcdVVV8kxPNyx8pKXvGTPZ/76r/+6AcC444475Gder9d4/etf/4DH98u//Mt7fn7VVVcZ0Wj0Qc9NoXgk0LKaQnGW8bznPQ833HADXvKSl+COO+7AH//xH+P5z38+JiYm9pRH/uEf/gGj0Qjve9/7YLXufTQtFov828wGNJtNlEolPPOZz8T29jaOHTv2iI/z9ttvx9LSEl772teiXC6jVCqhVCqh3W7juc99Lr7//e/fr0xzuq7n61//OkajEV71qlfJ+0ulElKpFPbt24fvfOc7AIAf/ehHKBQKeMtb3rJHp/NLv/RLCAaDD/mYv/WtbyEejyMej+P888/HV7/6VfziL/7i/ZiEl7/85VK+AoBKpYLrr78er3rVq+QalkollMtlPP/5z8fS0hK2trYAAP/0T/+Epz71qXuYkHg8jquvvvrHHt/XvvY1xGIxvP3tb7/f78z39Ex4rI7xocDn8wHYHW/AIxsrb33rW/f8n9fkn/7pnx7ycZw+3p75zGeiXC6j0Wg87HNSKB4MWlZTKB4DXHLJJfj617+OXq+HO+64A9/4xjfwsY99DK94xStw++234/Dhw1heXobVasXhw4cf9LPuuece/P7v/z6uv/76+y0K9Xr9ER/j0tISAOD1r3/9A76mXq8jHA7L/+fm5u73GYZhYN++fWd8v8PhAACsra0BwP1e53A4MD8//5CP+bLLLsOHPvQhaT8/dOjQGbVdpx/nyZMnYRgG3vve9+K9733vGT+7UChgYmICa2truOyyy+73+wMHDvzY41teXsaBAwdgtz/8qfaxOsaHglarBQDw+/0AHtlYOf1eLywswGq1PiwPpunp6T3/5+dXq1UEAoGH/DkKxY+DBkcKxWMIp9OJSy65BJdccgn279+PN7zhDfjqV7+K97///Q/p/bVaDVdccQUCgQA++MEPYmFhAW63G7feeit+53d+578kwOV7P/KRj+CCCy4442vIIBCna1pGoxEsFgv++Z//GTab7ce+/7+KWCyGK6+88se+7kzHCQDvete78PznP/+M71lcXPyvH+B/AU+kY7z77rv3fN8jGSun48cxZ2fCmcYUANG7KRSPFjQ4UigeJ1x88cUAgGw2C2A3kx6NRjh69OgDLjjf/e53US6X8fWvfx3Petaz5OfszjLjgRafB/o5xa+BQOAhBRwP9BmGYWBubg779+9/wNfNzMwA2GUgnvOc58jP+/0+VlZWcP755z+i73+oIDvlcDh+7LnOzMwIU2LG8ePHf+z3LCws4KabbkK/3xfW7HQ80P14rI7xoeCLX/wiAEiQ9kjGytLS0h4G7+TJkxiNRpidnZWfPZKASaE4G1DNkUJxlvGd73znjJkttRYsfbz0pS+F1WrFBz/4wfsxQHw/M2fz5/V6PfzZn/3Z/T7f6/WescxGL6Jarbbn5xdddBEWFhbwJ3/yJ1JGMaNYLD7gORIve9nLYLPZ8IEPfOB+52wYBsrlMoDdwDAej+Ozn/0ser2evOYLX/jC/Y7rbCCRSODZz342/vzP/1yCUzPM5/ozP/MzuPHGG/Ef//Efe37/t3/7tz/2e17+8pejVCrhU5/61P1+x+szNjYG4P7347E6xh+HL33pS/iLv/gLXH755Xjuc58L4JGNlU9/+tN7/k93+Be+8IXyM6/X+5jcf4Xix0GZI4XiLOPtb387tre3cdVVV+HgwYPo9Xr44Q9/iC9/+cuYnZ3FG97wBgC7JYvf+73fwx/8wR/gmc98Jl72spfB5XLh5ptvRjqdxoc//GE87WlPQzgcxutf/3r8xm/8BiwWC774xS+eMfi66KKL8OUvfxnvfOc7cckll8Dn8+HFL34xFhYWEAqF8NnPfhZ+vx9erxeXXXYZ5ubm8Bd/8Rd44QtfiCNHjuANb3gDJiYmsLW1he985zsIBAL45je/+aDnurCwgA996EN4z3veg9XVVbz0pS+F3+/HysoKvvGNb+BNb3oT3vWud8HhcOBDH/oQ3vzmN+M5z3kOfv7nfx4rKyv4/Oc//7A0R/8VfPrTn8YznvEMnHvuufjVX/1VzM/PI5/P44YbbsDm5ibuuOMOAMC73/1ufPGLX8QLXvACvOMd75A2+ZmZGdx5550P+h2ve93r8Nd//dd45zvfif/4j//AM5/5TLTbbXz729/Gr//6r+Pnfu7n4PF4cPjwYXz5y1/G/v37EYlEcM455+Ccc855TI7RjL//+7+Hz+dDr9fD1tYW/vVf/xU/+MEPROxOWK3Whz1WVlZW8JKXvAQveMELcMMNN+Bv/uZv8NrXvnYPS3jRRRfh29/+Nj760Y8inU5jbm7ujFoqheKs4/FpklMo/vvgn//5n41f/uVfNg4ePGj4fD7D6XQai4uLxtvf/nYjn8/f7/V/9Vd/ZVx44YWGy+UywuGwccUVVxjXXnut/P4HP/iB8dSnPtXweDxGOp0WawAAxne+8x15XavVMl772tcaoVDIALCnrf8f//EfjcOHDxt2u/1+bf233Xab8bKXvcyIRqOGy+UyZmZmjFe96lXGddddJ6/5ca3fX/va14xnPOMZhtfrNbxer3Hw4EHjrW99q3H8+PE9r/uzP/szY25uznC5XMbFF19sfP/7379fO/wDYWZmxnjRi170oK9hK/9HPvKRM/5+eXnZeN3rXmekUinD4XAYExMTxs/+7M8af//3f7/ndXfeeadxxRVXGG6325iYmDD+4A/+wPjLv/zLH9vKbxi77e2/93u/Z8zNzRkOh8NIpVLGK17xCmN5eVle88Mf/tC46KKLDKfTeb+2/kf7GM8E3k/+cbvdxuTkpPGzP/uzxl/91V/tsRIw4+GMlaNHjxqveMUrDL/fb4TDYeNtb3ubsbOzs+fzjh07ZjzrWc8yPB6PAUDa+h9ovH3+859/SOenUDxcWAxDlWwKhUKhODu45ppr8IEPfADFYnHP1iQKxRMZqjlSKBQKhUKhMEGDI4VCoVAoFAoTNDhSKBQKhUKhMEE1RwqFQqFQKBQmKHOkUCgUCoVCYYIGRwqFQqFQKBQmqAnkw8RoNEImk4Hf71ere4VCoVAofkJgGAaazSbS6TSs1gfnhjQ4epjIZDKYmpp6vA9DoVAoFArFI8DGxgYmJycf9DUaHD1M+P1+ALsXNxAIPM5Ho1AoFAqF4qGg0WhgampK1vEHgwZHDxMspQUCAQ2OFAqFQqH4CcNDkcSoIFuhUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEzQ4EihUCgUCoXCBA2OFAqFQqFQKEz4iQqOvv/97+PFL34x0uk0LBYL/uEf/mHP7w3DwPve9z6Mj4/D4/HgyiuvxNLS0p7XVCoVXH311QgEAgiFQviVX/kVtFqtx/AsFAqFQqFQPJHxExUctdttnH/++fj0pz99xt//8R//MT7xiU/gs5/9LG666SZ4vV48//nPR6fTkddcffXVuOeee3Dttdfi//7f/4vvf//7eNOb3vRYnYJCoVAoFIonOCyGYRiP90E8ElgsFnzjG9/AS1/6UgC7rFE6ncZv//Zv413vehcAoF6vI5lM4gtf+AJe/epX495778Xhw4dx88034+KLLwYA/Mu//At+5md+Bpubm0in0z/2exuNBoLBIOr1OgKBwFk7P4VCoVAoFI8eHs76/RPFHD0YVlZWkMvlcOWVV8rPgsEgLrvsMtxwww0AgBtuuAGhUEgCIwC48sorYbVacdNNN53xc7vdLhqNxp4/CoVCoVAonrx40gRHuVwOAJBMJvf8PJlMyu9yuRwSicSe39vtdkQiEXnN6fjwhz+MYDAof6amps7C0SsUCoVCoXii4EkTHJ0tvOc970G9Xpc/Gxsbj/chKRQKhUKhOIt40gRHqVQKAJDP5/f8PJ/Py+9SqRQKhcKe3w8GA1QqFXnN6XC5XAgEAnv+KBQKhUKhePLiSRMczc3NIZVK4brrrpOfNRoN3HTTTbj88ssBAJdffjlqtRpuueUWec3111+P0WiEyy677DE/ZoVCoVAoFE882B/vA3g4aLVaOHnypPx/ZWUFt99+OyKRCKanp/Gbv/mb+NCHPoR9+/Zhbm4O733ve5FOp6Wj7dChQ3jBC16AX/3VX8VnP/tZ9Pt9vO1tb8OrX/3qh9SpplAoFAqF4smPn6jg6Ec/+hF+6qd+Sv7/zne+EwDw+te/Hl/4whfw7ne/G+12G29605tQq9XwjGc8A//yL/8Ct9st7/nbv/1bvO1tb8Nzn/tcWK1WvPzlL8cnPvGJx/xcFAqFQqFQPDHxE+tz9HhBfY4UCoVCofjJw39LnyOFQqFQKBSKRwMaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCYoMGRQqFQKBQKhQkaHCkUCoVCoVCY8KQKjq655hpYLJY9fw4ePCi/73Q6eOtb34poNAqfz4eXv/zlyOfzj+MRKxQKhUKheKLhSRUcAcCRI0eQzWblz7//+7/L737rt34L3/zmN/HVr34V3/ve95DJZPCyl73scTxahUKhUCgUTzTYH+8DeLRht9uRSqXu9/N6vY6//Mu/xJe+9CU85znPAQB8/vOfx6FDh3DjjTfiqU996mN9qAqFQqFQKJ6AeNIxR0tLS0in05ifn8fVV1+N9fV1AMAtt9yCfr+PK6+8Ul578OBBTE9P44YbbnjAz+t2u2g0Gnv+KBQKhUKhePLiSRUcXXbZZfjCF76Af/mXf8FnPvMZrKys4JnPfCaazSZyuRycTidCodCe9ySTSeRyuQf8zA9/+MMIBoPyZ2pq6iyfhUKhUCgUiscTT6qy2gtf+EL593nnnYfLLrsMMzMz+MpXvgKPx/OIPvM973kP3vnOd8r/G42GBkgKhUKhUDyJ8aRijk5HKBTC/v37cfLkSaRSKfR6PdRqtT2vyefzZ9QoES6XC4FAYM8fhUKhUCgUT148qYOjVquF5eVljI+P46KLLoLD4cB1110nvz9+/DjW19dx+eWXP45HqVAoFAqF4omEJ1VZ7V3vehde/OIXY2ZmBplMBu9///ths9nwmte8BsFgEL/yK7+Cd77znYhEIggEAnj729+Oyy+/XDvVFAqFQqFQCJ5UwdHm5iZe85rXoFwuIx6P4xnPeAZuvPFGxONxAMDHPvYxWK1WvPzlL0e328Xzn/98/Nmf/dnjfNQKhUKhUCieSLAYhmE83gfxk4RGo4FgMIh6va76I4VCoVAofkLwcNbvJ7XmSKFQKBQKheLhQoMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwQYMjhUKhUCgUChM0OFIoFAqFQqEwwf54H4DiPtx222340Y9+hHa7jWg0ivHxcQyHQ4TDYezs7KDf78Pj8cDn8yGfzyMSiaBUKmE4HMLv9+PkyZPo9/twOBwYjUbw+/1IJBIoFosIh8NoNpsIBALweDzo9/sIBALo9XrY2dlBOBzG8vKyvOf48eOoVquYmpqCzWZDp9NBv99HNBpFLpdDLBaDzWaD0+nE5uYm6vU6LBYLxsfHkUwmYRgGtre34XK50Gw20W630el0MBgMkEgkkEqlkM/nUa/XAQAOhwPtdhterxd2ux2NRgOJRAKdTgedTgeZTAZ+vx9OpxPlchkejwcvfvGLsbW1hV6vh8FggHvvvRf1eh2dTgderxfxeByxWAwAsLGxAQCIxWJwuVyo1WpyfKPRCKFQCMFgEKPRCIZhYDgcIpvNIhQKIZ1Oo1arwePxoN1uw+/3o9/vo9FoYGdnB16vF+VyGfV6HfV6HcPhELFYDA6HA6FQCMPhENvb20gmk3A6nWi1WqhUKpiamsLY2Bj6/T5cLhfcbje8Xi9isRi8Xi88Hg8Mw0C9Xkc2m8XKygrK5TJ2dnYwGo0QCATg9Xrh8/mwf/9+lEolOBwOeDweVCoVdLtddDodNJtNjI2NodPpyPWamprC5ZdfjmPHjmFnZweBQACBQACVSgU7Ozuw2+2w2+3y+VarFWtra2i1WnC5XJiamsLm5ia63S68Xi8GgwF6vR6cTqecx/LyMiqVCux2O9LpNOLxOIbDIUajEU6dOgXDMODxeOB0OlGtVjE2NgaXywWfz4dCoSDfW6/XYbVa4XA4MBwOYbVa0el00Ov1MDk5CYfDgVqthsFggJ2dHYyNjcmYcDqd8Pv98Pl8CAQCGAwG6Ha78Hg86Ha7aLVaiEQi6Pf7qFQqGB8fx/Hjx7G1tQW32w2Px4OJiQkZE36/H+Pj47Db7bBardje3sbx48eRy+Vgs9kQi8VgsVgwHA6RSCTgdrvRbDZhtVrhdDrR6/Vgs9lgs9ng9XphtVoRiUTQarWws7MDj8eDqakpFAoFnDp1CjabDePj42i328jn84jH4/B6vbBYLBgMBmi1Wmg2mxgMBqhWq+h2u7BYLDh48KA8O+Pj40ilUuh2u6jX6xiNRrDb7chms6hUKnA4HHLtOp0OrFYrLBYLtre3AQBut1v+7/F44Ha7EQ6H4Xa74XQ60e120e12YbPZYLfbMRqN0Gg04HK5ZEzx/nFcxuNxdDodzM/Po91uo9/vYzQaYXJyEolEAhsbGxgOh3KfarUafD4fut2uPEvdbhcAZKyGw2G0223s7OzIcz0ajbC9vQ2fz4fRaASv14t+v49OpwOLxYJ6vY7BYCBz3NjYGJrNplz7cDiMdDqNVquFdruNRqOBfr+PqakpJJNJ3HDDDTAMA/v370cgEECn04HT6UQ8HsfKyoqcr91uRyQSQb1eh8PhwOzsLMrlMra3t7GzswOHwwGLxYJIJIJer4dGoyHnMzY2BqfTiUajgWw2i+FwKPeg0WjIWEokEjK/pFIp5HI59Ho9hMNh5HI5udfRaBStVgsHDx5EuVxGr9dDNBrF9vY2/H4/rFarXGe+nmPWbrfDMAzs7Oyg0WjAYrHI/crn87DZbIjH45iamsLW1hZKpRJarRYAwOVyIRaLIZfLYWdnB8FgEE6nEw6HA9vb2+j1egCARCKB8fFxnH/++Y/p+ns6NDh6AmFlZQWnTp1Cv99Hu92WxabVamEwGMAwDFlI2u22/Gm1WhgbG8P6+roERwAQCARk8iyXywCAZrMJn8+HwWAgC6dhGKhUKvIA7ezsYHNzU/4dDAaRy+UwNjaGXC6HdruNYrGIRCKBnZ0dZLNZNBoNCcpsNptMQIZhoN1uy+LF89je3kar1ZLjstvtaLfbcLvdsNlsMkE4HA4Ui0VUq1VZYOr1OjweD06dOoXt7W1UKhUMBgOsra2hWq2i1WrB5/Oh2WzKhF8qlWAYhlwrTjK8Vu12G9VqFaPRCBaLBaPRCFtbW2i323K8w+EQ3W4XY2NjsFgsch+8Xi9KpRJyuRy2t7fR7/eRz+cRCoXgcDhgtVoxHA4laCsWi9jZ2cFgMEAoFJJrHAwG0ev14Pf74Xa7YRiGXMdCoYBsNotsNiuLFhf9SCQCn8+HdrsNu90Op9OJWq2GRqOBwWCARqMhkysnJgCYmJhAoVBAt9uV76lWq9je3obFYoHdbsfY2BiCwSCsVityuRxarZYE18ViEb1eD2NjY7JQezwehEIhjEYjbGxsSHDU7XbRbrdlUV9fX5fr73Q60Ww2ZTE1DAOdTkcCPQacLpdLgjMec7fbhdvtRrValfvDxX0wGMDtdsPv90tyYLfb5bN3dnYkgNzZ2cH29jaazSZOnjyJXC4ngQsA2Gw2CSAcDgccDgdcLhfy+TzW1tYkOKpUKvB6vRgOh3JtuCg5nU4JTHgubrcbvV4Pw+FQAsSxsTGUy2UUi0UYhgGr1Yp2u42trS25Dm63G91uVwL0RqOBWq2GZrMJp9MJp9OJwWAAAHA6nbBYLACASqWC0WiEfr+PQqGAcrkMwzBkjLfbbVitVpkTbDab3F+r1SrXc3t7G16vFw6HQwJVvo/zjNPphM/nQ7Vahc1mg9VqRbFYxHA4RD6fh8vlgs1mk2CKwdZoNJJAz+v1otFooF6vy8Lc7XYxHA7lnBwOB+x2uwTonHccDgcajQaGwyFqtRqsVitisZjc936/j3K5jH6/L/NPMBhEsVjEysqKJGm9Xk/mq3q9Lt9RLpexsrIi81c8Hkev14PH40Gr1ZLgaDAYYDQaIRqNyhxnTlwGg4EE261WC61WC71eD8ViEYPBAH6/HwDQaDSwubmJnZ0dRKNRVCoVNJtN2Gw2hEIhuYbD4RA7Ozuo1Wro9/uo1+soFAoolUpwu90oFosSrPJabG9vYzQaoVwuw+fzodFoYDQawe12y323WCzyp9VqybXtdrvY2NhAuVyWBMZutyOXy8l8xbWr1WqhUChIIMbP7/f7aLVasr5ZLJbHPTiyGBzNioeERqOBYDCIer2OQCDwqH729va2ZLtcVPjgAoBhGDJB2O12OBwOWUisVitcLhfa7TZcLhf8fj/K5bJkGWR5ODn3+32Z0KxWK3q9ngxUZjd8Dx8eDmKLxYKxsTG43W40Gg3JVsfGxgDsZggWi0UmS04OXJhcLpdkaf1+H4ZhYGxsTBZtm82GbrcLn8+HXq8nCx2zfp43F0leH2B3IeA5tVotWCwWeDwe7OzswOfzyfUcDAbyMIdCITlGZi9Wq1UCl36/D6fTieFwiLGxMbleg8EAFosF3W53DwvX7/fh8/kkyLJarZJ5kfVhpjgcDmURCwQCe84FAHq9nlxDwzDkOvK6cNIxDEOCytFoBJfLJYszgx2eF+9Pv9+H1WqVgJDBmNvtlvvC+8FAhswaALmXPH+eO4NBLpxcXHncg8EAY2NjGA6HACABPcf1aDSS8yebV6lUhBFyuVx72C3zeLbZbACAwWAAj8cjY2c4HMq4stvtMl4ZGPC7eV69Xk8YFQaDDBj5zDGocTgccp88Ho98l81mg9vtxs7OjgRXDAA6nQ5arZaMAwbpvO4cs7z2o9FImJRgMIhqtQqn0ymsCIMxsst8D1kRBlQca3yeAEigwc9h8Giz2YS147jgHOL3+1EqlQAAXq9Xxpg5KOO4dTqdkjCZ/yYDaLFY4Pf7ZUxz/DCgqNfrch343ANAt9uF0+mU87HZbDI2uYgbhiFjjoEmkxR+F58Bt9uN7e3tPawgAIyNjcFms8n92tnZkWeu0+nA7/ej1WpJcsPPI1PI+Yb3mEwy/2+z2YSVY/Bnt9vh8XiE/eMzwSCb/97Z2cFwOITT6ZS5zev1SpDLz+CYJPvfaDRkLPf7fYyNjcm80el0YLfb5T2cVznfmdeN0Wgkz7h5vmFSCGDP/MJrx7lxNBoJq815FQAikYjMWY8mHs76rczREwg333wz8vk8Op0O1tfXZfFmlmq1WuH1ehEOh+H1euH1etFsNoUV4YQ6NjaGmZkZHD9+fE+JKR6Pw+fzweFwoFQqYXt7W0oLpLSbzSbW19dhGAbm5ubgdDpx1113odlsSnRvGAYmJyfh9Xpx4sQJbG9vw+12I51OY3x8HOPj43sWv1qtJvSt1+uVRSUcDu+ZOIbDIRqNhkyqXMRtNhuq1SpyuZywSSyxcQIjY+L1erFv3z5sbGxIoMjFIRQKyeRz4sQJrKysIBqN4sCBA/D7/ahUKnKcgUAA6XRaKF+32y3UfSgUQi6XQ7ValbLg9PQ0yuUylpaW4HA4EI/HJagcHx+XklIul5NJzev1ymRitVoxPT2NpzzlKQB2g5jBYIB8Po9CoSAMIVmYer0uk1o4HEYkEsFoNEKr1UKn04HNZtsTsJqZR2aw5kCz0+lIySAQCEiZkwsFJzir1SoBHhkAv9+PZDKJfD6PUqkki/JgMIDP55NFFQDq9brcJ05+LKlwEQ0EAlLqnJ2dRbVaxfLysrAYZPGcTidCoRCcTifa7baUb7jYBINBKXmag1Sn04lAIIBYLAaPxyOBGwOze+65B5lMRhhCBg7BYBAejwfb29vY2NhANptFrVaTANnlciEajWJsbAx2ux1+vx8ul0sCDovFgmAwiIWFBZw4cQK1Wg1OpxMej0deR0aRTAafBQaDiUQC6XQajUYDpVJJriPLwNVqVeaIXC4Hp9OJYDCIWCyGubk5+fxMJoNqtQq73Y56vQ632439+/ejVqtJ4EV2o1gsyjPn8/kwPT2NwWCAXC6Hfr8v7A5ZLYvFIiUXjjlzubPf7yMUCqHT6cizNT4+LmOOJTGLxYJ0Oi0lRZfLJWU9BtqcZ3hfGSCbk52NjQ00m00A9zFagUBA5lHDMODz+aSETZYkm83C6XRicnIS/X4fpVJJmBjOYWSoOD4YUDPxYyDBIN3hcKBarcp9YADfarWk7JvP5xGNRqU8Xi6XUavVYLfbpZw2PT2N4XAo7C0TN64LwG45lKW+crksQXgkEkG325VgiAFLMpmUIJ+BZDAYhN/vlwCm3W6LHGEwGAi7xZKz3+9Hu90WNguAjGOWT61Wq9w/BvulUkkqIcFgEOeeey7OOeecx2DVfWBocPQEAoMKLkgTExOSsTGCp56DAzYYDMriEw6HkclkZCIkZRsMBhEIBBCNRoWlsdvtaDabGA6HezQxiURCsuh4PI5gMAiLxSJlBmqL0um0LBZ8cMfHx2WhZnbAgI4UPFmCer2OZDIpi2gkEkGtVkM4HJYsLRwOywQUi8XkNdRqBAIBmcjJBiSTSXg8HkSjUWxubkoZoN1uY2ZmBtVqVSYYp9OJSCSCw4cPwzAMhMNhobBdLhcOHjyIRqOBVqsFv98vOhKei8/nQzweR7/fx/z8vJTRBoMBpqensbOzI2WyVCoFwzBEn8NAgMEXAMzNzUldn5kb2SRqEAiWCRwOh7yG5Slqanq9HiKRCJrNpiw2XBjIijFAYWDV7XYRi8XQ6XQQCoXkPSxfMRO3Wq1oNBqYmJhAu93GwsKCLMpjY2OySHe7XQmCbTabUP2RSEQYi+3tbWGXzIzb2NgYUqmUaCui0agwR5VKRTRXXq8X1WoVLpdLkohmsyljgZ/N82BwlkgkZNFiyZa6OQYVLGuQDXS5XMJ8sPzA4MxqtSKZTMo14zjkwtTr9ZBIJJBIJKRs63Q64XK5JIhlOcPr9aJWq+0pUVutVsTjcSwuLmJpaUl0IuFwWBKPWq0mzzA1e16vF9FoVMo+ZCaCwaAsjhaLBZOTk4hEIvJMeTwerK+vIx6PwzAMud6cSzhGw+EwKpWKPDdkBDqdDoD7NEFkHjqdjgQj/K6ZmRnRJJLtMAwDR44cwdLSEvx+//20Wizt8dq6XC4JJvkckhHiXMjvT6VSEvxyXIdCIWQyGXg8nj3P4dTUlJSWmKhxcd/e3kY8Hker1cLCwgJqtZoch8PhkDIwg3mLxSIyB4/HIxWAUqkkeqNAIIBgMIh4PI5CoYBqtYpGoyFMUDQaFb1OKBSS551VgsnJSZRKJbhcLsTjcVQqFfh8Prlf+/fvx/r6upQjWdZnIk7dVKfTke/x+/1wOBxwu917njNqtMjKJ5NJOTePxyPJFBPlarUqAS6ZuEQiIeOGgdXU1NRjsOI+OLSs9jBxNstqd9xxB06ePIm1tTXs7OwgnU7Dbrcjn8+LsK7f7yMYDCISicDj8cDv98ugN5dozNG/y+WShwDAnvLHYDAQBoMLIjVF1AOQigV2s3wuRNVqFQBkEbXb7QiFQrJ4Abu6GDIo/G4Gcvv27cPa2hra7bbQ1Ha7HaVSSXQgDocDwWAQlUoF4XBYFuVqtSq1f4qAAezRcJAOH41GQtNykjPrl8y6F06oZF9isZjQ+/zOQCAAl8uFXC4ndXyXy4VMJgPDMBCNRkX8nkqlkMlkkMlkJCN1u904fPgw3G43stmsZGu9Xg+VSgX9fh+xWEzOM5lM4vDhw9je3kYkEkG73ZbvbTQaaLfbMnEFg0EZB8ySk8nkHl0GmY5SqSTXcGdnR4ItTnwsX/BeMrimjoLnzTHCz7PZbJiZmRE9k9vtFmE6gySKPpm9UkfCcgL/zUWaeqBwOCylqGazKboFlhTIQnGBLBaLwkaSKeOzw8UkFAphe3sb9XpddFrUu6RSKdFlMBihQDifz4t2wufzYWxsDLOzs3A6nchkMhIkVatVCcoNw0AkEsHMzAwSiQS2trawvLyM4XCISCSCnZ0dtNttDIdDBINBjI2NYWtrS577hYUF1Ot1FItFWcQHg4EEbB6PB6urq5iZmZFxTCGw2+1GLBZDNBpFNptFJpOBz+fDkSNHcPToUbRaLczOzsrn83lj1s8gimJr3iNqeciCdLvdPeWlXq+3Z5zz2WNQZ762DocDExMTEiBns1lh48jwMLiKx+PIZDLCCpGJ4POez+dhsVjkXpGhW15eRqfTEX3OkSNHYLPZEAwGJUjb2tpCvV6X42WSEw6HRUNlsVhQKBTQbDb3NF8QdrsdsVgMlUpFAiayaXa7HeVyGaVSCfF4XNgwn8+HcDgsZWqWK0ejEer1OuLxOKrVKiqVigSo1IcyKPV6vZicnEQoFEIgEBCmh4kitVkUtBeLRbTbbdTrdRFNM+AhG8TEgnoosrjpdBrZbFauKcuevPexWEyYPz7jkUhE5nmyUz6fDzabTTRPi4uLZ0VzpGW1n1CwdEIhcaVSgdvtRq1Wk4eOtWcuXNQ1cFEw/+HDSH0J9SgMjgDsqSszq6YwkxMvSwasT7N0wy4cTnZcUDmZkj4lfc6JklQ8u1xIMQOQjJDdbcy2mDm53W5UKhVhORjEMEvh91CzwFIJy2u8hlycOdGzE82s3bBarcIYsZuIJQ7+zZIk/81rzoWEWSuPl7og8/sYmDAAIJNB0aP5noyNjcm1oXD/9OCSgRazVpYuGMTw9+wQYccMgyMGERQ3U0jNQGh7e1uyfI6Pfr8vontqSBqNhrzOrGHguOj3+zIuzfqd4XAowQ4XOy7OzG6ZkVJnYi7l8brabDZh/siOMmDmOOC9YgBP6p/ZLjukGCzx2azX66jVauh2u/L9fIZ5TQFIuZL3H4AkKhSpm5k93lOyajxuluWazSaazaaMc7NQnOXEVqsl5T5eR2oDzVk7j5H/5ljiZ/B5ZgBN7Uuz2RQdC+8FAz/eB+qHyEiyZMvng0wvxw+7xdhM4Ha7pYzDuY66ou3tbdGP8dpwbuJ15DkNh0PU63UReHP+MDOh1LORNeE1oJCYbBQAEXnzeWPXK4N+jisG3iyhM6Dg3MxOObNMgJ/BpIOBMq8NrwVF23wWKMbnGtHtdhEMBoVp47hjkMfyLe8HxygrCby/TE6ojeIY4H0wz+2ck8z3ifeeXX58PjlmWIXgGsKxzjnn8YYyRw8TZ5M5oraCiwNpWQDSzttsNqVUwM4rZkQApCOAEw2ZFrallstlTExMyGQRjUZFJ0LKmROIy+WS9vNTp04JzZtMJveUxSjgpKCROiFOKlww0+k0yuUy8vm8MCPD4VB0I9FoFKurq0JNz8zMIJ/Pw+v1otVqSTmLgU6pVBImigtoIBCQyZpUOwARLAPY09ZtbrV1Op3SDs8MlZNHIBAQPQ6DQmbNY2NjWF1dFdaGZZS5uTlks1kJdMg4UXvh9Xqldm+1WrG5uQnDMBAMBnH06FHEYjGcOnVK2tX9fr+UFHitWXYxdwlSz8QJCoAsVNSuMEjr9/vw+/1oNpuis2ELscvlQqFQkIn9wIEDyOfzcDgcmJubQy6Xk4CH3YGJREJ0PFtbW8KeMGMkm5XP5+F2u4WONzcFUJRp7mKjdohlj/Hxcezs7CCZTEqgxTJkLpcTap+B31Oe8hTccsstiMViUk4JBoNSxqKglTYMpVJJnjMGFuymq1arWFtbk9KkzWZDu93G9PS0MADU4TBJYAmo1+uJ3obnyECLpWOyXTz/mZkZlMtlNJtNxGIxhEIhCXr8fj9WV1dlTJDRazQaopWp1+uIRCLCILhcLvlswzBQKpWkvT6dTqPZbEqLO+0VYrGYZP9MFLa3t4UtCYVC8Pv9iMfj0lm2tbWFiYkJ9Ho9bG1tSTm3UCjI55P1ikaj8my1222xeIhEIvD7/cjlclJaYyk2GAzKOXDcUBxMXRwDQ6vVigMHDuDYsWMy11UqFdTrdfj9fuzfv18SCY4DMozs/ORxUYz/1Kc+FadOnRJ2i3Yf4+PjaDQaSKVS2NjYkKDR5XJJSZUsFzU2g8FAdKBjY2PCRpIFJvtI/RafeQqp2+02JiYm4PF4sLKyIhYm1GGNjY3JHMbv4z1hIG1OgMmUmRmjcDgsjCubZbgO0iJiOBzKPMxrz+adcrm8p4Pa7/dLhxyfXc6rk5OTSKfTj+r6Cjy89VuDo4eJsxkc/fu//ztWV1clemb3GrDbyWSz2URkGY1GYbVaRQjI+jhFhcyMzIGSuazDSYn6DD6wfJBZBjh8+DAKhYIwI5yc+J2hUAilUkkyH7PIF4CUbOhZMxqNUCqV5HPYCTY1NSUiyEwmI2U8LtTMVChy5aRfqVTgdDqRzWalDEYNAIMuMkXAbubHEgAfbk7mZD94nUj9UgdDPxwz28ZWZbJGAITx43cwc3Q4HJicnBT2hJoxn8+He++9VzK8paUleL1e8a2KRqPYv38/BoMBYrEYUqkUgN0SJwMkehmxbZyLGj+Tr+fxk3Ejg9Zut7G2tiZ6Bwpq2d5PHygGKsxI/X6/vI7l2UQiIfeGQT4zYtpBUFxOkTw1NRyH1Plw4YlGo1hZWcHq6iq8Xi8mJiaEip+bm5PxarFYUCwWsbm5uUfwS3bVYrEglUpJea3dbotYnZqwUqmEWCwmCwtLaSy9bGxsSMmQrw8Gg5ienhb/nfHxceTzebRaLbnu3W4XoVBIxjS743isHo8Hk5OTshCSkaNAvlqtIhgMIpVK7REl5/N5AJD/s5WfzRcMbhkYsRy3vb2NbDYrwU4wGMR5552HRqOB48ePSwJB76Hl5WVha1ZXV6XUPzY2JqVCr9cLt9uN9fV1YUdDoRDW19fR6/WQTqfR6XSwsrIiDKzVahVxNFk6itsjkYiU/0ejkSR2nLvYhMJkoV6viy8cmS6OwWAwiJ2dHZw4cUJsF8rlMhKJBC688EIAu92R5XJZ5lb6FTGBZFDi8XgwNzeHWq0mnl0Oh0OaX8zCdI4Tl8slthudTkeYWYq3NzY2pJM1Ho9Ll6TP58OpU6dkPFFET60mKw4XX3yxBNH0J/N4PKK/SyQSMg74fPIYOD+RdWODD0uP1F3Sf41WAkywOJdSL8pkk4EUxz8ZR5aB2bVpZpw9Hg8OHTqEZzzjGY/q+gpocHRWcTaDo3w+j+PHj0u2wIEG7HrSNJtNNBoNGfiMvrkQAhA/Gy4KVqtVBISsl5uZI7ORpPkhKZfLcLlcSKfTcLlcWFpaQjweRy6Xw/j4OOr1ugg/yd643W4pwbCcNRqNZGFJp9MoFosoFApS1+73+wiHw5Kd0jjQ4/FgdnYW+Xx+D0vGoAOAdDiwFMNskuUYMhHUDbDESMND+pyQQrbb7SgUCmKFwNIKaerBYCBZEktQFNSeOnVKLAFYSye7wnHDzIvMEScvlgA3NzdlMjl27BgikQhOnjyJyclJyfy8Xq98J0thZFoMw5DrwNeZrQl4LqSymbnz+q6vr8Pn80mrr8fjQS6Xk+D64MGDwvjMzMwgm80CgJQ12+02ksmkGO1tbGwIc0T9ATVe/BzeBwAS0LMkw44tu92OQCCAYrGIjY0NeDwepNNp9Pt9CXQY9AWDQWxtbYkmh+W4Sy+9FDfeeCPi8bgY3YVCIfFQMo9XCowpKmWJhh2P9LcJh8OSMHQ6HczOzopAOBQKoVKpCHNE761eryc6DLIJDIZisRiSySRyuZx09dVqNczPz6NYLMoiFw6HhSnkwmmxWISZojcUu8rq9bqwXDQUZDnGMAxJfsbHxzE9PS2dcGY9Ip99JkkMqHw+HwCISDiZTEqzwObmpjBHa2tr0qzBrjqWeAaDAeLxOEKh0B5zVo/Hg1gstoc5YkC5vb2NQCAg15GWCQxEGHg5HA40m01YLBYcOnQI9957rwTJ1AsFAgEcPHhQGCcu9slkEm63G6VSSTrMyEYOh0M84xnPwLFjx7C1tYVYLCY+VVNTU9KssLKyIoG32+0Wg1yy2jQhpQaQpfNQKCTGlZxTyuWylNgZ+JF9aTQamJubg8fjwdLSkjSAsCzq8/mEcaTlwMbGBvx+v2irqNs0B+WcZ9gQwe4+v98v5TgafZI5IktO5sjn88HpdKJYLApzxEqAYRjiNcUkwOFwYHp6GrOzs4/q+sp5+KwHR0tLS/jOd76DQqGwx5cEAN73vvc9ko/8icDZDI7K5TI2NzextbWFZrMpmoZwOCxBCBdxl8slpRa239rtdulw4YNBGpiuqVwI6bTr9/vFqItZNwduKpWSh9JqtWJmZgbxeBzHjx+XFm1OuKTEe70eDh06hLGxMdx5550y0QMQRolBArNc0ttkLVjDTyQSUqJIpVLSlUYdQaPRwPr6uhg6ptNpyao5KdIokhP81NSULKYAhIWLx+O45ZZb9ri6HjhwABMTE7jrrrswGo1k4WdQOTY2hs3NTTHGZPDGRYMLHxeSZrOJ+fl5POtZzxLTQvr43H333VKeZNllc3NTHGf5+SyhsmOIY7Lf74twmsJ9BrxktxgQM3NjZmu329FqtZDP5yUAPHDggAjzg8EgAMi9pvEkdU9kYeh3wxIVBbGcYGlNEYvFxAgzlUrB5/NJSzI1PuyqZGn21KlTMgGHw2Ekk0nMzMyIBo5ZOxcNu92OSqWCarUqY258fFz0EQyIvF6v2CDU63Ux6Zufnxedx9TUFG677TacPHlSSsZkwmg7AEA8sMgsxONxYfGGwyE2Njak6QGAJDAA9uh9XC6X2GrwurNVnUJmsm0A5Dy4eO7s7CCXy0mnKhOKeDyO8fFx8RSq1WooFovyjPM6ORwOzM/PizM7z8es42LwFI1GMT8/LwLeZDIp50EhLoN5Bilk1ehaz4YRzgder1dsRMbGxhCLxXDy5EkUCgUZD3Nzc5ifn8fJkyeldONwOJDNZiVpoSiczB31a2SEyVLSfXtychLhcBjFYlFK0AzmubMATSHNvmBsTCGjygA5HA5jcnJSghgeB1kVdgFznqd2kAEndTe8zryvoVBIxPzD4RDRaFSCcc5L2WxWGHe6jJOlSiQS6Pf7WF1dhWEYSKfTOHDggIi0aazb7XYxGAxkTbHb7UilUlLmZeMMk1+aU6ZSKakAWK1WLCwsSLDMygXLkCwrsozNYC+RSOCpT32qPB+PFs66IPt//a//hV/7tV8Tit9s1mSxWJ7UwdHZBOutHIisAVOXwqianUfmv5kN8mf0F6GIlv82v4aaGfNEwtfxD8WBnJz5YPPf/H7+oSiYn8XgzGwaZg5y+Hn8HlKx/FxeE3OXE/VDpIj5e34uz4/XhMESf09DOfP1JlNhvpY8b54Xz5sUuvn6mz/f/Dn8Q0re/Bp+J9t8KXDlvWfXh/nzzC3GvKZkPfgzBsfmhZznRMaB15E/7/f7cr7mMhTvC8XBHB/m8WkeTzw+YDfwBO5r7+b7eE+Y8fOzzGaIAOTfnOBZZmCAyPNl2cjpdEqJzDyu6L/Dcqx5LPF4+HyZ7yfvh/k+mq85P5N2E3wvr5P5upjHF+8Df88FnCVps2krABmr5s8EICUpspjmc+H9M49Llk04RngdzGPUPM7M14HjkyJtvoZzCo/N/Lyarxv/MFg2fyfHnXk8mp9jM0tLFpjHbh7bpz/3fCYA7GEwedwMajlP8VwoOzCPWR4zxymDI54P/+b14Vjm9Tv9OeX443Xmd5nnbJ47P5vjka8zX6fTrwPndP6cUgDz+OP1MI9r82eaOwt5zGdaQ8yNAbyvPAZ+Jt/L68Pz4Jxo/hkbOB5vPCLmaGZmBr/+67+O3/md3zkbx/SExtlkjur1OtbX17G0tIRQKCQlERqkVatV2bKDDy+wyzhNTU1hY2MDmUwGwWAQk5OTyOfz0tnFqJxbQXCLh0qlgkQigcnJSdkniF1Oi4uLqFQqsgdaKpWSLQ92dnb3Y6MIudPpIBqNYmtrS1rfubBSF8MB73a7xdMDgNDCxWJRHpJ0Oi2BIVkzm80mZRia3rFriQ+sx+ORz87n82i326JnYPmDiwrZE6vVKuxaLpeT2vfk5KSUBNhyau6qAnafhfX1dRHMd7tdlMtlRCIR0TXQJbfdbiOVSom+CYBkray5c2+1fD6/p3XZ7/cLLW4OIgFICzTLZKSrO50OarUaWq0Wpqam5PiY1VJQzTJaJBLB1taWmHaOjY3JXnk0opudnZUJjQwGxbPs7qHPUT6fFwE+9SEU2Xs8HmxtbWF+fh7nnHMO7rrrLhGU+3w+EcYaxu62FvPz88IY0miTGqN0Or1nrzraJmxvb6NYLMLr9SKdTsv/ufcWdTbUPVEHQYsJsh4cK2QbxsfHYbVapRxCA1HqXeh0nEgkxFCVbJiZBTYHpmQSJyYmRKTNrUTYvcMFjl2NHBeRSASDwQCbm5uw2+2YnZ0V5pSt/DxO+i6RQeS4ASD6PY5PltooFOacQV8hlmC5FUwoFJLtLLgfHT2KGHywO5Bmnixj0ZKhVqvJc09dHAAZ9/TVopmqzbbr4j0+Po5+v48TJ05gYmJC9IY0qmSwQNF5o9HA1tYWAEgQTRlDPB7H6uqqlD+paeR8S3aNth0sa/IczM8BDRATiYQ8a91uV64TNZ8sf7GjeHFxEXfffbewPGZGlp253KaGbFGz2ZQtZ3icTL54jG63G5lMBqFQCOeddx7W19eRz+eRSCTE7oRMELsWKc+w2+3Sfbuzs4NQKCTPBscng3LO8xMTE3Kt2cE7MzODZrOJzc1NsXqhFov6UBoKUyv6aOGsM0fVahWvfOUrH9HBKR4Y5XIZ6+vr2NjYwOrqqmhY2EFG6pWTF8sirVYLa2trsNlsWF5eFs8dq9WK5eVl0euw08XsTst6c61Ww+bmJjY3N4UWrlar8Pl8uPHGG/foatjhQTEj6V8algG7+ilurkg2AoAIqlmf5oJ45513AoCYzTEDYUuxec8s0tHcc4kPEGv1bIPmXmfNZlOMKTlxUV8C3LeVwvr6unS/cIG22+2iGwiHw0IjO51OWRTpfB2LxbC0tCTHzY66fr8vHYP1el0mNU4onHgYtGQyGZkMyR5Qn0UbBGbRHB9kw9iKa7fvmnxWKhWxXaDOxGKxoN1uI5vNotvtIpPJIJVK4bbbbkOj0cDa2ppMwnQmp29SqVRCIpGQQJGdaexqAXaDtUwmg3K5jOXlZRQKBdHh5HI5uN1u5HI58eFh0HPq1CnpeOK+fpykKUbO5/M4efKkTNRer1e67Myt+RQDc+8+tr7TQ4ysGA1SefwMlin+ZucaRe8UiafTadx7772YnZ3F8ePHYbPZRFPBRalaraJYLEr5yzAMKYHu7Oxu9svEglvdsEuUjBc3jKVIlveVe+BFIhEpc/H6D4dDEYpTfMuFlQ0C2WxWAgLOAwz4zc0a9XpdNCIMIpnZ0ySSn7m+vi4BAUXS7FjkRtUej0d0fcFgEKurq+h2u5iYmBCtC3WPZiE2gw8+74VCQZ5zLs71eh35fB65XA6Li4tS3iODYrFYJFCnLo3XkPc3FothZWVFAhhaqgAQ2w/qPOkpRQfxcDgspVKyd5RCsLRPwTnHGnU75uec945+S3wOI5GI6Je4eSwTO3Yds/ML2A12OUfRK89m2zViJUtTrVZFVkH9F683xxhZXtpgMFhjuQ2A7EtJdoqGrrz+uVwOp06dEgH59va2aI3MPnYMxDweDwKBgJjyPh54RMzRr/zKr+CSSy7BW97ylrNxTE9onE3miLqUra0t0d6Q5aEuhAs0F0KKPZPJJAqFgmx8yf9TvEcWh/oHWsy327u7zMdiMZw4cQIOh0M2dk2lUqjX6xJgxGIxYZV2dnYk0AEgGSoXQnYx8bWkYJnFkS1hgMKFjGJrbkBKtonZDAXM9CehxsJc1uHCTT8YHqfdbhfjQXZbkU5mWYPBIs3Yer2eCKzptAxAAjXuMp1KpUQjQkdaZqI8Z07ELFEBEI0JWQun0ykieVLadA3mgsmFg/ef14bsh1lYSZEqj4/+VxRRWiwWyTppdMmFhnos6hk6nY7sUO5wOOQekrUjO0LRar1ex87O7gaYwK42ZnJyEoVCQVruE4kEZmZmsLKyImJsLuQUmLP7a2dnB4ZhYH19XViXwWCAVCqFcrksthM0yGT3IYNmjmO2NnPs875y0We3nXnyt1qtosuJxWLSKUR9Gb1c2G5O9pTO8tSpmHVUDIoZNPE9LpdLjpulKNpK8L5SD8ItI4Dd5MRq3XXR5lgn40PNGrWBfPbIgAD3uRez/L2zsyOBKoNylrTZnRgIBISBCQQCsvkp58ZMJiMdbHyezc8DcJ95o9PplCTC5XLt6VIl08ZkjKJval2o49rc3EQikRAWmcECmSPqGrvdrmysy4CY4nu667PrjR2WLB3x3Eaj+8wmAYhGimwRdVpkd9jYwQSGpSkmQmaB+szMDJaWlmSscfz0+31xUyd7TKE6Ay2CrfEWiwVbW1sSEHHLn5mZGZRKJVQqFemapQCc44edgwCEeSIDzTmaSQ6ZMP7b4XAIU8ZrNBzu7jLAgInCbrJu5u7FR3t9BR4DQfaHP/xhfPSjH8WLXvQinHvuuXt0AgDwG7/xGw/3I39icDaDo6NHj+Kuu+6SSN7n88n+Xuye2NjYEHaGDxezApagUqmUMDvmjpl4PC6CyAsuuADLy8vY3NyU9lR6ebAl3uxNkclkZCLhJM8uOQZhTufuPkTm7qpsNivZGqlbshzci4vmYuZWfIq4OflzqwdOsNlsVvxgHI7dPZkoYOYWH9wMlhNROp1GtVqV3cspRuYxUSTOCYrCZe7ZRaaLpROr1SpGh/THofUBj5VtqtlsVtxf6ddEBsjv94txptPplJZ5si8s7RjG7hYHFJ/2ersbajKYYbkokUhIOYGZHicfLkIMMM2Gi2TK7Ha7uDIvLCyIWJbiboqvGZjn83kpe9Dvhve01WpJ6zUDg0KhIMwXDRrZcsyFYP/+/Thy5AgymYx0SbFbiMfD7VSsVqv45DDQ9fv9uOuuu7C9vS0LDN1+yRCytZgJCI+PzuTUUzFQCAQCEvSSbRoOhxJcUldERopeMtvb29JVxzZ3BuDlclmaIQCIbxNZ22AwuKc8Sn0Ou1n9fj+mp6extraGXq8n38NAnEE1u1b5vLhcLulW4xLALiQAIqAeDAYYHx+XLqR+vy9lZnaKcnsRWiEsLS3JPSoWi7Db7cICMDFh4EC2K5FISNmYi7K5o9SsN+K8wICX+1GyZZzaqnQ6LR2w1MZwx3eycQxWzOJnlj65txfnIsMwpOxMqxWLxSIsB4MFbr/DgIr6I7b4d7tdCRCoWzInaWz7p61IKpWSOYvmlI1GQ5jViYkJpNNpZDIZWQdWV1dFO8RSMkvtDOr5nHJ+S6fTUhrlNaJ5o92+u53UzMyMeEgxiWB3NPVL+/btQ7PZlPK3xWIRg1iyr5yPp6en93Ra8nMNw8D8/DwmJycf1TX2rJfVPve5z8Hn8+F73/sevve97+35ncVieVIHR2cT1ASY27HHx8clMudkQJ2CWdQI4H5GfGQiONjj8bh0sHBDQe5xxYWX1vjcI4rbKzBLZUZPAz/qKxgc0ZPGbt/1JCJdOxqNJDBgHZzZL2l5p9MprbsARLDLCZ5GhuweoTfMaDSSrq/hcCjeK+wQYRbJBc3hcEhnGY+Z59Tv98W11+FwSJs/HXutVqt44AAQbQT1BMwQOSGaS4pcVKm9YLsru8H4PSzLcOFg+YPdbQ6HQ4wb7Xa7bGBKFoMaFC6ig8FAMmszTc2yBEsg1Kbx2lNXxgmdOgqawzGrN2eY3D7GLAzldzGgAiB7zJHN8ng8YgEwGo0Qj8dFX0cGjsfJYJjb1lAPRi8wGi2yJEUmkdeGFg8AZKJn4MTFhZM6g0U+j1zAzSUOHpN54WZwRJ+kZDIpOhHqfTgGufhyAWICQp0Z2TSW28iYcGzQuJFsltfrle0/zEJysoYej0fGJhlM8xxEOwkGbCxVM0Dn+KafTSwWE3aM9gYMZHisDB5Y2jF3txqGId2zDLh5v5hkkL2gaJvJlrmjj0wm58R4PI5AILBn6yCy2Zw7uCE0jRDZGcZklM+/2SiUuiyWQs17XZKVJWMSDoeFrWZpkYEfy5fmBgZ2b3Gus9vtEvQxkOJ8wO+jXocWD06nUxzVWa7ndW6324hGo1I2Z4es1bq7LyDb6fnMswOUXbOhUEhkAaH/3EvSarXuabDg/EgGl0k8ZQUMtmKxGNLptNy7brcrY4jf/XhCfY4eJs4mczQYDPCd73wHq6urACDtvKf70gC7VPTU1BQ2NzfFHZUO09TTmDsUzBkj3VPNHQksv3GD1kqlIlk0M2Z2MbHFlboBABI4sG2UkxQ/gxMisy7z7urUh9ANlxM0vUUSiQTGxsZQLpelDZQTKf1BaKTIMprdbt/TWs/Fg3qXqakpcYVmfZzBKSdou90u2hhec2asND3jNRkfH0e5XBbxvN1uF1bJMAysrKyIONzn82Hfvn2yzQMncy4+LLVQ0M3STCwWk3JLOByWRbRWq2F9fV1EqMyOA4EAxsbGRLBKZi0QCIhT+r59+8SE0LxYciHmeZs3D6bomxks9RT0l6EujcFDuVyG1+tFvV6XksbGxgbcbjcOHTqEu+++W8SyTueue/ZwOJQNYG02m2jtWLZaX18XU8WpqSkRYTP4JJPIMiNtADwejzgl7+zs4LzzzpMyx+HDh9Hr9XDy5ElMTEzA4XBga2tL9G3cDLNarUrLMif9wWAgLeXr6+vY3t7Gvn37EAwGkcvl0Gw2ReDNDj3eR7MrtJmhpBnn+Pg47rnnHnQ6HdmY2Syonp6eRrlcxtbWlrCK1LeQkbPZdndJb7VaImpm1m9+FgHI53MjYdod0JSWTN7m5iYOHTqEgwcPYnl5WXRL7EryeDwoFotwOp3CkLHrikkD9UK93u6mvNzsmRqzWCwmDBM7v6iX5PlbLJY9JXm+niX4hYUFcbUmW0mjUZ4TA4N7771XStTBYBDj4+NSahsbG0M+n0cmk5HrxH0U2VnGQPeuu+4SU8RYLIbJyUkxc63VajJ/ut1uxONxkS1QXsBklAEiGSPqkNiwAECSSjKmw+FQml3M80Sn00GpVJKEjDY88XhctHisVnC/NO6fRn2S3W4XQTrnYrPAnl5PbNNPJBLiXcXrQ30gvZdisRgcDod83/79++UYH23N0WO6txpjK3M7v+KRodlsYmNjA8vLy5JFMEMkO0N6FNjdE4mTDss/FGaydswHnfV96g84gQG7kwkAcdZmqYPBEuv0fNDpKs1tCux2u9SKmV0xO+DDbrfb5buZKdFdlfb+pHHp38PyIul6iplJVbPbrtPpoFAoIJvNitcHMxYaxXECHo1GsiVGq9XCxsaGZLjJZFK+bzAYyJ5Q1GdQ+8OFglonnhd9U7iTNUsh3W5X/JbYGcJAhFsOmMuiAKQLj0J5BmpmSpqamUKhIMERAMkanU6nZH7sNmNJw+ycXigUZKwxKGMAy/HHe0XNCMtmPEeyWSyLcJ8miq1zuZx4ytA/h5+/srIionGXy4WNjQ1hpNitRWaR5qR0YOZ2DAwaaSRZKBTEcZjBPwMlljza7bbsVr69vS3lFD5DyWQSKysr2NrakpISnxc+h8zqucgDkM4cq9WK6elpZLNZbG5uShmGGXEgEBCdG4MjjgsKZ4fDIRqNhryfppXUNZERohjZZrOJNogt6Ke7KjN5YUMDS7Q8P2riaFrJoI16NDaOsCw3OTmJTCYjOjW207NhhMfHAJxzA9kmlod5fyio57xk9tIBsMdHifeT5rh8brklEHVsvMculwvFYhEAZCzzec/n89jc3BTGhtoaMusejwcbGxvSEcbSIucV6jVrtRqOHz8umkjOq2YTSZbQecy8vrxPZk0pAElCyuUystmsCPsBSDLAIJGldDL0DI7o+0UGh8ERu5prtZqwt0tLS9jY2BBfPDYEUcBPRp8Cep/PJ3OBzWYTiQZLgRTSczww4eY8xPmNsgUGhT9xgmwA+Ou//mt85CMfwdLSEgBg//79+B//43/gF3/xFx/VA3yi4WwzR+yQoIcHPX+oD6GLK1kQZhWM5Fn+YEbFqJ4PIB8UTh5kK6gJYbvlYDCQrjLza0hLc8IhdQtA6H8yV8yCGehxEubia/b1IfVLGp6Tj9nUj8EWGS9S7vSxYaDGhYPnyutnFg/yO7nwst5P+p7fycnF7A/ExanZbMrkyzKf+f1kVxj4cdFhxsjfccHgOfF7zBtWcuuQTqcjWaf5eMjUsVxi/mweOyd5CmpZFuO157ED2HN/yCiwrGoWgJNVYvDIc+eiBUAEtuYNQlmyZCsvdYuj0UjEwxTiko1guZmlM45hjjluUWPuYuL5U1vF54nXjsE8GVaWjUaj0Z7j4sJMATBLU2bxKRdaLk4cfxSastGBAQBLwuwMY5LBMWC+VtTA8bkwWzmYRbTmZ888tVPEa2Y5eL78TrINZq8ZBix8dsyNAJwruIDzGlGcz07G0WgkZUmWivlMsUzG+Yafx3PidWVCxLHJ63H6eZqtF8gUkaFi6ZnzIOcbMqTU5JiPA4CUjPl/3ltzkMr5hn9zzmm32zIPkNXjHMCGkNPneV4Xnhu/i+OYQTU/n9eepXxeB0od+PmUWJg/2wxeZ0of6JJvZvyYdPH1nNM5Njgnm+dmzjPm+YDjiveQOjmObeobH22cdeboox/9KN773vfibW97G57+9KcD2N0X7C1veQtKpRJ+67d+65F87H973HTTTbjnnnuQyWRkXyRzxsQoulQqSSTOurvFYkEymZQHi/qPzc1NWK1WzM7OolQqSTmKe5FxQWGWNRgMpDWVGh1mFxRGmjc1ZBmDWSCzGe5uzsyfjq08PpZofD4f9u/fD4fDgVOnTgGALLbb29visUK9UiwWk9IC9Snc+4rlA9a/KW6ORCLSNUdGgQtzr9eT/Yi4SzTLe8yOyGJw4mFnEqluZvy0SWC2PTMzI63MFotFxPShUAgXXnghTpw4AQDS8soOoEQigWKxiGKxKBm31+sVSv7EiRPiLs1SQr/fRygUwv79++F2u3Hvvfei1WphfHxcAmgKgKm5MQcLbNUla0e9GgNwt9stzMxtt90mC2uv18PExISMG94PipJbrRZisRjOO+88/Nu//RtKpRKi0aiwVbOzs6LxCQQCWFtbQ6FQQDqdluydWqFut4uTJ0+KRQE3KKbe4uKLL5bj5QLAEgv9vjhGI5GICI3J5jAYWVtbw9bWlgS0oVAIk5OT8Pl8wpjyGSDjRpaFpdfBYCAt4AcOHEAul8Pa2hrS6bTo48i08VkBICwrW575+V6vF7VaTRbIRCIhjAGDaHajkpnga8fGxoQV5ZYv8XhcSmbsSOXmoWZzS3MHHT+PjCoA6UQ0a/gGg4F0uiWTSfzoRz8SltPhcIgjNDVp3KsLgLAKnPfMARSDJgb3tA7gOGS5PRAI4OTJk+LgzsWXXYVkfDOZDAKBAC644AJp3GCAEI/HAUDK6qFQSHRx/Awzk8tmBgaBLAfmcjm537wP5pI15zDqN5kImQMQsmhs65+fn5fk6qabbpJ5lp1rbEjheKEG1Gq1yr6ATOjI7DOgBIDDhw9L4E8/Mpbf4vE4xsbGxC+OTCsDo9MTNibxDI64lyHHGMcVEzrOPVNTU7j44ovPSsfaQ8UjCo4++clP4jOf+Qxe97rXyc9e8pKX4MiRI7jmmms0OHqEmJ6eFjaC+z8x42Dkn0gksLm5KV1k4XAY+XxetESk++nrYxiG1MuDwaBkqxzE/B4+RGzF5e/4kFKIa7fvWshzEjC7T5NSZdbHUgi7wQAIncysIRQKIRqNwu/3yz5yLFNxqwNS5tTUUHjIDIVdPLwO/CyKFjkpmztezMJK+j5xPy3uJ0VGgBMRszBmX+zE4X5Z/f7uXl8sK87NzUmgyu6Qra0tJBIJTExMyL2lnoolL3acnTp1ShbHfr+P8847T8wCXS6XdM1RVOzz+WQ7DgaMkUhEJm12P5FV4fWjYSAXQQDCPFLQaxgGkskkGo0GFhcXhcXodruYnZ0VsTQAESBTkBwMBuH1enHo0CHxuJmamhITSABy3gx22PHIBYzGfQxgaHjHoM3v94sJJMsxAGR8UK9F8Xg0GpUgmzopCr+pq6Aex+l0it4omUxKcOX1epHP58XjhiVYBvcMuGZmZkRnwQ6qcrm8R6/BAJoeY/F4XMpFZMfYrEFLBZom7uzsSMMGy1NcrHlfpqenhWHm/MD2bdpc5HI5mS/MHYzxeFyeGTIK1C3R+8jpdEpZ12azoVqtYmZmBk6nEwcOHEClUsHCwoIEvmR1AMhGymQXaTbJ42WplNfI4XDs6VxkQEGNlMVikS1pGGhQr8ZOSTY3eL1eTE1NwTAMGR/UH7KM3ul0EAwGZSyQWeR95vNDlgsAFhYWRF8zNTWFUqmEcDgsYm9qFBmcu1y7Wz2RJWJA1+l0RBrAdWDfvn2ik5ufnxf2lgkutwjZ2tqSJKXf70urPsthwWBQxPDm7rjFxUX4/X5sbm7KXnDsoPX5fPI5LKPyepK1JrPHCgXnbN4PsmNkwskWmTuUeW8eTzyisprb7cbdd9+NxcXFPT9fWlrCueeeK/TZkxFns6zGNnNzHX5jY0MEejabDQsLCwiFQshkMiLEpZgxkUgI00NalcJOs5cGmQNSuhS/+Xw+YQcAiL6A4spms4lms4lWq4V6vS4MEydKTmZ0xCXtbxiG0NlerxeNRkPaOIvFovircGKjJoKb03KPLnPrOw3jmHlRlxCLxcTVl+7cw+FQfJ7MGQ2DFu4pFg6HUSqVkM/n4fP5cNlll4klAvUB1WpVWCYustQMxWIxKUmazd6YlbOkQT0JS4rtdhuxWEx8pMLhsASItVpNuukoSGemSLO88fFxeDwelEolABD6nHoIdtXw+3j9GGzyc1hiIpvIBYzvy2Qy6Pf7ImKfnp4WRoA6H2p7uPkky690zbbb7ZiamkKr1UKpVEIoFJLM8vRFjyUIlgzYkmxmG9bX12WcOp1OzM3N7en4c7vdWFtbE70SFwW287OziB2NZrsIPj+RSATHjx8XmwKyMizNMFAHIIErhe82mw0bGxvSGm+1WjE1NYVEIoFWq4XV1VVhE9mFxw4gZtpsZ6bZHwAJ0rkoeTwecZdm84TL5UKpVEIsFpNs3+FwiFaLLAnLLmTVaBoLQP5Nh2c2V7BhgroQ6lioA6I4vlar4eTJk8KukWXh+GUDBps8WJrldWCSwuDI6XQiHo+LTsZm2zXfJHMK3Kd/XVxcxIkTJ6QDiglNIpEQ3y9qLMkyU2vFe8zPY8fecDhEoVAQc0wmeLwfk5OTInxneY5aIPMcGIvF5Nk3+2wxkeNc3Gw2ZR8zWqVw/0s6odfrddEiUcMZDAYRjUYxOTkpwVu73RY2iAaSvA8cP3wGqT3K5XIIh8M455xzxPLC4XCInor7oh09ehSdTkeYMTbZsJHDMAzpImbixnNnAwwTyVgshmg0Kuzso4mzXlZbXFzEV77yFfx//9//t+fnX/7yl7Fv375H8pEKQBZVtrZTg0RhJjMyDiaWFvjQsd0XgLQIs+2TA5HuwJyEzK3t1HBQ0Et6npmAucPFbJJn3tyWjBADZC42dIFla3Oj0ZBAi6Zp5u0FAIgXER8082uoKWCmTIEwd2InfUsTNmZknISoQWGJjDoCCoYN4z6TSXp4ALusCB2DudiQQeG2HryH9Dji4s1rScEiA1OK1Mm+MYBi+YL6E2Z2XMiYtdJp22yqZzY8ZEZGls+sb2Ip1awdYDBCDQqDXAZ53FE9GAzuWaA5AXPi43jiMVUqFRlr7GwBIKVetiCbW9epueJ4oJcTj7XRaEhZlB01bB5ggM6uIXrDMOtlachutwujata10BF5OByKFww1VwCExaK2gs8wrzM/p16vS7DFBYYLH4+DQSj1cAAksOYCYtYmAffZEJD9Yls7y0wsuzGzpwCfQlkGgdTWsTzHZ4fzBhc54L4yIpkLjk2OY445ziF8nsyMSKfTkWPnWOQ8wHMkE8PyGsvw1KowUWOQZm4C4XeFw2ExsGTwau4S47HyGvF9FJLzuWDDBq8r5z8+3/xsjnEGiiwXDwYD6diibxY1NZx7OMeynM3vZcBp3gCX8yKDd64F3CyWQRtNNRkMcc5i8wM1biyDsxmFXm+cpy0WizxfLKdRC0qtZ7ValetPtt+s2+L8w3HLOcosbOezx3Lo441HxBx97Wtfw8///M/jyiuvFM3RD37wA1x33XX4yle+gquuuupRP9AnCs4mczQajbC8vLxnYDNAMrdJU9cwMTGBTCYj1Cvr/6SDKaBl8MB/87toPgjsBrwMdkhFM5hhPZmBQi6XQ6FQEE3J5OQkarUa/H4/Dh06hHw+j2w2i3q9jgsvvFD2eGJAZLVa9+xmbtZfkIUBIF0rpPNZKmQ7PktLFLqSHaPGiJmPWTDM77Lb7SgUCpiYmJDdpFdXVzE3NyefzYmIXXEAxMeHn8UygLl2zi4z0vg8l3q9LiVGlv3Y8ceOPbJ/XEAnJyexvLyMEydOIJFISABEjySfzydicHPXICdofg+DKwayw+Hu1hSdTgfVahWBQAATExMyoZGRo+6EC1Q+n8fS0pJYNpBqZ1mPk2foP/ddorUE70upVMKhQ4dkIWEpyNxqzfFHVoOaNgYQLH8EAgG43W4xEuXmtPQGYwBtzkrJOJrFriwHMHAg08g2brfbLQaKs7OzqFaryGQy8Hg8sgt9u93G4uIiqtUqVlZW9pQyuM0EgyZqqDi2uP0JrxGNM6nfYXmUJYh+v48DBw4Ik9ZsNjE+Po7BYIBEIiFlH8Mw0Gw2JeimqSs1ecBuKSuZTMq1pnbMrAmiUJiJE8u8/MxOpyPsMVkSWnywjEa2geJkaovoD0b9EJlXJjDJZFKCH0oAotGodIzR7oPlfDq/c460WHZNGsl4FItFjI3t7lrPBKnf70srP/fbM3f6mVkrp3N3n7WtrS3xKmJJi6wkuynJLHPcUGeXTCali5SMHp81dnCRYSerYxgGlpeXYbVaheHyeDyYm5uTa8x5l9UBlsLD4bAkhgAQDAbFQJcJElkdWgUwqeP5cM6kto7Jk9nI0u/34+TJk2JcSgsWdneavfnIVvM8zMmu07m7g8L09PSjur4Cj4FDNgDccsst+NjHPoZ7770XAHDo0CH89m//Ni688MJH8nE/MTibwVE2m8XS0hKKxeKerIGLGeu58XhcMvBWqyVCW3YDsSRBep2+JFzM+RoK6Gi4xz1uSMkzm2AHB7Po6667Tih2bjFC8SUNyf793/8dwO7GrCwDkkGh6Nlu33UCphEbywNsiadVAbNgCs79fr+IcbmY0MCQ4nOWQpjtAJCAxufzSenJZrPJgsLsjboPdqKVSiVhryh2NDvqkgYm28csmBk4g0kyRWzZZ7Y+HA7F0t/lcuHgwYOw2Ww4cuQIJiYmcO2112J9fV3eT5ZpenpajDwpquakw8yyXq8Le8QsnIsn712320U6nUY6nRYdDrNPljk5Hm6++WYsLS2JhoratEgkIto13kuWhalNoYYrGo2Klwone95DljhYXiATyoCajFitVhMtDMt8g8EA559/vpQpQqEQstmstBOzPMygmSwOywOcnGkiSQFtu93GysqKZMX0x/L7/UilUqJVY/BBRsjn8yGZTGI4HGJra0vu+fz8PILBoAR5DMZpZNloNMSigkELFyUAIjoOh8M4evSoBJCzs7PodruYmZmRwAnYLdf7/X5sbGzs6dry+XyYmJjA+Pi4BEz9fl+sC9iRZxj3OWeTcSCDSibH4/EgkUhgbW1N5jMytywjMUkyMydkeu12O4rFohh3ZrNZ0XWRIQoEApiamhILjFarhc3NTSlhkcljiYuaSbd7d6NrbrbMhIWBVb/fx+zs7J7NsjnXmNvlOTcsLy/j5MmTUioiO89yotVqxdrampTueQwsW05NTQlTRUE5WWUzK7izsyNWKvTb4v03B7WRSASpVAp33HEHbr75ZimPBwIBxGIxTE1NSRDL8VQsFkXnyEDEbrdjbW0N7XZbGmHC4bDMb1xTeE/MjPXY2Jiw/EziA4GAzO2ULpAl5vpDjddoNBJ5xWi0u7nzueee+6ivsY9JcPTfFWczOOr3+7j33nuFnmSnEjMJs+jSbNbFzivu/cTOCLIxDHBIrbN8wAnPYrHgwIEDUn7gQ819glhmobnXxsaG6HJ2dnZ37m42mwiHwzj//PORyWRw6tQpNJtNXHrppWi320L9srOOGgD+4VYBbPc1DENoXepWuB2Cx+NBNpuV+nS1WpVAjp1EzFgKhYJM/AweqNsoFouYnJyUzJzMEYXdNDPs93e3MGDHBlkTBjf8PnMpgsxRLpeTQLLRaIguiffB4/FIidJut0u2FYvF4PV6sW/fPtx11124++67EY/HZcGjGJseVGT4eAwAZOsYADL5MHPv9/uS7VcqFcRiMczNzQGAsBPMNmlrEAgEsL6+jjvuuEPs/tmxyMWODFA0GoXFYtnDhEYiEVQqFZx77rno9/soFAri5s0SEo+VbBFLXmyRt9lskgiwg4gb6FLnMj09LawArQ9Oz1A5HpjJMnCjTsvr9Qqr6PF4kM/nRQBbLBbFcJHNCe12G/v370epVMKJEyeEFaGm6tSpUxIYc8Hh2OJnUUfVaDREuM5yEYNvtosfPnwY+XxeSi4TExMwjN2tg8y2BWQOyToVi0VxOKY+aWJiQrqZBoOBzClMiMgmUo/C7k16S3U6HUxOTkqZpFQqifA/l8thcnJSEiHOKaPRrulrv98X5oiBBQNUng+ZIHbGxmIxWWwLhcIe5sjv96NaraLb7cr+jjRadDqdwvhxqw1aNqRSKdGBkQmmToxaNGrd1tbWsLKyIuw3tZDULTocDtm8Nh6Po9FoYGFhQcbQ5OSkzCHUW/FZo97J4/Gg0WiIGWev18OxY8dEH0oN5tzcHIrFImZmZrC+vi5mjmaxeyQSkfWFyUw+nxdXcK/XK9vv1Go1ZDIZCc5oJMtrYh47ZGHJVnu9Xpw4cUKMKBOJhIjJzeV3Bm+8ZtQ38fmnbvXAgQOPun/iWQmO6JTMfz8YHs/2u7ONsxkcZTIZnDx5UtrvnU4njh49inK5jHA4jAMHDgj9v7a2JmaE9XodBw8elEl93759yGQywjaVSiWcOnUK4+PjsNvtWF9flyyf+g9gd8GdmpqSXaEZWFC8Sc0I9RScLB0Oh2yrsLOzg9XV1T1iWnZZcAEnK8TFjzV9MkTMOM1mcVygue8OW6JXV1dFY3LPPffI/eEeYpzgQv+5eS8XUdL2/DcdntkpSL0DMyyzUJl6B3rxsITJAIGdNlyAaTOQSCSQTCbFkNHlckmJgPecx2fWMfBacmE5ceLEngBienoaT3nKU0SMz4yTDJfdvrtXGkWukUgE+/fvx7333ov19XU4HA4RsrN8QTEkmSqbzYZsNiuLttVqxe23345eb3ebBb/fL8ZtvOeDwQAnTpyQLDSVSuG8886TffFmZmZEBE8tx/b2tjAEo9FItCfMktmGbN72gG681NZQ05BKpUSku729jfHxcWxtbcniPT4+jl6vJ3vDFYtFWCwWCVDJcJjH5s7ODg4dOoRmsymdTwy6KpWKuIAz4PX5fIjFYlJSNlthMPFhOQjYnTsLhYI8e+l0WphWLhRscKDmxePxIBaLScAejUaFBWawzHZ96sHINJGFZIm12+3KcbF0wrIar6NhGBgfH0en0xFGmOwFQdNDAMIM1mo1SXD4WUwSmNxls1lxII/FYkilUiJqpr6MoncGEtQUUb/DxZ7NEgBw5513Cjs7NTUliQ/Pj0wnx+7U1JT8jBofmqmSaWVHFc1rqSNzuVzCwDPJZUI4OzuLer2OSqUi++JxDmbpngEHbUbYls8mB4fDgUwmIx2STI75fDIQY5md1zKRSIgIm+OP506mtNVqoVAoyDPBwMq8PQjNKFk657Nyzz33wGazyTwSDodFa0kdE7CbjNNihcmK3W6Xcniz2UQ8Hsdll10mx/po4awIssPhMLLZrGwQeKaIzmxYpXjk4LXlpMAF53TTRU7c5n+bf8b38men/5uZuFmEevrnmd/DP9SwPND7Huh7za/nz3hO5v8zEzG/lguhWeRHhoRZrfn7uKCf/vn8wwmf4lLztTbfB/P58JqZP+/09/C6mP+c6dqffu1YMuU9oSaE50m2j7/nz/k+s2jU/JnEA913vv/04z3TeDRfk9O/94E+x/yH98V8PczHcvrnnT62Th/T5nMxfzf/z+86/Zni55/pfpq/k+PD/F1nuq+n/+z0a3P6NTAfk/me8bs5bk+/p+bgiK/jODn9s08fa+brai6pmz/39HM5/ZzNx8nA4UzzjvkZOH1OMH/nmeaXh/Lcnemam6/R6dcbwJ75gH/OdH9OnxPPNJ7N5/FA4/70sWB+Lk+fD81/89qZr8WZjtV8nczHbT5Hs4Hp6cdpvi+nP+OnP2fm//Pfp5+/+RjM5rnmZ5vnxrns9Ot0pmv+eOIhM0ff+9738PSnPx12u/1+m82ejiuuuOJRObgnIs4mc9RsNrG+vo7BYNfafzgcCutAZsb8sFEr43Q6xS+HHWqGsbuR7MbGBlZWVmCxWDA+Po6NjQ3E43EJCqjHoWcM9/wifW61WqVe3el0pHZPuhjYrY9zOw3SqABEc0INDw39PB4Pnv70p8vWGMyKWDog40R91Pr6upSZ7HY7LrzwQmmNZecFM8bBYCC6jenpaelWCQaDor+isJTHRRG0WRRMNoj/p/aFWydQt8XWe4vFIgwWrwkzZ7P3EEuR1BCxlZk6D25gyS4TiurZim61WkXAzI4cloVo6EdWym63S4kQ2DXsW1hYQDablX2laCzpdO7uaUaxJ/UFw+FQsnPS4aVSSbxtyOJQB8egk2LR4XC4R7NFoWYwGBT63lxCMHeNlUolKfk4nU4pPVIHwm1arNZd9ojMDwXxiUQCFstusjY1NYVDhw6JJmxtbU0+x2q1iug0k8nAYrHIJpurq6vS1USWMJ1OA4CwMU6nE8lkEqVSCeVyGYlEQrxxWIbhPaBwn2LsiYkJFItFFAqFPRonAOJjRIErd1Onji2RSMjryChTbwNAtC5kirhYsVxvsVikJOd2u0VHZbVaRZRcLpdF0wPsGtBaLBZpVmCiRO0IdUIU35MZqFarSKVSCIfDqFare6wQuN9etVpFsViUcbm9vS2MXTQalSaPyclJ6XAj68ZxNDU1JaLkWCyG4XAoXlksj4fDYYTDYWn/p/i8UqlIWZbjJ5PJIJvNCotNKw3q+Cg/4KIPQFhyMjMsA3Y6HRw+fFiYaLJMk5OTwqT7/X6MRiNsbW2J3xbNIXlfySpZrVaUy2WxBeA8Tr0V2b3jx49L2TYej8MwDGkAoFaKbDAbSmiBwfnU5/NhfX1dugPJrlJjRtY4EAiIJokeeVbrbjcaTX6PHDkiPlLc75EBVTQaFf+zAwcO3C9R+6/irGuO1tfXMTU1db/IzjAMbGxsnBWV+RMFZzM4WlpaQrlcRi6XE/qb4l4A0q3Elk6r1Sqia7baWq1W8cFxOp04duyYBCDsPGDJgQsn9UChUAjhcBiJRALZbFZcmDlJ0X9mcXFRtDNsj6Y2iAwO6efNzU0pcZGSP3DgAC688EK0Wi0sLy9jc3NTJu9OpyMTOl2GOQnH43Gk02nMzMzsET6bt9lgtwdF17we0WhUgj7S8NzYMRAISNs3hdn052BwxIf31KlTEtgwgPR4PBL0sSbPgI33jZtLssxHbxZqREqlEqrVKsLhMKzW3dKdz+cTUz673S73kQJ3joNYLCa0N7vP2FFUqVSkVMmgk87pExMTe46ZtgFWq1X2pxuNRiiVSjLxs7RAdphlQGq0GNyEQiGMj4/D6/XKvlvsZEskEtJlxuCCCyYXLJahAoEAksmkuFWzdMRggH415XJZ9CT5fB7dbleuJUXuU1NT0ta8srIirc1Wq1WMRfmsjY+Pw2q1olKpoFAoSBIR+s+NMmlqx8DDfK0AiFi7XC7L/WATxXA4RDabla7E7e1tbG5uikknAwKK5y2W+ywXvF6v+DZxsY7H43tYBBq5stzHxYdME/dIY0s9y0/c+43iasMwkM/npWXcPKbNoP8Pkyazsz79vajlYQJktVrlmWW5kqJjJn7BYFBKYaFQSBZnelNls1kxK7XZbNI9WCqV0Gg0cM4552BpaUkYCs4TdJFmJ1o8HsdgMJCuzXg8Lot3q9XC8ePHpRuSQTrnCho68hjY2k9vOuppWN5mRyjPk+J6JkSxWEzKVuwOY8DMoIslaJp8bm9vi+P+zs6OnMeRI0dw7NgxSQgpvA+Hw9L8wbWD442dwfl8fo9Okj5mlGtwfeGGzrQfYGkMgJjbBoNBbG5uYmNjAw6HA6lUCpdeeikymYwcGxNQ6uUWFxdx/vnnS1nv0cJZD46oP2DmQjBrejKX1c5mcET9A3BfbZ86Hhr3MUPgIsNgiQ6rbGunlXypVJJJhFE5BcmM6CmWNGcxzJQAiAcO9Shut1uMzjjJceKh9w0npFwuJ3VjdshYrVYcPnxYWpYZXIXDYVn8LBaLaABYX6eOZd++fWIY1+nct0M3bQB4f2gxwLZvGiWajc4Gg4F0e5E5slgs0mXCyY7dMLQy4IJFLR7F1cy+KDC02WzC7pxursbFzefzCbvCSYuLLlvvKRYmc8SgLRgMSnbFhZ+Lo8vlEo0QA9np6Wnk83kJQNia7vV6xZ6BLb/mgJGeSuwU4jWiRoWmi2Rq3G63uIUzKCXDEIlExBSSwTAXarJ11G3Qadvj8YjwnudO7xubzSbaOz4btE2gziwWi2F6elrGTDabFR0NAxefz4dMJgO73S6Gj5ubm9LuTQYrHA4DgJwXRcKVSmXPAsfAs1AoyLXhc8FAkQ0FtFmIxWISoNGwkaLdcDgsXXf5fH5Pl6fFcp8lARlLq9UqOhKz1QSZQLvdLsc7NjaGXC4n+1lx/JAdI4tM9oJ6Nvr20IaDDAU1T1wLarUaYrGYjFEm1nw2GYgwkJqdnZWOSTIovL6pVGqPro+6H+pdGJiEw2GxJiALys2rySSFw2E5Dz434+PjqFar0kBgZrqY/HGMkaE1+4fx+WEzQzQaFQ+ihYUFae7g3Ds+Pi4+RgxS2E3JQJPPPz+fGkweJ8cWN3zlBtnD4RArKyvSJcZGGH4PADkHjjnOU/l8Xp5ln88nAV29XhfmaGtrS8YLALn/3Iya450diIZhYH5+XoJJJhP0sIpEIsjlckin0xgfH/+vLqn3w1kPjswPpxlra2s4fPiwPNxPRpzN4OjWW2/F2tqalM2Y2TL44K0KBAIYHx8XB2K2wFMY1+vt7n7ORQzYzWQZwdPjgjQzs38GUBQVs+wTDodlN2qyAjMzMyJedjqd0jpssdzX1VGr1VAulyXLWFtbk4d4fHwciURCRJH5fF7cb5mBFwoF5HI5EeWSXo7FYtL2HI1GJQAiw0OhZLlcRqFQkK6haDQq4kC2sVcqFXEXr1QqUvdnWzeFu2yt3t7exurqquxTx+44c3s8J1JeU1LqLpcLBw4cQK/Xw7333iuePAwCqRGgeJrBFpk7ZpIUIJPuZuZHSp5di41GAxsbG1KKYWZNJgnYncDT6TTm5uZQrValswuATJJ2ux133XWXdAxxzDCY5XWPxWKIx+M4cOAA5ubmJLiixxXZIDqgs+2dLfz0VuH2LWbdAbcQIesA3KdtyWQyezZsZgDOTji6eDOQByDbwtAOYHNzE8B9Dtfj4+NIJpNyrzkOnc7dLXzS6TQCgYAEzGSW2IXEjk+W+CYnJ+X5SyQS8jy53W5piec94/YJ3KuMz2csFsP6+rqwTrFYTL6DCzR3NKezNZk8PtecS9jJWSgUxD/KHBBSSAzcJ8pnGTUSicgzy+TMarWK6z0FyCyDApCgmfMYn3OWU9ndx0CEDRF0uadPG+8f5xF25XI+uOeee8SJneVOlnvJns3OzmJlZUWed15LNnxQckCvMz4Lq6urwpDTdJEsFOdFuoWvra2J8S1dwx0OB0qlkmyVQ+abfnOZTGbP1lHhcBjj4+MIBoPCkLMTlk0hbFYga8PyGIPhWq0myZTb7ZYtaFhyJbtaLpfRaDSkAcXs5ZZIJCTA4zzIRIfu/qFQCCsrK2KVYp4bWcrlPe33+4jFYlJN4FzLxMhqteLQoUPYt2/fT4YgGwDe+c53AtgdmO9973v3HPhwOMRNN92ECy644OEfsQIARG/CjjCWQNj6Sto7FArtMZLjJEFqn4yHWdQbDAbFW4VZIzNO6nWA3b2j+DnU0dASANi99/xuANLGygma2RVpadL0NKIDdoNrajrI2PBYzZ5DLJ+wZZjHFYlEEAgEEAgExNyNmTjLCSxJ0XeH2SJZing8LhO33++XTJIZDNvLea3Nfi40u6POi0HXcDhEPB6XTJTeN6TfGXzSP4SLIPUSAGTSZAmGDA1LELFYDFarVVrE2bVDDx52WDHjZrbM+5JOp2Gz2WSRYfbM+89rTndgtk/H43FpTSaTyFIhmb5QKCSBKctzwH2BCAMAjjtzNyP1X7VaTbJlloE44bJNmuJNLmBkJBmgctJjy3OlUpE9xMiCAJAta8i28LscDofs5cfFg8EOWSUuxlxoqJWjpoydoGRxuCkqLQjIdrIzkveNZnv0jeJ4pa8NkyUaG7J7yGrdbUrgxqBkHTgGvF6vHBsDi2g0Kgwxkwpuj8LFnEJiBur0PCJLwiCepTCWs/nsW63WPf/nQs1Fmqwf93MzC4A7nY64SJPBNM9DvD6cj7i3IFkRBuz8P1ldeqOd7vXGMpjZpJAJp/lZMHe4jY2NyXupgaP2k+Oe5Sszw8xuuUajIR2VZGlo9Bv6z42sKYdgCZplf1oVcG80VgT4GrMOqtvtSiDJMUvmmvfXzEpRO9rr9UR6wOvOEr3FYkGhUJAmLUoh2LnKa83glIw6u+v4jPOesmuPzx+TxccLD4s5+qmf+ikAu+Lsyy+/XARXwO4NmZ2dxbve9a4n9RYiZ5M5qlQqWFtbQ6VSESEumSBOWKwx0ygPgFCorG2zDZNBClv1WV7hw03di8/nk8mJWSrLOfRmIYvFHbPZUkoTNLb053I5cTilm2yxWJRAgQ9Er9eTnc8PHTqE0WgkmQfb1OPxuDA/29vbWFtbQywWw8LCgpRZuIdaIpGQ0iB1HQwcGShEo1EJptjmzMAzmUyKMRs3ofV6vbJzeyAQwIkTJ1D7z52uua8UAzEGbwAkGCqVSqJJAiAlJJYrDMPA7OysfC/v4fr6uohNzYEqtSJ0rh0fH5d9yrjo2+12maSsVqswLfS9SafTKBQKEkww+93e3pZskxMl2UOWeLmBK5kmAPj2t78Ni8WCqakp2Z+PpUGWhRuNBiKRCOr1OlZXVyUoYPMAcJ8Hy+rqqowt8+TJxZ2lGnMbcr1eF9+tiYkJ0ZKYy3xsY6cmhkJzMisMxFim4mdShzUxMYFYLIZAICDt+gDEfLLf391+JhqNiukkt/ahFxB9hRgw0XySGkOWvelWzyYH6rl4DwKBgIxTsqgcWx6PR5632dlZYVzMWzVwXGxvbwvTQbYjn8/LnnA0S+TmrPv27cP3v/99CeYjkYgww9lsVsbl1NSUCKxpsklGgOOXC/TExAQOHz6Me++9V9jsVCol956lPJaCyJwkk0nRtDC43NrakkSH457bAzGooV6I7DbPPRaLSYmOQSevHc1m6Q+2trYmzHS5XMb8/LyML7/fL4EfzXHZwMGS9ebmJiqVClKpFPbv34+FhQVcf/310v7PIJdBW6lUkrmMXePb29uYmpqS5g5aF9B3jDssGIYhe/TRa4wlac6zzWYTa2trsNvt2LdvnzB01D3SjJjaMu6VxrWH2yzlcjlpJOG5krVeXFzE9PS0NJVQ02mz7RpS0ueJa4rT6cTMzMyejttHA2eNOfrOd74DAHjDG96AP/3TP/2J9jP69Kc/jY985CPI5XI4//zz8clPfhKXXnrp43pM7XYb6+vrEuRQ60AXYwDCsrjdbmEu7Ha70JMUQXMCI1XJTJaiXYvlvo08OaFzQSalTwNIOnDTrp/1cgqWWbcfDAYolUqyoPd6PRQKBWSzWdHecNGsVqvikMyMjhsnskzTaDTEWZgbwoZCITSbTdk6hRor1vFZCuTDzQWP5Qs6/2YyGVnAKGglldztdsVfhIxLvV5HLpeTbhCWjtmdwQmVHjQUolJHQKEhzeVI/QNALBaTElG1WsXGxoZsecHAiV1i3EqBehOr1SqBKwAJenlNy+WyaM+8Xq9MRBxLdLclE2BelADImGLGXyqVhCHb2tpCJpMBcF8rMBkusi28Voaxu+knt21oNpsiFme5wTAM0agxwKIRIoNtjnOeL3ULpVJJ3KvJKlBozuCAwvfx8XHphmRWywCUGXG5XMbGxoYER9TEsMuJ+r/BYCDHRD3PaLS73QwF216vV5y/uUhzsXe73VKuYPmEZTYuzhTDjkYjMQrkeKGmi4ycy+WS7kNqcRhMcm81apmoEyRbsLm5ic3NTRGFU1/ERgyr1Yr19XUUi0XZ/JW7zXMjX3bVVqtVCeb4+bxv1AcxMOXze+rUKbnfAISt5HPMbsxmsyllYjKX3W4X+XxejDRpaFutVoWNaLfbMg4YHJEBpvM3A6tQKCTdsAxurVYrNjY2JOnJ5XJ79ldj8M3kCYBsCkuNUqPRQCaTQbValWfTbrdjeXkZ9Xpdxm0+n0cqlUKr1ZLgBIDMmwzAWQrj/STz5/V6RSzNe2+z2WQcmjsSc7kcNjc3hZVlEsLkiTpGJutmU1aHwyHnyiCOpUGWUWlHwLHJZ49zfT6fF92a1WqVRIEdxY8X/ls6ZH/5y1/G6173Onz2s5/FZZddho9//OP46le/iuPHj99PZH46zrYg2zzRcbGnizQZEADSfsoFkiweAyEAe95j7riidoQZL9ujWa443WvI7F/FzyJtywWVXTUsD5itAswZPM+Ln8OSAYMYgkEJHyAuDKR8eeyGYUhQwmvBxdFMwXOY89gACNXPxZHnxS4QLjZcVMi+kH7mMZ7u6cH7RfaO584yAvdN4u/M4nd+Pj+H15SdR2QgyALye833nNcLgFxnnq/ZI4sTOil2BhLmcWUW4zOQZcDGzhl2HPFz+T08X15bXnd+B4N0jh9eV34+xyXvC00eqQkzjxHzv833k8dGEzr+jpMwx465VGC+NmQ5qcNjqYn36vR7DkDGPgAZR2ZPGfP9MT+nTEjMm0Cbx5D5u61Wq3RQkW0FIEEA32NuEDCPDZYquSjxM3n8FN5ywQR227XNTsf8fM4p7DSkoJ7PjflZ5yLN62GxWCTJ4lg3zyu8t+bnku/jM8bzJngfOa54vpxjzLYKfKbNmj+6Ups3GGaAxDmWJVI+V+ZjNSc05mCPczCvBdlNdgLyuvO15m5byg/MZpXUDVLLw+eDY5IVAo5nJshmI1w+j3xeOLeYP4+faQ4VzKVt/pznzOvI35k9kPgdPG+WtPms8j6zxPlo4zHZPuRHP/oRvvKVr2B9fV30C8TXv/71R/KRjxkuu+wyXHLJJfjUpz4FYHe7gqmpKbz97W/H7/7u7z7oe89mcHTttdfijjvugNPpxMLCAux2u1CPKysrYv0/Pj4uuhdS1uxqo9Mq6VJz5xip4G63i6c//emS8RmGIe+ZmpqC3W6X7UDIpvChHo1Ge9yQyWRtbm4KU8I26FqtJi2nAGSh4uTKBZIPPxkMq9UqmSY7WCgkHQwGmJychMViwYkTJxCPxzE3Nyd6JrNGwDAMYa0AyGLHbinew3Q6LZkuPWM4IVDEytZxetlkMhmxUQB2s1wyZoZhYGtrCzs7O0gkEnIedBJOp9PSFcWAjxMk95JbXFyE3+9HsViEy+XC4cOHUa1WxSuEEyJ1F9SFVSoVca9liZHXmYsYSw+VSkVE13Nzc2IDwBZ6btVSrVZFt8PJzdwyTLF7OBwWJhHYnRwpiqfzNQMVLp68r1tbW6jX6yJ49vl8cg+po6N/UKvVkn2mOBFTE0MvrXA4jGaziWQyiQsuuECeH+rJ+B6W69gAwHIeW/B571l+slgsMl54nahlKxaL0iXFZ6JQKIjjOP23zLYFHANcLMhU7Ozs3M/xmj5IDPC4Zx2vJc+fAQxFrna7HbVaTViber0Ou92Oiy++GGNjY1hfXxePMnaUHTt2DEtLS6KD3N7eFuaGgQZL6rVaDfl8Hr1eD3Nzc9K5RoZhZmYG29vb+OEPfyidY7SRINND/aqZiSOzwW41jjnqb1h65Niivo9lfTYvUMDMEhx1QpOTk7LNETVF3B+P95pBKbdOoliZZStgN5DhefA+7+zsIJ/Pw+v1IpFICCNILRSDRJaXyY6ZRcu08OD4oJyCQutisQgA4i7OxMvj8YhXUSQSEcE3x329XkcymZTXUYzNbXCov+Rmx/Ts4phlsMggikES14RutysO6ZQd5HI58bmifo7lbdq1UNTONeD888+XueTRwlkrqxF/93d/h9e97nV4/vOfj29961v46Z/+aZw4cQL5fB5XXXXVIzroxwq9Xg+33HIL3vOe98jPrFYrrrzyStxwww33ez1vNPHjtk75r4CmhezCstlswpIsLi6KqI97qrnd7j2MDlviOYGyPMSgw9xxMD8/L7tl0/CL+0k5nU7Z98rMYDG7ZycCOzE4sZFWp6COtWfz3macMNmxQV0DgD0Cf7JLtO4nc9RsNnHuueeKrsLhcGDfvn1iTseavcPhkJIR2RVaD1C0Sn0F9QukcUnX88GmqSIzPbfbjWAwKOJUPtTMiLgo1et1sdKvVqsSFB45cgTD4VDKFxQocoNQLsC8zvQG8fl8MsGZd/OmOJ7iTNL1vFdkc1im9fv9ohnhd87MzEhGOT4+Lu/l4k9dF7ULPGbuu0RfJGaqZ1r0GUjRpoDXxGazCWvCVnkmBcz8OdEDkNKAYRgygXNh29jYwOTkpNzvSCQim56SGaGOZzS6b6883juOHfroMFDn/WbwX61W5drR/JNZOZMXBqE+n08CvnK5jHQ6LeUdPl88R1oAUDOzvb2NRCIhIm2WCi0WiwR/NGCkroUeOWZtIJsK2F1kGAb2798vAWq320UwGBTBPZkJBkDc0oEBydjYGGw2G6LRKAqFglgQXHLJJTh58iRmZ2elNZ7HSH2M1+uV7WCo5yFLy1JWt9uV5gwK9sk0BAIB8TJjBxeDRJa4qH/zeDxihRCNRuX593q9SKVSor/qdruYmJiQZ4uCaTJK7IrltUun01hbW0MoFBILGwYUHJP0EKIFAzVYLHczMG+1WiJHMK8zFJkzYMlkMqKn5L5lADA7O4sTJ07A5XLJ887zikQiov+h3QmPl0wPu0pph5FIJFCr1TA+Pr6nm5DsMRlLiuXJcJr3cKNOlh2T4XBY1gIGohRtA9hjXMxxT03t44VHxBydd955ePOb34y3vvWt8Pv9uOOOOzA3N4c3v/nNGB8fxwc+8IGzcayPCjKZDCYmJvDDH/4Ql19+ufz83e9+N773ve/hpptu2vP6a6655oznczaYo1tuuQVLS0tC0TJDYXDBjImCRS4crEmztOZ07m6wSNqX7AL1H+l0GolEQtpTuXkq2zbZXcZJh6wUJ2lOSDwGtgSbmZF4PC6LAbMatvuSal1dXYXVat3TDUZ9CEXLbPcdjUaYnp6Wh5ML0srKimw4ywfRXAriwsMJnYsvz4PXgPeSAaLZw4YT6nA4FAYon89L5tdoNMSsjZ1Cw+EQ6+vrItKcnZ3F8ePHRdRMLQLbyykY5z3wer1YWVmBw+HA7OwsUqkUcrkcHA6H6A36/b6cz8mTJ2VipH8UO+koomRXDP2FqM2imLbf392MlgF5o9FALpcTNsPn88nGvJVKRUS7ExMTcg70caItw9TUFDKZjGiW6OPFPbYikQhsNhu2trYkQ6cQmg7TbP0li8Nz7/f7WFlZkWB03759iMViOHr0qIhwuX8ag0K2OTcaDWE4jx49KpMxF2YG71w0WJKhcJ9j+MCBA9jY2JDgvd/vy+70uVxORMtk3Lg4sHxEsTmFwvTqYmmTuiuWbtguT0aVIluOJ35uuVyWDj2yV2zTJ3vIRZFzBtvFuYcZgzuPx4NzzjkHMzMzuPXWW0WHQkE5tSX9fl/Gf7Valf28GBT5/X5x1t/c3BRRLrsvO52O6KXMvkzmhhTDMBCLxRCLxbCxsbGnTESmgkkFcN9CzTLp+vo6XC4XJiYmZPNqml7yuWFg6/f7hXWiv9vc3BxWVlZE40Y9GRNXr9eLra0tNJtNRCIRsWZgaZbsHjscydib/cbo6k82j5tYHz58WErR7XZbrDQYxDHJpTZyZmZGOmJp+ru6uipjxGaz4alPfSrW1tYkaF5dXRUGeWxsTAJ9JrZkuhmYxmIxmUuoueO9ikajKJVKMl8zQWfAys/juGOy0el0MDMzgwMHDjyq6yvwGDBHy8vLeNGLXgTgvofKYrHgt37rt/Cc5zznCR0cPVy85z3vEQsDYPfiTk1NnZXvYhmKZRDSzqTMuSiQ1SBzQMqWWTs/i7Vc0qA0TmSGz8DGrLXgd/O+2u120ZYw46fvCIMF0s3simNnGoXX5lZyTvYApAuFdW2KQykU5oJNyrVQKMiu8qy7U3DJjJodD/wcfjYfWlK/ZD/IpHFx58JIISgne7JvLIuwS87MLLJGzgWcnTJWq1XEio1GAxaLRSZis9aJmRk7ZVjK4iajZrM6iktZRqT/CF1rzVtEMFgD7tOk8Hf0bGEpxqwLyOfzUooi1R8IBERMynIsM1UGehxjDHB5rNxGgnqRYDAo2hUGW6FQSMpwo9FINCYMEMiY8J6yDOn1eqV1v1wuo16vi9gVgJw/tUzmdnXef/MfljA4jljeo5CYwTxLItSu8FgKhYIcm9k7ioJogoE7xzgXIj4XDOj5DNPpnuOT15kNFSx71Ov1PUaPLCdy4WVAY7Yp4OtKpZIIchlU1Ot1KcFw6x6WeEaj0R4ROedJPmfmzj0Ga/wuBoIMLOkNxG5dBkfmLUxYmmK5neOTdh5m7aLZEZ/PHFk+sh48BnpSkdXj885rSXa3Xq9L4sbngsEi2W0mdBxLfAZ5r8im0kiyWCwKi8dj4HlxTJBp5VpAVpOMOIOtXC63h5ky31+63VPTRJNLelqZBdicnwEIe2UW1pt1Ynw2uTbQc4zlXPP8w3tKLRwbWGj6SQfwxxuPiDmanJzEP//zP+Pcc8/Feeedh/e85z14zWtegxtuuAEveMEL5EI/EdHr9TA2Noa///u/x0tf+lL5+etf/3rUajX84z/+44O+/2xqjra2tsTQkM645m6nqakpKUMx+mf2ycWGO4Vz4LIbgfQ1aVkA0s3AshzryJzkmMmbJ2GK+8y+I2xX54Am68XvSKVS4plBkfHCwoJ0SLBOzcCGbsPUmszNzaHZbMreTzSjpNCbWSIzKXZ2mIXi6XQa7XYb0WgUS0tLkgFFIhHcfffd4vdj7nLig2wYhgQFXGy5CJJK5nexM4UaGHbA0F+K3SRmiwG22tKdmPcXgJSTOAGy3MFSHZlFCiwZ2Jg7Fbe2toRRM7evczKn9QBN8/L5POr1umh32P3GACWZTEpLPQNqj8eDXC4ngSGZQpZDWq0WZmZmRN/BoIqlzMnJSZncG40G5ufnkc1mpWuIpQpm01z0s9msBJvBYBDVahXJZFKcyylc5752Xq8X1WoVg8FATFIjkQhGo5GUEbjwz8/P49ixYxgOh/JvdtL1+7sGqgykGeDSu4uLGXUkNBqkhqxarcLhcKBWqwk7aBiGbDFTKBQwPz8vgRcDRcMwkEwm5f8skVCHwmdxcXFROl87nY6wTGQsgPucwbnPHduy+bywXMmOQj7DHL90W6bm1Cya5vNAPxtaDDAoWVhYQL1eRywWw/LyspihFotF0XRRh0fWeHV1VboG2X7PLka28jNwosibzwrL0Zw3+AxwLqOJKgMszmN8D8+Vlgher1e83WjHwKYBJrnUJHIepe6HTBS31hgOhzh8+LDYuHQ6HczOzsr8yMSp1+shmUxKcMuuO+qL6ATfaDRQKBRQq9UwMTGBnZ0dCai3trYQCAQwOzsrzCvLy7FYbM8YJ+M/NjYmiXIymZRgn0He5OSkMK/UZbI5gloxdp+aAymiUqlI1yhtASYmJpBKpR69xfU/cdaZo2c961m49tprce655+KVr3wl3vGOd+D666/Htddei+c+97mP6KAfKzidTlx00UW47rrrJDgajUa47rrr8La3ve1xPbb/+I//kFbpWq2GSCQixnMTExMSGLGjjZkZM0AuNhy0rVZLMkxOwCxhdbtd2cNnOByKmJZaJ7aommvY6XRaWCsGcGyNp8CQzIDZ5O/uu++W4+WEu7GxIRoIwzCElaKYkkEfs7XRaIRcLifbGTDzp50B3WwpSqY2iIaK9XodY2NjuPPOO0V8Oz4+juXlZWxsbEjgNjs7KxPCYDCQ/cI46TOYIO0ei8VkUmg2m8hms0KVM7gwl/AYcPE1drsdS0tL4knFTioGmCzVAfd1KPHeFYtFKUHQNJBg+aFarYrzLrNnHjvFlhxvdrsdhw4dwtramuhWJicnZQsN2vlzKwaOM1LuzP7MnYnUYhmGgaNHj8oieNddd4lXUCAQwNLSErxeL5aXl2EYuy39/A4aX3Jhi0aj4uSbz+fFJ8jtdu/pCGRZiVYTdOtlKzQnfGpgtra2RLsWCoVw8uRJcXA/duyYlHzGx8dlw012TDFYZrmAGwCzNE3dUafTwalTpzA2NiaBiN1ux/HjxyWoY3nh2LFjssWNORvnmGTww3Ih29F9Pp+0R29tbaFarYr+h+wou5LIEHs8HnEJt1gsUophcG61WoWRY0dSIBAQjyxzp6c5iGV5lQxPNpuVUiMdvzudDtbW1hAIBNDpdLC+vi6LbLPZxPj4OPL5PI4dOybeWGysmJ+fx9jYGI4ePSqJHgM+irtzuZwcJ58vaiPZUUVDTDJh7LItlUoiY2AywMST5TtaIgC7GlUG7RTQM3lhNyjvJxnJgwcPYjQaIZPJ4M4770Q4HMatt94qHkPmrlgKrGkIzDmFe9fdfvvtcLlcOHbsmJRTOf5arRbuueceTE1NiXElBeuzs7Pw+/1YWloSvyxaFpAt5bMfjUZx/PhxsVfg/MMAiIxpOBwW+wtu7s3nhQ0u5XJZSspkDj0eDy644AIYhnFWthB5qHhEzBGj23Q6jdFohD/+4z/GD3/4Q+zbtw+///u//6grzB9tfPnLX8brX/96/Pmf/zkuvfRSfPzjH8dXvvIVHDt2DMlk8kHfezaZo3vvvReFQkGoVXaosKVzenoahUJhT4cTH9bhcHeLjHw+L2Jk/n5ra0sm9WAwKBlRsViUSYtOs2QH6A3CTI+TPju5zBM2PVXI9lB7wHIP69bUSNntdhw8eFCMx9j9xCybW3lwAt+/fz/q9bqIOXO5nLBMZC2sVqvsacVSlrmLh4ZpoVAIR48elU4vn8+HW2+9VQJDdsaYRaf0BGHpB4DoNigspZg2k8mIgzEDF3akMDDkYsKJvNFoyCQCQCZ5i8UiHUQMREhjt9ttEaXTgJIBKINaGj0uLy9LiZaMkFk8TkEquxXX1takLBWPx5HJZER8PhwOkUqlxEST7IPb7RYBM5k7smZkk6anpyWQLxQKUtIZGxsTw8JCoYBKpYL9+/cjn88jGAxie3tbPG+4xxj1TtyBnYZ15r3NuCiYNRosefV6PdF8MfianJyUuc3tdmNxcVFYxf379+Ouu+4SgS1ZG7NNAIW7XMgY4LFrMJFICAvHAJ4+StRXMAArlUqYn58XtsZcsmKA2W63USgUkE6nMRwOhdkMBAI4fPgwTp06JYmEuamADBQDdTIfdrtdrsn09LR0jLFzkH5rDIC5wzsDA5b1aUhK12i6HRcKBdE+HjhwQETeJ06cELNV7qtVq9UAQLx/FhYWcM899wgzbLfbZVsLntPm5qYwmdTNcWwzoKFlAp2hh8OhBPeBQGBPeZmu52SpWMolc0Q7lUAgIF2xvIYsiZM9oqv4cLi7wTPHIQXIF198Me69915ks1kMBgNMTU0JK8o5t9frYWJiQoxHOeaYKA4GA9GfbWxsoFwuY3p6es9WPydPnkQoFJJtjJaWltDv9zE5OYlEIoE77rhD9IlkwxiM2Ww2TE1N7TE5dblcmJ6eRqfTEQd76jEBiJaM94nrAysQTIS4xvGZmp2dxeLi4p6E79HAY9LK/5OOT33qU2ICecEFF+ATn/gELrvssh/7vrMZHLXbbXzzm9/E5uYm5ubmhMJm3ZiLKl1nGWXTvv22226TYIAZCvUabrdbFu0DBw5gdXVVKGtuMGjejRrYnYT37duHYrEomT11D+zooPkbvXu2t7dx0UUXwePx4KabbkK32xXHdE7EFDDy39QisP3V5/NhenpaWojJ6lD4TdqXjBjr72TRzM7tLKvxZ8x2qDFi5s7SIQC5hueeey5cLhc2NjZgtVplAWFZiMFROBxGLBYTupuBCidqs1t1sVgU7QCzUdomULfgcDiwtraGTCYjWS636qCXCg3ayGIlEglEIhEkEgnEYjHRl3DBLBaLEmyyRZ0aAgYzvN933HGHdHeZhfdTU1PizswJmUEazSXZhcIAlUF1NBoVA0suTCwN87qzDLeysiJdNGTkWF4G7tuOhIxXJpORAJXlJRo9UuDOLSjIioyPjwv1HwgE5P7UajXpBI3H41JeZlkln8+L/qXVaqFYLCISiSAUCiGVSsn31Go1YV5Onjwp+6Elk0kJLrjdA7Nzq9Uqzul0vaYRKxdx6tv6/b4EELwWhmHs6QBiEFkulxEOh4UNYFma+63V63VUq1Wx/GBbNtutGTjzWXW7dzcV5rPAQNschNBMlOPf6XTKWORz0Gq1JMlgYMVyHQXnZraHAQ+fR4vFIk0iDN7dbrcIyi0WC1KplOi+XC4XUqmUsC6c89jFy2vGOYLBezabxc7OjsyX3W5X3OxZunK73cjlcshms+h0Opifn0cikUChUNijnSIzyfHHQI/6PT4PjUZDtELsBOV9YHm42+0ik8nIdeR6ZB5LZHlLpZLs2chO47GxMZxzzjmYmJgQKQx1fCz5LS4uYnl5GZlMZo+rOFvyp6amcPLkSWGZT506JSJ0dqlxjmLZ37wVzWAwEA2aw+GQsXnppZfi537u5x7V9RV4eOv3IwrLrrzySnzhC194QoimHine9ra3YW1tDd1uFzfddNNDCoweSzySmNVcxzWbCD7Q7x/pMZzp52bzsjP9/vTv+3Hff6bfP5z3mA33Tj/G0//PMuCZXnOm1/9X8okHe+9DuSfmz3mgczvTeZozsAc61zN9P8cQNVBmsas5+zv9vWcaB6dfP47RB/v+Bzon82v5XWf6XB7b6d/1QJ99uqHjjzuGBxrXD/QZjxRnerZP//mDvedMMN836m/4c/NrHuizz3T+p7/v9LFx+nU5fSw+lOf+dDbBfP8f6L6dacw/lO/+ccfyQK95sOty+ljks3X6Z7AJ4PT3P9j/T/8e/tt8f/mdp4/108fV6fMGP+uBnrOHclxnOs+HM+89lnhEzNE73vEOfOUrX0G9XseLXvQi/MIv/AJ+5md+Zk8XxpMVZ5M5WltbQ61Ww+LiIm699VYRGlKTYxgGwuGwdAMB2LOBIjM5ZpTM3Or1utCb9EzKZrNSXlldXRVhIAXWdM9l9w6t3ynSW1xcFJNEimhjsRhyuZx0WHEvJHOHGtu+mQ3TjZaaIGZt7Cjy+XzIZrPCcFitVhHbsmW81+tJnbxcLgt1T90QDdVo78/Wcr5/YWFBujlqtZp0p7E0QN8m6pkoSKY2gSwQ24IByPdR4G52mTa7UJN9y+fzcLvdqFariEQikonn83lpr+f+RvS3AnZLscPh7p5pLpcLMzMz8j08JzKDOzs7mJubE9H44uKidCeyZZklUWA3i1xcXES/3xdDw/n5eSmNsd2XjMSBAwdgsVhw7Ngxue+0C+j1epifn5dJm3tRcbwNh0PEYjEkk0msrq5iYWEBFosFq6urUtZjiYp+O+z08vl8mJ2dla4vainIwNADieaKjUYD09PTwrawO46LwZEjR5DJZBAIBNDr9YRVooB+OBwim80in88jHA5jZmYGhUJBOgPHx8fFWI/tyxTE1mo16WrsdDoihCWzQY0MS7rU0/HcyBCwQ4osIhtNaCWQTCblnCjGP3HihOjmarUa0uk0crkcDh06JEwLt4Kg/o0NCLOzs9J1GAqFMDExgZMnT2I0GklbO8cNy59HjhyR8ifLomSp6Fe0vr6OSCSCbDaL6elpcdgulUqyMFPMvL29jWw2Kx2rFI2z/MxSE8cFWZhKpSL+Q3b77lYdwK5xazAYRCgUQrFYFB0TO/N4/mxeINvELjbu/7W+vi7lIDPLMz8/j9tvvx3lchntdhvJZFI6OFlO7vf7eMpTnoLV1VUROnMOMQxDpCtkXVnGAyBNImT0gN1yP9m0QqEgekl6LNEgFoCUHFnypiN6MpkUfzeWHJvNphjlxuNx2f/TrHvKZDIYjUaIxWIyZ3K+o7cX9xqkIJ77QrKyQT2c3+/HZZdd9pNZVhuNRvj2t7+NL33pS/jGN74Bm82GV7ziFbj66qtxxRVXPKID/0nA2QyOvve974nRGcWP7DhimYPaIGYU7MjgQOT2IaVSSfYYslqtiEQi2NzclEWUiz7bTq1WqwiruUDyYWJ7O8WyrMGff/75WF9fl84Zanyq1Sqi0agEBDShc7lcoqMiA8EFioskhY5sMyeNzT25aBvBOjaFkxRzsnPJ7DTL76cnChcHCnfpy0QBqN1ul2tErQ7LOzxmfhdpfwBijEYRJBkXam4YkDFbYtlneXkZ5XJZynIspWWzWQAQB2qK4altKJVKOHnyJAzDwMTEhLhUT0xMyHl2Oh1sbm6iWCyKAJr3eXFxUTy16vU6lpaWpBuGujQaA955553SNTY2NiYdKQzUO50OFhYWRMfAMiVLmJx0k8mkTPTsOqK+jkEEA85LL70U3/72tyWY5dhg9xe9cjhWqUczd8vymrBrjiW6cDgsCx0NHakl4TmyHMQxx04pq9WKlZUVZDIZTE1NyUJCOwE+lwygk8kkgsGglAzoDAwAqVQKgUAAhmHsEdqzjZ/6D5Z2mCSEQiHx5OECzoUslUrt6fShRjGTycjegEyUeH+tVivW1tYkmA8Gg1IWZpNEIBBAsVjE3NyclJFoBULnepvNJs7NBw4ckLHBUjP3SGRJmaVMp9OJUCiE+fl5aWVnhx0bI9hFyQ5H8/iitoddgLxWAKSsc+jQIayvr0v5Kh6PY2ZmRpJPivPZ1MLAk+aKdHOnUSWF8Rw/9BxjYADs6nNvvvlmKWWxzMXnMx6PS4cjdysw711GCQUbZKiJZKne6/Xi5MmT0nhDjSKvabValSYcCvoHg4EkLWygoUbRarWKYzn32uT4o66K5XgA0olLqxF6ILGkxg5J3i96OTHxZ2LGMiG9uvbv349LL70U8Xj8UV1jH3PNUafTwTe/+U384R/+Ie6666491PuTDWczOGIdfnp6GkePHt2z/w0fpkgkIosNf04WhhMZ2Q8yR2wd5aI3PT0tDA8Aae+kJQCDBnZTMGOmpxHbNxnhN5tNcVblju/sYqM+g5MhNQDUnDAQYyBIXQwFkV6vF6VSSRY2Zip84Ml80GqAGR3dWfkARiIRMS3jNg/UHU1PTwtTRe8TtuDSO4iZY6VSQTwel8WUbdZsueV30v2aXkhsvTUzR1wos9msHHe5XJbNKy0WC/L5vJhC0n+F7enMgumYa7PZ9lxfisRLpRKAXSZoZmZGuv8mJiaEoaLwlw7NALC9vS1MVC6XQ61Ww9TUlIgzaU5Hn5aFhQUYhoH19fU9i41h7O4lNTk5uSeop8iY4zwYDCISiSCTycg2FPRsIYPKbjWOQx7vxMTEns2a6TPDoJi6OwqKU6mUfGa1WpVmAYvFgn379oltBLejYBDMcVypVFAqleDz+TA1NSVaErZFm9mHYDAozCm7xngN6BrOn/d6PdHVWSwWYX3Y2UmRNBdquojTqJNjnaJ0BkwOhwMbGxtynrVaDZOTk9ja2sKBAweEEWbgQCaGgTyFuNQtsrsPAMrlsnSmMRDrdDqYm5uTRI9MKj10mLBtbGwgFoshk8kgnU4L+1QsFkXPxGSq0+mIuWWr1UIymdzDHFGPZfZw4nYg4XBYxurq6qp0JJqTQJq60gfM+E/ROhNJzllkPNhFvLm5Kf+nCzSNDGkw2m63JQjl2GSyduTIEWxubgozzODIMAwkEok9RokU95MVZaLB4+31eojFYnA6ncJGu1wu2XmBlhdMgsmyTUxMiO4sFotJcMT5ptPpoNFoSPWCJqtcgxgsU8cFQMYwj8lsGcJgmb5IvNdMED0eDw4dOvSorq98/h6z4CiXy+Hv/u7v8Dd/8ze49dZbcemll+LGG2/8r3zkExpnMzi65557cNttt4m3C00Vueh3u12kUimE/nNnej4onMSsVqsISmniRaqYbtWM0judjtDAbCFmNxQAKftw0Y5GozAMQ9remSXzuykKpEiXbcOhUEjs+ymkJUULQJyuaQrHLij6q5idcskoMDPkOXe7XYRCoT37/3APLrauM9sj60Tnb5vNhtnZWaG8OTFRaDwcDoX1IR3NzJudhDxuuuSSeaK7MAWX7DKhJcPk5KS05rOsRWE6/a4osG42m6jVakgmk1hcXBTxJzuSWApl1sYSFVvWS6WSlBcHgwHK5bLcZ14TGuYxI00kErLwr62tSTm1UqlI56DZOJIZMUXbLPVwjPDa0PeE7d68N8zil5eXxQeJHTFsiW6328LgWCwWcdimqzoF7QweydDZ7XZxdGapDdjN7DOZDI4dOybMHCdqMltk5cggVavVPdYMFGMzCGY5jG3dZIR4bQEIw8BOQwapFKJ7PB5sbW1JyYTBOTss19fXJWiimDUajUppMxgMyhYybHSgxnLfvn3I5XIiQuaeY2R2WR4Jh8OoVCpiADg5OSnGsQBkLopGo7KAkklhgEf2a3Z2VgJGdrZubGyIeSQAYZfZBn7eeecJg8RGBgZLTJKCwSCmpqbEjqDdbsvYITiXkbUNhUIS6PJ7mSxRHM6yLLBbYqT9A0XjFNGTATU/5xx7TCqtViuy2awcu7mNn+xxNBqVTlZuE3PPPfeg39/dzJdjgyJ/duIZhiGleZZp8/k8ut0uksmklIppegsAsVhMGk3YBUerF1YqAEhyw+Ydeihtbm5K+YyMutnbjWysWW5g3j6EgRYZXJrakgHnM/W0pz3tUV1fgcfA56jRaOBrX/savvSlL+G73/0u5ufncfXVV+PLX/4yFhYWHtFBKyAU+ummfxx0XNRZEmAbN7MZMkh09yWFm0gkREPAgIqv4fcxK2d2xOyW5lzs6Gk2m0JTU5Nht9tlfx0axrEjiV4o7F7hz0kL0+jSYrFI1m8un7ADiVkgNTd80DlJhkKhPfv/sLTGBZH6CzIWzDT5XSyd8XoCuJ/OhJ49drtdTM+4QBmGIdfT7BDNTJh6BXYCmXVN7C6iToi/p71ANBqVoJVMAwM2BmqGYUgwRlqfzCC7Vzh+gPsEmQxsSGszc+NYpFaEGSx9sBqNhkzaDD4Y6JlLVix3kso3e1lxqwcurDR6TCQSACATq81mQzweF28UXmsA0obP682MlNeUmhmOPzIcZN+4hQmDLOrdLBaLWEVwXzTztiHMeMlkcewx4Gbwx2eSnU4cPz6fTxhKasi4nQfHPb1hGISxFBGJRIQZNT9/4XBYrj3LGFzMQ/+5px21L2REzR2tdrtdOh2pAeM4DQQCYskBQFhg7i3HpIdbQjBI5ng2e3WxLERtCp8xcxcTgy4Gm9QS8XdkIAKBgCRYLMdzDjDPZXxGyb6TDRoOh8KqUwfEZ5qt/gzg2SFHRp7Hxfttvr98LZlDGkaaA3zOl2RWGBwymeWz6vP57vcMmcd0OBzeY71BH7twOCyiaeqGOCdT58nSIZ8NBm+8fgyymfgxMe12u7JXncOxu10T5wMG8SwDcl7k+5l8MAjic0pWionU441HxByxnvjzP//zuPrqq3HxxRefjWN7QuJsMkd33nknTpw4IRMhgwEaBrJMQ00ExZV00Ka5Ihknsjnm7TDsdjsuvPBC5PN58abgg8MBSgFhMBjEzMyMZAekqzlxUCTMAIaCQgqnKWSl3QC9NZaXl6UURe8gv9+Pubk58ZJhqyw1PGxFz2azcDgcYmKWz+cl2OP+PpVKBaFQSM6f9PDk5CTC4fAe+tgwDNlRPJlMIpFIyOSzubmJWq2GUqkk2oN4PC67gHNfJdob8F5w4mSW7/V6MT4+Li2rAPY4ijO44UTC86AB5ubmpuy5xcCIbBE/gyaOqVRK9jqiBiAUCskCnM/nRVdCtiCfz8tmp8ViUQIwsyPz+vo6AIhXVjgcxu233y7sD6+B2YGZHjfMRHn9CoUCgsHgnrEaDAaxsLCA0Wgk+/1xojWXKskyUSPHsqTL5cL8/LxshcBxs7Ozg0wmA5fLJWyQw7G7eezCwoJskcL9Aqnx4LM3HA6Rz+fh9/tFAEyLg1wuB4vFAp/Ph3Q6vUdczvvKscDF2W63484774TVahX9HwCUSiUpeZBBpOidiQr1SzRcjUajwlryWnChYsDLAN1ms2Fzc1NKWnRxZis7nfTNz/JoNMLBgwdxyy23oN/viyHl5OSklLu5UTKfdepJyOza7XZJ9phA1et1eDyePeOFCcXExIR8dqFQkDmCRrX03+HWMxTaU8dFFpbWJ0zozNIABvhkutgUkk6n97TsUzDNEjQ3V+dmvGZTV8oeuJya2UqKqJmY0Z4hFoshHA5jc3MT5XJZtEW8H0zsarWa6Bl5vShX4H1lAA5AGnNYhjt06BCGw6HYRFC3ZrHsOqHTOoPsI/VIPL/l5f+/vTOPkrO87vSvet+rl6qu6r3V2oVBbDEjZpxgTBAeMrETnwyxsYHES0xIbMDxwniMHecQE3NM4knswZmDwTnJMXbOzGRsj2OHEGRPIgUMRlIQSEhq9b7vi3rvb/5oP5e3hFjdTUviPufoSOqqrvqW93vf+977u/cet+9E88j1YQOOcYpRyCZocnLSzg0DHMOZNjxs1PBIlpeX6/zzz1dtbe2qrq/S6+A5+s53vqO3ve1tq64kf6Nz/PhxdXd324NMk0Zcjiy+GC70VovFVuqKjI+PmzaEnS0ua0m2MEiy/jV0ol5efr6se3t7u7mfWZyIedP3jLARxRQlmXYDbRAeFjw9uHzb2trsAeMhpYpxZ2enaYbYJVM1mHAcE9vU1JQ1Y8VbQly7o6PDjDlqz4yOjlqYCD3O4uKiuru7rYcaHpjl5ZVebmSRoI0h1FZcXGxuZhYGSbawolMiuwcBNSEMNFRkcrHY5+fnm5iZMARubHQA3AOyO/AeUSeEbBDCPLiwyShh8pRWPFpokhYXF9Xe3q6amholEgk7J/Q1CO8bGhrU1dVlYREEq2gmyEghcwcwoAgbdnR02AJWUlJihTZ7e3s1NDRkYTlJVsCSMY2nZWRkxIoLom2amprS+Pi4LSwY1pwji0pFRYX6+/vV29tr4avBwUELPVLbh+zIMHmARq9RFFnImeeAMDPPVUlJiRmE4+PjOn78uHnyWET6+vosDC7JQhI8S9nZ2dY0mnuLNobnGiMhrODMQrewsKDOzk4T4I6OjprhTxFJkjfCcTI9Pa1jx47Z+KcmWCqVMuOFrFeKglJMkTASmhl0aqGRQA0tsg4nJia0YcMGy1LkvCVZthoiXmoSVVRUmEFD7SGeEWpOMWbQdOF9xDuEjovachhrGLyzs7Pq7OxUV1eXCbHZMFE/i00ARjCyAOZmaWVx5nlHgNzb22uFbakwzcJNAUYKj5JoQqVwah2RCYZGjs0pBgmhQerjMW9PT0+rq6tLc3NzJr1gA0gosrW11apeM49glCJlwDhi3PLdJ0+e1MDAgB0HmwFq3TFHEaaOoshqhK2FcfRqeM2ao8XFRe3Zs0fHjx/Xe97zHpWWllr6a9gj6lxjLT1HxGLDSsgIQMNaFexGQsOHyZlJACF3WCuDQYzQVJKlu2Kk4JbmASfkheuVz8X4wW1N2j/hlFCHEoZH0IdwvLjLEUCTgktog3PAYGQxZaIOJ1gWSL6TBokM8XAHjmcHcLNz7ZnsQtE1YvFTBZp4Bgj/UQKAc+A88CjgUg7vAaEgFidAiEroiXASu13c9XwW44XjDHUPjCN2n/yb7ye7jfse3hvCmIR+OB7CSIQYCDlhvITnFkWRiY65Z+jACKtgpLMLxzBgA8D953MZg4SZCe0hKo/FYubJ5DwIVeNl4bpwzyRlXC/GDxM7zxfHGIZGeS0MuYS1anhG8cSE157dO6Jmzp/zRdfBOOLaEFrjGnO8eLEw+jGa+CzCOmhSmAP4Xp4ZhN0YC4x9vNI8c2T3MW55xrkGHBufwWKLccExcw3QMKI1ZMHFSAifN+bL8Pjn5ubsNcL44TzB8XJdmSvD54T3sUHEa87CztjlmPge7gshJD6LrETmGrxOnAvvJaUdfRHzcHhtudaMQ8YZawChrTClnjHIe/FW4e3Bo8/9ZM5lvHH+4SaD68jxhX+HaxHPA5/LdeKehW2waF6+2qy556i9vV3XXHONOjo6NDc3p1/+5V9WaWmp/uRP/kRzc3O67777XtOBv9H53ve+pyNHjthusKCgwJqhYlkjjm5ubs4QwLGrZrAT4qLPT25urumEwrorVHg+ePCgCbmJNSMQJHQ2NzdnO8/S0lKl02k1NjaqublZfX196u/v1/HjxzU2NmYGUxSt9Curr6+3bt4s+IR6CgoKVF5erqGhIQsXxeNx7dixw8SLfBbXBp1QW1ubTTrE4MvLy5Wfn6/HHnsswwOBC5iwEA80qablPyvlzw6U3RguZbKPqH+C5gGvCR4USXa9MRrD5pxcy/7+fp04cUK5ubnauHGjGhoaLMY/NTWlnp4eCxFkZWVpcHDQvGw0a6WS8OTkpIUE2N2xE+R4x8fHbRc5NDSksbEx7dixQzfeeKN+8pOf6B//8R81PDxsImF+jwmMEA2p1IRG8GahNeFaVVdXW5hEknkYcnNXmgsfOHDAaliVlJSosrLSFgW8DaTq00MLoS99ynp6eqy0wNzcnDo7O23nSSoy4ejt27erpKREiURCDQ0NFlLlGkuyxQvvQSwWM81eWMl7cHDQxNN4PFjkMShCoXuod2lubjZvD+Ff0scxYgi1FBYWWhPe5eVlbdq0yRrNYviGCzSGOgsdffHISqIfYE9PT4bRLSkjy4/xi4eL0CGebAyKLVu2KCsrS52dnVZbDK9C+KwuLS1ZGFKSPRNUTsZgZnOA8VlfX6/y8nLLwEUOUFBQkLEwhzoxnke88IS4yKiSnk9yKSgoUH19verq6qyuD70r8dbw/JH6jnFIeB1vL6FvMksJ09LTr6SkRIODg+ru7jZ9EaVUMFx5Xvbv36+srCy1tLSosbHRSiSgNUsmk9q0aZMZ9zx/w8PD5t1GdN/Q0GDPA15OvJ8Y6ouLi9q4caPpm0ZHRy3ppL29XdPT06qsrNTAwIA9/2TRZmVlKZlMmrAd793y8rLS6bRl/TL3SzI9YvnPWvzgQYvFYpb5vHv37nVtRfaajKOPfvSjuvTSS3XgwAErgS9Jv/Zrv6YPfvCDq3ZwbzQ2btxokyqFGxEIkmKL25pUeuL4xcXF1l+KhbeoqEijo6OmRSB7pK6uzrwCZWVllsbJ7hHjhHR5Urd5+BAk0lAwkUjYsbEA8LvLy8tqaWlRTU2N6XHQAjFh8WAePXrUJqFQXIj+QVpZvNAs1NfXm/ubGjz0KMPAoFcRAteRkREVFxe/QOSMwSfJFjUWc/QEFJhEzI4AGG8IwkdSZmk/IT2vCWK3iJtZkjWoTKVSpk/IycmxiRYhNYsHmonGxkYr5onoHCOM9HVSutFxoGkifZlaRzU1Ndq+fbuNGxb8cOFhXJDCX1xcbIJrJj7c4nNzc6qrqzMhNcYkhlZJSYl27NhhGYKxWMyy67hGaC3Ky8tNHE6oFYExgmGMwdLSUo2MjKipqcm0emQvsZiEmY14BfBgYVxg7EhSdXW1ZSPxHjx0GKth+jWaLjxAYb2u8vJyKxKJMY0xEG52cnNzTbNVV1enkpISK62A9gpvQ+j5CT2XbIDwYszMzNgYC7PLxn7WDmhyctIMA4TmYakF+npRxHB5edkKDpKkgThbkiUMUGMqFMez6amsrMwoVonBScbp5s2brRwBzyhhJzxBhLAXFp7vEYlBI8muA5tDDLDx8XHl5eUpkUho48aN6urqMs82CzsFUysqKjT2s2bghFIph5JOp9Xe3q6qqiqTHOTk5Kirq0uJREIFBQVmXGNYoQfDiMKII6SNkUoNNkJStBiqqKiwECpJKhi1eNVSqZT6+/uVSqVMosEzMjExoaqqKisfsri4qJ07d2pkZMS0TpQ+IQNx69atevrpp81LV19fb6VKmpubzTvFuoKUgppcYe0pxgGbcDxJaFlpbbOevKawWlVVlfbu3autW7eqtLRUBw4cUEtLi9ra2rRjxw5zw52LrHUq/5EjR2zCR4hIeCg/P1+1tbX20JMJQlHIvr4+WwCnpqbMa8IEwkSE94nFmvRmdB2kECeTSatgSv2fhYUFbdq0SZLU09OTUWCPhyPcibL4oTVAf0FoEI0PgtB4PK66ujozyJj4EJVGP0uzp5cbrm5SpcPMK9zqVOUdHR3Vli1bTAzNzp0mu6WlpXY+6CUQ7PKdNTU1tiuiNhPNUJmciLOH4SUK5GF8NDc3Kz8/39LWWQDYUWJo0Ph3ampK1dXVps2gTg/aAOqakGrN9WNnWFCw0l2dkBj6LtKgoygygfLExIRqamrM3Y72DP0LafXoubq7uzU7O6u6ujoTwG7YsMHCB4uLK/2wqqqq1NjYqKmpKWuGiwcEPdLExIR9J1XYaXhKCA9PBJoxjp8dMf2cEE+XlZVZzR2y08hQQszK+MV7iRGKix/vJdo7dG+IvzGoMWKXlpZMy4VXBA8ZHg6MWsITGA+Maa4tAtbGxkYrOUEtoTB8ie6G2lBkqZEpOTw8bNcMgz5sJo3BvXPnTrW2turYsWPq6OiwhbqsrMwqNqNnQuiOh4mFE80V3mEalUqyZAs0LRh0fE9Y5ZlSCmhm8EpS8BDjraGhwZ5z5hy85ox9Fvkw0zDUHtXV1dnciZeazQUVtPE2hiElkmbKy8stq1VaKdfAPWXOmJ+ft81jZ2enVb9Ha5Sfn6+nnnpKTzzxhJqamrR9+3Zt2rTJni3GOeNfer43X5gUI0kdHR02BhsbG00/hG4sFospkUjYZpENDJtRBO6E7AhVJpNJ88aHxRu5jxhnYXYhXuGwTlZ/f7+ysrJMW1lWVqZt27ZZuZiLL77YQtmrxZqH1bhwp9LV1WW7b+fVMzExkdEAEHcrqZnsCohXIyKWZFW0qaSK8JDCfuwUSRUmvMPEyARKs1IeEI6Bh4ywTFZWlnmzML74DOpehDtaXLizs7O2k2eCITY/MjKSERLASCS8wWREmIJrFO70WTQQ+cViMRPl4kU7Ne2Y7+T8iJWT3YTre2FhwfQ6lDRgN8Tv8LAPDQ2ZN4WMtdzcXGvRgWE1MjJiEye7Ls6fxYMGs3w39V0QYKJ7IrRKSwF0U+hxMB7z81dawfT395vBG0WRuf3xQKCpQECKwYUOZGZmxppUorlgPJSUlFg4i3sureziBwYGzAtHGIl7gnFElWbGBYYPhsfS0pKFo9AZSSsGeSj4xdDECxNFkRlGJBiQHYY3gfMkGYHPQ5NFmY2ZmRkb14TNuL7z8/Pq7++3ZyI0IBDpYiRJMm9GFEWWjUgCQiieZUxznnwGHk6y7riOzA+IeKkvhlaLjQ3GEYkevHdwcNBai3Bd0DJxbvwumpEwlIjninNhgUfTEuqlmGvwLlDugGxTis1ilDO3Ub0bkXmYMo/BIa2EuicmJuz3uQehWBiPKYZMbu5Kc1jCeox55mCSFKgrl5WVZVldbEowFnlW8a5SG437T2Penp4eE09T3BStHL9PCBs9H55mMvMWFhY0PDxs8zabGaqXs3HD2OGZxTjE0GXODnVhaLrC2mjhuArLtTAv8kzgJeQ5Yx5n7LAGMjZW2zh6Nbwmz9F1112neDyuv/zLv1RpaakOHjyoZDKpd7zjHWpsbNQDDzywFsd6RrCWniN2zmSpsMskI0GSZbGhSULjIK2IZbu6uuyBZLeFi5iYLnH+yspKZWWtFChjh4PRi6CVgnvsxnjQWSTDUN/y8krl3UQiYV4r6uE0Njaa94m4/djYmLVOqKur0+DgoE1YuFkXFhZUWlpqacYIsbkW9OgqKyvLqGrMwoaBQmGy/Px8001t2bJFVVVVNmHiWUBrE3oIECDSLgHdUjhJ0RG9sLBQ/f39tghgaJSUlFh3a+4BgthTF5uFhQU1NDQoNzdXo6OjtsMfGRnR1NSUeddwtbNg4U3i/7Ozsxbq4LrMzs5a5e2ZmRldfPHF6unpsdcxNAh7oBOSZOEZrgH3Cm8hBf5CjxOera6uLknPi535d319vdra2uwY0Ybxe2GIkfIOsVhMw8PDtqMOvUjs5ufm5lRfX2+aubDWDOFnvEtRFJlui0w2Fix29WQMYuBQygGhMh7SrKyV+l2EcX7605/asVM7aHl52Z47PAwc19jYmG1OioqK7FjQsIQaIsoj8KziMR0ZGbEdPCFnsr5CAS3CfQwlNGOMAzKT2trarOYZuiJCwCyCVJ4Psz4J0aExoahkMplUFK1UJ19cXDTdSSi0llZCL5wfmWcYB5Qvoa1FfX29GXA8t0gAkAuQGUkYcXZ21sLqJHHwNyE2rk9ZWZkOHTpkOprc3Fyrj5aVtdJSBi8LGZtsAPGysUGiajfjNTd3pb0OnvqTJ08qkUgoHo+bZxRPF8Yszzb/l2Rz9fj4uOmEMLjZOOJxw8uLl4exRZ01vEBszPBC43VnDHR3dys3N1cbNmywkh/UtispKbHjLysrM6Md2QPlHzCk0TPV1NSYVnE1WfMK2V1dXdq9e7eiKNLRo0d16aWX6ujRo0okEvrxj39sRdzORdbSOHr88cctdZjwQXZ2to4fP24xW0RsGCb0QKJWEd6jeDyuiYkJ83iQJo1OAKEe6dA8POz08ExIK0bb0tKSampqbFeFfoRQEMXz2E0vLy9rcHBQExMTSqVSOv/881VSUqL9+/fb7gSdRTqdtmwOwiLsGlhw2FlQ44kwyOjoqPWxYoELF1HCdXwGBmIsFtP555+vCy+8UL29vdYjKDs7W01NTbabQTfBDolr3NDQoMrKSkkyvVFJSYmqq6s1Nzdn7QCysrI0PDysdDqt8fFxazBKEUQmb7wOLG75+StVoVtaWtTR0WH6gqNHj2box9DlIMbn+PDIzMzMmGaBa3z8+HFNT08rNzdXdXV12rRpk3JycnT48OGM7C9c59SDonYKO3kMFyZSrhnFLam7FIut1DDp7+/PqAWE9giP4ODgoOluuC4cN5/H4snudGFhQTt27NDk5KQ1FOU+o6UqLS2160SdMK4nIbvl5WW1t7ebFwsh6MTEhKWFMwbxuBLCHRkZUSKRsOeIitH19fWanJxUe3u7RkZGVFFRodraWuXl5ZnYPicnR7W1tUokEqZL6e/vt0rxtCchHEFtI7yNBQUFVtkY/Up/f7+F48JkBbyuGC+k8Id1a9CLdXd3m5e4s7NT4+PjVrkaL1w6nVZ+fr7S6bSOHz+u9vZ28wYSNqewJz3nurq6LLSUk5OTUboELy2epJyclQr7GzZsUFFRkTo6Oiz0GaaeY6wmEgklEgkNDw9bav7k5KQJqykWm06nrRXLzMyMamtrtbi4UuAU4wWP6smTJ80TRPmK/Px8bd68WdJKI+2CggL19PRoampKbW1t9ixSy2dpaUmNjY3asGGDlfPgc8lYZD5dWFjQ4OCgSktLrQEsImnGHF42DBSeGUKZeIXxLFZWVtr9PHnypHlkMWaRFTDu0TQxF0iyMGboSayrq9Pw8LD6+vpUWVlpHm80ow0NDSYLYH7ASM7NzdXQ0JB9R2FhodUry87O1nnnnaedO3eu6vrK87zm7UMWFxf10EMP6eDBg5qamtLFF1+s66+/3jwO5ypraRyFxcAQZGdnZ2t0dFTt7e2mzUin05qZmTEvCgtFfn6+NY9cWlqp/Nre3q7l5WXrARSLxaxmC/oF6g7hsZCeFymHpd4xNhjUtCcoKChQIpEwd3xFRYWGhoasy311dbXOO+88c5fiWaBWSV5enurr6+3hYFHkmIqKiqyQH/F5SaZTYPdBI1LCQAijCUsS40ZUfumll6qhocEmWHaHeEMInyB0zs3NtQagCCdxOy8vL9u5MJGzu2U3WVhYaHWc8Dqx+2LHze5sfn5emzdvVlFRkdUuys7OtkmYjCcmPCZOXN18FnoodqBMop2dnZb19Eu/9Evq6Oiwirl4gRBkhkJy6iqFniPaNiBuphYVQmUywdhZhzvd3NxcNTY2qrW11UKs1DaSZJqzMLOJEOXg4GDGBMyuG/f97OxKc10MforiIUifmZnJaByMVy4Wi5m2jzE5NDRkxjweP8KLYTo4ndBLS0stK/T//b//Z0UlKfw4Nzen1tZWW9RZBMkkDJvUplIpSSuhEIxvhNEYT3gnCROSGcaYwEMahjHZfOCJouUJmyGMjtzcXB0+fNiMco6zoKBA8XjcDDDGPB4ODEz0VniAx8fHVV9fL0mWMFFcXGztQfDcornbsGGDnQe9xAg1YrRkZ2dr69at9kzgOSK0j+HAvcFDhycFkTqyA+qGoZXEy/bkk0+qtrbW5mYKQi4tLem5556zTRQCcEpGMBZisZX+jP39/SovL7dyGLm5uaqtrdXo6KiFDDGaCWthSOB5pQo2P8erT1bf9PS0VbbnuKi7hjedmkckFuDhYU0hlM93TE9Pm+efe3/ixAkVFxdr06ZNOnHihCRZRWw8R3j5wrmBTFfaUBHmLi0t1caNG1e96ay0Do1n30ispXH09NNP264eFzipxyxu7AbRHhQUFNiOheq0dGLOzs5WKpUyFyYPPumw7Eaqq6vN40S6NhoIsjtYCEZGRmzxwgvC4hCLxay7PYUVJdnOnDRbJibElux8cDMPDg5aKIsMBgTYPLDNzc06evSoBgYGrPltWIOF/mLJZDJDM3H48GHFYjFt375dxcXFGhwcNOMCzwi9pNg90m8KA2RyclKNjY12XvX19Wao4rrGmGJCwdVO3aXKysqM4nXca0JL1GMJXe9kV2HEzszMaPPmzZqdndXRo0eVk/N8V3E0V4hLKysrTbBJWA9vWSwWU1VVlSorK21BIFxJyJbFYWhoyHRptN3o6OiwTVFBQYGSyaSFj5555hkNDQ2poqLCssq4tghK0WyRqYbniFAPzZaHhobMMKPMRENDg4UmWZT4bHRQFRUVljbNM8Diy3lmZWWpr6/PdtaEfqSVJqgU8mSil2SGAJmLhCBITz548KCF0gg/o2lBL1ZQUKBNmzZpbGzMvFsYmHhAyPxMpVJqbGzU5OSk7fZZECmtgFd3YGBAIyMjmpmZsQy+sbExNTY2WvgJg4PSHWi3CLvi5cMLEpZdIGQ6PDyspaUl85KFqfaEu7mei4uL2r59uyoqKnTixAm7B+ib5ufnbR6pqqqygozl5eW2OaOFz6FDhzJqUqEjY065/PLL7RpQYBFROMULKysrzVjhu9Dzoe1Jp9MmLVhaWrKQfCqVUl1dnXnxc3JydOLECQu/MreyWSouLlZra6s6OzszaqLV1taqvr7e5kwMni1btpiHOT8/37R/aObm5uascCght8LCQjU1NZkOkEKeRAu4RsgpCK2iu1xcXDSjF+8f3rXx8XEdOXJES0sr7ah4Xgkd0lw4lUrZOMZbz3yPhx7jvqCgQDU1NUqn0xoYGMior7dlyxa1tLSsesbamgiyv/Od77ziA/jVX/3VV/xeJxM8DWHxttB+ZWfFzwmB8DMWWhac8L3h7/An/I7wdT4jTKEPf/fU9+OeD48v/N3wO3k9fC081lPPLzx3xICnfg/vY+E63edQO4WFN7x26EDCY8YgCY839ASdeg6nu9ZobsLjP/X4wvtw6jU43T1gfITHwngJj4HjP931CL1aXE+OLXwfnxt+f/i9fA6L2umu1+nuffhd4f0Pr8Op9+jU+3nqtSFcyudC+L5T79upx/Fi40l6vtje6Z6FU/8d3h/GXDhuOafwu/kuruep53fqtQvPk88+3bMaHstLja2Xu94s6qeOu/A7wv+HY+XF5p8Xe+ZP9/rpnsfwGp46dk993k491pcaz+HYDX//dOcRfv/p7tOpzxPjKJzz+L7wGE8911N5qWt26jx1umMJP/fU94Q/P/X6EhLnu8IilKden1O95+E5hvc2fNbC419PXrHniAnyZT8wWAzORdbSc0TvrZycHHV0dFjoing0lVPZ7cdiMfX09KimpkYlJSXq7+9XIpFQZ2enSktLzaVaWVmpnp4eFRcXW8wc9/Lw8LB5ZAibUfwLDww1XAj3sDtCX0FcncmTInpRFGnz5s0aHx83ASNekaGhIVVXV6usrEzj4+MaHBy0zJWtW7eqo6ND09PT1vm5t7fXRJJoPjhGPA5oCyRZyYDl5WUrEoh2pbq6WoODgyaoxa2fSCTMZYw4HB0A9UrYgdNsdGlpya5nXl6eCWFJqa2oqLDrT2gqiiLzrFHrpLCw0LJG8OBRswhNDl6L3NyV3nJ4EtHW4Pkgk3BhYcEKRVL7pba2Vp2dnXbtBgcH1dTUZN9Ftin3nlRrJrXy8nJrL0NRQYrh4cWTZLop7kFdXZ0V/kskEjYm2traLFza19dnmhzCu5QvIBOI40HYiXcSMTH1iNgdowNC18GOeXJy0sS91N1ZXl62HntcM3qb4Z0KK2zzHLAjb2ho0MGDB00DFoZLa2tr1dPTo+rqaqVSKR07dswyEdndb968WR0dHcrOXqm2TXmNpaXn69iwy+caUquG5218fNzaNZA9iIeAuQVvIKVC0LRUVVVlLIzj4+MqLi620gnt7e1qaWmx5wbtGGEXjPPZ2Vn19vYqHo/r8ssv1/j4uNra2qwFDeU0ZmdX2oDU1dWZJ5vyGYlEwoT0HR0d5tmg3tLWrVstTNvX12dNoCnoScIEodf29vYM4frIyIjS6bT6+vosvExWHQU6GxoaVFNTo2PHjikrK8vWNjw51ODC4JFWjAnmMTSY3Pfa2lo9++yz5nXDwzYyMqLq6mrrIVhUVKS2tjYTkRP6JayJh5wQd3Nzs83h9AFMJpM6duxYxj3Nzc21sYMkAl0rWaCMPYxtwl3USjtw4IBVqicZIZ1Ov6CeFb9LTbRUKqXe3l4rL3Hs2DGrZYZkIDt7pd/c8vJKLbOtW7faZme18LDaGrKWxtGBAweUnZ1toj70QQxk4r9UQF1eXsl4SSaTKioqsjAXGW9NTU02yPPz860q7sLCghobG83ViWYkKyvLivaxiMXjcdMMzM/Pm8iasB4aDiZK+oUh+I3H47aQU4K/v79fy8vL1pC2p6fHhK+c79LSkhV7RHdFbRLCc0xWhMQWFhasxgiiys7OTpvcFxcXlUqlTEzMOaNnwXWPIRZFz5fvp2gbegBqTtHGo6KiwlKFqcxM7zrE8uwWEUKiU1laWrJwI+5zdFPcZ/QC9FkiU2Z0dNSq3mJYYUBLsro+6IeiKDIDEBEvWSU5OTkZDSGZ7KhJgxeJMB5d0zGISYdmV0jfppqaGkvtpdP80tKSuru7Nfaz5qMsLujPyOBhkWFhDVO7IZFISFpZmELRdWlpqU6cOJGxC6VYJinZhBnLysrU2tpqBSLJ2CM8kEqlTJxfVVVlpQlYwOk3R1hKer59B9eW42NxGRkZ0fDwsCTZeCbDEp0K72e3zvhA+zM/P2/i8sXFRfX19Zmug117PB7PSPWmgCb9uVjoea4wlHk9nU6ro6PDQk5hP0bmExbsWGylN+PMzIyqqqq0Y8cOxeNxPfXUUxoYGDBDsampSX19fRa+pwcchTvRUCEQR48kSel0Wps2bdLk5KTa2trsOhcWFmYkC1BdfWJiQolEQu3t7dq6das6OzvtdzAGampqNDQ0pKyslaa8BQUFqq2tzbjXGIJIFkpKSiwbkuuLF5SQ6/DwsLq6utTU1KTKykq1trZqZmbGsizpXlBdXW2p9FEU6dlnnzWdEPec7C0qcRM+p5Alm6OwPAGbtZqaGgvFMiehLSIsLMlkDNxfyidgyPf29trcMjY2ZmFf5iOM+OzsbBvbs7OzVteI8H5XV5fpAzH+k8mkKioqLDR6/vnnm5B/tVgz4+g//sf/qG9+85t2wHfffbc+/OEP24I0PDyst7zlLXrmmWde+9Gf4aylcUSBMoS/kmzgYVkjopNWJl8aZVIzp6KiQj09PRafx3NEvLerq8t0Qgjk2FGGizN9e8IBz2RLTQtShNE+nFqNd3FxUZs2bTKROSm9y8vL6u/vVzKZtFL/GAw5OTnatGmTOjs7TbOA1oXdOB4ADCdEiOhzpOdTypk0w7L/ZBZhFEbRivCTSq4FBQUZ9VHwACHspOAbAmEmFzwSxOM5Dq4/9zErK8s8Rxi8FObEsMRzxOSNpy6KIsviQS+Tl5enVCpl3eWZFJeWlpROpzUxMWEZgOl0Wt3d3XbthoaG1NDQYHVpaHmCwJ9FmZ1gPB631F28KydPnjTvGDWwZmZmzLuCxwrDgQrABQUFluGEpiWdTmfUXqJNCPcVXQmeI9L+8X6gXyOLE32OJCtYWFBQYJmcnGdY24lSGWh1WEAkmSeIHT/3eH5+Xg0NDTp06JAZnRhEsdhKC5L+/n5VVVUpnU6rra3NPBgs1Js3b1Z7e7sJivHaIgAnBIGhS8VmDH0Wb+rl8DssuLSW4fkhk7W0tFTT09NWyJT7jaYEPVlnZ6caGxuthhDHjacEA3h5eVk9PT2Kx+PauXOnTp48qe7ubmvU29LSotzcXCv1EWaPlZSUqK+vL6M6d3d3d0b4lixOrhWeo5ycHEv6QBA8MDCg5uZmnThxwjZGURRpZGREyWRSAwMDtrnA8ObepdNpVVdX68SJEzb/YlCh92TjGnqOwt5paOXYJLa1tdn6Sdr60NCQZTjizenp6bFmvaEgm7FGFGF6elqNjY1WN4yq3XiOUqlURn2z+fn5jJpfRUVFViuL+RcIe83NzZkW7+mnn7ZuDJSSqK6uturbaOu4FiMjI1bxmg1OPB5XV1eXjcGwXl9FRYXpopqamlZraTXWzDhCtEiqfllZmfbv36+WlhZJUn9/v6WHnquspXE0NDSkQ4cO2c6tv79fi4uLSiaTtrseHBy0onUUHisvL7csquzsbFVVVam+vt6qMDPxUJyRIl/8XiKR0Pbt2/XUU09pampKjY2NqqmpyXDhskMM3cV4qGhnQQ+epqYmdXZ2amRkxKruEm+nMF2YXcfClJeXZxM2VVvn5+fV19eXsVOenZ3V4OCgGQlhTSSMCzwdyWRSDQ0NFgYIs2zYvVP2f3Bw0Op2kLqKF4HMG8TWYY2QVCqlyspKTU5OWl8pQkEYXUwyhA8QnVPHhcW9rq5OU1NTmp6etsrH3C/qtWDY0fU+iiI1NTWpqKhIx48f19DQkIXTBgYGLAOPnnvLyyuZdVVVVRoYGLBdLxXDWQwxvDZu3Kja2lorLtjV1aXR0dEMI2p5edm8LmRbUZICjw/enLy8PCtGh+sdjxjP1Pz8vGWzMGnTgoZCjNRSYuHMy8szUXJFRYWSyaR9NingtK5h4cUrR4+zsrIyq88Tj8ctrTqZTKq9vT0ju4iNSldXlyYnJ/WmN71JV155pf71X/9Vo6OjSiaTSiaTZmRy7HhQGKsU6kulUhlhGgxuwm5zc3P2DOEpReyL4RxeC2qKEbaQZJ4AUteLi4stZEOYe3h42LxBLJaEq/BScE8lWVHTmZkZE9YSPqZeEs88C/zY2JiFU2dnZ1VTU5ORyMAz3NHRYcZeOp3WRRddpLy8PLW1tZmXJytrpbo1Czbh5pycHEtgIfV+fHxcUbRSV40wbFVVlY4ePZqRLl9cXKympibblGFI4FFEhIx3C+Nqbm5OmzdvtutPEVH6nJEZl52dbb0cSVKgZhTz+tLSkoVI8ahTu2tmZkadnZ02N3BehNHGx8dtw9jS0mIbSOYLvIncD7xIRAioQcS9oOgt8J1LSyv9O5PJpMkVEFvj/Q1F74uLi2Yk19TUWCssnunl5WWNjo6qtLRUb33rWy2rcbVY8wrZ4BG51YXJHe8C4SBq2iwuLtoiiUHAQ0YYB4OB7BVCYkyO4eTDwkJPJLKI0BmQzonHhQrFTHRRFJlLfHl52QZbZWWlPaxRFFnGQVjRV5LtzPE8EU4jvMAugiq4GDT0rqK4GtciiqKMTBnqQJHuSpiSDBI8BbjJSV0mg4cUeOqjZGdnZxQZpDIxvdwIFZKeH95T/k1WydLSki3a9Cnj2hNnZ3fH74Y6EkIGeEoIyxFiwaPHsYdjAE8Yhh/GEXWk0KngwWIcUeiQOlJRFJkGjDR+6stw/RnLXE/CHYRl0amggYvH4+aNoKQC0OKASVuSGRMs5KFuA0OJhY3vjKLIPENhGYacnBzLYiLES+oz15c0fPRoZLCRFVdWVmbGA94LDClCHXiHCclyT5LJpD3/GNYsYOHOn5+Rkk/RPsLM1BXiWaJ2DPeBcC0lDQhXs3HgvDkWKiVzDsXFxSYyx8tHiJgCocwZWVlZ5vUj5Z3xiGFXVFRkDZwnJycVj8etHQULMvMamX9c17BsALV6wv6HhK9pecGYDfugcZ8IMWIclZeX270m9M18yjOAdzc0BAkN4cGkxhLPHXMV9y0rK8u8yHjjCGFTsoVrFN4XvLTMHYuLKz3guO88H5QQYC5fXl62DLswBMe9xru4vLxs586GAM8inlSE2dTfO9VLyxq1uLhoITTC7mz6S0tL7Xpx7jxr68nP5TkK+6pJ7jn6eRkZGdGTTz6p5557znQf09PT2rJli00YlOCvra3V5ORkhgCWmicUPlteXjZvSG5urqV2IsCrrq5Wb2+v1dwg1IZbGEsf1zvCU/5PCAmDgh1Lc3OzcnJy9C//8i/Kzl5ppkjRr7BiMsJA0ucXFhas6zMu69LSUksVx4hgMsKzUlBQYCHJpaUlW3TwaJCOjGFDQT2uL/9mwkfUfvLkSW3evFkNDQ3q6+tTa2urYrGYtcnB0GLBpn8REzY7MTwcra2tGhoasurM3EsKLVLQDa9IFEV2bzAM2K0ODQ1ZmQGML6o5M7nz3bjO0U5xnWpqaiykSfgyDOfSnJfwFf3NCC2iSWCsSNKOHTvU1tZmDX7RznEP0DDhQSorK1N/f781Pia0h+EyPDyspqYmzc7OWriY1HUWPiZqwkN4aQihbNy4MSPFnzAFEzS9oaqqqmyXnEql7DrTF2/Dhg06cuSI7YypuRPWh0IgTZHP4eFhbdmyxWprYVCgOzpy5EhGbbiamhr19PSYR47yBxj0eFdY6MO+f7W1tRoZGVFLS4uFNAYGBszARhPDH46D2jJ4YQnDIkqmWCYG1fj4uCYnJy0kjA4Hb1hXV5eFSzZs2GDjDaOA32eRpb4Ohjg91KqqqkzDyLM2NTVlInzuMzXhcnNztWnTJks9TyaT6ujoUHd3t4UfEXRTkwktTUVFhfVRo6n36OiolpaWLMyPtxMvPJuw1tZW6zvHuMT4IoRP2Lq4uNh0SmEl+iiKdN555+nkyZNWy4ykD+43zyAbO0K8VVVV6u7utur7eIfpFUflcYxt5kyMbZIXwoKUk5OT6unpsZ5yVBVH+4leaHFxpWn4+Pi4eZDy8/OtphwNvzkufp9GuBhs3d3dqq2tVXd3tyTpwgsv1CWXXLKq66u0hp6jMFU2/JmzOnR2dur48eNqbW21zC8WbFzRYTYVA1qSudjZyRCXHhoaMuOFWiJhVdVnn33WKtPyHeFukRpAYR8dMhgovx8W1EOsPDs7q66uLsuyqqysVH9/vyTZJMlCy+dMT09rYGDAFtxkMpmRjUZGWehZYbEJ+8qhPUGvwU6LhQV3OmHGcHdEyIfy+9JKFdxnnnnGBLzDw8O200ZgSOgRPQGuc8735MmT6urqssazfA4FNFkA2C2TXcQ9x6hDSEv4goWFHVzoecOFjgEd9iYL+3T19fVZiHRwcNA8bngKMGgICw4PD1urGz6DljIspIODgzYO+Bw0CeyaWRi7uro0NDRkIbhUKmWeqpGREQtlUWcHw4ewHqJjPDQsmiwe6BxYlDlOSTZuEWijl8OQZ2xS+wZjhAWE7EW0NoSYKysrVV5ebuENvKh4XktKStTa2qquri6rRURrG7Qm1DxiIaMFCi0t6EWHFwzjn8y5Y8eOWWgbrVKYTp2Xl2fXjLpgeJXxLHMcAwMDpu8jVBlFkTV85rPm5ubU3t6ugYEB00GWl5db78PCwkKTBvBMo+/jOGmcTH0cQrJkkRFmxFiUViQJVM9HizMzM6Onn35ag4ODSqfTlrhBQ98oiux5qqqqMmMXzyTJHDk5OTp+/LgGBwcVRZFJCshK7ejoUElJiRX4rKqqsqK1tFGi3hjjkGeWcCSbhby8PB07dszCVel02p6hcDOFcYS3qru7W21tbfaZePQwdvH4InZHgI8nLfQUoVvr6enR0NCQoijKMJwJzbL54HxmZmZMh8exITFAwoEGkeSg7OznW7TwM+b2tTCOXg2v2nP09re/3dxd3/3ud3XllVfaAj03N6cf/OAH7jl6jfBgosFhh8dDwwLJoMPlS/oo4Q92yZIsXIKAln/zUDCZhsX3EB2y0CI2DPswEd4JU385B1Lt2S3jzWBC4O9TxX/oKgjH8IcwBN8JLNoUK5Oer9eBgcdnM6ESZsGdjYCZ8+UasNtl0ZqZmbHvwLPGAs7vEsbhumCISLIQF+/nWNhwkG4d7ggx2JjQuBcIc8P7hpCenWEoamaMsCBiVHD8vA+vHteH3+Mz+G5JNrGFBtfi4mKGLgw3PHoMSXYOeHv4XVo0IDwFRKuM/dzc3IxxyXjGKOd6h9cL7RxGSjhmuX4nT560Zyr0POGFxFsUZqJRboDrHiYycP1mZ2ftmjA+uc8YX4xrstDQyTAuEavikQzHMZ45PE14XRn3bGYIfbJo8YwTLmcDwXXGWCkoKLBwCOOYOYANFGEaxg3PDiGuqakpu8+MQ/4O54dwLmDOIVzEuGazGAqjGTOEdwh3hQVVucaEbBD0M2exyQrHMMfCNWBe5V4hKwgNn9zcXJ08edL67WHQhuMODzzjl+8pKyuzzQb3MUxiCbMW+TyuAVohrhFeYp5R7k04Z4ceeJ4trjlzMeeJwH9+ft7uuSS7XpwjOrlwDcMjxcaFZyoslImnkQ0phu5qs2aeoxtvvDHj/+9973tf8J4bbrjh1XykE/CTn/zE0mD7+/szHjLCLgxmdtN4ShYWFtTc3Ky6ujo999xzNjmxqyatOZVKqbq6WkeOHFFXV5fKyspUWVmpxcVFJRIJM7iysrKsMjDZJtS0YUfCLo4wAjqaqakpq4FBJWA8QewkCMfx4JMyjcsWjwcuXXY9NK8k/ZgJDp0D4uOJiQkTOOIpojUDu+lYLGYtJag9kpuba72wKGeQTqf19NNP246RbJhkMmnXgrRfdFxoayhvMDU1pb6+PvX399sCLMm0DZs2bTL9VFFRkYmn5+bmzFvAJFdeXq4dO3bo0KFDOn78uOlACFGGBgS1WBYXF02HUf6zRsAdHR06dOiQ7V4XFhasSjeeSK4TmX1ocSSpr69PQ0ND1sSzt7dX27dvVywWU29vr3k9xsfH7T5KyvBmMTYRaS4tLVndGX5vcXHRkhMwFjmW6upq5ebmamBgQJWVlUqlUuaRKC8vtxAP17W6utoWe8IUiHjZNeN55Od0UF9aWlJzc7P+3b/7dxZ2GRkZsc8IszSrqqos9EqGZOgZ4n4S6qZEQjwet9Y0eA0IsxK+I6MLHQtaweeee850c3wfG6IdO3ZoYmLC2nVIsg3MwsKC1dmh1xmaLXRphGWk57Vzvb29tgiis+JZZNE8fvx4Rpo/iyyLKDq3qqoqCzvH43G1tbVZ5ij9G8O5gsxJGq8uLCyY3gtN4uTkpI4cOWJaPEK32dnZ1uYCD+/4+LiGhoZMM4iXCt0fsgGyzqIoUmdnpxkqWVkrZVDQRZLhyEaUNiR4iQgXSsrQnvE8SCsGAoYkYVpC2xzj1NSUeaDj8bg1M8Z4LC4uNq8nobyFhQVbMxoaGlRdXa3u7m4zBAnndnZ26uDBg4rFYmpoaDDtXXt7u0UwKioq1N/fb0kFyWTSQpyU1cBYxxDHi8g8zzONQZibm6vNmzfrne985xqttK+MV2UcPfDAA2t1HI5kISOK6lFHYnR0VHV1dWb1M2GxOyczatu2bcrLy1NjY6Nl3rALprliPB631xH10Z6AWhhM1mSwUNcCcSHeKDxE0koKJosEDx8hIgyu6upqe3BZiNEehPV4COFgLCAYLCgosAwtDBm8QhQd5IEkbIO4F8MqFotZTRUMMjLuwgWzrKxM09PTSqfTamhosPdRYwrtAK7uZDKp0tJSMzCzsrJMQMkOXMqsI8KkWF5ebqJQJn92cYTbMBrDXk30/0KIiaAVg4ZFnuvKTp6eR0tLK20fCP9g9LFQE1JYXl5WIpHQ4OCgFhYW7FqxeMbjcTNOmpubbceL/oawCeN2eXnZxlxpaak1HmaXTGo3CxWCYSZXhPzz8/PWWPbYsWMqLy+3PmTUTWGc5eSs1HCqqKiwhYHzrqqqMiOZbDaOZW5uToODg6qpqdHU1JQ2btyoVCpl449dt7Syi0bvgbAbbw/hNsoI4MmiaCWhyXg8rlQqZfctbOHCPSN0y2dQ7gMxdnZ2ttLptC2IZHNRciUn5/lCr2gMm5ubzRPC4kvNM8YOngcWTzRVZJLiUcbDWF5ervz8fI2NjZm4Ga8wG5fc3FwlEgmbP4qLi0230tfXp7KyMhUVFVkLJEnmKabZKd7y/Px81dTUWMiVMhNsjAgtcb1JApFWwqvd3d1mWNJTjySR0BtTX19vzzjXPYpWGvki/Ofe8kxWV1db816MI0oHMIeSzMC8UllZaUkgaK7CkCj3j80dmxG0X6cmtqDHQxaxsLBg81tY1y0vL0/xeNw85lEUqaGhQclk0jxYAwMDFmojjBhFkZLJpNLptK0/oXid+0EWclj+hWxeHAANDQ1rts6+UrwI5KtkLcNqhw8f1uOPP24ZTWRl4AXiVqEFwjWMC5zQRJhZRhXjsBNyTU2NiouLdeLECXPHE7Yilk9aLh3pMQjYvfFQURSRB+LEiROam5uziT0ej6u9vd0ebjQ3mzdvNiFwVlaWeXNI48TFGoYxyFipr6/XT3/6U4vns3MOs0DwJMXjcW3ZskWdnZ3q6+uTJDU2NlrZA0S6hJAw6gh/kM03Pz+vY8eO2fUn9EOqPpNJqCfgviCmXl5eKdpJU15EluiW2B0SUqMqNAsONYLy8lb655GmLcmE1RMTE6qurlZ9fb2FCY8ePZoR1sCT1tLSooWFBSWTSfN8sHgz5tARUM+F42LRJ9Vdki3U8XhcfX19ZiiS3jszM2Oey+Hh4YwK6OjBQq9hOp1WKpXSyZMnNTw8bMJWvALUwkEXg0eCxYEQCzWnwrBGMpk0HR1G+rFjx1RfX6+ioiIdPXrUwgSTk5OmuWGRwPDr6ekxwSzGQRhCzM7OtgadbCp4pumlRU+srq4uLS8vW8kDxiahN8ZFmMk6Pj6u3t5eq7uFx48+aWFmHeEzwh7cM4xeFjDEshS4ZCPEc8YYpVjq3Nyc6urqzMuGsVhbW6vBwUFrPoq4PCw3MDIyYosyHtKwB14qlTJPJottGApFz1JWVmaNdfG40CCbbvJowShDsWPHDjMUx8bGzMtIU2eSDtA9cpwtLS3q6OiQJKsxV1lZaan1eCm5JyTL9Pf3q6OjwzIZ2dRs3LhRzz33nGV6kTWJ5xzPCiVB2tra1N3dbWEziuUy3zNGCLemUik1NTVZbzSqyZONylzExjGs3XTs2DHzKPE84fVOJBK2waAuUyKRsI0Am3ey9Obn502LVl1dbWtEGC3gOJqamnTeeeet6voqvY6p/M7qMjQ0ZOJbwjxMqGQ0SLJaRdRLoRghceNQbxPuGChuiCsbNz27BfQSZCEhvKX+BBoISSZIJsyEm5dsBIrEsYgj+CVbi4cKzwrZatRkos4GIQA8Czk5ORoYGNDQ0JAGBgZs0cVtjyiUhSkWi5l4mBYe1BSSntdR8dCzg2JS5OcskNwPdBJ8FxMIYUS8WaTgoyVB0IqYmfuK+x0tSRRFZvySmky4jglxZGTEal4RLsQQQLh58uRJa53CAkgdqTB9mMkJr8bMzIztemnOi26KhTUWi1kzWHZ/pIZjuCJi5jMxsKh8zKJH42CuB8JrjmF0dFRDQ0PWMoFrF2bkUX6CZ4T7SePfUPOGRojQGfWGEKMPDAxYaJIwNyGesIxGGFbDE4J+jPGKUYYhh65kcHAwY4wQ3sRol2S1pTDUwnFJVhY1szBwQ40WIZ5QfxXebwTQPAN4ThmrhDnQ00kyLxHPA54mBO9opqSVxYgNA0kfyAFILOHcMI5IrEAWgIHBM4tGj47yjGnabDBvIuaen583oTBzDLWVcnNzNTk5adlZlGVAoI+hgdgdg4S5F2Njfn7e7kPouUH3xTEMDQ3ZtWbTWVpaqv7+fsv+CqvM81wxZpaXlzU0NKTh4WHbpKDX4Vx4xthQM+cNDQ3ZM0F9JHRveMIQqONVx/hHzsC8hu5rfn5eo6OjGhgYsOeMcYKXiXE2MzOjsbExM+ApJsqzTMSADcR6456jV8laF4Fsb2+3XTALMZZ8KNCcm5sz46K+vt5SvKMosrAErRHCAn+nClRx/7IQhGJRJt8w4yYWi1mBQbI/EK+yyBDG4oGMxWKWlktMm8kMcWR2draSyaS1wyAckJWVZW0M0DaRCcJEhKElyXZbLFhoWND9IEiuqKiwrucs6jwKCKaZxBE7hos2BgE7/eXllTpTTGyEctBbhIYNQkdSygmzYRTR0T4vL09dXV0qKiqy9xGyYrLE+OP1sEo0RllfX19GXR/CWxx/eXm5eWUoDYDOh+KPXAdc/5Q7oGbN5OSk7QTpb4fQFQOgrKzMstIIMYWvIZDHw0HKPlk7J06cUH5+vtWnYTfLgojLnkWEzCwq80ZRZFXUMbqSyaQVD2SRLygosPRojp9ssLDWEedHlXeMHwqpIiwmlXp+ft5CVehbpqenTRNCaQYWvFA8jVeusLBQXV1dlo6+tLRk7XnCPmWMWYxuQnuMU/QveFrY9HAMGEfU76qurrayBdwntFtsFPAO8WxSyRvNEosuY4lxwiJNKJEMQUnm+WEhxcONGH52dlYVFRU2LjAOsrKylE6nbVxznFy36upqM0QZO0tLS0qlUtbnj6rtg4ODdl+Yz7jm8/Pz2rBhg/ViJGwcj8dt/M7NzVmojvpTFIAdGBiwMJr0fAV2stcIL5PVx5xbVlZmukQMEDRa5eXllgmMLGF8fNxEzugq8Ub19PRYligZeoWFK70eaRkSZjiXl5drYGBA8Xjc5iYyDKXnPabUM6uqqjIPKTXEJJnMgfvG3Euol7ZAq4n3VltD1tI4+p//83+qq6vLdmrsQqnUTCgjFotpdHRU3d3dGfHtvr4+5eXlqa6uTmNjY9Yag1ATtWvQG2CksBhLyhCHjoyMqL29Xe3t7RbHx22alZVlxQ/ZQeBtGhoasvRdKh8zYVEgjYaDTBRM/BgQuJPZAeMSR6BKGj67WBYwrhu7IfQj8XhczzzzjKJopTou5fClleam1FxioWV3PTMzk+ERw00syYxA2g/Q2w4jlnATuogwM4NGu+EiEPbU2rZtm/r6+jQwMGA7+MLCQqvUjcdjaWlJIyMj5s2hoWtzc7MtJngkKdhJ+BTNxeLiou3Cc3NzVVtba2JPvCChcRYa41NTU1aIEc3W6OioaXcwVEK9Ck0sGX+FhYWqqamx6xFqzkJvF60dQhF8dXW1ZcXgOaytrVVfX58KCwvV399v5QDwwoUNhjkG3pOfn68NGzbY4h8KyynwR42jsLgpzaAxOquqqrRp0yb19PRYQ+nS0lI7T3bvLPZ4pLg/eJHwqJWWlmrTpk1WB4aw9/z8vC0+VJ1Op9PmhcALFY5HKrQTPqX4JNecJQHjqqBgpXdcTk6O+vv77dpQ9oMNDHrCMDEAgxV9DZ9LGB0PcSwWs/AYHjkE0cxbhN2zs7OtHMbi4kq/PurA4YVARoCwH0ON+0gdteXlZfO4FhcXa/v27ZqdnbWWP88++6yVJKmtrdWJEydM77O0tKSqqiq7RojJJWVkBFNLi2MhLNrX15eRxYtXk99hPBPKZN6rqqqyxBvaEDFXcewVFRW2YRwYGFBFRYUqKipMnxZ6kTDE2UgVFhZq27ZtFsqn7h7SCGov5eTkaPv27erp6bGyEZIsaQARP9W/pZW+eHgvMa4GBwfV2dlp2ZoYh7/wC7+wquur5GG1s5YdO3ZIklnueB0QvrFQMTlQ36ehocFi+7FYTC0tLVZH51SBZZjtEdZcCdPYcWui36CYIZlyGzdutDAZi9zi4kobiLCtRTwetwKOiURCk5OT9tDgJieDrKioSKlUSmNjY9aRG2OQHSdhk/b2dit2SQ0UzpVdMBPJwsKCteTA+4awe3h42ESz1HhhciLURaZMUVGRTWTocpjMUqmU/RwNEAtqmD6P4UQIkzAI153dcGNjo3JyctTc3KylpZX+aOx8i4uLzfhjZ0V9q6ysLDOkqHZcVFRk2XeVlZWan1/prYSxwC50YGDAMmlYbLu7u01XxrFR4behoUGtra3avHmzCX/R8cTjcQslEALCYCBUwcSJgZlMJpWbm2sZi3hqcO/X1tbqueeey8gwjMfjqq6uNo/e3NyciaU3bNhgmVw9PT3mrUgkEqazQnBP4gNet6qqKiWTSbW2tloxyHg8btWbi4uLVVNTY95XdvUIx6enp7Vx40bTQIWhPmrh9Pb2qqGhwWqAoQejavDAwIDm5ubs3rNg7Ny5U21tbXrTm96kZ599VktLS7YZGhoa0oYNG2whDsPsjCNppVgongdE7RhHsVjMvGv0zsvJyVF9fb3NAZLMy4gmDo8UWik8gHiO0LbgySasROiPOSeVSr1gbMfjccuapZgj3qyTJ0+aEDoej1tWIZtEvMMYfk1NTWptbVV1dbV5yxOJhIX+KioqTD+0efNm0+HxvaWlpYrFYjanLCwsaOvWrXY/kQHgzaYVTSKRsAa0c3NzWlxc6RGHBhR9FGULyAzjmqJZotVQIpGwkB6GWn9/vwoLCy3LkWd106ZNmp6eViqVMs/wkSNHrM4YzZnT6bQlNqDt7O3ttTHO/a6oqLBM5kQioeLiYmVlZVn4N/RuMYaRHdTU1FjojKw2dGskebDhXm/cc/QqWUvPkeM4juM4a8OrWb+zXqdjchzHcRzHOStw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwn4JwyjpqbmxWLxTL+3H333RnvOXjwoN7ylreooKBADQ0N+uIXv7hOR+s4juM4zplIznofwGrz+c9/Xh/84Aft/6WlpfbviYkJXX311brqqqt033336d/+7d/027/92yovL9eHPvSh9Thcx3Ecx3HOMM4546i0tFTpdPq0r/3N3/yN5ufn9fWvf115eXk677zztH//ft17771uHDmO4ziOI+kcC6tJ0t13362qqipddNFFuueee7S4uGiv7du3T7/4i7+ovLw8+9nu3bt15MgRjY6OrsfhOo7jOI5zhnFOeY4+8pGP6OKLL1ZlZaX27t2rO+64Q729vbr33nslSX19fdqwYUPG76RSKXutoqLiBZ85Nzenubk5+//ExMQanoHjOI7jOOvNGe85+tSnPvUCkfWpfw4fPixJuv3223XFFVfoggsu0Ic//GF96Utf0p//+Z9nGDevli984QuKx+P2p6GhYbVOzXEcx3GcM5BYFEXReh/ESzE4OKjh4eGXfE9LS0tGqAwOHTqkN73pTTp8+LC2bt2qG264QRMTE/q7v/s7e8+jjz6qK6+8UiMjI6/Yc9TQ0KDx8XGVlZW99hNzHMdxHOd1Y2JiQvF4/BWt32d8WC2ZTCqZTL6m392/f7+ysrJUXV0tSdq1a5c+/elPa2FhQbm5uZKkhx9+WFu3bj2tYSRJ+fn5ys/Pf20H7ziO4zjOWccZH1Z7pezbt09/9md/pgMHDqi1tVV/8zd/o9tuu03vfe97zfB5z3veo7y8PL3//e/XoUOH9K1vfUtf/vKXdfvtt6/z0TuO4ziOc6ZwxnuOXin5+fl66KGH9LnPfU5zc3PasGGDbrvttgzDJx6P6x/+4R90yy236JJLLlEikdCdd97pafyO4ziO4xhnvOboTOPVxCwdx3EcxzkzeDXr9zkTVnMcx3Ecx1kN3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcgLPGOLrrrrt0+eWXq6ioSOXl5ad9T0dHh6699loVFRWpurpaH//4x7W4uJjxnj179ujiiy9Wfn6+Nm3apAcffHDtD95xHMdxnLOGs8Y4mp+f12/8xm/o5ptvPu3rS0tLuvbaazU/P6+9e/fqG9/4hh588EHdeeed9p4TJ07o2muv1Vvf+lbt379ft956qz7wgQ/ohz/84et1Go7jOI7jnOHEoiiK1vsgXg0PPvigbr31Vo2NjWX8/O///u/1K7/yK+rp6VEqlZIk3XffffrkJz+pwcFB5eXl6ZOf/KT+7//9v3r66aft937zN39TY2Nj+sEPfvCKvn9iYkLxeFzj4+MqKytbtfNyHMdxHGfteDXr91njOXo59u3bp/PPP98MI0navXu3JiYmdOjQIXvPVVddlfF7u3fv1r59+17XY3Ucx3Ec58wlZ70PYLXo6+vLMIwk2f/7+vpe8j0TExOamZlRYWHhCz53bm5Oc3Nz9v+JiYnVPnTHcRzHcc4g1tVz9KlPfUqxWOwl/xw+fHg9D1Ff+MIXFI/H7U9DQ8O6Ho/jOI7jOGvLunqOPvaxj+mmm256yfe0tLS8os9Kp9N6/PHHM37W399vr/E3PwvfU1ZWdlqvkSTdcccduv322+3/ExMTbiA5juM4zjnMuhpHyWRSyWRyVT5r165duuuuuzQwMKDq6mpJ0sMPP6yysjLt2LHD3vP9738/4/cefvhh7dq160U/Nz8/X/n5+atyjI7jOI7jnPmcNYLsjo4O7d+/Xx0dHVpaWtL+/fu1f/9+TU1NSZKuvvpq7dixQ+973/t04MAB/fCHP9R//a//VbfccosZNx/+8IfV2tqqT3ziEzp8+LC++tWv6tvf/rZuu+229Tw1x3Ecx3HOIM6aVP6bbrpJ3/jGN17w80cffVRXXHGFJKm9vV0333yz9uzZo+LiYt144426++67lZPzvINsz549uu222/TMM8+ovr5en/nMZ142tBfiqfyO4ziOc/bxatbvs8Y4OlNw48hxHMdxzj7ekHWOHMdxHMdxVgM3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQLcOHIcx3Ecxwlw48hxHMdxHCcgZ70P4GwjiiJJ0sTExDofieM4juM4rxTWbdbxl8KNo1fJ5OSkJKmhoWGdj8RxHMdxnFfL5OSk4vH4S74nFr0SE8oxlpeX1dPTo9LSUsVisfU+nNeFiYkJNTQ0qLOzU2VlZet9OK8bb9Tzlvzc/dz93N8ovJHOO4oiTU5Oqra2VllZL60qcs/RqyQrK0v19fXrfRjrQllZ2Tn/8JyON+p5S37ufu5vPN6o5/5GOe+X8xiBC7Idx3Ecx3EC3DhyHMdxHMcJcOPIeVny8/P12c9+Vvn5+et9KK8rb9Tzlvzc/dz93N8ovFHP++VwQbbjOI7jOE6Ae44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHOOuu+7S5ZdfrqKiIpWXl5/2PbFY7AV/HnrooYz37NmzRxdffLHy8/O1adMmPfjgg2t/8D8nr+TcOzo6dO2116qoqEjV1dX6+Mc/rsXFxYz3nI3nfirNzc0vuMd33313xnsOHjyot7zlLSooKFBDQ4O++MUvrtPRri5f+cpX1NzcrIKCAl122WV6/PHH1/uQVp3Pfe5zL7i/27Zts9dnZ2d1yy23qKqqSiUlJXrXu96l/v7+dTzi186Pf/xj/af/9J9UW1urWCymv/u7v8t4PYoi3XnnnaqpqVFhYaGuuuoqHT16NOM9IyMjuv7661VWVqby8nK9//3v19TU1Ot4Fq+Nlzv3m2666QXj4Jprrsl4z9l67quBG0eOMT8/r9/4jd/QzTff/JLve+CBB9Tb22t/3vnOd9prJ06c0LXXXqu3vvWt2r9/v2699VZ94AMf0A9/+MM1Pvqfj5c796WlJV177bWan5/X3r179Y1vfEMPPvig7rzzTnvP2Xrup+Pzn/98xj3+/d//fXttYmJCV199tZqamvTkk0/qnnvu0ec+9zn95V/+5Toe8c/Pt771Ld1+++367Gc/q5/+9KfauXOndu/erYGBgfU+tFXnvPPOy7i///zP/2yv3Xbbbfrud7+rv/3bv9WPfvQj9fT06Nd//dfX8WhfO9PT09q5c6e+8pWvnPb1L37xi/pv/+2/6b777tNjjz2m4uJi7d69W7Ozs/ae66+/XocOHdLDDz+s733ve/rxj3+sD33oQ6/XKbxmXu7cJemaa67JGAff/OY3M14/W899VYgc5xQeeOCBKB6Pn/Y1SdH//t//+0V/9xOf+ER03nnnZfzsuuuui3bv3r2KR7h2vNi5f//734+ysrKivr4++9l//+//PSorK4vm5uaiKDr7zx2ampqiP/3TP33R17/61a9GFRUVdt5RFEWf/OQno61bt74OR7d2vPnNb45uueUW+//S0lJUW1sbfeELX1jHo1p9PvvZz0Y7d+487WtjY2NRbm5u9Ld/+7f2s2effTaSFO3bt+91OsK14dS5a3l5OUqn09E999xjPxsbG4vy8/Ojb37zm1EURdEzzzwTSYp+8pOf2Hv+/u//PorFYlF3d/frduw/L6ebt2+88cboHe94x4v+zrly7q8V9xw5r5pbbrlFiURCb37zm/X1r39dUVAqa9++fbrqqqsy3r97927t27fv9T7MVWXfvn06//zzlUql7Ge7d+/WxMSEDh06ZO85V8797rvvVlVVlS666CLdc889GeHDffv26Rd/8ReVl5dnP9u9e7eOHDmi0dHR9Tjcn5v5+Xk9+eSTGfcvKytLV1111Vl5/16Oo0ePqra2Vi0tLbr++uvV0dEhSXryySe1sLCQcR22bdumxsbGc+46nDhxQn19fRnnGo/Hddlll9m57tu3T+Xl5br00kvtPVdddZWysrL02GOPve7HvNrs2bNH1dXV2rp1q26++WYNDw/ba+f6ub8c3njWeVV8/vOf15VXXqmioiL9wz/8g373d39XU1NT+shHPiJJ6uvryzAgJCmVSmliYkIzMzMqLCxcj8P+uXmx8+K1l3rP2XbuH/nIR3TxxRersrJSe/fu1R133KHe3l7de++9klbOc8OGDRm/E16LioqK1/2Yf16Ghoa0tLR02vt3+PDhdTqqteGyyy7Tgw8+qK1bt6q3t1d/+Id/qLe85S16+umn1dfXp7y8vBfo7lKplI3zcwXO53T3PHymq6urM17PyclRZWXlWX89rrnmGv36r/+6NmzYoOPHj+u//Jf/ore//e3at2+fsrOzz+lzfyW4cXSO86lPfUp/8id/8pLvefbZZzMEmS/FZz7zGfv3RRddpOnpad1zzz1mHJ1JrPa5n828mmtx++23288uuOAC5eXl6Xd+53f0hS98wVsMnAO8/e1vt39fcMEFuuyyy9TU1KRvf/vbZ40B7/z8/OZv/qb9+/zzz9cFF1ygjRs3as+ePXrb2962jkd2ZuDG0TnOxz72Md10000v+Z6WlpbX/PmXXXaZ/uiP/khzc3PKz89XOp1+QWZLf3+/ysrKXveJdzXPPZ1OvyBzifNMp9P295ly7qfy81yLyy67TIuLi2pra9PWrVtf9Dyl56/F2UYikVB2dvZpz+tsPadXSnl5ubZs2aJjx47pl3/5lzU/P6+xsbEM79G5eB04n/7+ftXU1NjP+/v7deGFF9p7ThXkLy4uamRk5Jy7Hi0tLUokEjp27Jje9ra3vaHO/XS4cXSOk0wmlUwm1+zz9+/fr4qKCvMo7Nq1S9///vcz3vPwww9r165da3YML8ZqnvuuXbt01113aWBgwFzNDz/8sMrKyrRjxw57z5ly7qfy81yL/fv3Kysry857165d+vSnP62FhQXl5uZKWjnPrVu3npUhNUnKy8vTJZdcokceecSyL5eXl/XII4/o937v99b34NaYqakpHT9+XO973/t0ySWXKDc3V4888oje9a53SZKOHDmijo6OM2IcryYbNmxQOp3WI488YsbQxMSEHnvsMcta3bVrl8bGxvTkk0/qkksukST90z/9k5aXl3XZZZet16GvCV1dXRoeHjZD8Y107qdlvRXhzplDe3t79NRTT0V/+Id/GJWUlERPPfVU9NRTT0WTk5NRFEXRd77zneh//I//Ef3bv/1bdPTo0eirX/1qVFRUFN155532Ga2trVFRUVH08Y9/PHr22Wejr3zlK1F2dnb0gx/8YL1O6xXxcue+uLgYvelNb4quvvrqaP/+/dEPfvCDKJlMRnfccYd9xtl67iF79+6N/vRP/zTav39/dPz48eiv//qvo2QyGd1www32nrGxsSiVSkXve9/7oqeffjp66KGHoqKiouhrX/vaOh75z89DDz0U5efnRw8++GD0zDPPRB/60Iei8vLyjAzFc4GPfexj0Z49e6ITJ05E//Iv/xJdddVVUSKRiAYGBqIoiqIPf/jDUWNjY/RP//RP0RNPPBHt2rUr2rVr1zof9WtjcnLSnmVJ0b333hs99dRTUXt7exRFUXT33XdH5eXl0f/5P/8nOnjwYPSOd7wj2rBhQzQzM2Ofcc0110QXXXRR9Nhjj0X//M//HG3evDl697vfvV6n9Ip5qXOfnJyM/uAP/iDat29fdOLEiegf//Efo4svvjjavHlzNDs7a59xtp77auDGkWPceOONkaQX/Hn00UejKFpJ47zwwgujkpKSqLi4ONq5c2d03333RUtLSxmf8+ijj0YXXnhhlJeXF7W0tEQPPPDA638yr5KXO/coiqK2trbo7W9/e1RYWBglEonoYx/7WLSwsJDxOWfjuYc8+eST0WWXXRbF4/GooKAg2r59e/THf/zHGRNmFEXRgQMHov/wH/5DlJ+fH9XV1UV33333Oh3x6vLnf/7nUWNjY5SXlxe9+c1vjv71X/91vQ9p1bnuuuuimpqaKC8vL6qrq4uuu+666NixY/b6zMxM9Lu/+7tRRUVFVFRUFP3ar/1a1Nvbu45H/Np59NFHT/tc33jjjVEUraTzf+Yzn4lSqVSUn58fve1tb4uOHDmS8RnDw8PRu9/97qikpCQqKyuLfuu3fss2TWcyL3XuJ0+ejK6++uoomUxGubm5UVNTU/TBD37wBRuBs/XcV4NYFAV52I7jOI7jOG9wvM6R4ziO4zhOgBtHjuM4juM4AW4cOY7jOI7jBLhx5DiO4ziOE+DGkeM4juM4ToAbR47jOI7jOAFuHDmO4ziO4wS4ceQ4zjlPc3Oz/uzP/mxdvnvPnj2KxWIaGxtbl+93HOfV48aR4zhnDfv27VN2drauvfbaV/V7P/nJT/ShD31ojY7qea644grdeuuta/49juOsLW4cOY5z1nD//ffr93//9/XjH/9YPT09r/j3ksmkioqK1vDI4qt4IgAABCJJREFUHMc5l3DjyHGcs4KpqSl961vf0s0336xrr71WDz74oL120003KRaLveDPnj17JL0wrBaLxfS1r31Nv/Irv6KioiJt375d+/bt07Fjx3TFFVeouLhYl19+uY4fP57xHe985zszjunWW2/VFVdcYa//6Ec/0pe//GX7/ra2Nnvvk08+qUsvvVRFRUW6/PLLdeTIkVW+Qo7jrBZuHDmOc1bw7W9/W9u2bdPWrVv13ve+V1//+tdFa8gvf/nL6u3ttT8f/ehHVV1drW3btr3o5/3RH/2RbrjhBu3fv1/btm3Te97zHv3O7/yO7rjjDj3xxBOKoki/93u/94qP78tf/rJ27dqlD37wg3YcDQ0N9vqnP/1pfelLX9ITTzyhnJwc/fZv//ZrvxiO46wpbhw5jnNWcP/99+u9732vJOmaa67R+Pi4fvSjH0mS4vG40um00um09u7dq6997Wv6X//rfymdTr/o5/3Wb/2W/vN//s/asmWLPvnJT6qtrU3XX3+9du/ere3bt+ujH/2oeZ5eCfF4XHl5eSoqKrJjyc7Ottfvuusu/dIv/ZJ27NihT33qU9q7d69mZ2df28VwHGdNcePIcZwzniNHjujxxx/Xu9/9bklSTk6OrrvuOt1///0Z73vqqaf0vve9T3/xF3+hf//v//1LfuYFF1xg/06lUpKk888/P+Nns7OzmpiYWJVzCL+vpqZGkjQwMLAqn+04zuqSs94H4DiO83Lcf//9WlxcVG1trf0siiLl5+frL/7iLxSPx9XX16df/dVf1Qc+8AG9//3vf9nPzM3NtX/HYrEX/dny8rIkKSsry8J4sLCw8IrP4aU+23GcMwv3HDmOc0azuLiov/qrv9KXvvQl7d+/3/4cOHBAtbW1+uY3v6nZ2Vm94x3v0LZt23TvvfeuyXEkk0n19vZm/Gz//v0Z/8/Ly9PS0tKafL/jOK8f7jlyHOeM5nvf+55GR0f1/ve/X/F4POO1d73rXbr//vu1b98+dXZ26pFHHtHg4KC9XllZqby8vFU5jiuvvFL33HOP/uqv/kq7du3SX//1X+vpp5/WRRddZO9pbm7WY489pra2NpWUlKiysnJVvttxnNcX9xw5jnNGc//99+uqq656gWEkrRhHTzzxhL773e+qt7dXO3bsUE1Njf3Zu3fvqh3H7t279ZnPfEaf+MQn9Au/8AuanJzUDTfckPGeP/iDP1B2drZ27NihZDKpjo6OVft+x3FeP2LRqUF0x3Ecx3GcNzDuOXIcx3Ecxwlw48hxHMdxHCfAjSPHcRzHcZwAN44cx3Ecx3EC3DhyHMdxHMcJcOPIcRzHcRwnwI0jx3Ecx3GcADeOHMdxHMdxAtw4chzHcRzHCXDjyHEcx3EcJ8CNI8dxHMdxnAA3jhzHcRzHcQL+P+IcZXYb7t1FAAAAAElFTkSuQmCC\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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8qJK3OWv1diUVz/mRqxxvfT09HDXXXfxuc99bsU6h4aG+Kd/+qeW1QRc6rO4FB/5yEcQQvCOd7yj6c5YznPPPcfnPve5NZ+rKAqPPPIIf//3f78iDXRubo7//t//O694xSuarrfG5rk8pbRcLl/02jfiu7gS//pf/2t83+fP/uzP+G//7b+hqirvfve717zqbaQGN/jUpz4F0Kxreutb34qiKHzsYx+76PlCCJaWloAXx7meyWT4l//yX+J5Hv/+3//7FWubmpriT/7kTy56TrVabaZ3N/je977H888/37w9MTHB3//93/PII480LZKNnucvdl5UlsurXvUq3vOe9/A7v/M7DA4O8sgjj6BpGsPDw3zxi1/kv/yX/8JP//RP09HRwa//+q/zO7/zO/z4j/84b3zjG3nhhRf46le/2kwhvBSyLPOZz3yGN73pTdx11138wi/8Aj09PZw6dYrjx4/z9a9/HaAZ/PvABz7Ao48+iqIovP3tb78ha9wIn/jEJ3jsscc4fPgw7373u5upyIlEomUV13fddReKovC7v/u75PN5DMPg4YcfvqQv/oEHHuDTn/40733ve9m3b9+KCv3HH3+c//W//hcf//jHL3m8j3/843zjG9/gFa94Be9973tRVZU//uM/xrIsfu/3fq/5uEceeYRt27bx7ne/m3/7b/8tiqLw53/+53R0dDA+Pt583Ea/i4aFsJ52N67r8vnPf37Nv73lLW8hEonw2c9+ln/8x3/kL/7iL5pxxk996lP83M/9HJ/5zGd473vfu+J5o6Oj/MRP/ARveMMb+N73vsfnP/95fuZnfoY777wTqIvqxz/+cf6P/+P/4Pz587z5zW8mFosxOjrKl7/8ZX7pl36JX//1X7/lzvUzZ87w+c9/HiEEhUKBI0eO8MUvfpFSqcQf/MEf8IY3vKH52He84x387d/+Lb/8y7/Mt7/9bR588EE8z+PUqVP87d/+LV//+tdXuOYPHjzIo48+uiIVGeo1WQ0an8O///f/nre//e1omsab3vSm61LcfUtwEzLULkkjBfSHP/zhZR/3zne+U0QikUv+/b/9t/8mDh06JEKhkIjFYuL2228XH/7wh8X09HTzMZ7niY997GOip6dHhEIh8epXv1oMDQ2J7du3XzYVucGTTz4pXv/614tYLCYikYi44447VqQUuq4r3v/+94uO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3SHghcTyfCz1aQqFAqVSCU3TlnuX8Xj8Ja9tz/P42Mc+xre+9S0eeeQRRkZGLvefsozvf//7fOpTn2Lfvn0sLCxw//33c8899yz/u+/7/Kf/9J/467/+a6rVKm9605v4y7/8yxdktLxR8YYilyU8/PDD/ORP/iR33HEHiqLwrW99i2g0ynvf+17uvvtubrzxxitG1mkYxjLRVKvV5TyU7u7uCzahy+Uyhw4dYmho6A37QHotfcJWumkXCgV0XT8vBO1y7XqXGttr1qx5TR+MryXq9fry33gxPZYX69NkMpnleZol0vc8jz/8wz/kvvvu49FHH2X9+vWX8894Ab71rW/xxBNPsHfvXt7//ve/gFw++clP8olPfIIvfvGLjIyM8Ed/9EccOXKE48eP/x9hP/OGI5epqSm2b9/OZz/7WX7u534O6DzAH3roIe69916+/vWvo2ka7373u3nf+97Hm970pivGGdWyrGWiKZfL5zWhV/aKFhcXOXbsGJs3b15Vm4wrCUvJg6/XnM7zSzbxeHz5u1gt5VmlUuHgwYOsW7fuDVvKWdqVXSyxPB8rRTJL8zR/+7d/y44dO5idneUb3/gGjz766HnBWq8HBEE4j1x836evr4+PfvSj/O7v/i7QWUh0d3fzhS98gQ9+8IOv49m+NnjDkQt0skpeSmpsWRaPPPIIX/nKV/ja176G7/vcddddvO997+OWW265YmYjbNs+z4YmGAzS1dWF67rMzs6yc+dOstns632alwVXmk+YYRjL30WlUiESiSyXbF6pJdCSQeNqT6VfSVgilqWd52od80//9E/50pe+RD6fZ+fOnXzwgx/k7rvvZsuWLa/bDv755DI+Ps66des4cOAAo6Ojy6+75ZZbGB0d5dOf/vTrcp6vJd543V+44M2qqip33nknd955J3/5l3/J97//fb7yla/woQ99CF3Xueuuu7jnnnu47bbbXtetq6Io9PX10dfXtxy8NTY2RrvdRtM0KpUKiqJcUWqn1cCST9iuXbuumBmFQCDA4OAgg4OD2La9rDybnJx80RmOl8PSrmy1nX+vJFwOYgGIRCLEYjEcx+G73/0uk5OTfO1rX+PjH/849957L+985ztX7b1eDRYXFwFeIIfu7u5e/rc3Ot6Q5HKxkGWZ2267jdtuu40///M/54knnuDee+/l//6//29qtRrveMc7uOeee3jb29520XnwlwOCIJDL5QC48cYb0XWdXC637Dm10obmam3q+77P+Pg409PT7Nmz54odAFUUhd7eXnp7e8/rDRw6dAhBEM7z2nqx7yKfz3PkyJErZld2ObCkfBsaGlpVYvF9n8985jN8+tOf5sEHH+Saa64B4Jd+6Zdot9tvSKXk1Yw3ZFns1cLzPJ5++mnuvfde7r//fnK5HG9/+9u5++67ecc73kE0Gn3NzmVpcND3fUZHR88r26302VpKeFwimlQqddUQzVIWfC6XY+/evVelc+1Kp4ZCobA8QLtkRSPL8nKvbMeOHW9IWx7oEMtzzz23LDRZLfi+z+c//3k+/vGP8+1vf5sbbrhh1Y69GvhxWeyF+DG5vAw8z+PAgQN85Stf4b777mN6epo77riDu+++m3e9612XtSyl6zoHDhxY9pe6kMJtyUhwSRDgOM5yX+BKNnRc6SzwUlnwVxtWDtAWCgVardZyVtC2bdtWNQ/+SsLSjmXJhXu14Ps+/+t//S/+6I/+iAceeIA3v/nNq3bs1cJLNfR/93d/l49+9KNARzXX1dX144b+j/FC+L7P0aNH+Zd/+Rfuv/9+Tp8+zVvf+lbuuece7rrrLlKp1KoRzdJ8xyuJXF4pq83lcpimuWxDs7SKvhKw5BNmGAZ79ux5QzoLAIyNjTExMUEoFKLdbhOPx5eJ//Ust64mWq0Wzz333GUhlr/7u7/jYx/7GN/4xje49dZbV+3YrxbNZpOzZ88CsHv3bv77f//vvPWtbyWVSjE0NMQnP/lJ/uRP/uQ8KfLhw4d/LEX+MS4M3/c5efIkX/nKV7j//vs5cuQIN998M/fccw/vec97yGazr5hoSqUShw8fXpZvvhrCWhklnM/nabfbpFIpuru7yWazr5sM+1J8wq5mTE1NMT4+vpw3sxS+tSQ3D4fDy0QTjUavSnHGErH09/evam6Q7/v80z/9E7/927/NV7/6Ve64445VOe5q4dFHH+Wtb33rC37+8z//83zhC19YHqL8q7/6K6rVKm9+85v53Oc+x8aNG1+Hs33t8WNyWQUsGWPee++93Hfffezfv58bb7yRe+65h/e+97309vZe9A23JMPdsmXLZVESrXQObjQay5n1XV1dr9nO4dX4hF1NWBIo7N69m3g8/oJ/X1KeFQoFisUiiqIsK8+SyeRVQTSXi1gA7r33Xj70oQ/x5S9/mXe9612rdtwf47XBj8llleH7PlNTU9x3333cd999PPXUU1x33XXLUQGDg4MvegP6vs/k5CQTExPs2rXrsjk3r8TzM+svx6Dgi73nvn37VsUn7ErF0mJjdnaWvXv3XpQAxHVdyuXy8q4GeN2iGy4WS8TS19fH+vXrV5VYvv71r/PLv/zL/MM//AN33333qh33x3jt8GNyuYxYyqS57777uPfee3niiScYHR1dJpol2xbHcXj00UdRFIU9e/7/7d15VFPp+Qfwb1woCMi+jBZEXHAbWTID6riAtSwFJVadM/aguOEcFxwrLqhTba1Vq45SxSq2Kp46Y1FB3FF2xnEFREUFwaUImLBDWUJCcn9/+MutEUcRb7ghPJ9zOGcMIb4Mnny5932f53Hr0NNoKs3NzWzQVFdXw9jYWK1FPRdU+0g2NjY62fUXePUzf/z4McRicbtPvr1+OKO8vBwymUxtCJo23EJsaGhgG21yHSwXL15EcHAwjh49iunTp3P2uqRjUbh0EIZhIJFI2Jk06enpGDZsGHx9fZGcnAy5XI6kpCSt2OCVyWRq3QEMDQ3V2tC0542kI/uE8UW1D1dRUQGhUMjJz/LNPbOGhgb2VqaVlRUvG8ONjY3IzMyEra0t5x2ck5KS8Lvf/Q7/+Mc/MHPmTM5el3Q8ChceqGbSHDt2DH/84x9RW1uLQYMGYdq0aZg6dapWdThuaWlhg6aiooKdhWJtbY3evXt/UEU6X33COgLDMHj48CGqq6s1eqS6sbGR/XnU1taybeq5vMJ839+fmZkJGxsbzrtUp6enY8aMGWxfQF38BaQroXDhybNnz+Dr64sRI0YgMjISiYmJ7EwaOzs7BAYGYurUqRg5cqTWBI2qIl0ikaCiogI9evRQ6w7wtjcDVeHgsGHDdLa+Q6lUIjc3F/X19XBzc+uwq4k3rzB79erFXtG0Nfg/RGNjI7KysmBtbc15sFy9ehXTpk3Drl27sGDBAgoWHUDhwpOYmBhcu3YNu3btUtusraurY2fSXLp0CVZWVuw4588++0xrgkapVKKqqortDiAQCFoN3VL1CRs5cqTW9AnjmlKpxP3799HY2AihUMhb49OWlhZ2CFpFRQXnbYGampqQmZmpkSmZN2/ehEgkwpYtW7B48WIKFh1B4aLFGhoakJCQgNjYWFy4cAEmJibsTJpRo0ZpzQmi11ufSCQSMAwDfX19NDQ0wNXVFebm5nwvUSNURaDNzc0QCoVasdEO/C/4VQcCGIZRG4L2of9uNBksWVlZmDJlCjZu3IhvvvmGgkWHULh0Ek1NTexMmnPnzuEXv/gFJk+ezM6k0Zaqe9UtovLycvTs2RMtLS1q3QG0JRA/lkKhQE5ODhQKBVxdXbUmWN70+jyUsrIyNDc3syfP2lJEqwoWS0tLDBkyhNM3/7t378Lf3x/h4eFYtWoVBYuOoXDphGQyGVJSUtiZNAKBgJ1JM378eN5uzSiVSjx8+BA1NTVwc3ODgYEB22NLIpFAKpWqNXPU1jfk92lpacGdO3cgEAjg4uKiNcH+PgzDqBXR1tfXw8zMjD0Q8OZekVQqRWZmJiwsLDgPlgcPHsDPzw/ffPMNvv32WwoWHUTh0sm1tLQgPT0dp06dQnx8PJqbm9mZNF5eXh22udyWPmGvH6mtr69nxwhbW1trzZC295HL5cjOzkbPnj3h7Ozcqa/Empqa2AMBNTU1bG2TlZUVunfvjqysLJibm3M+hCsvLw9+fn5YuHAhNm3aRMGioyhcdIhCocDVq1fZUQF1dXXw8/ODSCTCpEmTNFZD054+YY2NjWzQ1NXVwdTUlA0abW3qJ5PJkJWVBQMDA606xccFmUzGDkGrrKwEwzAwNDTE0KFDOe38XVBQAD8/PwQFBWHbtm069f+QqKNw0VFKpRI3btxgg6asrAw+Pj7sTBquZqZw0SdMKpWyQVNTU4PevXvD2toaNjY2WtOCv7m5GVlZWTAyMsKIESN09k1RdSvMwMAAenp67Mkz1a0z1UnA9lAdv1cdOdbV/4fkFQqXLkCpVCI7O5udSVNcXKw2k6a9NRGqPmEmJiYYPnw4J28WMpmMDZqqqioYGRmpdQfgw+v90IYPH66zt3GkUqla3zeBQMAOpFOdPFMoFGonz9q631RUVAQfHx/4+/sjMjJSK4Jl37592LFjB8RiMZydnbF37164u7vzvSyd0WnC5fnz5/jzn/+MlJQUiMVi9OnTB0FBQVi/fr3a/fp79+5hyZIluH37NqysrBAaGorVq1fzuHLtoqrLUI0KKCgowMSJExEYGIiAgIA2d+Otr69XmzejiTdcuVyuViRoYGDAXtG0tw3Nh1IVDlpYWHC+96BNmpubkZmZqRYsb3p9TlBZWRmkUim7b2ZlZfWz+2alpaXw8fHBxIkTERUVpRXBEhMTg9mzZ+PAgQPw8PBAREQETp48ifz8fJ2dEtrROk24JCQkICYmBjNnzsTAgQORm5uLkJAQzJo1Czt37gTwqgBx8ODBmDRpEtauXYv79+9j3rx5iIiIwMKFC3n+DrQPwzB49OgRGzQPHjxgZ9IEBAT87EwaVZ8w1SjbjnjDVRUJqroD6OnpsVc0mpoGqmrOqIlWJ9pEdcuvd+/eH3Rl9ub4BtW+mZWVFXs7UywWw8/PD6NGjcLhw4e15gCEh4cHPv/8c0RGRgJ49UuXnZ0dQkNDER4ezvPqdEOnCZe32bFjB/bv34+nT58CAPbv34/169dDLBazv0WFh4cjPj4eeXl5fC5V6zEMg8LCQnYmzZ07dzBmzBgEBgaqzaS5fPkyGIbB8OHDeesTpmpPr+oO8Ho1OldzUFQdnDXRTl6btDdY3iSVStmrzPz8fGzfvh3jxo1DSkoKPDw8cOzYMa05si2TydCrVy+cOnWKHUsMvBryVVNTgzNnzvC3OB3C//XpR6itrVWr/r5+/XqrOg8fHx/k5+ejurqajyV2GgKBAIMGDUJ4eDhu3ryJgoICTJkyBbGxsRgyZAi8vb0RFBSEr776ClKplNcGlKoN5hEjRmDChAkYPnw4e7svPT0dDx8+REVFBZRKZbtev66uDllZWbCzs9PpYFGdfjM2Nv7ovSR9fX3Y2dlBKBSyp8FiYmLw4sULZGZmYu3atfjpp5/a/TPhUkVFBRQKBWxsbNQet7GxgVgs5mlVuqfThkthYSH27t2Lr7/+mn1MLBa/9R+M6nOkbQQCARwcHBAWFoarV6/i+fPn6Nu3L86ePYuWlhZERERg9+7dePr0Kfi+8O3WrRssLCwwbNgwjB8/nq09efToEdLT05Gbm4uysjIoFIo2vV5NTQ2ysrLg4ODQYbf8+CCTyZCZmQljY2OMGDGC8+8zPj4eEydOREVFBb777jtUVFRAJBJBIpFw+vcQ7cV7uISHh0MgELzz481bWiUlJfD19cWMGTMQEhLC08q7jujoaCQmJiItLQ0lJSWYO3cuUlNT4erqirFjx2L79u3Iz8/nPWgEAgHMzMzg5OSEsWPHssWcjx8/Rnp6Ou7duwexWIyWlpa3fn1VVRWys7MxYMAAODg4dOziO5DqisXIyIjz0291dXWYOnUqbGxscOLECZiamiIwMBBHjhyBRCLRis7YqjZEbwadRCKBra0tT6vSPbzvuZSXl6OysvKdz3F0dGRvdZWWlsLT0xOjRo1CdHS02smT2bNno66uDvHx8exjqampmDhxIqqqqmBmZqaR70GXKRQKfP3111i2bBlGjhzJPs4wDCorK3HmzBnExsYiOTkZgwYNYkcFaNPJqtcHbkkkEjQ1NcHc3Bw2NjZsf63KykrcvXsXTk5O6Nu3L99L1hhVsBgaGnJer1NfXw+RSIRevXrh3LlzWlOj9DYeHh5wd3fH3r17Abza0Le3t8fSpUtpQ58jvIfLhygpKYGXlxeEQiGOHTvW6uSJakNfIpGwVeLr1q1DXFwcbehrkGos79mzZxEXF4crV67A3t6eHRWgbdXsqlNOEokE9fX1MDIyQn19PZycnHR2mBmg2WBpaGjAtGnTIBAIcOHCBd5qktoqJiYGwcHBiIqKgru7OyIiInDixAnk5eW1urVO2qfThEtJSQk8PT3Rr18/HD16VC1YVJeytbW1cHJygre3N9asWYPc3FzMmzcPu3fvpqPIHaiurg7nz59HXFwcEhISYG1tjSlTpmDq1KkQCoVaFTQvXrxAfn4+DAwM0NTUBBMTE9jY2Gh1G5r2kMlkyM7OhoGBAT799FNOfwZNTU348ssvIZVKkZCQAGNjY85eW5MiIyPZIkoXFxfs2bMHHh4efC9LZ3SacImOjsbcuXPf+rnXv4XXiygtLS0RGhqKNWvWdNQyyRsaGhpw6dIldiaNqakppkyZApFIBA8PD17rHl6+fImHDx9i5MiRsLKyQnNzM1u3UV1dzTZytLGx0Vhfto4gl8vZnmhcB0tzczNmzpyJ6upqXLlyBSYmJpy9NuncOk24kM6vqakJV65cQWxsLM6fPw99fX12Js2YMWM6tA6iuLgYjx8/hrOzMywsLFp9/s0RwoaGhmzQGBoaas1+0vuogkXV+43LYJHJZJg1axZKSkqQlJSks0PhSPtQuBBeyGQyJCUlITY2FmfPnoVAIEBAQACmTp2KcePGabQFf1FREQoLC+Hq6tqmQx4tLS1s0FRUVEBfX58t2tTErHquaDJY5HI55s6di8LCQqSkpOjsGGvSfhQuhHdyuVxtJo1MJkNAQAACAwMxceLEt86Gaa/nz5/j2bNncHV1hamp6Qd/vUKhYFvTV1RUoEePHmqz6rUlaFRzZ/T09ODs7MxpsLS0tCAkJAT3799HWloa9eIib0XhQrSKaiaNqt9ZfX09/Pz8EBgY+FEzaRiGwdOnT/HixQu4ubmhd+/eH71WpVKJyspKtmOwQCBQa0PD18EFTQaLQqHA4sWLcevWLaSlpWlF3QrRThQuGvCXv/wFFy5cQE5ODvT09FBTU9PqOUVFRVi0aBFSU1NhZGSE4OBgbN26VWv6L2kDhUKhNpOmoqIC3t7eEIlE8PHxafNxV1XftNLSUgiFQo0ck1UqlaipqYFEIkFZWRkYhmFnoFhYWHRY0LS0tKhNyuTy71UqlVi2bBkyMjKQmpqq08e2ycejcNGAjRs3wtTUFMXFxTh06FCrcFEoFHBxcYGtrS127NiBly9fYvbs2QgJCcGWLVv4WbSWUyqVyMrKYq9oVDNpRCIR/Pz8fvaUEsMwyM/PR1lZGYRCIQwNDTW+VoZhUFtbywaNXC5ng0ZVHa4JqmDp0aMH5yOYlUolVq5cicuXLyM1NVWnOxgQblC4aFB0dDSWL1/eKlwuXbqEgIAAlJaWsgVbBw4cwJo1a1BeXt5p5snzRalU4t69e2zQPHnyhJ1J4+/vz3ZGVigU+OmnnyAQCCAUCnk5TswwDP773/+yRZtSqZQdtmVpadmmkdBtoelgWbt2LeLj45GWloYBAwZw9tpEd1G4aNDPhcuGDRtw9uxZdu488GoErKOjI7Kzs+Hq6tqxC+3EXp9JExcXh4cPH2LChAnw9/fHhQsXUFlZiaSkJK0piHy9DU1DQ4NaG5r2/lLR0tKCO3fuoFu3bnBxceE8WDZu3Ijjx48jNTUVTk5OnL020W3aUyrdhVD3Zu4IBAIMGzYMGzZswJ07d/DgwQNMmDABmzZtQlJSEvT09HD06FG8fPmS98aaAGBkZARHR0eMHj0aY8aMgbm5OUpKSpCRkYHMzEy8ePECUqm0za+nyWBhGAZbtmzBsWPHkJiYSMFCPgiFSxu1p3sz6VgCgQD29va4ffs2+vXrh9u3b2P69Ok4efIknJyc4OPjg8jISLx48UIrgqZXr15wcHCAu7s7xo4dC2tra0gkEly9ehW3bt3C8+fP0dTU9LNfr1AoNBosO3fuxMGDB5GYmIjhw4dz9tqka6CjSW0UFhaGOXPmvPM5jo6ObXotW1tb3Lp1S+0xVftvavn9cS5dugSxWIyUlBSYmZnhs88+Q1hYGIqLixEXF4e4uDisW7cObm5uEIlECAwMhIODA+/1Kfr6+rC3t4e9vT1kMhnbhqawsBBGRkZq3QGA/wWLQCDQSLDs2bMHf/vb35CYmKjWDZuQtqI9Fw1634b+y5cv2QK0gwcPYtWqVSgrK+O0aLArksvlP7tRzjAMxGIxTp8+jdjYWGRkZGDEiBFs0AwaNIj3oHmdXC5Xa0NjYGAAKysrVFZWonv37nBzc+M8WPbv34/Nmzfj8uXL1MiRtBuFiwYUFRWhqqoKZ8+exY4dO/Djjz8CAAYOHAgjIyP2KHKfPn2wfft2iMVizJo1CwsWLKCjyB2IYRhUVFSwM2lSUlIwePBgdlSANs2kAV7tr5SVlaGgoAAymQz6+vpsB2cTE5OPXivDMDh06BD+8Ic/4OLFi/jiiy84WjnpiihcNGDOnDk4evRoq8dTU1Ph6ekJAPjPf/6DRYsWIS0tDYaGhggODsa2bduoiJInr8+kiY2NRWJiIvr168cGDdfdhNtDoVAgJycHSqUSI0eORG1tLdsdoHv37mrdAT40aBiGwb/+9S+sWrUK586dY/+d8omKkTs3ChdC3kI1kyY2NhYJCQmwtbVlZ9K4ubl1eNC8Hiyurq5qb55KpRLV1dWQSCQoLy8HwzBs0Jibm793rQzD4Pjx41i+fDnOnDmDX/3qV5r+dtqEipE7NwoXQt6jvr6enUlz8eJFmJmZsTNp3N3dNT6TRqFQ4O7du2hpaYGbm9s7fytXXYGpugMoFAq1NjRvW+upU6ewePFinDx5En5+fpr8VtqFipE7JwoXQj5AY2Oj2kyaXr16YfLkyRCJRBqZSfMhwfImhmFQV1fHFm3KZDJYWlrCxMQEvXv3hpmZGc6cOYMFCxbg+PHjmDJlCqdr5woVI3dOdGOSkA/Qq1cviEQiiEQiSKVSJCcnIy4uDkFBQejWrRs7/GzcuHEf3dpF1eamPcECvKr7MTExgYmJCQYOHMh2Bzh58iQ2b96MgQMH4smTJ4iKitLaYHkXKkbWblRE2cXt27cPDg4O0NfXh4eHR6v6G/Lz9PX14e/vj0OHDuHly5f4/vvv0bNnTyxYsACOjo5YtGgREhIS0Nzc/MGvrVQqcffuXchkslZ7LO0hEAhgbGyMAQMGYOXKldi2bRsKCgrQt29fhISEwNvbG1FRUR/UHaA9qBi566Bw6cJiYmKwYsUKbNy4EdnZ2XB2doaPjw/Kysr4Xlqn07NnT/z617/GgQMHUFxcjNjYWBgbG2PZsmXo378/FixYgHPnzr2z4l7l9WBxc3PjrLmlSlpaGjZs2IBDhw7hyZMnKCgogJ+fH+Lj4zW+fxQWFoZHjx698+NDipFVxccqVIysPWjPpQvz8PDA559/jsjISACv3tTs7OwQGhqK8PBwnlenGxQKBa5fv87OpKmsrISPjw87k+bNEQCqW2HNzc0aCZYff/wR06dPx+7duzF//nytquP5OVSM3DnRlUsXJZPJkJWVhUmTJrGPdevWDZMmTcL169d5XJlu6d69O8aOHYvdu3fj6dOnSE5OhqOjI/70pz/BwcEBM2fORExMDOrq6tDc3Iz58+ejuLhYI8Fy48YNfPnll9i2bVunCJaioiLk5OSgqKiIPYqdk5OD+vp6AIC3tzeGDRuGWbNm4e7du7h8+TK+/fZbLFmyhIJFGzCkSyopKWEAMNeuXVN7fNWqVYy7uztPq+o6FAoFk52dzaxbt44ZOnQoo6enx1haWjLW1tZMTk4OU19fzzQ0NHD2kZGRwZiYmDARERGMUqnk+9tvk+DgYAZAq4/U1FT2Oc+fP2f8/PwYAwMDxtLSkgkLC2Pkcjl/iyYsui3WRZWWlqJv3764du0aRo8ezT6+evVqpKen4+bNmzyurmuRyWQICAjAvXv3YG5ujsLCQnh6ekIkEiEgIAAWFhYfdZVx9+5d+Pv7Y+3atVi5cqXWX7EQ3UC3xboo1bjdt22I0mZox1EqlQgKCoJEIkFubi4ePHiA3NxceHp64vDhwxgwYAACAgJw8OBBiMXiDx4VkJubi8mTJ2PFihUULKRDUbh0UXp6ehAKhUhOTmYfUyqVSE5OVruSIZrVrVs3eHl5ISkpCZaWlhAIBBg8eDDWrVuH27dvIz8/H7/5zW8QExODwYMHw9fXF/v27UNxcfF7g+bRo0eYPHkyFi9ejPXr11OwkA5Ft8W6sJiYGAQHByMqKgru7u6IiIjAiRMnkJeX16o4jfCLYRi8ePGCnUlz7do1CIVCdlRAv3791MKjoKAAvr6+mD17NrZu3cp7003S9VC4dHGRkZHYsWMHxGIxXFxcsGfPHprhoeUYhsHLly9x+vRpxMXFISMjA59++ikbNN27d4efnx+mT5+O7777joKF8ILChZBOjPn/mTSqoElOToZAIEBQUBD++c9/UrAQ3lC4EKIjGIZBVVUVNm/ejJ07d2q82p6Qd6FwIYQQwjm6ZiaEEMI5ChdCCCGco3AhWikjIwOTJ09Gnz59IBAIEB8fr/Z5hmGwYcMGfPLJJzAwMMCkSZNQUFDAz2IJIa1QuBCt1NDQAGdnZ+zbt++tn9++fTv27NmDAwcO4ObNmzA0NISPj4/G55EQQtqGNvSJ1hMIBDh9+jREIhGAV1ctffr0QVhYGFauXAkAqK2thY2NDaKjo/HVV1/xuFpCCEBXLqQTevbsGcRisdq4ABMTE3h4eNC4AEK0BIUL6XRU89HfNj+dZqcToh0oXAgh7fL8+XPMnz8f/fv3h4GBAQYMGICNGzdCJpOpPe/evXsYN24c9PX1YWdnh+3bt/O0YtKRevC9AEI+lGokgEQiwSeffMI+LpFI4OLiwtOqup68vDwolUpERUVh4MCByM3NRUhICBoaGrBz504AQF1dHby9vTFp0iQcOHAA9+/fx7x582BqaoqFCxfy/B0QTaJwIZ1O//79YWtri+TkZDZM6urqcPPmTSxatIjfxXUhvr6+8PX1Zf/s6OiI/Px87N+/nw2X77//HjKZDIcPH4aenh6GDx+OnJwc7Nq1i8JFx9FtMaKV6uvr2ZnpwKtNfNU8dYFAgOXLl2Pz5s04e/Ys7t+/j9mzZ6NPnz7siTLCj9raWpibm7N/vn79OsaPHw89PT32MR8fH+Tn56O6upqPJZIOQlcuRCtlZmbCy8uL/fOKFSsAAMHBwYiOjsbq1avR0NCAhQsXoqamBmPHjkVCQgL09fX5WnKXV1hYiL1797JXLcCrwxf9+/dXe57qIIZYLIaZmVmHrpF0HLpyIVrJ09MTDMO0+oiOjgbwqvZl06ZNEIvFkEqlSEpKwuDBg/ldtI4IDw+HQCB450deXp7a15SUlMDX1xczZsxASEgITysn2oSuXAghasLCwjBnzpx3PsfR0ZH979LSUnh5eWHMmDE4ePCg2vNsbW0hkUjUHlP9WXUwg+gmChdCiBorKytYWVm16bklJSXw8vKCUCjEkSNHWg0nGz16NNavXw+5XI6ePXsCABITE+Hk5ES3xHQctX8hhLRLSUkJPD090a9fPxw9elRtOJnqqqS2thZOTk7w9vbGmjVrkJubi3nz5mH37t10WkzHUbgQQtolOjoac+fOfevnXn9buXfvHpYsWYLbt2/D0tISoaGhWLNmTUctk/CEwoUQDmzduhVxcXHIy8uDgYEBxowZg7/+9a9wcnJinyOVShEWFoZ///vfaG5uho+PD/7+97+3amNDiC6g02KEcCA9PR1LlizBjRs3kJiYCLlcDm9vbzQ0NLDP+f3vf49z587h5MmTSE9PR2lpKX7729/yuGpCNIeuXAjRgPLyclhbWyM9PR3jx49HbW0trKys8MMPP2D69OkAXrVPGTp0KK5fv45Ro0bxvGJCuEVXLoRoQG1tLQCw1epZWVmQy+VqYwKGDBkCe3t7GhNAdBKFCyEcUyqVWL58Ob744guMGDECwKtqdD09PZiamqo9l8YEEF1FdS6EcGzJkiXIzc3F1atX+V4KIbyhKxdCOLR06VKcP38eqamp+OUvf8k+bmtrC5lMhpqaGrXnSyQSqlQnOonChRAOMAyDpUuX4vTp00hJSWnVrFEoFKJnz55ITk5mH8vPz0dRURFGjx7d0cslROPotBghHFi8eDF++OEHnDlzRq22xcTEBAYGBgCARYsW4eLFi4iOjkbv3r0RGhoKALh27RovayZEkyhcCOGAQCB46+NHjhxhm0CqiiiPHz+uVkRJt8WILqJwIYQQwjnacyGEEMI5ChdCCCGco3AhhBDCOQoXQgghnKNwIYQQwjkKF0IIIZyjcCGEEMI5ChdCCCGco3AhhBDCOQoXQgghnKNwIYQQwrn/A/CT6LooTt9PAAAAAElFTkSuQmCC\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAZcAAAGiCAYAAAAr0YsTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9d5hkZ32njd8nV06d8+SoPArMiKCEhAgGY5sXY7NgswsYbOBnr7lsr1+DgP15MV6MI/Z6F5AxTngNxjYGEyRASCAJTU8OPTPd0zlWTic+7x+lKrp7ema6Z6onSOe+rrmkrnBC1annc57nGz6SEELg4+Pj4+PTROSrfQA+Pj4+Pi88fHHx8fHx8Wk6vrj4+Pj4+DQdX1x8fHx8fJqOLy4+Pj4+Pk3HFxcfHx8fn6bji4uPj4+PT9PxxcXHx8fHp+n44uLj4+Pj03R8cbkENmzYwNvf/vbG348//jiSJPH4449ftWNazvJjvBJ87nOfQ5IkRkZGruh+V4MkSXz4wx++Kvu+Gt/F5TIyMoIkSXzuc59rPPbhD38YSZKu3kFdw0iSxC//8i9f7cO4prjuxKU+gNX/BQIBtm3bxi//8i8zMzNztQ9vTXz1q1+9agNencWfpSzLdHd38+CDD15xoTx69Cgf/vCH1yxMg4OD/PzP/zx9fX0YhkEqleKBBx7gs5/9LK7rrs/BXkHe/va3I0kSsViMSqVyzvNDQ0ON7+/3f//3r8IRXhkWX6eqqpJKpdizZw/vf//7OXr06BU5hieffJIPf/jDZLPZK7K/653rTlzqfOQjH+Hzn/88f/Inf8K+ffv49Kc/zd69eymXy1f8WF7+8pdTqVR4+ctfvqb3ffWrX+WRRx5Zp6NaPa985Sv5/Oc/z6OPPsq73/1uDh48yH333ce///u/r2k7b33rW6lUKgwMDKz5GI4ePcojjzyyJnH53//7f3P77bfz2GOP8XM/93P82Z/9Gb/zO79DMBjkHe94Bx//+MfXfBzXIqqqUi6X+Zd/+ZdznvvCF75AIBC4Isfx27/92ysK3JWifp1+9rOf5SMf+Qi33XYbjz76KDfffDOf/OQn133/Tz75JI888ogvLqtEvdoHcKk8/PDD3H777QD85//8n2lpaeGTn/wk//zP/8zP/uzPrvieUqlEOBxu+rHIsnzFfuDrwbZt2/j5n//5xt8/+ZM/yU033cSnPvUpHn744VVvR1EUFEVZj0M8hx/84Ae8+93vZu/evXz1q18lGo02nvvABz7As88+y+HDh6/Isaw3hmFw991387d/+7e86U1vWvLc3/zN3/Ca17yG//t//++6H4eqqqjq1Rsyll+nAP/jf/wPXve61/Frv/Zr7Nixg1e/+tVX6eh8lnPdzlyWc9999wEwPDwM1JYTIpEIp0+f5tWvfjXRaJSf+7mfA8DzPD71qU+xe/duAoEAHR0dvOtd7yKTySzZphCCj33sY/T29hIKhbj33ns5cuTIOfs+X8zlhz/8Ia9+9atJJpOEw2Fuuukm/vAP/7BxfH/6p38KLJ3y12n2Ma6FG2+8kdbW1sZnCfDtb3+bl73sZYTDYRKJBK9//es5duzYkvetFHPZsGEDr33ta3niiSe48847CQQCbNq0ib/6q79a8r6f+ZmfAeDee+9tfBYXWpp75JFHkCSJL3zhC0uEpc7tt99+0TjH/v37efjhh4nFYkQiEe6//35+8IMfLHnN+eIMK53renwXdd7ylrfw7//+70vump955hmGhoZ4y1vesuJ7stksH/jABxpLhlu2bOHjH/84nued87q3v/3txONxEokEb3vb21a8O1/ps/jsZz/LfffdR3t7O4ZhsGvXLj796U+f897VXAeXQktLC3/3d3+Hqqr89//+35c8Z5omH/rQh9iyZQuGYdDX18cHP/hBTNNc8rp6vOQLX/gC27dvJxAIsGfPHr773e8uOfdf//VfB2Djxo2Na3T5TPvLX/4yN9xwA4ZhsHv3br72ta9d1vldz1y3M5flnD59GqhdbHUcx+Ghhx7ipS99Kb//+79PKBQC4F3vehef+9zn+IVf+AXe9773MTw8zJ/8yZ+wf/9+vv/976NpGgC/8zu/w8c+9jFe/epX8+pXv5rnnnuOBx98EMuyLno83/jGN3jta19LV1cX73//++ns7OTYsWP867/+K+9///t517vexeTkJN/4xjf4/Oc/f877r8Qxno9MJkMmk2HLli0AfPOb3+Thhx9m06ZNfPjDH6ZSqfDHf/zH3H333Tz33HNs2LDhgts7deoUP/3TP8073vEO3va2t/GZz3yGt7/97ezZs4fdu3fz8pe/nPe973380R/9Eb/1W7/Fzp07ARr/XU65XOZb3/oWL3/5y+nv77+kczxy5Agve9nLiMVi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s6aVsqnqsZp6gDsejy8JcDdz8LoexOV81fmLTdM2bNiw4qzwSjYvbXbD2cUUi8ULLktfi/jichk0w3dlcfbI4vdms1kOHDhAOBy+ZF/75fu50ABcNxBLJpPceuuta27quFpxWVwnYxgGR44cWZLGm0gk1jx4XsuD41oH75U8bOrJAcubSKZSqctODrgexGW1fcWWzwpXal4aCoWWpD0300Z7tcH8S6FcLvszlxcLzfJdqV+M9R9Q3dd+aGiIrVu3Xpav/WLOt/wmhGB4eJjTp09floHYaoo0TdNkcHAQ27a566670DQNx3Ead+r1du+JRKIhNtdSwPZqEAwG6enpaTSRXB5zWDygplKpNS8DXS/icinHuLx56eIlyJGREYrF4qpttFd7nOuxhFlfFvNjLi8CPM/DsqymTIMXi4tlWRw6dIhCocCdd9552b72y/ezfPCv769YLHLnnXdeVm+wi81c6jOjVCrFnj17gNqy3/I03nK5TDqdJp1OLxk860WM50tkuF6XxdbCSjGHel+v6enpJR42dXG+2J359SIuzZgRXKigc3mn7EsxTasXUDabarWK67r+stgLmfoyWD0brFkukVAbfI8fP048Hufuu+9uesbQ8sE/m80yODhILBZj3759l72/8y271Wdip06dWjIzqic+LD/Geo+vegfefD5POp1urKGv1HblWh4c13PwXqmv10qtVhYvOS6/M7/S3YYvhfVqt3+hgs5jx45hWdaSgs6L2TKs17JYqVQC8JfFXqish/3wYg4ePMj27dvp7+9fl8GoPnMRQnD27NnGstvAwEDTlt2Wi0s9ISGXy3HHHXeseSa2ePAEGkto9dYh9TtNwzCWxL1erCxfBqrfmafTaYaGhqhWq+cMli+mmcvFWD6LrtsyLC7orCdXpFIpIpHIkuNar2WxUqmEJElXNPOtGfjisgoWz1aa6ddgmiYHDx4E4MYbb2y0yF8P6rOFwcHBSx7sL7b9xeJSKBTYv38/oVCIffv2NSVwqqrqkrYr9R//1NQU1WqV7373u0viD9dSJfzVYPmd+UrV74FAAEmSKBQK12x862rMruqD+fKCzvrnNzo6ihBiSbzGcZx1m7lcq9/NhfDF5QJcau3Kapifn+fgwYO0tLSgquoFLYGbgeu6nDlzhkQi0bTBfjGLA/r19jSXU5ezGuqeLJqmcfr0aXbv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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111)\\n\",\n    \"ax.set_title(\\\"Scattered Predicted Depth\\\")\\n\",\n    \"ax.scatter(pred_points_spherical[...,0].cpu(), pred_points_spherical[...,1].cpu(), s=0.01, c=pred_points_spherical[...,2].cpu(), cmap='gray')\\n\",\n    \"ax.axis('equal')\\n\",\n    \"ax.set_xlabel(\\\"Azimuth\\\")\\n\",\n    \"ax.set_ylabel(\\\"Elevation\\\")\\n\",\n    \"plt.show()\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111, projection='3d')\\n\",\n    \"ax.scatter(pred_points_xyz_expected_depth[...,0].cpu(), pred_points_xyz_expected_depth[...,1].cpu(), pred_points_xyz_expected_depth[...,2].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Predicted Point Cloud, Expected Depth\\\")\\n\",\n    \"ax.axis('equal')\\n\",\n    \"plt.show()\\n\",\n    \"\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111, projection='3d')\\n\",\n    \"ax.scatter(pred_points_xyz_median_depth[...,0].cpu(), pred_points_xyz_median_depth[...,1].cpu(), pred_points_xyz_median_depth[...,2].cpu(), s=0.01)\\n\",\n    \"ax.set_title(\\\"Predicted Point Cloud, Median Depth\\\")\\n\",\n    \"ax.axis('equal')\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/rolling_shutter.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Demo of rolling shutter compensation\\n\",\n    \"This notebook provides an example of how rolling shutter and sensor velocity arguments are applied in the rasterization.\\n\",\n    \"While this demonstration focuses on camera rasterization, the same principles also apply to lidar rasterization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import torch\\n\",\n    \"from gsplat.rendering import rasterization\\n\",\n    \"\\n\",\n    \"assert torch.cuda.is_available(), \\\"This demo requires a GPU with CUDA support.\\\"\\n\",\n    \"device = torch.device(\\\"cuda\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Setting up the test data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# Gaussian parameters, defined in camera coordinate system for simplicity\\n\",\n    \"N = 20\\n\",\n    \"means = torch.zeros(N, 3, device=device)\\n\",\n    \"means[:, 2] = 10\\n\",\n    \"means[:, 1] = torch.linspace(-5, 5, N, device=device)\\n\",\n    \"quats = torch.tensor([[1., 0., 0., 0.]] * N, device=device)\\n\",\n    \"scales = torch.ones(N, 3, device=device) * 0.1\\n\",\n    \"opacities = torch.ones(N, device=device)\\n\",\n    \"velocities = torch.zeros(N, 3, device=device)\\n\",\n    \"colors = torch.zeros(N, 3, device=device)\\n\",\n    \"colors[:, 1] = torch.linspace(0, 1, N, device=device)\\n\",\n    \"colors[:, 2] = torch.linspace(1, 0, N, device=device)\\n\",\n    \"\\n\",\n    \"# Camera parameters\\n\",\n    \"viewmats = torch.tensor([\\n\",\n    \"    [1., 0., 0., 0.],\\n\",\n    \"    [0., 1., 0., 0.],\\n\",\n    \"    [0., 0., 1., 0.],\\n\",\n    \"    [0., 0., 0., 1.]\\n\",\n    \"], device=device).view(1, 4, 4)\\n\",\n    \"H, W = 500, 500\\n\",\n    \"focal = 500\\n\",\n    \"K = torch.tensor([[focal, 0., W / 2],\\n\",\n    \"                  [0., focal, H / 2],\\n\",\n    \"                  [0., 0., 1.]], device=device).view(1, 3, 3)\\n\",\n    \"\\n\",\n    \"# Plot our test data\\n\",\n    \"fig = plt.figure()\\n\",\n    \"ax = fig.add_subplot(111, projection='3d')\\n\",\n    \"ax.scatter(means[:, 2].cpu(), means[:, 0].cpu(), -means[:, 1].cpu(), c=colors.cpu(), label=\\\"3D Gaussians\\\")\\n\",\n    \"ax.scatter(0, 0, 0, c='r', label='Camera')\\n\",\n    \"ax.quiver(0, 0, 0, 0, 1, 0, color='r') # camera x-axis\\n\",\n    \"ax.quiver(0, 0, 0, 0, 0, -1, color='g') # camera y-axis\\n\",\n    \"ax.quiver(0, 0, 0, 1, 0, 0, color='b') # camera z-axis\\n\",\n    \"ax.axis(\\\"equal\\\")\\n\",\n    \"ax.invert_yaxis()\\n\",\n    \"plt.legend()\\n\",\n    \"plt.show()\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Without rolling shutter\\n\",\n    \"The parameters related to rolling shutter are `linear_velocity`, `angular_velocity`, `rolling_shutter_time` and `velocities`:\\n\",\n    \"- Linear and angular velocity: Represent the movement of the sensor (in this case, the camera) within its own coordinate system.\\n\",\n    \"- Rolling shutter time: Indicates the duration required for the sensor to complete a full scan.\\n\",\n    \"- Velocities: The 3D velocities of the Gaussians, expressed in their own coordinate system.\\n\",\n    \"\\n\",\n    \"If the sensor's velocity is set to zero, it remains stationary, and no rolling shutter compensation is applied during rasterization.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAakAAAGzCAYAAACVYeimAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABY0ElEQVR4nO3deXgd1X0//vfMXbXdK8u2JBtsY5ZCzOIEscmQkGAHQ002DGmBBkNo8gNsHogJfeKGsiTfxnyhJU1SIGkhQBuCW1OgCWtcs4MwxMHBNpQvCQY7gGS86Gq9y8yc3x/nnJlzr+QVe640er+eZyJp7ujq6jrm7XPmc87HEkIIEBERjUB2tV8AERHRjjCkiIhoxGJIERHRiMWQIiKiEYshRUREIxZDioiIRiyGFBERjVgMKSIiGrEYUkRENGIxpGi/eOaZZ2BZFp555pndvvaBBx7Y/y9sP7jhhhtgWVa1XwZRJDGkaIj//M//hGVZeOihh4Y8NnPmTFiWhaeffnrIY1OnTsWsWbN2+Ly//OUv8U//9E/78qXuto/7swcGBnDDDTfsVugS0b7DkKIhTjnlFADACy+8UHa+p6cH69atQzwex4svvlj22KZNm7Bp0yb/ez/zmc9gcHAQn/nMZ/xrRntI3XjjjcOG1LXXXovBwcG9f3FEtEMMKRpi8uTJmD59+pCQ6ujogBAC55577pDH9Nc6pGzbRjqdhm1H//9i8Xgc6XS62i9jh/L5PDzPq/bLGDH6+/ur/RJoD0T/vyC0V0455RS89tprZSOEF198EUceeSTOPPNMvPzyy2X/4XvxxRdhWRZOPvlkAEPvSX32s5/Fo48+ivfeew+WZcGyLBx00EFlP9PzPPz93/89DjzwQKTTacyePRt/+MMfdvlae3t7cdVVV+Gggw5CKpVCc3MzPv/5z+N3v/vdLn92sVjEddddh7a2NmSzWdTV1eHTn/502XTmu+++i4kTJwIAbrzxRv85brjhBgDD35NyHAff//73ccghhyCVSuGggw7C3/7t36JQKJRdd9BBB+Gss87CCy+8gBNOOAHpdBoHH3ww/u3f/q3sum3btuHb3/42jj76aNTX1yOTyeDMM8/E73//+7Lr9Pu+bNkyXHvttTjggANQW1uLNWvWwLIs/PCHPxzy/r300kuwLAv333//Tt/nfD6PG264AX/2Z3+GdDqNSZMm4eyzz8Yf//hH/5p/+Id/wKxZszB+/HjU1NSgra1t2HuNlmVh0aJFWL58OWbMmIGamhq0t7dj7dq1AICf/exnOPTQQ5FOp/HZz34W77777pDnWLVqFc444wxks1nU1tbi1FNPHTLC1382b7zxBs4//3yMGzfO/4fU66+/josuuggHH3ww0uk0Wltb8fWvfx1bt27d6ftA4YpX+wXQyHTKKafg3//937Fq1Sp89rOfBSCDaNasWZg1axZyuRzWrVuHY445xn/siCOOwPjx44d9vu9+97vI5XL405/+5P+Hsr6+vuyam266CbZt49vf/jZyuRxuvvlmXHDBBVi1atVOX+ull16KBx54AIsWLcKMGTOwdetWvPDCC3jzzTdx7LHH7vRn9/T04M4778R5552Hb3zjG+jt7cVdd92FuXPn4pVXXsEnP/lJTJw4EXfccQcuu+wyfOUrX8HZZ58NAP7vPpy//uu/xr333otzzjkHV199NVatWoWlS5fizTffHHKv7w9/+APOOeccXHLJJViwYAF+/vOf46KLLkJbWxuOPPJIAMA777yDhx9+GOeeey6mT5+Orq4u/OxnP8Opp56KN954A5MnTy57zu9///tIJpP49re/jUKhgCOOOAInn3wy7rvvPnzrW98qu/a+++5DQ0MDvvSlL+3w93FdF2eddRZWrlyJv/zLv8SVV16J3t5erFixAuvWrcMhhxwCAPjRj36EL37xi7jgggtQLBaxbNkynHvuuXjkkUcwb968sud8/vnn8atf/QoLFy4EACxduhRnnXUW/uZv/ga33347Lr/8cmzfvh0333wzvv71r+Opp57yv/epp57CmWeeiba2Nlx//fWwbRt33303TjvtNDz//PM44YQTyn7Wueeei8MOOww/+MEPoLsTrVixAu+88w4uvvhitLa2Yv369fiXf/kXrF+/Hi+//DKLYUYKQTSM9evXCwDi+9//vhBCiFKpJOrq6sS9994rhBCipaVF3HbbbUIIIXp6ekQsFhPf+MY3/O9/+umnBQDx9NNP++fmzZsnpk2bNuRn6Ws/8YlPiEKh4J//0Y9+JACItWvX7vS1ZrNZsXDhwp1es6Of7ThO2c8UQojt27eLlpYW8fWvf90/99FHHwkA4vrrrx/yHNdff70w/yqtWbNGABB//dd/XXbdt7/9bQFAPPXUU/65adOmCQDiueee889t3rxZpFIpcfXVV/vn8vm8cF237Pk2bNggUqmU+N73vuef0+/lwQcfLAYGBsqu/9nPfiYAiDfffNM/VywWxYQJE8SCBQuG/F6mn//85wKAuPXWW4c85nme/3nlzywWi+Koo44Sp512Wtl5ACKVSokNGzYMeX2tra2ip6fHP79kyRIBwL/W8zxx2GGHiblz5w752dOnTxef//zn/XP6z+a8884b8rorX6sQQtx///1D/jyoujjdR8P6xCc+gfHjx/v3mn7/+9+jv7/fr96bNWuWP7XS0dEB13X9aZS9dfHFFyOZTPpff/rTnwYgRxE709jYiFWrVuGDDz7Y458Zi8X8n+l5HrZt2wbHcXDcccf504V76rHHHgMALF68uOz81VdfDQB49NFHy87PmDHD/10BYOLEiTj88MPLfu9UKuXf33NdF1u3bkV9fT0OP/zwYV/nggULUFNTU3buq1/9KtLpNO677z7/3JNPPoktW7bgr/7qr3b6O/3Xf/0XJkyYgCuuuGLIY+aIw/yZ27dvRy6Xw6c//elhX+Ps2bPLpnxPPPFEAMD8+fPR0NAw5Lx+P9asWYO3334b559/PrZu3YotW7Zgy5Yt6O/vx+zZs/Hcc88NuQd36aWXDvn55mvN5/PYsmULTjrpJADY6z972vcYUjQsy7Iwa9Ys/97Tiy++iObmZhx66KEAykNKf/y4ITV16tSyr8eNGwdA/sduZ26++WasW7cOU6ZMwQknnIAbbrhhl8Fmuvfee3HMMccgnU5j/PjxmDhxIh599FHkcrk9/yUAvPfee7Bt23+vtNbWVjQ2NuK9994rO1/5ewPydzd/b8/z8MMf/hCHHXYYUqkUJkyYgIkTJ+L1118f9nVOnz59yLnGxkZ84QtfwC9/+Uv/3H333YcDDjgAp5122k5/pz/+8Y84/PDDEY/v/A7BI488gpNOOgnpdBpNTU3+VOlwr7Hy985mswCAKVOmDHtevx9vv/02ABnEEydOLDvuvPNOFAqFIT9vuPdj27ZtuPLKK9HS0oKamhpMnDjRv25v/+xp32NI0Q6dcsopyOVyWLt2rX8/Sps1axbee+89vP/++3jhhRcwefJkHHzwwR/r58VisWHPC3UPYUe++tWv4p133sFPfvITTJ48GbfccguOPPJIPP7447v8mb/4xS9w0UUX4ZBDDsFdd92FJ554AitWrMBpp532sSvidveexu783j/4wQ+wePFifOYzn8EvfvELPPnkk1ixYgWOPPLIYV9n5ShKu/DCC/HOO+/gpZdeQm9vL371q1/hvPPO2ydVmM8//zy++MUvIp1O4/bbb8djjz2GFStW4Pzzzx/2z3BHv/eu3g/9+95yyy1YsWLFsEfl/c7h3o+vfvWr+Nd//VdceumlePDBB/Gb3/wGTzzxRNnPoOpj4QTtkLle6sUXX8RVV13lP9bW1oZUKoVnnnkGq1atwp//+Z/v8vn2543oSZMm4fLLL8fll1+OzZs349hjj8Xf//3f48wzz9zpz37ggQdw8MEH48EHHyy75vrrr9/r1z5t2jR4noe3334bn/jEJ/zzXV1d6O7uxrRp0/bkV/Nf5+c+9zncddddZee7u7sxYcKE3X6eM844AxMnTsR9992HE088EQMDA/ja1762y+875JBDsGrVKpRKJSQSiWGv+a//+i+k02k8+eSTSKVS/vm77757t1/f7tBFGplMBnPmzNmr59i+fTtWrlyJG2+8Edddd51/Xo/SaOTgSIp26LjjjvPvYbz//vtlI6lUKoVjjz0Wt912G/r7+3drqq+urm6fT6O4rjvkOZubmzF58uSycu8d/Wz9r3bzX/qrVq1CR0dH2XW1tbUAZCjsig7sysXDt956KwAMqXLbHbFYbMhoZPny5Xj//ff36Hni8TjOO+88/Od//ifuueceHH300TutUtTmz5+PLVu24J//+Z+HPKZfVywWg2VZcF3Xf+zdd9/Fww8/vEevcVfa2tpwyCGH4B/+4R/Q19c35PGPPvpol88x3J87MPTPjKqPIynaoWQyieOPPx7PP/88UqkU2trayh6fNWsW/vEf/xHA7t2Pamtrw3/8x39g8eLFOP7441FfX48vfOELH+s19vb24sADD8Q555yDmTNnor6+Hv/zP/+DV1991X9tO/vZZ511Fh588EF85Stfwbx587Bhwwb89Kc/xYwZM8r+A1hTU4MZM2bgP/7jP/Bnf/ZnaGpqwlFHHYWjjjpqyGuaOXMmFixYgH/5l39Bd3c3Tj31VLzyyiu499578eUvfxmf+9zn9vj3POuss/C9730PF198MWbNmoW1a9fivvvu26sp1gsvvBA//vGP8fTTT+P//t//u9vf82//9m9YvHgxXnnlFXz6059Gf38//ud/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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"linear_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"angular_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"rolling_shutter_time = torch.zeros(1, device=device)\\n\",\n    \"\\n\",\n    \"colors_out, _, _ = rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    colors=colors,\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    Ks=K,\\n\",\n    \"    width=W,\\n\",\n    \"    height=H,\\n\",\n    \"    linear_velocity=linear_velocity,\\n\",\n    \"    angular_velocity=angular_velocity,\\n\",\n    \"    rolling_shutter_time=rolling_shutter_time,\\n\",\n    \"    sh_degree=None,\\n\",\n    \"    render_mode=\\\"RGB\\\",\\n\",\n    \"    packed=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Plot the image\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(colors_out.squeeze(0).cpu())\\n\",\n    \"plt.title(\\\"With stationary camera\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### With rolling shutter compensation\\n\",\n    \"When a sensor moves during capture, it introduces the rolling shutter effect (assuming that the data is not captured instantenous). This effect can be simulated during rasterization by applying appropriate sensor velocities and rolling shutter parameters.\\n\",\n    \"\\n\",\n    \"For instance, consider a camera traveling along the x-axis in the camera's coordinate system:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAakAAAGzCAYAAACVYeimAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABX3ElEQVR4nO3de3hcVb0+8HfvuSaZzKTpJWltC1V4KFUo0kJJBY8HKhF6PII9HsSKRTnwUFvkIhztUeHn5VjEG4jcHi/QAyJaBOQq9hQoAqVAuVguoniQ1kpa2jSZZK77sn5/rLX23jNJ26RNM5e8n+fZTrJnJ50ZKS9rre9eX0MIIUBERFSFzEq/ACIiot1hSBERUdViSBERUdViSBERUdViSBERUdViSBERUdViSBERUdViSBERUdViSBERUdViSFHFPfbYYzAMA4899tiQr73zzjsP/AsbBX/7299gGAZuueWWSr8UoqrEkKL98utf/xqGYeDuu+8e8Nzs2bNhGAYeffTRAc9Nnz4d8+fP3+3vvf3223H11VeP5EslohrEkKL9cvzxxwMAnnjiiZLz6XQaL7/8MsLhMJ588smS57Zs2YItW7Z4P/vBD34QuVwOH/zgB71rxkpIHXTQQcjlcjjrrLMq/VKIqhJDivbLlClTMGPGjAEhtX79eggh8IlPfGLAc/p7HVKmaSIej8M0x94/joZhIB6PIxQKVfql1LRMJlPpl0AHyNj7twKNuOOPPx4vvPACcrmcd+7JJ5/Ee9/7Xpxyyil4+umn4bpuyXOGYeADH/gAgIFrUh/60IfwwAMP4K233oJhGDAMAwcffHDJn+m6Lv77v/8bU6dORTwex0knnYQ33nhjr6/1//2//wfDMPDnP/8Zn/70p5FKpTBx4kR87WtfgxACW7Zswcc+9jEkk0m0t7fj+9///oDfsX37dpxzzjloa2tDPB7H7NmzsWrVKu95y7LQ2tqKz372swN+Np1OIx6P49JLLwUw+JrU2WefjUQiga1bt+K0005DIpHAxIkTcemll8JxnJLft3PnTpx11llIJpNoaWnBkiVL8NJLLw15naunpwcXX3wxDj74YMRiMUydOhWf+cxnsGPHDgBAsVjE5Zdfjjlz5iCVSqGpqQknnHDCgClc/T6+973v4brrrsO73/1uNDY24uSTT8aWLVsghMA3v/lNTJ06FQ0NDfjYxz6G7u7uAa/noYcewgknnICmpiY0Nzdj4cKFeOWVV0qu0Z/PX//6V5x66qlobm7G4sWLAQB/+MMf8IlPfALTp09HLBbDtGnTcPHFF5f8s0m1JVzpF0C17/jjj8ett96KDRs24EMf+hAAGUTz58/H/Pnz0dvbi5dffhlHHnmk99zMmTMxfvz4QX/fV77yFfT29uLvf/87fvjDHwIAEolEyTVXXnklTNPEpZdeit7eXlx11VVYvHgxNmzYMKTXfMYZZ+Dwww/HlVdeiQceeADf+ta30NraiptuugknnngivvOd7+AXv/gFLr30UhxzzDHeVGQul8OHPvQhvPHGG1i+fDlmzJiB1atX4+yzz0ZPTw8uvPBCRCIRnH766bjrrrtw0003IRqNen/uPffcg0KhgE9+8pN7fH2O46CzsxPz5s3D9773Pfzv//4vvv/97+M973kPli5dCkAG9Uc/+lE888wzWLp0KWbOnInf/va3WLJkyZA+g/7+fpxwwgl47bXX8LnPfQ5HH300duzYgXvvvRd///vfMWHCBKTTafz0pz/FmWeeiXPPPRd9fX342c9+hs7OTjzzzDM46qijSn7nL37xCxSLRVxwwQXo7u7GVVddhX//93/HiSeeiMceewxf+tKX8MYbb+Daa6/FpZdeip///Ofez956661YsmQJOjs78Z3vfAfZbBY33HCD9x9Bwf9QsW0bnZ2dOP744/G9730PjY2NAIDVq1cjm81i6dKlGD9+PJ555hlce+21+Pvf/47Vq1cP6XOhKiOI9tMrr7wiAIhvfvObQgghLMsSTU1NYtWqVUIIIdra2sR1110nhBAinU6LUCgkzj33XO/nH330UQFAPProo965hQsXioMOOmjAn6WvPfzww0WhUPDOX3PNNQKA2LRp0x5f6xVXXCEAiPPOO887Z9u2mDp1qjAMQ1x55ZXe+V27domGhgaxZMkS79zVV18tAIjbbrvNO1csFkVHR4dIJBIinU4LIYR4+OGHBQBx3333lfz5p556qnj3u9/tff/mm28KAOLmm2/2zi1ZskQAEN/4xjdKfvb973+/mDNnjvf9b37zGwFAXH311d45x3HEiSeeOOB3Dubyyy8XAMRdd9014DnXdb3PJvg568+lra1NfO5znxvwPiZOnCh6enq88ytWrBAAxOzZs4VlWd75M888U0SjUZHP54UQQvT19YmWlpaSfy6EEKKrq0ukUqmS8/rz+fKXvzzgdWez2QHnVq5cKQzDEG+99dYePw+qTpzuo/12+OGHY/z48d5a00svvYRMJuNV782fP98rnli/fj0cx/HWo/bVZz/72ZIRygknnAAA+L//+78h/fx//Md/eF+HQiHMnTsXQgicc8453vmWlhYcdthhJb/zwQcfRHt7O84880zvXCQSwRe+8AX09/dj3bp1AIATTzwREyZMwK9+9Svvul27dmHNmjU444wzhvQazz///JLvTzjhhJLX8rvf/Q6RSATnnnuud840TSxbtmxIv/83v/kNZs+ejdNPP33Ac4ZhAJCfjf6cXddFd3c3bNvG3Llz8fzzzw/4uU984hNIpVLe9/PmzQMAfPrTn0Y4HC45XywWsXXrVgDAmjVr0NPTgzPPPBM7duzwjlAohHnz5g1aIapHlEENDQ3e15lMBjt27MD8+fMhhMALL7wwpM+Fqgun+2i/GYaB+fPn4/HHH4frunjyyScxadIkHHLIIQBkSP34xz8GAC+s9jekpk+fXvL9uHHjAMgg2JefT6VSiMfjmDBhwoDzO3fu9L5/6623cOihhw4o8jj88MO95wEgHA5j0aJFuP3221EoFBCLxXDXXXfBsqwhhVQ8HsfEiRMHvMfg+3vrrbcwefJkb6pL05/73vz1r3/FokWL9nrdqlWr8P3vfx9/+tOfYFmWd37GjBkDrh3scwWAadOmDXpev5+//OUvAGS4DyaZTJZ8Hw6HMXXq1AHXbd68GZdffjnuvffeAf8s9Pb2Dvq7qboxpGhEHH/88bjvvvuwadMmbz1Kmz9/Pi677DJs3boVTzzxBKZMmYJ3v/vd+/Xn7a4aTgixzz+/v7+z3Cc/+UncdNNNeOihh3Daaafh17/+NWbOnInZs2fv0+urhNtuuw1nn302TjvtNFx22WWYNGkSQqEQVq5cib/+9a8Drt/d697bZ6sLa2699Va0t7cPuC44CgOAWCw24D8UHMfBhz/8YXR3d+NLX/oSZs6ciaamJmzduhVnn312SfEO1Q6GFI2I4P1STz75JC666CLvuTlz5iAWi+Gxxx7Dhg0bcOqpp+719+nppmpz0EEH4Y9//CNc1y35l+Sf/vQn73ntgx/8ICZPnoxf/epXOP744/HII4/gK1/5yoi+lkcffRTZbLZkNDWUKkcAeM973oOXX355j9fceeedePe734277rqr5P+TK664Yt9e9B5eCwBMmjQJCxYs2KffsWnTJvz5z3/GqlWr8JnPfMY7v2bNmhF5jVQZXJOiETF37lzE43H84he/wNatW0tGUrFYDEcffTSuu+46ZDKZIU31NTU1VeX0zKmnnoqurq6StSbbtnHttdcikUjgn/7pn7zzpmni3/7t33Dffffh1ltvhW3bQ16PGorOzk5YloWf/OQn3jnXdXHdddcN6ecXLVqEl156adDdQvQIR4+AgqPJDRs2YP369fvz0gfo7OxEMpnEt7/97ZIpRe2dd97Z6+8Y7LUKIXDNNdeM3AulUceRFI2IaDSKY445Bn/4wx8Qi8UwZ86ckufnz5/v3XM0lJCaM2cOfvWrX+GSSy7BMcccg0QigY9+9KMH5LUPx3nnnYebbroJZ599NjZu3IiDDz4Yd955J5588klcffXVaG5uLrn+jDPOwLXXXosrrrgCRxxxhLd2NRJOO+00HHvssfjiF7+IN954AzNnzsS9997r3X+0t9HoZZddhjvvvBOf+MQn8LnPfQ5z5sxBd3c37r33Xtx4442YPXs2/uVf/gV33XUXTj/9dCxcuBBvvvkmbrzxRsyaNQv9/f0j9l6SySRuuOEGnHXWWTj66KPxyU9+EhMnTsTmzZvxwAMP4AMf+IC3rrk7M2fOxHve8x5ceuml2Lp1K5LJJH7zm98MeZ2SqhNHUjRidPjo6b0gfeNuc3PzkNZkPv/5z+NTn/oUbr75ZnzqU5/CBRdcMPIveB80NDTgsccew+LFi7Fq1Sp88YtfRHd3N26++WZceOGFA66fP38+pk2bhr6+vhEdRQFy5PDAAw/gjDPOwKpVq/CVr3wFU6ZM8UZS8Xh8jz+fSCTwhz/8AUuXLsWDDz6IL3zhC7j++utx2GGHeUUJZ599Nr797W/jpZdewhe+8AU8/PDDuO222zB37twRfS8A8KlPfQpr167Fu971Lnz3u9/FhRdeiDvuuANHHXXUoDdGl4tEIrjvvvtw1FFHYeXKlfj617+OQw89FP/zP/8z4q+VRo8h9nVVmIiq0j333IPTTz8dTzzxhPcfB0S1iiFFVMNyuVzJvUGO4+Dkk0/Gc889h66urpLniGoR16SIatgFF1yAXC6Hjo4OFAoF3HXXXXjqqafw7W9/mwFFdYEjKaIadvvtt+P73/8+3njjDeTzeRxyyCFYunQpli9fXumXRjQiKhZS1113Hb773e+iq6sLs2fPxrXXXotjjz22Ei+FiIiqVEWq+3Rp8RVXXIHnn38es2fPRmdnJ7Zv316Jl0NERFWqIiOpefPm4ZhjjvHue3BdF9OmTcMFF1yAL3/5y6P9coiIqEqNeuFEsVjExo0bsWLFCu+caZpYsGDBbu9iLxQKKBQK3vd6N+bx48dX7fY5RES0e0II9PX1YcqUKXvsyj3qIbVjxw44joO2traS821tbd7+Z+X0jXlERFRftmzZMuiO9lpNlKCvWLECl1xyifd9b2/vgJYARFTOgPwrHgXQACAFYCKAdwGYAWA6gKkAxqtr8gDeAbAVwP8BeAvA2+pcWj1fBOAAYFEwjYzyrcTKjXpITZgwAaFQCNu2bSs5v23btkG36AfkBqXl2+wQ0d6UT4ULyIApAsgB6AOwC4AL+a+CLICdkKG0Sz2fgx9MbHVBI29vSzajXt0XjUYxZ84crF271jvnui7Wrl2Ljo6O0X45RGOACxkyFuRoqB9AN4BtALYAeBPAXyFHT3+DHEm9A6AXQAYypGz1exhUNLoqMt13ySWXYMmSJZg7dy6OPfZYXH311chkMkPaRJKIhkPAH0FZkCOjNORffRsysPQsRR5y9NQDGWK9kKOrAvyQ0r+PaHRUJKTOOOMMvPPOO7j88svR1dWFo446Cr/73e8GFFMQ0f7QgeJChkwBcvLEVOfzkEEUVt8XIUMpAxlWWXWNBU73UaXU5LZI6XQaqVSq0i+DqMoZ6jABhCCLI2IA4pCFFDF1LgQZUhZkkOUhR1y6UCI41Vdz/7qgKtfb24tkMrnb52uiuo+I9oUIPAan/Az4oRQOfG+rc0V1BEdQDCiqDIYU0ZhQPvWng8lRX+viCh1UNvxSc65DUeUwpIjGBCPwqNalDBP+lKABiMFKgRlOVFkMKaK6FQggmJB/3SOAodemIpDrUQDgAIYlvxR6xBUsOdcjL6LRxZAiqlvBookwYKiiCaMBsnAiChiqsk+o6j+RU4MuFxCO+nkdVAwpGn0MKaK6pEdQIcjRUwxAI2AkAKMZQDNgxOVzcAGjCAhdem6WjaZM+GtXDCoaXQwporoTWHdCWE3vNQFGCjDGAcZ49ZiADCkbEFnIm3jDKodsOf0ndAEFA4oqgyFFVHeCo6gw5BRfkwqmNsBsB4xJakQVAUQRMNKAG4UcOamdKYS+kVf/PqLRx5AiqksqpIwI5M27CcBoBcw2wJgKmFMApOSalMgBohswXcDNAqIP/k2+ugJQ/06Opmh0MaSI6sogu0wYDYCRVNN87YA5FTCmAUaLvMboA9wQIPoBY6dcqxJh+TuM3ZWmE40OhhRR3QmGVARADDAaVVCNA4wJgDFRrlEBMoSMPllcocOJU3xUJRhSRHUlcG+UoYLKuy+qAUCjPIwGVd2nqveEnspzSw8R3G2CU300+hhSRHUpGFT60CMjtTWSKACwZOm56FePwYIJB6VbIxGNPoYUUd0LNj3MAegHxC54XXfFO4DYIc8J3Y2XPaSoOjCkiOqSChahNo01Cmq01AO4DYBhy8o/UVAB9bYKq13qugIgyvtIMaho9DGkiOpOIKAM1TJeqJbxQnXkFT1yKlAUVDDtAEQXgF2Qu07oKT+OpKiyGFJEdUWHSXCKT4fULnnayMvCCWGodam0DC2xExC9cvcJUQTXpKgaMKSI6k5Zk0ORA4yQquDToRRV1xZVKPWr8/3yeq8jLwOKKoshRVRXgs0NHbmuZBjylOHKyj3RV7b7eV5V9GUDlX1sGU/VgSFFVHfKuvAKww8qWGorJBPeaEvoVvGqJN0rP+coiiqPIUVUl8pGVFANDeGogDL872HLQ+gRVPBniSqLIUVUdwQGbmmkgsco67QrdHFEsIqPIyiqHgwporpTvjWS7isVVo9qJCVcOQ0I4X/tbSbLHc+pOjCkiOpKoOGhobvyRlVn3phq3RGS1xmqsAIF+b1QIy3hwg86BhVVFkOKqG4E2nQYuk1HXG0m2wiYTZBBpf7aC0tV+2XgT/8Fp/sYUlR5DCmiuhFsGx+RoyejCTCbATOpWnU0qtGUq3ab6Je9pFwDfpGFw2k/qhoMKaK6EBxFhQMB1QKYrUBoAmCOB4yECikbcDOAuwty+k8ArhWo8AsWUxBVDkOKqC4ECyXUKMpUIRWaBIQmA6E2NZqKyHujjF419Wf5N/MauUCJOtelqPIYUkR1Qzc5jKi1qARgjlMhNQUIvQswU/J5N6uaHlqA2wcYaRVeoUD1X4XfDhEYUkR1IDjqCYZUkwwpcwIQapdBZbZATgn2AXABt0ddG6j6I6oiDCmiuqC2PtL3RHmVfY1+4YSZlF8Dcv3JiKgqQB1MbBVP1ces9Asgov0VqMQzAvdIGRE1QopABldIXac2lhWW2revWNrgULgqo7jzBFUeR1JEdUFP9wW/1vvvBe6HctWms+4udaQBV7XnEEW1K7re/Zyo8hhSRHUheBOuGxgp5WQIGT2QWyJFAViAsxNwtwPuTkCkVU+pAvzyc+7hR9WBIUVUT4QLGDbk6CkrR0rGDshqvSzkX/miLJhw3gGc7fJrt1+Ntiy1LRLvkaLqwJAiqnlqxCNctfeerQKnH3C71SV59bUJGVJpFU475LSf6AeQR+lIiqjyGFJEdSPYMj4PuGrXczhyFGXE1GWWWp/ql1N9bp9ak7JU645g2w6iymJIEdW84FqUbnCYl0+5QgaWoVvGIzDSyqm1KF00wY68VH0YUkR1YZCW8fq8KABGFv4dJ6plvCgCKKgRVKAEnQFFVYQhRVQ3gmtTtn+vk2GrQAq0jBe6Zbx6RLBYgiFF1YMhRVQXgjtFBEdVjt/M0LtUj7Z0Ww4GFFUv7jhBVDf0Tujlj3pXc/VoIPAIbtdHVY0jKaK6EAwm3VNKbYtkhOEFVLC4QgAwRFm7eICjKaomDCmimhdsGR+Su0qYMbnBrKl3ONd/1VXRhJuXfaME1HRgsHU8UfVgSBHVtOCUng6oBsBsVE0Pm2RQIQJZVKG2SjIygGvKEnXDDaxLcTRF1YUhRVTT9FqT2vXcjANmAgglgVAKCLXIwDIianfzAuD0wfurLxy1jZLeAZ2jKaouDCmimhUYRRlhOcVnNslgCk/wD7NZjrCELXeZMLvl2pUduF/KK0Unqi4MKaKaNUg3XrNJjqDCE4DIZCA8WY6qjIgMI6dH/oybB8ys2iFdtYwXwQ6/HE1RdWBIEdUktXZkmP5IyojJqT1vJNUORKbI740w4Kpd0N084OyS15e0jWctOlUfhhRRzQqMpKCn+xqBUDMQGgeExwPhiXJkBVMGkpv3K/5KWscTVSeGFFHNCkzPGSqojKgaIcUBo0F9HYVfYAFVHKHulxLBnSaCu1YQVQeGFFFNG2SHCW90pLc/KsowcrNq1/Ms4AZ2Phd2WVgRVQ+GFFFNGmSaTujRUVEGktOniily8ryzC7DfAexuwEkDbkaWpItACTpDiqoMQ4qoJgWm5oRudmjL0HEzgNsLODF53ojKEZPTI0PK2SGfd7PyeqiRlOB0H1UfhhRRzQo2O7QBtyj7Rjm9quTcUaOpkAqpPsDpBuwdMrDcfrU9EpsdUvViSBHVNKGm+FS3XbcfcEIAXDmiMhrkWpWw5fdOnxpl9arpviLXpKiqMaSIalKwwaGrCiAKcj8+qFAyM+o+KB1SeVU0kVVTgrorb7CfFFF1YUgR1Sw98nHkbhFuQe5mDlcVT+h7oVSYiaIKskKgYEJ35eUoiqoTQ4qopunRlAoqQO1sbqmAMv1rdLt4YfvrUBxFUZVjSBHVLFH2tWoXD6jw0Y0OAxWAQh1wGVBUExhSRDUv2AMqeOj+UMHvGUxUWxhSRDVL7zShvjZC6ggHpvpUSBmOyqVAwQVRDWBIEdWk4FZIKpjMiNo4NgqYYXkegAwltT2SG9wySfjrWBxZUZUyh/sDjz/+OD760Y9iypQpMAwD99xzT8nzQghcfvnlmDx5MhoaGrBgwQL85S9/Kbmmu7sbixcvRjKZREtLC8455xz09/fv1xshGnO8gIqU7oAeSQHhViCijnALEE4CIdVK3ojKUIPqI8U2HVTFhh1SmUwGs2fPxnXXXTfo81dddRV+9KMf4cYbb8SGDRvQ1NSEzs5O5PN575rFixfjlVdewZo1a3D//ffj8ccfx3nnnbfv74JoTClvGR8FQo1AuBmIjAMiE4FYGxCbDMTagehEGVahpLzOjKkpQR1QRFVM7AcA4u677/a+d11XtLe3i+9+97veuZ6eHhGLxcQvf/lLIYQQr776qgAgnn32We+ahx56SBiGIbZu3TqkP7e3t7d8hZgHjzFyGAIwBYywgNkgEG4RiE4WaDxMIDlPYHynQNsZAlPOEXjX+QLvOk9g8lkCE08TaPmgQOJIgfjBApEJAqGEgBEVQEj93kq/Nx5j8ejt7d3jv++HPZLakzfffBNdXV1YsGCBdy6VSmHevHlYv349AGD9+vVoaWnB3LlzvWsWLFgA0zSxYcOGQX9voVBAOp0uOYjGruA6VEyNolJAdAIQnQLEpwMNBwMNM4D4QUDsXUB0EhBpAUIJfyQF3dWX031UvUY0pLq6ugAAbW1tJefb2tq857q6ujBp0qSS58PhMFpbW71ryq1cuRKpVMo7pk2bNpIvm6iGqGIJr2V81A+pyAQ1zfcuIDYViE+VU36RiXJdKpQo7cprjOhff6IDoib+KV2xYgV6e3u9Y8uWLZV+SUQVoEc7ph9SwYKJ8DgZVNFJQLRNhpMunNABZQbbxnMERdVvREvQ29vbAQDbtm3D5MmTvfPbtm3DUUcd5V2zffv2kp+zbRvd3d3ez5eLxWKIxWIj+VKJapQOFlOGjRkJTPklZPFEOCkf9ZZIJcEUpJcFiKrXiI6kZsyYgfb2dqxdu9Y7l06nsWHDBnR0dAAAOjo60NPTg40bN3rXPPLII3BdF/PmzRvJl0NUfwwE2sXrCr/AAX0TL+D1mRKWf7h6775A/yjBsKLqNeyRVH9/P9544w3v+zfffBMvvvgiWltbMX36dFx00UX41re+hUMPPRQzZszA1772NUyZMgWnnXYaAODwww/HRz7yEZx77rm48cYbYVkWli9fjk9+8pOYMmXKiL0xorFBB40rA8gtAE5WPecCdq860oCTAdycCiy9jx/DiarbsEPqueeewz//8z97319yySUAgCVLluCWW27Bf/7nfyKTyeC8885DT08Pjj/+ePzud79DPB73fuYXv/gFli9fjpNOOgmmaWLRokX40Y9+NAJvh2gsUMEiXBk0riXDx+kD7F1ypOXE5YjJTgPFdwBrhwwrJ+N34y1pdMiwoupkqPudako6nUYqlar0yyAaZXotSm2BZKobeMMt6oZdXSiRVO3jbRlcVrcMqeJ2wOoBnLQcbQ3oyks0+np7e5FMJnf7PPfuI6opAl6bDWHJ6T03K0dJMABRAOweuT4lbDlysvvkObs30JFXhRPXo6jKMaSIaoaA33pDFUW4BcAJtIx3MnKbJBhqKjAnR01Oxp/qczmCotrBkCKqKboazwFgyik7R5WWCwswsmo3CajCiKIabRVUQFkyoNgynmoEQ4qo5gRHUlDb7rlyhORtHAs1nadK0F1dhu5AduhlQFFtYEgR1RThPxiqXbwA4ArAsFVAqZt4IQKl5s4gAcWQourHkCKqOXptCjJwDLf0++BUnnDU2pM6BMCAolrCkCKqOYHtjQwjcOhR1CDXepnEcKLawpAiqimBLZH0VkhmWK1FBRsZuv6alGsAsOGPrgCGFdUKhhRRzSgLKDMsy831JrPeRrLwA8opAijK2T5dGWi4gNCl7ETVjSFFVBPKAyoChGJAqCFwxAPl5zbgFAAzCzg5WabuCHWbVWBNi0FFVY4hRVQr9LpTsD1HpFm26Igk5fem+ivtFgE7A1iqA68IFlGUr1MRVS+GFFHVG6SHVCguwyk6zj/CCTn9J1y5y4SVlj/nbaFUlGXqwoFfAUhU3RhSRLUg2DLejAHhRiCaAmLjgdgkID4RiKRkgAkbsPpUYOmtk/KAmQNcXVihDwYVVTeGFFHVC6xH6WKJUIPcAT06DohPAOJtQLRFhpRTkGHmWoDVq4oq1LQfDGYT1RSGFFFVU+tHhllWNBGXo6lIEoi0qCm/FjXSysqpvZCu+DP930NUYxhSRNXO0AETnPLTZecxGVihuBxhGaaa0oMqlnD9Y8B9UhxOUfVjSBHVhMA6klE2KvK68xbk83YOsLOqRYduzWEFqvsYTlQ7GFJEtUa3jReWvAfKzsi1J7cIQMiiieJOoNgjv3ay8qZeV/eQ0s0OiaofQ4qoJuj2HI6/k4QOJyMkR1KhmHze6geK3UBhh3zeVs0OvdEUd0Gn2sGQIqp2QsieUfqGXLcoR1BWvyo5d+T3RlgGmJ2V4VTskfdK2VlZ8ecGmx0S1QaGFFEt0C04XDWKMrKAFZLn7BwQ6pFFE8KR61B2Ro20+mSAucVAXykGFdUOhhRRVROBRwcQphpJ6dMWYGbkiApGYKSlbuDVAeUGp/qIagdDiqgWeOtIqpJP72ju2qpVh7oXSrh+q3hXbYXk2mUjKAYV1Q6GFFHV0y3jXf+Uq+95stV9UbrZoSqucPXUnj3wPimiGsKQIqoJwWk/13uA4apRVOA67wbeYOt4BhTVJoYUUS0yICv+BoQPy8upvjCkiGqC2mnC2w1dt44P+c95FYBlDQ2ZV1TDGFJEVU8HkxnYCT2iHsN+y3gIuRZl2KpoQp0TUC3j1fdENYQhRVTVykZPoQgQiqrW8VG5qaweTenKPqcAOKZqGQ/V6JBTgFSbGFJEVSsQUGZIBlJYNTyMNAKRJrX7uW4Zb8t7o6wsYGXkz3tTgOU7oBPVBoYUUVUzAj2kojKgYkkgqo5IkxxdCSFHUFZGbo+kq/zcYLt4djuk2sOQIqpKZdN8ZgQIx4FoAoiNA+KtQMM4GVRmRAaSnQUKvfLHXQtw1NSfa6nCisq+I6J9wZAiqlqBqT49ioo2Aw2tQONEoGESEEvJkZRrA8W0vN4pyCk/O6uqAHVnXn0wrah2MKSIqlF5ubkZketRkSY5eoqNk2EVa5HPOQX5c1ZOtY1XVX+6QSK7x1ONYkgRVZ1gu3i9JhWWhROhuF80EUnIR1OFkRXxK/0AlIyYxIAviGqCufdLiKgyAu3ivQq/kH8jr6Gm7nTpuVuU61CuJaf/3PLWHAwoqj0cSRFVpUHm54QovRfKzvn79hX7gUKfbIRoZf2CCVeFFO+TohrFkCKqSsGpOt2R1wLsvCwzL/aqKb6MfN7KAPluINctCyisDGCrbrzeJrNEtYchRVS19I7mjpzGs9V9UPkeGUx2vqz8PA3kd8kydCsrb+wNNjvkaIpqEEOKqGqJ0lGUkwMs1eDQtdSNuyG/ZXwxAxT75GHnZJt5l2tSVNsYUkRVJ7h9kSuDxin660+uI0dKoai6SdeVz9t5GU52Tn7tjaL0mhRR7WFIEVWtwHSfawE2/K2OzIhf4ecVU1hq9KRaxuv1KE7zUQ1jSBFVpbIWG7ruQQgVUiF/ZOVNCdoDS8+9qT6i2sSQIqpa5dN+tgqtEOCagfukAmtXwbbxHEFRHWBIEVU9UXboACoPKZfrT1R3GFJE1czQ/xNsH68Ob8PYQe6BYk5RnWBIEVUrwwBgAqbeZDZweDub610oHMA15JQgIM8ZgmFFNY8hRVSNvB3QTbm5bCisGh+qw1BrUrqQwlHVfYahHgUgBtlolqjGMKSIqo4aQXkBFQUiMdU6Pg6Eo6oVh+HfQ2UV1H1SBX9NylX/w5bxVMMYUkRVRa03mSqgwlEZTLEmINokHyONcmQFyFGTlQcKGaCoS9JVAYUuXyeqYQwpomoSnOYLhWUDw2gjEE8C8RTQkARiCTm60vv3FTLyer025ViAYYOdeKkeMKSIqobuomuolvEROc0XawIaWoCmVqCxVQZWOCoDqai2RxIOYBfldJ8ZliMx1xi0/yFRLWFIEVULA6Ut40NRINIARBNAQwpoGg8kJsqvQxHAsYF8Wo6gilkg3CdHX4YJ2c80WKbOlKLaxJAiqhr6fijdhVcXTcTVelSzmvZLyucc1Yk3HANCITl6QmD05GFAUe1i+3iiqhCY6vOKJ0JqXSqiCiiiMrRCEVXdFyyUEIAb3HEieBDVLo6kiKqNt8tEgBDqhl3V/BAGYOXkNJ+VkxV+emQVbBnPnKIax5AiqkrCHx25turKmwPyfTKEABlQuR65LlXIqKCy1E7obHRI9YEhRVRNBPwNY11bjo6KOaDQJ6f/HFuuQcGV5/O9QLZHPhazMswc228Zz6CiGseQIqoKwV3N9f1OtrwPqpgBcmH5fTEr16OE698jle+Thw4pr9khb+al2seQIqoWeuTjNTG05HZHukDCLsjA0jfu2kW1HpWT5+186ZoUR1FUBxhSRFUlOJKy1ClXjqKsnL9nnz5nF+SUoF1UreMDU33sK0V1gCFFVDUCnXhdF4DtNzN0HRlI3u7nuj2HLcOqpG08A4rqB0OKqOq4gSa86gvX9W/WBVDaR6qsZTzbxlMdGdbNvCtXrsQxxxyD5uZmTJo0Caeddhpef/31kmvy+TyWLVuG8ePHI5FIYNGiRdi2bVvJNZs3b8bChQvR2NiISZMm4bLLLoNt2/v/bohqXmA0FRxF6Z5Rrjp0/yhv9MSAovo0rJBat24dli1bhqeffhpr1qyBZVk4+eSTkclkvGsuvvhi3HfffVi9ejXWrVuHf/zjH/j4xz/uPe84DhYuXIhisYinnnoKq1atwi233ILLL7985N4VUb3x7u0tLysvDyUGFNUZsR+2b98uAIh169YJIYTo6ekRkUhErF692rvmtddeEwDE+vXrhRBCPPjgg8I0TdHV1eVdc8MNN4hkMikKhcKQ/tze3t7yfV948KiTwxAwTAEzJBCOCERiArFGgXhCoKFZoDEpHxsS8nwkLhCOyusNU8AwquA98OAx9KO3t3eP/77fr737ent7AQCtra0AgI0bN8KyLCxYsMC7ZubMmZg+fTrWr18PAFi/fj2OOOIItLW1edd0dnYinU7jlVdeGfTPKRQKSKfTJQdR/TH8XdD1BrPhCBCJAtE4EGsAog3yMRKX58NhdW3I3/dv4A6zRDVrn0PKdV1cdNFF+MAHPoD3ve99AICuri5Eo1G0tLSUXNvW1oauri7vmmBA6ef1c4NZuXIlUqmUd0ybNm1fXzZRlQoGlGp4GImqUGoEGpqAhgTQmADiCSDeKIMrHAsElar8Y0ZRHdnnkFq2bBlefvll3HHHHSP5ega1YsUK9Pb2eseWLVsO+J9JNKp0L6lgQMUaZDA1pYDEOKC5VR6JFqAxKcMqGle7o4f88nSOpqiO7FMJ+vLly3H//ffj8ccfx9SpU73z7e3tKBaL6OnpKRlNbdu2De3t7d41zzzzTMnv09V/+ppysVgMsVhsX14qUfXb3QiqQY2aGhJyNBWOyOvtIlDMA7k+FUpCbUSrtkLS50Ql3xTRyBjWSEoIgeXLl+Puu+/GI488ghkzZpQ8P2fOHEQiEaxdu9Y79/rrr2Pz5s3o6OgAAHR0dGDTpk3Yvn27d82aNWuQTCYxa9as/XkvRDUqMNUXCsspvFgj0NAMNI8DkuOBlkn+kZwANLXI5/VIytQjKbaIo/oyrJHUsmXLcPvtt+O3v/0tmpubvTWkVCqFhoYGpFIpnHPOObjkkkvQ2tqKZDKJCy64AB0dHTjuuOMAACeffDJmzZqFs846C1dddRW6urrw1a9+FcuWLeNoicYgIzDVF5INDaMqpJqS/jRfY1KOsFwHyGfkqMsuAoUcEM6rNSkDcCr9fohGliHE0PdPMYzB57lvvvlmnH322QDkzbxf/OIX8ctf/hKFQgGdnZ24/vrrS6by3nrrLSxduhSPPfYYmpqasGTJElx55ZUIh4eWmel0GqlUaqgvm6h6lYygorIgolGF07g2IDURSE0AGlNyus+xgWwa6OsGdm0DerYD/d1Afy9QyAJWsaxVB1F16+3tRTKZ3O3zwwqpasGQoroRbBMfjskqvqaUnOIb1w60tMmQakrKknTbAjI9QHoH0N0lg6qvG8jokNL9pFyGFNWEvYUUJ7CJKiZYhRdYl9KHacopPAPwt0hS2yPZemsk22/NIdwKvheiA4MbzBJVFeEHkmPL6btC3i8vL+aBbB+Q65frUVZBBZbtV/exso/qCEOKqCqocHLVaMlSRRG5fhlQVkFeVswD2V65LpXrly3k7WLpFJ9Qv4+oDjCkiCpG+A+6G68TDKg++bxVkEUVwpVf5/rlc9l06TqUq9ehGFBUPxhSRBUXGEU5tgwdvRefbamS85C8RpedF7LyfDEvz3l9pQQLJqiuMKSIKklPzQVbxluqmEK4shtvKCKn/EQgxKwCUCyo9vHB4gkGFNUXhhRRRekpv8BICvADqRj2R1VeG3nbr+zTAeWqgglO9VGdYUgRVZpX6ODKHSMEVCC5Moz0Vkde1Z+jgsnxrwOn+ag+MaSIKi5YMu7Krx29TlW2o7kOJe++KQYU1TeGFFG10RV6wkXJDb/B816BBAOK6htDiqgaeG2g1M4TpuHfwKsHUnrJaUArDvU9UR1iSBFVmg4m3fTQNGUTQ9P0gwoCcFVxheEALgIjLe4wQfWLIUVUSSXhpDeaVUcoDIRMAIZan3Jk0YRtAbYBwFGtOdSefZz2ozrEkCKqlPKACoeBaBSIxNSjbgtvyBGUrXajKOrRFVR4cV2K6hdDiqgi1CKUbtURjshgijcEjrgMLhhyBFUsAPmcH1B6+k8IwAjcb0VURxhSRJXgdeNV60/RiAympgSQaAYaE0BjExCJyOutIpDLqdCCf7OvY6oydBZPUH1iSBFVhKrg09N8kagcOTUlgOaUPBIJeV4I2a4jHJGBVCzKUZWpiysMZhTVLYYU0WjToeKNpMJANAbE1EgqmQJS44BEUo6kXBfIZfywykbkz5iBtSmiOsWQIqoE3YVXh1Q4AsRicsqvsUlN+yXkeVvtzxfJlYYTA4rGALaPJ6qU8nUpHVbBEnQdSHo/P+Gqaj6XVX00JnAkRVQRhn8EB0R6N3TbkWtPpuk3QSzkgUJB9o+yA7ufs4cU1TGGFFHFqH2OdCm5bftl5uGIDCHDkOf60kB/n1ybyucBywp043X9X0dUZxhSRBUh/LbxrtpFwlIB1R+W4ZPPyUuLBSDTL0Mqm5EjKqsoR1vlm80S1RmGFFEllPSMsuXUXi4ny8odR46WwmEZPpYF5LNANgtk+2V4FYuBkRTDieoXQ4qoItTox1Gdds2iv5GsVZT3R5mmvMa2gaJajyrkVdt4SzU/FFyTorrGkCIabTpQgp12raJfNGEVZWWfYfhBZllqSlAVTTi2X+3HgKI6xpAiqhQdSrD9rx0HsNT9U97u5+q84wCuDTiuXzDBgKI6x5AiqoRguLiuPqlGVmU7SehAcgMHp/hojGBIEVWKFzKBEZOA3NF8sHunRGD9iflEYwR3nCCqFD1aCgZS4B5fnxjka6YUjQ0cSRFVgg6h8rbxpil3R9eEAFwDgJ7mC+xQwek+GgMYUkQVYfiBFAqpQ+3hF9zdXBdN2LpVPAJrWGBQUd1jSBGNNm9TWRVKkbBsyRGJyK91y/hg+XnRAiwbMGzABm/ipTGDIUU0mgzd7FAHVASIRYF4TB6xqNxpwjBUg0MLKBQBM+8Hlzftp0ZbDCuqYwwpotGi158MNYrSAdXUKI/GBnlEVEjZNpAvANmc6rwr5D1SeqcJduOlMYAhRTSa9FRfOAxEI0BDHEg0AalmINkMJBqBaFReWygCmay8Xq9LWTZgm+p+KaYU1T+GFNFo0A0OvZAKBUKqUYZUSwpoTsjRlRBALi+nBm1bfh0uyBGYoXajYGNeGgMYUkSjQoWKaQAhVdEXjch1qKZGGU56NBWNypGSacqiiUxOderVbePBgKIxgyFFNGqCa1IhGTwlhRNx+RiJyNFTWJejqx8XwYO7TtDYwB0niEabV0ChKv2MwH1RAqX3Rtm2ukfKKWsXX9F3QDRqOJIiGlWBYZEuJ7dtWWqeV2tOpim/7+sH+rOyuq9QkOcchxvM0pjCkCIaVTqchBwh6XDKZOVoqlj0H/syQG8f0J+RhRNFS/WSUruig0FF9Y8hRTRqAqMnR5WTe2Xmhvw+GlEt4215vj8jH3MFGVw2p/xobGFIEY0WXfDgTfEVgaya/rNtVcUX8lvG5wpAPg9k8/KR0300BjGkiEaDDhRXAIYrR0SG5T9nWbLazzRVSKk9+wpFGWYlU30cRdHYwZAiGk3B6b7g90XLvw8quP2RZatwcgJt4zmKorGDIUU0WrzRlPofb/rP8dtzeJvIBsLMdQMjKAYUjS0MKaJRpabqhKvCSoWO4fr3SgUrAAe0jWdA0djCkCIaTQKBLY2EP5oKPuHtKBGc2tMH0djCkCIaTd7ee3q3Cd1fSm/IJ/w8cg2/RQfRGMWQIhotOqBK2sar3lI6sAB/ms82AMMBYKipQcALMaIxgiFFNBqCe/WFVKuOiN5kNjSwss92ANORQQVHHmqTCaYUjSUMKaIDzRtBGX44RSNALALEI/LrSEi1jFf3SBUsIF+Uj4C/RmWogGJO0RjBkCI60Lw+UoFmh40xdcSBxqhsz2EafkDlCgOn/4QAhMHRFI0pDCmiAynYjTdkAtEw0BAFEg1AslEeiQY5qjIAFG0gWwD6QoEtlFTbDsPd6x9HVG8YUkQHklfJZwKRsAyjxpgMp9ZmYFwCSDbJaT9ATvGls/Lrog0UbDmy0oUVhsEpPxpTGFJEB4qh/idYMBENA/Eo0BQHUk0ypFoSsjuvEHIzWVfIsIqGgbDpl6izZTyNQQwpogMmUDBh6oq+sAykxhiQiAPNjfKIRfy9+aLhQOt4ff8U0djE9vFEo8E0ysrPw7L8PBzyR0vqXl5ZKKHWo9zAFkl6eo+bT9AYwpEU0YGk16T0N4beVSJQFFG0ZQgVdQ+pojyKttwF3XG4dx+NWQwpogPJ24cPpTfqFixZxRcJy4AyDRlK6SzQmwH6c/L5ogVYuk2HYPk5jTkMKaLRIFS7DcsG8haQycsbeF1XhpEuP+/PyZBKZ+X5giVDTbfq4LZINMYwpIgONL2m5KipvXxRhpGADKxoWH5tqXukMjmgPy+n/gq2DCm9NsWAojFmWIUTN9xwA4488kgkk0kkk0l0dHTgoYce8p7P5/NYtmwZxo8fj0QigUWLFmHbtm0lv2Pz5s1YuHAhGhsbMWnSJFx22WWwbXtk3g1RVQkUPTiunLYrWLLMPJ0FdvUBO3qBbbvksb0H2NkL7OoH+rJATreNd0qLKIjGkGGNpKZOnYorr7wShx56KIQQWLVqFT72sY/hhRdewHvf+15cfPHFeOCBB7B69WqkUiksX74cH//4x/Hkk08CABzHwcKFC9He3o6nnnoKb7/9Nj7zmc8gEong29/+9gF5g0QV41XjBUdSqnBCF0roHdAF/OlAy/aLJnRAeT2liMYYsZ/GjRsnfvrTn4qenh4RiUTE6tWrvedee+01AUCsX79eCCHEgw8+KEzTFF1dXd41N9xwg0gmk6JQKAz5z+zt7Q12gePBo3oPAwKmIRAyBaJhgYaoQKJBoCUhMD4pMCkl0NYiMKlFYEJSnk80yOuiYflzpiF/T6XfCw8eB+Do7e3d47/v9/k+KcdxcMcddyCTyaCjowMbN26EZVlYsGCBd83MmTMxffp0rF+/HgCwfv16HHHEEWhra/Ou6ezsRDqdxiuvvLLbP6tQKCCdTpccRDXB+6so5EjJcQHbltN4haKc0ssV/dLzouWPoJxg6/hKvxGiyhh2SG3atAmJRAKxWAznn38+7r77bsyaNQtdXV2IRqNoaWkpub6trQ1dXV0AgK6urpKA0s/r53Zn5cqVSKVS3jFt2rThvmyiygmuIwVv1PVCy5FTgY4rH91gODGgaGwbdkgddthhePHFF7FhwwYsXboUS5YswauvvnogXptnxYoV6O3t9Y4tW7Yc0D+PaEQZZV8PdgBgGhENNOwS9Gg0ikMOOQQAMGfOHDz77LO45pprcMYZZ6BYLKKnp6dkNLVt2za0t7cDANrb2/HMM8+U/D5d/aevGUwsFkMsFhvuSyWqPL3jRHCT2ZDht5DXASWgRlcCgCu78BoCEGrXc+YXjVH7vXef67ooFAqYM2cOIpEI1q5d6z33+uuvY/Pmzejo6AAAdHR0YNOmTdi+fbt3zZo1a5BMJjFr1qz9fSlE1cVr02HIYAqbqitvGIiHgYaIbHjYEJXfx1Qr+bAKMsPg7po05g1rJLVixQqccsopmD59Ovr6+nD77bfjsccew8MPP4xUKoVzzjkHl1xyCVpbW5FMJnHBBRego6MDxx13HADg5JNPxqxZs3DWWWfhqquuQldXF7761a9i2bJlHClRfSkZQZkyeKIqoGJh+XU4pMrPBWC7QFHdR1U05D1VAnKdygAAjqZobBpWSG3fvh2f+cxn8PbbbyOVSuHII4/Eww8/jA9/+MMAgB/+8IcwTROLFi1CoVBAZ2cnrr/+eu/nQ6EQ7r//fixduhQdHR1oamrCkiVL8I1vfGNk3xVRxamAChlARHfk1SMn9RgNyWtcIXeWyFtAxgTMovwVLosniAwhau8W9nQ6jVQqVemXQTQ4PYoKqRFUTAVUIgYkG4DmmPw6FpYjKdsFskWgvwCk80BfAcgUZGgVA5vLujX3V5Vor3p7e5FMJnf7PPfuIxpxht8/SodUY1QG1PhGoKURSDXI4DIMOYrqy8vpP719UtGWAWW6gOP/Wo6oaKxhSBGNJK+sXE/1hQIhFQdam4DxTfKxISJ/JluUYeaoHdEzxdJGiAbTicYuhhTRSNNBZZpyyi8aBuIRoEkFVUsjMK4BiEflelPIlKOpmOrUG1Jt4w39y4jGLoYU0YhSCRW8L0pP+cUjqmgi4pedO0KuPYUCteZek0SAIyga6xhSRCMtuJOEaZQeupW8q8rOvdJztQZlOfKcbs3hwt9WiXlFYxBDimgklc/O6VGRowPJBnIWECkAhZDcTDatmhxmi/I5HVbeHn4A+0jRWMWQIhpJwSYELtSIyZHBky3KEnNd0Wca8nw6D+zKAD05v/TccuRUIBsd0hjHkCIaUQKA4e/Fp6fzckWgLyQr/oqOXI+CIUdS/UWgNyfDKlOUu05YgVYd+tcSjUEMKaKRpneJ0OtOBd2B15TnspYsTQdkGOWKMpwyRTnaKuh1KY6kiBhSRAeCF1IOUNDFEiqwImpEpdeqCra/LVLBLi2e4JZINMYxpIhGki4bdwH1P4Dh+J15i44aVRl+kFmOf+iKP6+yr2LvhKgqMKSIRpoOluBoKjj9p3eSEJDndIdeR/WTct3S0nOiMYwhRXRAqIaFelNY4fqjKdPwLvHCS7eUL783imiMY0gRHVBi4Jdu4IQOKu4yQTQohhTRgWQEdpsIle06oaf7VNW6dzCjiDwMKaKRFtwOSbeN13v46aAqWY8KbJGkA4udeIkAMKSIRlYwoMLBtvGmLD2PBCr7HAFYquLP205JlfS5akjFoKIxjiFFNFJ07ycdUFHdlVcd8bAMrJAqqCiqe6Syaosk2GptyuD9UUQKQ4poJAQDKmTIgIqHgaaIbBffHAESqj2HachpvpwNZCwgVJS/wxX+fn0uAINbIhExpIhGip7q01N8DWGgOQq0xoGWGJCKyXMhQ46i+oty+i94Q2/RAGxDBRSrKIgYUkT7q3wUpZscNkVkME1okEdrXDY8NA05iuoJqx3RHfl93g5UAFb6TRFVB4YU0UgINjkMm0AsJAMpGQPGxYEJjTKomiLy+owl153ytrxWVwAaTCeiIIYU0UgxAiOpiBpNNYblWlRSHY0Rf4eJaCCczL3/eqKxiH81iEaCdzNuoLovosrOo+rrsOlP5emg0h17gw0OWdlH5OFIimh/GYEvDJSuJ7mB+6HyqsTccuV0X8aS5ed5W94rpcMquD0Sw4rGOIYU0YgRgZ0kVMVewZFNDtOqzDxsykDqLQC78kC6oILKkeFVMqKq6JshqgoMKaL9JQJHMKByqjV8d0ieyxTldF/RAfqKQHdeHn0FeW1RtYx3GVBEGkOKaKTokLJdNYKygUhBPqer+AwVUhlLBlW6APRb/pQfR1JEJRhSRCNBt9xwAiFlWnJ9yhZyyi+s6pT0+lTWluezlrw+uCZFRAAYUkT7L9gy3nABGzJ0BGToFBx/B3QBv418wZGPRVdOD3IURTQAQ4popHjTfQKAbhmvAihklraM1605rEAJOsvPiQZgSBGNBG80pZLIAQDVMt4WgOnI9SihRlyuCiZ9cARFNCiGFNGI06Xo+ls30DIe/i7nruANvER7wZAiOlCMsqPkvHfHLhHtAUOKaCR4G8xCbYtkqJbxapskvQGZHkE5eqglAi3jwdwiKsOQItpfwR3Q9Qazer++aCCogkUTRVf9XGAe0GWTQ6JyDCmi/VHSokO36TCBeMg/oqYfUrYLFFy5DZLhyN/hqjUrA3Jtiog8DCmi/VE+goqHgMYQkIgAiTDQFJbnQoYcKeUdIOvIXSYMQFYEBgonOO1HVIIhRbSvyjvyxkygIQQ0R4DWKNASBZIRGVQhQ5ai99tA2pJrVI4qT7fUGpUOLSLyMKSI9lV5N95oSDY5TEaA8TFgQgxojckRlWnIdajeogwsywVyDpB35feGISv+9L1URASAIUW0b/S0nGEAIQARQ07rJcJyBDUhBrQ3ABNjcurPhJzmC+sRlSU3nI3YfvUfO8cTDcCQItpXhhEoOTcD030qqFpjckTVHJHXRyy5JhUPyco/bwRV0XdBVNUYUkT7o6RwwpCVfLGQDKtGNf0XD8niiGD7eKB0pwne20s0KIYU0b7wdpEw/KDSYaVHSIDfusNWu6Hn1VFw/YKJYHUf16OISjCkiPZHyagIqiuv6ieVseXIqugARSGLJnqKQJ/lt4wvqgBz4QcUc4rIw5Ai2h9e23j4O0lkHVlmHjFlAIVVZV/aAnYUgF0qqHRIBVvGM6CISjCkiPaFt44kAi3jXTV6KvrB1FOU04CWC/TZwC4VUmk1mvJGUoJTfUSDYEgR7Q89xafXnLKG34E368iKP0CGVNaRI6h+Wx7eSEp4e81yJEVUiiFFtK+8BoZQ61CG3I9Pf5+xZWABgRBThRM5W468bJejKKI9YEgR7QsReHTUEKigWsY7am0qrG7UBdT2R+p8saxtPNejiHaLIUW0P4RqGW8IwAYAtaO5LUrviXLVlKAt/HBiQBHtFUOKaF+JwBe61YYN1S7e8O+l0iEUDCYGFNGQMKSI9lfJtkaD3OvkNeEV/lF2ORENjiFFtK+Cu06YkEcouOsE/JGUEwgvoU8GnieiQTGkiPaFDiC9C3rIkDuhR1S7+LAKLkCOohzVN8pSteblYcWgIhoUQ4poXwQDKmKqVh26dbypWsara20ht0UquEAeQEHIdStdws6AItothhTRcOlRVAhq53MDaDCBppA8GkMyqPRNvUUXyLlAxpE/LxxZWKGLJgzBoCLaDYYU0XAF23NEdQ+pENASBlJhIBmWYRU25DRfVm2JFFbBpMvRvZbx4NoU0W4wpIiGQ0/zmWrdKWYCTaYMpwlRYGIEaI0ACRVSlgDSNhALjKqKpmrVYQAmp/yI9oQhRTQcBlQVHwIhFVIhFQHaYzKokmE50sq78hoBOeXXp9avQrqwwuv1UaE3RFTdGFJEQ2UEDtPwiyWCIdUWlUcqLK/LqK2Sso5ct9Jt483A7ySi3WJIEQ2LUdYu3pDt4ZtCQLNak9LrUoAcIMXU6Cm4TZImvP8hokGYe7+EiAAEbt5FafFEWI2qouoxeI9UsJWHLpbQO6czoIj2ar9C6sorr4RhGLjooou8c/l8HsuWLcP48eORSCSwaNEibNu2reTnNm/ejIULF6KxsRGTJk3CZZddBtu29+elEI0eo+wA/E1li65ch8o4sqIvbQNpB+jXbTrcspbxYE4R7cE+h9Szzz6Lm266CUceeWTJ+Ysvvhj33XcfVq9ejXXr1uEf//gHPv7xj3vPO46DhQsXolgs4qmnnsKqVatwyy234PLLL9/3d0E0moIt4x2oXlIqmHpsYKcFbC8C29SxowjssoE+RxZPeI0OVVDp30lEA+xTSPX392Px4sX4yU9+gnHjxnnne3t78bOf/Qw/+MEPcOKJJ2LOnDm4+eab8dRTT+Hpp58GAPz+97/Hq6++ittuuw1HHXUUTjnlFHzzm9/Eddddh2KxODLviuhA0zuZ65FTvyOD6B0L+EcB+HsB+Htefr2tKIMrbcvRVCEw9Sd4Iy/RnuxTSC1btgwLFy7EggULSs5v3LgRlmWVnJ85cyamT5+O9evXAwDWr1+PI444Am1tbd41nZ2dSKfTeOWVVwb98wqFAtLpdMlBNOoE1FZGwp/eK+iAUqOnrXlgcx54Mwe8mQfeUkH1TlGOsrIOp/uIhmHY1X133HEHnn/+eTz77LMDnuvq6kI0GkVLS0vJ+ba2NnR1dXnXBANKP6+fG8zKlSvx9a9/fbgvlWjkBXtDWSqkso5cm3Ihp/yi6r/9bLUdUp8jz/cH1qQ4iiIakmGF1JYtW3DhhRdizZo1iMfjB+o1DbBixQpccskl3vfpdBrTpk0btT+fqERwa6OCWlRyIEMravjbH+mNZXMqnAqBogkH3GmCaAiGFVIbN27E9u3bcfTRR3vnHMfB448/jh//+Md4+OGHUSwW0dPTUzKa2rZtG9rb2wEA7e3teOaZZ0p+r67+09eUi8ViiMViw3mpRCNPB4or4G22Z0DuaK4LKII36jqQo6lioE2HDijBdCIaimGtSZ100knYtGkTXnzxRe+YO3cuFi9e7H0diUSwdu1a72def/11bN68GR0dHQCAjo4ObNq0Cdu3b/euWbNmDZLJJGbNmjVCb4voANHTfXptSk/76Z3Oc6rUPKMec2oEVR5QXIsiGpJhjaSam5vxvve9r+RcU1MTxo8f750/55xzcMkll6C1tRXJZBIXXHABOjo6cNxxxwEATj75ZMyaNQtnnXUWrrrqKnR1deGrX/0qli1bxtES1R5XjaYcABCyBYfe0VyoUHJ0JZ+6hgFFNGQjvi3SD3/4Q5imiUWLFqFQKKCzsxPXX3+993woFML999+PpUuXoqOjA01NTViyZAm+8Y1vjPRLITqw9Gaz5Qfg30cV3KFCnyeiITOEqL3J8XQ6jVQqVemXQWORF0y6K6/ht4vX2yHpSj+9HZKlt0WCP6LiaIoIgLy/NplM7vZ5bjBLNFTBgArD368vZsp+UVG1lx8QKFEXgKEqAIUAhCGnCBlQREPCkCIaCq9FB+Tfmqhq09Gomh42mEBcjaYAWdGXd2VXXhOqRbzrF02wEy/RkDCkiIbCa3YY7CNlAskQkDJl+/gm1ZLDFUBeAP0uEHbU+pQL2KqdvGnIsGJQEe0VQ4pob4KNDkOGnNprNIFUCJgQBiaEgHFhIKlCylYBtcuRwabbdBQNP6iIaEgYUkR7o0NKF0rETCBhAi0hYFIYmBwGJobl92FDTvXtcmSgWQLIqHuowvALK9iRl2hIGFJEe6LDxDT8gomYIaf2UiE5imqPAO2BkMq5MtAKLpBWRRVh3ZnXkOtT+ndzUEW0Rwwpor0pH0npgomkCbSG5ZTfpDDQEpYjpX4XyAmg0fH38ttt63gi2hOGFNHelK9J6dFUXFX1NanQalAby+ppPX1Drwu/7Jw7nxMNC0OKaE+CO0YEw8o0/B0mdBhZqkdUXsgpv7zaJb0YuJGXPaSIhoUhRTRcwX5SOd023vB3O+9xgJ2qU2+f628yy0aHRMPGkCIaCh0sXkdeIW/U7XXktJ8Nuf5kCXlumyWDqteR1X0FAVhQoynh/04i2iOGFNGeBPfZ040Oiyqg0i4QVzfr9jl++XmfA+xwgB22HFXpkOJIimjYGFJEQyHgd9/Nu0C/AYRsWQiRceWWSGbgvqheNYpKOzLQvOk+tuogGg6GFNHe6FGUAzmtlxeAqTaNtSFDKaJKzC3IEMuoI+vK7y22jCfaFwwpoj0RgUe9HlVUO5u7qlAio9p2ADKIirqyL1Dd54CjKKJ9wJAiGgpvNKWm9HQXXkvItShdqq478RaDvaTUz3IURTRsDCmivQmOprwCCrWnkW5uqLc48podqkcH/g28DCiiYTP3fgkR+VsaBRJLBB71KMkbMZU9z4Ai2iccSRHtjbfJLPy28WG1PVI4sB4l1PNGILiCO1Xoa4hoyBhSRHsS7Mgb7MobNYCo+lqHlAs5zVdUPwPht4vnjudE+4QhRbQnXkde+OHUaMjNZBsMeX9URA2TLFXRl0Ng5BQomGBQEQ0bQ4podwY0O1QBlTSBpAE0m0CTCikBGVAZIffrM9R9VC5KiycYVETDwpAiGkxwmi+kRlANKphaTWC8CYxTPaUikGGUEUCvanhoA7DUTbwWZFAR0bAxpIh2R0/z6f5RCUMGU1sImGwCE0NAiykDzBZAj9oeSUDezJs35GEKvyMvR1JEw8KQIhqMN9WnpvPiABJq9DTJBN4VBtpDckQVgZzq0wGVVYEVhWqAGGgZT0TDwpAiKlfS4BD+SKrJkGtR41VQTTaB8SE52sqqG3j7XDktGFFdfA0MLEMnoiFjSBHtjjfdF1iTSqh1qHHqaDFVmLl+pZ+J0kAKtvsgomHhjhNE5byRjyEPvS4VNuTUXlSFUdjw/wbpNh76sMXAbZEABhXRMHEkRbQn5VN0Av4GsjkBhF0ZRL0ukBZAn5BTf3khb+r12nMIBhTRPmBIEe2JnqbzGh6qINrlylFUvyHXonpcoMsB3nHlc/3q2vI+UgwqomFhSBHtjt4twjFUM8NAQEXU91HVrqNXANsc4B1HBlamLKQYTkT7hCFFVC5Y6KAbHRaEHB3FVEBZAugRcr3KUs/tdIGdjhpJufJnLLDZIdF+YEgRDcbrDQV/FNXvyjUqB3KkFFPfW2p9Ki2AtCvL0LMq2OzASIohRTRsDCmicsE99lx1/1MBcg1KuLJwImv4HXktIZ/PqnDKicAoCgwoov3AkCIaTLBgwoDa2kids1VIlZefFyDDqagr+ziKItpfDCmiwZSsSwm/XbwOrpDajw/ww0hvJqun+DiKItpvDCmivRFQ9zkZMpAMyK+DHXgdNS3otY8HA4poBDCkiPakfB+/kD7USMpVKaRbxQ/28wwqon3GkCIajN5/r6RlPOQRUVslGQBcdTOvpZJIj6x0aDGgiPYLQ4qoXLAjbxgymOIAGiA3kY3BbxnvqCKJvF6zMtgynmgEMaSIgoLTerpFRwNkw8Nm9dikNpoFgKIhS877hewbhcDalV6TYlAR7TOGFFFQMKSikAHVbADjDGC8AbQYQBJy+k9A3cSrrnWF3ELJFn7LePaQItovDCkirbxAImoAjarR4QQDaDeAiSqwYmq01GcAO9RCVB7yPqm8+nkTflBxJEW0TxhSRFowpCJQLeMBtKqAmm4Ck1VgxQx50263kH+LbAPog5z2i8BvGc+RFNF+YUgRAX6Y6FFUxJBFEgkDaIEcQU0xgKmm/DoKIGcAYQHkXGCXAcSF6swrBnbnJaJ9wpAi0gar6muEvyY1QU33TVCFExnIvfoa1LW6LN3g/B7RSGFIEWnla1IRyGm9RlXRp49GtW9fIbCfn94x3UXprhNEtF8YUkSAPzWnR0Im/LAKTt3p+6IAOYrKQh45yA1mvU68glsjEY0AhhTR7ujNZC3IAOoXQFptheRANj3cIYBdqpdUVu2Erlt0cDRFtN8YUkRBejNZR213VBCyweEuATQBcFygQbeMB/APF+hygZ1CtpbPqZGWDe6CTjQCGFJEQGmQ6PWlIuRUXloAO1zANOVoKmrI0VJaANsFsE2FWD/kPVIW16SIRgpDikgLFkDoUVQ/1H1PAIquLJoIqR0lMuo+qW4dUupGXr3bBIOKaL8xpIi0YDdeS8hNY/vVEzbk1zFV0WdDTu31QU7z9asiiiIbHhKNJIYUEVC6EawLORoyIW/M1cGVE0DYUCGliiRykAUTekskPYpiQBGNCIYUkaYDylCPOoj0ruY5yKk+oLTqrxgoluA0H9GIYkgRaeWjKb02ZajEsdX9U3pk5QTCqbyajyFFNCIYUkTl9M4TQbo0PRhC5etO5Y9EtN8YUkSagdKtkcKQlX1R9RiGP9KyUTrqCgYbt+4jGjEMKSLAD6bgvn1ey3iolvHqOn0PVQEDpwcNMKSIRhBDiqh89BSFDKYmyH5SCcjd0KPqOguyiCIDv8jCQWlVH4OKaEQwpIjKdz7XzQ5bALQCSEG2jI+p6wuQ90f1YGBI6T37GFJEI4IhRWPbgJbxkCOoFIAJANoBTAQwDjK8BORNvd1QHXnhT/0VMXjRBRHtM4YUUXCqLwYZUi0AJgGYChlUEyDXpxzIEVQE/i4Uwa2TzFF95UR1jyFFY1uwG6+e6muGnOZrBzAdMqja1HNFAO9ATullAOyEHH2F4fed4kiKaMQwpGjsCpace5144U/3jYcMpynqMQa5P58NOd03oG386L58orGgJicnhOCKNI2AYCVeMKxC8O+RisAPoWATRAtyVBXcDokbyxIN297+fV6TI6mdO3dW+iVQvXAhix4KUE0MAWyq6CsiGlP6+vqQSqV2+3xNhlRraysAYPPmzXt8c2NdOp3GtGnTsGXLFiSTyUq/nKrFz2lo+DkNDT+noRFCoK+vD1OmTNnjdTUZUqYpZylTqRT/IRiCZDLJz2kI+DkNDT+noeHntHdDGWTU5JoUERGNDQwpIiKqWjUZUrFYDFdccQVisdjeLx7D+DkNDT+noeHnNDT8nEaWIVjPTUREVaomR1JERDQ2MKSIiKhqMaSIiKhqMaSIiKhqMaSIiKhq1WRIXXfddTj44IMRj8cxb948PPPMM5V+SaPq8ccfx0c/+lFMmTIFhmHgnnvuKXleCIHLL78ckydPRkNDAxYsWIC//OUvJdd0d3dj8eLFSCaTaGlpwTnnnIP+/v5RfBcH1sqVK3HMMcegubkZkyZNwmmnnYbXX3+95Jp8Po9ly5Zh/PjxSCQSWLRoEbZt21ZyzebNm7Fw4UI0NjZi0qRJuOyyy2Db9mi+lQPqhhtuwJFHHuntjtDR0YGHHnrIe56f0eCuvPJKGIaBiy66yDvHz+oAETXmjjvuENFoVPz85z8Xr7zyijj33HNFS0uL2LZtW6Vf2qh58MEHxVe+8hVx1113CQDi7rvvLnn+yiuvFKlUStxzzz3ipZdeEv/6r/8qZsyYIXK5nHfNRz7yETF79mzx9NNPiz/84Q/ikEMOEWeeeeYov5MDp7OzU9x8883i5ZdfFi+++KI49dRTxfTp00V/f793zfnnny+mTZsm1q5dK5577jlx3HHHifnz53vP27Yt3ve+94kFCxaIF154QTz44INiwoQJYsWKFZV4SwfEvffeKx544AHx5z//Wbz++uviv/7rv0QkEhEvv/yyEIKf0WCeeeYZcfDBB4sjjzxSXHjhhd55flYHRs2F1LHHHiuWLVvmfe84jpgyZYpYuXJlBV9V5ZSHlOu6or29XXz3u9/1zvX09IhYLCZ++ctfCiGEePXVVwUA8eyzz3rXPPTQQ8IwDLF169ZRe+2jafv27QKAWLdunRBCfiaRSESsXr3au+a1114TAMT69euFEPI/BkzTFF1dXd41N9xwg0gmk6JQKIzuGxhF48aNEz/96U/5GQ2ir69PHHrooWLNmjXin/7pn7yQ4md14NTUdF+xWMTGjRuxYMEC75xpmliwYAHWr19fwVdWPd588010dXWVfEapVArz5s3zPqP169ejpaUFc+fO9a5ZsGABTNPEhg0bRv01j4be3l4A/g76GzduhGVZJZ/TzJkzMX369JLP6YgjjkBbW5t3TWdnJ9LpNF555ZVRfPWjw3Ec3HHHHchkMujo6OBnNIhly5Zh4cKFJZ8JwH+eDqSa2gV9x44dcByn5P9kAGhra8Of/vSnCr2q6tLV1QUAg35G+rmuri5MmjSp5PlwOIzW1lbvmnriui4uuugifOADH8D73vc+APIziEajaGlpKbm2/HMa7HPUz9WLTZs2oaOjA/l8HolEAnfffTdmzZqFF198kZ9RwB133IHnn38ezz777IDn+M/TgVNTIUW0L5YtW4aXX34ZTzzxRKVfSlU67LDD8OKLL6K3txd33nknlixZgnXr1lX6ZVWVLVu24MILL8SaNWsQj8cr/XLGlJqa7pswYQJCodCAiplt27ahvb29Qq+quujPYU+fUXt7O7Zv317yvG3b6O7urrvPcfny5bj//vvx6KOPYurUqd759vZ2FItF9PT0lFxf/jkN9jnq5+pFNBrFIYccgjlz5mDlypWYPXs2rrnmGn5GARs3bsT27dtx9NFHIxwOIxwOY926dfjRj36EcDiMtrY2flYHSE2FVDQaxZw5c7B27VrvnOu6WLt2LTo6Oir4yqrHjBkz0N7eXvIZpdNpbNiwwfuMOjo60NPTg40bN3rXPPLII3BdF/PmzRv113wgCCGwfPly3H333XjkkUcwY8aMkufnzJmDSCRS8jm9/vrr2Lx5c8nntGnTppJAX7NmDZLJJGbNmjU6b6QCXNdFoVDgZxRw0kknYdOmTXjxxRe9Y+7cuVi8eLH3NT+rA6TSlRvDdccdd4hYLCZuueUW8eqrr4rzzjtPtLS0lFTM1Lu+vj7xwgsviBdeeEEAED/4wQ/ECy+8IN566y0hhCxBb2lpEb/97W/FH//4R/Gxj31s0BL097///WLDhg3iiSeeEIceemhdlaAvXbpUpFIp8dhjj4m3337bO7LZrHfN+eefL6ZPny4eeeQR8dxzz4mOjg7R0dHhPa9Lhk8++WTx4osvit/97ndi4sSJdVUy/OUvf1msW7dOvPnmm+KPf/yj+PKXvywMwxC///3vhRD8jPYkWN0nBD+rA6XmQkoIIa699loxffp0EY1GxbHHHiuefvrpSr+kUfXoo48KAAOOJUuWCCFkGfrXvvY10dbWJmKxmDjppJPE66+/XvI7du7cKc4880yRSCREMpkUn/3sZ0VfX18F3s2BMdjnA0DcfPPN3jW5XE58/vOfF+PGjRONjY3i9NNPF2+//XbJ7/nb3/4mTjnlFNHQ0CAmTJggvvjFLwrLskb53Rw4n/vc58RBBx0kotGomDhxojjppJO8gBKCn9GelIcUP6sDg/2kiIioatXUmhQREY0tDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpaDCkiIqpa/x+a2PjqU0ui1wAAAABJRU5ErkJggg==\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"linear_velocity = torch.tensor([[1., 0., 0.]], device=device) * 30\\n\",\n    \"angular_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"rolling_shutter_time = torch.ones(1, device=device) * 0.05\\n\",\n    \"\\n\",\n    \"colors_out, _, _ = rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    colors=colors,\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    Ks=K,\\n\",\n    \"    width=W,\\n\",\n    \"    height=H,\\n\",\n    \"    linear_velocity=linear_velocity,\\n\",\n    \"    angular_velocity=angular_velocity,\\n\",\n    \"    rolling_shutter_time=rolling_shutter_time,\\n\",\n    \"    sh_degree=None,\\n\",\n    \"    render_mode=\\\"RGB\\\",\\n\",\n    \"    packed=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Plot the image\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(colors_out.squeeze(0).cpu())\\n\",\n    \"plt.title(\\\"With moving camera\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The rolling shutter time can be adjusted to simulate a slower camera capture:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAcgAAAGzCAYAAACrRIfoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABaoklEQVR4nO3deXxU5b0/8M/sa2aykAUEBNEKVMQKikGpCtRUUYulbtcqVAVFQNDCrbQVtPUnSGtFuQrYeoFarYqKRRG5FAUVIygKRVTUlk0kCSRkJpnMPs/vj+ecM2eSAZKQZLJ83q/XMZkzJ+HMEPPh+6wGIYQAERERpTBm+gaIiIjaIwYkERFRGgxIIiKiNBiQREREaTAgiYiI0mBAEhERpcGAJCIiSoMBSURElAYDkoiIKI2MB+TGjRthMBiwcePGRl/78ssvt/6NtYG9e/fCYDBg+fLlmb4VakOXXHIJLrnkkhNe16dPH0yYMKHV76ejS/f/0QMPPACDwZByXXt+P5cvXw6DwYCPP/4407fS5tTXvnfv3kzfSgMnFZAvvfQSDAYDVq1a1eC5wYMHw2Aw4J133mnwXO/evTF8+PBjft/nn38eCxcuPJlbIyLq0j7//HM88MADaYPnqaeeavN/mD/88MN47bXX2vTPPFknFZAXXXQRAOD9999POe/3+/HZZ5/BbDZj8+bNKc8dOHAABw4c0L72hz/8IYLBIH74wx9q13SVgDz11FMRDAZx8803Z/pWiDq93bt3489//nOmb6PNfP7553jwwQfbfUDefPPNCAaDOPXUU9v0fhrjpAKyR48e6Nu3b4OALC0thRAC1157bYPn1MdqQBqNRtjtdhiNGW/tbXMGgwF2ux0mkynTt9KhBQKBTN8CHUcikUAoFGr09UIIBIPBFr8Pm80Gi8XS4t+XpFgshkgk0uSvM5lMsNvtDZrE24OTTqWLLroIn376acoP9ObNm/H9738fl19+OT788EMkEomU5wwGAy688EIADfsgL7nkEqxZswb79u2DwWCAwWBAnz59Uv7MRCKB//f//h969uwJu92OUaNG4Ztvvjnhvar9El999RV+/vOfw+v1Ij8/H/fffz+EEDhw4AB+8pOfwOPxoKioCI8++miD71FRUYHbbrsNhYWFsNvtGDx4MFasWKE9H41GkZubi1/84hcNvtbv98Nut2PmzJkA0vedTJgwAW63GwcPHsTYsWPhdruRn5+PmTNnIh6Pp3y/yspK3HzzzfB4PMjOzsb48eOxY8eORvdrVldX45577kGfPn1gs9nQs2dP3HLLLThy5AgAIBKJYM6cORgyZAi8Xi9cLhdGjBjRoNlcfR1//OMf8eSTT+K0006D0+nEZZddhgMHDkAIgd///vfo2bMnHA4HfvKTn6CqqqrB/axduxYjRoyAy+VCVlYWxowZg127dqVco74///73v3HFFVcgKysLN910EwDgvffew7XXXovevXvDZrOhV69euOeeexr1y7aqqgozZ87EoEGD4Ha74fF4cPnll2PHjh0p16k/ry+99FKjfgaffvpp9OvXDw6HA+effz7ee++9E97L8fznP//Btddei9zcXDidTlxwwQVYs2bNSd2j+nemv8d0/aThcBhz587F6aefrr2///3f/41wOJxyncFgwNSpU/Hcc8/h+9//Pmw2G956661jvqY+ffrgyiuvxLp16zB06FA4HA4sXbq00a+3ser3Qap9X5s3b8a9996L/Px8uFwuXHPNNTh8+HDK1yYSCTzwwAPo0aMHnE4nLr30Unz++eeN7td84YUXMGTIEGRlZcHj8WDQoEF4/PHHG1wXDodPeC8GgwEPPPDAcV/f8uXLce211wIALr30Uu136caNG9GnTx/s2rULmzZt0s7r/66rq6sxY8YM9OrVCzabDaeffjoeeeSRlN/j+v/nFy5ciH79+sFms+Hzzz9P+/oNBgMCgQBWrFih/Zn6e63fB6n+TGzcuFH7mRg0aJCWE6+++ioGDRoEu92OIUOG4NNPP23wZ3755Zf42c9+htzcXNjtdgwdOhSrV69Oe3/HYm7S1WlcdNFFePbZZ7FlyxbtTd68eTOGDx+O4cOHw+fz4bPPPsPZZ5+tPde/f3/k5eWl/X6/+c1v4PP58O233+Kxxx4DALjd7pRr5s+fD6PRiJkzZ8Ln82HBggW46aabsGXLlkbd8/XXX48BAwZg/vz5WLNmDR566CHk5uZi6dKlGDlyJB555BE899xzmDlzJs477zyt+TcYDOKSSy7BN998g6lTp6Jv375YuXIlJkyYgOrqakyfPh0WiwXXXHMNXn31VSxduhRWq1X7c1977TWEw2HccMMNx72/eDyOkpISDBs2DH/84x/xz3/+E48++ij69euHyZMnA5D/w1511VXYunUrJk+ejP79++Mf//gHxo8f36j3oLa2FiNGjMAXX3yBW2+9Feeeey6OHDmC1atX49tvv0W3bt3g9/vxl7/8BTfeeCMmTpyImpoaPPPMMygpKcHWrVtxzjnnpHzP5557DpFIBNOmTUNVVRUWLFiA6667DiNHjsTGjRvxq1/9Ct988w0WLVqEmTNn4n//93+1r3322Wcxfvx4lJSU4JFHHkFdXR0WL16s/QNM/4+kWCyGkpISXHTRRfjjH/8Ip9MJAFi5ciXq6uowefJk5OXlYevWrVi0aBG+/fZbrFy58rjvx3/+8x+89tpruPbaa9G3b1+Ul5dj6dKluPjii/H555+jR48eKdc35mfwmWeewR133IHhw4djxowZ+M9//oOrr74aubm56NWrV6P+nvTKy8sxfPhw1NXV4e6770ZeXh5WrFiBq6++Gi+//DKuueaaJt/j4sWLMXXqVIwYMQL33HMP9u7di7FjxyInJwc9e/bUrkskErj66qvx/vvvY9KkSRgwYAB27tyJxx57DF999VWDprO3334bL730EqZOnYpu3bo1+Edufbt378aNN96IO+64AxMnTsSZZ57Z5NfbXNOmTUNOTg7mzp2LvXv3YuHChZg6dSpefPFF7ZrZs2djwYIFuOqqq1BSUoIdO3agpKSkUZXx+vXrceONN2LUqFF45JFHAABffPEFNm/ejOnTpzf5Xhrjhz/8Ie6++2488cQT+PWvf40BAwYAAAYMGICFCxdi2rRpcLvd+M1vfgMAKCwsBADU1dXh4osvxsGDB3HHHXegd+/e+OCDDzB79mwcOnSoQdfXsmXLEAqFMGnSJNhsNuTm5qa9n2effRa33347zj//fEyaNAkA0K9fv+O+hm+++Qb/9V//hTvuuAM///nP8cc//hFXXXUVlixZgl//+te46667AADz5s3Dddddh927d2stkbt27cKFF16IU045Bffddx9cLhdeeukljB07Fq+88krjf3bESdq1a5cAIH7/+98LIYSIRqPC5XKJFStWCCGEKCwsFE8++aQQQgi/3y9MJpOYOHGi9vXvvPOOACDeeecd7dyYMWPEqaee2uDPUq8dMGCACIfD2vnHH39cABA7d+487r3OnTtXABCTJk3SzsViMdGzZ09hMBjE/PnztfNHjx4VDodDjB8/Xju3cOFCAUD87W9/085FIhFRXFws3G638Pv9Qggh1q1bJwCI119/PeXPv+KKK8Rpp52mPd6zZ48AIJYtW6adGz9+vAAgfve736V87Q9+8AMxZMgQ7fErr7wiAIiFCxdq5+LxuBg5cmSD75nOnDlzBADx6quvNngukUho743+fVbfl8LCQnHrrbc2eB35+fmiurpaOz979mwBQAwePFhEo1Ht/I033iisVqsIhUJCCCFqampEdnZ2ys+FEEKUlZUJr9ebcl59f+67774G911XV9fg3Lx584TBYBD79u077vsRCoVEPB5PObdnzx5hs9lS/i4a+zMYiUREQUGBOOecc1Kue/rppwUAcfHFFx/3foQQ4tRTT035+ZsxY4YAIN577z3tXE1Njejbt6/o06ePdv+NvcdwOCzy8vLEeeedl/L3s3z58gb3+Oyzzwqj0ZjyZwshxJIlSwQAsXnzZu0cAGE0GsWuXbtO+BrV1wlAvPXWWynnG/t60/1/pP6/Xv/P0b+fy5YtEwDE6NGjtZ95IYS45557hMlk0n6Wy8rKhNlsFmPHjk35fg888IAAkPI905k+fbrweDwiFosd85rG3osQ8v2dO3dug+9R//WtXLmywe9W1fe///20P4O///3vhcvlEl999VXK+fvuu0+YTCaxf/9+IUTyPfd4PKKiouKYr0vP5XKlfa/U175nz56U1wJAfPDBB9o59feqw+FI+f956dKlDV7nqFGjxKBBg7TfMULI32vDhw8XZ5xxRqPuVwghTrqJdcCAAcjLy9P6Fnfs2IFAIKCNUh0+fLg2UKe0tBTxeFzrf2yuX/ziFymV2YgRIwDIKqAxbr/9du1zk8mEoUOHQgiB2267TTufnZ2NM888M+V7vvnmmygqKsKNN96onbNYLLj77rtRW1uLTZs2AQBGjhyJbt26pfyr7+jRo1i/fj2uv/76Rt3jnXfemfJ4xIgRKffy1ltvwWKxYOLEido5o9GIKVOmNOr7v/LKKxg8eHDaf0mpfQEmk0l7nxOJBKqqqhCLxTB06FB88sknDb7u2muvhdfr1R4PGzYMAPDzn/8cZrM55XwkEsHBgwcByH9hV1dX48Ybb8SRI0e0w2QyYdiwYWlHQquVtJ7D4dA+DwQCOHLkCIYPHw4hRNomGD2bzab96zMej6OyshJutxtnnnlm2td6op/Bjz/+GBUVFbjzzjtTrpswYULKe9QUb775Js4///yU/3/cbjcmTZqEvXv3Nmjeasw9VlZWYuLEiSl/PzfddBNycnJSvtfKlSsxYMAA9O/fP+XvaOTIkQDQ4O/o4osvxsCBAxv92vr27YuSkpKTer3NNWnSpJT+rxEjRiAej2Pfvn0AgA0bNiAWi2kVi2ratGmN+v7Z2dkIBAJYv379Sd9La1u5ciVGjBiBnJyclL/n0aNHIx6P49133025fty4ccjPz2+Vexk4cCCKi4u1x+rvk5EjR6J3794Nzqs/11VVVXj77bdx3XXXoaamRnsNlZWVKCkpwddff6397jmRk25iNRgMGD58ON59910kEgls3rwZBQUFOP300wHIgPyf//kfANCC8mQDUv/mAND+Zz569Gizvt7r9cJut6Nbt24NzldWVmqP9+3bhzPOOKPBgCK1+UL9ITabzRg3bhyef/55hMNh2Gw2vPrqq4hGo40KSLvd3uCHLicnJ+X17du3D927d9eaF1Xq+34i//73vzFu3LgTXrdixQo8+uij+PLLLxGNRrXzffv2bXBtuvcVQIPmRPW8+nq+/vprANB+2dbn8XhSHpvN5pTmP9X+/fsxZ84crF69usHPgs/nS/u9VYlEAo8//jieeuop7NmzJ6W/N113wIl+BtWfhTPOOCPlOovFgtNOO+2493Is+/bt034Z6Ol//s4666wm32P9nxmz2dygSfTrr7/GF198ccxfhhUVFSmP0/18HE+665v6epurue9Tbm5ug39IpHPXXXfhpZdewuWXX45TTjkFl112Ga677jr8+Mc/bvK9tLavv/4a//rXv1rt77kpmvv75JtvvoEQAvfffz/uv//+tN+7oqICp5xyygnv4aQDEpCB9/rrr2Pnzp1a/6Nq+PDhmDVrFg4ePIj3338fPXr0aPYvCNWxRn0KIZr99Sf7Peu74YYbsHTpUqxduxZjx47FSy+9hP79+2Pw4MHNur9M+Nvf/oYJEyZg7NixmDVrFgoKCmAymTBv3jz8+9//bnD9se77RO+t2vn/7LPPoqioqMF1+uoGSK32VPF4HD/60Y9QVVWFX/3qV+jfvz9cLhcOHjyICRMmpAwwSOfhhx/G/fffj1tvvRW///3vkZubC6PRiBkzZqT92pb+eWkNLXmPiUQCgwYNwp/+9Ke0z9f/paWv5hujqde3pNb+uywoKMD27duxbt06rF27FmvXrsWyZctwyy23pAzwO9l7qT+IrzkSiQR+9KMf4b//+7/TPv+9730v5XFr/r2d7O+TmTNnNmiVUDW2kGixgATkFI7NmzdjxowZ2nNDhgyBzWbDxo0bsWXLFlxxxRUn/H7tcbgvIOct/utf/0IikUj5Bf3ll19qz6t++MMfonv37njxxRdx0UUX4e2339Y6xFvqXt555x3U1dWlVJGNGc0LyA7yzz777LjXvPzyyzjttNPw6quvpvydzJ07t3k3fZx7AeQvktGjRzfre+zcuRNfffUVVqxYgVtuuUU735hmLUC+1ksvvRTPPPNMyvnq6uoGLQuNof4sfP311ymVcTQaxZ49exr1D6V033P37t0Nzqf7+WvKPX7zzTe49NJLtfOxWAx79+7VBtYB8u9ox44dGDVqVJv9/9nSr/dk7gOQ75O+YqqsrGx0ZWe1WnHVVVfhqquuQiKRwF133YWlS5fi/vvvb/Qva1VOTg6qq6tTzkUiERw6dCjl3PH+no71XL9+/VBbW9vs/w+Pp61+btQCzGKxnPTraJHJh0OHDoXdbsdzzz2HgwcPplSQNpsN5557Lp588kkEAoFGNa+6XK4TNollwhVXXIGysrKUvsVYLIZFixbB7Xbj4osv1s4bjUb87Gc/w+uvv45nn30WsVis0f2PjVFSUoJoNJoy8TmRSODJJ59s1NePGzcOO3bsSLsKkvovMfVfavp/vW7ZsgWlpaUnc+sNlJSUwOPx4OGHH05pxlXVH+aeTrp7FUKkHUp/rK+v/6/0lStXNrqvor6hQ4ciPz8fS5YsSZkbtnz58ga/3BrriiuuwNatW1Pe/0AggKeffhp9+vRpUp+feo95eXn485//jFgspp1/7rnnGvziv+6663Dw4MG0E+2DwWCrzEVt6dfbXKNGjYLZbMbixYtTzqtdRyei76YB5O8G9R8f9afINEa/fv0a9AU+/fTTDSpIl8sFAGl/3lwuV9rz1113HUpLS7Fu3boGz1VXV6f8nDTVsf7MllZQUIBLLrkES5cubfCPBqBxv09ULVJBWq1WnHfeeXjvvfdgs9kwZMiQlOeHDx+uzSlsTEAOGTIEL774Iu69916cd955cLvduOqqq1riVk/KpEmTsHTpUkyYMAHbtm1Dnz598PLLL2Pz5s1YuHAhsrKyUq6//vrrsWjRIsydOxeDBg3S+k5awtixY3H++efjl7/8Jb755hv0798fq1ev1uYXnuhfa7NmzcLLL7+Ma6+9FrfeeiuGDBmCqqoqrF69GkuWLMHgwYNx5ZVX4tVXX8U111yDMWPGYM+ePViyZAkGDhyI2traFnstHo8Hixcvxs0334xzzz0XN9xwA/Lz87F//36sWbMGF1544Ql/GfXv3x/9+vXDzJkzcfDgQXg8HrzyyiuN/hf+lVdeid/97nf4xS9+geHDh2Pnzp147rnnmt0dYLFY8NBDD+GOO+7AyJEjcf3112PPnj1YtmxZs7/nfffdh7///e+4/PLLcffddyM3NxcrVqzAnj178MorrzR5sQ2r1YoHHngA06ZNw8iRI3Hddddh7969WL58Ofr165fyM3TzzTfjpZdewp133ol33nkHF154IeLxOL788ku89NJL2hzGltTSr7e5CgsLMX36dDz66KO4+uqr8eMf/xg7duzA2rVr0a1btxP+v3b77bejqqoKI0eORM+ePbFv3z4sWrQI55xzTrN+J9x+++248847MW7cOPzoRz/Cjh07sG7dugYtHeeccw5MJhMeeeQR+Hw+2Gw2jBw5EgUFBRgyZAgWL16Mhx56CKeffjoKCgowcuRIzJo1C6tXr8aVV16JCRMmYMiQIQgEAti5cydefvll7N27t1ktKoD8vf7Pf/4Tf/rTn7RFZtL1MbeEJ598EhdddBEGDRqEiRMn4rTTTkN5eTlKS0vx7bffNpjffCwtEpCADL733ntPa1LVu/DCC/Hoo48iKyurUU1Ld911F7Zv345ly5bhsccew6mnntouAtLhcGDjxo247777sGLFCvj9fpx55plYtmxZ2snCw4cPR69evXDgwIEWrR4BWfGsWbMG06dPx4oVK2A0GnHNNddg7ty5uPDCC2G324/79W63G++99x7mzp2LVatWYcWKFSgoKMCoUaO0ATATJkxAWVkZli5dinXr1mHgwIH429/+hpUrVzZqcfmm+K//+i/06NED8+fPxx/+8AeEw2GccsopGDFiRNpFF+qzWCx4/fXXcffdd2PevHmw2+245pprMHXq1Eb9zP36179GIBDA888/jxdffBHnnnsu1qxZg/vuu6/Zr2nSpEmIx+P4wx/+gFmzZmHQoEFYvXr1MQcOnEhhYSE++OAD/OpXv8KiRYsQCoVw9tln4/XXX8eYMWOa9T2nTp0KIQQeffRR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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"linear_velocity = torch.tensor([[1., 0., 0.]], device=device) * 30\\n\",\n    \"angular_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"rolling_shutter_time = torch.ones(1, device=device) * 0.5\\n\",\n    \"\\n\",\n    \"colors_out, _, _ = rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    colors=colors,\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    Ks=K,\\n\",\n    \"    width=W,\\n\",\n    \"    height=H,\\n\",\n    \"    linear_velocity=linear_velocity,\\n\",\n    \"    angular_velocity=angular_velocity,\\n\",\n    \"    rolling_shutter_time=rolling_shutter_time,\\n\",\n    \"    sh_degree=None,\\n\",\n    \"    render_mode=\\\"RGB\\\",\\n\",\n    \"    packed=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Plot the image\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(colors_out.squeeze(0).cpu())\\n\",\n    \"plt.title(\\\"With moving camera and longer rolling shutter time\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Angular velocities can also contribute to the rolling shutter effect:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAakAAAGzCAYAAACVYeimAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZR0lEQVR4nO3de5hcVZku8HfvuvatqruTdDchCUThEEK4aAjYAc0okQwTPTJkHEeZISCCMMFHBJlDxhFGmCEcnFFRucyMHsg5g+acMKKIgJMnkKDQBIwEA5GoI5AY6A4h6aq+1WXvvc4f31q7dlV3SHf6Vpf39zzb6tq1u1NdQF7XWt9en6WUUiAiIipD9nS/ASIiosNhSBERUdliSBERUdliSBERUdliSBERUdliSBERUdliSBERUdliSBERUdliSBERUdliSNG02rJlCyzLwpYtW0Z97YMPPjj5b2waXHrppTj++OOn+20QlRWGFB21//f//h8sy8JDDz007LXTTz8dlmXhySefHPbavHnzsHTp0sP+3O9973v4xje+MZFvdcLcfffduP/++4/6+9944w38/d//PXbs2DFh74momjGk6Kide+65AICf//znRefT6TReeuklhMNhPP3000Wv7d27F3v37vW/9wMf+ACGhobwgQ98wL+m2kPqK1/5yogh9W//9m/YvXv30b85oirEkKKjNnv2bMyfP39YSHV1dUEphY9//OPDXjPPTUjZto14PA7bnp5/FQcGBqblzx1JJBJBLBab7rdR0RzHQS6Xm+63QROIIUXjcu655+KFF17A0NCQf+7pp5/GKaecggsuuADPPvssPM8res2yLJxzzjkAhq9J/dEf/RF+8pOf4PXXX4dlWbAsa9g6jed5+Md//EfMmTMH8Xgc5513Hn73u98d8b3+/d//PSzLwq5du/CpT30KLS0tflg6joNbb70V7373uxGLxXD88cfjb//2b5HNZv3vP/744/Hyyy9j69at/nv7oz/6IwDAwYMH8cUvfhGnnnoqGhsbkUgkcMEFF+DFF1/0v3/Lli1YsmQJAOCyyy7zf4YZmZWuSb322muwLAv/9E//hH/913/139uSJUvw/PPPD/v9Nm7ciIULFyIej2PRokV46KGHxrTO9dhjj2HZsmVoampCIpHAkiVL8L3vfc9//Wc/+xk+/vGPY968eYjFYpg7dy6+8IUvFP2zN79HY2Mj9uzZg4985CNobGzEsccei7vuugsAsHPnTnzoQx9CQ0MDjjvuuKI/w+jt7cW1116LuXPnIhaL4YQTTsD//J//s+jfpeDn841vfMP/fHbt2oVcLoebbroJixcvRjKZRENDA97//vePOP1M5S083W+AKtu5556L//N//g+2bdvm/4X99NNPY+nSpVi6dClSqRReeuklnHbaaf5rCxYswIwZM0b8eV/60peQSqXwhz/8AV//+tcBAI2NjUXX3H777bBtG1/84heRSqVwxx134OKLL8a2bdtG9Z4//vGP48QTT8Rtt90G06nmM5/5DNavX48/+7M/w/XXX49t27Zh3bp1+PWvf+2vuX3jG9/A5z73OTQ2NuJLX/oSAKC9vR0A8Pvf/x4//OEP8fGPfxzz589HT08P/uVf/gXLli3Drl27MHv2bJx88sm45ZZbcNNNN+HKK6/E+9//fgB4x/U5QKY/+/r68NnPfhaWZeGOO+7ARRddhN///veIRCIAgJ/85Cf4xCc+gVNPPRXr1q3DoUOHcPnll+PYY48d1Wdy//3349Of/jROOeUUrF27Fs3NzXjhhRfw+OOP41Of+hQACcHBwUFcffXVmDFjBp577jl861vfwh/+8Ads3Lix6Oe5rosLLrgAH/jAB3DHHXfggQcewDXXXIOGhgZ86UtfwsUXX4yLLroI9957Ly655BJ0dnZi/vz5AIDBwUEsW7YM+/btw2c/+1nMmzcPzzzzDNauXYs333xz2FTwfffdh0wmgyuvvBKxWAytra1Ip9P4zne+g09+8pO44oor0NfXh+9+97tYsWIFnnvuOZxxxhmj+lyoDCiicXj55ZcVAHXrrbcqpZTK5/OqoaFBrV+/XimlVHt7u7rrrruUUkql02kVCoXUFVdc4X//k08+qQCoJ5980j+3cuVKddxxxw37s8y1J598sspms/75O++8UwFQO3fufMf3evPNNysA6pOf/GTR+R07digA6jOf+UzR+S9+8YsKgHriiSf8c6eccopatmzZsJ+dyWSU67pF51599VUVi8XULbfc4p97/vnnFQB13333DfsZq1evLvq9X331VQVAzZgxQx08eNA//6Mf/UgBUD/+8Y/9c6eeeqqaM2eO6uvr889t2bJFARjxswzq7e1VTU1N6uyzz1ZDQ0NFr3me5389ODg47HvXrVunLMtSr7/+etHvAUDddttt/rlDhw6puro6ZVmW2rBhg3/+lVdeUQDUzTff7J+79dZbVUNDg/rNb35T9GfdeOONKhQKqT179hR9PolEQu3fv7/oWsdxiv4dMe+hvb1dffrTn37Hz4PKC6f7aFxOPvlkzJgxw19revHFFzEwMOCPDpYuXeoXT3R1dcF1XX+K7WhddtlliEaj/nMzIvn9738/qu+/6qqrip4/+uijAIDrrruu6Pz1118PQEYpRxKLxfx1Ndd18fbbb6OxsREnnXQSfvnLX47qfR3OJz7xCbS0tPjPS3/fN954Azt37sQll1xSNOpctmwZTj311CP+/E2bNqGvrw833ngj4vF40WuWZflf19XV+V8PDAzgwIEDWLp0KZRSeOGFF4b93M985jP+183NzTjppJPQ0NCAP//zP/fPn3TSSWhubi76Z7dx40a8//3vR0tLCw4cOOAfy5cvh+u6eOqpp4r+nFWrVmHWrFlF50KhkP/viOd5OHjwIBzHwZlnnjnufx40tTjdR+NiWRaWLl2Kp556Cp7n4emnn0ZbWxtOOOEEABJS3/72twHAD6vxhtS8efOKnpu/wA8dOjSq7zfTSsbrr78O27b992x0dHSgubkZr7/++hF/pud5uPPOO3H33Xfj1Vdfheu6/muHm9ocrSP9vub9lb5/c+5Ifyn/13/9FwBg0aJF73jdnj17cNNNN+Hhhx8e9lmnUqmi5/F4fFhwJJNJzJkzpyj4zPngz/vtb3+LX/3qV8O+39i/f3/R89J/nsb69evxz//8z3jllVeQz+ePeD2VJ4YUjdu5556LH//4x9i5c6e/HmUsXboUN9xwA/bt24ef//znmD17Nt71rneN688LhUIjnld6felIgiOCoNK/PMfitttuw5e//GV8+tOfxq233orW1lbYto1rr722aLH/aIz3950Iruviwx/+MA4ePIj/8T/+BxYsWICGhgbs27cPl1566bDf8XDveTS/i+d5+PCHP4y/+Zu/GfHa//bf/lvR85H+ef77v/87Lr30Ulx44YW44YYb0NbWhlAohHXr1vmhTJWBIUXjFrxf6umnn8a1117rv7Z48WLEYjFs2bIF27Ztw5/8yZ8c8eeNJyyOxnHHHQfP8/Db3/4WJ598sn++p6cHvb29OO6444743h588EF88IMfxHe/+92i8729vZg5c+YRv388zPsbqcJxNFWP7373uwEAL7300oijMUAq8n7zm99g/fr1uOSSS/zzmzZtOpq3fMT309/fj+XLlx/1z3jwwQfxrne9Cz/4wQ+KPvObb755It4iTSGuSdG4nXnmmYjH43jggQewb9++opFULBbDe9/7Xtx1110YGBgY1VRfQ0PDsOmjyWSCs7Rq7Gtf+xoAYOXKlUXvrbe3d9jPCIVCw0Y2GzduxL59+4rONTQ0AMCIP+NozZ49G4sWLcL//t//G/39/f75rVu3YufOnUf8/vPPPx9NTU1Yt24dMplM0WvmdzIjoODvqJTCnXfeORG/QpE///M/R1dXF376058Oe623txeO4xzxZ4z0frdt24aurq6Je6M0JTiSonGLRqNYsmQJfvaznyEWi2Hx4sVFry9duhT//M//DGB061GLFy/G//2//xfXXXcdlixZgsbGRnz0ox+dlPcOyBZOq1evxr/+67+it7cXy5Ytw3PPPYf169fjwgsvxAc/+MGi93bPPffgH/7hH3DCCSegra0NH/rQh/CRj3wEt9xyCy677DIsXboUO3fuxAMPPDBsavPd7343mpubce+996KpqQkNDQ04++yzx71Octttt+FjH/sYzjnnHFx22WU4dOgQvv3tb2PRokVFwTWSRCKBr3/96/jMZz6DJUuW+PeQvfjiixgcHMT69euxYMECvPvd78YXv/hF7Nu3D4lEAv/xH/8x6nXAsbjhhhvw8MMP4yMf+QguvfRSLF68GAMDA9i5cycefPBBvPbaa0Wj05F85CMfwQ9+8AP86Z/+KVauXIlXX30V9957LxYuXHjEz4PKzLTVFVJVWbt2rQKgli5dOuy1H/zgBwqAampqUo7jFL02Ugl6f3+/+tSnPqWam5uLSqjNtRs3biz6GaYUeaSy7iBTgv7WW28Ney2fz6uvfOUrav78+SoSiai5c+eqtWvXqkwmU3Rdd3e3WrlypWpqalIA/HL0TCajrr/+enXMMceouro6dc4556iuri61bNmyYSXrP/rRj9TChQtVOBwuet+HK0H/6le/Ouz9oqRsWymlNmzYoBYsWKBisZhatGiRevjhh9WqVavUggUL3vFzMR5++GG1dOlSVVdXpxKJhDrrrLPU97//ff/1Xbt2qeXLl6vGxkY1c+ZMdcUVV6gXX3xx2Ge/evVq1dDQMOznL1u2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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"linear_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"angular_velocity = torch.tensor([[0., 1., 0.]], device=device) * 5.0\\n\",\n    \"rolling_shutter_time = torch.ones(1, device=device) * 0.05\\n\",\n    \"\\n\",\n    \"colors_out, _, _ = rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    colors=colors,\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    Ks=K,\\n\",\n    \"    width=W,\\n\",\n    \"    height=H,\\n\",\n    \"    linear_velocity=linear_velocity,\\n\",\n    \"    angular_velocity=angular_velocity,\\n\",\n    \"    rolling_shutter_time=rolling_shutter_time,\\n\",\n    \"    sh_degree=None,\\n\",\n    \"    render_mode=\\\"RGB\\\",\\n\",\n    \"    packed=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Plot the image\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(colors_out.squeeze(0).cpu())\\n\",\n    \"plt.title(\\\"With rotating camera\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The rolling shutter effect can also appear in stationary sensors when observing fast-moving objects. This can be simulated using the `velocities` argument:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAakAAAGzCAYAAACVYeimAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZKklEQVR4nO3de3xcZZ0/8M85c89lJk3aJHTbQhWWUoWipUAqqyzUdrEiYNcFZLFcFqS2LBdhpb9VXF3dsrgoygLy0hXwgtWyFOVuLVCkhAKFsuVilV1oKzYt0GYml7mdc57fH8/znHlmkkDSJplLPu/X62ySM2emk9mWj8/zfM/ztYQQAkRERBXILvcbICIiGgpDioiIKhZDioiIKhZDioiIKhZDioiIKhZDioiIKhZDioiIKhZDioiIKhZDioiIKhZDisbE448/Dsuy8Pjjjw/72rvvvnvs39g4eOONN2BZFu64445yv5WqNpK/Q1S7GFI0wC9/+UtYloW1a9cOeGzOnDmwLAuPPfbYgMdmzJiB+fPnD/m6d911F2688cbRfKs0hD179uCaa67BkUceiYaGBkSjURx66KE4//zz8eSTT5b77RENW7Dcb4AqzwknnAAAePLJJ3HGGWf451OpFF566SUEg0Fs3LgRf/3Xf+0/tnPnTuzcuRNnnXUWAOCjH/0o0uk0wuGwf81dd92Fl156CZdffvn4/CJlcvDBByOdTiMUCpXlz3/mmWewePFi9PT04KyzzsIll1yCSCSC119/Hffeey/uuOMObNiwAR/96EfL8v6Ga7C/QzTxMKRogKlTp2LmzJkD/hd3Z2cnhBD4zGc+M+Ax/bMOONu2EY1Gx+cNVxjLssr2u+/btw+nn346gsEgtmzZglmzZhU9/o1vfAOrV69GLBYry/sbiYn8d4gKON1HgzrhhBPwwgsvIJ1O++c2btyID3zgAzjllFPw9NNPw/O8oscsy8JHPvIRAAPXE0488UQ88MAD2L59OyzLgmVZOOSQQ4r+TM/z8M1vfhPTpk1DNBrFySefjNdee+093+u//Mu/wLIs/OEPf8Df//3fI5FIYMqUKfjKV74CIQR27tyJ0047DfF4HO3t7bjhhhsGvMaePXtw4YUXoq2tDdFoFHPmzMGdd97pP57P59Hc3Izzzz9/wHNTqRSi0SiuuuoqAIOvSZ133nloaGjAm2++idNPPx0NDQ2YMmUKrrrqKriuW/R677zzDs4991zE43E0NTVh6dKlePHFF4e1zvX9738fu3btwo033jggoAAZoGeffTbmzZvnn9u+fTu+8IUv4PDDD0csFkNLSws+85nP4I033hj0cy51xx13wLKsouufe+45LFq0CJMnT0YsFsPMmTNxwQUXFD1v9erVmDt3LhobGxGPx3HkkUfiu9/9rv/4YGtSv/vd7/CZz3wGM2bMQCQSwfTp03HFFVcU/T0FRvZ5v9f7oPLiSIoGdcIJJ+AnP/kJNm3ahBNPPBGADKL58+dj/vz5SCaTeOmll3DUUUf5j82aNQstLS2Dvt4///M/I5lM4k9/+hO+853vAAAaGhqKrrnuuutg2zauuuoqJJNJXH/99TjnnHOwadOmYb3nM888E0cccQSuu+46PPDAA/jGN76B5uZm3HbbbTjppJPw7//+7/jZz36Gq666CvPmzfOnu9LpNE488US89tprWLFiBWbOnIk1a9bgvPPOQ3d3Ny677DKEQiGcccYZuOeee3DbbbcVTUHde++9yGaz/lTnUFzXxaJFi3DcccfhP/7jP/Db3/4WN9xwA97//vdj2bJlAGRQn3rqqXjmmWewbNkyzJo1C7/61a+wdOnSYX0G9913H2KxGD796U8P63oAePbZZ/HUU0/hrLPOwrRp0/DGG2/g1ltvxYknnohXXnkFdXV1w34tQAb+woULMWXKFFxzzTVoamrCG2+8gXvuuce/Zt26dTj77LNx8skn49///d8BAK+++io2btyIyy67bMjXXrNmDfr7+7Fs2TK0tLTgmWeewU033YQ//elPWLNmTdG1w/m89/d90DgSRIN4+eWXBQDxr//6r0IIIfL5vKivrxd33nmnEEKItrY2cfPNNwshhEilUiIQCIiLLrrIf/5jjz0mAIjHHnvMP7d48WJx8MEHD/iz9LVHHHGEyGaz/vnvfve7AoDYunXru77Xr371qwKAuPjii/1zjuOIadOmCcuyxHXXXeef37dvn4jFYmLp0qX+uRtvvFEAED/96U/9c7lcTnR0dIiGhgaRSqWEEEI88sgjAoC47777iv78T3ziE+J973uf//Prr78uAIjbb7/dP7d06VIBQHz9618veu6HPvQhMXfuXP/n//7v/xYAxI033uifc11XnHTSSQNeczCTJk0SRx999IDzqVRKvPXWW/7R29vrP9bf3z/g+s7OTgFA/PjHP/bP6c+51O233y4AiNdff10IIcTatWsFAPHss88O+T4vu+wyEY/HheM4Q14z2N+hwd7rqlWrhGVZYvv27f654X7ew3kfVF6c7qNBHXHEEWhpafHXml588UX09fX51Xvz58/Hxo0bAci1Ktd1/fWo/XX++ecXjVD+6q/+CgDwf//3f8N6/j/8wz/43wcCARxzzDEQQuDCCy/0zzc1NeHwww8ves0HH3wQ7e3tOPvss/1zoVAI//iP/4je3l5s2LABAHDSSSdh8uTJ+MUvfuFft2/fPqxbtw5nnnnmsN7jJZdcUvTzX/3VXxW9l4cffhihUAgXXXSRf862bSxfvnxYr59KpQaMUAHg3HPPxZQpU/zjS1/6kv+YuT6Vz+fxzjvv4NBDD0VTUxOef/75Yf25pqamJgDA/fffj3w+P+Q1fX19WLdu3Yhe23yvfX19ePvttzF//nwIIfDCCy8MuP69Pu/9fR80fhhSNCjLsjB//nx/7Wnjxo1obW3FoYceCqA4pPTXAw2pGTNmFP08adIkADII9uf5iUQC0WgUkydPHnDefM3t27fjsMMOg20X/3M44ogj/McBIBgMYsmSJfjVr36FbDYLALjnnnuQz+eHFVLRaBRTpkwpOjdp0qQB7+Wggw4aMMWmP/f30tjYiN7e3gHnv/71r2PdunWD/sc4nU7j2muvxfTp0xGJRDB58mRMmTIF3d3dSCaTw/pzTR/72MewZMkSfO1rX8PkyZNx2mmn4fbbb/c/MwD4whe+gL/8y7/EKaecgmnTpuGCCy7Aww8//J6vvWPHDpx33nlobm7215k+9rGPAcCA9zqcz3t/3weNH4YUDemEE05AMpnE1q1b/fUobf78+di+fTvefPNNPPnkk5g6dSre9773HdCfFwgEBj0vhNjv5x/oa5Y666yz0NPTg4ceegiAvKds1qxZmDNnzn69v9E2a9YsbNu2bcAI5qijjsKCBQuwYMGCAc+59NJL8c1vfhN/93d/h1/+8pf4zW9+g3Xr1qGlpaWoOGawogkAAwoR9I3ZnZ2dWLFiBd58801ccMEFmDt3rh+gra2t2LJlC37961/jU5/6FB577DGccsop77r25rouPv7xj+OBBx7Al770Jdx7771Yt26dX0xivldgeJ/3/rwPGl8MKRqSeb/Uxo0b/co9AJg7dy4ikQgef/xxbNq0qeixoQz1H7lyO/jgg/HHP/5xwH/kfv/73/uPax/96Edx0EEH4Re/+AXefvttPProo8Oe6hvue9m1axf6+/uLzg+nyhEAPvnJTyKdTg96I/ZQ7r77bixduhQ33HAD/vZv/xYf//jHccIJJ6C7u7voOj2yLT2vR5qljj/+eHzzm9/Ec889h5/97Gd4+eWXsXr1av/xcDiMU089Fbfccgv+93//F5///Ofx4x//eMjfdevWrfjDH/6AG264AV/60pdw2mmnYcGCBZg6deqwf9fBjPR90PhiSNGQjjnmGESjUfzsZz/Dm2++WTSSikQi+PCHP4ybb74ZfX19w5rqq6+v36/po7H2iU98Al1dXUVrTY7j4KabbkJDQ4M/nQTI9aG//du/xX333Yef/OQncBxnVENq0aJFyOfz+MEPfuCf8zwPN99887Cev2zZMrS1teGKK67AH/7whwGPDzaCDAQCA87fdNNNA0ZI73//+wEATzzxhH+ur6+vqFQfkNOzpa939NFHA4A/5ffOO+8UPW7btl8pak4Llr7P0t9BCHFA5eL78z5ofLEEnYYUDocxb948/O53v0MkEsHcuXOLHp8/f75/z9FwQmru3Ln4xS9+gSuvvBLz5s1DQ0MDTj311DF57yNx8cUX47bbbsN5552HzZs345BDDsHdd9+NjRs34sYbb0RjY2PR9WeeeSZuuukmfPWrX8WRRx7pr12NhtNPPx3HHnssvvjFL+K1117DrFmz8Otf/xp79+4F8N6j0ebmZqxduxannnoq5syZg7POOgvz5s1DKBTCzp07/TJtc/3uk5/8JH7yk58gkUhg9uzZ6OzsxG9/+9sBtxMsXLgQM2bMwIUXXoirr74agUAAP/rRjzBlyhTs2LHDv+7OO+/ELbfcgjPOOAPvf//70dPTgx/84AeIx+P4xCc+AUAWuezduxcnnXQSpk2bhu3bt+Omm27C0UcfPeTnOWvWLLz//e/HVVddhTfffBPxeBz//d//Pew1y8Hsz/ugcVa2ukKqCitXrhQAxPz58wc8ds899wgAorGxcUAJ72Dlw729veKzn/2saGpqEgD8cnR97Zo1a4peY7BS7sHo0ui33nqr6PzSpUtFfX39gOs/9rGPiQ984ANF53bv3i3OP/98MXnyZBEOh8WRRx455J/reZ6YPn26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\",\n      \"text/plain\": [\n       \"<Figure size 640x480 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"linear_velocity = torch.zeros(1, 3, device=device)\\n\",\n    \"angular_velocity = torch.tensor([[0., 1., 0.]], device=device)\\n\",\n    \"rolling_shutter_time = torch.ones(1, device=device) * 0.05\\n\",\n    \"velocities[:, 0] = 30.0\\n\",\n    \"\\n\",\n    \"colors_out, _, _ = rasterization(\\n\",\n    \"    means=means,\\n\",\n    \"    quats=quats,\\n\",\n    \"    scales=scales,\\n\",\n    \"    opacities=opacities,\\n\",\n    \"    colors=colors,\\n\",\n    \"    velocities=velocities,\\n\",\n    \"    viewmats=viewmats,\\n\",\n    \"    Ks=K,\\n\",\n    \"    width=W,\\n\",\n    \"    height=H,\\n\",\n    \"    linear_velocity=linear_velocity,\\n\",\n    \"    angular_velocity=angular_velocity,\\n\",\n    \"    rolling_shutter_time=rolling_shutter_time,\\n\",\n    \"    sh_degree=None,\\n\",\n    \"    render_mode=\\\"RGB\\\",\\n\",\n    \"    packed=False,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"# Plot the image\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(colors_out.squeeze(0).cpu())\\n\",\n    \"plt.title(\\\"With moving Gaussians\\\")\\n\",\n    \"plt.show()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "gsplat/__init__.py",
    "content": "import warnings\n\nfrom .cuda._torch_impl import accumulate\nfrom .cuda._wrapper import (\n    fully_fused_projection,\n    isect_offset_encode,\n    isect_tiles,\n    persp_proj,\n    quat_scale_to_covar_preci,\n    rasterize_to_indices_in_range,\n    rasterize_to_pixels,\n    rasterize_to_points,\n    spherical_harmonics,\n    world_to_cam,\n    map_points_to_lidar_tiles,\n    points_mapping_offset_encode,\n    populate_image_from_points,\n)\nfrom .rendering import (\n    rasterization,\n    rasterization_inria_wrapper,\n)\nfrom .version import __version__\n\n\nall = [\n    \"rasterization\",\n    \"rasterization_inria_wrapper\",\n    \"spherical_harmonics\",\n    \"isect_offset_encode\",\n    \"isect_tiles\",\n    \"isect_lidar_tiles\",\n    \"map_points_to_lidar_tiles\",\n    \"points_mapping_offset_encode\",\n    \"populate_image_from_points\",\n    \"persp_proj\",\n    \"fully_fused_projection\",\n    \"quat_scale_to_covar_preci\",\n    \"rasterize_to_pixels\",\n    \"rasterize_to_points\",\n    \"world_to_cam\",\n    \"accumulate\",\n    \"rasterize_to_indices_in_range\",\n    \"rasterize_to_indices_in_range_lidar\",\n    \"__version__\",\n]\n"
  },
  {
    "path": "gsplat/_helper.py",
    "content": "import os\nfrom typing import Optional, Tuple\n\nimport numpy as np\nimport torch\nimport torch.nn.functional as F\n\n\ndef load_test_data(\n    data_path: Optional[str] = None,\n    device=\"cuda\",\n    scene_crop: Tuple[float, float, float, float, float, float] = (-2, -2, -2, 2, 2, 2),\n    scene_grid: int = 1,\n):\n    \"\"\"Load the test data.\"\"\"\n    assert scene_grid % 2 == 1, \"scene_grid must be odd\"\n\n    if data_path is None:\n        data_path = os.path.join(os.path.dirname(__file__), \"../assets/test_garden.npz\")\n    data = np.load(data_path)\n    height, width = data[\"height\"].item(), data[\"width\"].item()\n    viewmats = torch.from_numpy(data[\"viewmats\"]).float().to(device)\n    Ks = torch.from_numpy(data[\"Ks\"]).float().to(device)\n    means = torch.from_numpy(data[\"means3d\"]).float().to(device)\n    colors = torch.from_numpy(data[\"colors\"] / 255.0).float().to(device)\n    C = len(viewmats)\n\n    # crop\n    aabb = torch.tensor(scene_crop, device=device)\n    edges = aabb[3:] - aabb[:3]\n    sel = ((means >= aabb[:3]) & (means <= aabb[3:])).all(dim=-1)\n    sel = torch.where(sel)[0]\n    means, colors = means[sel], colors[sel]\n\n    # repeat the scene into a grid (to mimic a large-scale setting)\n    repeats = scene_grid\n    gridx, gridy = torch.meshgrid(\n        [\n            torch.arange(-(repeats // 2), repeats // 2 + 1, device=device),\n            torch.arange(-(repeats // 2), repeats // 2 + 1, device=device),\n        ],\n        indexing=\"ij\",\n    )\n    grid = torch.stack([gridx, gridy, torch.zeros_like(gridx)], dim=-1).reshape(-1, 3)\n    means = means[None, :, :] + grid[:, None, :] * edges[None, None, :]\n    means = means.reshape(-1, 3)\n    colors = colors.repeat(repeats**2, 1)\n\n    # create gaussian attributes\n    N = len(means)\n    scales = torch.rand((N, 3), device=device) * 0.02\n    quats = F.normalize(torch.randn((N, 4), device=device), dim=-1)\n    opacities = torch.rand((N,), device=device)\n\n    return means, quats, scales, opacities, colors, viewmats, Ks, width, height\n"
  },
  {
    "path": "gsplat/compression/__init__.py",
    "content": "from .png_compression import PngCompression\n"
  },
  {
    "path": "gsplat/compression/png_compression.py",
    "content": "import json\nimport os\nfrom dataclasses import dataclass\nfrom typing import Any, Callable, Dict\n\nimport numpy as np\nimport torch\nimport torch.nn.functional as F\nfrom torch import Tensor\n\nfrom gsplat.compression.sort import sort_splats\nfrom gsplat.utils import inverse_log_transform, log_transform\n\n\n@dataclass\nclass PngCompression:\n    \"\"\"Uses quantization and sorting to compress splats into PNG files and uses\n    K-means clustering to compress the spherical harmonic coefficents.\n\n    .. warning::\n        This class requires the `imageio <https://pypi.org/project/imageio/>`_,\n        `plas <https://github.com/fraunhoferhhi/PLAS.git>`_\n        and `torchpq <https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install>`_ packages to be installed.\n\n    .. warning::\n        This class might throw away a few lowest opacities splats if the number of\n        splats is not a square number.\n\n    .. note::\n        The splats parameters are expected to be pre-activation values. It expects\n        the following fields in the splats dictionary: \"means\", \"scales\", \"quats\",\n        \"opacities\", \"sh0\", \"shN\". More fields can be added to the dictionary, but\n        they will only be compressed using NPZ compression.\n\n    References:\n        - `Compact 3D Scene Representation via Self-Organizing Gaussian Grids <https://arxiv.org/abs/2312.13299>`_\n        - `Making Gaussian Splats more smaller <https://aras-p.info/blog/2023/09/27/Making-Gaussian-Splats-more-smaller/>`_\n\n    Args:\n        use_sort (bool, optional): Whether to sort splats before compression. Defaults to True.\n        verbose (bool, optional): Whether to print verbose information. Default to True.\n    \"\"\"\n\n    use_sort: bool = True\n    verbose: bool = True\n\n    def _get_compress_fn(self, param_name: str) -> Callable:\n        compress_fn_map = {\n            \"means\": _compress_png_16bit,\n            \"scales\": _compress_png,\n            \"quats\": _compress_png,\n            \"opacities\": _compress_png,\n            \"sh0\": _compress_png,\n            \"shN\": _compress_kmeans,\n        }\n        if param_name in compress_fn_map:\n            return compress_fn_map[param_name]\n        else:\n            return _compress_npz\n\n    def _get_decompress_fn(self, param_name: str) -> Callable:\n        decompress_fn_map = {\n            \"means\": _decompress_png_16bit,\n            \"scales\": _decompress_png,\n            \"quats\": _decompress_png,\n            \"opacities\": _decompress_png,\n            \"sh0\": _decompress_png,\n            \"shN\": _decompress_kmeans,\n        }\n        if param_name in decompress_fn_map:\n            return decompress_fn_map[param_name]\n        else:\n            return _decompress_npz\n\n    def compress(self, compress_dir: str, splats: Dict[str, Tensor]) -> None:\n        \"\"\"Run compression\n\n        Args:\n            compress_dir (str): directory to save compressed files\n            splats (Dict[str, Tensor]): Gaussian splats to compress\n        \"\"\"\n\n        # Param-specific preprocessing\n        splats[\"means\"] = log_transform(splats[\"means\"])\n        splats[\"quats\"] = F.normalize(splats[\"quats\"], dim=-1)\n\n        n_gs = len(splats[\"means\"])\n        n_sidelen = int(n_gs**0.5)\n        n_crop = n_gs - n_sidelen**2\n        if n_crop != 0:\n            splats = _crop_n_splats(splats, n_crop)\n            print(\n                f\"Warning: Number of Gaussians was not square. Removed {n_crop} Gaussians.\"\n            )\n\n        if self.use_sort:\n            splats = sort_splats(splats)\n\n        meta = {}\n        for param_name in splats.keys():\n            compress_fn = self._get_compress_fn(param_name)\n            kwargs = {\n                \"n_sidelen\": n_sidelen,\n                \"verbose\": self.verbose,\n            }\n            meta[param_name] = compress_fn(\n                compress_dir, param_name, splats[param_name], **kwargs\n            )\n\n        with open(os.path.join(compress_dir, \"meta.json\"), \"w\") as f:\n            json.dump(meta, f)\n\n    def decompress(self, compress_dir: str) -> Dict[str, Tensor]:\n        \"\"\"Run decompression\n\n        Args:\n            compress_dir (str): directory that contains compressed files\n\n        Returns:\n            Dict[str, Tensor]: decompressed Gaussian splats\n        \"\"\"\n        with open(os.path.join(compress_dir, \"meta.json\"), \"r\") as f:\n            meta = json.load(f)\n\n        splats = {}\n        for param_name, param_meta in meta.items():\n            decompress_fn = self._get_decompress_fn(param_name)\n            splats[param_name] = decompress_fn(compress_dir, param_name, param_meta)\n\n        # Param-specific postprocessing\n        splats[\"means\"] = inverse_log_transform(splats[\"means\"])\n        return splats\n\n\ndef _crop_n_splats(splats: Dict[str, Tensor], n_crop: int) -> Dict[str, Tensor]:\n    opacities = splats[\"opacities\"]\n    keep_indices = torch.argsort(opacities, descending=True)[:-n_crop]\n    for k, v in splats.items():\n        splats[k] = v[keep_indices]\n    return splats\n\n\ndef _compress_png(\n    compress_dir: str, param_name: str, params: Tensor, n_sidelen: int, **kwargs\n) -> Dict[str, Any]:\n    \"\"\"Compress parameters with 8-bit quantization and lossless PNG compression.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        params (Tensor): parameters\n        n_sidelen (int): image side length\n\n    Returns:\n        Dict[str, Any]: metadata\n    \"\"\"\n    import imageio.v2 as imageio\n\n    if torch.numel == 0:\n        meta = {\n            \"shape\": list(params.shape),\n            \"dtype\": str(params.dtype).split(\".\")[1],\n        }\n        return meta\n\n    grid = params.reshape((n_sidelen, n_sidelen, -1))\n    mins = torch.amin(grid, dim=(0, 1))\n    maxs = torch.amax(grid, dim=(0, 1))\n    grid_norm = (grid - mins) / (maxs - mins)\n    img_norm = grid_norm.detach().cpu().numpy()\n\n    img = (img_norm * (2**8 - 1)).round().astype(np.uint8)\n    img = img.squeeze()\n    imageio.imwrite(os.path.join(compress_dir, f\"{param_name}.png\"), img)\n\n    meta = {\n        \"shape\": list(params.shape),\n        \"dtype\": str(params.dtype).split(\".\")[1],\n        \"mins\": mins.tolist(),\n        \"maxs\": maxs.tolist(),\n    }\n    return meta\n\n\ndef _decompress_png(compress_dir: str, param_name: str, meta: Dict[str, Any]) -> Tensor:\n    \"\"\"Decompress parameters from PNG file.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        meta (Dict[str, Any]): metadata\n\n    Returns:\n        Tensor: parameters\n    \"\"\"\n    import imageio.v2 as imageio\n\n    if not np.all(meta[\"shape\"]):\n        params = torch.zeros(meta[\"shape\"], dtype=getattr(torch, meta[\"dtype\"]))\n        return meta\n\n    img = imageio.imread(os.path.join(compress_dir, f\"{param_name}.png\"))\n    img_norm = img / (2**8 - 1)\n\n    grid_norm = torch.tensor(img_norm)\n    mins = torch.tensor(meta[\"mins\"])\n    maxs = torch.tensor(meta[\"maxs\"])\n    grid = grid_norm * (maxs - mins) + mins\n\n    params = grid.reshape(meta[\"shape\"])\n    params = params.to(dtype=getattr(torch, meta[\"dtype\"]))\n    return params\n\n\ndef _compress_png_16bit(\n    compress_dir: str, param_name: str, params: Tensor, n_sidelen: int, **kwargs\n) -> Dict[str, Any]:\n    \"\"\"Compress parameters with 16-bit quantization and PNG compression.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        params (Tensor): parameters\n        n_sidelen (int): image side length\n\n    Returns:\n        Dict[str, Any]: metadata\n    \"\"\"\n    import imageio.v2 as imageio\n\n    if torch.numel == 0:\n        meta = {\n            \"shape\": list(params.shape),\n            \"dtype\": str(params.dtype).split(\".\")[1],\n        }\n        return meta\n\n    grid = params.reshape((n_sidelen, n_sidelen, -1))\n    mins = torch.amin(grid, dim=(0, 1))\n    maxs = torch.amax(grid, dim=(0, 1))\n    grid_norm = (grid - mins) / (maxs - mins)\n    img_norm = grid_norm.detach().cpu().numpy()\n    img = (img_norm * (2**16 - 1)).round().astype(np.uint16)\n\n    img_l = img & 0xFF\n    img_u = (img >> 8) & 0xFF\n    imageio.imwrite(\n        os.path.join(compress_dir, f\"{param_name}_l.png\"), img_l.astype(np.uint8)\n    )\n    imageio.imwrite(\n        os.path.join(compress_dir, f\"{param_name}_u.png\"), img_u.astype(np.uint8)\n    )\n\n    meta = {\n        \"shape\": list(params.shape),\n        \"dtype\": str(params.dtype).split(\".\")[1],\n        \"mins\": mins.tolist(),\n        \"maxs\": maxs.tolist(),\n    }\n    return meta\n\n\ndef _decompress_png_16bit(\n    compress_dir: str, param_name: str, meta: Dict[str, Any]\n) -> Tensor:\n    \"\"\"Decompress parameters from PNG files.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        meta (Dict[str, Any]): metadata\n\n    Returns:\n        Tensor: parameters\n    \"\"\"\n    import imageio.v2 as imageio\n\n    if not np.all(meta[\"shape\"]):\n        params = torch.zeros(meta[\"shape\"], dtype=getattr(torch, meta[\"dtype\"]))\n        return meta\n\n    img_l = imageio.imread(os.path.join(compress_dir, f\"{param_name}_l.png\"))\n    img_u = imageio.imread(os.path.join(compress_dir, f\"{param_name}_u.png\"))\n    img_u = img_u.astype(np.uint16)\n    img = (img_u << 8) + img_l\n\n    img_norm = img / (2**16 - 1)\n    grid_norm = torch.tensor(img_norm)\n    mins = torch.tensor(meta[\"mins\"])\n    maxs = torch.tensor(meta[\"maxs\"])\n    grid = grid_norm * (maxs - mins) + mins\n\n    params = grid.reshape(meta[\"shape\"])\n    params = params.to(dtype=getattr(torch, meta[\"dtype\"]))\n    return params\n\n\ndef _compress_npz(\n    compress_dir: str, param_name: str, params: Tensor, **kwargs\n) -> Dict[str, Any]:\n    \"\"\"Compress parameters with numpy's NPZ compression.\"\"\"\n    npz_dict = {\"arr\": params.detach().cpu().numpy()}\n    save_fp = os.path.join(compress_dir, f\"{param_name}.npz\")\n    os.makedirs(os.path.dirname(save_fp), exist_ok=True)\n    np.savez_compressed(save_fp, **npz_dict)\n    meta = {\n        \"shape\": params.shape,\n        \"dtype\": str(params.dtype).split(\".\")[1],\n    }\n    return meta\n\n\ndef _decompress_npz(compress_dir: str, param_name: str, meta: Dict[str, Any]) -> Tensor:\n    \"\"\"Decompress parameters with numpy's NPZ compression.\"\"\"\n    arr = np.load(os.path.join(compress_dir, f\"{param_name}.npz\"))[\"arr\"]\n    params = torch.tensor(arr)\n    params = params.reshape(meta[\"shape\"])\n    params = params.to(dtype=getattr(torch, meta[\"dtype\"]))\n    return params\n\n\ndef _compress_kmeans(\n    compress_dir: str,\n    param_name: str,\n    params: Tensor,\n    n_clusters: int = 65536,\n    quantization: int = 6,\n    verbose: bool = True,\n    **kwargs,\n) -> Dict[str, Any]:\n    \"\"\"Run K-means clustering on parameters and save centroids and labels to a npz file.\n\n    .. warning::\n        TorchPQ must installed to use K-means clustering.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        params (Tensor): parameters to compress\n        n_clusters (int): number of K-means clusters\n        quantization (int): number of bits in quantization\n        verbose (bool, optional): Whether to print verbose information. Default to True.\n\n    Returns:\n        Dict[str, Any]: metadata\n    \"\"\"\n    try:\n        from torchpq.clustering import KMeans\n    except:\n        raise ImportError(\n            \"Please install torchpq with 'pip install torchpq' to use K-means clustering\"\n        )\n\n    if torch.numel == 0:\n        meta = {\n            \"shape\": list(params.shape),\n            \"dtype\": str(params.dtype).split(\".\")[1],\n        }\n        return meta\n\n    kmeans = KMeans(n_clusters=n_clusters, distance=\"manhattan\", verbose=verbose)\n    x = params.reshape(params.shape[0], -1).permute(1, 0).contiguous()\n    labels = kmeans.fit(x)\n    labels = labels.detach().cpu().numpy()\n    centroids = kmeans.centroids.permute(1, 0)\n\n    mins = torch.min(centroids)\n    maxs = torch.max(centroids)\n    centroids_norm = (centroids - mins) / (maxs - mins)\n    centroids_norm = centroids_norm.detach().cpu().numpy()\n    centroids_quant = (\n        (centroids_norm * (2**quantization - 1)).round().astype(np.uint8)\n    )\n    labels = labels.astype(np.uint16)\n\n    npz_dict = {\n        \"centroids\": centroids_quant,\n        \"labels\": labels,\n    }\n    np.savez_compressed(os.path.join(compress_dir, f\"{param_name}.npz\"), **npz_dict)\n    meta = {\n        \"shape\": list(params.shape),\n        \"dtype\": str(params.dtype).split(\".\")[1],\n        \"mins\": mins.tolist(),\n        \"maxs\": maxs.tolist(),\n        \"quantization\": quantization,\n    }\n    return meta\n\n\ndef _decompress_kmeans(\n    compress_dir: str, param_name: str, meta: Dict[str, Any], **kwargs\n) -> Tensor:\n    \"\"\"Decompress parameters from K-means compression.\n\n    Args:\n        compress_dir (str): compression directory\n        param_name (str): parameter field name\n        meta (Dict[str, Any]): metadata\n\n    Returns:\n        Tensor: parameters\n    \"\"\"\n    if not np.all(meta[\"shape\"]):\n        params = torch.zeros(meta[\"shape\"], dtype=getattr(torch, meta[\"dtype\"]))\n        return meta\n\n    npz_dict = np.load(os.path.join(compress_dir, f\"{param_name}.npz\"))\n    centroids_quant = npz_dict[\"centroids\"]\n    labels = npz_dict[\"labels\"]\n\n    centroids_norm = centroids_quant / (2 ** meta[\"quantization\"] - 1)\n    centroids_norm = torch.tensor(centroids_norm)\n    mins = torch.tensor(meta[\"mins\"])\n    maxs = torch.tensor(meta[\"maxs\"])\n    centroids = centroids_norm * (maxs - mins) + mins\n\n    params = centroids[labels]\n    params = params.reshape(meta[\"shape\"])\n    params = params.to(dtype=getattr(torch, meta[\"dtype\"]))\n    return params\n"
  },
  {
    "path": "gsplat/compression/sort.py",
    "content": "from typing import Dict\n\nimport torch\nfrom torch import Tensor\n\n\ndef sort_splats(splats: Dict[str, Tensor], verbose: bool = True) -> Dict[str, Tensor]:\n    \"\"\"Sort splats with Parallel Linear Assignment Sorting from the paper `Compact 3D Scene Representation via\n    Self-Organizing Gaussian Grids <https://arxiv.org/pdf/2312.13299>`_.\n\n    .. warning::\n        PLAS must installed to use sorting.\n\n    Args:\n        splats (Dict[str, Tensor]): splats\n        verbose (bool, optional): Whether to print verbose information. Default to True.\n\n    Returns:\n        Dict[str, Tensor]: sorted splats\n    \"\"\"\n    try:\n        from plas import sort_with_plas\n    except:\n        raise ImportError(\n            \"Please install PLAS with 'pip install git+https://github.com/fraunhoferhhi/PLAS.git' to use sorting\"\n        )\n\n    n_gs = len(splats[\"means\"])\n    n_sidelen = int(n_gs**0.5)\n    assert n_sidelen**2 == n_gs, \"Must be a perfect square\"\n\n    sort_keys = [k for k in splats if k != \"shN\"]\n    params_to_sort = torch.cat([splats[k].reshape(n_gs, -1) for k in sort_keys], dim=-1)\n    shuffled_indices = torch.randperm(\n        params_to_sort.shape[0], device=params_to_sort.device\n    )\n    params_to_sort = params_to_sort[shuffled_indices]\n    grid = params_to_sort.reshape((n_sidelen, n_sidelen, -1))\n    _, sorted_indices = sort_with_plas(\n        grid.permute(2, 0, 1), improvement_break=1e-4, verbose=verbose\n    )\n    sorted_indices = sorted_indices.squeeze().flatten()\n    sorted_indices = shuffled_indices[sorted_indices]\n    for k, v in splats.items():\n        splats[k] = v[sorted_indices]\n    return splats\n"
  },
  {
    "path": "gsplat/cuda/__init__.py",
    "content": ""
  },
  {
    "path": "gsplat/cuda/_backend.py",
    "content": "import glob\nimport json\nimport os\nimport shutil\nfrom subprocess import DEVNULL, call\n\nfrom rich.console import Console\nfrom torch.utils.cpp_extension import (\n    _get_build_directory,\n    _import_module_from_library,\n    load,\n)\n\nPATH = os.path.dirname(os.path.abspath(__file__))\nNO_FAST_MATH = os.getenv(\"NO_FAST_MATH\", \"0\") == \"1\"\nMAX_JOBS = os.getenv(\"MAX_JOBS\")\nneed_to_unset_max_jobs = False\nif not MAX_JOBS:\n    need_to_unset_max_jobs = True\n    os.environ[\"MAX_JOBS\"] = \"10\"\n\n\ndef load_extension(\n    name,\n    sources,\n    extra_cflags=None,\n    extra_cuda_cflags=None,\n    extra_ldflags=None,\n    extra_include_paths=None,\n    build_directory=None,\n):\n    \"\"\"Load a JIT compiled extension.\"\"\"\n    # Make sure the build directory exists.\n    if build_directory:\n        os.makedirs(build_directory, exist_ok=True)\n\n    # If the JIT build happens concurrently in multiple processes,\n    # race conditions can occur when removing the lock file at:\n    # https://github.com/pytorch/pytorch/blob/e3513fb2af7951ddf725d8c5b6f6d962a053c9da/torch/utils/cpp_extension.py#L1736\n    # But it's ok so we catch this exception and ignore it.\n    try:\n        return load(\n            name,\n            sources,\n            extra_cflags=extra_cflags,\n            extra_cuda_cflags=extra_cuda_cflags,\n            extra_ldflags=extra_ldflags,\n            extra_include_paths=extra_include_paths,\n            build_directory=build_directory,\n        )\n    except OSError:\n        # The module should be already compiled\n        return _import_module_from_library(name, build_directory, True)\n\n\ndef cuda_toolkit_available():\n    \"\"\"Check if the nvcc is avaiable on the machine.\"\"\"\n    try:\n        call([\"nvcc\"], stdout=DEVNULL, stderr=DEVNULL)\n        return True\n    except FileNotFoundError:\n        return False\n\n\ndef cuda_toolkit_version():\n    \"\"\"Get the cuda toolkit version.\"\"\"\n    cuda_home = os.path.join(os.path.dirname(shutil.which(\"nvcc\")), \"..\")\n    if os.path.exists(os.path.join(cuda_home, \"version.txt\")):\n        with open(os.path.join(cuda_home, \"version.txt\")) as f:\n            cuda_version = f.read().strip().split()[-1]\n    elif os.path.exists(os.path.join(cuda_home, \"version.json\")):\n        with open(os.path.join(cuda_home, \"version.json\")) as f:\n            cuda_version = json.load(f)[\"cuda\"][\"version\"]\n    else:\n        raise RuntimeError(\"Cannot find the cuda version.\")\n    return cuda_version\n\n\n_C = None\n\ntry:\n    # try to import the compiled module (via setup.py)\n    from gsplat import csrc as _C\nexcept ImportError:\n    # if failed, try with JIT compilation\n    if cuda_toolkit_available():\n        name = \"gsplat_cuda\"\n        build_dir = _get_build_directory(name, verbose=False)\n        current_dir = os.path.dirname(os.path.abspath(__file__))\n        glm_path = os.path.join(current_dir, \"csrc\", \"third_party\", \"glm\")\n\n        extra_include_paths = [os.path.join(PATH, \"csrc/\"), glm_path]\n        extra_cflags = [\"-O3\"]\n        if NO_FAST_MATH:\n            extra_cuda_cflags = [\"-O3\"]\n        else:\n            extra_cuda_cflags = [\"-O3\", \"--use_fast_math\"]\n        sources = list(glob.glob(os.path.join(PATH, \"csrc/*.cu\"))) + list(\n            glob.glob(os.path.join(PATH, \"csrc/*.cpp\"))\n        )\n\n        # If JIT is interrupted it might leave a lock in the build directory.\n        # We dont want it to exist in any case.\n        try:\n            os.remove(os.path.join(build_dir, \"lock\"))\n        except OSError:\n            pass\n\n        if os.path.exists(os.path.join(build_dir, \"gsplat_cuda.so\")) or os.path.exists(\n            os.path.join(build_dir, \"gsplat_cuda.lib\")\n        ):\n            # If the build exists, we assume the extension has been built\n            # and we can load it.\n            _C = load_extension(\n                name=name,\n                sources=sources,\n                extra_cflags=extra_cflags,\n                extra_cuda_cflags=extra_cuda_cflags,\n                extra_include_paths=extra_include_paths,\n                build_directory=build_dir,\n            )\n        else:\n            # Build from scratch. Remove the build directory just to be safe: pytorch jit might stuck\n            # if the build directory exists with a lock file in it.\n            shutil.rmtree(build_dir)\n            with Console().status(\n                f\"[bold yellow]gsplat: Setting up CUDA with MAX_JOBS={os.environ['MAX_JOBS']} (This may take a few minutes the first time)\",\n                spinner=\"bouncingBall\",\n            ):\n                _C = load_extension(\n                    name=name,\n                    sources=sources,\n                    extra_cflags=extra_cflags,\n                    extra_cuda_cflags=extra_cuda_cflags,\n                    extra_include_paths=extra_include_paths,\n                    build_directory=build_dir,\n                )\n\n    else:\n        Console().print(\n            \"[yellow]gsplat: No CUDA toolkit found. gsplat will be disabled.[/yellow]\"\n        )\n\nif need_to_unset_max_jobs:\n    os.environ.pop(\"MAX_JOBS\")\n\n\n__all__ = [\"_C\"]\n"
  },
  {
    "path": "gsplat/cuda/_torch_impl.py",
    "content": "import math\nimport struct\nfrom typing import Optional, Tuple\n\nimport torch\nimport torch.nn.functional as F\nfrom torch import Tensor\n\n\ndef _quat_scale_to_covar_preci(\n    quats: Tensor,  # [N, 4],\n    scales: Tensor,  # [N, 3],\n    compute_covar: bool = True,\n    compute_preci: bool = True,\n    triu: bool = False,\n) -> Tuple[Optional[Tensor], Optional[Tensor]]:\n    \"\"\"PyTorch implementation of `gsplat.cuda._wrapper.quat_scale_to_covar_preci()`.\"\"\"\n    quats = F.normalize(quats, p=2, dim=-1)\n    w, x, y, z = torch.unbind(quats, dim=-1)\n    R = torch.stack(\n        [\n            1 - 2 * (y**2 + z**2),\n            2 * (x * y - w * z),\n            2 * (x * z + w * y),\n            2 * (x * y + w * z),\n            1 - 2 * (x**2 + z**2),\n            2 * (y * z - w * x),\n            2 * (x * z - w * y),\n            2 * (y * z + w * x),\n            1 - 2 * (x**2 + y**2),\n        ],\n        dim=-1,\n    )\n\n    R = R.reshape(quats.shape[:-1] + (3, 3))  # (..., 3, 3)\n    # R.register_hook(lambda grad: print(\"grad R\", grad))\n\n    if compute_covar:\n        M = R * scales[..., None, :]  # (..., 3, 3)\n        covars = torch.bmm(M, M.transpose(-1, -2))  # (..., 3, 3)\n        if triu:\n            covars = covars.reshape(covars.shape[:-2] + (9,))  # (..., 9)\n            covars = (covars[..., [0, 1, 2, 4, 5, 8]] + covars[..., [0, 3, 6, 4, 7, 8]]) / 2.0  # (..., 6)\n    if compute_preci:\n        P = R * (1 / scales[..., None, :])  # (..., 3, 3)\n        precis = torch.bmm(P, P.transpose(-1, -2))  # (..., 3, 3)\n        if triu:\n            precis = precis.reshape(precis.shape[:-2] + (9,))\n            precis = (precis[..., [0, 1, 2, 4, 5, 8]] + precis[..., [0, 3, 6, 4, 7, 8]]) / 2.0\n\n    return covars if compute_covar else None, precis if compute_preci else None\n\n\ndef _persp_proj(\n    means: Tensor,  # [C, N, 3]\n    covars: Tensor,  # [C, N, 3, 3]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"PyTorch implementation of prespective projection for 3D Gaussians.\n\n    Args:\n        means: Gaussian means in camera coordinate system. [C, N, 3].\n        covars: Gaussian covariances in camera coordinate system. [C, N, 3, 3].\n        Ks: Camera intrinsics. [C, 3, 3].\n        width: Image width.\n        height: Image height.\n\n    Returns:\n        A tuple:\n\n        - **means2d**: Projected means. [C, N, 2].\n        - **cov2d**: Projected covariances. [C, N, 2, 2].\n    \"\"\"\n    C, N, _ = means.shape\n\n    tx, ty, tz = torch.unbind(means, dim=-1)  # [C, N]\n    tz2 = tz**2  # [C, N]\n\n    fx = Ks[..., 0, 0, None]  # [C, 1]\n    fy = Ks[..., 1, 1, None]  # [C, 1]\n    cx = Ks[..., 0, 2, None]  # [C, 1]\n    cy = Ks[..., 1, 2, None]  # [C, 1]\n    tan_fovx = 0.5 * width / fx  # [C, 1]\n    tan_fovy = 0.5 * height / fy  # [C, 1]\n\n    lim_x_pos = (width - cx) / fx + 0.3 * tan_fovx\n    lim_x_neg = cx / fx + 0.3 * tan_fovx\n    lim_y_pos = (height - cy) / fy + 0.3 * tan_fovy\n    lim_y_neg = cy / fy + 0.3 * tan_fovy\n    tx = tz * torch.clamp(tx / tz, min=-lim_x_neg, max=lim_x_pos)\n    ty = tz * torch.clamp(ty / tz, min=-lim_y_neg, max=lim_y_pos)\n\n    O = torch.zeros((C, N), device=means.device, dtype=means.dtype)\n    J = torch.stack([fx / tz, O, -fx * tx / tz2, O, fy / tz, -fy * ty / tz2], dim=-1).reshape(C, N, 2, 3)\n\n    cov2d = torch.einsum(\"...ij,...jk,...kl->...il\", J, covars, J.transpose(-1, -2))\n    means2d = torch.einsum(\"cij,cnj->cni\", Ks[:, :2, :3], means)  # [C, N, 2]\n    means2d = means2d / tz[..., None]  # [C, N, 2]\n    return means2d, cov2d  # [C, N, 2], [C, N, 2, 2]\n\n\ndef _depth_compensation_from_cov3d(cov3d: Tensor, eps2d: float) -> Tensor:\n    # cov3d [[a1, a2, a3], [b1, b2, b3], [c1, c2, c3]]\n    # depth_comp is [invcov3d[2,0]/invcov3d[2,2], invcov3d[2,1]/invcov3d[2,2]]\n    # we get invcov3d by dividing adjugate of cov3d by det(cov3d)\n    a1 = cov3d[..., 0, 0] + eps2d\n    a2 = cov3d[..., 0, 1]\n    b1 = cov3d[..., 1, 0]\n    b2 = cov3d[..., 1, 1] + eps2d\n    c1 = cov3d[..., 2, 0]\n    c2 = cov3d[..., 2, 1]\n\n    invD = 1 / (a1 * b2 - a2 * b1)\n\n    return torch.stack([(b1 * c2 - b2 * c1) * invD, (a2 * c1 - a1 * c2) * invD], dim=-1)\n\n\ndef _lidar_proj(\n    means: Tensor,  # [C, N, 3]\n    covars: Tensor,  # [C, N, 3, 3]\n    eps2d: float,\n) -> Tuple[Tensor, Tensor, Tensor, Tensor]:\n    \"\"\"PyTorch implementation of lidar projection for 3D Gaussians.\n\n    Args:\n        means: Gaussian means in camera coordinate system. [C, N, 3].\n        covars: Gaussian covariances in camera coordinate system. [C, N, 3, 3].\n\n    Returns:\n        A tuple:\n\n        - **means2d**: Projected means. [C, N, 2].\n        - **cov2d**: Projected covariances. [C, N, 2, 2].\n        - **r**: Range. [C, N]\n        - **depth_comp**: Depth compensation. [C, N]\n    \"\"\"\n    C, N, _ = means.shape\n\n    tx, ty, tz = torch.unbind(means, dim=-1)  # [C, N]\n\n    r = torch.linalg.vector_norm(means, dim=-1)  # [C, N]\n    rinv = torch.rsqrt(tx**2 + ty**2 + tz**2)  # [C, N]\n    norm_means = means * rinv[..., None]\n    J = torch.stack(\n        [\n            torch.rad2deg(-ty / (tx**2 + ty**2)),\n            torch.rad2deg(tx / (tx**2 + ty**2)),\n            torch.rad2deg(torch.zeros_like(tx)),\n            torch.rad2deg(-tx * tz * torch.rsqrt(tx**2 + ty**2) / (r**2)),\n            torch.rad2deg(-ty * tz * torch.rsqrt(tx**2 + ty**2) / (r**2)),\n            torch.rad2deg(torch.sqrt(tx**2 + ty**2) / (r**2)),\n            norm_means[..., 0],\n            norm_means[..., 1],\n            norm_means[..., 2],\n        ],\n        dim=-1,\n    ).reshape(C, N, 3, 3)  # [C, N, 3, 3]\n\n    cov3d_spherical = torch.einsum(\"...ij,...jk,...kl->...il\", J, covars, J.transpose(-1, -2))\n    depth_comp = _depth_compensation_from_cov3d(cov3d_spherical, eps2d)\n    cov2d = cov3d_spherical[..., :2, :2]  # [C, N, 2, 2]\n    means2d = torch.rad2deg(torch.stack([torch.atan2(ty, tx), torch.asin(norm_means[..., 2])], dim=-1))  # [C, N, 2]\n    return means2d, cov2d, r, depth_comp  # [C, N, 2], [C, N, 2, 2], [C, N], [C, N, 2]\n\n\ndef _world_to_cam(\n    means: Tensor,  # [N, 3]\n    covars: Tensor,  # [N, 3, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"PyTorch implementation of world to camera transformation on Gaussians.\n\n    Args:\n        means: Gaussian means in world coordinate system. [C, N, 3].\n        covars: Gaussian covariances in world coordinate system. [C, N, 3, 3].\n        viewmats: world to camera transformation matrices. [C, 4, 4].\n\n    Returns:\n        A tuple:\n\n        - **means_c**: Gaussian means in camera coordinate system. [C, N, 3].\n        - **covars_c**: Gaussian covariances in camera coordinate system. [C, N, 3, 3].\n    \"\"\"\n    R = viewmats[:, :3, :3]  # [C, 3, 3]\n    t = viewmats[:, :3, 3]  # [C, 3]\n    means_c = torch.einsum(\"cij,nj->cni\", R, means) + t[:, None, :]  # (C, N, 3)\n    covars_c = torch.einsum(\"cij,njk,clk->cnil\", R, covars, R)  # [C, N, 3, 3]\n    return means_c, covars_c\n\n\ndef _compute_pix_velocity(\n    p_view: Tensor, lin_vel: Tensor, ang_vel: Tensor, velocities: Tensor, Ks: Tensor, width: int, height: int\n) -> Tensor:\n    C, N = p_view.shape[:2]\n\n    tx, ty, tz = torch.unbind(p_view, dim=-1)\n    tz2 = tz**2  # [C, N]\n\n    lin_vel = lin_vel.unsqueeze(1)\n    ang_vel = ang_vel.unsqueeze(1)\n\n    fx = Ks[..., 0, 0, None]\n    fy = Ks[..., 1, 1, None]\n    cx = Ks[..., 0, 2, None]\n    cy = Ks[..., 1, 2, None]\n    tan_fovx = 0.5 * width / fx  # [C, 1]\n    tan_fovy = 0.5 * height / fy  # [C, 1]\n\n    lim_x_pos = (width - cx) / fx + 0.3 * tan_fovx\n    lim_x_neg = cx / fx + 0.3 * tan_fovx\n    lim_y_pos = (height - cy) / fy + 0.3 * tan_fovy\n    lim_y_neg = cy / fy + 0.3 * tan_fovy\n    tx = tz * torch.clamp(tx / tz, min=-lim_x_neg, max=lim_x_pos)\n    ty = tz * torch.clamp(ty / tz, min=-lim_y_neg, max=lim_y_pos)\n\n    Os = torch.zeros((C, N), device=p_view.device, dtype=p_view.dtype)\n    J = torch.stack([fx / tz, Os, -fx * tx / tz2, Os, fy / tz, -fy * ty / tz2], dim=-1).reshape(C, N, 2, 3)\n\n    rot_part = torch.cross(ang_vel, p_view, dim=-1)\n    total_vel = lin_vel + rot_part - velocities\n\n    return (-J @ total_vel.unsqueeze(-1)).squeeze(-1).to(torch.float32)\n\n\ndef _compute_lidar_velocity(p_view: Tensor, lin_vel: Tensor, ang_vel: Tensor, velocities: Tensor) -> Tensor:\n    C, N = p_view.shape[:2]\n    tx, ty, tz = torch.unbind(p_view, dim=-1)  # [C, N]\n\n    lin_vel = lin_vel.unsqueeze(1)\n    ang_vel = ang_vel.unsqueeze(1)\n\n    rot_part = torch.cross(ang_vel, p_view, dim=-1)\n    total_vel = lin_vel + rot_part - velocities\n\n    r = torch.linalg.vector_norm(p_view, dim=-1)  # [C, N]\n    rinv = torch.rsqrt(tx**2 + ty**2 + tz**2)  # [C, N]\n    norm_means = p_view * rinv[..., None]\n    J_angles = torch.stack(\n        [\n            torch.rad2deg(-ty / (tx**2 + ty**2)),\n            torch.rad2deg(tx / (tx**2 + ty**2)),\n            torch.rad2deg(torch.zeros_like(tx)),\n            torch.rad2deg(-tx * tz * torch.rsqrt(tx**2 + ty**2) / (r**2)),\n            torch.rad2deg(-ty * tz * torch.rsqrt(tx**2 + ty**2) / (r**2)),\n            torch.rad2deg(torch.sqrt(tx**2 + ty**2) / (r**2)),\n        ],\n        dim=-1,\n    ).reshape(C, N, 2, 3)  # [C, N, 2, 3]\n    J_range = torch.stack(\n        [\n            norm_means[..., 0],\n            norm_means[..., 1],\n            norm_means[..., 2],\n        ],\n        dim=-1,\n    ).reshape(C, N, 1, 3)\n\n    J = torch.cat([J_angles, J_range], dim=-2)\n\n    return (-J @ total_vel.unsqueeze(-1)).squeeze(-1)\n\n\ndef _fully_fused_projection(\n    means: Tensor,  # [N, 3]\n    covars: Tensor,  # [N, 3, 3]\n    velocities: Tensor,  # [N, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n    linear_velocity: Tensor,  # [C, 3]\n    angular_velocity: Tensor,  # [C, 3]\n    rolling_shutter_time: Tensor,  # [C]\n    eps2d: float = 0.3,\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    calc_compensations: bool = False,\n) -> Tuple[Tensor, Tensor, Tensor, Tensor, Optional[Tensor], Tensor]:\n    \"\"\"PyTorch implementation of `gsplat.cuda._wrapper.fully_fused_projection()`\n\n    .. note::\n\n        This is a minimal implementation of fully fused version, which has more\n        arguments. Not all arguments are supported.\n    \"\"\"\n    means_c, covars_c = _world_to_cam(means, covars, viewmats)\n    if velocities is None:\n        vel_c = torch.zeros((means_c.shape[0], means_c.shape[1], 3), device=means.device, dtype=means.dtype)\n    else:\n        vel_c = torch.einsum(\"cij,nj->cni\", viewmats[:, :3, :3], velocities)  # (C, N, 3)\n    means2d, covars2d = _persp_proj(means_c, covars_c, Ks, width, height)\n    det_orig = covars2d[..., 0, 0] * covars2d[..., 1, 1] - covars2d[..., 0, 1] * covars2d[..., 1, 0]\n    covars2d = covars2d + torch.eye(2, device=means.device, dtype=means.dtype) * eps2d\n\n    det = covars2d[..., 0, 0] * covars2d[..., 1, 1] - covars2d[..., 0, 1] * covars2d[..., 1, 0]\n    det = det.clamp(min=1e-10)\n\n    if calc_compensations:\n        compensations = torch.sqrt(torch.clamp(det_orig / det, min=0.0))\n    else:\n        compensations = None\n\n    conics = torch.stack(\n        [\n            covars2d[..., 1, 1] / det,\n            -(covars2d[..., 0, 1] + covars2d[..., 1, 0]) / 2.0 / det,\n            covars2d[..., 0, 0] / det,\n        ],\n        dim=-1,\n    )  # [C, N, 3]\n\n    depths = means_c[..., 2]  # [C, N]\n\n    radius = 3 * torch.sqrt(torch.stack([covars2d[..., 0, 0], covars2d[..., 1, 1]], dim=-1))\n    # v2 = b - torch.sqrt(torch.clamp(b**2 - det, min=0.01))  # (...,)\n    # radius = torch.ceil(3.0 * torch.sqrt(torch.max(v1, v2)))  # (...,)\n\n    pix_vels = _compute_pix_velocity(means_c, linear_velocity, angular_velocity, vel_c, Ks, width, height)\n    radius += pix_vels.abs() * 0.5 * rolling_shutter_time.unsqueeze(-1).unsqueeze(-1)\n\n    valid_rolling_shutter_time_mask = (rolling_shutter_time > 0).reshape(-1, 1, 1) * torch.ones_like(pix_vels)\n    pix_vels *= valid_rolling_shutter_time_mask\n\n    valid = (det > 0) & (depths > near_plane) & (depths < far_plane)\n    radius[~valid] = 0.0\n\n    inside = (\n        (means2d[..., 0] + radius[..., 0] > 0)\n        & (means2d[..., 0] - radius[..., 0] < width)\n        & (means2d[..., 1] + radius[..., 1] > 0)\n        & (means2d[..., 1] - radius[..., 1] < height)\n    )\n    radius[~inside] = 0.0\n\n    radii = radius.int()\n    return radii, means2d, depths, conics, compensations, pix_vels\n\n\ndef _fully_fused_lidar_projection(\n    means: Tensor,  # [N, 3]\n    covars: Tensor,  # [N, 3, 3]\n    velocities: Tensor,  # [N, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n    linear_velocity: Tensor,  # [C, 3]\n    angular_velocity: Tensor,  # [C, 3]\n    rolling_shutter_time: Tensor,  # [C]\n    min_elevation: float = -45,\n    max_elevation: float = 45,\n    min_azimuth: float = -180,\n    max_azimuth: float = 180,\n    eps2d: float = 0.01,\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    calc_compensations: bool = False,\n) -> Tuple[Tensor, Tensor, Tensor, Tensor, Optional[Tensor], Tensor, Tensor]:\n    \"\"\"PyTorch implementation of `gsplat.cuda._wrapper.fully_fused_projection()`\n\n    .. note::\n\n        This is a minimal implementation of fully fused version, which has more\n        arguments. Not all arguments are supported.\n    \"\"\"\n    means_c, covars_c = _world_to_cam(means, covars, viewmats)\n    if velocities is None:\n        vel_c = torch.zeros((means_c.shape[0], means_c.shape[1], 3), device=means.device, dtype=means.dtype)\n    else:\n        vel_c = torch.einsum(\"cij,nj->cni\", viewmats[:, :3, :3], velocities)  # (C, N, 3)\n    means2d, covars2d, distances, depth_comp = _lidar_proj(means_c, covars_c, eps2d)\n    det_orig = covars2d[..., 0, 0] * covars2d[..., 1, 1] - covars2d[..., 0, 1] * covars2d[..., 1, 0]\n    covars2d = covars2d + torch.eye(2, device=means.device, dtype=means.dtype) * eps2d\n\n    det = covars2d[..., 0, 0] * covars2d[..., 1, 1] - covars2d[..., 0, 1] * covars2d[..., 1, 0]\n    det = det.clamp(min=1e-10)\n\n    if calc_compensations:\n        compensations = torch.sqrt(torch.clamp(det_orig / det, min=0.0))\n    else:\n        compensations = None\n\n    conics = torch.stack(\n        [\n            covars2d[..., 1, 1] / det,\n            -(covars2d[..., 0, 1] + covars2d[..., 1, 0]) / 2.0 / det,\n            covars2d[..., 0, 0] / det,\n        ],\n        dim=-1,\n    )  # [C, N, 3]\n\n    depths = distances  # [C, N]\n\n    # b = (covars2d[..., 0, 0] + covars2d[..., 1, 1]) / 2  # (...,)\n    # v1 = b + torch.sqrt(torch.clamp(b**2 - det, min=1e-6))  # (...,)\n    # radius = 3.0 * torch.sqrt(v1)  # (...,)\n    # v2 = b - torch.sqrt(torch.clamp(b**2 - det, min=0.01))  # (...,)\n    # radius = torch.ceil(3.0 * torch.sqrt(torch.max(v1, v2)))  # (...,)\n    radius = 3 * torch.sqrt(torch.stack([covars2d[..., 0, 0], covars2d[..., 1, 1]], dim=-1))\n\n    pix_vels = _compute_lidar_velocity(means_c, linear_velocity, angular_velocity, vel_c)\n    radius += pix_vels[..., :2].abs() * 0.5 * rolling_shutter_time.unsqueeze(-1).unsqueeze(-1)\n\n    valid_rolling_shutter_time_mask = (rolling_shutter_time > 0).reshape(-1, 1, 1) * torch.ones_like(pix_vels)\n    pix_vels *= valid_rolling_shutter_time_mask\n\n    valid = (det > 0) & (depths > near_plane) & (depths < far_plane)\n    radius[~valid] = 0.0\n\n    outside = (\n        (means2d[..., 1] + radius[..., 1] <= min_elevation)\n        | (means2d[..., 1] - radius[..., 1] >= max_elevation)\n        | (means2d[..., 0] + radius[..., 0] <= min_azimuth)\n        | (means2d[..., 0] - radius[..., 0] >= max_azimuth)\n    )\n    radius[outside] = 0.0\n\n    radii = radius\n    return radii, means2d, depths, conics, compensations, pix_vels, depth_comp\n\n\n@torch.no_grad()\ndef _isect_tiles(\n    means2d: Tensor,\n    radii: Tensor,\n    depths: Tensor,\n    tile_size: int,\n    tile_width: int,\n    tile_height: int,\n    sort: bool = True,\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.isect_tiles()`.\n\n    .. note::\n\n        This is a minimal implementation of the fully fused version, which has more\n        arguments. Not all arguments are supported.\n    \"\"\"\n    C, N = means2d.shape[:2]\n    device = means2d.device\n\n    # compute tiles_per_gauss\n    tile_means2d = means2d / tile_size\n    tile_radii = radii / tile_size\n    tile_mins = torch.floor(tile_means2d - tile_radii).int()\n    tile_maxs = torch.ceil(tile_means2d + tile_radii).int()\n    tile_mins[..., 0] = torch.clamp(tile_mins[..., 0], 0, tile_width)\n    tile_mins[..., 1] = torch.clamp(tile_mins[..., 1], 0, tile_height)\n    tile_maxs[..., 0] = torch.clamp(tile_maxs[..., 0], 0, tile_width)\n    tile_maxs[..., 1] = torch.clamp(tile_maxs[..., 1], 0, tile_height)\n    tiles_per_gauss = (tile_maxs - tile_mins).prod(dim=-1)  # [C, N]\n    tiles_per_gauss *= radii[..., 0] > 0.0\n\n    n_isects = tiles_per_gauss.sum().item()\n    isect_ids = torch.empty(n_isects, dtype=torch.int64, device=device)\n    flatten_ids = torch.empty(n_isects, dtype=torch.int32, device=device)\n\n    cum_tiles_per_gauss = torch.cumsum(tiles_per_gauss.flatten(), dim=0)\n    tile_n_bits = (tile_width * tile_height).bit_length()\n\n    def binary(num):\n        return \"\".join(\"{:0>8b}\".format(c) for c in struct.pack(\"!f\", num))\n\n    def kernel(cam_id, gauss_id):\n        if radii[cam_id, gauss_id, 0] <= 0.0:\n            return\n        index = cam_id * N + gauss_id\n        curr_idx = cum_tiles_per_gauss[index - 1] if index > 0 else 0\n\n        depth_id = struct.unpack(\"i\", struct.pack(\"f\", depths[cam_id, gauss_id]))[0]\n\n        tile_min = tile_mins[cam_id, gauss_id]\n        tile_max = tile_maxs[cam_id, gauss_id]\n        for y in range(tile_min[1], tile_max[1]):\n            for x in range(tile_min[0], tile_max[0]):\n                tile_id = y * tile_width + x\n                isect_ids[curr_idx] = (cam_id << 32 << tile_n_bits) | (tile_id << 32) | depth_id\n                flatten_ids[curr_idx] = index  # flattened index\n                curr_idx += 1\n\n    for cam_id in range(C):\n        for gauss_id in range(N):\n            kernel(cam_id, gauss_id)\n\n    if sort:\n        isect_ids, sort_indices = torch.sort(isect_ids)\n        flatten_ids = flatten_ids[sort_indices]\n\n    return tiles_per_gauss.int(), isect_ids, flatten_ids\n\n\n@torch.no_grad()\ndef _isect_lidar_tiles(\n    means2d: Tensor,\n    radii: Tensor,\n    depths: Tensor,\n    elev_boundaries: Tensor,\n    tile_azim_resolution: float,\n    min_azimuth: float,\n    sort: bool = True,\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.isect_tiles()`.\n\n    .. note::\n\n        This is a minimal implementation of the fully fused version, which has more\n        arguments. Not all arguments are supported.\n    \"\"\"\n    C, N = means2d.shape[:2]\n    device = means2d.device\n\n    # compute tiles_per_gauss\n    n_tiles_azim = math.ceil(360 / tile_azim_resolution)\n    azim = means2d[..., 0] - min_azimuth  # move to 0 to 360\n    azim_lower = azim - radii[..., 0]\n    azim_upper = azim + radii[..., 0]\n    tile_mins_azim = torch.floor(\n        torch.where(\n            azim_lower >= 0,\n            azim_lower / tile_azim_resolution,\n            (azim_lower % 360 - n_tiles_azim * tile_azim_resolution) / tile_azim_resolution,\n        )\n    ).int()\n    tile_maxs_azim = torch.ceil(\n        torch.where(\n            azim_upper <= 360,\n            azim_upper / tile_azim_resolution,\n            n_tiles_azim + (azim_upper % 360) / tile_azim_resolution,\n        )\n    ).int()\n\n    tile_mins_elev = (torch.searchsorted(elev_boundaries, means2d[..., 1] - radii[..., 1], side=\"right\") - 1).clamp_min(\n        0\n    )\n    tile_maxs_elev = torch.searchsorted(elev_boundaries, means2d[..., 1] + radii[..., 1], side=\"left\").clamp_max(\n        len(elev_boundaries) - 1\n    )\n\n    tile_mins = torch.stack([tile_mins_azim, tile_mins_elev], dim=-1)\n    tile_maxs = torch.stack([tile_maxs_azim, tile_maxs_elev], dim=-1)\n\n    tiles_per_gauss = (tile_maxs - tile_mins).prod(dim=-1)  # [C, N]\n    tiles_per_gauss *= radii[..., 0] > 0.0\n\n    n_isects = tiles_per_gauss.sum().item()\n    isect_ids = torch.empty(n_isects, dtype=torch.int64, device=device)\n    flatten_ids = torch.empty(n_isects, dtype=torch.int32, device=device)\n\n    cum_tiles_per_gauss = torch.cumsum(tiles_per_gauss.flatten(), dim=0)\n    n_tiles_azim = math.ceil(360 / tile_azim_resolution)\n    n_tiles_elev = len(elev_boundaries) - 1\n    tile_n_bits = (n_tiles_azim * n_tiles_elev).bit_length()\n\n    def kernel(cam_id, gauss_id):\n        if radii[cam_id, gauss_id, 0] <= 0.0:\n            return\n        index = cam_id * N + gauss_id\n        curr_idx = cum_tiles_per_gauss[index - 1] if index > 0 else 0\n\n        depth_id = struct.unpack(\"i\", struct.pack(\"f\", depths[cam_id, gauss_id]))[0]\n\n        tile_min = tile_mins[cam_id, gauss_id]\n        tile_max = tile_maxs[cam_id, gauss_id]\n        for y in range(tile_min[1], tile_max[1]):  # elevation\n            for x in range(tile_min[0], tile_max[0]):  # azimuth\n                # wrap x to 0 to n_tiles_azim - 1\n                x = x % n_tiles_azim\n                tile_id = y * n_tiles_azim + x\n\n                isect_ids[curr_idx] = (cam_id << 32 << tile_n_bits) | (tile_id << 32) | depth_id\n                flatten_ids[curr_idx] = index  # flattened index\n                curr_idx += 1\n\n    for cam_id in range(C):\n        for gauss_id in range(N):\n            kernel(cam_id, gauss_id)\n\n    if sort:\n        isect_ids, sort_indices = torch.sort(isect_ids)\n        flatten_ids = flatten_ids[sort_indices]\n\n    return tiles_per_gauss.int(), isect_ids, flatten_ids\n\n\n@torch.no_grad()\ndef _isect_offset_encode(isect_ids: Tensor, C: int, tile_width: int, tile_height: int) -> Tensor:\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.isect_offset_encode()`.\n\n    .. note::\n\n        This is a minimal implementation of the fully fused version, which has more\n        arguments. Not all arguments are supported.\n    \"\"\"\n    tile_n_bits = (tile_width * tile_height).bit_length()\n    tile_counts = torch.zeros((C, tile_height, tile_width), dtype=torch.int64, device=isect_ids.device)\n\n    isect_ids_uq, counts = torch.unique_consecutive(isect_ids >> 32, return_counts=True)\n\n    cam_ids_uq = isect_ids_uq >> tile_n_bits\n    tile_ids_uq = isect_ids_uq & ((1 << tile_n_bits) - 1)\n    tile_ids_x_uq = tile_ids_uq % tile_width\n    tile_ids_y_uq = tile_ids_uq // tile_width\n\n    tile_counts[cam_ids_uq, tile_ids_y_uq, tile_ids_x_uq] = counts\n\n    cum_tile_counts = torch.cumsum(tile_counts.flatten(), dim=0).reshape_as(tile_counts)\n    offsets = cum_tile_counts - tile_counts\n    return offsets.int()\n\n\ndef accumulate(\n    means2d: Tensor,  # [C, N, 2]\n    conics: Tensor,  # [C, N, 3]\n    opacities: Tensor,  # [C, N]\n    colors: Tensor,  # [C, N, channels]\n    pix_vels: Tensor,  # [C, N, 2]\n    rolling_shutter_time: Tensor,  # [C]\n    gaussian_ids: Tensor,  # [M]\n    pixel_ids: Tensor,  # [M]\n    camera_ids: Tensor,  # [M]\n    image_width: int,\n    image_height: int,\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Alpha compositing of 2D Gaussians in Pure Pytorch.\n\n    This function performs alpha compositing for Gaussians based on the pair of indices\n    {gaussian_ids, pixel_ids, camera_ids}, which annotates the intersection between all\n    pixels and Gaussians. These intersections can be accquired from\n    `gsplat.rasterize_to_indices_in_range`.\n\n    .. note::\n\n        This function exposes the alpha compositing process into pure Pytorch.\n        So it relies on Pytorch's autograd for the backpropagation. It is much slower\n        than our fully fused rasterization implementation and comsumes much more GPU memory.\n        But it could serve as a playground for new ideas or debugging, as no backward\n        implementation is needed.\n\n    .. warning::\n\n        This function requires the `nerfacc` package to be installed. Please install it\n        using the following command `pip install nerfacc`.\n\n    Args:\n        means2d: Gaussian means in 2D. [C, N, 2]\n        conics: Inverse of the 2D Gaussian covariance, Only upper triangle values. [C, N, 3]\n        opacities: Per-view Gaussian opacities (for example, when antialiasing is\n            enabled, Gaussian in each view would efficiently have different opacity). [C, N]\n        colors: Per-view Gaussian colors. Supports N-D features. [C, N, channels]\n        gaussian_ids: Collection of Gaussian indices to be rasterized. A flattened list of shape [M].\n        pixel_ids: Collection of pixel indices (row-major) to be rasterized. A flattened list of shape [M].\n        camera_ids: Collection of camera indices to be rasterized. A flattened list of shape [M].\n        image_width: Image width.\n        image_height: Image height.\n\n    Returns:\n        A tuple:\n\n        - **renders**: Accumulated colors. [C, image_height, image_width, channels]\n        - **alphas**: Accumulated opacities. [C, image_height, image_width, 1]\n    \"\"\"\n\n    try:\n        from nerfacc import accumulate_along_rays, render_weight_from_alpha\n    except ImportError:\n        raise ImportError(\"Please install nerfacc package: pip install nerfacc\")\n\n    C, N = means2d.shape[:2]\n    channels = colors.shape[-1]\n\n    pixel_ids_x = pixel_ids % image_width\n    pixel_ids_y = pixel_ids // image_width\n    rolling_shutter_times = rolling_shutter_time[camera_ids] * (pixel_ids_y / (image_height - 1) - 0.5)\n    pixel_coords = torch.stack([pixel_ids_x, pixel_ids_y], dim=-1) + 0.5  # [M, 2]\n    deltas = (\n        means2d[camera_ids, gaussian_ids]\n        + rolling_shutter_times.unsqueeze(-1) * pix_vels[camera_ids, gaussian_ids]\n        - pixel_coords\n    )  # [M, 2]\n    c = conics[camera_ids, gaussian_ids]  # [M, 3]\n    sigmas = (\n        0.5 * (c[:, 0] * deltas[:, 0] ** 2 + c[:, 2] * deltas[:, 1] ** 2) + c[:, 1] * deltas[:, 0] * deltas[:, 1]\n    )  # [M]\n    alphas = torch.clamp_max(opacities[camera_ids, gaussian_ids] * torch.exp(-sigmas), 0.999)\n\n    indices = camera_ids * image_height * image_width + pixel_ids\n    total_pixels = C * image_height * image_width\n\n    weights, trans = render_weight_from_alpha(alphas, ray_indices=indices, n_rays=total_pixels)\n    renders = accumulate_along_rays(\n        weights,\n        colors[camera_ids, gaussian_ids],\n        ray_indices=indices,\n        n_rays=total_pixels,\n    ).reshape(C, image_height, image_width, channels)\n    alphas = accumulate_along_rays(weights, None, ray_indices=indices, n_rays=total_pixels).reshape(\n        C, image_height, image_width, 1\n    )\n\n    return renders, alphas\n\n\ndef accumulate_lidar(\n    means2d: Tensor,  # [C, N, 2]\n    conics: Tensor,  # [C, N, 3]\n    opacities: Tensor,  # [C, N]\n    lidar_features: Tensor,  # [C, N, channels]\n    pix_vels: Tensor,  # [C, N, 3]\n    depth_compensations: Tensor,  # [C, N, 2]\n    raster_pts: Tensor,  # [C, image_height, image_width, 3] (azimuth, elevation, range)\n    gaussian_ids: Tensor,  # [M]\n    pixel_ids: Tensor,  # [M]\n    camera_ids: Tensor,  # [M]\n    image_width: int,\n    image_height: int,\n    compute_alpha_sum_until_pts: bool,\n    compute_alpha_sum_until_pts_threshold: float,\n) -> Tuple[Tensor, Tensor, Optional[Tensor]]:\n    \"\"\"Alpha compositing of 2D Gaussians in Pure Pytorch.\n\n    This function performs alpha compositing for Gaussians based on the pair of indices\n    {gaussian_ids, pixel_ids, camera_ids}, which annotates the intersection between all\n    pixels and Gaussians. These intersections can be accquired from\n    `gsplat.rasterize_to_indices_in_range`.\n\n    .. note::\n\n        This function exposes the alpha compositing process into pure Pytorch.\n        So it relies on Pytorch's autograd for the backpropagation. It is much slower\n        than our fully fused rasterization implementation and comsumes much more GPU memory.\n        But it could serve as a playground for new ideas or debugging, as no backward\n        implementation is needed.\n\n    .. warning::\n\n        This function requires the `nerfacc` package to be installed. Please install it\n        using the following command `pip install nerfacc`.\n\n    Args:\n        means2d: Gaussian means in 2D. [C, N, 2]\n        conics: Inverse of the 2D Gaussian covariance, Only upper triangle values. [C, N, 3]\n        opacities: Per-view Gaussian opacities (for example, when antialiasing is\n            enabled, Gaussian in each view would efficiently have different opacity). [C, N]\n        colors: Per-view Gaussian colors. Supports N-D features. [C, N, channels]\n        gaussian_ids: Collection of Gaussian indices to be rasterized. A flattened list of shape [M].\n        pixel_ids: Collection of pixel indices (row-major) to be rasterized. A flattened list of shape [M].\n        camera_ids: Collection of camera indices to be rasterized. A flattened list of shape [M].\n        image_width: Image width.\n        image_height: Image height.\n\n    Returns:\n        A tuple:\n\n        - **renders**: Accumulated colors. [C, image_height, image_width, channels]\n        - **alphas**: Accumulated opacities. [C, image_height, image_width, 1]\n    \"\"\"\n\n    try:\n        from nerfacc import accumulate_along_rays, render_weight_from_alpha\n    except ImportError:\n        raise ImportError(\"Please install nerfacc package: pip install nerfacc\")\n\n    C, N = means2d.shape[:2]\n    channels = lidar_features.shape[-1]\n\n    pixel_ids_x = pixel_ids % image_width\n    pixel_ids_y = pixel_ids // image_width\n    pixel_coords = raster_pts[camera_ids, pixel_ids_y, pixel_ids_x][..., :2]\n    rolling_shutter_times = raster_pts[camera_ids, pixel_ids_y, pixel_ids_x][..., -1]\n    deltas = (\n        (\n            (\n                means2d[camera_ids, gaussian_ids]\n                + rolling_shutter_times.unsqueeze(-1) * pix_vels[camera_ids, gaussian_ids, ..., :2]\n            )\n            - pixel_coords\n            + 180\n        )\n        % 360\n    ) - 180  # [M, 2]\n    deltas = torch.where(deltas < -180, deltas + 360, deltas)\n    c = conics[camera_ids, gaussian_ids]  # [M, 3]\n    sigmas = (\n        0.5 * (c[:, 0] * deltas[:, 0] ** 2 + c[:, 2] * deltas[:, 1] ** 2) + c[:, 1] * deltas[:, 0] * deltas[:, 1]\n    )  # [M]\n    alphas = torch.clamp_max(opacities[camera_ids, gaussian_ids] * torch.exp(-sigmas), 0.999)\n\n    gs_ranges = (\n        lidar_features[camera_ids, gaussian_ids, -1]\n        + torch.einsum(\"bi,bi->b\", deltas, depth_compensations[camera_ids, gaussian_ids])\n        + pix_vels[camera_ids, gaussian_ids, ..., 2] * rolling_shutter_times\n    )\n    render_features = torch.cat([lidar_features[camera_ids, gaussian_ids, :-1], gs_ranges.unsqueeze(-1)], dim=-1)\n\n    indices = camera_ids * image_height * image_width + pixel_ids\n    total_pixels = C * image_height * image_width\n\n    if compute_alpha_sum_until_pts:\n        pts_ranges = raster_pts[camera_ids, pixel_ids_y, pixel_ids_x][..., 2]\n        gs_before_point = lidar_features[camera_ids, gaussian_ids, -1] < (\n            pts_ranges - compute_alpha_sum_until_pts_threshold\n        )\n\n        alphas_until_points = alphas.clone()\n        alphas_until_points[~gs_before_point] = 0.0\n        alpha_sum_until_pts = accumulate_along_rays(\n            alphas_until_points, None, ray_indices=indices, n_rays=total_pixels\n        ).reshape(C, image_height, image_width, 1)\n\n    weights, trans = render_weight_from_alpha(alphas, ray_indices=indices, n_rays=total_pixels)\n    renders = accumulate_along_rays(\n        weights,\n        render_features,\n        ray_indices=indices,\n        n_rays=total_pixels,\n    ).reshape(C, image_height, image_width, channels)\n    alphas = accumulate_along_rays(weights, None, ray_indices=indices, n_rays=total_pixels).reshape(\n        C, image_height, image_width, 1\n    )\n\n    return renders, alphas, alpha_sum_until_pts if compute_alpha_sum_until_pts else None\n\n\ndef _rasterize_to_pixels(\n    means2d: Tensor,  # [C, N, 2]\n    conics: Tensor,  # [C, N, 3]\n    colors: Tensor,  # [C, N, channels]\n    opacities: Tensor,  # [C, N]\n    pix_vels: Tensor,  # [C, N, 2]\n    image_width: int,\n    image_height: int,\n    tile_size: int,\n    isect_offsets: Tensor,  # [C, tile_height, tile_width]\n    flatten_ids: Tensor,  # [n_isects]\n    rolling_shutter_time: Tensor,  # [C]\n    backgrounds: Optional[Tensor] = None,  # [C, channels]\n    batch_per_iter: int = 100,\n    rolling_shutter_direction: int = 1,\n):\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.rasterize_to_pixels()`.\n\n    This function rasterizes 2D Gaussians to pixels in a Pytorch-friendly way. It\n    iteratively accumulates the renderings within each batch of Gaussians. The\n    interations are controlled by `batch_per_iter`.\n\n    .. note::\n        This is a minimal implementation of the fully fused version, which has more\n        arguments. Not all arguments are supported.\n\n    .. note::\n\n        This function relies on Pytorch's autograd for the backpropagation. It is much slower\n        than our fully fused rasterization implementation and comsumes much more GPU memory.\n        But it could serve as a playground for new ideas or debugging, as no backward\n        implementation is needed.\n\n    .. warning::\n\n        This function requires the `nerfacc` package to be installed. Please install it\n        using the following command `pip install nerfacc`.\n    \"\"\"\n    from ._wrapper import rasterize_to_indices_in_range\n\n    C, N = means2d.shape[:2]\n    n_isects = len(flatten_ids)\n    device = means2d.device\n\n    render_colors = torch.zeros((C, image_height, image_width, colors.shape[-1]), device=device)\n    render_alphas = torch.zeros((C, image_height, image_width, 1), device=device)\n\n    # Split Gaussians into batches and iteratively accumulate the renderings\n    block_size = tile_size * tile_size\n    isect_offsets_fl = torch.cat([isect_offsets.flatten(), torch.tensor([n_isects], device=device)])\n    max_range = (isect_offsets_fl[1:] - isect_offsets_fl[:-1]).max().item()\n    num_batches = (max_range + block_size - 1) // block_size\n    for step in range(0, num_batches, batch_per_iter):\n        transmittances = 1.0 - render_alphas[..., 0]\n\n        # Find the M intersections between pixels and gaussians.\n        # Each intersection corresponds to a tuple (gs_id, pixel_id, camera_id)\n        gs_ids, pixel_ids, camera_ids = rasterize_to_indices_in_range(\n            step,\n            step + batch_per_iter,\n            transmittances,\n            means2d,\n            conics,\n            opacities,\n            pix_vels,\n            image_width,\n            image_height,\n            tile_size,\n            isect_offsets,\n            flatten_ids,\n            rolling_shutter_time,\n        )  # [M], [M]\n        if len(gs_ids) == 0:\n            break\n\n        # Accumulate the renderings within this batch of Gaussians.\n        renders_step, accs_step = accumulate(\n            means2d,\n            conics,\n            opacities,\n            colors,\n            pix_vels,\n            rolling_shutter_time,\n            gs_ids,\n            pixel_ids,\n            camera_ids,\n            image_width,\n            image_height,\n        )\n        render_colors = render_colors + renders_step * transmittances[..., None]\n        render_alphas = render_alphas + accs_step * transmittances[..., None]\n\n    if backgrounds is not None:\n        render_colors = render_colors + backgrounds[:, None, None, :] * (1.0 - render_alphas)\n\n    return render_colors, render_alphas\n\n\ndef _rasterize_to_points(\n    means2d: Tensor,  # [C, N, 2]\n    conics: Tensor,  # [C, N, 3]\n    lidar_features: Tensor,  # [C, N, channels]\n    opacities: Tensor,  # [C, N]\n    pix_vels: Tensor,  # [C, N, 3] or [nnz, 3]\n    depth_compensations: Tensor,  # [C, N, 2]\n    raster_pts: Tensor,  # [C, image_height, image_width, 4], azim,elev,range,time\n    image_width: int,\n    image_height: int,\n    tile_width: int,\n    tile_height: int,\n    isect_offsets: Tensor,  # [C, tile_height, tile_width]\n    flatten_ids: Tensor,  # [n_isects]\n    compute_alpha_sum_until_points: bool,\n    compute_alpha_sum_until_points_threshold: float,\n    batch_per_iter: int = 100,\n):\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.rasterize_to_points()`.\n\n    This function rasterizes 2D Gaussians to points in a Pytorch-friendly way. It\n    iteratively accumulates the renderings within each batch of Gaussians. The\n    interations are controlled by `batch_per_iter`.\n\n    .. note::\n        This is a minimal implementation of the fully fused version, which has more\n        arguments. Not all arguments are supported.\n\n    .. note::\n\n        This function relies on Pytorch's autograd for the backpropagation. It is much slower\n        than our fully fused rasterization implementation and comsumes much more GPU memory.\n        But it could serve as a playground for new ideas or debugging, as no backward\n        implementation is needed.\n\n    .. warning::\n\n        This function requires the `nerfacc` package to be installed. Please install it\n        using the following command `pip install nerfacc`.\n    \"\"\"\n    from ._wrapper import rasterize_to_indices_in_range_lidar\n\n    C, N = means2d.shape[:2]\n    n_isects = len(flatten_ids)\n    device = means2d.device\n\n    render_lidar_features = torch.zeros((C, image_height, image_width, lidar_features.shape[-1]), device=device)\n    render_alphas = torch.zeros((C, image_height, image_width, 1), device=device)\n\n    # Split Gaussians into batches and iteratively accumulate the renderings\n    block_size = tile_width * tile_height\n    isect_offsets_fl = torch.cat([isect_offsets.flatten(), torch.tensor([n_isects], device=device)])\n    max_range = (isect_offsets_fl[1:] - isect_offsets_fl[:-1]).max().item()\n    num_batches = (max_range + block_size - 1) // block_size\n    alpha_sum_until_points = torch.zeros_like(render_alphas) if compute_alpha_sum_until_points else None\n    for step in range(0, num_batches, batch_per_iter):\n        transmittances = 1.0 - render_alphas[..., 0]\n\n        # Find the M intersections between pixels and gaussians.\n        # Each intersection corresponds to a tuple (gs_id, pixel_id, camera_id)\n        gs_ids, pixel_ids, camera_ids = rasterize_to_indices_in_range_lidar(\n            step,\n            step + batch_per_iter,\n            transmittances,\n            means2d,\n            conics,\n            opacities,\n            pix_vels,\n            raster_pts,\n            image_width,\n            image_height,\n            tile_width,\n            tile_height,\n            isect_offsets,\n            flatten_ids,\n        )  # [M], [M]\n        if len(gs_ids) == 0:\n            break\n\n        # Accumulate the renderings within this batch of Gaussians.\n        renders_step, accs_step, alpha_sum_until_points_step = accumulate_lidar(\n            means2d,\n            conics,\n            opacities,\n            lidar_features,\n            pix_vels,\n            depth_compensations,\n            raster_pts,\n            gs_ids,\n            pixel_ids,\n            camera_ids,\n            image_width,\n            image_height,\n            compute_alpha_sum_until_pts=compute_alpha_sum_until_points,\n            compute_alpha_sum_until_pts_threshold=compute_alpha_sum_until_points_threshold,\n        )\n        render_lidar_features = render_lidar_features + renders_step * transmittances[..., None]\n        render_alphas = render_alphas + accs_step * transmittances[..., None]\n        if compute_alpha_sum_until_points:\n            assert alpha_sum_until_points_step is not None\n            alpha_sum_until_points += alpha_sum_until_points_step\n\n    return render_lidar_features, render_alphas, alpha_sum_until_points\n\n\ndef _eval_sh_bases_fast(basis_dim: int, dirs: Tensor):\n    \"\"\"\n    Evaluate spherical harmonics bases at unit direction for high orders\n    using approach described by\n    Efficient Spherical Harmonic Evaluation, Peter-Pike Sloan, JCGT 2013\n    https://jcgt.org/published/0002/02/06/\n\n\n    :param basis_dim: int SH basis dim. Currently, only 1-25 square numbers supported\n    :param dirs: torch.Tensor (..., 3) unit directions\n\n    :return: torch.Tensor (..., basis_dim)\n\n    See reference C++ code in https://jcgt.org/published/0002/02/06/code.zip\n    \"\"\"\n    result = torch.empty((*dirs.shape[:-1], basis_dim), dtype=dirs.dtype, device=dirs.device)\n\n    result[..., 0] = 0.2820947917738781\n\n    if basis_dim <= 1:\n        return result\n\n    x, y, z = dirs.unbind(-1)\n\n    fTmpA = -0.48860251190292\n    result[..., 2] = -fTmpA * z\n    result[..., 3] = fTmpA * x\n    result[..., 1] = fTmpA * y\n\n    if basis_dim <= 4:\n        return result\n\n    z2 = z * z\n    fTmpB = -1.092548430592079 * z\n    fTmpA = 0.5462742152960395\n    fC1 = x * x - y * y\n    fS1 = 2 * x * y\n    result[..., 6] = 0.9461746957575601 * z2 - 0.3153915652525201\n    result[..., 7] = fTmpB * x\n    result[..., 5] = fTmpB * y\n    result[..., 8] = fTmpA * fC1\n    result[..., 4] = fTmpA * fS1\n\n    if basis_dim <= 9:\n        return result\n\n    fTmpC = -2.285228997322329 * z2 + 0.4570457994644658\n    fTmpB = 1.445305721320277 * z\n    fTmpA = -0.5900435899266435\n    fC2 = x * fC1 - y * fS1\n    fS2 = x * fS1 + y * fC1\n    result[..., 12] = z * (1.865881662950577 * z2 - 1.119528997770346)\n    result[..., 13] = fTmpC * x\n    result[..., 11] = fTmpC * y\n    result[..., 14] = fTmpB * fC1\n    result[..., 10] = fTmpB * fS1\n    result[..., 15] = fTmpA * fC2\n    result[..., 9] = fTmpA * fS2\n\n    if basis_dim <= 16:\n        return result\n\n    fTmpD = z * (-4.683325804901025 * z2 + 2.007139630671868)\n    fTmpC = 3.31161143515146 * z2 - 0.47308734787878\n    fTmpB = -1.770130769779931 * z\n    fTmpA = 0.6258357354491763\n    fC3 = x * fC2 - y * fS2\n    fS3 = x * fS2 + y * fC2\n    result[..., 20] = 1.984313483298443 * z2 * (1.865881662950577 * z2 - 1.119528997770346) + -1.006230589874905 * (\n        0.9461746957575601 * z2 - 0.3153915652525201\n    )\n    result[..., 21] = fTmpD * x\n    result[..., 19] = fTmpD * y\n    result[..., 22] = fTmpC * fC1\n    result[..., 18] = fTmpC * fS1\n    result[..., 23] = fTmpB * fC2\n    result[..., 17] = fTmpB * fS2\n    result[..., 24] = fTmpA * fC3\n    result[..., 16] = fTmpA * fS3\n    return result\n\n\ndef _spherical_harmonics(\n    degree: int,\n    dirs: torch.Tensor,  # [..., 3]\n    coeffs: torch.Tensor,  # [..., K, 3]\n):\n    \"\"\"Pytorch implementation of `gsplat.cuda._wrapper.spherical_harmonics()`.\"\"\"\n    dirs = F.normalize(dirs, p=2, dim=-1)\n    num_bases = (degree + 1) ** 2\n    bases = torch.zeros_like(coeffs[..., 0])\n    bases[..., :num_bases] = _eval_sh_bases_fast(num_bases, dirs)\n    return (bases[..., None] * coeffs).sum(dim=-2)\n"
  },
  {
    "path": "gsplat/cuda/_wrapper.py",
    "content": "from typing import Callable, Optional, Tuple\n\nimport torch\nfrom torch import Tensor\n\n\ndef _make_lazy_cuda_func(name: str) -> Callable:\n    def call_cuda(*args, **kwargs):\n        # pylint: disable=import-outside-toplevel\n        from ._backend import _C\n\n        return getattr(_C, name)(*args, **kwargs)\n\n    return call_cuda\n\n\ndef spherical_harmonics(\n    degrees_to_use: int,\n    dirs: Tensor,  # [..., 3]\n    coeffs: Tensor,  # [..., K, 3]\n    masks: Optional[Tensor] = None,\n) -> Tensor:\n    \"\"\"Computes spherical harmonics.\n\n    Args:\n        degrees_to_use: The degree to be used.\n        dirs: Directions. [..., 3]\n        coeffs: Coefficients. [..., K, 3]\n        masks: Optional boolen masks to skip some computation. [...,] Default: None.\n\n    Returns:\n        Spherical harmonics. [..., 3]\n    \"\"\"\n    assert (degrees_to_use + 1) ** 2 <= coeffs.shape[-2], coeffs.shape\n    assert dirs.shape[:-1] == coeffs.shape[:-2], (dirs.shape, coeffs.shape)\n    assert dirs.shape[-1] == 3, dirs.shape\n    assert coeffs.shape[-1] == 3, coeffs.shape\n    if masks is not None:\n        assert masks.shape == dirs.shape[:-1], masks.shape\n        masks = masks.contiguous()\n    return _SphericalHarmonics.apply(\n        degrees_to_use, dirs.contiguous(), coeffs.contiguous(), masks\n    )\n\n\ndef quat_scale_to_covar_preci(\n    quats: Tensor,  # [N, 4],\n    scales: Tensor,  # [N, 3],\n    compute_covar: bool = True,\n    compute_preci: bool = True,\n    triu: bool = False,\n) -> Tuple[Optional[Tensor], Optional[Tensor]]:\n    \"\"\"Converts quaternions and scales to covariance and precision matrices.\n\n    Args:\n        quats: Quaternions (No need to be normalized). [N, 4]\n        scales: Scales. [N, 3]\n        compute_covar: Whether to compute covariance matrices. Default: True. If False,\n            the returned covariance matrices will be None.\n        compute_preci: Whether to compute precision matrices. Default: True. If False,\n            the returned precision matrices will be None.\n        triu: If True, the return matrices will be upper triangular. Default: False.\n\n    Returns:\n        A tuple:\n\n        - **Covariance matrices**. If `triu` is True the returned shape is [N, 6], otherwise [N, 3, 3].\n        - **Precision matrices**. If `triu` is True the returned shape is [N, 6], otherwise [N, 3, 3].\n    \"\"\"\n    assert quats.dim() == 2 and quats.size(1) == 4, quats.size()\n    assert scales.dim() == 2 and scales.size(1) == 3, scales.size()\n    quats = quats.contiguous()\n    scales = scales.contiguous()\n    covars, precis = _QuatScaleToCovarPreci.apply(\n        quats, scales, compute_covar, compute_preci, triu\n    )\n    return covars if compute_covar else None, precis if compute_preci else None\n\n\ndef persp_proj(\n    means: Tensor,  # [C, N, 3]\n    covars: Tensor,  # [C, N, 3, 3]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Perspective projection on Gaussians.\n\n    Args:\n        means: Gaussian means. [C, N, 3]\n        covars: Gaussian covariances. [C, N, 3, 3]\n        Ks: Camera intrinsics. [C, 3, 3]\n        width: Image width.\n        height: Image height.\n\n    Returns:\n        A tuple:\n\n        - **Projected means**. [C, N, 2]\n        - **Projected covariances**. [C, N, 2, 2]\n    \"\"\"\n    C, N, _ = means.shape\n    assert means.shape == (C, N, 3), means.size()\n    assert covars.shape == (C, N, 3, 3), covars.size()\n    assert Ks.shape == (C, 3, 3), Ks.size()\n    means = means.contiguous()\n    covars = covars.contiguous()\n    Ks = Ks.contiguous()\n    return _PerspProj.apply(means, covars, Ks, width, height)\n\ndef compute_pix_velocity(p_view: Tensor, # [C, N, 3]\n                           lin_vel: Tensor, # [C, 3]\n                           ang_vel: Tensor, # [C, 3]\n                           velocities: Tensor, # [C, N, 3]\n                           Ks: Tensor, #[C, 3, 3]\n                           width: int,\n                           height: int,\n) -> Tensor:\n    \"\"\"Compute velocity of Gaussians in pixel coordinates.\n    \n    Args:\n        p_view: Gaussian means in camera coordinates. [C, N, 3]\n        lin_vel: Linear velocity of the camera. [C, 3]\n        ang_vel: Angular velocity of the camera. [C, 3]\n        velocities: Gaussian velocities in world coordinates. [C, N, 3]\n        Ks: Camera intrinsics. [C, 3, 3]\n        width: Image width.\n        height: Image height.\n        \n    Returns:\n        Gaussian velocity in pixel coordinates. [C, N, 2]\n    \"\"\"\n    C, N, _ = p_view.shape\n    assert p_view.shape == (C, N, 3), p_view.size()\n    assert lin_vel.shape == (C, 3), lin_vel.size()\n    assert ang_vel.shape == (C, 3), ang_vel.size()\n    assert velocities.shape == (C, N, 3), velocities.size()\n    assert Ks.shape == (C, 3, 3), Ks.size()\n    p_view = p_view.contiguous()\n    lin_vel = lin_vel.contiguous()\n    ang_vel = ang_vel.contiguous()\n    velocities = velocities.contiguous()\n    Ks = Ks.contiguous()\n    return _ComputePixVelocity.apply(p_view, lin_vel, ang_vel, velocities, Ks, width, height)\n\n\ndef world_to_cam(\n    means: Tensor,  # [N, 3]\n    covars: Tensor,  # [N, 3, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Transforms Gaussians from world to camera coordinate system.\n\n    Args:\n        means: Gaussian means. [N, 3]\n        covars: Gaussian covariances. [N, 3, 3]\n        viewmats: World-to-camera transformation matrices. [C, 4, 4]\n\n    Returns:\n        A tuple:\n\n        - **Gaussian means in camera coordinate system**. [C, N, 3]\n        - **Gaussian covariances in camera coordinate system**. [C, N, 3, 3]\n    \"\"\"\n    C = viewmats.size(0)\n    N = means.size(0)\n    assert means.size() == (N, 3), means.size()\n    assert covars.size() == (N, 3, 3), covars.size()\n    assert viewmats.size() == (C, 4, 4), viewmats.size()\n    means = means.contiguous()\n    covars = covars.contiguous()\n    viewmats = viewmats.contiguous()\n    return _WorldToCam.apply(means, covars, viewmats)\n\ndef lidar_proj(means: Tensor, # [C, N, 3]\n               covars: Tensor, # [C, N, 3, 3]\n               eps2d: float\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Transform Gaussians from Euclidean to spherical coordinates, only azimuth and elevation.\n    Note that elevation is defined as the angle from the horizontal xy-plane.\n    \n    Args:\n        means: Gaussian means. [C, N, 3]\n        covars: Gaussian covariances. [C, N, 3, 3]\n        eps2d: A epsilon added to the 2D covariance.\n        \n    Returns:\n        A tuple:\n        \n        - **Gaussian means in spherical coordinate system**. [C, N, 2]\n        - **Gaussian covariances in spherical coordinate system**. [C, N, 2, 2]\n        - **Depth compensations**. [C, N, 2]\n    \"\"\"\n    C, N, _ = means.shape\n    assert means.shape == (C, N, 3), means.size()\n    assert covars.shape == (C, N, 3, 3), covars.size()\n    means = means.contiguous()\n    covars = covars.contiguous()\n    return _LidarProj.apply(means, covars, eps2d)\n\ndef compute_lidar_velocity(p_view: Tensor, # [C, N, 3]\n                           lin_vel: Tensor, # [C, 3]\n                           ang_vel: Tensor, # [C, 3]\n                           velocities: Tensor # [C, N, 3]\n) -> Tensor:\n    \"\"\"Compute velocity of Gaussians in spherical coordinates. Note that elevation is defined as the angle\n    from the horizontal xy-plane.\n    \n    Args:\n        p_view: Gaussian means in lidar coordinates. [C, N, 3]\n        lin_vel: Linear velocity of the lidar. [C, 3]\n        ang_vel: Angular velocity of the lidar. [C, 3]\n        velocities: Gaussian velocities in world coordinates. [C, N, 3]\n        \n    Returns:\n        Gaussian velocity in spherical coordinates. [C, N, 3]\n    \"\"\"\n    C, N, _ = p_view.shape\n    assert p_view.shape == (C, N, 3), p_view.size()\n    assert lin_vel.shape == (C, 3), lin_vel.size()\n    assert ang_vel.shape == (C, 3), ang_vel.size()\n    assert velocities.shape == (C, N, 3), velocities.size()\n    p_view = p_view.contiguous()\n    lin_vel = lin_vel.contiguous()\n    ang_vel = ang_vel.contiguous()\n    velocities = velocities.contiguous()\n    return _ComputeLidarVelocity.apply(p_view, lin_vel, ang_vel, velocities)\n\n\ndef fully_fused_projection(\n    means: Tensor,  # [N, 3]\n    covars: Optional[Tensor],  # [N, 6] or None\n    quats: Optional[Tensor],  # [N, 4] or None\n    scales: Optional[Tensor],  # [N, 3] or None\n    velocities: Optional[Tensor],  # [N, 3] or None\n    viewmats: Tensor,  # [C, 4, 4]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n    linear_velocity: Tensor, # [C, 3]\n    angular_velocity: Tensor, # [C, 3]\n    rolling_shutter_time: Tensor, # [C]\n    eps2d: float = 0.3,\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    radius_clip: float = 0.0,\n    packed: bool = False,\n    sparse_grad: bool = False,\n    calc_compensations: bool = False,\n) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]:\n    \"\"\"Projects Gaussians to 2D.\n\n    This function fuse the process of computing covariances\n    (:func:`quat_scale_to_covar_preci()`), transforming to camera space (:func:`world_to_cam()`),\n    and perspective projection (:func:`persp_proj()`).\n\n    .. note::\n\n        During projection, we ignore the Gaussians that are outside of the camera frustum.\n        So not all the elements in the output tensors are valid. The output `radii` could serve as\n        an indicator, in which zero radii means the corresponding elements are invalid in\n        the output tensors and will be ignored in the next rasterization process. If `packed=True`,\n        the output tensors will be packed into a flattened tensor, in which all elements are valid.\n        In this case, a `camera_ids` tensor and `gaussian_ids` tensor will be returned to indicate the\n        row (camera) and column (Gaussian) indices of the packed flattened tensor, which is essentially\n        following the COO sparse tensor format.\n\n    .. note::\n\n        This functions supports projecting Gaussians with either covariances or {quaternions, scales},\n        which will be converted to covariances internally in a fused CUDA kernel. Either `covars` or\n        {`quats`, `scales`} should be provided.\n\n    Args:\n        means: Gaussian means. [N, 3]\n        covars: Gaussian covariances (flattened upper triangle). [N, 6] Optional.\n        quats: Quaternions (No need to be normalized). [N, 4] Optional.\n        scales: Scales. [N, 3] Optional.\n        velocities: Gaussian velocities. [N, 3] Optional.\n        viewmats: Camera-to-world matrices. [C, 4, 4]\n        Ks: Camera intrinsics. [C, 3, 3]\n        width: Image width.\n        height: Image height.\n        linear_velocity: Linear velocity of the camera. [C, 3]\n        angular_velocity: Angular velocity of the camera. [C, 3]\n        rolling_shutter_time: Rolling shutter time of the camera. [C]\n        eps2d: A epsilon added to the 2D covariance for numerical stability. Default: 0.3.\n        near_plane: Near plane distance. Default: 0.01.\n        far_plane: Far plane distance. Default: 1e10.\n        radius_clip: Gaussians with projected radii smaller than this value will be ignored. Default: 0.0.\n        packed: If True, the output tensors will be packed into a flattened tensor. Default: False.\n        sparse_grad: This is only effective when `packed` is True. If True, during backward the gradients\n          of {`means`, `covars`, `quats`, `scales`} will be a sparse Tensor in COO layout. Default: False.\n        calc_compensations: If True, a view-dependent opacity compensation factor will be computed, which\n          is useful for anti-aliasing. Default: False.\n\n    Returns:\n        A tuple:\n\n        If `packed` is True:\n\n        - **camera_ids**. The row indices of the projected Gaussians. Int32 tensor of shape [nnz].\n        - **gaussian_ids**. The column indices of the projected Gaussians. Int32 tensor of shape [nnz].\n        - **radii**. The maximum radius of the projected Gaussians in pixel unit. Int32 tensor of shape [nnz, 2].\n        - **means**. Projected Gaussian means in 2D. [nnz, 2]\n        - **depths**. The z-depth of the projected Gaussians. [nnz]\n        - **conics**. Inverse of the projected covariances. Return the flattend upper triangle with [nnz, 3]\n        - **compensations**. The view-dependent opacity compensation factor. [nnz]\n        - **pix_vels**. The velocities of Gaussians in 2D coordiantes. [nnz, 2]\n\n        If `packed` is False:\n\n        - **radii**. The maximum radius of the projected Gaussians in pixel unit. Int32 tensor of shape [C, N, 2].\n        - **means**. Projected Gaussian means in 2D. [C, N, 2]\n        - **depths**. The z-depth of the projected Gaussians. [C, N]\n        - **conics**. Inverse of the projected covariances. Return the flattend upper triangle with [C, N, 3]\n        - **compensations**. The view-dependent opacity compensation factor. [C, N]\n        - **pix_vels**. The velocities of Gaussians in 2D coordiantes. [C, N, 2]\n    \"\"\"\n    C = viewmats.size(0)\n    N = means.size(0)\n    assert means.size() == (N, 3), means.size()\n    assert viewmats.size() == (C, 4, 4), viewmats.size()\n    assert Ks.size() == (C, 3, 3), Ks.size()\n    assert linear_velocity.size() == (C, 3), linear_velocity.size()\n    assert angular_velocity.size() == (C, 3), angular_velocity.size()\n    assert rolling_shutter_time.size() == (C,), rolling_shutter_time.size()\n    means = means.contiguous()\n    if covars is not None:\n        assert covars.size() == (N, 6), covars.size()\n        covars = covars.contiguous()\n    else:\n        assert quats is not None, \"covars or quats is required\"\n        assert scales is not None, \"covars or scales is required\"\n        assert quats.size() == (N, 4), quats.size()\n        assert scales.size() == (N, 3), scales.size()\n        quats = quats.contiguous()\n        scales = scales.contiguous()\n    if velocities is not None:\n        assert velocities.size() == (N, 3), velocities.size()\n        velocities = velocities.contiguous()\n    if sparse_grad:\n        assert packed, \"sparse_grad is only supported when packed is True\"\n\n    viewmats = viewmats.contiguous()\n    Ks = Ks.contiguous()\n    if packed:\n        return _FullyFusedProjectionPacked.apply(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            sparse_grad,\n            calc_compensations,\n        )\n    else:\n        return _FullyFusedProjection.apply(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            calc_compensations,\n        )\n\n\ndef fully_fused_lidar_projection(\n    means: Tensor,  # [N, 3]\n    covars: Optional[Tensor],  # [N, 6] or None\n    quats: Optional[Tensor],  # [N, 4] or None\n    scales: Optional[Tensor],  # [N, 3] or None\n    velocities: Optional[Tensor],  # [N, 3] or None\n    viewmats: Tensor,  # [C, 4, 4]\n    linear_velocity: Tensor, # [C, 3]\n    angular_velocity: Tensor, # [C, 3]\n    rolling_shutter_time: Tensor, # [C]\n    min_elevation: float = -45,\n    max_elevation: float = 45,\n    min_azimuth: float = -180,\n    max_azimuth: float = 180,\n    eps2d: float = 0.01,\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    radius_clip: float = 0.0,\n    packed: bool = False,\n    sparse_grad: bool = False,\n    calc_compensations: bool = False,\n) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor]:\n    \"\"\"Projects Gaussians to 2D.\n\n    This function fuse the process of computing covariances\n    (:func:`quat_scale_to_covar_preci()`), transforming to lidar space (:func:`world_to_cam()`),\n    and spherical projection (:func:`lidar_proj()`).\n\n    .. note::\n\n        During projection, we ignore the Gaussians that are outside of the lidar frustum.\n        This frustum is defined by the elevation angle (angle from horizontal xy-plane) and azimuth\n        angle (angle around the z-axis, counter-clockwise from the x-axis).\n        So not all the elements in the output tensors are valid. The output `radii` could serve as\n        an indicator, in which zero radii means the corresponding elements are invalid in\n        the output tensors and will be ignored in the next rasterization process. If `packed=True`,\n        the output tensors will be packed into a flattened tensor, in which all elements are valid.\n        In this case, a `camera_ids` tensor and `gaussian_ids` tensor will be returned to indicate the\n        row (lidar) and column (Gaussian) indices of the packed flattened tensor, which is essentially\n        following the COO sparse tensor format.\n\n    .. note::\n\n        This functions supports projecting Gaussians with either covariances or {quaternions, scales},\n        which will be converted to covariances internally in a fused CUDA kernel. Either `covars` or\n        {`quats`, `scales`} should be provided.\n\n    Args:\n        means: Gaussian means. [N, 3]\n        covars: Gaussian covariances (flattened upper triangle). [N, 6] Optional.\n        quats: Quaternions (No need to be normalized). [N, 4] Optional.\n        scales: Scales. [N, 3] Optional.\n        viewmats: Lidar-to-world matrices. [C, 4, 4]\n        velocities: Gaussian velocities. [N, 3] Optional.\n        linear_velocity: Linear velocity of the Lidar. [C, 3]\n        angular_velocity: Angular velocity of the Lidar. [C, 3]\n        rolling_shutter_time: Rolling shutter time of the Lidar. [C]\n        min_elevation: Minimum elevation angle in degrees. Default: -45.\n        max_elevation: Maximum elevation angle in degrees. Default: 45.\n        min_azimuth: Minimum azimuth angle in degrees. Default: -180.\n        max_azimuth: Maximum azimuth angle in degrees. Default: 180.\n        eps2d: A epsilon added to the 2D covariance for numerical stability. Default: 0.01.\n        near_plane: Near plane distance. Default: 0.01.\n        far_plane: Far plane distance. Default: 1e10.\n        radius_clip: Gaussians with projected radii smaller than this value will be ignored. Default: 0.0.\n        packed: If True, the output tensors will be packed into a flattened tensor. Default: False.\n        sparse_grad: This is only effective when `packed` is True. If True, during backward the gradients\n          of {`means`, `covars`, `quats`, `scales`} will be a sparse Tensor in COO layout. Default: False.\n        calc_compensations: If True, a view-dependent opacity compensation factor will be computed, which\n          is useful for anti-aliasing. Default: False.\n\n    Returns:\n        A tuple:\n\n        If `packed` is True:\n\n        - **camera_ids**. The row indices of the projected Gaussians. Int32 tensor of shape [nnz].\n        - **gaussian_ids**. The column indices of the projected Gaussians. Int32 tensor of shape [nnz].\n        - **radii**. The maximum radius of the projected Gaussians in spherical coords, degrees. Float32 tensor of shape [nnz, 2].\n        - **means**. Projected Gaussian means in 2D. [nnz, 2]\n        - **depths**. The Euclidian distance of the projected Gaussians. [nnz]\n        - **conics**. Inverse of the projected covariances. Return the flattend upper triangle with [nnz, 3]\n        - **compensations**. The view-dependent opacity compensation factor. [nnz]\n        - **pix_vels**. The velocities of Gaussians in 2D coordiantes. [nnz, 2]\n        - **depth_compensations**. The depth compensation factor, i.e., how the depth changes with angular coordinates due to Gaussian orientation. [nnz]\n\n        If `packed` is False:\n\n        - **radii**. The maximum radius of the projected Gaussians in spherical coords, degrees. Float32 tensor of shape [C, N, 2].\n        - **means**. Projected Gaussian means in 2D. [C, N, 2]\n        - **depths**. The Euclidian distance of the projected Gaussians. [C, N]\n        - **conics**. Inverse of the projected covariances. Return the flattend upper triangle with [C, N, 3]\n        - **compensations**. The view-dependent opacity compensation factor. [C, N]\n        - **pix_vels**. The velocities of Gaussians in 2D coordiantes. [C, N, 2]\n        - **depth_compensations**. The depth compensation factor, i.e., how the depth changes with angular coordinates due to Gaussian orientation. [C, N]\n    \"\"\"\n    C = viewmats.size(0)\n    N = means.size(0)\n    assert means.size() == (N, 3), means.size()\n    assert viewmats.size() == (C, 4, 4), viewmats.size()\n    means = means.contiguous()\n    if covars is not None:\n        assert covars.size() == (N, 6), covars.size()\n        covars = covars.contiguous()\n    else:\n        assert quats is not None, \"covars or quats is required\"\n        assert scales is not None, \"covars or scales is required\"\n        assert quats.size() == (N, 4), quats.size()\n        assert scales.size() == (N, 3), scales.size()\n        quats = quats.contiguous()\n        scales = scales.contiguous()\n    if velocities is not None:\n        assert velocities.size() == (N, 3), velocities.size()\n        velocities = velocities.contiguous()\n    if sparse_grad:\n        assert packed, \"sparse_grad is only supported when packed is True\"\n\n    viewmats = viewmats.contiguous()\n    if packed:\n        raise NotImplementedError(\"FullyFusedLidarProjectionPacked is not implemented yet\")\n    else:\n        return _FullyFusedLidarProjection.apply(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            calc_compensations,\n        )\n\n@torch.no_grad()\ndef isect_tiles(\n    means2d: Tensor,  # [C, N, 2] or [nnz, 2]\n    radii: Tensor,  # [C, N, 2] or [nnz, 2]\n    depths: Tensor,  # [C, N] or [nnz]\n    tile_size: int,\n    tile_width: int,\n    tile_height: int,\n    sort: bool = True,\n    packed: bool = False,\n    n_cameras: Optional[int] = None,\n    camera_ids: Optional[Tensor] = None,\n    gaussian_ids: Optional[Tensor] = None,\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Maps projected Gaussians to intersecting tiles.\n\n    Args:\n        means2d: Projected Gaussian means. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        radii: Maximum radii of the projected Gaussians. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        depths: Z-depth of the projected Gaussians. [C, N] if packed is False, [nnz] if packed is True.\n        tile_size: Tile size.\n        tile_width: Tile width.\n        tile_height: Tile height.\n        sort: If True, the returned intersections will be sorted by the intersection ids. Default: True.\n        packed: If True, the input tensors are packed. Default: False.\n        n_cameras: Number of cameras. Required if packed is True.\n        camera_ids: The row indices of the projected Gaussians. Required if packed is True.\n        gaussian_ids: The column indices of the projected Gaussians. Required if packed is True.\n\n    Returns:\n        A tuple:\n\n        - **Tiles per Gaussian**. The number of tiles intersected by each Gaussian.\n          Int32 [C, N] if packed is False, Int32 [nnz] if packed is True.\n        - **Intersection ids**. Each id is an 64-bit integer with the following\n          information: camera_id (Xc bits) | tile_id (Xt bits) | depth (32 bits).\n          Xc and Xt are the maximum number of bits required to represent the camera and\n          tile ids, respectively. Int64 [n_isects]\n        - **Flatten ids**. The global flatten indices in [C * N] or [nnz] (packed). [n_isects]\n    \"\"\"\n    if packed:\n        nnz = means2d.size(0)\n        assert means2d.shape == (nnz, 2), means2d.size()\n        assert radii.shape == (nnz, 2), radii.size()\n        assert depths.shape == (nnz,), depths.size()\n        assert camera_ids is not None, \"camera_ids is required if packed is True\"\n        assert gaussian_ids is not None, \"gaussian_ids is required if packed is True\"\n        assert n_cameras is not None, \"n_cameras is required if packed is True\"\n        camera_ids = camera_ids.contiguous()\n        gaussian_ids = gaussian_ids.contiguous()\n        C = n_cameras\n\n    else:\n        C, N, _ = means2d.shape\n        assert means2d.shape == (C, N, 2), means2d.size()\n        assert radii.shape == (C, N, 2), radii.size()\n        assert depths.shape == (C, N), depths.size()\n\n    tiles_per_gauss, isect_ids, flatten_ids = _make_lazy_cuda_func(\"isect_tiles\")(\n        means2d.contiguous(),\n        radii.contiguous(),\n        depths.contiguous(),\n        camera_ids,\n        gaussian_ids,\n        C,\n        tile_size,\n        tile_width,\n        tile_height,\n        sort,\n        True,  # DoubleBuffer: memory efficient radixsort\n    )\n    return tiles_per_gauss, isect_ids, flatten_ids\n\n@torch.no_grad()\ndef isect_lidar_tiles(\n    means2d: Tensor,  # [C, N, 2] or [nnz, 2]\n    radii: Tensor,  # [C, N, 2] or [nnz, 2]\n    depths: Tensor,  # [C, N] or [nnz]\n    elev_boundaries: Tensor,\n    tile_azim_resolution: float,\n    min_azim: float,\n    sort: bool = True,\n    packed: bool = False,\n    n_cameras: Optional[int] = None,\n    camera_ids: Optional[Tensor] = None,\n    gaussian_ids: Optional[Tensor] = None,\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Maps projected Gaussians to intersecting tiles.\n\n    Args:\n        means2d: Projected Gaussian means. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        radii: Maximum radii of the projected Gaussians. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        depths: Euclidian distance of the projected Gaussians. [C, N] if packed is False, [nnz] if packed is True.\n        elev_boundaries: Elevation boundaries, defining borders between lidar channels. [n_elev]\n        tile_azim_resolution: Tile azimuth resolution.\n        min_azim: Minimum azimuth angle in degrees.\n        sort: If True, the returned intersections will be sorted by the intersection ids. Default: True.\n        packed: If True, the input tensors are packed. Default: False.\n        n_cameras: Number of lidars. Required if packed is True.\n        camera_ids: The row indices of the projected Gaussians. Required if packed is True.\n        gaussian_ids: The column indices of the projected Gaussians. Required if packed is True.\n\n    Returns:\n        A tuple:\n\n        - **Tiles per Gaussian**. The number of tiles intersected by each Gaussian.\n          Int32 [C, N] if packed is False, Int32 [nnz] if packed is True.\n        - **Intersection ids**. Each id is an 64-bit integer with the following\n          information: camera_id (Xc bits) | tile_id (Xt bits) | depth (32 bits).\n          Xc and Xt are the maximum number of bits required to represent the camera and\n          tile ids, respectively. Int64 [n_isects]\n        - **Flatten ids**. The global flatten indices in [C * N] or [nnz] (packed). [n_isects]\n    \"\"\"\n    if packed:\n        nnz = means2d.size(0)\n        assert means2d.shape == (nnz, 2), means2d.size()\n        assert radii.shape == (nnz, 2), radii.size()\n        assert depths.shape == (nnz,), depths.size()\n        assert camera_ids is not None, \"camera_ids is required if packed is True\"\n        assert gaussian_ids is not None, \"gaussian_ids is required if packed is True\"\n        assert n_cameras is not None, \"n_cameras is required if packed is True\"\n        camera_ids = camera_ids.contiguous()\n        gaussian_ids = gaussian_ids.contiguous()\n        C = n_cameras\n\n    else:\n        C, N, _ = means2d.shape\n        assert means2d.shape == (C, N, 2), means2d.size()\n        assert radii.shape == (C, N, 2), radii.size()\n        assert depths.shape == (C, N), depths.size()\n\n    tiles_per_gauss, isect_ids, flatten_ids = _make_lazy_cuda_func(\"isect_lidar_tiles\")(\n        means2d.contiguous(),\n        radii.contiguous(),\n        depths.contiguous(),\n        camera_ids,\n        gaussian_ids,\n        C,\n        elev_boundaries.contiguous(),\n        tile_azim_resolution,\n        min_azim,\n        sort,\n        True,  # DoubleBuffer: memory efficient radixsort\n    )\n    return tiles_per_gauss, isect_ids, flatten_ids\n\n\n@torch.no_grad()\ndef isect_offset_encode(\n    isect_ids: Tensor, n_cameras: int, tile_width: int, tile_height: int\n) -> Tensor:\n    \"\"\"Encodes intersection ids to offsets.\n\n    Args:\n        isect_ids: Intersection ids. [n_isects]\n        n_cameras: Number of cameras.\n        tile_width: Tile width.\n        tile_height: Tile height.\n\n    Returns:\n        Offsets. [C, tile_height, tile_width]\n    \"\"\"\n    return _make_lazy_cuda_func(\"isect_offset_encode\")(\n        isect_ids.contiguous(), n_cameras, tile_width, tile_height\n    )\n\n@torch.no_grad()\ndef map_points_to_lidar_tiles(\n    points2d: Tensor,  # [C, N, 2] or [nnz, 2]\n    elev_boundaries: Tensor,\n    tile_azim_resolution: float,\n    min_azim: float,\n    packed: bool = False,\n    n_cameras: Optional[int] = None,\n    camera_ids: Optional[Tensor] = None,\n    sort: bool = True,\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Maps projected points to intersecting tiles, similar to isect_lidar_tiles, but assume\n    infinitesimal radius.\n    This is used for the purpose of mapping points to tiles, e.g., for rendering.\n\n    Args:\n        points2d: Projected points. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        elev_boundaries: Elevation boundaries, defining borders between lidar channels. [n_elev]\n        tile_azim_resolution: Tile azimuth resolution.\n        min_azim: Minimum azimuth angle in degrees.\n        packed: If True, the input tensors are packed. Default: False.\n        n_cameras: Number of cameras. Required if packed is True.\n        camera_ids: The row indices of the projected points. Required if packed is True.\n        sort: If True, the returned intersections will be sorted by the intersection ids. Default: True.\n    Returns:\n        A tuple:\n\n        - **Tiles per point**. The number of tiles intersected by each point.\n          Int32 [C, N] if packed is False, Int32 [nnz] if packed is True.\n        - **Intersection ids**. Each id is an 64-bit integer with the following\n          information: camera_id (Xc bits) | tile_id (Xt bits) | depth (32 bits).\n          Xc and Xt are the maximum number of bits required to represent the camera and\n          tile ids, respectively. Int64 [n_isects]\n        - **Flatten ids**. The global flatten indices in [C * N] or [nnz] (packed). [n_isects]\n    \"\"\"\n    if packed:\n        nnz = points2d.size(0)\n        assert points2d.shape == (nnz, 2), points2d.size()\n        assert camera_ids is not None, \"camera_ids is required if packed is True\"\n        assert n_cameras is not None, \"n_cameras is required if packed is True\"\n        camera_ids = camera_ids.contiguous()\n        C = n_cameras\n\n    else:\n        C, N, _ = points2d.shape\n        assert points2d.shape == (C, N, 2), points2d.size()\n        \n    tile_ids = _make_lazy_cuda_func(\"map_points_to_lidar_tiles\")(\n        points2d.contiguous(),\n        camera_ids,\n        C,\n        elev_boundaries.contiguous(),\n        tile_azim_resolution,\n        min_azim,\n        sort,\n        True  # DoubleBuffer: memory efficient radixsort\n    )\n    return tile_ids\n\n@torch.no_grad()\ndef points_mapping_offset_encode(\n    point_ids: Tensor, n_lidars: int, tile_width: int, tile_height: int\n) -> Tensor:\n    \"\"\"Encodes intersection ids to offsets, similar to isec_offset_encode, but for points.\n\n    Args:\n        isect_ids: Intersection ids. [n_isects]\n        n_lidars: Number of lidars.\n        tile_width: Number of tiles in the width direction.\n        tile_height: Number of tiles in the height direction.\n\n    Returns:\n        Offsets. [C, tile_height, tile_width]\n    \"\"\"\n    return _make_lazy_cuda_func(\"points_mapping_offset_encode\")(\n        point_ids.contiguous(), n_lidars, tile_width, tile_height\n    )\n\n@torch.no_grad()\ndef populate_image_from_points(\n    points: Tensor,\n    image_width: int,\n    image_height: int,\n    tile_width: int,\n    tile_height: int,\n    tile_offsets: Tensor, \n    flatten_id: Tensor,\n) -> Tensor:\n    \"\"\"\n    Populate an image from points. Sets pixel values to point properties. Useful to generate\n    ground truth image from points.\n    Args:\n        points: Points to populate the image with. [C, N, 5] or [nnz, 5]\n        image_width: Image width.\n        image_height: Image height.\n        tile_width: Tile width.\n        tile_height: Tile height.\n        tile_offsets: Offsets for the tiles. [C, tile_height, tile_width]\n        flatten_id: Flattened ids for the points. [n_isects]\n\n    Returns:\n        Populated image. [C, image_height, image_width, 5]\n    \"\"\"\n    return _make_lazy_cuda_func(\"populate_image_from_points\")(\n        points.contiguous(),\n        image_width,\n        image_height,\n        tile_width,\n        tile_height,\n        tile_offsets.contiguous(),\n        flatten_id.contiguous()\n    )\n\ndef rasterize_to_pixels(\n    means2d: Tensor,                               # [C, N, 2] or [nnz, 2]\n    conics: Tensor,                                # [C, N, 3] or [nnz, 3]\n    colors: Tensor,                                # [C, N, channels] or [nnz, channels]\n    opacities: Tensor,                             # [C, N] or [nnz]\n    pix_vels: Tensor,                              # [C, N, 2] or [nnz, 2]\n    image_width: int,\n    image_height: int,\n    tile_size: int,\n    isect_offsets: Tensor,                         # [C, tile_height, tile_width]\n    flatten_ids: Tensor,                           # [n_isects]\n    rolling_shutter_time: Optional[Tensor] = None, # [C]\n    rolling_shutter_direction: Optional[int] = None, # 1: top2bottom, 2: bottom2top, 3: left2right, 4: right2left, 5: no rolling shutter\n    backgrounds: Optional[Tensor] = None,          # [C, channels]\n    packed: bool = False,\n    absgrad: bool = False,\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Rasterizes Gaussians to pixels.\n\n    Args:\n        means2d: Projected Gaussian means. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        conics: Inverse of the projected covariances with only upper triangle values. [C, N, 3] if packed is False, [nnz, 3] if packed is True.\n        colors: Gaussian colors or ND features. [C, N, channels] if packed is False, [nnz, channels] if packed is True.\n        opacities: Gaussian opacities that support per-view values. [C, N] if packed is False, [nnz] if packed is True.\n        pix_vels: Pixel velocities. [C, N, 2]\n        image_width: Image width.\n        image_height: Image height.\n        tile_size: Tile size.\n        isect_offsets: Intersection offsets outputs from `isect_offset_encode()`. [C, tile_height, tile_width]\n        flatten_ids: The global flatten indices in [C * N] or [nnz] from  `isect_tiles()`. [n_isects]\n        rolling_shutter_time: Rolling shutter time. [C]. Default: None.\n        backgrounds: Background colors. [C, channels]. Default: None.\n        packed: If True, the input tensors are expected to be packed with shape [nnz, ...]. Default: False.\n        absgrad: If True, the backward pass will compute a `.absgrad` attribute for `means2d`. Default: False.\n\n    Returns:\n        A tuple:\n\n        - **Rendered colors**. [C, image_height, image_width, channels]\n        - **Rendered alphas**. [C, image_height, image_width, 1]\n    \"\"\"\n\n    C = isect_offsets.size(0)\n    device = means2d.device\n    if packed:\n        nnz = means2d.size(0)\n        assert means2d.shape == (nnz, 2), means2d.shape\n        assert conics.shape == (nnz, 3), conics.shape\n        assert colors.shape[0] == nnz, colors.shape\n        assert opacities.shape == (nnz,), opacities.shape\n        assert pix_vels.shape == (nnz, 2), pix_vels.shape\n    else:\n        N = means2d.size(1)\n        assert means2d.shape == (C, N, 2), means2d.shape\n        assert conics.shape == (C, N, 3), conics.shape\n        assert colors.shape[:2] == (C, N), colors.shape\n        assert opacities.shape == (C, N), opacities.shape\n        assert pix_vels.shape == (C, N, 2), pix_vels.shape\n    if rolling_shutter_time is not None:\n        assert rolling_shutter_time.shape == (C,), rolling_shutter_time.shape\n    else:\n        rolling_shutter_time = torch.zeros(C, device=device)\n    if rolling_shutter_direction is not None:\n        assert rolling_shutter_direction in (1,2,3,4,5), f\"rolling_shutter_direction must be one of (1, 2, 3, 4, 5), but got {rolling_shutter_direction}\"\n    else:\n        rolling_shutter_direction = 1\n    if backgrounds is not None:\n        assert backgrounds.shape == (C, colors.shape[-1]), backgrounds.shape\n        backgrounds = backgrounds.contiguous()\n\n    # Pad the channels to the nearest supported number if necessary\n    channels = colors.shape[-1]\n    if channels > 513 or channels == 0:\n        # TODO: maybe worth to support zero channels?\n        raise ValueError(f\"Unsupported number of color channels: {channels}\")\n    if channels not in (\n        1,\n        2,\n        3,\n        4,\n        5,\n        8,\n        9,\n        16,\n        17,\n        32,\n        33,\n        64,\n        65,\n        128,\n        129,\n        256,\n        257,\n        512,\n        513,\n    ):\n        padded_channels = (1 << (channels - 1).bit_length()) - channels\n        colors = torch.cat(\n            [\n                colors,\n                torch.zeros(*colors.shape[:-1], padded_channels, device=device),\n            ],\n            dim=-1,\n        )\n        if backgrounds is not None:\n            backgrounds = torch.cat(\n                [\n                    backgrounds,\n                    torch.zeros(\n                        *backgrounds.shape[:-1], padded_channels, device=device\n                    ),\n                ],\n                dim=-1,\n            )\n    else:\n        padded_channels = 0\n\n    tile_height, tile_width = isect_offsets.shape[1:3]\n    assert (\n        tile_height * tile_size >= image_height\n    ), f\"Assert Failed: {tile_height} * {tile_size} >= {image_height}\"\n    assert (\n        tile_width * tile_size >= image_width\n    ), f\"Assert Failed: {tile_width} * {tile_size} >= {image_width}\"\n\n    render_colors, render_alphas, render_medians = _RasterizeToPixels.apply(\n        means2d.contiguous(),\n        conics.contiguous(),\n        colors.contiguous(),\n        opacities.contiguous(),\n        pix_vels.contiguous(),\n        rolling_shutter_time.contiguous(),\n        rolling_shutter_direction,\n        backgrounds,\n        image_width,\n        image_height,\n        tile_size,\n        isect_offsets.contiguous(),\n        flatten_ids.contiguous(),\n        absgrad,\n    )\n\n    if padded_channels > 0:\n        render_colors = render_colors[..., :-padded_channels]\n        render_medians = render_medians[..., :-padded_channels]\n    return render_colors, render_alphas, render_medians\n\ndef rasterize_to_points(\n    means2d: Tensor,  # [C, N, 2] or [nnz, 2]\n    conics: Tensor,  # [C, N, 3] or [nnz, 3]\n    lidar_features: Tensor,  # [C, N, channels] or [nnz, channels]\n    opacities: Tensor,  # [C, N] or [nnz]\n    pix_vels: Tensor,  # [C, N, 3] or [nnz, 3]\n    depth_compensations: Tensor,  # [C, N, 2] or [nnz, 2]\n    raster_pts: Tensor, # [C, H, W, 3]\n    image_width: int,\n    image_height: int,\n    tile_width: int,\n    tile_height: int,\n    isect_offsets: Tensor,  # [C, tile_height, tile_width]\n    flatten_ids: Tensor,  # [n_isects]\n    compute_alpha_sum_until_points: bool,\n    compute_alpha_sum_until_points_threshold: float,\n    backgrounds: Optional[Tensor] = None,  # [C, channels]\n    packed: bool = False,\n    absgrad: bool = False,\n) -> Tuple[Tensor, Tensor, Optional[Tensor], Tensor]:\n    \"\"\"Rasterizes Gaussians to points.\n\n    Args:\n        means2d: Projected Gaussian means. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        conics: Inverse of the projected covariances with only upper triangle values. [C, N, 3] if packed is False, [nnz, 3] if packed is True.\n        lidar_features: Gaussian ND features. [C, N, channels] if packed is False, [nnz, channels] if packed is True.\n        opacities: Gaussian opacities that support per-view values. [C, N] if packed is False, [nnz] if packed is True.\n        pix_vels: Spherical velocities. [C, N, 3] if packed is False, [nnz, 3] if packed is True.\n        depth_compensations: Depth compensation factors. [C, N, 2] if packed is False, [nnz, 2] if packed is True.\n        raster_pts: Spherical coordinates of the points to rasterize. [C, H, W, 3]\n        image_width: Image width.\n        image_height: Image height.\n        tile_width: Tile width.\n        tile_height: Tile height.\n        isect_offsets: Intersection offsets outputs from `isect_offset_encode()`. [C, tile_height, tile_width]\n        flatten_ids: The global flatten indices in [C * N] or [nnz] from  `isect_tiles()`. [n_isects]\n        compute_alpha_sum_until_points: Whether to compute the alpha sum until provided observed points.\n        compute_alpha_sum_until_points_threshold: Alpha sum is computed up until we are threshold away from the point.\n        backgrounds: Background colors. [C, channels]. Default: None.\n        packed: If True, the input tensors are expected to be packed with shape [nnz, ...]. Default: False.\n        absgrad: If True, the backward pass will compute a `.absgrad` attribute for `means2d`. Default: False.\n\n    Returns:\n        A tuple:\n\n        - **Rendered colors**. [C, image_height, image_width, channels]\n        - **Rendered alphas**. [C, image_height, image_width, 1]\n        - **alpha_sum_until_points**. [C, image_height, image_width, 1].\n        - **median_depths**. [C, image_height, image_width, 1].\n    \"\"\"\n\n    C = isect_offsets.size(0)\n    device = means2d.device\n    if packed:\n        nnz = means2d.size(0)\n        assert means2d.shape == (nnz, 2), means2d.shape\n        assert conics.shape == (nnz, 3), conics.shape\n        assert lidar_features.shape[0] == nnz, lidar_features.shape\n        assert opacities.shape == (nnz,), opacities.shape\n        assert pix_vels.shape == (nnz, 3), pix_vels.shape\n        assert depth_compensations.shape == (nnz, 2), depth_compensations.shape\n    else:\n        N = means2d.size(1)\n        assert means2d.shape == (C, N, 2), means2d.shape\n        assert conics.shape == (C, N, 3), conics.shape\n        assert lidar_features.shape[:2] == (C, N), lidar_features.shape\n        assert opacities.shape == (C, N), opacities.shape\n        assert pix_vels.shape == (C, N, 3), pix_vels.shape\n        assert depth_compensations.shape == (C, N, 2), depth_compensations.shape\n    if backgrounds is not None:\n        assert backgrounds.shape == (C, lidar_features.shape[-1]), backgrounds.shape\n        backgrounds = backgrounds.contiguous()\n\n    # Pad the channels to the nearest supported number if necessary\n    channels = lidar_features.shape[-1]\n    depth_channel_idx = channels - 1\n    if channels > 513 or channels == 0:\n        # TODO: maybe worth to support zero channels?\n        raise ValueError(f\"Unsupported number of lidar_features channels: {channels}\")\n    if channels not in (\n        1,\n        2,\n        3,\n        4,\n        5,\n        8,\n        9,\n        16,\n        17,\n        32,\n        33,\n        64,\n        65,\n        128,\n        129,\n        256,\n        257,\n        512,\n        513,\n    ):\n        padded_channels = (1 << (channels - 1).bit_length()) - channels\n        lidar_features = torch.cat(\n            [\n                lidar_features,\n                torch.zeros(*lidar_features.shape[:-1], padded_channels, device=device),\n            ],\n            dim=-1,\n        )\n        if backgrounds is not None:\n            backgrounds = torch.cat(\n                [\n                    backgrounds,\n                    torch.zeros(\n                        *backgrounds.shape[:-1], padded_channels, device=device\n                    ),\n                ],\n                dim=-1,\n            )\n    else:\n        padded_channels = 0\n\n    tile_grid_height, tile_grid_width = isect_offsets.shape[1:3]\n    assert (\n        tile_grid_height * tile_height >= image_height\n    ), f\"Assert Failed: {tile_grid_height} * {tile_height} >= {image_height}\"\n    assert (\n        tile_grid_width * tile_width >= image_width\n    ), f\"Assert Failed: {tile_grid_width} * {tile_width} >= {image_width}\"\n    assert raster_pts.shape == (\n        C,\n        image_height,\n        image_width,\n        4,\n    ), \"raster_pts does not have the correct shape\"\n\n    render_lidar_features, render_alphas, alpha_sum_until_points, median_depths = (\n        _RasterizeToPoints.apply(\n            means2d.contiguous(),\n            conics.contiguous(),\n            lidar_features.contiguous(),\n            opacities.contiguous(),\n            pix_vels.contiguous(),\n            depth_compensations.contiguous(),\n            backgrounds,\n            raster_pts.contiguous(),\n            image_width,\n            image_height,\n            tile_width,\n            tile_height,\n            isect_offsets.contiguous(),\n            flatten_ids.contiguous(),\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            absgrad,\n            depth_channel_idx,\n        )\n    )\n\n    if padded_channels > 0:\n        render_lidar_features = render_lidar_features[..., :-padded_channels]\n    return render_lidar_features, render_alphas, alpha_sum_until_points, median_depths\n\n\n@torch.no_grad()\ndef rasterize_to_indices_in_range(\n    range_start: int,\n    range_end: int,\n    transmittances: Tensor,                         # [C, image_height, image_width]\n    means2d: Tensor,                                # [C, N, 2]\n    conics: Tensor,                                 # [C, N, 3]\n    opacities: Tensor,                              # [C, N]\n    pix_vels: Tensor,                               # [C, N, 2]\n    image_width: int,\n    image_height: int,\n    tile_size: int,\n    isect_offsets: Tensor,                          # [C, tile_height, tile_width]\n    flatten_ids: Tensor,                            # [n_isects]\n    rolling_shutter_time: Optional[Tensor] = None,  # [C]\n    rolling_shutter_direction: int = 1,              # 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Rasterizes a batch of Gaussians to images but only returns the indices.\n\n    .. note::\n\n        This function supports iterative rasterization, in which each call of this function\n        will rasterize a batch of Gaussians from near to far, defined by `[range_start, range_end)`.\n        If a one-step full rasterization is desired, set `range_start` to 0 and `range_end` to a really\n        large number, e.g, 1e10.\n\n    Args:\n        range_start: The start batch of Gaussians to be rasterized (inclusive).\n        range_end: The end batch of Gaussians to be rasterized (exclusive).\n        transmittances: Currently transmittances. [C, image_height, image_width]\n        means2d: Projected Gaussian means. [C, N, 2]\n        conics: Inverse of the projected covariances with only upper triangle values. [C, N, 3]\n        opacities: Gaussian opacities that support per-view values. [C, N]\n        pix_vels: Pixel velocities. [C, N, 2]\n        image_width: Image width.\n        image_height: Image height.\n        tile_size: Tile size.\n        isect_offsets: Intersection offsets outputs from `isect_offset_encode()`. [C, tile_height, tile_width]\n        flatten_ids: The global flatten indices in [C * N] from  `isect_tiles()`. [n_isects]\n\n    Returns:\n        A tuple:\n\n        - **Gaussian ids**. Gaussian ids for the pixel intersection. A flattened list of shape [M].\n        - **Pixel ids**. pixel indices (row-major). A flattened list of shape [M].\n        - **Camera ids**. Camera indices. A flattened list of shape [M].\n    \"\"\"\n\n    C, N, _ = means2d.shape\n    assert conics.shape == (C, N, 3), conics.shape\n    assert opacities.shape == (C, N), opacities.shape\n    assert isect_offsets.shape[0] == C, isect_offsets.shape\n    assert pix_vels.shape == (C, N, 2), pix_vels.shape\n    if rolling_shutter_time is not None:\n        assert rolling_shutter_time.shape == (C,), rolling_shutter_time.shape\n    else:\n        rolling_shutter_time = torch.zeros(C, device=means2d.device)\n\n    tile_height, tile_width = isect_offsets.shape[1:3]\n    assert (\n        tile_height * tile_size >= image_height\n    ), f\"Assert Failed: {tile_height} * {tile_size} >= {image_height}\"\n    assert (\n        tile_width * tile_size >= image_width\n    ), f\"Assert Failed: {tile_width} * {tile_size} >= {image_width}\"\n\n    out_gauss_ids, out_indices = _make_lazy_cuda_func(\"rasterize_to_indices_in_range\")(\n        range_start,\n        range_end,\n        transmittances.contiguous(),\n        means2d.contiguous(),\n        conics.contiguous(),\n        opacities.contiguous(),\n        pix_vels.contiguous(),\n        rolling_shutter_time.contiguous(),\n        image_width,\n        image_height,\n        tile_size,\n        rolling_shutter_direction,\n        isect_offsets.contiguous(),\n        flatten_ids.contiguous(),\n    )\n    out_pixel_ids = out_indices % (image_width * image_height)\n    out_camera_ids = out_indices // (image_width * image_height)\n    return out_gauss_ids, out_pixel_ids, out_camera_ids\n\n@torch.no_grad()\ndef rasterize_to_indices_in_range_lidar(\n    range_start: int,\n    range_end: int,\n    transmittances: Tensor,                         # [C, image_height, image_width]\n    means2d: Tensor,                                # [C, N, 2]\n    conics: Tensor,                                 # [C, N, 3]\n    opacities: Tensor,                              # [C, N]\n    pix_vels: Tensor,                               # [C, N, 3]\n    raster_pts: Tensor,                             # [C, image_height, image_width, 4]\n    image_width: int,\n    image_height: int,\n    tile_width: int,\n    tile_height: int,\n    isect_offsets: Tensor,                          # [C, tile_height, tile_width]\n    flatten_ids: Tensor,                            # [n_isects]\n) -> Tuple[Tensor, Tensor, Tensor]:\n    \"\"\"Rasterizes a batch of Gaussians to lidar images and returns the indices of intersections.\n\n    .. note::\n\n        This function supports iterative rasterization, in which each call of this function\n        will rasterize a batch of Gaussians from near to far, defined by `[range_start, range_end)`.\n        If a one-step full rasterization is desired, set `range_start` to 0 and `range_end` to a really\n        large number, e.g, 1e10.\n\n    Args:\n        range_start: The start batch of Gaussians to be rasterized (inclusive).\n        range_end: The end batch of Gaussians to be rasterized (exclusive).\n        transmittances: Currently transmittances. [C, image_height, image_width]\n        means2d: Projected Gaussian means. [C, N, 2]\n        conics: Inverse of the projected covariances with only upper triangle values. [C, N, 3]\n        opacities: Gaussian opacities that support per-view values. [C, N]\n        pix_vels: Spherical velocities. [C, N, 3]\n        raster_pts: Spherical coordinates + time for points to rasterize. [C, image_height, image_width, 4]\n        image_width: Image width.\n        image_height: Image height.\n        tile_width: Tile width.\n        tile_height: Tile height.\n        isect_offsets: Intersection offsets outputs from `isect_offset_encode()`. [C, tile_height, tile_width]\n        flatten_ids: The global flatten indices in [C * N] from  `isect_tiles()`. [n_isects]\n\n    Returns:\n        A tuple:\n\n        - **Gaussian ids**. Gaussian ids for the pixel intersection. A flattened list of shape [M].\n        - **Pixel ids**. pixel indices (row-major). A flattened list of shape [M].\n        - **Camera ids**. Camera indices. A flattened list of shape [M].\n    \"\"\"\n\n    C, N, _ = means2d.shape\n    assert conics.shape == (C, N, 3), conics.shape\n    assert opacities.shape == (C, N), opacities.shape\n    assert isect_offsets.shape[0] == C, isect_offsets.shape\n    assert pix_vels.shape == (C, N, 3), pix_vels.shape\n\n    tile_grid_height, tile_grid_width = isect_offsets.shape[1:3]\n    assert (\n        tile_grid_height * tile_height >= image_height\n    ), f\"Assert Failed: {tile_grid_height} * {tile_height} >= {image_height}\"\n    assert (\n        tile_grid_width * tile_width >= image_width\n    ), f\"Assert Failed: {tile_grid_width} * {tile_width} >= {image_width}\"\n\n    out_gauss_ids, out_indices = _make_lazy_cuda_func(\"rasterize_to_indices_in_range_lidar\")(\n        range_start,\n        range_end,\n        transmittances.contiguous(),\n        means2d.contiguous(),\n        conics.contiguous(),\n        opacities.contiguous(),\n        pix_vels.contiguous(),\n        raster_pts.contiguous(),\n        image_width,\n        image_height,\n        tile_width,\n        tile_height,\n        isect_offsets.contiguous(),\n        flatten_ids.contiguous(),\n    )\n    out_pixel_ids = out_indices % (image_width * image_height)\n    out_camera_ids = out_indices // (image_width * image_height)\n    return out_gauss_ids, out_pixel_ids, out_camera_ids\n\n\nclass _QuatScaleToCovarPreci(torch.autograd.Function):\n    \"\"\"Converts quaternions and scales to covariance and precision matrices.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        quats: Tensor,  # [N, 4],\n        scales: Tensor,  # [N, 3],\n        compute_covar: bool = True,\n        compute_preci: bool = True,\n        triu: bool = False,\n    ) -> Tuple[Tensor, Tensor]:\n        covars, precis = _make_lazy_cuda_func(\"quat_scale_to_covar_preci_fwd\")(\n            quats, scales, compute_covar, compute_preci, triu\n        )\n        ctx.save_for_backward(quats, scales)\n        ctx.compute_covar = compute_covar\n        ctx.compute_preci = compute_preci\n        ctx.triu = triu\n        return covars, precis\n\n    @staticmethod\n    def backward(ctx, v_covars: Tensor, v_precis: Tensor):\n        quats, scales = ctx.saved_tensors\n        compute_covar = ctx.compute_covar\n        compute_preci = ctx.compute_preci\n        triu = ctx.triu\n        if compute_covar and v_covars.is_sparse:\n            v_covars = v_covars.to_dense()\n        if compute_preci and v_precis.is_sparse:\n            v_precis = v_precis.to_dense()\n        v_quats, v_scales = _make_lazy_cuda_func(\"quat_scale_to_covar_preci_bwd\")(\n            quats,\n            scales,\n            v_covars.contiguous() if compute_covar else None,\n            v_precis.contiguous() if compute_preci else None,\n            triu,\n        )\n        return v_quats, v_scales, None, None, None\n\nclass _PerspProj(torch.autograd.Function):\n    \"\"\"Perspective fully_fused_projection on Gaussians.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,  # [C, N, 3]\n        covars: Tensor,  # [C, N, 3, 3]\n        Ks: Tensor,  # [C, 3, 3]\n        width: int,\n        height: int,\n    ) -> Tuple[Tensor, Tensor]:\n        means2d, covars2d = _make_lazy_cuda_func(\"persp_proj_fwd\")(\n            means, covars, Ks, width, height\n        )\n        ctx.save_for_backward(means, covars, Ks)\n        ctx.width = width\n        ctx.height = height\n        return means2d, covars2d\n\n    @staticmethod\n    def backward(ctx, v_means2d: Tensor, v_covars2d: Tensor):\n        means, covars, Ks = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        v_means, v_covars = _make_lazy_cuda_func(\"persp_proj_bwd\")(\n            means,\n            covars,\n            Ks,\n            width,\n            height,\n            v_means2d.contiguous(),\n            v_covars2d.contiguous(),\n        )\n        return v_means, v_covars, None, None, None\n\nclass _ComputePixVelocity(torch.autograd.Function):\n    \"\"\"Compute velocity of Gaussians in image coordinates.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        p_view,  # [C, N, 3]\n        lin_vel, # [C, 3]\n        ang_vel,  # [C, 3]\n        velocities, # [C, N, 3]\n        Ks, # [C, 3, 3]\n        width, \n        height,\n    ) -> Tensor:\n        vel = _make_lazy_cuda_func(\"compute_pix_velocity_fwd\")(\n            p_view, lin_vel, ang_vel, velocities, Ks, width, height\n        )\n        ctx.save_for_backward(p_view, lin_vel, ang_vel, velocities, Ks)\n        ctx.width = width\n        ctx.height = height\n        return vel\n    \n    @staticmethod\n    def backward(ctx, v_vel: Tensor):\n        p_view, lin_vel, ang_vel, velocities, Ks = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        v_p_view, v_velocities = _make_lazy_cuda_func(\"compute_pix_velocity_bwd\")(\n            p_view,\n            lin_vel,\n            ang_vel,\n            velocities,\n            Ks,\n            width,\n            height,\n            v_vel.contiguous()\n        )\n        return v_p_view, None, None, v_velocities, None, None, None\n\nclass _WorldToCam(torch.autograd.Function):\n    \"\"\"Transforms Gaussians from world to camera space.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,  # [N, 3]\n        covars: Tensor,  # [N, 3, 3]\n        viewmats: Tensor,  # [C, 4, 4]\n    ) -> Tuple[Tensor, Tensor]:\n        means_c, covars_c = _make_lazy_cuda_func(\"world_to_cam_fwd\")(\n            means, covars, viewmats\n        )\n        ctx.save_for_backward(means, covars, viewmats)\n        return means_c, covars_c\n\n    @staticmethod\n    def backward(ctx, v_means_c: Tensor, v_covars_c: Tensor):\n        means, covars, viewmats = ctx.saved_tensors\n        v_means, v_covars, v_viewmats = _make_lazy_cuda_func(\"world_to_cam_bwd\")(\n            means,\n            covars,\n            viewmats,\n            v_means_c.contiguous(),\n            v_covars_c.contiguous(),\n            ctx.needs_input_grad[0],\n            ctx.needs_input_grad[1],\n            ctx.needs_input_grad[2],\n        )\n        if not ctx.needs_input_grad[0]:\n            v_means = None\n        if not ctx.needs_input_grad[1]:\n            v_covars = None\n        if not ctx.needs_input_grad[2]:\n            v_viewmats = None\n        return v_means, v_covars, v_viewmats\n\nclass _LidarProj(torch.autograd.Function):\n    \"\"\"Transform Gaussians from Euclidean to spherical coordinates, azimuth and elevation only.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,   # [C, N, 3]\n        covars: Tensor,  # [C, N, 3, 3]\n        eps2d: float,\n    ) -> Tuple[Tensor, Tensor, Tensor]:\n        means2d, covars2d, depth_compensations = _make_lazy_cuda_func(\"lidar_proj_fwd\")(\n            means, covars, eps2d\n        )\n        ctx.save_for_backward(means, covars)\n        ctx.eps2d = eps2d\n        return means2d, covars2d, depth_compensations\n    \n    @staticmethod\n    def backward(ctx, v_means2d: Tensor, v_covars2d: Tensor, v_depth_compensations: Tensor):\n        means, covars = ctx.saved_tensors\n        eps2d = ctx.eps2d\n        v_means, v_covars = _make_lazy_cuda_func(\"lidar_proj_bwd\")(\n            means,\n            covars,\n            eps2d,\n            v_means2d.contiguous(),\n            v_covars2d.contiguous(),\n            v_depth_compensations.contiguous()\n        )\n        return v_means, v_covars, None\n    \nclass _ComputeLidarVelocity(torch.autograd.Function):\n    \"\"\"Compute velocity of Gaussians in spherical coordinates.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        p_view,  # [C, N, 3]\n        lin_vel, # [C, 3]\n        ang_vel,  # [C, 3]\n        velocities, # [C, N, 3]\n    ) -> Tensor:\n        vel = _make_lazy_cuda_func(\"compute_lidar_velocity_fwd\")(\n            p_view, lin_vel, ang_vel, velocities\n        )\n        ctx.save_for_backward(p_view, lin_vel, ang_vel, velocities)\n        return vel\n    \n    @staticmethod\n    def backward(ctx, v_vel: Tensor):\n        p_view, lin_vel, ang_vel, velocities = ctx.saved_tensors\n        v_p_view, v_velocities = _make_lazy_cuda_func(\"compute_lidar_velocity_bwd\")(\n            p_view,\n            lin_vel,\n            ang_vel,\n            velocities,\n            v_vel.contiguous()\n        )\n        return v_p_view, None, None, v_velocities\n\nclass _FullyFusedProjection(torch.autograd.Function):\n    \"\"\"Projects Gaussians to 2D.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,  # [N, 3]\n        covars: Tensor,  # [N, 6] or None\n        quats: Tensor,  # [N, 4] or None\n        scales: Tensor,  # [N, 3] or None\n        velocities: Tensor, # [N, 3] or None\n        viewmats: Tensor,  # [C, 4, 4]\n        Ks: Tensor,  # [C, 3, 3]\n        width: int,\n        height: int,\n        linear_velocity: Tensor, # [C, 3]\n        angular_velocity: Tensor, # [C, 3]\n        rolling_shutter_time: Tensor, # [C]\n        eps2d: float,\n        near_plane: float,\n        far_plane: float,\n        radius_clip: float,\n        calc_compensations: bool,\n    ) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]:\n        # \"covars\" and {\"quats\", \"scales\"} are mutually exclusive\n        radii, means2d, depths, conics, compensations, pix_vels = _make_lazy_cuda_func(\n            \"fully_fused_projection_fwd\"\n        )(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            calc_compensations,\n        )\n        if not calc_compensations:\n            compensations = None\n        ctx.save_for_backward(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            radii,\n            conics,\n            compensations\n        )\n        ctx.width = width\n        ctx.height = height\n        ctx.eps2d = eps2d\n\n        return radii, means2d, depths, conics, compensations, pix_vels\n\n    @staticmethod\n    def backward(ctx, v_radii, v_means2d, v_depths, v_conics, v_compensations, v_pix_vels):\n        (\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            radii,\n            conics,\n            compensations,\n        ) = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        eps2d = ctx.eps2d\n        if v_compensations is not None:\n            v_compensations = v_compensations.contiguous()\n        v_means, v_covars, v_quats, v_scales, v_viewmats = _make_lazy_cuda_func(\n            \"fully_fused_projection_bwd\"\n        )(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            radii,\n            conics,\n            compensations,\n            v_means2d.contiguous(),\n            v_depths.contiguous(),\n            v_conics.contiguous(),\n            v_compensations,\n            v_pix_vels.contiguous(),\n            ctx.needs_input_grad[5],  # viewmats_requires_grad\n        )\n        if not ctx.needs_input_grad[0]:\n            v_means = None\n        if not ctx.needs_input_grad[1]:\n            v_covars = None\n        if not ctx.needs_input_grad[2]:\n            v_quats = None\n        if not ctx.needs_input_grad[3]:\n            v_scales = None\n        if not ctx.needs_input_grad[5]:\n            v_viewmats = None\n        return (\n            v_means,\n            v_covars,\n            v_quats,\n            v_scales,\n            None,\n            v_viewmats,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n        )\n    \nclass _FullyFusedLidarProjection(torch.autograd.Function):\n    \"\"\"Projects Gaussians to 2D.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,  # [N, 3]\n        covars: Tensor,  # [N, 6] or None\n        quats: Tensor,  # [N, 4] or None\n        scales: Tensor,  # [N, 3] or None\n        velocities: Tensor, # [N, 3] or None\n        viewmats: Tensor,  # [C, 4, 4]\n        min_elevation: float,\n        max_elevation: float,\n        min_azimuth: float,\n        max_azimuth: float,\n        linear_velocity: Tensor, # [C, 3]\n        angular_velocity: Tensor, # [C, 3]\n        rolling_shutter_time: Tensor, # [C]\n        eps2d: float,\n        near_plane: float,\n        far_plane: float,\n        radius_clip: float,\n        calc_compensations: bool,\n    ) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor]:\n        # \"covars\" and {\"quats\", \"scales\"} are mutually exclusive\n        radii, means2d, depths, conics, compensations, pix_vels, depth_compensation = _make_lazy_cuda_func(\n            \"fully_fused_lidar_projection_fwd\"\n        )(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            calc_compensations,\n        )\n        if not calc_compensations:\n            compensations = None\n        ctx.save_for_backward(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            radii,\n            conics,\n            compensations,\n        )\n        ctx.min_elevation = min_elevation\n        ctx.max_elevation = max_elevation\n        ctx.min_azimuth = min_azimuth\n        ctx.max_azimuth = max_azimuth\n        ctx.eps2d = eps2d\n\n        return radii, means2d, depths, conics, compensations, pix_vels, depth_compensation\n\n    @staticmethod\n    def backward(ctx, v_radii, v_means2d, v_depths, v_conics, v_compensations, v_pix_vels, v_depth_compensations):\n        (\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            radii,\n            conics,\n            compensations,\n        ) = ctx.saved_tensors\n        min_elevation = ctx.min_elevation\n        max_elevation = ctx.max_elevation\n        min_azimuth = ctx.min_azimuth\n        max_azimuth = ctx.max_azimuth\n        eps2d = ctx.eps2d\n        if v_compensations is not None:\n            v_compensations = v_compensations.contiguous()\n        v_means, v_covars, v_quats, v_scales, v_viewmats = _make_lazy_cuda_func(\n            \"fully_fused_lidar_projection_bwd\"\n        )(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            radii,\n            conics,\n            compensations,\n            v_means2d.contiguous(),\n            v_depths.contiguous(),\n            v_conics.contiguous(),\n            v_compensations,\n            v_pix_vels.contiguous(),\n            v_depth_compensations.contiguous(),\n            ctx.needs_input_grad[5],  # viewmats_requires_grad\n        )\n        if not ctx.needs_input_grad[0]:\n            v_means = None\n        if not ctx.needs_input_grad[1]:\n            v_covars = None\n        if not ctx.needs_input_grad[2]:\n            v_quats = None\n        if not ctx.needs_input_grad[3]:\n            v_scales = None\n        if not ctx.needs_input_grad[5]:\n            v_viewmats = None\n        return (\n            v_means,\n            v_covars,\n            v_quats,\n            v_scales,\n            None,\n            v_viewmats,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n        )\n\nclass _RasterizeToPixels(torch.autograd.Function):\n    \"\"\"Rasterize gaussians\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means2d: Tensor,              # [C, N, 2]\n        conics: Tensor,               # [C, N, 3]\n        colors: Tensor,               # [C, N, D]\n        opacities: Tensor,            # [C, N]\n        pix_vels: Tensor,             # [C, N, 2]\n        rolling_shutter_time: Tensor, # [C]\n        rolling_shutter_direction: int, # <- should probably make this per cam\n        backgrounds: Tensor,          # [C, D], Optional\n        width: int,\n        height: int,\n        tile_size: int,\n        isect_offsets: Tensor,        # [C, tile_height, tile_width]\n        flatten_ids: Tensor,          # [n_isects]\n        absgrad: bool,\n    ) -> Tuple[Tensor, Tensor, Tensor]:\n        render_colors, render_alphas, render_medians, last_ids = _make_lazy_cuda_func(\n            \"rasterize_to_pixels_fwd\"\n        )(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            rolling_shutter_time,\n            backgrounds,\n            width,\n            height,\n            tile_size,\n            rolling_shutter_direction,\n            isect_offsets,\n            flatten_ids,\n        )\n\n        ctx.save_for_backward(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            rolling_shutter_time,\n            backgrounds,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n        )\n        ctx.width = width\n        ctx.height = height\n        ctx.tile_size = tile_size\n        ctx.absgrad = absgrad\n        ctx.rolling_shutter_direction = rolling_shutter_direction\n\n        # double to float\n        render_alphas = render_alphas.float()\n        return render_colors, render_alphas, render_medians\n\n    @staticmethod\n    def backward(\n        ctx,\n        v_render_colors: Tensor,  # [C, H, W, 3]\n        v_render_alphas: Tensor,  # [C, H, W, 1]\n        v_render_medians: Tensor,  # [C, H, W, 3]\n    ):\n        (\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            rolling_shutter_time,\n            backgrounds,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n        ) = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        tile_size = ctx.tile_size\n        absgrad = ctx.absgrad\n        rolling_shutter_direction = ctx.rolling_shutter_direction\n\n        (\n            v_means2d_abs,\n            v_means2d,\n            v_conics,\n            v_colors,\n            v_opacities,\n            v_pix_vels,\n        ) = _make_lazy_cuda_func(\"rasterize_to_pixels_bwd\")(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            rolling_shutter_time,\n            backgrounds,\n            width,\n            height,\n            tile_size,\n            rolling_shutter_direction,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n            v_render_colors.contiguous(),\n            v_render_alphas.contiguous(),\n            absgrad,\n        )\n\n        if absgrad:\n            means2d.absgrad = v_means2d_abs\n\n        if ctx.needs_input_grad[6]:\n            v_backgrounds = (v_render_colors * (1.0 - render_alphas).float()).sum(\n                dim=(1, 2)\n            )\n        else:\n            v_backgrounds = None\n\n        return (\n            v_means2d,\n            v_conics,\n            v_colors,\n            v_opacities,\n            v_pix_vels,\n            None,\n            None,\n            v_backgrounds,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n        )\n\nclass _RasterizeToPoints(torch.autograd.Function):\n    \"\"\"Rasterize gaussians\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means2d: Tensor,  # [C, N, 2]\n        conics: Tensor,  # [C, N, 3]\n        colors: Tensor,  # [C, N, D]\n        opacities: Tensor,  # [C, N]\n        pix_vels: Tensor,  # [C, N, 3]\n        depth_compensations: Tensor,  # [C, N, 2]\n        backgrounds: Tensor,  # [C, D], Optional\n        raster_pts: Tensor,\n        width: int,\n        height: int,\n        tile_width: int,\n        tile_height: int,\n        isect_offsets: Tensor,  # [C, tile_height, tile_width]\n        flatten_ids: Tensor,  # [n_isects]\n        compute_alpha_sum_until_points: bool,\n        compute_alpha_sum_until_points_threshold: float,\n        absgrad: bool,\n        depth_channel_idx: int,\n    ) -> Tuple[Tensor, Tensor, Optional[Tensor], Optional[Tensor]]:\n        render_colors, render_alphas, last_ids, alpha_sum_until_points, median_depths = (\n            _make_lazy_cuda_func(\"rasterize_to_points_fwd\")(\n                means2d,\n                conics,\n                colors,\n                opacities,\n                pix_vels,\n                depth_compensations,\n                backgrounds,\n                raster_pts,\n                width,\n                height,\n                tile_width,\n                tile_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                isect_offsets,\n                flatten_ids,\n                depth_channel_idx,\n            )\n        )\n\n        ctx.save_for_backward(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            depth_compensations,\n            backgrounds,\n            raster_pts,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n        )\n        ctx.width = width\n        ctx.height = height\n        ctx.tile_width = tile_width\n        ctx.tile_height = tile_height\n        ctx.absgrad = absgrad\n        ctx.compute_alpha_sum_until_points = compute_alpha_sum_until_points\n        ctx.compute_alpha_sum_until_points_threshold = (\n            compute_alpha_sum_until_points_threshold\n        )\n        ctx.depth_channel_idx = depth_channel_idx\n\n        # double to float\n        render_alphas = render_alphas.float()\n        alpha_sum_until_points = (\n            alpha_sum_until_points.float() if compute_alpha_sum_until_points else None\n        )\n        return render_colors, render_alphas, alpha_sum_until_points, median_depths\n\n    @staticmethod\n    def backward(\n        ctx,\n        v_render_colors: Tensor,  # [C, H, W, 3]\n        v_render_alphas: Tensor,  # [C, H, W, 1]\n        v_alpha_sum_until_points: Tensor,  # [C, H, W, 1]\n        v_median_depths: Tensor,  # [C, H, W, 1]\n    ):\n        (\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            depth_compensations,\n            backgrounds,\n            raster_pts,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n        ) = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        tile_width = ctx.tile_width\n        tile_height = ctx.tile_height\n        absgrad = ctx.absgrad\n        compute_alpha_sum_until_points = ctx.compute_alpha_sum_until_points\n        compute_alpha_sum_until_points_threshold = ctx.compute_alpha_sum_until_points_threshold\n        depth_channel_idx = ctx.depth_channel_idx\n\n        (\n            v_means2d_abs,\n            v_means2d,\n            v_conics,\n            v_colors,\n            v_opacities,\n            v_pix_vels,\n            v_depth_compensations,\n        ) = _make_lazy_cuda_func(\"rasterize_to_points_bwd\")(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            depth_compensations,\n            backgrounds,\n            raster_pts,\n            width,\n            height,\n            tile_width,\n            tile_height,\n            isect_offsets,\n            flatten_ids,\n            render_alphas,\n            last_ids,\n            v_render_colors.contiguous(),\n            v_render_alphas.contiguous(),\n            v_alpha_sum_until_points.contiguous()\n            if compute_alpha_sum_until_points\n            else torch.zeros_like(v_render_alphas),\n            absgrad,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            depth_channel_idx,\n        )\n\n        if absgrad:\n            means2d.absgrad = v_means2d_abs\n\n        if ctx.needs_input_grad[6]:\n            v_backgrounds = (v_render_colors * (1.0 - render_alphas).float()).sum(\n                dim=(1, 2)\n            )\n        else:\n            v_backgrounds = None\n\n        return (\n            v_means2d,\n            v_conics,\n            v_colors,\n            v_opacities,\n            v_pix_vels,\n            v_depth_compensations,\n            v_backgrounds,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n        )\n\nclass _FullyFusedProjectionPacked(torch.autograd.Function):\n    \"\"\"Projects Gaussians to 2D. Return packed tensors.\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx,\n        means: Tensor,  # [N, 3]\n        covars: Tensor,  # [N, 6] or None\n        quats: Tensor,  # [N, 4] or None\n        scales: Tensor,  # [N, 3] or None\n        velocities: Tensor, # [N, 3]\n        viewmats: Tensor,  # [C, 4, 4]\n        Ks: Tensor,  # [C, 3, 3]\n        width: int,\n        height: int,\n        linear_velocity: Tensor, # [C, 3]\n        angular_velocity: Tensor, # [C, 3]\n        rolling_shutter_time: Tensor, # [C]\n        eps2d: float,\n        near_plane: float,\n        far_plane: float,\n        radius_clip: float,\n        sparse_grad: bool,\n        calc_compensations: bool,\n    ) -> Tuple[Tensor, Tensor, Tensor, Tensor]:\n        (\n            indptr,\n            camera_ids,\n            gaussian_ids,\n            radii,\n            means2d,\n            depths,\n            conics,\n            compensations,\n            pix_vels,\n        ) = _make_lazy_cuda_func(\"fully_fused_projection_packed_fwd\")(\n            means,\n            covars,  # optional\n            quats,  # optional\n            scales,  # optional\n            velocities, \n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            calc_compensations,\n        )\n        if not calc_compensations:\n            compensations = None\n        ctx.save_for_backward(\n            camera_ids,\n            gaussian_ids,\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            conics,\n            compensations,\n            pix_vels\n        )\n        ctx.width = width\n        ctx.height = height\n        ctx.eps2d = eps2d\n        ctx.sparse_grad = sparse_grad\n\n        return camera_ids, gaussian_ids, radii, means2d, depths, conics, compensations, pix_vels\n\n    @staticmethod\n    def backward(\n        ctx,\n        v_camera_ids,\n        v_gaussian_ids,\n        v_radii,\n        v_means2d,\n        v_depths,\n        v_conics,\n        v_compensations,\n        v_pix_vels,\n    ):\n        (\n            camera_ids,\n            gaussian_ids,\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            conics,\n            compensations,\n            pix_vels,\n        ) = ctx.saved_tensors\n        width = ctx.width\n        height = ctx.height\n        eps2d = ctx.eps2d\n        sparse_grad = ctx.sparse_grad\n\n        if v_compensations is not None:\n            v_compensations = v_compensations.contiguous()\n        v_means, v_covars, v_quats, v_scales, v_viewmats = _make_lazy_cuda_func(\n            \"fully_fused_projection_packed_bwd\"\n        )(\n            means,\n            covars,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            eps2d,\n            camera_ids,\n            gaussian_ids,\n            conics,\n            compensations,\n            pix_vels,\n            v_means2d.contiguous(),\n            v_depths.contiguous(),\n            v_conics.contiguous(),\n            v_compensations,\n            v_pix_vels.contiguous(),\n            ctx.needs_input_grad[5],  # viewmats_requires_grad\n            sparse_grad,\n        )\n\n        if not ctx.needs_input_grad[0]:\n            v_means = None\n        else:\n            if sparse_grad:\n                # TODO: gaussian_ids is duplicated so not ideal.\n                # An idea is to directly set the attribute (e.g., .sparse_grad) of\n                # the tensor but this requires the tensor to be leaf node only. And\n                # a customized optimizer would be needed in this case.\n                v_means = torch.sparse_coo_tensor(\n                    indices=gaussian_ids[None],  # [1, nnz]\n                    values=v_means,  # [nnz, 3]\n                    size=means.size(),  # [N, 3]\n                    #is_coalesced=len(viewmats) == 1,\n                )\n        if not ctx.needs_input_grad[1]:\n            v_covars = None\n        else:\n            if sparse_grad:\n                v_covars = torch.sparse_coo_tensor(\n                    indices=gaussian_ids[None],  # [1, nnz]\n                    values=v_covars,  # [nnz, 6]\n                    size=covars.size(),  # [N, 6]\n                    #is_coalesced=len(viewmats) == 1,\n                )\n        if not ctx.needs_input_grad[2]:\n            v_quats = None\n        else:\n            if sparse_grad:\n                v_quats = torch.sparse_coo_tensor(\n                    indices=gaussian_ids[None],  # [1, nnz]\n                    values=v_quats,  # [nnz, 4]\n                    size=quats.size(),  # [N, 4]\n                    #is_coalesced=len(viewmats) == 1,\n                )\n        if not ctx.needs_input_grad[3]:\n            v_scales = None\n        else:\n            if sparse_grad:\n                v_scales = torch.sparse_coo_tensor(\n                    indices=gaussian_ids[None],  # [1, nnz]\n                    values=v_scales,  # [nnz, 3]\n                    size=scales.size(),  # [N, 3]\n                    #is_coalesced=len(viewmats) == 1,\n                )\n        if not ctx.needs_input_grad[5]:\n            v_viewmats = None\n\n        return (\n            v_means,\n            v_covars,\n            v_quats,\n            v_scales,\n            None,\n            v_viewmats,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n            None,\n        )\n\nclass _SphericalHarmonics(torch.autograd.Function):\n    \"\"\"Spherical Harmonics\"\"\"\n\n    @staticmethod\n    def forward(\n        ctx, sh_degree: int, dirs: Tensor, coeffs: Tensor, masks: Tensor\n    ) -> Tensor:\n        colors = _make_lazy_cuda_func(\"compute_sh_fwd\")(sh_degree, dirs, coeffs, masks)\n        ctx.save_for_backward(dirs, coeffs, masks)\n        ctx.sh_degree = sh_degree\n        ctx.num_bases = coeffs.shape[-2]\n        return colors\n\n    @staticmethod\n    def backward(ctx, v_colors: Tensor):\n        dirs, coeffs, masks = ctx.saved_tensors\n        sh_degree = ctx.sh_degree\n        num_bases = ctx.num_bases\n        compute_v_dirs = ctx.needs_input_grad[1]\n        v_coeffs, v_dirs = _make_lazy_cuda_func(\"compute_sh_bwd\")(\n            num_bases,\n            sh_degree,\n            dirs,\n            coeffs,\n            masks,\n            v_colors.contiguous(),\n            compute_v_dirs,\n        )\n        if not compute_v_dirs:\n            v_dirs = None\n        return None, v_dirs, v_coeffs, None\n"
  },
  {
    "path": "gsplat/cuda/csrc/bindings.h",
    "content": "#include \"third_party/glm/glm/glm.hpp\"\n#include \"third_party/glm/glm/gtc/type_ptr.hpp\"\n#include <c10/cuda/CUDAGuard.h>\n#include <torch/extension.h>\n#include <tuple>\n\n#define N_THREADS 256\n\n#define CHECK_CUDA(x) TORCH_CHECK(x.is_cuda(), #x \" must be a CUDA tensor\")\n#define CHECK_CONTIGUOUS(x) TORCH_CHECK(x.is_contiguous(), #x \" must be contiguous\")\n#define CHECK_INPUT(x)                                                                 \\\n    CHECK_CUDA(x);                                                                     \\\n    CHECK_CONTIGUOUS(x)\n#define DEVICE_GUARD(_ten)                                                             \\\n    const at::cuda::OptionalCUDAGuard device_guard(device_of(_ten));\n\n// https://github.com/pytorch/pytorch/blob/233305a852e1cd7f319b15b5137074c9eac455f6/aten/src/ATen/cuda/cub.cuh#L38-L46\n#define CUB_WRAPPER(func, ...)                                                         \\\n    do {                                                                               \\\n        size_t temp_storage_bytes = 0;                                                 \\\n        func(nullptr, temp_storage_bytes, __VA_ARGS__);                                \\\n        auto &caching_allocator = *::c10::cuda::CUDACachingAllocator::get();           \\\n        auto temp_storage = caching_allocator.allocate(temp_storage_bytes);            \\\n        func(temp_storage.get(), temp_storage_bytes, __VA_ARGS__);                     \\\n    } while (false)\n\nstd::tuple<torch::Tensor, torch::Tensor>\nquat_scale_to_covar_preci_fwd_tensor(const torch::Tensor &quats,  // [N, 4]\n                                     const torch::Tensor &scales, // [N, 3]\n                                     const bool compute_covar, const bool compute_preci,\n                                     const bool triu);\n\nstd::tuple<torch::Tensor, torch::Tensor> quat_scale_to_covar_preci_bwd_tensor(\n    const torch::Tensor &quats,                  // [N, 4]\n    const torch::Tensor &scales,                 // [N, 3]\n    const at::optional<torch::Tensor> &v_covars, // [N, 3, 3]\n    const at::optional<torch::Tensor> &v_precis, // [N, 3, 3]\n    const bool triu);\n\nstd::tuple<torch::Tensor, torch::Tensor>\npersp_proj_fwd_tensor(const torch::Tensor &means,  // [C, N, 3]\n                      const torch::Tensor &covars, // [C, N, 3, 3]\n                      const torch::Tensor &Ks,     // [C, 3, 3]\n                      const uint32_t width, const uint32_t height);\n\nstd::tuple<torch::Tensor, torch::Tensor>\npersp_proj_bwd_tensor(const torch::Tensor &means,  // [C, N, 3]\n                      const torch::Tensor &covars, // [C, N, 3, 3]\n                      const torch::Tensor &Ks,     // [C, 3, 3]\n                      const uint32_t width, const uint32_t height,\n                      const torch::Tensor &v_means2d, // [C, N, 2]\n                      const torch::Tensor &v_covars2d // [C, N, 2, 2]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor>\nworld_to_cam_fwd_tensor(const torch::Tensor &means,   // [N, 3]\n                        const torch::Tensor &covars,  // [N, 3, 3]\n                        const torch::Tensor &viewmats // [C, 4, 4]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nworld_to_cam_bwd_tensor(const torch::Tensor &means,                    // [N, 3]\n                        const torch::Tensor &covars,                   // [N, 3, 3]\n                        const torch::Tensor &viewmats,                 // [C, 4, 4]\n                        const at::optional<torch::Tensor> &v_means_c,  // [C, N, 3]\n                        const at::optional<torch::Tensor> &v_covars_c, // [C, N, 3, 3]\n                        const bool means_requires_grad, const bool covars_requires_grad,\n                        const bool viewmats_requires_grad);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nlidar_proj_fwd_tensor(const torch::Tensor &means,  // [C, N, 3]\n                      const torch::Tensor &covars,  // [C, N, 3, 3]\n                      const float eps2d\n);\n\nstd::tuple<torch::Tensor, torch::Tensor>\nlidar_proj_bwd_tensor(const torch::Tensor &means,     // [C, N, 3]\n                      const torch::Tensor &covars,    // [C, N, 3, 3]\n                      const float eps2d,\n                      const torch::Tensor &v_means2d, // [C, N, 2]\n                      const torch::Tensor &v_covars2d, // [C, N, 2, 2]\n                      const torch::Tensor &v_depth_compensations // [C, N, 2]\n);\n\ntorch::Tensor compute_pix_velocity_fwd_tensor( \n    const torch::Tensor &p_view,  // [C, N, 3]\n    const torch::Tensor &lin_vel, // [C, N, 3]\n    const torch::Tensor &ang_vel,  // [C, N, 3]\n    const torch::Tensor &v_view,  // [C, N, 3]\n    const torch::Tensor &Ks,  // [C, 3, 3]\n    const uint32_t width, \n    const uint32_t height\n);\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_pix_velocity_bwd_tensor( \n    const torch::Tensor &p_view,  // [C, N, 3]\n    const torch::Tensor &lin_vel, // [C, N, 3]\n    const torch::Tensor &ang_vel,  // [C, N, 3]\n    const torch::Tensor &v_view,  // [C, N, 3]\n    const torch::Tensor &Ks,  // [C, 3, 3]\n    const uint32_t width, \n    const uint32_t height,\n    const torch::Tensor &v_pix_velocity  // [C, N, 3]\n);\n\ntorch::Tensor compute_lidar_velocity_fwd_tensor( \n    const torch::Tensor &p_view,  // [C, N, 3]\n    const torch::Tensor &lin_vel, // [C, 3]\n    const torch::Tensor &ang_vel,  // [C, 3]\n    const torch::Tensor &v_view  // [C, N, 3]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_lidar_velocity_bwd_tensor( \n    const torch::Tensor &p_view,  // [C, N, 3]\n    const torch::Tensor &lin_vel, // [C, N, 3]\n    const torch::Tensor &ang_vel,  // [C, N, 3]\n    const torch::Tensor &v_view,  // [C, N, 3]\n    const torch::Tensor &v_spherical_velocity  // [C, N, 3]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,  // [N, 4] optional\n    const at::optional<torch::Tensor> &scales, // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const torch::Tensor &linear_velocity,      // [C, 3]\n    const torch::Tensor &angular_velocity,     // [C, 3]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    const float eps2d,\n    const float near_plane,\n    const float far_plane,\n    const float radius_clip,\n    const bool calc_compensations);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                         // [N, 3]\n    const at::optional<torch::Tensor> &covars,          // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,           // [N, 4] optional\n    const at::optional<torch::Tensor> &scales,          // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,                      // [C, 4, 4]\n    const torch::Tensor &Ks,                            // [C, 3, 3]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const torch::Tensor &linear_velocity,               // [C, 3]\n    const torch::Tensor &angular_velocity,              // [C, 3]\n    const torch::Tensor &rolling_shutter_time,          // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &radii,                         // [C, N, 2]\n    const torch::Tensor &conics,                        // [C, N, 3]\n    const at::optional<torch::Tensor> &compensations,   // [C, N] optional\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [C, N, 2]\n    const torch::Tensor &v_depths,                      // [C, N]\n    const torch::Tensor &v_conics,                      // [C, N, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [C, N] optional\n    const torch::Tensor &v_pix_vels,                    // [C, N, 2]\n    const bool viewmats_requires_grad);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_lidar_projection_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,  // [N, 4] optional\n    const at::optional<torch::Tensor> &scales, // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const float min_elevation,\n    const float max_elevation,\n    const float min_azimuth,\n    const float max_azimuth,\n    const torch::Tensor &linear_velocity,      // [C, 3]\n    const torch::Tensor &angular_velocity,     // [C, 3]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    const float eps2d,\n    const float near_plane,\n    const float far_plane,\n    const float radius_clip,\n    const bool calc_compensations);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_lidar_projection_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                         // [N, 3]\n    const at::optional<torch::Tensor> &covars,          // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,           // [N, 4] optional\n    const at::optional<torch::Tensor> &scales,          // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,                      // [C, 4, 4]\n    const float min_elevation,\n    const float max_elevation,\n    const float min_azimuth,\n    const float max_azimuth,\n    const torch::Tensor &linear_velocity,               // [C, 3]\n    const torch::Tensor &angular_velocity,              // [C, 3]\n    const torch::Tensor &rolling_shutter_time,          // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &radii,                         // [C, N, 2]\n    const torch::Tensor &conics,                        // [C, N, 3]\n    const at::optional<torch::Tensor> &compensations,   // [C, N] optional\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [C, N, 2]\n    const torch::Tensor &v_depths,                      // [C, N]\n    const torch::Tensor &v_conics,                      // [C, N, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [C, N] optional\n    const torch::Tensor &v_pix_vels,                    // [C, N, 2]\n    const torch::Tensor &v_depth_compensations,         // [C, N, 2]\n    const bool viewmats_requires_grad);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nisect_tiles_tensor(const torch::Tensor &means2d, // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &radii,   // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &depths,  // [C, N] or [nnz]\n                   const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n                   const at::optional<torch::Tensor> &gaussian_ids, // [nnz]\n                   const uint32_t C, const uint32_t tile_size,\n                   const uint32_t tile_width, const uint32_t tile_height,\n                   const bool sort, const bool double_buffer);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nisect_lidar_tiles_tensor(const torch::Tensor &means2d, // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &radii,   // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &depths,  // [C, N] or [nnz]\n                   const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n                   const at::optional<torch::Tensor> &gaussian_ids, // [nnz]\n                   const uint32_t C,\n                   const torch::Tensor &elev_boundaries,\n                   const float tile_azim_resolution,\n                   const float min_azim,\n                   const bool sort, const bool double_buffer);\n\ntorch::Tensor isect_offset_encode_tensor(const torch::Tensor &isect_ids, // [n_isects]\n                                         const uint32_t C, const uint32_t tile_width,\n                                         const uint32_t tile_height);\n\nstd::tuple<torch::Tensor, torch::Tensor>\nmap_points_to_lidar_tiles_tensor(\n    const torch::Tensor &points2d, // [C, N, 2] or [nnz, 2]\n    const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n    const uint32_t C,\n    const torch::Tensor &elev_boundaries, // [M] \n    const float tile_azim_resolution, // [1]\n    const float min_azim, // [1]\n    const bool sort, const bool double_buffer\n);\n\ntorch::Tensor points_mapping_offset_encode_tensor(const torch::Tensor &point_ids, // [n_points]\n                                         const uint32_t C, const uint32_t tile_width,\n                                         const uint32_t tile_height);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> rasterize_to_pixels_fwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2]\n    const torch::Tensor &conics,                    // [C, N, 3]\n    const torch::Tensor &colors,                    // [C, N, D]\n    const torch::Tensor &opacities,                 // [N]\n    const torch::Tensor &pix_vels,                  // [C, N, 2]\n    const torch::Tensor &rolling_shutter_time,      // [C]\n    const at::optional<torch::Tensor> &backgrounds, // [C, D]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, const uint32_t tile_size,\n    // rolling shutter direction\n    const uint32_t rolling_shutter_direction,    // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n);\n\ntorch::Tensor populate_image_from_points_tensor(\n    // Points to fill the raster image with\n    const torch::Tensor &points,   // [C, N, 5] or [nnz, 5]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, \n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> rasterize_to_points_fwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2]\n    const torch::Tensor &conics,                    // [C, N, 3]\n    const torch::Tensor &colors,                    // [C, N, D]\n    const torch::Tensor &opacities,                 // [N]\n    const torch::Tensor &pix_vels,                  // [C, N, 3]\n    const torch::Tensor &depth_compensations,     // [C, N, 2]\n    const at::optional<torch::Tensor> &backgrounds, // [C, D]\n    // Points to rasterize\n    const torch::Tensor &raster_pts, // [C, image_height, image_width, 4]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, \n    const uint32_t tile_width, const uint32_t tile_height,\n    // compute alphas until point\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids,   // [n_isects]\n    // depth channel index\n    const uint32_t depth_channel_idx\n);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nrasterize_to_pixels_bwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2]\n    const torch::Tensor &conics,                    // [C, N, 3]\n    const torch::Tensor &colors,                    // [C, N, 3]\n    const torch::Tensor &opacities,                 // [N]\n    const torch::Tensor &pix_vels,                  // [C, N, 2]\n    const torch::Tensor &rolling_shutter_time,      // [C]\n    const at::optional<torch::Tensor> &backgrounds, // [C, 3]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, const uint32_t tile_size,\n    // shutter direction\n    const uint32_t rolling_shutter_direction,    // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids,  // [n_isects]\n    // forward outputs\n    const torch::Tensor &render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &last_ids,      // [C, image_height, image_width]\n    // gradients of outputs\n    const torch::Tensor &v_render_colors, // [C, image_height, image_width, 3]\n    const torch::Tensor &v_render_alphas, // [C, image_height, image_width, 1]\n    // options\n    bool absgrad);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nrasterize_to_points_bwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2]\n    const torch::Tensor &conics,                    // [C, N, 3]\n    const torch::Tensor &colors,                    // [C, N, 3]\n    const torch::Tensor &opacities,                 // [N]\n    const torch::Tensor &pix_vels,                  // [C, N, 3]\n    const torch::Tensor &depth_compensations,       // [C, N, 2]\n    const at::optional<torch::Tensor> &backgrounds, // [C, 3]\n    // Points to rasterize\n    const torch::Tensor &raster_pts, // [C, image_height, image_width, 4]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, \n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids,  // [n_isects]\n    // forward outputs\n    const torch::Tensor &render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &last_ids,      // [C, image_height, image_width]\n    // gradients of outputs\n    const torch::Tensor &v_render_colors, // [C, image_height, image_width, 3]\n    const torch::Tensor &v_render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &v_alpha_sum_until_points, // [C, image_height, image_width, 1])\n    // options\n    bool absgrad,\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    const uint32_t depth_channel_idx\n);\n\nstd::tuple<torch::Tensor, torch::Tensor> rasterize_to_indices_in_range_tensor(\n    const uint32_t range_start, const uint32_t range_end, // iteration steps\n    const torch::Tensor transmittances, // [C, image_height, image_width]\n    // Gaussian parameters\n    const torch::Tensor &means2d,              // [C, N, 2]\n    const torch::Tensor &conics,               // [C, N, 3]\n    const torch::Tensor &opacities,            // [N]\n    const torch::Tensor &pix_vels,             // [C, N, 2]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    // image size\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    // shutter direction\n    const uint32_t rolling_shutter_direction,    // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n);\n\nstd::tuple<torch::Tensor, torch::Tensor> rasterize_to_indices_in_range_lidar_tensor(\n    const uint32_t range_start, const uint32_t range_end, // iteration steps\n    const torch::Tensor transmittances, // [C, image_height, image_width]\n    // Gaussian parameters\n    const torch::Tensor &means2d,   // [C, N, 2]\n    const torch::Tensor &conics,    // [C, N, 3]\n    const torch::Tensor &opacities, // [N]\n    const torch::Tensor &pix_vels,             // [C, N, 3]\n    // Points to rasterize\n    const torch::Tensor &raster_pts,  // [C, image_height, image_width, 4]\n    // image size\n    const uint32_t image_width, const uint32_t image_height,\n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n);\n\n\ntorch::Tensor compute_sh_fwd_tensor(const uint32_t degrees_to_use,\n                                    torch::Tensor &dirs,              // [..., 3]\n                                    torch::Tensor &coeffs,            // [..., K, 3]\n                                    at::optional<torch::Tensor> masks // [...]\n);\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_sh_bwd_tensor(const uint32_t K, const uint32_t degrees_to_use,\n                      torch::Tensor &dirs,               // [..., 3]\n                      torch::Tensor &coeffs,             // [..., K, 3]\n                      at::optional<torch::Tensor> masks, // [...]\n                      torch::Tensor &v_colors,           // [..., 3]\n                      bool compute_v_dirs);\n\n/****************************************************************************************\n * Packed Version\n ****************************************************************************************/\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor,\n           torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_packed_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6]\n    const at::optional<torch::Tensor> &quats,  // [N, 3]\n    const at::optional<torch::Tensor> &scales, // [N, 3]\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width, const uint32_t image_height, \n    const torch::Tensor &linear_velocity,       // [C, 3]\n    const torch::Tensor &angular_velocity,      // [C, 3]\n    const torch::Tensor &rolling_shutter_time,  // [C]\n    const float eps2d,\n    const float near_plane, const float far_plane, const float radius_clip,\n    const bool calc_compensations);\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_packed_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6]\n    const at::optional<torch::Tensor> &quats,  // [N, 4]\n    const at::optional<torch::Tensor> &scales, // [N, 3]\n    const at::optional<torch::Tensor> &velocities, // [N, 3] \n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width, const uint32_t image_height, \n    const torch::Tensor &linear_velocity,       // [C, 3]\n    const torch::Tensor &angular_velocity,      // [C, 3]\n    const torch::Tensor &rolling_shutter_time,  // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &camera_ids,                  // [nnz]\n    const torch::Tensor &gaussian_ids,                // [nnz]\n    const torch::Tensor &conics,                      // [nnz, 3]\n    const at::optional<torch::Tensor> &compensations, // [nnz] optional\n    const torch::Tensor &pix_vels,                    // [nnz, 2]\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [nnz, 2]\n    const torch::Tensor &v_depths,                      // [nnz]\n    const torch::Tensor &v_conics,                      // [nnz, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [nnz] optional\n    const torch::Tensor &v_pix_vels,                    // [nnz, 2]\n    const bool viewmats_requires_grad, const bool sparse_grad);\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_relocation_tensor(\n    torch::Tensor& opacities,\n    torch::Tensor& scales,\n    torch::Tensor& ratios,\n    torch::Tensor& binoms,\n    const int n_max\n);\n"
  },
  {
    "path": "gsplat/cuda/csrc/ext.cpp",
    "content": "#include \"bindings.h\"\n#include <torch/extension.h>\n\nPYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {\n    m.def(\"compute_sh_fwd\", &compute_sh_fwd_tensor);\n    m.def(\"compute_sh_bwd\", &compute_sh_bwd_tensor);\n\n    m.def(\"quat_scale_to_covar_preci_fwd\", &quat_scale_to_covar_preci_fwd_tensor);\n    m.def(\"quat_scale_to_covar_preci_bwd\", &quat_scale_to_covar_preci_bwd_tensor);\n\n    m.def(\"persp_proj_fwd\", &persp_proj_fwd_tensor);\n    m.def(\"persp_proj_bwd\", &persp_proj_bwd_tensor);\n\n    m.def(\"lidar_proj_fwd\", &lidar_proj_fwd_tensor);\n    m.def(\"lidar_proj_bwd\", &lidar_proj_bwd_tensor);\n\n    m.def(\"world_to_cam_fwd\", &world_to_cam_fwd_tensor);\n    m.def(\"world_to_cam_bwd\", &world_to_cam_bwd_tensor);\n\n    m.def(\"compute_pix_velocity_fwd\", &compute_pix_velocity_fwd_tensor);\n    m.def(\"compute_pix_velocity_bwd\", &compute_pix_velocity_bwd_tensor);\n    \n    m.def(\"compute_lidar_velocity_fwd\", &compute_lidar_velocity_fwd_tensor);\n    m.def(\"compute_lidar_velocity_bwd\", &compute_lidar_velocity_bwd_tensor);\n\n    m.def(\"fully_fused_projection_fwd\", &fully_fused_projection_fwd_tensor);\n    m.def(\"fully_fused_projection_bwd\", &fully_fused_projection_bwd_tensor);\n\n    m.def(\"fully_fused_lidar_projection_fwd\", &fully_fused_lidar_projection_fwd_tensor);\n    m.def(\"fully_fused_lidar_projection_bwd\", &fully_fused_lidar_projection_bwd_tensor);\n\n    m.def(\"isect_tiles\", &isect_tiles_tensor);\n    m.def(\"isect_lidar_tiles\", &isect_lidar_tiles_tensor);\n    m.def(\"isect_offset_encode\", &isect_offset_encode_tensor);\n\n    m.def(\"map_points_to_lidar_tiles\", &map_points_to_lidar_tiles_tensor);\n    m.def(\"points_mapping_offset_encode\", &points_mapping_offset_encode_tensor);\n    m.def(\"populate_image_from_points\", &populate_image_from_points_tensor);\n\n    m.def(\"rasterize_to_pixels_fwd\", &rasterize_to_pixels_fwd_tensor);\n    m.def(\"rasterize_to_pixels_bwd\", &rasterize_to_pixels_bwd_tensor);\n\n    m.def(\"rasterize_to_points_fwd\", &rasterize_to_points_fwd_tensor);\n    m.def(\"rasterize_to_points_bwd\", &rasterize_to_points_bwd_tensor);\n\n    m.def(\"rasterize_to_indices_in_range\", &rasterize_to_indices_in_range_tensor);\n    m.def(\"rasterize_to_indices_in_range_lidar\", &rasterize_to_indices_in_range_lidar_tensor);\n\n    // packed version\n    m.def(\"fully_fused_projection_packed_fwd\", &fully_fused_projection_packed_fwd_tensor);\n    m.def(\"fully_fused_projection_packed_bwd\", &fully_fused_projection_packed_bwd_tensor);\n    \n    m.def(\"compute_relocation\", &compute_relocation_tensor);\n}"
  },
  {
    "path": "gsplat/cuda/csrc/helpers.cuh",
    "content": "#ifndef GSPLAT_CUDA_HELPERS_H\n#define GSPLAT_CUDA_HELPERS_H\n\n#include \"third_party/glm/glm/glm.hpp\"\n#include \"third_party/glm/glm/gtc/type_ptr.hpp\"\n#include <cooperative_groups.h>\n#include <cooperative_groups/reduce.h>\n\n#include <ATen/cuda/Atomic.cuh>\n\n#define PRAGMA_UNROLL _Pragma(\"unroll\")\n\n#define RAD_TO_DEG 57.2957795131f\n\nnamespace cg = cooperative_groups;\n\ntemplate <uint32_t DIM, class T, class WarpT>\ninline __device__ void warpSum(T *val, WarpT &warp) {\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < DIM; i++) {\n        val[i] = cg::reduce(warp, val[i], cg::plus<T>());\n    }\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(float3 &val, WarpT &warp) {\n    val.x = cg::reduce(warp, val.x, cg::plus<float>());\n    val.y = cg::reduce(warp, val.y, cg::plus<float>());\n    val.z = cg::reduce(warp, val.z, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(float2 &val, WarpT &warp) {\n    val.x = cg::reduce(warp, val.x, cg::plus<float>());\n    val.y = cg::reduce(warp, val.y, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(float &val, WarpT &warp) {\n    val = cg::reduce(warp, val, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::vec4 &val, WarpT &warp) {\n    val.x = cg::reduce(warp, val.x, cg::plus<float>());\n    val.y = cg::reduce(warp, val.y, cg::plus<float>());\n    val.z = cg::reduce(warp, val.z, cg::plus<float>());\n    val.w = cg::reduce(warp, val.w, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::vec3 &val, WarpT &warp) {\n    val.x = cg::reduce(warp, val.x, cg::plus<float>());\n    val.y = cg::reduce(warp, val.y, cg::plus<float>());\n    val.z = cg::reduce(warp, val.z, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::vec2 &val, WarpT &warp) {\n    val.x = cg::reduce(warp, val.x, cg::plus<float>());\n    val.y = cg::reduce(warp, val.y, cg::plus<float>());\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::mat4 &val, WarpT &warp) {\n    warpSum(val[0], warp);\n    warpSum(val[1], warp);\n    warpSum(val[2], warp);\n    warpSum(val[3], warp);\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::mat3 &val, WarpT &warp) {\n    warpSum(val[0], warp);\n    warpSum(val[1], warp);\n    warpSum(val[2], warp);\n}\n\ntemplate <class WarpT> inline __device__ void warpSum(glm::mat2 &val, WarpT &warp) {\n    warpSum(val[0], warp);\n    warpSum(val[1], warp);\n}\n\ntemplate <class WarpT> inline __device__ void warpMax(float &val, WarpT &warp) {\n    val = cg::reduce(warp, val, cg::greater<float>());\n}\n\ninline __device__ void compute_pix_velocity(\n    const glm::vec3 p_view,\n    const glm::vec3 lin_vel,\n    const glm::vec3 ang_vel,\n    const glm::vec3 vel_view,\n    const float fx,\n    const float fy,\n    const float cx,\n    const float cy,\n    const uint32_t width,\n    const uint32_t height,\n    glm::vec2 &total_vel_pix\n) {\n\n    float x = p_view[0], y = p_view[1], z = p_view[2];\n\n    float tan_fovx = 0.5f * width / fx;\n    float tan_fovy = 0.5f * height / fy;\n    float lim_x_pos = (width - cx) / fx + 0.3f * tan_fovx;\n    float lim_x_neg = cx / fx + 0.3f * tan_fovx;\n    float lim_y_pos = (height - cy) / fy + 0.3f * tan_fovy;\n    float lim_y_neg = cy / fy + 0.3f * tan_fovy;\n\n    float rz = 1.f / z;\n    float rz2 = rz * rz;\n    float tx = z * min(lim_x_pos, max(-lim_x_neg, x * rz));\n    float ty = z * min(lim_y_pos, max(-lim_y_neg, y * rz));\n\n    // mat3x2 is 3 columns x 2 rows.\n    glm::mat3x2 J = glm::mat3x2(fx * rz, 0.f,                  // 1st column\n                                0.f, fy * rz,                  // 2nd column\n                                -fx * tx * rz2, -fy * ty * rz2 // 3rd column\n    );\n\n    glm::vec3 rot_part = glm::cross(ang_vel, p_view);\n    glm::vec3 total_vel = lin_vel + rot_part - vel_view;\n    // negative sign: move points to the opposite direction as the camera\n    total_vel_pix = -J * total_vel;\n}\n\ninline __device__ void compute_lidar_velocity(\n    const glm::vec3 p_view,\n    const glm::vec3 lin_vel,\n    const glm::vec3 ang_vel,\n    const glm::vec3 vel_view,\n    glm::mat3 &J,\n    glm::vec3 &total_vel_pix\n) {\n    glm::vec3 rot_part = glm::cross(ang_vel, p_view);\n    glm::vec3 total_vel = lin_vel + rot_part - vel_view;\n\n    if (glm::length(J[0]) == 0) {\n        const float x2 = p_view.x * p_view.x;\n        const float y2 = p_view.y * p_view.y;\n        const float z2 = p_view.z * p_view.z;\n        const float r2 = x2 + y2 + z2;\n        const float rinv = rsqrtf(r2);\n        const float sqrtx2y2 = hypotf(p_view.x, p_view.y);\n        const float sqrtx2y2_inv = rhypotf(p_view.x, p_view.y);\n        const float xz = p_view.x * p_view.z;\n        const float yz = p_view.y * p_view.z;\n        const float r2sqrtx2y2_inv = 1.f / (r2) * sqrtx2y2_inv;\n\n        // column major, mat3x2 is 3 columns x 2 rows.\n        J = glm::mat3(\n            -p_view.y / (x2 + y2) * RAD_TO_DEG, -xz * r2sqrtx2y2_inv * RAD_TO_DEG, p_view.x * rinv, // 1st column\n            p_view.x / (x2 + y2) * RAD_TO_DEG,  -yz * r2sqrtx2y2_inv * RAD_TO_DEG, p_view.y * rinv,// 2nd column\n            0.f                  ,                      sqrtx2y2 / r2 * RAD_TO_DEG,   p_view.z * rinv    // 3rd column\n        );\n    }\n\n    // negative sign: move points to the opposite direction as the camera\n    total_vel_pix = -J * total_vel;\n}\n\ninline __device__ void compute_and_sum_pix_velocity_vjp(\n    const glm::vec3 p_view,\n    const glm::vec3 lin_vel,\n    const glm::vec3 ang_vel,\n    const glm::vec3 vel_view,\n    const float fx,\n    const float fy,\n    const float cx,\n    const float cy,\n    const uint32_t width,\n    const uint32_t height,\n    const glm::vec2 v_pix_velocity,\n    glm::vec3 &v_p_view_accumulator,\n    glm::vec3 &v_vel_view)\n{\n    float x = p_view[0], y = p_view[1], z = p_view[2];\n\n    float tan_fovx = 0.5f * width / fx;\n    float tan_fovy = 0.5f * height / fy;\n    float lim_x_pos = (width - cx) / fx + 0.3f * tan_fovx;\n    float lim_x_neg = cx / fx + 0.3f * tan_fovx;\n    float lim_y_pos = (height - cy) / fy + 0.3f * tan_fovy;\n    float lim_y_neg = cy / fy + 0.3f * tan_fovy;\n\n    float rz = 1.f / z;\n    float rz2 = rz * rz;\n    float tx = z * min(lim_x_pos, max(-lim_x_neg, x * rz));\n    float ty = z * min(lim_y_pos, max(-lim_y_neg, y * rz));\n\n    // mat3x2 is 3 columns x 2 rows.\n    glm::mat3x2 J = glm::mat3x2(fx * rz, 0.f,                  // 1st column\n                                0.f, fy * rz,                  // 2nd column\n                                -fx * tx * rz2, -fy * ty * rz2 // 3rd column\n    );\n\n    glm::vec3 rot_part = glm::cross(ang_vel, p_view);\n    glm::vec3 total_vel = lin_vel + rot_part - vel_view;\n\n    glm::mat3x2 dJ_dz = glm::mat3x2(\n        -fx * rz2,\n        0.f,\n        0.f,\n        -fy * rz2,\n        2.f * fx * tx * rz2 * rz,\n        2.f * fy * ty * rz2 * rz\n    );\n\n    if (x * rz <= lim_x_pos && x * rz >= -lim_x_neg) {\n        v_p_view_accumulator.x += v_pix_velocity.x * fx * rz2 * total_vel.z; //-glm::dot(v_pix_velocity, dJ_dx * total_vel);\n    } else {\n        v_p_view_accumulator.z += v_pix_velocity.x * fx * rz2 * rz * tx * total_vel.z; //-glm::dot(v_pix_velocity, dJ_dx * rz * tx * total_vel);\n    }\n    if (y * rz <= lim_y_pos && y * rz >= -lim_y_neg) {\n        v_p_view_accumulator.y += v_pix_velocity.y * fy * rz2 * total_vel.z; //glm::dot(v_pix_velocity, dJ_dy * total_vel);\n    } else {\n        v_p_view_accumulator.z += v_pix_velocity.y * fy * rz2 * rz * ty * total_vel.z; // glm::dot(v_pix_velocity, dJ_dy * rz * ty * total_vel);\n    }\n    v_p_view_accumulator.z -= glm::dot(v_pix_velocity, dJ_dz * total_vel);\n\n    glm::vec3 v_rot_part = -glm::transpose(J) * v_pix_velocity; // = v_total_vel\n\n    // (v_rot_part^T * cross_prod_matrix(ang_vel))^T\n    // = cross_prod_matrix(ang_vel)^T * v_rot_part // ... skew-symmetry\n    // = -cross_prod_matrix(ang_vel) * v_rot_part\n    // = -cross(ang_vel, v_rot_part)\n    glm::vec3 v_p_view_rot = -glm::cross(ang_vel, v_rot_part);\n\n    v_p_view_accumulator.x += v_p_view_rot[0];\n    v_p_view_accumulator.y += v_p_view_rot[1];\n    v_p_view_accumulator.z += v_p_view_rot[2];\n\n    v_vel_view -= v_rot_part;\n}\n\ninline __device__ void compute_and_sum_lidar_velocity_vjp(\n    const glm::vec3 p_view,\n    const glm::vec3 lin_vel,\n    const glm::vec3 ang_vel,\n    const glm::vec3 vel_view,\n    const glm::vec3 v_pix_velocity,\n    glm::vec3 &v_p_view_accumulator,\n    glm::vec3 &v_vel_view)\n{\n    glm::vec3 rot_part = glm::cross(ang_vel, p_view);\n    glm::vec3 total_vel = lin_vel + rot_part - vel_view;\n\n    const float x = p_view.x;\n    const float y = p_view.y;\n    const float z = p_view.z;\n    const float x2 = x * x;\n    const float y2 = y * y;\n    const float z2 = z * z;\n    const float x4 = x2 * x2;\n    const float y4 = y2 * y2;\n    const float x2plusy2 = x2 + y2;\n    const float sqrtx2y2 = hypot(x, y);\n    const float sqrtx2y2_inv = rhypot(x, y);\n    const float x2plusy2squared = x2plusy2 * x2plusy2;\n    const float x2plusy2pow3by2 = sqrtx2y2 * x2plusy2;\n    const float r2 = x2 + y2 + z2;\n    const float r4 = r2 * r2;\n    const float rinv = rsqrtf(r2);\n    const float r3_inv = 1 / r2 * rinv;\n    const float xz = x * z;\n    const float xy = x * y;\n    const float yz = y * z;\n    const float r2sqrtx2y2_inv = 1.f / (r2) * sqrtx2y2_inv;\n    const float xyz = x * y * z;\n    const float denom1 = 1.f / (x2plusy2pow3by2 * r4);\n    const float denom2 = 1.f / r4 * sqrtx2y2_inv;\n\n    // column major, mat3x2 is 3 columns x 2 rows.\n    glm::mat3 J = glm::mat3(\n        -p_view.y / (x2 + y2) * RAD_TO_DEG, -xz * r2sqrtx2y2_inv * RAD_TO_DEG, p_view.x * rinv, // 1st column\n        p_view.x / (x2 + y2) * RAD_TO_DEG,  -yz * r2sqrtx2y2_inv * RAD_TO_DEG, p_view.y * rinv, // 2nd column\n        0.f,                                        sqrtx2y2 / r2 * RAD_TO_DEG,   p_view.z * rinv  // 3rd column\n    );\n\n\n    glm::mat3 dJ_dx = glm::mat3(\n        2.f * xy / x2plusy2squared * RAD_TO_DEG , z * (2.f * x4 + x2 * y2 - y2 * (y2 + z2)) * denom1 * RAD_TO_DEG, (y2 + z2) * r3_inv,\n        (y2 - x2) / x2plusy2squared * RAD_TO_DEG, xyz * (3.f * x2 + 3.f * y2 + z2) * denom1 * RAD_TO_DEG       , - xy * r3_inv,\n        0.f                                            , -x * (x2 + y2 - z2) * denom2 * RAD_TO_DEG                      , - xz * r3_inv\n    );\n\n    glm::mat3 dJ_dy = glm::mat3(\n        (y2 - x2) / x2plusy2squared * RAD_TO_DEG, xyz * (3.f * x2 + 3.f * y2 + z2) * denom1 * RAD_TO_DEG     , - xy * r3_inv,\n        -2.f * xy / x2plusy2squared * RAD_TO_DEG, -z * (x4 + x2 * (z2 - y2) - 2.f * y4) * denom1 * RAD_TO_DEG, (x2 + z2) * r3_inv,\n        0.f                                            , -y * (x2 + y2 - z2) * denom2 * RAD_TO_DEG                  , - yz * r3_inv\n    );\n\n    glm::mat3 dJ_dz = glm::mat3(\n        0.f                        , -x * (x2 + y2 - z2) * denom2 * RAD_TO_DEG, - xz * r3_inv,\n        0.f                        , -y * (x2 + y2 - z2) * denom2 * RAD_TO_DEG, - yz * r3_inv,\n        0.f                        , -2.f * z * sqrtx2y2 / r4 * RAD_TO_DEG    , (x2 + y2) * r3_inv\n    );\n\n    v_p_view_accumulator.x -= glm::dot(v_pix_velocity, dJ_dx * total_vel);\n    v_p_view_accumulator.y -= glm::dot(v_pix_velocity, dJ_dy * total_vel);\n    v_p_view_accumulator.z -= glm::dot(v_pix_velocity, dJ_dz * total_vel);\n\n    glm::vec3 v_rot_part = -glm::transpose(J) * v_pix_velocity; // = v_total_vel\n\n    // (v_rot_part^T * cross_prod_matrix(ang_vel))^T\n    // = cross_prod_matrix(ang_vel)^T * v_rot_part // ... skew-symmetry\n    // = -cross_prod_matrix(ang_vel) * v_rot_part\n    // = -cross(ang_vel, v_rot_part)\n    glm::vec3 v_p_view_rot = -glm::cross(ang_vel, v_rot_part);\n\n    v_p_view_accumulator.x += v_p_view_rot[0];\n    v_p_view_accumulator.y += v_p_view_rot[1];\n    v_p_view_accumulator.z += v_p_view_rot[2];\n\n    v_vel_view -= v_rot_part;\n}\n\n#endif // GSPLAT_CUDA_HELPERS_H"
  },
  {
    "path": "gsplat/cuda/csrc/projection.cu",
    "content": "#include \"bindings.h\"\n#include \"helpers.cuh\"\n#include \"third_party/glm/glm/glm.hpp\"\n#include \"third_party/glm/glm/gtc/type_ptr.hpp\"\n#include \"utils.cuh\"\n#include <cooperative_groups.h>\n#include <cooperative_groups/reduce.h>\n#include <cub/cub.cuh>\n#include <cuda.h>\n#include <cuda_runtime.h>\n\nnamespace cg = cooperative_groups;\n\n/****************************************************************************\n * Quat-Scale to Covariance and Precision\n ****************************************************************************/\n\n__global__ void\nquat_scale_to_covar_preci_fwd_kernel(const uint32_t N,\n                                     const float *__restrict__ quats,  // [N, 4]\n                                     const float *__restrict__ scales, // [N, 3]\n                                     const bool triu,\n                                     // outputs\n                                     float *__restrict__ covars, // [N, 3, 3] or [N, 6]\n                                     float *__restrict__ precis  // [N, 3, 3] or [N, 6]\n) {\n    // parallelize over N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= N) {\n        return;\n    }\n\n    // shift pointers to the current gaussian\n    quats += idx * 4;\n    scales += idx * 3;\n\n    // compute the matrices\n    glm::mat3 covar, preci;\n    quat_scale_to_covar_preci(glm::make_vec4(quats), glm::make_vec3(scales),\n                              covars ? &covar : nullptr, precis ? &preci : nullptr);\n\n    // write to outputs: glm is column-major but we want row-major\n    if (covars != nullptr) {\n        if (triu) {\n            covars += idx * 6;\n            covars[0] = covar[0][0];\n            covars[1] = covar[0][1];\n            covars[2] = covar[0][2];\n            covars[3] = covar[1][1];\n            covars[4] = covar[1][2];\n            covars[5] = covar[2][2];\n        } else {\n            covars += idx * 9;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    covars[i * 3 + j] = covar[j][i];\n                }\n            }\n        }\n    }\n    if (precis != nullptr) {\n        if (triu) {\n            precis += idx * 6;\n            precis[0] = preci[0][0];\n            precis[1] = preci[0][1];\n            precis[2] = preci[0][2];\n            precis[3] = preci[1][1];\n            precis[4] = preci[1][2];\n            precis[5] = preci[2][2];\n        } else {\n            precis += idx * 9;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    precis[i * 3 + j] = preci[j][i];\n                }\n            }\n        }\n    }\n}\n\n__global__ void quat_scale_to_covar_preci_bwd_kernel(\n    const uint32_t N,\n    // fwd inputs\n    const float *__restrict__ quats,  // [N, 4]\n    const float *__restrict__ scales, // [N, 3]\n    // grad outputs\n    const float *__restrict__ v_covars, // [N, 3, 3] or [N, 6]\n    const float *__restrict__ v_precis, // [N, 3, 3] or [N, 6]\n    const bool triu,\n    // grad inputs\n    float *__restrict__ v_scales, // [N, 3]\n    float *__restrict__ v_quats   // [N, 4]\n) {\n    // parallelize over N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= N) {\n        return;\n    }\n\n    // shift pointers to the current gaussian\n    v_scales += idx * 3;\n    v_quats += idx * 4;\n\n    glm::vec4 quat = glm::make_vec4(quats + idx * 4);\n    glm::vec3 scale = glm::make_vec3(scales + idx * 3);\n    glm::mat3 rotmat = quat_to_rotmat(quat);\n\n    glm::vec4 v_quat(0.f);\n    glm::vec3 v_scale(0.f);\n    if (v_covars != nullptr) {\n        // glm is column-major, input is row-major\n        glm::mat3 v_covar;\n        if (triu) {\n            v_covars += idx * 6;\n            v_covar = glm::mat3(v_covars[0], v_covars[1] * .5f, v_covars[2] * .5f,\n                                v_covars[1] * .5f, v_covars[3], v_covars[4] * .5f,\n                                v_covars[2] * .5f, v_covars[4] * .5f, v_covars[5]);\n        } else {\n            v_covars += idx * 9;\n            v_covar = glm::transpose(glm::make_mat3(v_covars));\n        }\n        quat_scale_to_covar_vjp(quat, scale, rotmat, v_covar, v_quat, v_scale);\n    }\n    if (v_precis != nullptr) {\n        // glm is column-major, input is row-major\n        glm::mat3 v_preci;\n        if (triu) {\n            v_precis += idx * 6;\n            v_preci = glm::mat3(v_precis[0], v_precis[1] * .5f, v_precis[2] * .5f,\n                                v_precis[1] * .5f, v_precis[3], v_precis[4] * .5f,\n                                v_precis[2] * .5f, v_precis[4] * .5f, v_precis[5]);\n        } else {\n            v_precis += idx * 9;\n            v_preci = glm::transpose(glm::make_mat3(v_precis));\n        }\n        quat_scale_to_preci_vjp(quat, scale, rotmat, v_preci, v_quat, v_scale);\n    }\n\n    // write out results\n    PRAGMA_UNROLL\n    for (uint32_t k = 0; k < 3; ++k) {\n        v_scales[k] = v_scale[k];\n    }\n    PRAGMA_UNROLL\n    for (uint32_t k = 0; k < 4; ++k) {\n        v_quats[k] = v_quat[k];\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\nquat_scale_to_covar_preci_fwd_tensor(const torch::Tensor &quats,  // [N, 4]\n                                     const torch::Tensor &scales, // [N, 3]\n                                     const bool compute_covar, const bool compute_preci,\n                                     const bool triu) {\n    DEVICE_GUARD(quats);\n    CHECK_INPUT(quats);\n    CHECK_INPUT(scales);\n\n    uint32_t N = quats.size(0);\n\n    torch::Tensor covars, precis;\n    if (compute_covar) {\n        if (triu) {\n            covars = torch::empty({N, 6}, quats.options());\n        } else {\n            covars = torch::empty({N, 3, 3}, quats.options());\n        }\n    }\n    if (compute_preci) {\n        if (triu) {\n            precis = torch::empty({N, 6}, quats.options());\n        } else {\n            precis = torch::empty({N, 3, 3}, quats.options());\n        }\n    }\n\n    if (N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        quat_scale_to_covar_preci_fwd_kernel<<<(N + N_THREADS - 1) / N_THREADS,\n                                               N_THREADS, 0, stream>>>(\n            N, quats.data_ptr<float>(), scales.data_ptr<float>(), triu,\n            compute_covar ? covars.data_ptr<float>() : nullptr,\n            compute_preci ? precis.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(covars, precis);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor> quat_scale_to_covar_preci_bwd_tensor(\n    const torch::Tensor &quats,                  // [N, 4]\n    const torch::Tensor &scales,                 // [N, 3]\n    const at::optional<torch::Tensor> &v_covars, // [N, 3, 3] or [N, 6]\n    const at::optional<torch::Tensor> &v_precis, // [N, 3, 3] or [N, 6]\n    const bool triu) {\n    DEVICE_GUARD(quats);\n    CHECK_INPUT(quats);\n    CHECK_INPUT(scales);\n    if (v_covars.has_value()) {\n        CHECK_INPUT(v_covars.value());\n    }\n    if (v_precis.has_value()) {\n        CHECK_INPUT(v_precis.value());\n    }\n\n    uint32_t N = quats.size(0);\n\n    torch::Tensor v_scales = torch::empty_like(scales);\n    torch::Tensor v_quats = torch::empty_like(quats);\n\n    if (N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        quat_scale_to_covar_preci_bwd_kernel<<<(N + N_THREADS - 1) / N_THREADS,\n                                               N_THREADS, 0, stream>>>(\n            N, quats.data_ptr<float>(), scales.data_ptr<float>(),\n            v_covars.has_value() ? v_covars.value().data_ptr<float>() : nullptr,\n            v_precis.has_value() ? v_precis.value().data_ptr<float>() : nullptr, triu,\n            v_scales.data_ptr<float>(), v_quats.data_ptr<float>());\n    }\n\n    return std::make_tuple(v_quats, v_scales);\n}\n\n/****************************************************************************\n * Perspective Projection\n ****************************************************************************/\n\n__global__ void persp_proj_fwd_kernel(const uint32_t C, const uint32_t N,\n                                      const float *__restrict__ means,  // [C, N, 3]\n                                      const float *__restrict__ covars, // [C, N, 3, 3]\n                                      const float *__restrict__ Ks,     // [C, 3, 3]\n                                      const uint32_t width, const uint32_t height,\n                                      float *__restrict__ means2d, // [C, N, 2]\n                                      float *__restrict__ covars2d // [C, N, 2, 2]\n) { // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    // const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += idx * 3;\n    covars += idx * 9;\n    Ks += cid * 9;\n    means2d += idx * 2;\n    covars2d += idx * 4;\n\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n    glm::mat2 covar2d;\n    glm::vec2 mean2d;\n    persp_proj(glm::make_vec3(means), glm::make_mat3(covars), fx, fy, cx, cy, width,\n               height, covar2d, mean2d);\n\n    // write to outputs: glm is column-major but we want row-major\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) { // rows\n        PRAGMA_UNROLL\n        for (uint32_t j = 0; j < 2; j++) { // cols\n            covars2d[i * 2 + j] = covar2d[j][i];\n        }\n    }\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) {\n        means2d[i] = mean2d[i];\n    }\n}\n\n__global__ void\npersp_proj_bwd_kernel(const uint32_t C, const uint32_t N,\n                      const float *__restrict__ means,  // [C, N, 3]\n                      const float *__restrict__ covars, // [C, N, 3, 3]\n                      const float *__restrict__ Ks,     // [C, 3, 3]\n                      const uint32_t width, const uint32_t height,\n                      const float *__restrict__ v_means2d,  // [C, N, 2]\n                      const float *__restrict__ v_covars2d, // [C, N, 2, 2]\n                      float *__restrict__ v_means,          // [C, N, 3]\n                      float *__restrict__ v_covars          // [C, N, 3, 3]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    // const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += idx * 3;\n    covars += idx * 9;\n    v_means += idx * 3;\n    v_covars += idx * 9;\n    Ks += cid * 9;\n    v_means2d += idx * 2;\n    v_covars2d += idx * 4;\n\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n    glm::mat3 v_covar(0.f);\n    glm::vec3 v_mean(0.f);\n    persp_proj_vjp(glm::make_vec3(means), glm::make_mat3(covars), fx, fy, cx, cy, width,\n                   height, glm::transpose(glm::make_mat2(v_covars2d)),\n                   glm::make_vec2(v_means2d), v_mean, v_covar);\n\n    // write to outputs: glm is column-major but we want row-major\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) { // rows\n        PRAGMA_UNROLL\n        for (uint32_t j = 0; j < 3; j++) { // cols\n            v_covars[i * 3 + j] = v_covar[j][i];\n        }\n    }\n\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_means[i] = v_mean[i];\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\npersp_proj_fwd_tensor(const torch::Tensor &means,  // [C, N, 3]\n                      const torch::Tensor &covars, // [C, N, 3, 3]\n                      const torch::Tensor &Ks,     // [C, 3, 3]\n                      const uint32_t width, const uint32_t height) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n    CHECK_INPUT(Ks);\n\n    uint32_t C = means.size(0);\n    uint32_t N = means.size(1);\n\n    torch::Tensor means2d = torch::empty({C, N, 2}, means.options());\n    torch::Tensor covars2d = torch::empty({C, N, 2, 2}, covars.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        persp_proj_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(),\n            Ks.data_ptr<float>(), width, height, means2d.data_ptr<float>(),\n            covars2d.data_ptr<float>());\n    }\n    return std::make_tuple(means2d, covars2d);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\npersp_proj_bwd_tensor(const torch::Tensor &means,  // [C, N, 3]\n                      const torch::Tensor &covars, // [C, N, 3, 3]\n                      const torch::Tensor &Ks,     // [C, 3, 3]\n                      const uint32_t width, const uint32_t height,\n                      const torch::Tensor &v_means2d, // [C, N, 2]\n                      const torch::Tensor &v_covars2d // [C, N, 2, 2]\n) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(v_means2d);\n    CHECK_INPUT(v_covars2d);\n\n    uint32_t C = means.size(0);\n    uint32_t N = means.size(1);\n\n    torch::Tensor v_means = torch::empty({C, N, 3}, means.options());\n    torch::Tensor v_covars = torch::empty({C, N, 3, 3}, means.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        persp_proj_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(),\n            Ks.data_ptr<float>(), width, height, v_means2d.data_ptr<float>(),\n            v_covars2d.data_ptr<float>(), v_means.data_ptr<float>(),\n            v_covars.data_ptr<float>());\n    }\n    return std::make_tuple(v_means, v_covars);\n}\n\n/****************************************************************************\n * World to Camera Transformation\n ****************************************************************************/\n\n__global__ void world_to_cam_fwd_kernel(const uint32_t C, const uint32_t N,\n                                        const float *__restrict__ means,    // [N, 3]\n                                        const float *__restrict__ covars,   // [N, 3, 3]\n                                        const float *__restrict__ viewmats, // [C, 4, 4]\n                                        float *__restrict__ means_c,        // [C, N, 3]\n                                        float *__restrict__ covars_c // [C, N, 3, 3]\n) { // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += gid * 3;\n    covars += gid * 9;\n    viewmats += cid * 16;\n\n    // glm is column-major but input is row-major\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n    if (means_c != nullptr) {\n        glm::vec3 mean_c;\n        pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n        means_c += idx * 3;\n        PRAGMA_UNROLL\n        for (uint32_t i = 0; i < 3; i++) { // rows\n            means_c[i] = mean_c[i];\n        }\n    }\n\n    // write to outputs: glm is column-major but we want row-major\n    if (covars_c != nullptr) {\n        glm::mat3 covar_c;\n        covar_world_to_cam(R, glm::make_mat3(covars), covar_c);\n        covars_c += idx * 9;\n        PRAGMA_UNROLL\n        for (uint32_t i = 0; i < 3; i++) { // rows\n            PRAGMA_UNROLL\n            for (uint32_t j = 0; j < 3; j++) { // cols\n                covars_c[i * 3 + j] = covar_c[j][i];\n            }\n        }\n    }\n}\n\n__global__ void\nworld_to_cam_bwd_kernel(const uint32_t C, const uint32_t N,\n                        const float *__restrict__ means,      // [N, 3]\n                        const float *__restrict__ covars,     // [N, 3, 3]\n                        const float *__restrict__ viewmats,   // [C, 4, 4]\n                        const float *__restrict__ v_means_c,  // [C, N, 3]\n                        const float *__restrict__ v_covars_c, // [C, N, 3, 3]\n                        float *__restrict__ v_means,          // [N, 3]\n                        float *__restrict__ v_covars,         // [N, 3, 3]\n                        float *__restrict__ v_viewmats        // [C, 4, 4]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += gid * 3;\n    covars += gid * 9;\n    viewmats += cid * 16;\n\n    // glm is column-major but input is row-major\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n    glm::vec3 v_mean(0.f);\n    glm::mat3 v_covar(0.f);\n    glm::mat3 v_R(0.f);\n    glm::vec3 v_t(0.f);\n\n    if (v_means_c != nullptr) {\n        glm::vec3 v_mean_c = glm::make_vec3(v_means_c + idx * 3);\n        pos_world_to_cam_vjp(R, t, glm::make_vec3(means), v_mean_c, v_R, v_t, v_mean);\n    }\n    if (v_covars_c != nullptr) {\n        glm::mat3 v_covar_c = glm::transpose(glm::make_mat3(v_covars_c + idx * 9));\n        covar_world_to_cam_vjp(R, glm::make_mat3(covars), v_covar_c, v_R, v_covar);\n    }\n\n    // #if __CUDA_ARCH__ >= 700\n    // write out results with warp-level reduction\n    auto warp = cg::tiled_partition<32>(cg::this_thread_block());\n    auto warp_group_g = cg::labeled_partition(warp, gid);\n    if (v_means != nullptr) {\n        warpSum(v_mean, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_means += gid * 3;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) {\n                gpuAtomicAdd(v_means + i, v_mean[i]);\n            }\n        }\n    }\n    if (v_covars != nullptr) {\n        warpSum(v_covar, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_covars += gid * 9;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    gpuAtomicAdd(v_covars + i * 3 + j, v_covar[j][i]);\n                }\n            }\n        }\n    }\n    if (v_viewmats != nullptr) {\n        auto warp_group_c = cg::labeled_partition(warp, cid);\n        warpSum(v_R, warp_group_c);\n        warpSum(v_t, warp_group_c);\n        if (warp_group_c.thread_rank() == 0) {\n            v_viewmats += cid * 16;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    gpuAtomicAdd(v_viewmats + i * 4 + j, v_R[j][i]);\n                }\n                gpuAtomicAdd(v_viewmats + i * 4 + 3, v_t[i]);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\nworld_to_cam_fwd_tensor(const torch::Tensor &means,   // [N, 3]\n                        const torch::Tensor &covars,  // [N, 3, 3]\n                        const torch::Tensor &viewmats // [C, 4, 4]\n) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n    CHECK_INPUT(viewmats);\n\n    uint32_t N = means.size(0);\n    uint32_t C = viewmats.size(0);\n\n    torch::Tensor means_c = torch::empty({C, N, 3}, means.options());\n    torch::Tensor covars_c = torch::empty({C, N, 3, 3}, means.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        world_to_cam_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(),\n            viewmats.data_ptr<float>(), means_c.data_ptr<float>(),\n            covars_c.data_ptr<float>());\n    }\n    return std::make_tuple(means_c, covars_c);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nworld_to_cam_bwd_tensor(const torch::Tensor &means,                    // [N, 3]\n                        const torch::Tensor &covars,                   // [N, 3, 3]\n                        const torch::Tensor &viewmats,                 // [C, 4, 4]\n                        const at::optional<torch::Tensor> &v_means_c,  // [C, N, 3]\n                        const at::optional<torch::Tensor> &v_covars_c, // [C, N, 3, 3]\n                        const bool means_requires_grad, const bool covars_requires_grad,\n                        const bool viewmats_requires_grad) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n    CHECK_INPUT(viewmats);\n    if (v_means_c.has_value()) {\n        CHECK_INPUT(v_means_c.value());\n    }\n    if (v_covars_c.has_value()) {\n        CHECK_INPUT(v_covars_c.value());\n    }\n    uint32_t N = means.size(0);\n    uint32_t C = viewmats.size(0);\n\n    torch::Tensor v_means, v_covars, v_viewmats;\n    if (means_requires_grad) {\n        v_means = torch::zeros({N, 3}, means.options());\n    }\n    if (covars_requires_grad) {\n        v_covars = torch::zeros({N, 3, 3}, means.options());\n    }\n    if (viewmats_requires_grad) {\n        v_viewmats = torch::zeros({C, 4, 4}, means.options());\n    }\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        world_to_cam_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(),\n            viewmats.data_ptr<float>(),\n            v_means_c.has_value() ? v_means_c.value().data_ptr<float>() : nullptr,\n            v_covars_c.has_value() ? v_covars_c.value().data_ptr<float>() : nullptr,\n            means_requires_grad ? v_means.data_ptr<float>() : nullptr,\n            covars_requires_grad ? v_covars.data_ptr<float>() : nullptr,\n            viewmats_requires_grad ? v_viewmats.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(v_means, v_covars, v_viewmats);\n}\n\n/****************************************************************************\n * Camera projection of Gaussians\n ****************************************************************************/\n\n__global__ void\nfully_fused_projection_fwd_kernel(const uint32_t C, const uint32_t N,\n                                  const float *__restrict__ means,                // [N, 3]\n                                  const float *__restrict__ covars,               // [N, 6] optional\n                                  const float *__restrict__ quats,                // [N, 4] optional\n                                  const float *__restrict__ scales,               // [N, 3] optional\n                                  const float *__restrict__ velocities,           // [N, 3] optional\n                                  const float *__restrict__ viewmats,             // [C, 4, 4]\n                                  const float *__restrict__ Ks,                   // [C, 3, 3]\n                                  const int32_t image_width,\n                                  const int32_t image_height,\n                                  const float *__restrict__ lin_vel,              // [C, 3]\n                                  const float *__restrict__ ang_vel,              // [C, 3]\n                                  const float *__restrict__ rolling_shutter_time, // [C]\n                                  const float eps2d,\n                                  const float near_plane,\n                                  const float far_plane,\n                                  const float radius_clip,\n                                  // outputs\n                                  int32_t *__restrict__ radii,                    // [C, N, 2]\n                                  float *__restrict__ means2d,                    // [C, N, 2]\n                                  float *__restrict__ depths,                     // [C, N]\n                                  float *__restrict__ conics,                     // [C, N, 3]\n                                  float *__restrict__ compensations,              // [C, N] optional\n                                  float *__restrict__ pix_vels                    // [C, N, 2] optional\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += gid * 3;\n    viewmats += cid * 16;\n    Ks += cid * 9;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    const float rs_time = rolling_shutter_time[cid];\n\n    // glm is column-major but input is row-major\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n\n    // transform Gaussian center to camera space\n    glm::vec3 mean_c;\n    pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n    if (mean_c.z < near_plane || mean_c.z > far_plane) {\n        radii[idx * 2] = 0;\n        return;\n    }\n\n    // transform Gaussian covariance to camera space\n    glm::mat3 covar;\n    if (covars != nullptr) {\n        covars += gid * 6;\n        covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                          covars[1], covars[3], covars[4], // 2nd column\n                          covars[2], covars[4], covars[5]  // 3rd column\n        );\n    } else {\n        // compute from quaternions and scales\n        quats += gid * 4;\n        scales += gid * 3;\n        quat_scale_to_covar_preci(glm::make_vec4(quats), glm::make_vec3(scales), &covar,\n                                  nullptr);\n    }\n    glm::mat3 covar_c;\n    covar_world_to_cam(R, covar, covar_c);\n\n    // perspective projection\n    glm::mat2 covar2d;\n    glm::vec2 mean2d;\n    persp_proj(mean_c, covar_c, Ks[0], Ks[4], Ks[2], Ks[5], image_width, image_height,\n               covar2d, mean2d);\n\n    float compensation;\n    float det = add_blur(eps2d, covar2d, compensation);\n    if (det <= 0.f) {\n        radii[idx * 2] = 0;\n        return;\n    }\n\n\n    // take 3 sigma as the radius (non differentiable)\n    // float b = 0.5f * (covar2d[0][0] + covar2d[1][1]);\n    // float v1 = b + sqrt(max(0.01f, b * b - det));\n    // float radius = ceil(3.f * sqrt(v1));\n    // float v2 = b - sqrt(max(0.1f, b * b - det));\n    // float radius = ceil(3.f * sqrt(max(v1, v2)));\n\n    float extent_x = 3.f * sqrt(covar2d[0][0]);\n    float extent_y = 3.f * sqrt(covar2d[1][1]);\n\n    if (extent_x <= radius_clip && extent_y <= radius_clip) {\n        radii[idx * 2] = 0;\n        return;\n    }\n\n    // increase radius to compensate for rolling shutter\n    glm::vec2 pix_vel = { 0.f, 0.f };\n    if (rs_time > 0) {\n        // zero initialize velocity, rotate to camera space\n        glm::vec3 vel_c(0.f);\n        if (velocities != nullptr){\n            glm::vec3 vel_w = glm::make_vec3(velocities + gid * 3);\n            vel_world_to_cam(R, vel_w, vel_c);\n        }\n        compute_pix_velocity(mean_c, glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), vel_c, Ks[0], Ks[4], Ks[2], Ks[5], image_width, image_height, pix_vel);\n        extent_x += fabs(pix_vel.x) * 0.5f * rs_time;\n        extent_y += fabs(pix_vel.y) * 0.5f * rs_time;\n        //radius += hypotf(pix_vel.x, pix_vel.y) * 0.5f * rs_time;\n    }\n\n    // mask out gaussians outside the image region\n    \n    if (mean2d.x + extent_x <= 0 || mean2d.x - extent_x >= image_width ||\n        mean2d.y + extent_y <= 0 || mean2d.y - extent_y >= image_height) {\n        radii[idx * 2] = 0;\n        return;\n    }\n\n    // compute the inverse of the 2d covariance\n    glm::mat2 covar2d_inv;\n    inverse(covar2d, covar2d_inv);\n\n    // write to outputs\n    radii[idx * 2] = (int32_t)extent_x;\n    radii[idx * 2 + 1] = (int32_t)extent_y;\n    means2d[idx * 2] = mean2d.x;\n    means2d[idx * 2 + 1] = mean2d.y;\n    depths[idx] = mean_c.z;\n    conics[idx * 3] = covar2d_inv[0][0];\n    conics[idx * 3 + 1] = covar2d_inv[0][1];\n    conics[idx * 3 + 2] = covar2d_inv[1][1];\n    if (compensations != nullptr) {\n        compensations[idx] = compensation;\n    }\n    pix_vels[idx * 2] = pix_vel.x;\n    pix_vels[idx * 2 + 1] = pix_vel.y;\n}\n\n__global__ void fully_fused_projection_bwd_kernel(\n    // fwd inputs\n    const uint32_t C, const uint32_t N,\n    const float *__restrict__ means,                // [N, 3]\n    const float *__restrict__ covars,               // [N, 6] optional\n    const float *__restrict__ quats,                // [N, 4] optional\n    const float *__restrict__ scales,               // [N, 3] optional\n    const float *__restrict__ velocities,           // [N, 3] optional\n    const float *__restrict__ viewmats,             // [C, 4, 4]\n    const float *__restrict__ Ks,                   // [C, 3, 3]\n    const int32_t image_width,\n    const int32_t image_height,\n    const float *__restrict__ lin_vel,              // [C, 3]\n    const float *__restrict__ ang_vel,              // [C, 3]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float eps2d,\n    // fwd outputs\n    const int32_t *__restrict__ radii,              // [C, N, 2]\n    const float *__restrict__ conics,               // [C, N, 3]\n    const float *__restrict__ compensations,        // [C, N] optional\n    // grad outputs\n    const float *__restrict__ v_means2d,            // [C, N, 2]\n    const float *__restrict__ v_depths,             // [C, N]\n    const float *__restrict__ v_conics,             // [C, N, 3]\n    const float *__restrict__ v_compensations,      // [C, N] optional\n    const float *__restrict__ v_pix_vels,           // [C, N, 2] \n    // grad inputs\n    float *__restrict__ v_means,                    // [N, 3]\n    float *__restrict__ v_covars,                   // [N, 6] optional\n    float *__restrict__ v_quats,                    // [N, 4] optional\n    float *__restrict__ v_scales,                   // [N, 3] optional\n    float *__restrict__ v_viewmats                  // [C, 4, 4] optional\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N || radii[idx * 2] <= 0) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += gid * 3;\n    viewmats += cid * 16;\n    Ks += cid * 9;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    rolling_shutter_time += cid;\n\n    conics += idx * 3;\n\n    v_means2d += idx * 2;\n    v_depths += idx;\n    v_conics += idx * 3;\n    v_pix_vels += idx * 2;\n\n    // vjp: compute the inverse of the 2d covariance\n    glm::mat2 covar2d_inv = glm::mat2(conics[0], conics[1], conics[1], conics[2]);\n    glm::mat2 v_covar2d_inv =\n        glm::mat2(v_conics[0], v_conics[1] * .5f, v_conics[1] * .5f, v_conics[2]);\n    glm::mat2 v_covar2d(0.f);\n    inverse_vjp(covar2d_inv, v_covar2d_inv, v_covar2d);\n\n    if (v_compensations != nullptr) {\n        // vjp: compensation term\n        const float compensation = compensations[idx];\n        const float v_compensation = v_compensations[idx];\n        add_blur_vjp(eps2d, covar2d_inv, compensation, v_compensation, v_covar2d);\n    }\n\n    // transform Gaussian to camera space\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n    glm::mat3 covar;\n    glm::vec4 quat;\n    glm::vec3 scale;\n    if (covars != nullptr) {\n        covars += gid * 6;\n        covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                          covars[1], covars[3], covars[4], // 2nd column\n                          covars[2], covars[4], covars[5]  // 3rd column\n        );\n    } else {\n        // compute from quaternions and scales\n        quat = glm::make_vec4(quats + gid * 4);\n        scale = glm::make_vec3(scales + gid * 3);\n        quat_scale_to_covar_preci(quat, scale, &covar, nullptr);\n    }\n    glm::vec3 mean_c;\n    pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n    glm::mat3 covar_c;\n    covar_world_to_cam(R, covar, covar_c);\n\n    glm::vec3 v_p_view_pix_vel(0.f);\n    glm::mat3 v_R(0.f);\n    if (rolling_shutter_time[0] > 0 ) {\n        glm::vec3 vel_c(0.f);\n        glm::vec3 vel_w(0.f);\n        glm::vec3 v_vel_c(0.f);  \n        if (velocities != nullptr) {\n            vel_w = glm::make_vec3(velocities + gid * 3);\n            vel_world_to_cam(R, vel_w, vel_c);\n        }\n        compute_and_sum_pix_velocity_vjp(\n            mean_c,\n            glm::make_vec3(lin_vel),\n            glm::make_vec3(ang_vel),\n            vel_c,\n            Ks[0],\n            Ks[4],\n            Ks[2],\n            Ks[5],\n            image_width,\n            image_height,\n            glm::make_vec2(v_pix_vels),\n            v_p_view_pix_vel,\n            v_vel_c);\n        glm::vec3 v_vel_w(0.f);\n        if (velocities != nullptr) {\n            vel_world_to_cam_vjp(R, vel_w, v_vel_c, v_R, v_vel_w);\n        }\n    }\n\n    // vjp: perspective projection\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n    glm::mat3 v_covar_c(0.f);\n    glm::vec3 v_mean_c(0.f);\n    persp_proj_vjp(mean_c, covar_c, fx, fy, cx, cy, image_width, image_height,\n                   v_covar2d, glm::make_vec2(v_means2d), v_mean_c, v_covar_c);\n\n    // add contribution from v_depths\n    v_mean_c.z += v_depths[0];\n\n    // add contribution from pix velocities\n    v_mean_c.x += v_p_view_pix_vel.x;\n    v_mean_c.y += v_p_view_pix_vel.y;\n    v_mean_c.z += v_p_view_pix_vel.z;\n\n    // vjp: transform Gaussian covariance to camera space\n    glm::vec3 v_mean(0.f);\n    glm::mat3 v_covar(0.f);\n    glm::vec3 v_t(0.f);\n    pos_world_to_cam_vjp(R, t, glm::make_vec3(means), v_mean_c, v_R, v_t, v_mean);\n    covar_world_to_cam_vjp(R, covar, v_covar_c, v_R, v_covar);\n\n    // #if __CUDA_ARCH__ >= 700\n    // write out results with warp-level reduction\n    auto warp = cg::tiled_partition<32>(cg::this_thread_block());\n    auto warp_group_g = cg::labeled_partition(warp, gid);\n    if (v_means != nullptr) {\n        warpSum(v_mean, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_means += gid * 3;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) {\n                gpuAtomicAdd(v_means + i, v_mean[i]);\n            }\n        }\n    }\n    if (v_covars != nullptr) {\n        // Output gradients w.r.t. the covariance matrix\n        warpSum(v_covar, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_covars += gid * 6;\n            gpuAtomicAdd(v_covars, v_covar[0][0]);\n            gpuAtomicAdd(v_covars + 1, v_covar[0][1] + v_covar[1][0]);\n            gpuAtomicAdd(v_covars + 2, v_covar[0][2] + v_covar[2][0]);\n            gpuAtomicAdd(v_covars + 3, v_covar[1][1]);\n            gpuAtomicAdd(v_covars + 4, v_covar[1][2] + v_covar[2][1]);\n            gpuAtomicAdd(v_covars + 5, v_covar[2][2]);\n        }\n    } else {\n        // Directly output gradients w.r.t. the quaternion and scale\n        glm::mat3 rotmat = quat_to_rotmat(quat);\n        glm::vec4 v_quat(0.f);\n        glm::vec3 v_scale(0.f);\n        quat_scale_to_covar_vjp(quat, scale, rotmat, v_covar, v_quat, v_scale);\n        warpSum(v_quat, warp_group_g);\n        warpSum(v_scale, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_quats += gid * 4;\n            v_scales += gid * 3;\n            gpuAtomicAdd(v_quats, v_quat[0]);\n            gpuAtomicAdd(v_quats + 1, v_quat[1]);\n            gpuAtomicAdd(v_quats + 2, v_quat[2]);\n            gpuAtomicAdd(v_quats + 3, v_quat[3]);\n            gpuAtomicAdd(v_scales, v_scale[0]);\n            gpuAtomicAdd(v_scales + 1, v_scale[1]);\n            gpuAtomicAdd(v_scales + 2, v_scale[2]);\n        }\n    }\n    if (v_viewmats != nullptr) {\n        auto warp_group_c = cg::labeled_partition(warp, cid);\n        warpSum(v_R, warp_group_c);\n        warpSum(v_t, warp_group_c);\n        if (warp_group_c.thread_rank() == 0) {\n            v_viewmats += cid * 16;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    gpuAtomicAdd(v_viewmats + i * 4 + j, v_R[j][i]);\n                }\n                gpuAtomicAdd(v_viewmats + i * 4 + 3, v_t[i]);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,  // [N, 4] optional\n    const at::optional<torch::Tensor> &scales, // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] optional\n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const torch::Tensor &linear_velocity,      // [C, 3]\n    const torch::Tensor &angular_velocity,     // [C, 3]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    const float eps2d,\n    const float near_plane,\n    const float far_plane,\n    const float radius_clip,\n    const bool calc_compensations) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of cameras\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor radii = torch::empty({C, N, 2}, means.options().dtype(torch::kInt32));\n    torch::Tensor means2d = torch::empty({C, N, 2}, means.options());\n    torch::Tensor depths = torch::empty({C, N}, means.options());\n    torch::Tensor conics = torch::empty({C, N, 3}, means.options());\n    torch::Tensor compensations;\n    if (calc_compensations) {\n        // we dont want NaN to appear in this tensor, so we zero intialize it\n        compensations = torch::zeros({C, N}, means.options());\n    }\n    torch::Tensor pix_vels = torch::empty({C, N, 2}, means.options());\n    if (C && N) {\n        fully_fused_projection_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS,\n                                            N_THREADS, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            quats.has_value() ? quats.value().data_ptr<float>() : nullptr,\n            scales.has_value() ? scales.value().data_ptr<float>() : nullptr,\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(),\n            Ks.data_ptr<float>(),\n            image_width,\n            image_height,\n            linear_velocity.data_ptr<float>(),\n            angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip, \n            radii.data_ptr<int32_t>(),\n            means2d.data_ptr<float>(),\n            depths.data_ptr<float>(),\n            conics.data_ptr<float>(),\n            calc_compensations ? compensations.data_ptr<float>() : nullptr,\n            pix_vels.data_ptr<float>()\n            );\n    }\n    return std::make_tuple(radii, means2d, depths, conics, compensations, pix_vels);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                         // [N, 3]\n    const at::optional<torch::Tensor> &covars,          // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,           // [N, 4] optional\n    const at::optional<torch::Tensor> &scales,          // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities,      // [N, 3] optional\n    const torch::Tensor &viewmats,                      // [C, 4, 4]\n    const torch::Tensor &Ks,                            // [C, 3, 3]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const torch::Tensor &linear_velocity,               // [C, 3]\n    const torch::Tensor &angular_velocity,              // [C, 3]\n    const torch::Tensor &rolling_shutter_time,          // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &radii,                         // [C, N, 2]\n    const torch::Tensor &conics,                        // [C, N, 3]\n    const at::optional<torch::Tensor> &compensations,   // [C, N] optional\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [C, N, 2]\n    const torch::Tensor &v_depths,                      // [C, N]\n    const torch::Tensor &v_conics,                      // [C, N, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [C, N] optional\n    const torch::Tensor &v_pix_vels,                    // [C, N, 2]\n    const bool viewmats_requires_grad) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(radii);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(v_means2d);\n    CHECK_INPUT(v_depths);\n    CHECK_INPUT(v_conics);\n    if (compensations.has_value()) {\n        CHECK_INPUT(compensations.value());\n    }\n    if (v_compensations.has_value()) {\n        CHECK_INPUT(v_compensations.value());\n        assert(compensations.has_value());\n    }\n    CHECK_INPUT(v_pix_vels);\n\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of cameras\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor v_means = torch::zeros_like(means);\n    torch::Tensor v_covars, v_quats, v_scales; // optional\n    if (covars.has_value()) {\n        v_covars = torch::zeros_like(covars.value());\n    } else {\n        v_quats = torch::zeros_like(quats.value());\n        v_scales = torch::zeros_like(scales.value());\n    }\n    torch::Tensor v_viewmats;\n    if (viewmats_requires_grad) {\n        v_viewmats = torch::zeros_like(viewmats);\n    }\n    if (C && N) {\n        fully_fused_projection_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS,\n                                            N_THREADS, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : quats.value().data_ptr<float>(),\n            covars.has_value() ? nullptr : scales.value().data_ptr<float>(),\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(),\n            Ks.data_ptr<float>(), \n            image_width,\n            image_height,\n            linear_velocity.data_ptr<float>(),\n            angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d,\n            radii.data_ptr<int32_t>(),\n            conics.data_ptr<float>(),\n            compensations.has_value() ? compensations.value().data_ptr<float>()\n                                      : nullptr,\n            v_means2d.data_ptr<float>(),\n            v_depths.data_ptr<float>(),\n            v_conics.data_ptr<float>(),\n            v_compensations.has_value() ? v_compensations.value().data_ptr<float>()\n                                        : nullptr,\n            v_pix_vels.data_ptr<float>(),\n            v_means.data_ptr<float>(),\n            covars.has_value() ? v_covars.data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : v_quats.data_ptr<float>(),\n            covars.has_value() ? nullptr : v_scales.data_ptr<float>(),\n            viewmats_requires_grad ? v_viewmats.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(v_means, v_covars, v_quats, v_scales, v_viewmats);\n}\n\n__global__ void fully_fused_projection_packed_fwd_kernel(\n    const uint32_t C, const uint32_t N,\n    const float *__restrict__ means,    // [N, 3]\n    const float *__restrict__ covars,   // [N, 6] Optional\n    const float *__restrict__ quats,    // [N, 4] Optional\n    const float *__restrict__ scales,   // [N, 3] Optional\n    const float *__restrict__ velocities, // [N, 3] Optional\n    const float *__restrict__ viewmats, // [C, 4, 4]\n    const float *__restrict__ Ks,       // [C, 3, 3]\n    const int32_t image_width, const int32_t image_height, \n    const float *__restrict__ linear_velocity, // [C, 3]\n    const float *__restrict__ angular_velocity, // [C, 3]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float eps2d,\n    const float near_plane, const float far_plane, const float radius_clip,\n    const int32_t *__restrict__ block_accum, // [C * blocks_per_row] packing helper\n    int32_t *__restrict__ block_cnts,        // [C * blocks_per_row] packing helper\n    // outputs\n    int32_t *__restrict__ indptr,       // [C + 1]\n    int64_t *__restrict__ camera_ids,   // [nnz]\n    int64_t *__restrict__ gaussian_ids, // [nnz]\n    int32_t *__restrict__ radii,        // [nnz, 2]\n    float *__restrict__ means2d,        // [nnz, 2]\n    float *__restrict__ depths,         // [nnz]\n    float *__restrict__ conics,         // [nnz, 3]\n    float *__restrict__ compensations,   // [nnz] optional\n    float *__restrict__ pix_vels        // [nnz, 2] optional\n) {\n    int32_t blocks_per_row = gridDim.x;\n\n    int32_t row_idx = blockIdx.y; // cid\n    int32_t block_col_idx = blockIdx.x;\n    int32_t block_idx = row_idx * blocks_per_row + block_col_idx;\n\n    int32_t col_idx = block_col_idx * blockDim.x + threadIdx.x; // gid\n\n    bool valid = (row_idx < C) && (col_idx < N);\n\n    // check if points are with camera near and far plane\n    glm::vec3 mean_c;\n    glm::mat3 R;\n    if (valid) {\n        // shift pointers to the current camera and gaussian\n        means += col_idx * 3;\n        viewmats += row_idx * 16;\n\n        // glm is column-major but input is row-major\n        R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                      viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                      viewmats[2], viewmats[6], viewmats[10] // 3rd column\n        );\n        glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n        // transform Gaussian center to camera space\n        pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n        if (mean_c.z < near_plane || mean_c.z > far_plane) {\n            valid = false;\n        }\n    }\n\n    glm::vec3 vel_c(0.f);\n    if (valid && velocities != nullptr) {\n        glm::vec3 vel_w = glm::make_vec3(velocities + col_idx * 3);\n        vel_world_to_cam(R, vel_w, vel_c);\n    }\n\n    // check if the perspective projection is valid.\n    glm::mat2 covar2d;\n    glm::vec2 mean2d;\n    glm::mat2 covar2d_inv;\n    float compensation;\n    float det;\n    if (valid) {\n        // transform Gaussian covariance to camera space\n        glm::mat3 covar;\n        if (covars != nullptr) {\n            // if a precomputed covariance is provided\n            covars += col_idx * 6;\n            covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                              covars[1], covars[3], covars[4], // 2nd column\n                              covars[2], covars[4], covars[5]  // 3rd column\n            );\n        } else {\n            // if not then compute it from quaternions and scales\n            quats += col_idx * 4;\n            scales += col_idx * 3;\n            quat_scale_to_covar_preci(glm::make_vec4(quats), glm::make_vec3(scales),\n                                      &covar, nullptr);\n        }\n        glm::mat3 covar_c;\n        covar_world_to_cam(R, covar, covar_c);\n\n        // perspective projection\n        Ks += row_idx * 9;\n        persp_proj(mean_c, covar_c, Ks[0], Ks[4], Ks[2], Ks[5], image_width,\n                   image_height, covar2d, mean2d);\n\n        det = add_blur(eps2d, covar2d, compensation);\n        if (det <= 0.f) {\n            valid = false;\n        } else {\n            // compute the inverse of the 2d covariance\n            inverse(covar2d, covar2d_inv);\n        }\n    }\n\n    // check if the points are in the image region\n    // float radius;\n    glm::vec2 pix_vel;\n    float extent_x;\n    float extent_y;\n    if (valid) {\n        // take 3 sigma as the radius (non differentiable)\n        // float b = 0.5f * (covar2d[0][0] + covar2d[1][1]);\n        // float v1 = b + sqrt(max(0.1f, b * b - det));\n        // float v2 = b - sqrt(max(0.1f, b * b - det));\n        // radius = ceil(3.f * sqrt(max(v1, v2)));\n        extent_x = 3.f * sqrt(covar2d[0][0]);\n        extent_y = 3.f * sqrt(covar2d[1][1]);\n\n        if (extent_x <= radius_clip && extent_y <= radius_clip) {\n            valid = false;\n        }\n\n        // increase radius to compensate for rolling shutter\n        rolling_shutter_time += row_idx;\n        if (valid && rolling_shutter_time[0] > 0) {\n            linear_velocity += row_idx * 3;\n            angular_velocity += row_idx * 3;\n\n            compute_pix_velocity(mean_c, glm::make_vec3(linear_velocity),\n                                        glm::make_vec3(angular_velocity), vel_c, Ks[0], Ks[4], Ks[2], Ks[5], image_width, image_height, pix_vel);\n            extent_x += fabs(pix_vel.x) * 0.5f * rolling_shutter_time[0];\n            extent_y += fabs(pix_vel.y) * 0.5f * rolling_shutter_time[0];\n        }\n\n        // mask out gaussians outside the image region\n        if (mean2d.x + extent_x <= 0 || mean2d.x - extent_x >= image_width ||\n            mean2d.y + extent_y <= 0 || mean2d.y - extent_y >= image_height) {\n            valid = false;\n        }\n    }\n\n    int32_t thread_data = static_cast<int32_t>(valid);\n    if (block_cnts != nullptr) {\n        // First pass: compute the block-wide sum\n        int32_t aggregate;\n        if (__syncthreads_or(thread_data)) {\n            typedef cub::BlockReduce<int32_t, N_THREADS> BlockReduce;\n            __shared__ typename BlockReduce::TempStorage temp_storage;\n            aggregate = BlockReduce(temp_storage).Sum(thread_data);\n        } else {\n            aggregate = 0;\n        }\n        if (threadIdx.x == 0) {\n            block_cnts[block_idx] = aggregate;\n        }\n    } else {\n        // Second pass: write out the indices of the non zero elements\n        if (__syncthreads_or(thread_data)) {\n            typedef cub::BlockScan<int32_t, N_THREADS> BlockScan;\n            __shared__ typename BlockScan::TempStorage temp_storage;\n            BlockScan(temp_storage).ExclusiveSum(thread_data, thread_data);\n        }\n        if (valid) {\n            if (block_idx > 0) {\n                int32_t offset = block_accum[block_idx - 1];\n                thread_data += offset;\n            }\n            // write to outputs\n            camera_ids[thread_data] = row_idx;   // cid\n            gaussian_ids[thread_data] = col_idx; // gid\n            radii[thread_data * 2] = (int32_t)extent_x;\n            radii[thread_data * 2 + 1] = (int32_t)extent_y;\n            means2d[thread_data * 2] = mean2d.x;\n            means2d[thread_data * 2 + 1] = mean2d.y;\n            depths[thread_data] = mean_c.z;\n            conics[thread_data * 3] = covar2d_inv[0][0];\n            conics[thread_data * 3 + 1] = covar2d_inv[0][1];\n            conics[thread_data * 3 + 2] = covar2d_inv[1][1];\n            pix_vels[thread_data * 2] = pix_vel.x;\n            pix_vels[thread_data * 2 + 1] = pix_vel.y;\n            if (compensations != nullptr) {\n                compensations[thread_data] = compensation;\n            }\n        }\n        // lane 0 of the first block in each row writes the indptr\n        if (threadIdx.x == 0 && block_col_idx == 0) {\n            if (row_idx == 0) {\n                indptr[0] = 0;\n                indptr[C] = block_accum[C * blocks_per_row - 1];\n            } else {\n                indptr[row_idx] = block_accum[block_idx - 1];\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor,\n           torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_packed_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6]\n    const at::optional<torch::Tensor> &quats,  // [N, 3]\n    const at::optional<torch::Tensor> &scales, // [N, 3]\n    const at::optional<torch::Tensor> &velocities, // [N, 3]\n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width, const uint32_t image_height, \n    const torch::Tensor &linear_velocity,       // [C, 3]\n    const torch::Tensor &angular_velocity,      // [C, 3]\n    const torch::Tensor &rolling_shutter_time,  // [C]\n    const float eps2d,\n    const float near_plane, const float far_plane, const float radius_clip,\n    const bool calc_compensations) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of cameras\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n    auto opt = means.options().dtype(torch::kInt32);\n\n    uint32_t nrows = C;\n    uint32_t ncols = N;\n    uint32_t blocks_per_row = (ncols + N_THREADS - 1) / N_THREADS;\n\n    dim3 threads = {N_THREADS, 1, 1};\n    // limit on the number of blocks: [2**31 - 1, 65535, 65535]\n    dim3 blocks = {blocks_per_row, nrows, 1};\n\n    // first pass\n    int32_t nnz;\n    torch::Tensor block_accum;\n    if (C && N) {\n        torch::Tensor block_cnts = torch::empty({nrows * blocks_per_row}, opt);\n        fully_fused_projection_packed_fwd_kernel<<<blocks, threads, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            quats.has_value() ? quats.value().data_ptr<float>() : nullptr,\n            scales.has_value() ? scales.value().data_ptr<float>() : nullptr,\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(), Ks.data_ptr<float>(), image_width, image_height,\n            linear_velocity.data_ptr<float>(), angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d, near_plane, far_plane, radius_clip, nullptr,\n            block_cnts.data_ptr<int32_t>(), nullptr, nullptr, nullptr, nullptr, nullptr,\n            nullptr, nullptr, nullptr, nullptr);\n        block_accum = torch::cumsum(block_cnts, 0, torch::kInt32);\n        nnz = block_accum[-1].item<int32_t>();\n    } else {\n        nnz = 0;\n    }\n\n    // second pass\n    torch::Tensor indptr = torch::empty({C + 1}, opt);\n    torch::Tensor camera_ids = torch::empty({nnz}, opt.dtype(torch::kInt64));\n    torch::Tensor gaussian_ids = torch::empty({nnz}, opt.dtype(torch::kInt64));\n    torch::Tensor radii = torch::zeros({nnz, 2}, means.options().dtype(torch::kInt32));\n    torch::Tensor means2d = torch::empty({nnz, 2}, means.options());\n    torch::Tensor depths = torch::empty({nnz}, means.options());\n    torch::Tensor conics = torch::empty({nnz, 3}, means.options());\n    torch::Tensor pix_vels = torch::empty({nnz, 2}, means.options());\n    torch::Tensor compensations;\n    if (calc_compensations) {\n        // we dont want NaN to appear in this tensor, so we zero intialize it\n        compensations = torch::zeros({nnz}, means.options());\n    }\n\n    if (nnz) {\n        fully_fused_projection_packed_fwd_kernel<<<blocks, threads, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            quats.has_value() ? quats.value().data_ptr<float>() : nullptr,\n            scales.has_value() ? scales.value().data_ptr<float>() : nullptr,\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(), Ks.data_ptr<float>(), image_width, image_height,\n            linear_velocity.data_ptr<float>(), angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d, near_plane, far_plane, radius_clip, block_accum.data_ptr<int32_t>(),\n            nullptr, indptr.data_ptr<int32_t>(), camera_ids.data_ptr<int64_t>(),\n            gaussian_ids.data_ptr<int64_t>(), radii.data_ptr<int32_t>(),\n            means2d.data_ptr<float>(), depths.data_ptr<float>(),\n            conics.data_ptr<float>(),\n            calc_compensations ? compensations.data_ptr<float>() : nullptr,\n            pix_vels.data_ptr<float>());\n    } else {\n        indptr.fill_(0);\n    }\n\n    return std::make_tuple(indptr, camera_ids, gaussian_ids, radii, means2d, depths,\n                           conics, compensations, pix_vels);\n}\n\n__global__ void fully_fused_projection_packed_bwd_kernel(\n    // fwd inputs\n    const uint32_t C, const uint32_t N, const uint32_t nnz,\n    const float *__restrict__ means,    // [N, 3]\n    const float *__restrict__ covars,   // [N, 6] Optional\n    const float *__restrict__ quats,    // [N, 4] Optional\n    const float *__restrict__ scales,   // [N, 3] Optional\n    const float *__restrict__ velocities, // [N, 3] Optional\n    const float *__restrict__ viewmats, // [C, 4, 4]\n    const float *__restrict__ Ks,       // [C, 3, 3]\n    const int32_t image_width, const int32_t image_height, \n    const float *__restrict__ linear_velocity, // [C, 3]\n    const float *__restrict__ angular_velocity, // [C, 3]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float eps2d,\n    // fwd outputs\n    const int64_t *__restrict__ camera_ids,   // [nnz]\n    const int64_t *__restrict__ gaussian_ids, // [nnz]\n    const float *__restrict__ conics,         // [nnz, 3]\n    const float *__restrict__ compensations,  // [nnz] optional\n    const float *__restrict__ pix_vels,       // [nnz, 2]\n    // grad outputs\n    const float *__restrict__ v_means2d,       // [nnz, 2]\n    const float *__restrict__ v_depths,        // [nnz]\n    const float *__restrict__ v_conics,        // [nnz, 3]\n    const float *__restrict__ v_compensations, // [nnz] optional\n    const float *__restrict__ v_pix_vels,      // [nnz, 2]\n    const bool sparse_grad, // whether the outputs are in COO format [nnz, ...]\n    // grad inputs\n    float *__restrict__ v_means,   // [N, 3] or [nnz, 3]\n    float *__restrict__ v_covars,  // [N, 6] or [nnz, 6] Optional\n    float *__restrict__ v_quats,   // [N, 4] or [nnz, 4] Optional\n    float *__restrict__ v_scales,  // [N, 3] or [nnz, 3] Optional\n    float *__restrict__ v_viewmats // [C, 4, 4] Optional\n) {\n    // parallelize over nnz.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= nnz) {\n        return;\n    }\n    const int64_t cid = camera_ids[idx];   // camera id\n    const int64_t gid = gaussian_ids[idx]; // gaussian id\n\n    // shift pointers to the current camera and gaussian\n    means += gid * 3;\n    viewmats += cid * 16;\n    Ks += cid * 9;\n    linear_velocity += cid * 3;\n    angular_velocity += cid * 3;\n    rolling_shutter_time += cid;\n\n    conics += idx * 3;\n\n    v_means2d += idx * 2;\n    v_depths += idx;\n    v_conics += idx * 3;\n    v_pix_vels += idx * 2;\n\n    // vjp: compute the inverse of the 2d covariance\n    glm::mat2 covar2d_inv = glm::mat2(conics[0], conics[1], conics[1], conics[2]);\n    glm::mat2 v_covar2d_inv =\n        glm::mat2(v_conics[0], v_conics[1] * .5f, v_conics[1] * .5f, v_conics[2]);\n    glm::mat2 v_covar2d(0.f);\n    inverse_vjp(covar2d_inv, v_covar2d_inv, v_covar2d);\n\n    if (v_compensations != nullptr) {\n        // vjp: compensation term\n        const float compensation = compensations[idx];\n        const float v_compensation = v_compensations[idx];\n        add_blur_vjp(eps2d, covar2d_inv, compensation, v_compensation, v_covar2d);\n    }\n\n    // transform Gaussian to camera space\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n    glm::mat3 covar;\n    glm::vec4 quat;\n    glm::vec3 scale;\n    if (covars != nullptr) {\n        // if a precomputed covariance is provided\n        covars += gid * 6;\n        covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                          covars[1], covars[3], covars[4], // 2nd column\n                          covars[2], covars[4], covars[5]  // 3rd column\n        );\n    } else {\n        // if not then compute it from quaternions and scales\n        quat = glm::make_vec4(quats + gid * 4);\n        scale = glm::make_vec3(scales + gid * 3);\n        quat_scale_to_covar_preci(quat, scale, &covar, nullptr);\n    }\n    glm::vec3 mean_c;\n    pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n    glm::mat3 covar_c;\n    covar_world_to_cam(R, covar, covar_c);\n\n    glm::vec3 vel_c(0.f);\n    glm::vec3 vel_w(0.f);\n    if (velocities != nullptr) {\n        vel_w = glm::make_vec3(velocities + gid * 3);\n        vel_world_to_cam(R, vel_w, vel_c);\n    }\n    glm::mat3 v_R(0.f);\n    glm::vec3 v_vel_c(0.f);\n    glm::vec3 v_vel_w(0.f);\n    // vjp: velocity term\n    glm::vec3 v_p_view_pix_vel(0.f);\n    if (rolling_shutter_time[0] > 0 ) {\n        compute_and_sum_pix_velocity_vjp(\n            mean_c,\n            glm::make_vec3(linear_velocity),\n            glm::make_vec3(angular_velocity),\n            vel_c,\n            Ks[0],\n            Ks[4],\n            Ks[2],\n            Ks[5],\n            image_width,\n            image_height,\n            glm::make_vec2(v_pix_vels),\n            v_p_view_pix_vel,\n            v_vel_c);\n    }\n    if (velocities != nullptr) {\n        vel_world_to_cam_vjp(R, vel_w, v_vel_c, v_R, v_vel_w);\n    }\n\n    // vjp: perspective projection\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n    glm::mat3 v_covar_c(0.f);\n    glm::vec3 v_mean_c(0.f);\n    persp_proj_vjp(mean_c, covar_c, fx, fy, cx, cy, image_width, image_height,\n                   v_covar2d, glm::make_vec2(v_means2d), v_mean_c, v_covar_c);\n\n    // add contribution from v_depths\n    v_mean_c.z += v_depths[0];\n\n    // add contribution from pix velocities\n    v_mean_c.x += v_p_view_pix_vel.x;\n    v_mean_c.y += v_p_view_pix_vel.y;\n    v_mean_c.z += v_p_view_pix_vel.z;\n\n    // vjp: transform Gaussian covariance to camera space\n    glm::vec3 v_mean(0.f);\n    glm::mat3 v_covar(0.f);\n    glm::vec3 v_t(0.f);\n    pos_world_to_cam_vjp(R, t, glm::make_vec3(means), v_mean_c, v_R, v_t, v_mean);\n    covar_world_to_cam_vjp(R, covar, v_covar_c, v_R, v_covar);\n\n    auto warp = cg::tiled_partition<32>(cg::this_thread_block());\n    if (sparse_grad) {\n        // write out results with sparse layout\n        if (v_means != nullptr) {\n            v_means += idx * 3;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) {\n                v_means[i] = v_mean[i];\n            }\n        }\n        if (v_covars != nullptr) {\n            v_covars += idx * 6;\n            v_covars[0] = v_covar[0][0];\n            v_covars[1] = v_covar[0][1] + v_covar[1][0];\n            v_covars[2] = v_covar[0][2] + v_covar[2][0];\n            v_covars[3] = v_covar[1][1];\n            v_covars[4] = v_covar[1][2] + v_covar[2][1];\n            v_covars[5] = v_covar[2][2];\n        } else {\n            glm::mat3 rotmat = quat_to_rotmat(quat);\n            glm::vec4 v_quat(0.f);\n            glm::vec3 v_scale(0.f);\n            quat_scale_to_covar_vjp(quat, scale, rotmat, v_covar, v_quat, v_scale);\n            v_quats += idx * 4;\n            v_scales += idx * 3;\n            v_quats[0] = v_quat[0];\n            v_quats[1] = v_quat[1];\n            v_quats[2] = v_quat[2];\n            v_quats[3] = v_quat[3];\n            v_scales[0] = v_scale[0];\n            v_scales[1] = v_scale[1];\n            v_scales[2] = v_scale[2];\n        }\n    } else {\n        // write out results with dense layout\n        // #if __CUDA_ARCH__ >= 700\n        // write out results with warp-level reduction\n        auto warp_group_g = cg::labeled_partition(warp, gid);\n        if (v_means != nullptr) {\n            warpSum(v_mean, warp_group_g);\n            if (warp_group_g.thread_rank() == 0) {\n                v_means += gid * 3;\n                PRAGMA_UNROLL\n                for (uint32_t i = 0; i < 3; i++) {\n                    gpuAtomicAdd(v_means + i, v_mean[i]);\n                }\n            }\n        }\n        if (v_covars != nullptr) {\n            // Directly output gradients w.r.t. the covariance\n            warpSum(v_covar, warp_group_g);\n            if (warp_group_g.thread_rank() == 0) {\n                v_covars += gid * 6;\n                gpuAtomicAdd(v_covars, v_covar[0][0]);\n                gpuAtomicAdd(v_covars + 1, v_covar[0][1] + v_covar[1][0]);\n                gpuAtomicAdd(v_covars + 2, v_covar[0][2] + v_covar[2][0]);\n                gpuAtomicAdd(v_covars + 3, v_covar[1][1]);\n                gpuAtomicAdd(v_covars + 4, v_covar[1][2] + v_covar[2][1]);\n                gpuAtomicAdd(v_covars + 5, v_covar[2][2]);\n            }\n        } else {\n            // Directly output gradients w.r.t. the quaternion and scale\n            glm::mat3 rotmat = quat_to_rotmat(quat);\n            glm::vec4 v_quat(0.f);\n            glm::vec3 v_scale(0.f);\n            quat_scale_to_covar_vjp(quat, scale, rotmat, v_covar, v_quat, v_scale);\n            warpSum(v_quat, warp_group_g);\n            warpSum(v_scale, warp_group_g);\n            if (warp_group_g.thread_rank() == 0) {\n                v_quats += gid * 4;\n                v_scales += gid * 3;\n                gpuAtomicAdd(v_quats, v_quat[0]);\n                gpuAtomicAdd(v_quats + 1, v_quat[1]);\n                gpuAtomicAdd(v_quats + 2, v_quat[2]);\n                gpuAtomicAdd(v_quats + 3, v_quat[3]);\n                gpuAtomicAdd(v_scales, v_scale[0]);\n                gpuAtomicAdd(v_scales + 1, v_scale[1]);\n                gpuAtomicAdd(v_scales + 2, v_scale[2]);\n            }\n        }\n    }\n    // v_viewmats is always in dense layout\n    if (v_viewmats != nullptr) {\n        auto warp_group_c = cg::labeled_partition(warp, cid);\n        warpSum(v_R, warp_group_c);\n        warpSum(v_t, warp_group_c);\n        if (warp_group_c.thread_rank() == 0) {\n            v_viewmats += cid * 16;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    gpuAtomicAdd(v_viewmats + i * 4 + j, v_R[j][i]);\n                }\n                gpuAtomicAdd(v_viewmats + i * 4 + 3, v_t[i]);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_projection_packed_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6]\n    const at::optional<torch::Tensor> &quats,  // [N, 4]\n    const at::optional<torch::Tensor> &scales, // [N, 3]\n    const at::optional<torch::Tensor> &velocities, // [N, 3]\n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const torch::Tensor &Ks,                   // [C, 3, 3]\n    const uint32_t image_width, const uint32_t image_height, \n    const torch::Tensor &linear_velocity,       // [C, 3]\n    const torch::Tensor &angular_velocity,      // [C, 3]\n    const torch::Tensor &rolling_shutter_time,  // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &camera_ids,                  // [nnz]\n    const torch::Tensor &gaussian_ids,                // [nnz]\n    const torch::Tensor &conics,                      // [nnz, 3]\n    const at::optional<torch::Tensor> &compensations, // [nnz] optional\n    const torch::Tensor &pix_vels,                    // [nnz, 2]\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [nnz, 2]\n    const torch::Tensor &v_depths,                      // [nnz]\n    const torch::Tensor &v_conics,                      // [nnz, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [nnz] optional\n    const torch::Tensor &v_pix_vels,                    // [nnz, 2]\n    const bool viewmats_requires_grad, const bool sparse_grad) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(camera_ids);\n    CHECK_INPUT(gaussian_ids);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(v_means2d);\n    CHECK_INPUT(v_depths);\n    CHECK_INPUT(v_conics);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(v_pix_vels);\n    if (compensations.has_value()) {\n        CHECK_INPUT(compensations.value());\n    }\n    if (v_compensations.has_value()) {\n        CHECK_INPUT(v_compensations.value());\n        assert(compensations.has_value());\n    }\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of cameras\n    uint32_t nnz = camera_ids.size(0);\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor v_means, v_covars, v_quats, v_scales, v_viewmats;\n    if (sparse_grad) {\n        v_means = torch::zeros({nnz, 3}, means.options());\n        if (covars.has_value()) {\n            v_covars = torch::zeros({nnz, 6}, covars.value().options());\n        } else {\n            v_quats = torch::zeros({nnz, 4}, quats.value().options());\n            v_scales = torch::zeros({nnz, 3}, scales.value().options());\n        }\n        if (viewmats_requires_grad) {\n            v_viewmats = torch::zeros({C, 4, 4}, viewmats.options());\n        }\n    } else {\n        v_means = torch::zeros_like(means);\n        if (covars.has_value()) {\n            v_covars = torch::zeros_like(covars.value());\n        } else {\n            v_quats = torch::zeros_like(quats.value());\n            v_scales = torch::zeros_like(scales.value());\n        }\n        if (viewmats_requires_grad) {\n            v_viewmats = torch::zeros_like(viewmats);\n        }\n    }\n    if (nnz) {\n        fully_fused_projection_packed_bwd_kernel<<<(nnz + N_THREADS - 1) / N_THREADS,\n                                                   N_THREADS, 0, stream>>>(\n            C, N, nnz, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : quats.value().data_ptr<float>(),\n            covars.has_value() ? nullptr : scales.value().data_ptr<float>(),\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(), Ks.data_ptr<float>(), image_width, image_height,\n            linear_velocity.data_ptr<float>(), angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d, camera_ids.data_ptr<int64_t>(), gaussian_ids.data_ptr<int64_t>(),\n            conics.data_ptr<float>(),\n            compensations.has_value() ? compensations.value().data_ptr<float>()\n                                      : nullptr,\n            pix_vels.data_ptr<float>(),\n            v_means2d.data_ptr<float>(), v_depths.data_ptr<float>(),\n            v_conics.data_ptr<float>(),\n            v_compensations.has_value() ? v_compensations.value().data_ptr<float>()\n                                        : nullptr,\n            v_pix_vels.data_ptr<float>(),\n            sparse_grad, v_means.data_ptr<float>(),\n            covars.has_value() ? v_covars.data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : v_quats.data_ptr<float>(),\n            covars.has_value() ? nullptr : v_scales.data_ptr<float>(),\n            viewmats_requires_grad ? v_viewmats.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(v_means, v_covars, v_quats, v_scales, v_viewmats);\n}\n\n/****************************************************************************\n * Lidar projection of Gaussians\n ****************************************************************************/\n__global__ void lidar_proj_fwd_kernel(const uint32_t C, const uint32_t N,\n                                        const float *__restrict__ means,    // [C, N, 3]\n                                        const float *__restrict__ covars,   // [C, N, 3, 3]\n                                        const float eps2d,\n                                        float *__restrict__ means2d,        // [C, N, 2]\n                                        float *__restrict__ covars2d,        // [C, N, 2, 2]\n                                        float *__restrict__ depth_compensations // [C, N, 2]\n) { // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    // shift pointers to the current lidar and gaussian\n    means += idx * 3;\n    covars += idx * 9;\n    means2d += idx * 2;\n    covars2d += idx * 4;\n    depth_compensations += idx * 2;\n\n    glm::vec2 mean2d;\n    glm::mat2 covar2d;\n    glm::vec2 depth_compensation;\n    glm::mat3 jacobian;\n    lidar_proj(glm::make_vec3(means), glm::make_mat3(covars), eps2d, mean2d, covar2d, depth_compensation, jacobian);\n\n    // write to outputs: glm is column-major but we want row-major\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) { // rows\n        PRAGMA_UNROLL\n        for (uint32_t j = 0; j < 2; j++) { // cols\n            covars2d[i * 2 + j] = covar2d[j][i];\n        }\n    }\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) {\n        means2d[i] = mean2d[i];\n    }\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) {\n        depth_compensations[i] = depth_compensation[i];\n    }\n}\n\n__global__ void\nlidar_proj_bwd_kernel(const uint32_t C, const uint32_t N,\n                      const float *__restrict__ means,  // [C, N, 3]\n                      const float *__restrict__ covars, // [C, N, 3, 3]\n                      const float eps2d,\n                      const float *__restrict__ v_means2d,  // [C, N, 2]\n                      const float *__restrict__ v_covars2d, // [C, N, 2, 2]\n                      const float *__restrict__ v_depth_compensations, // [C, N, 2]\n                      float *__restrict__ v_means,          // [C, N, 3]\n                      float *__restrict__ v_covars          // [C, N, 3, 3]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    // shift pointers to the current lidar and gaussian\n    means += idx * 3;\n    covars += idx * 9;\n    v_means += idx * 3;\n    v_covars += idx * 9;\n    v_depth_compensations += idx * 2;\n    v_means2d += idx * 2;\n    v_covars2d += idx * 4;\n\n    glm::mat3 v_covar(0.f);\n    glm::vec3 v_mean(0.f);\n    lidar_proj_vjp(glm::make_vec3(means), glm::make_mat3(covars), eps2d,\n                   glm::make_vec2(v_means2d), glm::transpose(glm::make_mat2(v_covars2d)), glm::make_vec2(v_depth_compensations),\n                   v_mean, v_covar);\n\n    // write to outputs: glm is column-major but we want row-major\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) { // rows\n        PRAGMA_UNROLL\n        for (uint32_t j = 0; j < 3; j++) { // cols\n            v_covars[i * 3 + j] = v_covar[j][i];\n        }\n    }\n\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_means[i] = v_mean[i];\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nlidar_proj_fwd_tensor(const torch::Tensor &means,   // [C, N, 3]\n                        const torch::Tensor &covars,  // [C, N, 3, 3]\n                        const float eps2d\n) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n\n    uint32_t C = means.size(0);\n    uint32_t N = means.size(1);\n\n    torch::Tensor means2d = torch::empty({C, N, 2}, means.options());\n    torch::Tensor covars2d = torch::empty({C, N, 2, 2}, covars.options());\n    torch::Tensor depth_compensations = torch::empty({C, N, 2}, means.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        lidar_proj_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(),\n            eps2d,\n            means2d.data_ptr<float>(), covars2d.data_ptr<float>(),\n            depth_compensations.data_ptr<float>());\n    }\n    return std::make_tuple(means2d, covars2d, depth_compensations);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\nlidar_proj_bwd_tensor(const torch::Tensor &means,                      // [C, N, 3]\n                      const torch::Tensor &covars,                   // [C, N, 3, 3]\n                      const float eps2d,\n                      const torch::Tensor &v_means2d, // [C, N, 2]\n                      const torch::Tensor &v_covars2d, // [C, N, 2, 2]\n                      const torch::Tensor &v_depth_compensations // [C, N, 2]\n) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    CHECK_INPUT(covars);\n    CHECK_INPUT(v_means2d);\n    CHECK_INPUT(v_covars2d);\n    CHECK_INPUT(v_depth_compensations);\n\n    uint32_t C = means.size(0);\n    uint32_t N = means.size(1);\n\n    torch::Tensor v_means = torch::empty({C, N, 3}, means.options());\n    torch::Tensor v_covars = torch::empty({C, N, 3, 3}, means.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        lidar_proj_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, means.data_ptr<float>(), covars.data_ptr<float>(), eps2d,\n            v_means2d.data_ptr<float>(), v_covars2d.data_ptr<float>(), v_depth_compensations.data_ptr<float>(),\n            v_means.data_ptr<float>(), v_covars.data_ptr<float>());\n    }\n    return std::make_tuple(v_means, v_covars);\n}\n\n__global__ void compute_lidar_velocity_fwd_kernel(const uint32_t C, const uint32_t N,\n                                        const float *__restrict__ p_view,    // [C, N, 3]\n                                        const float *__restrict__ lin_vel,   // [C, 3]\n                                        const float *__restrict__ ang_vel,   // [C, 3]\n                                        const float *__restrict__ v_view,    // [C, N, 3]\n                                        float *__restrict__ total_vel_pix   // [C, N, 3]\n) { // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C *N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // lidar id\n    // shift pointers to the current lidar and gaussian\n    p_view += idx * 3;\n    v_view += idx * 3;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    total_vel_pix += idx * 3;\n\n    glm::mat3 J(0.f);\n    glm::vec3 total_vel_pix_local;\n    compute_lidar_velocity(glm::make_vec3(p_view), glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), glm::make_vec3(v_view), J, total_vel_pix_local);\n\n    // write to outputs\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        total_vel_pix[i] = total_vel_pix_local[i];\n    }\n}\n\n__global__ void compute_lidar_velocity_bwd_kernel(const uint32_t C, const uint32_t N,\n                      const float *__restrict__ p_view,    // [C, N, 3]\n                      const float *__restrict__ lin_vel,   // [C, 3]\n                      const float *__restrict__ ang_vel,   // [C, 3]\n                      const float *__restrict__ vel_view,  // [C, N, 3]\n                      const float *__restrict__ v_spherical_velocity, // [C, N, 3]\n                      float *__restrict__ v_p_view_accumulator,   // [C, N, 3]\n                      float *__restrict__ v_vel_view_accumulator // [C, N, 3]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // lidar id\n    // shift pointers to the current lidar and gaussian\n    p_view += idx * 3;\n    vel_view += idx * 3;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    v_spherical_velocity += idx * 3;\n    v_p_view_accumulator += idx * 3;\n    v_vel_view_accumulator += idx * 3;\n\n    glm::vec3 v_p_view_spherical_vel = { 0.f, 0.f, 0.f };\n    glm::vec3 v_vel_view = { 0.f, 0.f, 0.f };\n    compute_and_sum_lidar_velocity_vjp(glm::make_vec3(p_view), glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), glm::make_vec3(vel_view), glm::make_vec3(v_spherical_velocity), v_p_view_spherical_vel, v_vel_view);\n\n    // write to outputs\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_p_view_accumulator[i] = v_p_view_spherical_vel[i];\n    }\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_vel_view_accumulator[i] = v_vel_view[i];\n    }\n}\n\ntorch::Tensor compute_lidar_velocity_fwd_tensor(const torch::Tensor &p_view,   // [C, N, 3]\n                        const torch::Tensor &lin_vel,   // [C, 3]\n                        const torch::Tensor &ang_vel,   // [C, 3]\n                        const torch::Tensor &v_view // [C, N, 3]\n) {\n    DEVICE_GUARD(p_view);\n    CHECK_INPUT(p_view);\n    CHECK_INPUT(lin_vel);\n    CHECK_INPUT(ang_vel);\n    CHECK_INPUT(v_view);\n\n    uint32_t C = p_view.size(0);\n    uint32_t N = p_view.size(1);\n\n    torch::Tensor spherical_vel = torch::empty({C, N, 3}, p_view.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        compute_lidar_velocity_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, p_view.data_ptr<float>(), lin_vel.data_ptr<float>(),\n            ang_vel.data_ptr<float>(), v_view.data_ptr<float>(),\n            spherical_vel.data_ptr<float>());\n    }\n    return spherical_vel;\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_lidar_velocity_bwd_tensor(const torch::Tensor &p_view,   // [C, N, 3]\n                        const torch::Tensor &lin_vel,   // [C, 3]\n                        const torch::Tensor &ang_vel,   // [C, 3]\n                        const torch::Tensor &v_view,   // [C, N, 3]\n                        const torch::Tensor &v_spherical_velocity // [C, N, 3]\n) {\n    DEVICE_GUARD(p_view);\n    CHECK_INPUT(p_view);\n    CHECK_INPUT(lin_vel);\n    CHECK_INPUT(ang_vel);\n    CHECK_INPUT(v_view);\n    CHECK_INPUT(v_spherical_velocity);\n\n    uint32_t C = p_view.size(0);\n    uint32_t N = p_view.size(1);\n\n    torch::Tensor v_p_view = torch::empty({C, N, 3}, p_view.options());\n    torch::Tensor v_vel_view = torch::empty({C, N, 3}, p_view.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        compute_lidar_velocity_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, p_view.data_ptr<float>(), lin_vel.data_ptr<float>(),\n            ang_vel.data_ptr<float>(), v_view.data_ptr<float>(), \n            v_spherical_velocity.data_ptr<float>(), \n            v_p_view.data_ptr<float>(), v_vel_view.data_ptr<float>());\n    }\n    return std::make_tuple(v_p_view, v_vel_view);\n}\n\n__global__ void compute_pix_velocity_fwd_kernel(const uint32_t C, const uint32_t N,\n                                        const float *__restrict__ p_view,    // [C, N, 3]\n                                        const float *__restrict__ lin_vel,   // [C, 3]\n                                        const float *__restrict__ ang_vel,   // [C, 3]\n                                        const float *__restrict__ v_view,    // [C, N, 3]\n                                        const float *__restrict__ Ks,        // [C, 3, 3]\n                                        const uint32_t width, const uint32_t height,\n                                        float *__restrict__ total_vel_pix   // [C, N, 2]\n) { // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C *N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    // shift pointers to the current camera and gaussian\n    p_view += idx * 3;\n    v_view += idx * 3;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    Ks += cid * 9;\n    total_vel_pix += idx * 2;\n\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n\n    glm::vec2 total_vel_pix_local = { 0.f, 0.f };\n    compute_pix_velocity(glm::make_vec3(p_view), glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), glm::make_vec3(v_view), fx, fy, cx, cy, width, height, total_vel_pix_local);\n\n    // write to outputs\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 2; i++) {\n        total_vel_pix[i] = total_vel_pix_local[i];\n    }\n}\n\n__global__ void compute_pix_velocity_bwd_kernel(const uint32_t C, const uint32_t N,\n                      const float *__restrict__ p_view,    // [C, N, 3]\n                      const float *__restrict__ lin_vel,   // [C, 3]\n                      const float *__restrict__ ang_vel,   // [C, 3]\n                      const float *__restrict__ v_view,   // [C, N, 3]\n                      const float *__restrict__ Ks,       // [C, 3, 3]\n                      uint32_t image_width, uint32_t image_height,\n                      const float *__restrict__ v_pix_velocity, // [C, N, 2]\n                      float *__restrict__ v_p_view_accumulator,   // [C, N, 3]\n                      float *__restrict__ v_vel_view_accumulator // [C, N, 3]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // camera id\n    // shift pointers to the current camera and gaussian\n    p_view += idx * 3;\n    v_view += idx * 3;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    Ks += cid * 9;\n    v_pix_velocity += idx * 2;\n    v_p_view_accumulator += idx * 3;\n    v_vel_view_accumulator += idx * 3;\n\n    float fx = Ks[0], cx = Ks[2], fy = Ks[4], cy = Ks[5];\n\n    glm::vec3 v_p_view_pix_vel = { 0.f, 0.f, 0.f };\n    glm::vec3 v_vel_view(0.f);\n    compute_and_sum_pix_velocity_vjp(glm::make_vec3(p_view), glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), glm::make_vec3(v_view), fx, fy, cx, cy, image_width, image_height, glm::make_vec2(v_pix_velocity), v_p_view_pix_vel, v_vel_view);\n\n    // write to outputs\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_p_view_accumulator[i] = v_p_view_pix_vel[i];\n    }\n    PRAGMA_UNROLL\n    for (uint32_t i = 0; i < 3; i++) {\n        v_vel_view_accumulator[i] = v_vel_view[i];\n    }\n}\n\ntorch::Tensor compute_pix_velocity_fwd_tensor(const torch::Tensor &p_view,   // [C, N, 3]\n                        const torch::Tensor &lin_vel,   // [C, 3]\n                        const torch::Tensor &ang_vel,   // [C, 3]\n                        const torch::Tensor &v_view,   // [C, N, 3]\n                        const torch::Tensor &Ks,   // [C, 3, 3]\n                        const uint32_t image_width, const uint32_t image_height\n) {\n    DEVICE_GUARD(p_view);\n    CHECK_INPUT(p_view);\n    CHECK_INPUT(lin_vel);\n    CHECK_INPUT(ang_vel);\n    CHECK_INPUT(v_view);\n    CHECK_INPUT(Ks);\n\n    uint32_t C = p_view.size(0);\n    uint32_t N = p_view.size(1);\n\n    torch::Tensor pix_vel = torch::empty({C, N, 2}, p_view.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        compute_pix_velocity_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, p_view.data_ptr<float>(), lin_vel.data_ptr<float>(),\n            ang_vel.data_ptr<float>(),\n            v_view.data_ptr<float>(),\n            Ks.data_ptr<float>(),\n            image_width, image_height,\n            pix_vel.data_ptr<float>());\n    }\n    return pix_vel;\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_pix_velocity_bwd_tensor(const torch::Tensor &p_view,   // [C, N, 3]\n                        const torch::Tensor &lin_vel,   // [C, 3]\n                        const torch::Tensor &ang_vel,   // [C, 3]\n                        const torch::Tensor &v_view,   // [C, N, 3]\n                        const torch::Tensor &Ks,   // [C, 3, 3]\n                        uint32_t image_width, uint32_t image_height,\n                        const torch::Tensor &v_pix_velocity // [C, N, 2]\n) {\n    DEVICE_GUARD(p_view);\n    CHECK_INPUT(p_view);\n    CHECK_INPUT(lin_vel);\n    CHECK_INPUT(ang_vel);\n    CHECK_INPUT(v_view);\n    CHECK_INPUT(Ks);\n    CHECK_INPUT(v_pix_velocity);\n\n    uint32_t C = p_view.size(0);\n    uint32_t N = p_view.size(1);\n\n    torch::Tensor v_p_view = torch::empty({C, N, 3}, p_view.options());\n    torch::Tensor v_vel_view = torch::empty({C, N, 3}, p_view.options());\n\n    if (C && N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        compute_pix_velocity_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                  stream>>>(\n            C, N, p_view.data_ptr<float>(), lin_vel.data_ptr<float>(),\n            ang_vel.data_ptr<float>(),\n            v_view.data_ptr<float>(),\n            Ks.data_ptr<float>(),\n            image_width, image_height,\n            v_pix_velocity.data_ptr<float>(), \n            v_p_view.data_ptr<float>(),\n            v_vel_view.data_ptr<float>());\n    }\n    return std::make_tuple(v_p_view, v_vel_view);\n}\n\n__global__ void\nfully_fused_lidar_projection_fwd_kernel(const uint32_t C, const uint32_t N,\n                                  const float *__restrict__ means,                // [N, 3]\n                                  const float *__restrict__ covars,               // [N, 6] optional\n                                  const float *__restrict__ quats,                // [N, 4] optional\n                                  const float *__restrict__ scales,               // [N, 3] optional\n                                  const float *__restrict__ velocities,           // [N, 3]\n                                  const float *__restrict__ viewmats,             // [C, 4, 4]\n                                  const float min_elevation,\n                                  const float max_elevation,\n                                  const float min_azimuth,\n                                  const float max_azimuth,\n                                  const float *__restrict__ lin_vel,              // [C, 3]\n                                  const float *__restrict__ ang_vel,              // [C, 3]\n                                  const float *__restrict__ rolling_shutter_time, // [C]\n                                  const float eps2d,\n                                  const float near_plane,\n                                  const float far_plane,\n                                  const float radius_clip,\n                                  // outputs\n                                  float *__restrict__ radii,                      // [C, N]\n                                  float *__restrict__ means2d,                    // [C, N, 2]\n                                  float *__restrict__ depths,                     // [C, N]\n                                  float *__restrict__ conics,                     // [C, N, 3]\n                                  float *__restrict__ compensations,              // [C, N] optional\n                                  float *__restrict__ pix_vels,                    // [C, N, 3] \n                                  float *__restrict__ depth_compensations        // [C, N, 2] \n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N) {\n        return;\n    }\n    const uint32_t cid = idx / N; // lidar id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current lidar and gaussian\n    means += gid * 3;\n    viewmats += cid * 16;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    const float rs_time = rolling_shutter_time[cid];\n\n    // glm is column-major but input is row-major\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n    // transform Gaussian center to lidar space\n    glm::vec3 mean_c;\n    pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n    float distance = norm3df(mean_c.x , mean_c.y, mean_c.z);\n    if (distance < near_plane || distance > far_plane) {\n        radii[idx * 2] = 0.f;\n        return;\n    }\n\n    // get covariance, either directly from input or compute from quaternions and scales\n    glm::mat3 covar;\n    if (covars != nullptr) {\n        covars += gid * 6;\n        covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                          covars[1], covars[3], covars[4], // 2nd column\n                          covars[2], covars[4], covars[5]  // 3rd column\n        );\n    } else {\n        // compute from quaternions and scales\n        quats += gid * 4;\n        scales += gid * 3;\n        quat_scale_to_covar_preci(glm::make_vec4(quats), glm::make_vec3(scales), &covar,\n                                  nullptr);\n    }\n    glm::mat3 covar_c;\n    covar_world_to_cam(R, covar, covar_c);\n\n    // project to spherical lidar\n    glm::mat2 covar2d;\n    glm::vec2 mean2d;\n    glm::vec2 depth_compensation;\n    glm::mat3 jacobian;\n    lidar_proj(mean_c, covar_c, eps2d, mean2d, covar2d, depth_compensation, jacobian);\n\n    float compensation;\n    float det = add_blur(eps2d, covar2d, compensation);\n    if (det <= 0.f) {\n        radii[idx * 2] = 0.f;\n        return;\n    }\n\n\n    // take 3 sigma as the radius (non differentiable)\n    // float b = 0.5f * (covar2d[0][0] + covar2d[1][1]);\n    // float v1 = b + sqrt(max(1e-6, b * b - det));\n    // float radius = 3.f * sqrt(v1);\n    // float v2 = b - sqrt(max(0.1f, b * b - det));\n    // float radius = ceil(3.f * sqrt(max(v1, v2)));\n    float extent_azimuth = 3.f * sqrt(max(0.f, covar2d[0][0]));\n    float extent_elevation = 3.f * sqrt(max(0.f, covar2d[1][1]));\n\n    if (extent_azimuth <= radius_clip && extent_elevation <= radius_clip) {\n        radii[idx * 2] = 0.f;\n        return;\n    }\n\n    // increase radius to compensate for rolling shutter\n    glm::vec3 pix_vel = { 0.f, 0.f, 0.f };\n    if (rs_time > 0) {\n        // move velocities to lidar space\n        glm::vec3 vel_c(0.f);\n        if (velocities != nullptr) {\n            glm::vec3 vel_w = glm::make_vec3(velocities + gid * 3);\n            vel_world_to_cam(R, vel_w, vel_c);\n        }\n        compute_lidar_velocity(mean_c, glm::make_vec3(lin_vel), glm::make_vec3(ang_vel), vel_c, jacobian, pix_vel);\n        extent_azimuth += fabs(pix_vel.x) * 0.5f * rs_time;\n        extent_elevation += fabs(pix_vel.y) * 0.5f * rs_time;\n    }\n\n    if (mean2d.y + extent_elevation <= min_elevation \n        || mean2d.y - extent_elevation >= max_elevation\n        || mean2d.x + extent_azimuth <= min_azimuth\n        || mean2d.x - extent_azimuth >= max_azimuth) {\n        radii[idx * 2] = 0.f;\n        return;\n    }\n\n    // compute the inverse of the 2d covariance\n    glm::mat2 covar2d_inv;\n    inverse(covar2d, covar2d_inv);\n\n    // write to outputs\n    radii[idx * 2] = extent_azimuth;\n    radii[idx * 2 + 1] = extent_elevation;\n    means2d[idx * 2] = mean2d.x;\n    means2d[idx * 2 + 1] = mean2d.y;\n    depths[idx] = distance;\n    conics[idx * 3] = covar2d_inv[0][0];\n    conics[idx * 3 + 1] = covar2d_inv[0][1];\n    conics[idx * 3 + 2] = covar2d_inv[1][1];\n    if (compensations != nullptr) {\n        compensations[idx] = compensation;\n    }\n    pix_vels[idx * 3] = pix_vel.x;\n    pix_vels[idx * 3 + 1] = pix_vel.y;\n    pix_vels[idx * 3 + 2] = pix_vel.z;\n    depth_compensations[idx * 2] = depth_compensation.x;\n    depth_compensations[idx * 2 + 1] = depth_compensation.y;\n}\n\n__global__ void fully_fused_lidar_projection_bwd_kernel(\n    // fwd inputs\n    const uint32_t C, const uint32_t N,\n    const float *__restrict__ means,                // [N, 3]\n    const float *__restrict__ covars,               // [N, 6] optional\n    const float *__restrict__ quats,                // [N, 4] optional\n    const float *__restrict__ scales,               // [N, 3] optional\n    const float *__restrict__ velocities,           // [N, 3] optional\n    const float *__restrict__ viewmats,             // [C, 4, 4]\n    const float min_elevation,\n    const float max_elevation,\n    const float min_azimuth,\n    const float max_azimuth,\n    const float *__restrict__ lin_vel,              // [C, 3]\n    const float *__restrict__ ang_vel,              // [C, 3]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float eps2d,\n    // fwd outputs\n    const float *__restrict__ radii,                // [C, N, 2]\n    const float *__restrict__ conics,               // [C, N, 3]\n    const float *__restrict__ compensations,        // [C, N] optional\n    // grad outputs\n    const float *__restrict__ v_means2d,            // [C, N, 2]\n    const float *__restrict__ v_depths,             // [C, N]\n    const float *__restrict__ v_conics,             // [C, N, 3]\n    const float *__restrict__ v_compensations,      // [C, N] optional\n    const float *__restrict__ v_pix_vels,           // [C, N, 3]\n    const float *__restrict__ v_depth_compensations, // [C, N, 2]\n    // grad inputs\n    float *__restrict__ v_means,                    // [N, 3]\n    float *__restrict__ v_covars,                   // [N, 6] optional\n    float *__restrict__ v_quats,                    // [N, 4] optional\n    float *__restrict__ v_scales,                   // [N, 3] optional\n    float *__restrict__ v_viewmats                  // [C, 4, 4] optional\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= C * N || radii[idx * 2] <= 0.f) {\n        return;\n    }\n    const uint32_t cid = idx / N; // lidar id\n    const uint32_t gid = idx % N; // gaussian id\n\n    // shift pointers to the current lidar and gaussian\n    means += gid * 3;\n    viewmats += cid * 16;\n    lin_vel += cid * 3;\n    ang_vel += cid * 3;\n    rolling_shutter_time += cid;\n\n    conics += idx * 3;\n\n    v_means2d += idx * 2;\n    v_depths += idx;\n    v_conics += idx * 3;\n    v_pix_vels += idx * 3;\n    v_depth_compensations += idx * 2;\n\n    // vjp: compute the inverse of the 2d covariance\n    glm::mat2 covar2d_inv = glm::mat2(conics[0], conics[1], conics[1], conics[2]);\n    glm::mat2 v_covar2d_inv =\n        glm::mat2(v_conics[0], v_conics[1] * .5f, v_conics[1] * .5f, v_conics[2]);\n    glm::mat2 v_covar2d(0.f);\n    inverse_vjp(covar2d_inv, v_covar2d_inv, v_covar2d);\n\n    if (v_compensations != nullptr) {\n        // vjp: compensation term\n        const float compensation = compensations[idx];\n        const float v_compensation = v_compensations[idx];\n        add_blur_vjp(eps2d, covar2d_inv, compensation, v_compensation, v_covar2d);\n    }\n\n    // transform Gaussian to lidar space\n    glm::mat3 R = glm::mat3(viewmats[0], viewmats[4], viewmats[8], // 1st column\n                            viewmats[1], viewmats[5], viewmats[9], // 2nd column\n                            viewmats[2], viewmats[6], viewmats[10] // 3rd column\n    );\n    glm::vec3 t = glm::vec3(viewmats[3], viewmats[7], viewmats[11]);\n\n    glm::mat3 covar;\n    glm::vec4 quat;\n    glm::vec3 scale;\n    if (covars != nullptr) {\n        covars += gid * 6;\n        covar = glm::mat3(covars[0], covars[1], covars[2], // 1st column\n                          covars[1], covars[3], covars[4], // 2nd column\n                          covars[2], covars[4], covars[5]  // 3rd column\n        );\n    } else {\n        // compute from quaternions and scales\n        quat = glm::make_vec4(quats + gid * 4);\n        scale = glm::make_vec3(scales + gid * 3);\n        quat_scale_to_covar_preci(quat, scale, &covar, nullptr);\n    }\n    glm::vec3 mean_c;\n    pos_world_to_cam(R, t, glm::make_vec3(means), mean_c);\n    glm::mat3 covar_c;\n    covar_world_to_cam(R, covar, covar_c);\n\n    // vjp: vel world to cam\n    \n    glm::vec3 v_p_view_pix_vel(0.f);\n    glm::mat3 v_R(0.f);\n    if (rolling_shutter_time[0] > 0 ) {\n        glm::vec3 vel_c(0.f);\n        glm::vec3 vel_w(0.f);\n        glm::vec3 v_vel_c(0.f);\n        if (velocities != nullptr) {\n            vel_w = glm::make_vec3(velocities + gid * 3);\n            vel_world_to_cam(R, vel_w, vel_c);\n        }\n        compute_and_sum_lidar_velocity_vjp(\n            mean_c,\n            glm::make_vec3(lin_vel),\n            glm::make_vec3(ang_vel),\n            vel_c,\n            glm::make_vec3(v_pix_vels),\n            v_p_view_pix_vel,\n            v_vel_c);\n        glm::vec3 v_vel_w(0.f);\n        if (velocities != nullptr) {\n            vel_world_to_cam_vjp(R, vel_w, v_vel_c, v_R, v_vel_w);\n        }\n    }\n\n    // vjp: lidar projection\n    glm::mat3 v_covar_c(0.f);\n    glm::vec3 v_mean_c(0.f);\n    lidar_proj_vjp(mean_c, covar_c, eps2d, glm::make_vec2(v_means2d), v_covar2d, glm::make_vec2(v_depth_compensations), v_mean_c, v_covar_c);\n\n    // add contribution from v_depths\n    const float disparity = rnorm3df(mean_c.x, mean_c.y, mean_c.z);\n    v_mean_c.x += mean_c.x * disparity * v_depths[0];\n    v_mean_c.y += mean_c.y * disparity * v_depths[0];\n    v_mean_c.z += mean_c.z * disparity * v_depths[0];\n\n    // add contribution from pix velocities\n    v_mean_c.x += v_p_view_pix_vel.x;\n    v_mean_c.y += v_p_view_pix_vel.y;\n    v_mean_c.z += v_p_view_pix_vel.z;\n\n    // vjp: transform Gaussian covariance to lidar space\n    glm::vec3 v_mean(0.f);\n    glm::mat3 v_covar(0.f);\n    glm::vec3 v_t(0.f);\n    pos_world_to_cam_vjp(R, t, glm::make_vec3(means), v_mean_c, v_R, v_t, v_mean);\n    covar_world_to_cam_vjp(R, covar, v_covar_c, v_R, v_covar);\n\n    // #if __CUDA_ARCH__ >= 700\n    // write out results with warp-level reduction\n    auto warp = cg::tiled_partition<32>(cg::this_thread_block());\n    auto warp_group_g = cg::labeled_partition(warp, gid);\n    if (v_means != nullptr) {\n        warpSum(v_mean, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_means += gid * 3;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) {\n                gpuAtomicAdd(v_means + i, v_mean[i]);\n            }\n        }\n    }\n    if (v_covars != nullptr) {\n        // Output gradients w.r.t. the covariance matrix\n        warpSum(v_covar, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_covars += gid * 6;\n            gpuAtomicAdd(v_covars, v_covar[0][0]);\n            gpuAtomicAdd(v_covars + 1, v_covar[0][1] + v_covar[1][0]);\n            gpuAtomicAdd(v_covars + 2, v_covar[0][2] + v_covar[2][0]);\n            gpuAtomicAdd(v_covars + 3, v_covar[1][1]);\n            gpuAtomicAdd(v_covars + 4, v_covar[1][2] + v_covar[2][1]);\n            gpuAtomicAdd(v_covars + 5, v_covar[2][2]);\n        }\n    } else {\n        // Directly output gradients w.r.t. the quaternion and scale\n        glm::mat3 rotmat = quat_to_rotmat(quat);\n        glm::vec4 v_quat(0.f);\n        glm::vec3 v_scale(0.f);\n        quat_scale_to_covar_vjp(quat, scale, rotmat, v_covar, v_quat, v_scale);\n        warpSum(v_quat, warp_group_g);\n        warpSum(v_scale, warp_group_g);\n        if (warp_group_g.thread_rank() == 0) {\n            v_quats += gid * 4;\n            v_scales += gid * 3;\n            gpuAtomicAdd(v_quats, v_quat[0]);\n            gpuAtomicAdd(v_quats + 1, v_quat[1]);\n            gpuAtomicAdd(v_quats + 2, v_quat[2]);\n            gpuAtomicAdd(v_quats + 3, v_quat[3]);\n            gpuAtomicAdd(v_scales, v_scale[0]);\n            gpuAtomicAdd(v_scales + 1, v_scale[1]);\n            gpuAtomicAdd(v_scales + 2, v_scale[2]);\n        }\n    }\n    if (v_viewmats != nullptr) {\n        auto warp_group_c = cg::labeled_partition(warp, cid);\n        warpSum(v_R, warp_group_c);\n        warpSum(v_t, warp_group_c);\n        if (warp_group_c.thread_rank() == 0) {\n            v_viewmats += cid * 16;\n            PRAGMA_UNROLL\n            for (uint32_t i = 0; i < 3; i++) { // rows\n                PRAGMA_UNROLL\n                for (uint32_t j = 0; j < 3; j++) { // cols\n                    gpuAtomicAdd(v_viewmats + i * 4 + j, v_R[j][i]);\n                }\n                gpuAtomicAdd(v_viewmats + i * 4 + 3, v_t[i]);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_lidar_projection_fwd_tensor(\n    const torch::Tensor &means,                // [N, 3]\n    const at::optional<torch::Tensor> &covars, // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,  // [N, 4] optional\n    const at::optional<torch::Tensor> &scales, // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities, // [N, 3] optional\n    const torch::Tensor &viewmats,             // [C, 4, 4]\n    const float min_elevation,\n    const float max_elevation,\n    const float min_azimuth,\n    const float max_azimuth,\n    const torch::Tensor &linear_velocity,      // [C, 3]\n    const torch::Tensor &angular_velocity,     // [C, 3]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    const float eps2d,\n    const float near_plane,\n    const float far_plane,\n    const float radius_clip,\n    const bool calc_compensations) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of lidars\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor radii = torch::empty({C, N, 2}, means.options());\n    torch::Tensor means2d = torch::empty({C, N, 2}, means.options());\n    torch::Tensor depths = torch::empty({C, N}, means.options());\n    torch::Tensor conics = torch::empty({C, N, 3}, means.options());\n    torch::Tensor compensations;\n    if (calc_compensations) {\n        // we dont want NaN to appear in this tensor, so we zero intialize it\n        compensations = torch::zeros({C, N}, means.options());\n    }\n    torch::Tensor pix_vels = torch::empty({C, N, 3}, means.options());\n    torch::Tensor depth_compensations = torch::empty({C, N, 2}, means.options());\n    if (C && N) {\n        fully_fused_lidar_projection_fwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS,\n                                            N_THREADS, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            quats.has_value() ? quats.value().data_ptr<float>() : nullptr,\n            scales.has_value() ? scales.value().data_ptr<float>() : nullptr,\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(),\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            linear_velocity.data_ptr<float>(),\n            angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d,\n            near_plane,\n            far_plane,\n            radius_clip,\n            radii.data_ptr<float>(),\n            means2d.data_ptr<float>(),\n            depths.data_ptr<float>(),\n            conics.data_ptr<float>(),\n            calc_compensations ? compensations.data_ptr<float>() : nullptr,\n            pix_vels.data_ptr<float>(),\n            depth_compensations.data_ptr<float>()\n            );\n    }\n    return std::make_tuple(radii, means2d, depths, conics, compensations, pix_vels, depth_compensations);\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nfully_fused_lidar_projection_bwd_tensor(\n    // fwd inputs\n    const torch::Tensor &means,                         // [N, 3]\n    const at::optional<torch::Tensor> &covars,          // [N, 6] optional\n    const at::optional<torch::Tensor> &quats,           // [N, 4] optional\n    const at::optional<torch::Tensor> &scales,          // [N, 3] optional\n    const at::optional<torch::Tensor> &velocities,      // [N, 3] optional\n    const torch::Tensor &viewmats,                      // [C, 4, 4]\n    const float min_elevation,\n    const float max_elevation,\n    const float min_azimuth,\n    const float max_azimuth,\n    const torch::Tensor &linear_velocity,               // [C, 3]\n    const torch::Tensor &angular_velocity,              // [C, 3]\n    const torch::Tensor &rolling_shutter_time,          // [C]\n    const float eps2d,\n    // fwd outputs\n    const torch::Tensor &radii,                         // [C, N, 2]\n    const torch::Tensor &conics,                        // [C, N, 3]\n    const at::optional<torch::Tensor> &compensations,   // [C, N] optional\n    // grad outputs\n    const torch::Tensor &v_means2d,                     // [C, N, 2]\n    const torch::Tensor &v_depths,                      // [C, N]\n    const torch::Tensor &v_conics,                      // [C, N, 3]\n    const at::optional<torch::Tensor> &v_compensations, // [C, N] optional\n    const torch::Tensor &v_pix_vels,                    // [C, N, 3]\n    const torch::Tensor &v_depth_compensations,         // [C, N, 2]\n    const bool viewmats_requires_grad) {\n    DEVICE_GUARD(means);\n    CHECK_INPUT(means);\n    if (covars.has_value()) {\n        CHECK_INPUT(covars.value());\n    } else {\n        assert(quats.has_value() && scales.has_value());\n        CHECK_INPUT(quats.value());\n        CHECK_INPUT(scales.value());\n    }\n    if (velocities.has_value()) {\n        CHECK_INPUT(velocities.value());\n    }\n    CHECK_INPUT(viewmats);\n    CHECK_INPUT(radii);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(linear_velocity);\n    CHECK_INPUT(angular_velocity);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(v_means2d);\n    CHECK_INPUT(v_depths);\n    CHECK_INPUT(v_conics);\n    if (compensations.has_value()) {\n        CHECK_INPUT(compensations.value());\n    }\n    if (v_compensations.has_value()) {\n        CHECK_INPUT(v_compensations.value());\n        assert(compensations.has_value());\n    }\n    CHECK_INPUT(v_pix_vels);\n    CHECK_INPUT(v_depth_compensations);\n\n    uint32_t N = means.size(0);    // number of gaussians\n    uint32_t C = viewmats.size(0); // number of lidars\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor v_means = torch::zeros_like(means);\n    torch::Tensor v_covars, v_quats, v_scales; // optional\n    if (covars.has_value()) {\n        v_covars = torch::zeros_like(covars.value());\n    } else {\n        v_quats = torch::zeros_like(quats.value());\n        v_scales = torch::zeros_like(scales.value());\n    }\n    torch::Tensor v_viewmats;\n    if (viewmats_requires_grad) {\n        v_viewmats = torch::zeros_like(viewmats);\n    }\n    if (C && N) {\n        fully_fused_lidar_projection_bwd_kernel<<<(C * N + N_THREADS - 1) / N_THREADS,\n                                            N_THREADS, 0, stream>>>(\n            C, N, means.data_ptr<float>(),\n            covars.has_value() ? covars.value().data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : quats.value().data_ptr<float>(),\n            covars.has_value() ? nullptr : scales.value().data_ptr<float>(),\n            velocities.has_value() ? velocities.value().data_ptr<float>() : nullptr,\n            viewmats.data_ptr<float>(),\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            linear_velocity.data_ptr<float>(),\n            angular_velocity.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            eps2d,\n            radii.data_ptr<float>(),\n            conics.data_ptr<float>(),\n            compensations.has_value() ? compensations.value().data_ptr<float>()\n                                      : nullptr,\n            v_means2d.data_ptr<float>(),\n            v_depths.data_ptr<float>(),\n            v_conics.data_ptr<float>(),\n            v_compensations.has_value() ? v_compensations.value().data_ptr<float>()\n                                        : nullptr,\n            v_pix_vels.data_ptr<float>(),\n            v_depth_compensations.data_ptr<float>(),\n            v_means.data_ptr<float>(),\n            covars.has_value() ? v_covars.data_ptr<float>() : nullptr,\n            covars.has_value() ? nullptr : v_quats.data_ptr<float>(),\n            covars.has_value() ? nullptr : v_scales.data_ptr<float>(),\n            viewmats_requires_grad ? v_viewmats.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(v_means, v_covars, v_quats, v_scales, v_viewmats);\n}\n"
  },
  {
    "path": "gsplat/cuda/csrc/rasterization.cu",
    "content": "#include \"bindings.h\"\n#include \"helpers.cuh\"\n#include \"utils.cuh\"\n#include <cmath>\n#include <cooperative_groups.h>\n#include <cub/cub.cuh>\n#include <cuda_runtime.h>\n\nnamespace cg = cooperative_groups;\n\n/****************************************************************************\n * Gaussian Tile Intersection\n ****************************************************************************/\n\n__global__ void isect_tiles(\n    // if the data is [C, N, ...] or [nnz, ...] (packed)\n    const bool packed,\n    // parallelize over C * N, only used if packed is False\n    const uint32_t C, const uint32_t N,\n    // parallelize over nnz, only used if packed is True\n    const uint32_t nnz,\n    const int64_t *__restrict__ camera_ids,   // [nnz] optional\n    const int64_t *__restrict__ gaussian_ids, // [nnz] optional\n    // data\n    const float2 *__restrict__ means2d,              // [C, N, 2] or [nnz, 2]\n    const int32_t *__restrict__ radii,               // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ depths,                // [C, N] or [nnz]\n    const int64_t *__restrict__ cum_tiles_per_gauss, // [C, N] or [nnz]\n    const uint32_t tile_size, const uint32_t tile_width, const uint32_t tile_height,\n    const uint32_t tile_n_bits,\n    int32_t *__restrict__ tiles_per_gauss, // [C, N] or [nnz]\n    int64_t *__restrict__ isect_ids,       // [n_isects]\n    int32_t *__restrict__ flatten_ids      // [n_isects]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    bool first_pass = cum_tiles_per_gauss == nullptr;\n    if (idx >= (packed ? nnz : C * N))\n        return;\n    if (radii[idx * 2] <= 0) {\n        if (first_pass)\n            tiles_per_gauss[idx] = 0;\n        return;\n    }\n\n    float tile_extent_x = radii[idx * 2] / static_cast<float>(tile_size);\n    float tile_extent_y = radii[idx * 2 + 1] / static_cast<float>(tile_size);\n    float tile_x = means2d[idx].x / tile_size;\n    float tile_y = means2d[idx].y / tile_size;\n\n    // tile_min is inclusive, tile_max is exclusive\n    uint2 tile_min, tile_max;\n    tile_min.x = min(max(0, (uint32_t)floor(tile_x - tile_extent_x)), tile_width);\n    tile_min.y = min(max(0, (uint32_t)floor(tile_y - tile_extent_y)), tile_height);\n    tile_max.x = min(max(0, (uint32_t)ceil(tile_x + tile_extent_x)), tile_width);\n    tile_max.y = min(max(0, (uint32_t)ceil(tile_y + tile_extent_y)), tile_height);\n\n    if (first_pass) {\n        // first pass only writes out tiles_per_gauss\n        tiles_per_gauss[idx] =\n            static_cast<int32_t>((tile_max.y - tile_min.y) * (tile_max.x - tile_min.x));\n        return;\n    }\n\n    int64_t cid; // camera id\n    if (packed) {\n        // parallelize over nnz\n        cid = camera_ids[idx];\n        // gid = gaussian_ids[idx];\n    } else {\n        // parallelize over C * N\n        cid = idx / N;\n        // gid = idx % N;\n    }\n    const int64_t cid_enc = cid << (32 + tile_n_bits);\n\n    int64_t depth_id_enc = (int64_t) * (int32_t *)&(depths[idx]);\n    int64_t cur_idx = (idx == 0) ? 0 : cum_tiles_per_gauss[idx - 1];\n    for (int32_t i = tile_min.y; i < tile_max.y; ++i) {\n        for (int32_t j = tile_min.x; j < tile_max.x; ++j) {\n            int64_t tile_id = i * tile_width + j;\n            // e.g. tile_n_bits = 22:\n            // camera id (10 bits) | tile id (22 bits) | depth (32 bits)\n            isect_ids[cur_idx] = cid_enc | (tile_id << 32) | depth_id_enc;\n            // the flatten index in [C * N] or [nnz]\n            flatten_ids[cur_idx] = static_cast<int32_t>(idx);\n            ++cur_idx;\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nisect_tiles_tensor(const torch::Tensor &means2d, // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &radii,   // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &depths,  // [C, N] or [nnz]\n                   const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n                   const at::optional<torch::Tensor> &gaussian_ids, // [nnz]\n                   const uint32_t C, const uint32_t tile_size,\n                   const uint32_t tile_width, const uint32_t tile_height,\n                   const bool sort, const bool double_buffer) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(radii);\n    CHECK_INPUT(depths);\n    if (camera_ids.has_value()) {\n        CHECK_INPUT(camera_ids.value());\n    }\n    if (gaussian_ids.has_value()) {\n        CHECK_INPUT(gaussian_ids.value());\n    }\n    bool packed = means2d.dim() == 2;\n\n    uint32_t N, nnz, total_elems;\n    int64_t *camera_ids_ptr;\n    int64_t *gaussian_ids_ptr;\n    if (packed) {\n        nnz = means2d.size(0);\n        total_elems = nnz;\n        assert(camera_ids.has_value() && gaussian_ids.has_value());\n        camera_ids_ptr = camera_ids.value().data_ptr<int64_t>();\n        gaussian_ids_ptr = gaussian_ids.value().data_ptr<int64_t>();\n    } else {\n        N = means2d.size(1); // number of gaussians\n        total_elems = C * N;\n    }\n\n    uint32_t n_tiles = tile_width * tile_height;\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    // the number of bits needed to encode the camera id and tile id\n    // Note: std::bit_width requires C++20\n    // uint32_t tile_n_bits = std::bit_width(n_tiles);\n    // uint32_t cam_n_bits = std::bit_width(C);\n    uint32_t tile_n_bits = (uint32_t)floor(log2(n_tiles)) + 1;\n    uint32_t cam_n_bits = (uint32_t)floor(log2(C)) + 1;\n    // the first 32 bits are used for the camera id and tile id altogether, so check if\n    // we have enough bits for them.\n    assert(tile_n_bits + cam_n_bits <= 32);\n\n    // first pass: compute number of tiles per gaussian\n    torch::Tensor tiles_per_gauss =\n        torch::empty_like(depths, depths.options().dtype(torch::kInt32));\n\n    int64_t n_isects;\n    torch::Tensor cum_tiles_per_gauss;\n    if (total_elems) {\n        isect_tiles<<<(total_elems + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                      stream>>>(\n            packed, C, N, nnz, camera_ids_ptr, gaussian_ids_ptr,\n            (float2 *)means2d.data_ptr<float>(), radii.data_ptr<int32_t>(),\n            depths.data_ptr<float>(), nullptr, tile_size, tile_width, tile_height,\n            tile_n_bits, tiles_per_gauss.data_ptr<int32_t>(), nullptr, nullptr);\n        cum_tiles_per_gauss = torch::cumsum(tiles_per_gauss.view({-1}), 0);\n        n_isects = cum_tiles_per_gauss[-1].item<int64_t>();\n    } else {\n        n_isects = 0;\n    }\n\n    // second pass: compute isect_ids and flatten_ids as a packed tensor\n    torch::Tensor isect_ids =\n        torch::empty({n_isects}, depths.options().dtype(torch::kInt64));\n    torch::Tensor flatten_ids =\n        torch::empty({n_isects}, depths.options().dtype(torch::kInt32));\n    if (n_isects) {\n        isect_tiles<<<(total_elems + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                      stream>>>(\n            packed, C, N, nnz, camera_ids_ptr, gaussian_ids_ptr,\n            (float2 *)means2d.data_ptr<float>(), radii.data_ptr<int32_t>(),\n            depths.data_ptr<float>(), cum_tiles_per_gauss.data_ptr<int64_t>(),\n            tile_size, tile_width, tile_height, tile_n_bits, nullptr,\n            isect_ids.data_ptr<int64_t>(), flatten_ids.data_ptr<int32_t>());\n    }\n\n    // optionally sort the Gaussians by isect_ids\n    if (n_isects && sort) {\n        torch::Tensor isect_ids_sorted = torch::empty_like(isect_ids);\n        torch::Tensor flatten_ids_sorted = torch::empty_like(flatten_ids);\n\n        // https://nvidia.github.io/cccl/cub/api/structcub_1_1DeviceRadixSort.html\n        // DoubleBuffer reduce the auxiliary memory usage from O(N+P) to O(P)\n        if (double_buffer) {\n            // Create a set of DoubleBuffers to wrap pairs of device pointers\n            cub::DoubleBuffer<int64_t> d_keys(isect_ids.data_ptr<int64_t>(),\n                                              isect_ids_sorted.data_ptr<int64_t>());\n            cub::DoubleBuffer<int32_t> d_values(flatten_ids.data_ptr<int32_t>(),\n                                                flatten_ids_sorted.data_ptr<int32_t>());\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, d_keys, d_values, n_isects, 0,\n                        32 + tile_n_bits + cam_n_bits, stream);\n            switch (d_keys.selector) {\n            case 0: // sorted items are stored in isect_ids\n                isect_ids_sorted = isect_ids;\n                break;\n            case 1: // sorted items are stored in isect_ids_sorted\n                break;\n            }\n            switch (d_values.selector) {\n            case 0: // sorted items are stored in flatten_ids\n                flatten_ids_sorted = flatten_ids;\n                break;\n            case 1: // sorted items are stored in flatten_ids_sorted\n                break;\n            }\n            // printf(\"DoubleBuffer d_keys selector: %d\\n\", d_keys.selector);\n            // printf(\"DoubleBuffer d_values selector: %d\\n\", d_values.selector);\n        } else {\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, isect_ids.data_ptr<int64_t>(),\n                        isect_ids_sorted.data_ptr<int64_t>(),\n                        flatten_ids.data_ptr<int32_t>(),\n                        flatten_ids_sorted.data_ptr<int32_t>(), n_isects, 0,\n                        32 + tile_n_bits + cam_n_bits, stream);\n        }\n        return std::make_tuple(tiles_per_gauss, isect_ids_sorted, flatten_ids_sorted);\n    } else {\n        return std::make_tuple(tiles_per_gauss, isect_ids, flatten_ids);\n    }\n}\n\n__global__ void isect_offset_encode(const uint32_t n_isects,\n                                    const int64_t *__restrict__ isect_ids,\n                                    const uint32_t C, const uint32_t n_tiles,\n                                    const uint32_t tile_n_bits,\n                                    int32_t *__restrict__ offsets // [C, n_tiles]\n) {\n    // e.g., ids: [1, 1, 1, 3, 3], n_tiles = 6\n    // counts: [0, 3, 0, 2, 0, 0]\n    // cumsum: [0, 3, 3, 5, 5, 5]\n    // offsets: [0, 0, 3, 3, 5, 5]\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= n_isects)\n        return;\n\n    int64_t isect_id_curr = isect_ids[idx] >> 32;\n    int64_t cid_curr = isect_id_curr >> tile_n_bits;\n    int64_t tid_curr = isect_id_curr & ((1 << tile_n_bits) - 1);\n    int64_t id_curr = cid_curr * n_tiles + tid_curr;\n\n    if (idx == 0) {\n        // write out the offsets until the first valid tile (inclusive)\n        for (uint32_t i = 0; i < id_curr + 1; ++i)\n            offsets[i] = static_cast<int32_t>(idx);\n    }\n    if (idx == n_isects - 1) {\n        // write out the rest of the offsets\n        for (uint32_t i = id_curr + 1; i < C * n_tiles; ++i)\n            offsets[i] = static_cast<int32_t>(n_isects);\n    }\n\n    if (idx > 0) {\n        // visit the current and previous isect_id and check if the (cid, tile_id)\n        // pair changes.\n        int64_t isect_id_prev = isect_ids[idx - 1] >> 32; // shift out the depth\n        if (isect_id_prev == isect_id_curr)\n            return;\n\n        // write out the offsets between the previous and current tiles\n        int64_t cid_prev = isect_id_prev >> tile_n_bits;\n        int64_t tid_prev = isect_id_prev & ((1 << tile_n_bits) - 1);\n        int64_t id_prev = cid_prev * n_tiles + tid_prev;\n        for (uint32_t i = id_prev + 1; i < id_curr + 1; ++i)\n            offsets[i] = static_cast<int32_t>(idx);\n    }\n}\n\ntorch::Tensor isect_offset_encode_tensor(const torch::Tensor &isect_ids, // [n_isects]\n                                         const uint32_t C, const uint32_t tile_width,\n                                         const uint32_t tile_height) {\n    DEVICE_GUARD(isect_ids);\n    CHECK_INPUT(isect_ids);\n\n    uint32_t n_isects = isect_ids.size(0);\n    torch::Tensor offsets = torch::empty({C, tile_height, tile_width},\n                                         isect_ids.options().dtype(torch::kInt32));\n    if (n_isects) {\n        uint32_t n_tiles = tile_width * tile_height;\n        uint32_t tile_n_bits = (uint32_t)floor(log2(n_tiles)) + 1;\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        isect_offset_encode<<<(n_isects + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                              stream>>>(n_isects, isect_ids.data_ptr<int64_t>(), C,\n                                        n_tiles, tile_n_bits,\n                                        offsets.data_ptr<int32_t>());\n    } else {\n        offsets.fill_(0);\n    }\n    return offsets;\n}\n\n__global__ void isect_lidar_tiles(\n    // if the data is [C, N, ...] or [nnz, ...] (packed)\n    const bool packed,\n    // parallelize over C * N, only used if packed is False\n    const uint32_t C, const uint32_t N,\n    // parallelize over nnz, only used if packed is True\n    const uint32_t nnz,\n    const int64_t *__restrict__ camera_ids,   // [nnz] optional\n    const int64_t *__restrict__ gaussian_ids, // [nnz] optional\n    // data\n    const float2 *__restrict__ means2d,              // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ radii,               // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ depths,                // [C, N] or [nnz]\n    const int64_t *__restrict__ cum_tiles_per_gauss, // [C, N] or [nnz]\n    const float *__restrict__ elev_boundaries,      // [M]\n    const float tile_azim_resolution, // [1]\n    const float min_azim, // [1]\n    const uint32_t n_tiles_azim, const uint32_t n_tiles_elev,\n    const uint32_t tile_n_bits,\n    int32_t *__restrict__ tiles_per_gauss, // [C, N] or [nnz]\n    int64_t *__restrict__ isect_ids,       // [n_isects]\n    int32_t *__restrict__ flatten_ids      // [n_isects]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    bool first_pass = cum_tiles_per_gauss == nullptr;\n    if (idx >= (packed ? nnz : C * N))\n        return;\n    if (radii[idx * 2] <= 0) {\n        if (first_pass)\n            tiles_per_gauss[idx] = 0;\n        return;\n    }\n\n    float tile_elev = means2d[idx].y;\n    float tile_elev_low = tile_elev - radii[idx * 2 + 1];\n    float tile_elev_high = tile_elev + radii[idx * 2 + 1];\n\n    float azim = means2d[idx].x - min_azim;\n    float azim_low = azim - radii[idx * 2];\n    float azim_high = azim + radii[idx * 2];\n    float azim_max = static_cast<float>(n_tiles_azim) * tile_azim_resolution;\n    float tile_azim_low;\n    if (azim_low >= 0) {\n        tile_azim_low = azim_low / tile_azim_resolution;\n    } else {\n        tile_azim_low = (fmodf((azim_low + 360.f), 360.f) - azim_max) / tile_azim_resolution;\n    }\n    float tile_azim_high;\n    if (azim_high <= 360.f) {\n        tile_azim_high = azim_high / tile_azim_resolution;\n    } else {\n        tile_azim_high = static_cast<float>(n_tiles_azim) + (fmodf((azim_high + 360.f), 360.f)) / tile_azim_resolution;\n    }\n\n    // tile_min is inclusive, tile_max is exclusive\n    int2 tile_min, tile_max;\n    tile_min.x = static_cast<int32_t>(floor(tile_azim_low));\n    tile_max.x = static_cast<int32_t>(ceil(tile_azim_high));\n\n    int32_t elev_min=0, elev_max=n_tiles_elev, i=0;\n    while (i <= n_tiles_elev && elev_boundaries[i] < tile_elev_low) {\n        ++i;\n    }\n    elev_min = max(i-1,0);\n    while (i <= n_tiles_elev && elev_boundaries[i] < tile_elev_high) {\n        ++i;\n    }\n    elev_max = min(i, n_tiles_elev);\n    tile_min.y = elev_min;\n    tile_max.y = elev_max;\n\n    if (first_pass) {\n        // first pass only writes out tiles_per_gauss\n        tiles_per_gauss[idx] =\n            static_cast<int32_t>((tile_max.y - tile_min.y) * (tile_max.x - tile_min.x));\n        return;\n    }\n\n    int64_t cid; // camera id\n    if (packed) {\n        // parallelize over nnz\n        cid = camera_ids[idx];\n        // gid = gaussian_ids[idx];\n    } else {\n        // parallelize over C * N\n        cid = idx / N;\n        // gid = idx % N;\n    }\n\n    const int64_t cid_enc = cid << (32 + tile_n_bits);\n\n    int64_t depth_id_enc = (int64_t) * (int32_t *)&(depths[idx]);\n    int64_t cur_idx = (idx == 0) ? 0 : cum_tiles_per_gauss[idx - 1];\n    for (int32_t i = tile_min.y; i < tile_max.y; ++i) {\n        for (int32_t j = tile_min.x; j < tile_max.x; ++j) {\n            // wrap j to [0, n_tiles_azim)\n            int32_t wrapped_j = (j + n_tiles_azim) % n_tiles_azim;\n\n            int64_t tile_id = i * n_tiles_azim + wrapped_j;\n            // e.g. tile_n_bits = 22:\n            // camera id (10 bits) | tile id (22 bits) | depth (32 bits)\n            isect_ids[cur_idx] = cid_enc | (tile_id << 32) | depth_id_enc;\n            // the flatten index in [C * N] or [nnz]\n            flatten_ids[cur_idx] = static_cast<int32_t>(idx);\n            ++cur_idx;\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor>\nisect_lidar_tiles_tensor(const torch::Tensor &means2d, // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &radii,   // [C, N, 2] or [nnz, 2]\n                   const torch::Tensor &depths,  // [C, N] or [nnz]\n                   const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n                   const at::optional<torch::Tensor> &gaussian_ids, // [nnz]\n                   const uint32_t C,\n                   const torch::Tensor &elev_boundaries, // [M] \n                   const float tile_azim_resolution, // [1]\n                   const float min_azim, // [1]\n                   const bool sort, const bool double_buffer) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(radii);\n    CHECK_INPUT(depths);\n    if (camera_ids.has_value()) {\n        CHECK_INPUT(camera_ids.value());\n    }\n    if (gaussian_ids.has_value()) {\n        CHECK_INPUT(gaussian_ids.value());\n    }\n    CHECK_INPUT(elev_boundaries);\n    bool packed = means2d.dim() == 2;\n\n    uint32_t N, nnz, total_elems;\n    int64_t *camera_ids_ptr;\n    int64_t *gaussian_ids_ptr;\n    if (packed) {\n        nnz = means2d.size(0);\n        total_elems = nnz;\n        assert(camera_ids.has_value() && gaussian_ids.has_value());\n        camera_ids_ptr = camera_ids.value().data_ptr<int64_t>();\n        gaussian_ids_ptr = gaussian_ids.value().data_ptr<int64_t>();\n    } else {\n        N = means2d.size(1); // number of gaussians\n        total_elems = C * N;\n    }\n\n    uint32_t n_tiles_azim = (uint32_t)ceil(360.f / tile_azim_resolution);\n    uint32_t n_tiles_elev = (uint32_t)(elev_boundaries.size(0) - 1);\n    uint32_t n_tiles = n_tiles_azim * n_tiles_elev;\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    // the number of bits needed to encode the camera id and tile id\n    // Note: std::bit_width requires C++20\n    // uint32_t tile_n_bits = std::bit_width(n_tiles);\n    // uint32_t cam_n_bits = std::bit_width(C);\n    uint32_t tile_n_bits = (uint32_t)floor(log2(n_tiles)) + 1;\n    uint32_t cam_n_bits = (uint32_t)floor(log2(C)) + 1;\n    // the first 32 bits are used for the camera id and tile id altogether, so check if\n    // we have enough bits for them.\n    assert(tile_n_bits + cam_n_bits <= 32);\n\n    // first pass: compute number of tiles per gaussian\n    torch::Tensor tiles_per_gauss =\n        torch::empty_like(depths, depths.options().dtype(torch::kInt32));\n\n    int64_t n_isects;\n    torch::Tensor cum_tiles_per_gauss;\n    if (total_elems) {\n        isect_lidar_tiles<<<(total_elems + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                      stream>>>(\n            packed, C, N, nnz, camera_ids_ptr, gaussian_ids_ptr,\n            (float2 *)means2d.data_ptr<float>(), radii.data_ptr<float>(),\n            depths.data_ptr<float>(), nullptr, elev_boundaries.data_ptr<float>(),\n            tile_azim_resolution, min_azim, n_tiles_azim, n_tiles_elev,\n            tile_n_bits, tiles_per_gauss.data_ptr<int32_t>(), nullptr, nullptr);\n        cum_tiles_per_gauss = torch::cumsum(tiles_per_gauss.view({-1}), 0);\n        n_isects = cum_tiles_per_gauss[-1].item<int64_t>();\n    } else {\n        n_isects = 0;\n    }\n\n    // second pass: compute isect_ids and flatten_ids as a packed tensor\n    torch::Tensor isect_ids =\n        torch::empty({n_isects}, depths.options().dtype(torch::kInt64));\n    torch::Tensor flatten_ids =\n        torch::empty({n_isects}, depths.options().dtype(torch::kInt32));\n    if (n_isects) {\n        isect_lidar_tiles<<<(total_elems + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                      stream>>>(\n            packed, C, N, nnz, camera_ids_ptr, gaussian_ids_ptr,\n            (float2 *)means2d.data_ptr<float>(), radii.data_ptr<float>(),\n            depths.data_ptr<float>(), cum_tiles_per_gauss.data_ptr<int64_t>(),\n            elev_boundaries.data_ptr<float>(), \n            tile_azim_resolution, min_azim, n_tiles_azim, n_tiles_elev,\n            tile_n_bits, nullptr,\n            isect_ids.data_ptr<int64_t>(), flatten_ids.data_ptr<int32_t>());\n    }\n\n    // optionally sort the Gaussians by isect_ids\n    if (n_isects && sort) {\n        torch::Tensor isect_ids_sorted = torch::empty_like(isect_ids);\n        torch::Tensor flatten_ids_sorted = torch::empty_like(flatten_ids);\n\n        // https://nvidia.github.io/cccl/cub/api/structcub_1_1DeviceRadixSort.html\n        // DoubleBuffer reduce the auxiliary memory usage from O(N+P) to O(P)\n        if (double_buffer) {\n            // Create a set of DoubleBuffers to wrap pairs of device pointers\n            cub::DoubleBuffer<int64_t> d_keys(isect_ids.data_ptr<int64_t>(),\n                                              isect_ids_sorted.data_ptr<int64_t>());\n            cub::DoubleBuffer<int32_t> d_values(flatten_ids.data_ptr<int32_t>(),\n                                                flatten_ids_sorted.data_ptr<int32_t>());\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, d_keys, d_values, n_isects, 0,\n                        32 + tile_n_bits + cam_n_bits, stream);\n            switch (d_keys.selector) {\n            case 0: // sorted items are stored in isect_ids\n                isect_ids_sorted = isect_ids;\n                break;\n            case 1: // sorted items are stored in isect_ids_sorted\n                break;\n            }\n            switch (d_values.selector) {\n            case 0: // sorted items are stored in flatten_ids\n                flatten_ids_sorted = flatten_ids;\n                break;\n            case 1: // sorted items are stored in flatten_ids_sorted\n                break;\n            }\n            // printf(\"DoubleBuffer d_keys selector: %d\\n\", d_keys.selector);\n            // printf(\"DoubleBuffer d_values selector: %d\\n\", d_values.selector);\n        } else {\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, isect_ids.data_ptr<int64_t>(),\n                        isect_ids_sorted.data_ptr<int64_t>(),\n                        flatten_ids.data_ptr<int32_t>(),\n                        flatten_ids_sorted.data_ptr<int32_t>(), n_isects, 0,\n                        32 + tile_n_bits + cam_n_bits, stream);\n        }\n        return std::make_tuple(tiles_per_gauss, isect_ids_sorted, flatten_ids_sorted);\n    } else {\n        return std::make_tuple(tiles_per_gauss, isect_ids, flatten_ids);\n    }\n}\n\n__global__ void points_mapping_offset_encode(\n    const uint32_t n_points,\n    const int64_t *__restrict__ point_ids,\n    const uint32_t C, const uint32_t n_tiles,\n    int32_t *__restrict__ offsets // [C, n_tiles]\n) {\n    // e.g., ids: [1, 1, 1, 3, 3], n_tiles = 6\n    // counts: [0, 3, 0, 2, 0, 0]\n    // cumsum: [0, 3, 3, 5, 5, 5]\n    // offsets: [0, 0, 3, 3, 5, 5]\n    const uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= n_points)\n        return;\n\n    const int64_t point_id_curr = point_ids[idx];\n    const int64_t cid_curr = point_id_curr >> 32;\n    const int64_t tid_curr = point_id_curr & ((1ULL << 32) - 1);\n    const int64_t id_curr = cid_curr * n_tiles + tid_curr;\n\n    if (idx == 0) {\n        // write out the offsets until the first valid tile (inclusive)\n        for (uint32_t i = 0; i < id_curr + 1; ++i) \n            offsets[i] = static_cast<int32_t>(idx);\n    }\n    if (idx == n_points - 1) {\n        // write out the rest of the offsets\n        for (uint32_t i = id_curr + 1; i < C * n_tiles; ++i)\n            offsets[i] = static_cast<int32_t>(n_points);\n    }\n\n    if (idx > 0) {\n        // visit the current and previous isect_id and check if the (cid, tile_id)\n        // pair changes.\n        const int64_t point_id_prev = point_ids[idx - 1];\n        if (point_id_prev == point_id_curr)\n            return;\n\n        // write out the offsets between the previous and current tiles\n        const int64_t cid_prev = point_id_prev >> 32;\n        const int64_t tid_prev = point_id_prev & ((1ULL << 32) - 1);\n        const int64_t id_prev = cid_prev * n_tiles + tid_prev;\n        for (uint32_t i = id_prev + 1; i < id_curr + 1; ++i)\n            offsets[i] = static_cast<int32_t>(idx);\n    }\n}\n\ntorch::Tensor points_mapping_offset_encode_tensor(const torch::Tensor &point_ids, // [n_points]\n                                         const uint32_t C, const uint32_t tile_width,\n                                         const uint32_t tile_height) {\n    DEVICE_GUARD(point_ids);\n    CHECK_INPUT(point_ids);\n\n    uint32_t n_points = point_ids.size(0);\n    torch::Tensor offsets = torch::empty({C, tile_height, tile_width},\n                                         point_ids.options().dtype(torch::kInt32));\n\n    if (n_points) {\n        uint32_t n_tiles = tile_width * tile_height;\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        points_mapping_offset_encode<<<(n_points + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                              stream>>>(n_points, point_ids.data_ptr<int64_t>(), C,\n                                        n_tiles, offsets.data_ptr<int32_t>());\n    } else {\n        offsets.fill_(0);\n    }\n    return offsets;\n}\n__global__ void map_points_to_lidar_tiles(\n    // if the data is [C, N, ...] or [nnz, ...] (packed)\n    const bool packed,\n    // parallelize over C * N, only used if packed is False\n    const uint32_t C, const uint32_t N,\n    // parallelize over nnz, only used if packed is True\n    const uint32_t nnz,\n    const int64_t *__restrict__ camera_ids,   // [nnz] optional\n    // data\n    const float2 *__restrict__ points2d,              // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ elev_boundaries,      // [M]\n    const float tile_azim_resolution, // [1]\n    const float min_azim, // [1]\n    const uint32_t n_tiles_azim, const uint32_t n_tiles_elev,\n    int64_t *__restrict__ tile_ids, // [C * N]\n    int32_t *__restrict__ flatten_ids // [C * N]\n) {\n    // parallelize over C * N.\n    uint32_t idx = cg::this_grid().thread_rank();\n    // bool first_pass = cum_tiles_per_gauss == nullptr;\n    if (idx >= (packed ? nnz : C * N))\n        return;\n\n    float tile_elev = points2d[idx].y;\n    float azim = points2d[idx].x - min_azim;\n    \n    float tile_azim;\n    if ((azim >= 0.f) && (azim < 360.f)) {\n        tile_azim = azim / tile_azim_resolution;\n    } else {\n        tile_azim = fmodf((azim + 360.f), 360.f) / tile_azim_resolution;\n    }\n\n    int2 tile_coord;\n    tile_coord.x = static_cast<int32_t>(tile_azim);\n\n    int32_t i=0;\n    while (i < n_tiles_elev && elev_boundaries[i] < tile_elev) {\n        ++i;\n    }\n    tile_coord.y = max(i-1,0);\n\n    int64_t cid; // camera id\n    if (packed) {\n        // parallelize over nnz\n        cid = camera_ids[idx];\n    } else {\n        // parallelize over C * N\n        cid = idx / N;\n    }\n\n    // create encoding from camera id (first 32 bits) and tile id (last 32 bits) [camera_id | tile_id]\n    const int64_t cid_enc = cid << 32;\n\n    // wrap j to [0, n_tiles_azim)\n    const int64_t tile_id = tile_coord.y * n_tiles_azim + tile_coord.x;\n    \n    tile_ids[idx] = cid_enc | tile_id;\n    flatten_ids[idx] = idx;\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\nmap_points_to_lidar_tiles_tensor(const torch::Tensor &points2d, // [C, N, 2] or [nnz, 2]\n                   const at::optional<torch::Tensor> &camera_ids,   // [nnz]\n                   const uint32_t C,\n                   const torch::Tensor &elev_boundaries, // [M] \n                   const float tile_azim_resolution, // [1]\n                   const float min_azim, // [1]\n                   const bool sort, const bool double_buffer\n) {\n    DEVICE_GUARD(points2d);\n    CHECK_INPUT(points2d);\n    if (camera_ids.has_value()) {\n        CHECK_INPUT(camera_ids.value());\n    }\n    CHECK_INPUT(elev_boundaries);\n    bool packed = points2d.dim() == 2;\n\n    uint32_t N, nnz, total_elems;\n    int64_t *camera_ids_ptr;\n    if (packed) {\n        nnz = points2d.size(0);\n        total_elems = nnz;\n        assert(camera_ids.has_value());\n        camera_ids_ptr = camera_ids.value().data_ptr<int64_t>();\n    } else {\n        N = points2d.size(1); // number of gaussians\n        total_elems = C * N;\n    }\n\n    uint32_t n_tiles_azim = (uint32_t)ceil(360.f / tile_azim_resolution);\n    uint32_t n_tiles_elev = (uint32_t)(elev_boundaries.size(0) - 1);\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor tile_ids =\n        torch::empty({total_elems}, points2d.options().dtype(torch::kInt64));\n    torch::Tensor flatten_ids =\n        torch::empty({total_elems}, points2d.options().dtype(torch::kInt32));\n    if (total_elems) {\n        map_points_to_lidar_tiles<<<(total_elems + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                      stream>>>(\n            packed, C, N, nnz, camera_ids_ptr,\n            (float2 *)points2d.data_ptr<float>(), elev_boundaries.data_ptr<float>(),\n            tile_azim_resolution, min_azim, n_tiles_azim, n_tiles_elev,\n            tile_ids.data_ptr<int64_t>(), flatten_ids.data_ptr<int32_t>());\n    }\n\n    if (sort) {\n        torch::Tensor tile_ids_sorted = torch::empty_like(tile_ids);\n        torch::Tensor flatten_ids_sorted = torch::empty_like(flatten_ids);\n\n        // https://nvidia.github.io/cccl/cub/api/structcub_1_1DeviceRadixSort.html\n        // DoubleBuffer reduce the auxiliary memory usage from O(N+P) to O(P)\n        if (double_buffer) {\n            // Create a set of DoubleBuffers to wrap pairs of device pointers\n            cub::DoubleBuffer<int64_t> d_keys(tile_ids.data_ptr<int64_t>(),\n                                              tile_ids_sorted.data_ptr<int64_t>());\n            cub::DoubleBuffer<int32_t> d_values(flatten_ids.data_ptr<int32_t>(),\n                                                flatten_ids_sorted.data_ptr<int32_t>());\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, d_keys, d_values, total_elems, 0,\n                        64, stream);\n            switch (d_keys.selector) {\n            case 0: // sorted items are stored in tile_ids\n                tile_ids_sorted = tile_ids;\n                break;\n            case 1: // sorted items are stored in tile_ids_sorted\n                break;\n            }\n            switch (d_values.selector) {\n            case 0: // sorted items are stored in flatten_ids\n                flatten_ids_sorted = flatten_ids;\n                break;\n            case 1: // sorted items are stored in flatten_ids_sorted\n                break;\n            }\n            // printf(\"DoubleBuffer d_keys selector: %d\\n\", d_keys.selector);\n            // printf(\"DoubleBuffer d_values selector: %d\\n\", d_values.selector);\n        } else {\n            CUB_WRAPPER(cub::DeviceRadixSort::SortPairs, tile_ids.data_ptr<int64_t>(),\n                        tile_ids_sorted.data_ptr<int64_t>(),\n                        flatten_ids.data_ptr<int32_t>(),\n                        flatten_ids_sorted.data_ptr<int32_t>(), total_elems, 0,\n                        64, stream);\n        }\n        return std::make_tuple(tile_ids_sorted, flatten_ids_sorted);\n    } else {\n        return std::make_tuple(tile_ids, flatten_ids);\n    }\n}\n\n__global__ void populate_image_from_points_kernel(\n    const uint32_t C, const uint32_t n_points,\n    const float *__restrict__ points,    // [C, N, 5] or [nnz, 5]\n    const uint32_t image_width, const uint32_t image_height,\n    const uint32_t tile_width, const uint32_t tile_height,\n    const uint32_t tile_grid_width, const uint32_t tile_grid_height,\n    const int32_t *__restrict__ tile_offsets, // [C, tile_height, tile_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    float *__restrict__ raster_pts // [C, image_height, image_width, 5]\n) {\n    // each thread draws one pixel, but also timeshares caching gaussians in a\n    // shared tile\n\n    auto block = cg::this_thread_block();\n    const int32_t camera_id = block.group_index().x;\n    const int32_t tile_id = block.group_index().y * tile_grid_width + block.group_index().z;\n    const uint32_t i = block.group_index().y * tile_height + block.thread_index().y;\n    const uint32_t j = block.group_index().z * tile_width + block.thread_index().x;\n    tile_offsets += camera_id * tile_grid_height * tile_grid_width;\n    raster_pts += camera_id * image_height * image_width * 5;\n    const int32_t pix_idx =  i * image_width + j;\n\n    // return if out of bounds\n    if (i >= image_height || j >= image_width)\n        return;\n\n    const int32_t range_start = tile_offsets[tile_id];\n    int32_t range_end =\n        (camera_id == C - 1) && (tile_id == tile_grid_width * tile_grid_height - 1)\n            ? n_points\n            : tile_offsets[tile_id + 1];\n    range_end = min(range_end, range_start + block.size());\n\n    uint32_t tr = block.thread_rank();\n    const int32_t flattened_point_idx = range_start + tr;\n    if (flattened_point_idx >= range_end)\n        return;\n\n    const int32_t point_idx = flatten_ids[flattened_point_idx];\n    // write out, points has 5 dims\n    raster_pts[pix_idx * 5] = points[point_idx * 5];\n    raster_pts[pix_idx * 5 + 1] = points[point_idx * 5 + 1];\n    raster_pts[pix_idx * 5 + 2] = points[point_idx * 5 + 2];\n    raster_pts[pix_idx * 5 + 3] = points[point_idx * 5 + 3];\n    raster_pts[pix_idx * 5 + 4] = points[point_idx * 5 + 4];\n}\n\ntorch::Tensor populate_image_from_points_tensor(\n    // Points to fill the raster image with\n    const torch::Tensor &points,   // [C, N, 5] or [nnz, 5]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, \n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n) {\n    DEVICE_GUARD(points);\n    CHECK_INPUT(points);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n\n    uint32_t C = tile_offsets.size(0);         // number of cameras\n\n    uint32_t tile_grid_height = tile_offsets.size(1);\n    uint32_t tile_grid_width = tile_offsets.size(2);\n    uint32_t n_points = flatten_ids.size(0);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_grid_height * tile_grid_width blocks.\n    dim3 threads = {tile_width, tile_height, 1};\n    dim3 blocks = {C, tile_grid_height, tile_grid_width};\n\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n\n    torch::Tensor raster_pts_image =\n        torch::zeros({C, image_height, image_width, 5}, points.options().dtype(torch::kFloat32));\n    populate_image_from_points_kernel<<<blocks, threads, 0, stream>>>(\n        C, n_points, (float *)points.data_ptr<float>(),\n        image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n        tile_offsets.data_ptr<int32_t>(),\n        flatten_ids.data_ptr<int32_t>(),\n        (float *)raster_pts_image.data_ptr<float>());\n        \n    return raster_pts_image;\n}\n\n/****************************************************************************\n * Rasterization\n ****************************************************************************/\n\n__global__ void rasterize_to_indices_in_range_kernel(\n    const uint32_t range_start, const uint32_t range_end,\n    const uint32_t C, const uint32_t N, const uint32_t n_isects,\n    const float2 *__restrict__ means2d,             // [C, N, 2]\n    const float3 *__restrict__ conics,              // [C, N, 3]\n    const float *__restrict__ opacities,            // [C, N]\n    const float2 *__restrict__ pix_vels,            // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t rolling_shutter_direction, // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global \n    const int32_t *__restrict__ tile_offsets, // [C, tile_height, tile_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    const float *__restrict__ transmittances, // [C, image_height, image_width]\n    const int32_t *__restrict__ chunk_starts, // [C, image_height, image_width]\n    int32_t *__restrict__ chunk_cnts,         // [C, image_height, image_width]\n    int64_t *__restrict__ gaussian_ids,       // [n_elems]\n    int64_t *__restrict__ pixel_ids           // [n_elems]\n) {\n    // each thread draws one pixel, but also timeshares caching gaussians in a\n    // shared tile\n\n    auto block = cg::this_thread_block();\n    uint32_t camera_id = block.group_index().x;\n    uint32_t tile_id = block.group_index().y * tile_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_size + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_size + block.thread_index().x;\n\n    // move pointers to the current camera\n    tile_offsets += camera_id * tile_height * tile_width;\n    transmittances += camera_id * image_height * image_width;\n\n    float px = (float)j + 0.5f;\n    float py = (float)i + 0.5f;\n    int32_t pix_id = i * image_width + j;\n    // Calculate rolling shutter time based on shutter direction\n    float roll_time = 0.0f;\n    switch (rolling_shutter_direction) {\n        case 1: // top2bot\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 2: // left2right\n            roll_time = rolling_shutter_time[camera_id] * ((px - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 3: // bot2top\n            roll_time = rolling_shutter_time[camera_id] * ((-py + image_height - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 4: // right2left\n            roll_time = rolling_shutter_time[camera_id] * ((-px + image_width - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 5: // global\n            roll_time = 0.0f; // No rolling shutter effect\n            break;\n        default:\n            // Default to top2bot behavior if an invalid value is provided\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n    }\n\n    // return if out of bounds\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n    bool done = !inside;\n\n    bool first_pass = chunk_starts == nullptr;\n    int32_t base;\n    if (!first_pass && inside) {\n        chunk_starts += camera_id * image_height * image_width;\n        base = chunk_starts[pix_id];\n    }\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t isect_range_start = tile_offsets[tile_id];\n    int32_t isect_range_end =\n        (camera_id == C - 1) && (tile_id == tile_width * tile_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    uint32_t num_batches =\n        (isect_range_end - isect_range_start + block_size - 1) / block_size;\n\n    if (range_start >= num_batches) {\n        // this entire tile has been processed in the previous iterations\n        // so we don't need to do anything.\n        return;\n    }\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float2 *pix_vel_batch = (float2 *)&conic_batch[block_size];    // [block_size]\n\n    // current visibility left to render\n    // transmittance is gonna be used in the backward pass which requires a high\n    // numerical precision so we (should) use double for it. However double make bwd\n    // 1.5x slower so we stick with float for now.\n    float T, next_T;\n    if (inside) {\n        T = transmittances[pix_id];\n        next_T = T;\n    }\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing its\n    // designated pixel\n    uint32_t tr = block.thread_rank();\n\n    int32_t cnt = 0;\n    for (uint32_t b = range_start; b < min(range_end, num_batches); ++b) {\n        // resync all threads before beginning next batch\n        // end early if entire tile is done\n        if (__syncthreads_count(done) >= block_size) {\n            break;\n        }\n\n        // each thread fetch 1 gaussian from front to back\n        // index of gaussian to load\n        uint32_t batch_start = isect_range_start + block_size * b;\n        uint32_t idx = batch_start + tr;\n        if (idx < isect_range_end) {\n            int32_t g = flatten_ids[idx];\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float2 pix_vel = pix_vels[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y};\n        }\n\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n\n        // process gaussians in the current batch for this pixel\n        uint32_t batch_size = min(block_size, isect_range_end - batch_start);\n        for (uint32_t t = 0; (t < batch_size) && !done; ++t) {\n            const float3 conic = conic_batch[t];\n            const float3 xy_opac = xy_opacity_batch[t];\n            const float opac = xy_opac.z;\n            const float2 pix_vel = pix_vel_batch[t];\n            const float2 delta = {\n                xy_opac.x + roll_time * pix_vel.x - px,\n                xy_opac.y + roll_time * pix_vel.y - py\n            };\n            const float sigma =\n                0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                conic.y * delta.x * delta.y;\n            float alpha = min(0.999f, opac * __expf(-sigma));\n\n            if (sigma < 0.f || alpha < 1.f / 255.f) {\n                continue;\n            }\n\n            next_T = T * (1.0f - alpha);\n            if (next_T <= 1e-4) { // this pixel is done: exclusive\n                done = true;\n                break;\n            }\n\n            if (first_pass) {\n                // First pass of this function we count the number of gaussians\n                // that contribute to each pixel\n                cnt += 1;\n            } else {\n                // Second pass we write out the gaussian ids and pixel ids\n                int32_t g = id_batch[t]; // flatten index in [C * N]\n                gaussian_ids[base + cnt] = g % N;\n                pixel_ids[base + cnt] = pix_id + camera_id * image_height * image_width;\n                cnt += 1;\n            }\n\n            T = next_T;\n        }\n    }\n\n    if (inside && first_pass) {\n        chunk_cnts += camera_id * image_height * image_width;\n        chunk_cnts[pix_id] = cnt;\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor> rasterize_to_indices_in_range_tensor(\n    const uint32_t range_start, const uint32_t range_end, // iteration steps\n    const torch::Tensor transmittances, // [C, image_height, image_width]\n    // Gaussian parameters\n    const torch::Tensor &means2d,              // [C, N, 2]\n    const torch::Tensor &conics,               // [C, N, 3]\n    const torch::Tensor &opacities,            // [C, N]\n    const torch::Tensor &pix_vels,             // [C, N, 2]\n    const torch::Tensor &rolling_shutter_time, // [C]\n    // image size\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    // shutter direction\n    const uint32_t rolling_shutter_direction,    // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n\n    uint32_t C = means2d.size(0); // number of cameras\n    uint32_t N = means2d.size(1); // number of gaussians\n    uint32_t tile_height = tile_offsets.size(1);\n    uint32_t tile_width = tile_offsets.size(2);\n    uint32_t n_isects = flatten_ids.size(0);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_height * tile_width blocks.\n    dim3 threads = {tile_size, tile_size, 1};\n    dim3 blocks = {C, tile_height, tile_width};\n\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n    const uint32_t shared_mem =\n        tile_size * tile_size * (sizeof(int32_t) + sizeof(float3) + sizeof(float3) + sizeof(float2));\n    if (cudaFuncSetAttribute(rasterize_to_indices_in_range_kernel,\n                             cudaFuncAttributeMaxDynamicSharedMemorySize,\n                             shared_mem) != cudaSuccess) {\n        AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                 \" bytes), try lowering tile_size.\");\n    }\n\n    // First pass: count the number of gaussians that contribute to each pixel\n    int64_t n_elems;\n    torch::Tensor chunk_starts;\n    if (n_isects) {\n        torch::Tensor chunk_cnts = torch::zeros({C * image_height * image_width},\n                                                means2d.options().dtype(torch::kInt32));\n        rasterize_to_indices_in_range_kernel<<<blocks, threads, shared_mem, stream>>>(\n            range_start, range_end, C, N, n_isects, (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(), opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            transmittances.data_ptr<float>(), nullptr, chunk_cnts.data_ptr<int32_t>(),\n            nullptr, nullptr);\n\n        torch::Tensor cumsum = torch::cumsum(chunk_cnts, 0, chunk_cnts.scalar_type());\n        n_elems = cumsum[-1].item<int64_t>();\n        chunk_starts = cumsum - chunk_cnts;\n    } else {\n        n_elems = 0;\n    }\n\n    // Second pass: allocate memory and write out the gaussian and pixel ids.\n    torch::Tensor gaussian_ids =\n        torch::empty({n_elems}, means2d.options().dtype(torch::kInt64));\n    torch::Tensor pixel_ids =\n        torch::empty({n_elems}, means2d.options().dtype(torch::kInt64));\n    if (n_elems) {\n        rasterize_to_indices_in_range_kernel<<<blocks, threads, shared_mem, stream>>>(\n            range_start, range_end, C, N, n_isects, (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(), opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            transmittances.data_ptr<float>(), chunk_starts.data_ptr<int32_t>(), nullptr,\n             gaussian_ids.data_ptr<int64_t>(), pixel_ids.data_ptr<int64_t>());\n    }\n    return std::make_tuple(gaussian_ids, pixel_ids);\n}\n\n__global__ void rasterize_to_indices_in_range_lidar_kernel(\n    const uint32_t range_start, const uint32_t range_end, const uint32_t C,\n    const uint32_t N, const uint32_t n_isects,\n    const float2 *__restrict__ means2d,  // [C, N, 2]\n    const float3 *__restrict__ conics,   // [C, N, 3]\n    const float *__restrict__ opacities, // [C, N]\n    const float3 *__restrict__ pix_vels, // [C, N, 3] or [nnz, 3]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t tile_grid_width,\n    const uint32_t tile_grid_height,\n    const int32_t *__restrict__ tile_offsets, // [C, tile_grid_height, tile_grid_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    const float *__restrict__ transmittances, // [C, image_height, image_width]\n    const int32_t *__restrict__ chunk_starts, // [C, image_height, image_width]\n    const float4 *__restrict__ raster_pts,    // [C, image_height, image_width, 4]\n    int32_t *__restrict__ chunk_cnts,         // [C, image_height, image_width]\n    int64_t *__restrict__ gaussian_ids,       // [n_elems]\n    int64_t *__restrict__ pixel_ids           // [n_elems]\n) {\n    // each thread draws one pixel, but also timeshares caching gaussians in a\n    // shared tile\n\n    auto block = cg::this_thread_block();\n    uint32_t camera_id = block.group_index().x;\n    uint32_t tile_id = block.group_index().y * tile_grid_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_height + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_width + block.thread_index().x;\n\n    // move pointers to the current camera\n    tile_offsets += camera_id * tile_grid_height * tile_grid_width;\n    transmittances += camera_id * image_height * image_width;\n\n    int32_t pix_id = i * image_width + j;\n\n    // return if out of bounds\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n    bool done = !inside;\n\n    bool first_pass = chunk_starts == nullptr;\n    int32_t base;\n    if (!first_pass && inside) {\n        chunk_starts += camera_id * image_height * image_width;\n        base = chunk_starts[pix_id];\n    }\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t isect_range_start = tile_offsets[tile_id];\n    int32_t isect_range_end =\n        (camera_id == C - 1) && (tile_id == tile_grid_width * tile_grid_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    uint32_t num_batches =\n        (isect_range_end - isect_range_start + block_size - 1) / block_size;\n\n    if (range_start >= num_batches) {\n        // this entire tile has been processed in the previous iterations\n        // so we don't need to do anything.\n        return;\n    }\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float3 *pix_vel_batch = (float3 *)&conic_batch[block_size];    // [block_size]\n\n    // current visibility left to render\n    // transmittance is gonna be used in the backward pass which requires a high\n    // numerical precision so we (should) use double for it. However double make bwd\n    // 1.5x slower so we stick with float for now.\n    float T, next_T;\n    if (inside) {\n        T = transmittances[pix_id];\n        next_T = T;\n    }\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing its\n    // designated pixel\n    uint32_t tr = block.thread_rank();\n\n    int32_t cnt = 0;\n    for (uint32_t b = range_start; b < min(range_end, num_batches); ++b) {\n        // resync all threads before beginning next batch\n        // end early if entire tile is done\n        if (__syncthreads_count(done) >= block_size) {\n            break;\n        }\n\n        // each thread fetch 1 gaussian from front to back\n        // index of gaussian to load\n        uint32_t batch_start = isect_range_start + block_size * b;\n        uint32_t idx = batch_start + tr;\n        if (idx < isect_range_end) {\n            int32_t g = flatten_ids[idx];\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float3 pix_vel = pix_vels[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y, pix_vel.z};\n        }\n\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n\n        if (!inside) {\n            continue;\n        }\n\n        // process gaussians in the current batch for this pixel\n        float px = raster_pts[(camera_id * image_height + i) * image_width + j].x; // azimuth\n        float py = raster_pts[(camera_id * image_height + i) * image_width + j].y; // elevation\n        float pz = raster_pts[(camera_id * image_height + i) * image_width + j].z; // range\n        float roll_time = raster_pts[(camera_id * image_height + i) * image_width + j].w; // roll time\n\n        if (pz <= 0.f) {\n            inside = false;\n            done = true;\n            continue;\n        }\n\n        uint32_t batch_size = min(block_size, isect_range_end - batch_start);\n        for (uint32_t t = 0; (t < batch_size) && !done; ++t) {\n            const float3 conic = conic_batch[t];\n            const float3 xy_opac = xy_opacity_batch[t];\n            const float opac = xy_opac.z;\n            const float3 pix_vel = pix_vel_batch[t];\n            const float2 delta = {\n                angle_difference(xy_opac.x + roll_time * pix_vel.x, px),\n                angle_difference(xy_opac.y + roll_time * pix_vel.y, py)\n            };\n            const float sigma = 0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                conic.y * delta.x * delta.y;\n            float alpha = min(0.999f, opac * __expf(-sigma));\n\n            if (sigma < 0.f || alpha < 1.f / 255.f) {\n                continue;\n            }\n\n            next_T = T * (1.0f - alpha);\n            if (next_T <= 1e-4) { // this pixel is done: exclusive\n                done = true;\n                break;\n            }\n\n            if (first_pass) {\n                // First pass of this function we count the number of gaussians\n                // that contribute to each pixel\n                cnt += 1;\n            } else {\n                // Second pass we write out the gaussian ids and pixel ids\n                int32_t g = id_batch[t]; // flatten index in [C * N]\n                gaussian_ids[base + cnt] = g % N;\n                pixel_ids[base + cnt] = pix_id + camera_id * image_height * image_width;\n                cnt += 1;\n            }\n\n            T = next_T;\n        }\n    }\n\n    if (inside && first_pass) {\n        chunk_cnts += camera_id * image_height * image_width;\n        chunk_cnts[pix_id] = cnt;\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor> rasterize_to_indices_in_range_lidar_tensor(\n    const uint32_t range_start, const uint32_t range_end, // iteration steps\n    const torch::Tensor transmittances, // [C, image_height, image_width]\n    // Gaussian parameters\n    const torch::Tensor &means2d,   // [C, N, 2]\n    const torch::Tensor &conics,    // [C, N, 3]\n    const torch::Tensor &opacities, // [C, N]\n    const torch::Tensor &pix_vels,             // [C, N, 3]\n    // Points to rasterize\n    const torch::Tensor &raster_pts,  // [C, image_height, image_width, 3]\n    // image size\n    const uint32_t image_width, const uint32_t image_height,\n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n    CHECK_INPUT(raster_pts);\n\n    uint32_t C = means2d.size(0); // number of cameras\n    uint32_t N = means2d.size(1); // number of gaussians\n    uint32_t tile_grid_height = tile_offsets.size(1);\n    uint32_t tile_grid_width = tile_offsets.size(2);\n    uint32_t n_isects = flatten_ids.size(0);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_grid_height * tile_grid_width blocks.\n    dim3 threads = {tile_width, tile_height, 1};\n    dim3 blocks = {C, tile_grid_height, tile_grid_width};\n\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n    const uint32_t shared_mem =\n        tile_width * tile_height * (sizeof(int32_t) + sizeof(float3) + sizeof(float3) + sizeof(float3));\n    if (cudaFuncSetAttribute(rasterize_to_indices_in_range_lidar_kernel,\n                             cudaFuncAttributeMaxDynamicSharedMemorySize,\n                             shared_mem) != cudaSuccess) {\n        AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                 \" bytes), try lowering tile_size.\");\n    }\n\n    // First pass: count the number of gaussians that contribute to each pixel\n    int64_t n_elems;\n    torch::Tensor chunk_starts;\n    if (n_isects) {\n        torch::Tensor chunk_cnts = torch::zeros({C * image_height * image_width},\n                                                means2d.options().dtype(torch::kInt32));\n        rasterize_to_indices_in_range_lidar_kernel<<<blocks, threads, shared_mem, stream>>>(\n            range_start, range_end, C, N, n_isects, (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(), opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            transmittances.data_ptr<float>(), nullptr, (float4 *)raster_pts.data_ptr<float>(),\n            chunk_cnts.data_ptr<int32_t>(), nullptr, nullptr);\n\n        torch::Tensor cumsum = torch::cumsum(chunk_cnts, 0, chunk_cnts.scalar_type());\n        n_elems = cumsum[-1].item<int64_t>();\n        chunk_starts = cumsum - chunk_cnts;\n    } else {\n        n_elems = 0;\n    }\n\n    // Second pass: allocate memory and write out the gaussian and pixel ids.\n    torch::Tensor gaussian_ids =\n        torch::empty({n_elems}, means2d.options().dtype(torch::kInt64));\n    torch::Tensor pixel_ids =\n        torch::empty({n_elems}, means2d.options().dtype(torch::kInt64));\n    if (n_elems) {\n        rasterize_to_indices_in_range_lidar_kernel<<<blocks, threads, shared_mem, stream>>>(\n            range_start, range_end, C, N, n_isects, (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(), opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            transmittances.data_ptr<float>(), chunk_starts.data_ptr<int32_t>(),\n            (float4 *)raster_pts.data_ptr<float>(),\n            nullptr, gaussian_ids.data_ptr<int64_t>(), pixel_ids.data_ptr<int64_t>());\n    }\n    return std::make_tuple(gaussian_ids, pixel_ids);\n}\n\ntemplate <uint32_t COLOR_DIM>\n__global__ void rasterize_to_pixels_fwd_kernel(\n    const uint32_t C, const uint32_t N, const uint32_t n_isects, const bool packed,\n    const float2 *__restrict__ means2d,             // [C, N, 2] or [nnz, 2]\n    const float3 *__restrict__ conics,              // [C, N, 3] or [nnz, 3]\n    const float *__restrict__ colors,               // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    const float *__restrict__ opacities,            // [C, N] or [nnz]\n    const float2 *__restrict__ pix_vels,            // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float *__restrict__ backgrounds,          // [C, COLOR_DIM]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t rolling_shutter_direction, // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    const int32_t *__restrict__ tile_offsets, // [C, tile_height, tile_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    float *__restrict__ render_colors,        // [C, image_height, image_width, COLOR_DIM]\n    float *__restrict__ render_alphas,        // [C, image_height, image_width, 1]\n    float *__restrict__ render_medians,       // [C, image_height, image_width, COLOR_DIM]\n    int32_t *__restrict__ last_ids            // [C, image_height, image_width]\n) {\n    // each thread draws one pixel, but also timeshares caching gaussians in a\n    // shared tile\n\n    auto block = cg::this_thread_block();\n    int32_t camera_id = block.group_index().x;\n    int32_t tile_id = block.group_index().y * tile_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_size + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_size + block.thread_index().x;\n\n    tile_offsets += camera_id * tile_height * tile_width;\n    const int32_t camera_offset = camera_id * image_height * image_width;\n    render_colors += camera_offset * COLOR_DIM;\n    render_alphas += camera_offset;\n    render_medians += camera_offset * COLOR_DIM;\n    last_ids += camera_offset;\n    if (backgrounds != nullptr) {\n        backgrounds += camera_id * COLOR_DIM;\n    }\n\n    float px = (float)j + 0.5f;\n    float py = (float)i + 0.5f;\n    int32_t pix_id = i * image_width + j;\n    // Calculate rolling shutter time based on shutter direction\n    float roll_time = 0.0f;\n    switch (rolling_shutter_direction) {\n        case 1: // top2bot\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 2: // left2right\n            roll_time = rolling_shutter_time[camera_id] * ((px - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 3: // bot2top\n            roll_time = rolling_shutter_time[camera_id] * ((-py + image_height - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 4: // right2left\n            roll_time = rolling_shutter_time[camera_id] * ((-px + image_width - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 5: // global\n            roll_time = 0.0f; // No rolling shutter effect\n            break;\n        default:\n            // Default to top2bot behavior if an invalid value is provided\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n    }\n\n    // return if out of bounds\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n    bool done = !inside;\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t range_start = tile_offsets[tile_id];\n    int32_t range_end =\n        (camera_id == C - 1) && (tile_id == tile_width * tile_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    uint32_t num_batches = (range_end - range_start + block_size - 1) / block_size;\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float2 *pix_vel_batch = (float2 *)&conic_batch[block_size];    // [block_size]\n\n    // current visibility left to render\n    // transmittance is gonna be used in the backward pass which requires a high\n    // numerical precision so we use double for it. However double make bwd 1.5x slower\n    // so we stick with float for now.\n    float T = 1.0f;\n    // index of most recent gaussian to write to this thread's pixel\n    uint32_t cur_idx = 0;\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing its\n    // designated pixel\n    uint32_t tr = block.thread_rank();\n\n    float pix_out[COLOR_DIM] = {0.f};\n    for (uint32_t b = 0; b < num_batches; ++b) {\n        // resync all threads before beginning next batch\n        // end early if entire tile is done\n        if (__syncthreads_count(done) >= block_size) {\n            break;\n        }\n\n        // each thread fetch 1 gaussian from front to back\n        // index of gaussian to load\n        uint32_t batch_start = range_start + block_size * b;\n        uint32_t idx = batch_start + tr;\n        if (idx < range_end) {\n            int32_t g = flatten_ids[idx]; // flatten index in [C * N] or [nnz]\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float2 pix_vel = pix_vels[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y};\n        }\n\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n\n        // process gaussians in the current batch for this pixel\n        uint32_t batch_size = min(block_size, range_end - batch_start);\n        for (uint32_t t = 0; (t < batch_size) && !done; ++t) {\n            const float3 conic = conic_batch[t];\n            const float3 xy_opac = xy_opacity_batch[t];\n            const float opac = xy_opac.z;\n            const float2 pix_vel = pix_vel_batch[t];\n            const float2 delta = {\n                xy_opac.x + roll_time * pix_vel.x - px,\n                xy_opac.y + roll_time * pix_vel.y - py\n            };\n            const float sigma =\n                0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                conic.y * delta.x * delta.y;\n            \n            float alpha = min(0.999f, opac * __expf(-sigma));\n            if (sigma < 0.f || alpha < 1.f / 255.f) {\n                continue;\n            }\n\n            const float next_T = T * (1.0f - alpha);\n            if (next_T <= 1e-4) { // this pixel is done: exclusive\n                done = true;\n                break;\n            }\n\n            int32_t g = id_batch[t];\n            const float vis = alpha * T;\n            const float *c_ptr = colors + g * COLOR_DIM;\n            PRAGMA_UNROLL\n            for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                pix_out[k] += c_ptr[k] * vis;\n            }\n\n            if (T > 0.5 && next_T <= 0.5) {\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    render_medians[pix_id * COLOR_DIM + k] = c_ptr[k];\n                }\n            }\n\n            cur_idx = batch_start + t;\n\n            T = next_T;\n        }\n    }\n\n    if (inside) {\n        // Here T is the transmittance AFTER the last gaussian in this pixel.\n        // We (should) store double precision as T would be used in backward pass and\n        // it can be very small and causing large diff in gradients with float32.\n        // However, double precision makes the backward pass 1.5x slower so we stick\n        // with float for now.\n        render_alphas[pix_id] = 1.0f - T;\n        PRAGMA_UNROLL\n        for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n            render_colors[pix_id * COLOR_DIM + k] =\n                backgrounds == nullptr ? pix_out[k] : (pix_out[k] + T * backgrounds[k]);\n        }\n        // index in bin of last gaussian in this pixel\n        last_ids[pix_id] = static_cast<int32_t>(cur_idx);\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> rasterize_to_pixels_fwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2] or [nnz, 2]\n    const torch::Tensor &conics,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &colors,                    // [C, N, channels] or [nnz, channels]\n    const torch::Tensor &opacities,                 // [C, N]  or [nnz]\n    const torch::Tensor &pix_vels,                  // [C, N, 2]\n    const torch::Tensor &rolling_shutter_time,      // [C]\n    const at::optional<torch::Tensor> &backgrounds, // [C, channels]\n    // image size\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    const uint32_t rolling_shutter_direction, // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids   // [n_isects]\n) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(colors);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n    if (backgrounds.has_value()) {\n        CHECK_INPUT(backgrounds.value());\n    }\n    bool packed = means2d.dim() == 2;\n\n    uint32_t C = tile_offsets.size(0);         // number of cameras\n    uint32_t N = packed ? 0 : means2d.size(1); // number of gaussians\n    uint32_t channels = colors.size(-1);\n    uint32_t tile_height = tile_offsets.size(1);\n    uint32_t tile_width = tile_offsets.size(2);\n    uint32_t n_isects = flatten_ids.size(0);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_height * tile_width blocks.\n    dim3 threads = {tile_size, tile_size, 1};\n    dim3 blocks = {C, tile_height, tile_width};\n\n    torch::Tensor renders = torch::empty({C, image_height, image_width, channels},\n                                         means2d.options().dtype(torch::kFloat32));\n    torch::Tensor alphas = torch::empty({C, image_height, image_width, 1},\n                                        means2d.options().dtype(torch::kFloat32));\n    torch::Tensor render_medians = torch::empty({C, image_height, image_width, channels},\n                                         means2d.options().dtype(torch::kFloat32));\n    torch::Tensor last_ids = torch::empty({C, image_height, image_width},\n                                          means2d.options().dtype(torch::kInt32));\n\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n    const uint32_t shared_mem =\n        tile_size * tile_size * (sizeof(int32_t) + sizeof(float3) + sizeof(float3) + sizeof(float2));\n\n    // TODO: an optimization can be done by passing the actual number of channels into\n    // the kernel functions and avoid necessary global memory writes. This requires\n    // moving the channel padding from python to C side.\n    switch (channels) {\n    case 1:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<1>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<1><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 2:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<2>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<2><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 3:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<3>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<3><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 4:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<4>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<4><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 5:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<5>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<5><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 8:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<8>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<8><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 9:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<9>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<9><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 16:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<16>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<16><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 17:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<17>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<17><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 32:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<32>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<32><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 33:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<33>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<33><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 64:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<64>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<64><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 65:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<65>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<65><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 128:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<128>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<128><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 129:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<129>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<129><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 256:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<256>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<256><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 257:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<257>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<257><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 512:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<512>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<512><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    case 513:\n        if (cudaFuncSetAttribute(rasterize_to_pixels_fwd_kernel<513>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_pixels_fwd_kernel<513><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float2 *)pix_vels.data_ptr<float>(),\n            rolling_shutter_time.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            render_medians.data_ptr<float>(),\n            last_ids.data_ptr<int32_t>());\n        break;\n    default:\n        AT_ERROR(\"Unsupported number of channels: \", channels);\n    }\n    return std::make_tuple(renders, alphas, render_medians, last_ids);\n}\n\ntemplate <uint32_t COLOR_DIM>\n__global__ void rasterize_to_points_fwd_kernel(\n    const uint32_t C, const uint32_t N, const uint32_t n_isects, const bool packed,\n    const float2 *__restrict__ means2d,             // [C, N, 2] or [nnz, 2]\n    const float3 *__restrict__ conics,              // [C, N, 3] or [nnz, 3]\n    const float *__restrict__ colors,               // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    const float *__restrict__ opacities,            // [C, N] or [nnz]\n    const float3 *__restrict__ pix_vels,            // [C, N, 3] or [nnz, 3]\n    const float2 *__restrict__ depth_compensations, // [C, N, 2] or [nnz, 2]\n    const float *__restrict__ backgrounds,          // [C, COLOR_DIM]\n    const float4 *__restrict__ raster_pts,          // [C, image_height, image_width, 4]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t tile_grid_width,\n    const uint32_t tile_grid_height,\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    const int32_t *__restrict__ tile_offsets,      // [C, tile_grid_height, tile_grid_width]\n    const int32_t *__restrict__ flatten_ids,       // [n_isects]\n    const uint32_t depth_channel_idx,\n    float *__restrict__ render_colors,             // [C, image_height, image_width, COLOR_DIM]\n    float *__restrict__ render_alphas,             // [C, image_height, image_width, 1]\n    float *__restrict__ alpha_sum_until_points,    // [C, image_height, image_width, 1]\n    int32_t *__restrict__ last_ids,                 // [C, image_height, image_width]\n    float *__restrict__ median_depths    // [C, image_height, image_width, 1]\n) {\n    // each thread draws one pixel, but also timeshares caching gaussians in a\n    // shared tile\n\n    auto block = cg::this_thread_block();\n    int32_t camera_id = block.group_index().x;\n    int32_t tile_id = block.group_index().y * tile_grid_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_height + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_width + block.thread_index().x;\n\n    tile_offsets += camera_id * tile_grid_height * tile_grid_width;\n    const int32_t camera_offset = camera_id * image_height * image_width;\n    render_colors += camera_offset * COLOR_DIM;\n    render_alphas += camera_offset;\n    median_depths += camera_offset;\n    if (compute_alpha_sum_until_points && (alpha_sum_until_points != nullptr)) {\n        alpha_sum_until_points += camera_offset;\n    }\n    last_ids += camera_offset;\n    raster_pts += camera_offset + i * image_width + j;\n    if (backgrounds != nullptr) {\n        backgrounds += camera_id * COLOR_DIM;\n    }\n\n    int32_t pix_id = i * image_width + j;\n\n    // return if out of bounds\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n    // read out point coordinates at raster_pts[camera_id, i, j]\n    float px; // azimuth\n    float py; // elevation\n    float pz; // range\n    float roll_time; // roll time\n    if (inside) {\n        px = raster_pts[0].x;\n        py = raster_pts[0].y;\n        pz = raster_pts[0].z;\n        roll_time = raster_pts[0].w;\n        if (pz <= 0.f) {\n            inside = false;\n        }\n    }\n    bool done = !inside;\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t range_start = tile_offsets[tile_id];\n    int32_t range_end =\n        (camera_id == C - 1) && (tile_id == tile_grid_width * tile_grid_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    uint32_t num_batches = (range_end - range_start + block_size - 1) / block_size;\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float3 *pix_vel_batch = (float3 *)&conic_batch[block_size];    // [block_size]\n    float2 *depth_comp_batch = (float2 *)&pix_vel_batch[block_size]; // [block_size]\n\n    // current visibility left to render\n    // transmittance is gonna be used in the backward pass which requires a high\n    // numerical precision so we use double for it. However double make bwd 1.5x slower\n    // so we stick with float for now.\n    float T = 1.0f;\n    // index of most recent gaussian to write to this thread's pixel\n    uint32_t cur_idx = 0;\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing its\n    // designated pixel\n    uint32_t tr = block.thread_rank();\n\n    float pix_out[COLOR_DIM] = {0.f};\n    for (uint32_t b = 0; b < num_batches; ++b) {\n        // resync all threads before beginning next batch\n        // end early if entire tile is done\n        if (__syncthreads_count(done) >= block_size) {\n            break;\n        }\n\n        // each thread fetch 1 gaussian from front to back\n        // index of gaussian to load\n        uint32_t batch_start = range_start + block_size * b;\n        uint32_t idx = batch_start + tr;\n        if (idx < range_end) {\n            int32_t g = flatten_ids[idx]; // flatten index in [C * N] or [nnz]\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float3 pix_vel = pix_vels[g];\n            const float2 depth_comp = depth_compensations[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y, pix_vel.z};\n            depth_comp_batch[tr] = {depth_comp.x, depth_comp.y};\n        }\n\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n\n        // process gaussians in the current batch for this pixel\n        uint32_t batch_size = min(block_size, range_end - batch_start);\n        for (uint32_t t = 0; (t < batch_size) && !done; ++t) {\n            const float3 conic = conic_batch[t];\n            const float3 xy_opac = xy_opacity_batch[t];\n            const float opac = xy_opac.z;\n            const float3 pix_vel = pix_vel_batch[t];\n            const float2 delta = {\n                angle_difference(xy_opac.x + roll_time * pix_vel.x, px),\n                angle_difference(xy_opac.y + roll_time * pix_vel.y, py)\n            };\n            const float sigma =\n                0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                conic.y * delta.x * delta.y;\n            float alpha = min(0.999f, opac * __expf(-sigma));\n            if (sigma < 0.f || alpha < 1.f / 255.f) {\n                continue;\n            }\n\n            const float next_T = T * (1.0f - alpha);\n            if (next_T <= 1e-4) { // this pixel is done: exclusive\n                done = true;\n                break;\n            }\n\n            int32_t g = id_batch[t];\n            const float vis = alpha * T;\n            const float *c_ptr = colors + g * COLOR_DIM;\n            PRAGMA_UNROLL\n            for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                pix_out[k] += c_ptr[k] * vis;\n            }\n            const float2 depth_comp = depth_comp_batch[t];\n            pix_out[depth_channel_idx] += (depth_comp.x * delta.x + depth_comp.y * delta.y + pix_vel.z * roll_time) * vis;\n            if (T > 0.5 && next_T <= 0.5) {\n                // median depth of the gaussian\n                median_depths[pix_id] = c_ptr[depth_channel_idx] + (depth_comp.x * delta.x + depth_comp.y * delta.y + pix_vel.z * roll_time);\n            }\n            // depth of the gaussian is assumed to be the last channel\n            if (compute_alpha_sum_until_points) {\n                const float g_depth = c_ptr[depth_channel_idx];\n                // update alpha until we get into proximity of the point\n                if (g_depth < (pz - compute_alpha_sum_until_points_threshold)) {\n                    alpha_sum_until_points[pix_id] += alpha;\n                }\n            }\n            cur_idx = batch_start + t;\n\n            T = next_T;\n        }\n    }\n\n    if (inside) {\n        // Here T is the transmittance AFTER the last gaussian in this pixel.\n        // We (should) store double precision as T would be used in backward pass and\n        // it can be very small and causing large diff in gradients with float32.\n        // However, double precision makes the backward pass 1.5x slower so we stick\n        // with float for now.\n        render_alphas[pix_id] = 1.0f - T;\n        PRAGMA_UNROLL\n        for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n            render_colors[pix_id * COLOR_DIM + k] =\n                backgrounds == nullptr ? pix_out[k] : (pix_out[k] + T * backgrounds[k]);\n        }\n        // index in bin of last gaussian in this pixel\n        last_ids[pix_id] = static_cast<int32_t>(cur_idx);\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> rasterize_to_points_fwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2] or [nnz, 2]\n    const torch::Tensor &conics,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &colors,                    // [C, N, channels] or [nnz, channels]\n    const torch::Tensor &opacities,                 // [C, N]  or [nnz]\n    const torch::Tensor &pix_vels,                  // [C, N, 3]\n    const torch::Tensor &depth_compensations,       // [C, N, 2]\n    const at::optional<torch::Tensor> &backgrounds, // [C, channels]\n    // Points to rasterize\n    const torch::Tensor &raster_pts, // [C, image_height, image_width, 4]\n    // image size\n    const uint32_t image_width,\n    const uint32_t image_height, \n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    // compute alphas until point\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_grid_height, tile_grid_width]\n    const torch::Tensor &flatten_ids,   // [n_isects]\n    // depth channel index\n    const uint32_t depth_channel_idx\n) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(colors);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(depth_compensations);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n    CHECK_INPUT(raster_pts);\n    if (backgrounds.has_value()) {\n        CHECK_INPUT(backgrounds.value());\n    }\n    bool packed = means2d.dim() == 2;\n\n    uint32_t C = tile_offsets.size(0);         // number of cameras\n    uint32_t N = packed ? 0 : means2d.size(1); // number of gaussians\n    uint32_t channels = colors.size(-1);\n    uint32_t tile_grid_height = tile_offsets.size(1);\n    uint32_t tile_grid_width = tile_offsets.size(2);\n    uint32_t n_isects = flatten_ids.size(0);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_grid_height * tile_grid_width blocks.\n    dim3 threads = {tile_width, tile_height, 1};\n    dim3 blocks = {C, tile_grid_height, tile_grid_width};\n\n    torch::Tensor renders = torch::zeros({C, image_height, image_width, channels},\n                                         means2d.options().dtype(torch::kFloat32));\n    torch::Tensor alphas = torch::zeros({C, image_height, image_width, 1},\n                                        means2d.options().dtype(torch::kFloat32));\n    torch::Tensor median_depths = torch::zeros({C, image_height, image_width, 1},\n                                        means2d.options().dtype(torch::kFloat32));\n    torch::Tensor alpha_sum_until_points;\n    if (compute_alpha_sum_until_points) {\n        alpha_sum_until_points = torch::zeros({C, image_height, image_width, 1},\n                                        means2d.options().dtype(torch::kFloat32));\n    }\n    torch::Tensor last_ids = torch::zeros({C, image_height, image_width},\n                                          means2d.options().dtype(torch::kInt32));\n\n    at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n    const uint32_t shared_mem =\n        tile_width * tile_height * (sizeof(int32_t) + sizeof(float3) + sizeof(float3) + sizeof(float3) + sizeof(float2));\n\n    // TODO: an optimization can be done by passing the actual number of channels into\n    // the kernel functions and avoid necessary global memory writes. This requires\n    // moving the channel padding from python to C side.\n    switch (channels) {\n    case 1:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<1>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<1><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 2:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<2>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<2><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 3:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<3>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<3><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 4:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<4>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<4><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 5:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<5>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<5><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 8:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<8>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<8><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 9:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<9>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<9><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 16:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<16>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<16><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 17:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<17>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<17><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 32:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<32>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<32><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 33:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<33>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<33><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 64:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<64>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<64><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 65:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<65>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<65><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 128:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<128>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<128><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 129:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<129>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<129><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 256:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<256>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<256><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 257:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<257>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<257><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 512:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<512>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<512><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    case 513:\n        if (cudaFuncSetAttribute(rasterize_to_points_fwd_kernel<513>,\n                                 cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                 shared_mem) != cudaSuccess) {\n            AT_ERROR(\"Failed to set maximum shared memory size (requested \", shared_mem,\n                     \" bytes), try lowering tile_size.\");\n        }\n        rasterize_to_points_fwd_kernel<513><<<blocks, threads, shared_mem, stream>>>(\n            C, N, n_isects, packed,\n            (float2 *)means2d.data_ptr<float>(),\n            (float3 *)conics.data_ptr<float>(),\n            colors.data_ptr<float>(),\n            opacities.data_ptr<float>(),\n            (float3 *)pix_vels.data_ptr<float>(),\n            (float2 *)depth_compensations.data_ptr<float>(),\n            backgrounds.has_value() ? backgrounds.value().data_ptr<float>() : nullptr,\n            (float4 *)raster_pts.data_ptr<float>(),\n            image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n            compute_alpha_sum_until_points,\n            compute_alpha_sum_until_points_threshold,\n            tile_offsets.data_ptr<int32_t>(),\n            flatten_ids.data_ptr<int32_t>(),\n            depth_channel_idx,\n            renders.data_ptr<float>(),\n            alphas.data_ptr<float>(),\n            compute_alpha_sum_until_points ? alpha_sum_until_points.data_ptr<float>() : nullptr,\n            last_ids.data_ptr<int32_t>(), median_depths.data_ptr<float>());\n        break;\n    default:\n        AT_ERROR(\"Unsupported number of channels: \", channels);\n    }\n    return std::make_tuple(renders, alphas, last_ids, alpha_sum_until_points, median_depths);\n}\n\ntemplate <uint32_t COLOR_DIM>\n__global__ void rasterize_to_pixels_bwd_kernel(\n    const uint32_t C, const uint32_t N, const uint32_t n_isects, const bool packed,\n    // fwd inputs\n    const float2 *__restrict__ means2d,             // [C, N, 2] or [nnz, 2]\n    const float3 *__restrict__ conics,              // [C, N, 3] or [nnz, 3]\n    const float *__restrict__ colors,               // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    const float *__restrict__ opacities,            // [C, N] or [nnz]\n    const float2 *__restrict__ pix_vels,            // [C, N, 2]\n    const float *__restrict__ rolling_shutter_time, // [C]\n    const float *__restrict__ backgrounds,          // [C, COLOR_DIM] or [nnz, COLOR_DIM]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t rolling_shutter_direction, // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    const int32_t *__restrict__ tile_offsets, // [C, tile_height, tile_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    // fwd outputs\n    const float *__restrict__ render_alphas, // [C, image_height, image_width, 1]\n    const int32_t *__restrict__ last_ids,    // [C, image_height, image_width]\n    // grad outputs\n    const float\n        *__restrict__ v_render_colors, // [C, image_height, image_width, COLOR_DIM]\n    const float *__restrict__ v_render_alphas, // [C, image_height, image_width, 1]\n    // grad inputs\n    float2 *__restrict__ v_means2d_abs, // [C, N, 2] or [nnz, 2]\n    float2 *__restrict__ v_means2d,     // [C, N, 2] or [nnz, 2]\n    float3 *__restrict__ v_conics,      // [C, N, 3] or [nnz, 3]\n    float *__restrict__ v_colors,       // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    float *__restrict__ v_opacities,    // [C, N] or [nnz]\n    float2 *__restrict__ v_pix_vels    // [C, N, 2]\n) {\n    auto block = cg::this_thread_block();\n    uint32_t camera_id = block.group_index().x;\n    uint32_t tile_id = block.group_index().y * tile_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_size + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_size + block.thread_index().x;\n\n    tile_offsets += camera_id * tile_height * tile_width;\n    render_alphas += camera_id * image_height * image_width;\n    last_ids += camera_id * image_height * image_width;\n    v_render_colors += camera_id * image_height * image_width * COLOR_DIM;\n    v_render_alphas += camera_id * image_height * image_width;\n    if (backgrounds != nullptr) {\n        backgrounds += camera_id * COLOR_DIM;\n    }\n\n    const float px = (float)j + 0.5f;\n    const float py = (float)i + 0.5f;\n    // clamp this value to the last pixel\n    const int32_t pix_id = min(i * image_width + j, image_width * image_height - 1);\n    // Calculate rolling shutter time based on shutter direction\n    float roll_time = 0.0f;\n    switch (rolling_shutter_direction) {\n        case 1: // top2bot\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 2: // left2right\n            roll_time = rolling_shutter_time[camera_id] * ((px - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 3: // bot2top\n            roll_time = rolling_shutter_time[camera_id] * ((-py + image_height - 0.5f) / (image_height - 1) - 0.5f);\n            break;\n        case 4: // right2left\n            roll_time = rolling_shutter_time[camera_id] * ((-px + image_width - 0.5f) / (image_width - 1) - 0.5f);\n            break;\n        case 5: // global\n            roll_time = 0.0f; // No rolling shutter effect\n            break;\n        default:\n            // Default to top2bot behavior if an invalid value is provided\n            roll_time = rolling_shutter_time[camera_id] * ((py - 0.5f) / (image_height - 1) - 0.5f);\n    }\n\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t range_start = tile_offsets[tile_id];\n    int32_t range_end =\n        (camera_id == C - 1) && (tile_id == tile_width * tile_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    const uint32_t num_batches =\n        (range_end - range_start + block_size - 1) / block_size;\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float2 *pix_vel_batch = (float2 *)&conic_batch[block_size];    // [block_size]\n    float *rgbs_batch = (float *)&pix_vel_batch[block_size]; // [block_size * COLOR_DIM]\n\n    // this is the T AFTER the last gaussian in this pixel\n    float T_final = 1.0f - render_alphas[pix_id];\n    float T = T_final;\n    // the contribution from gaussians behind the current one\n    float buffer[COLOR_DIM] = {0.f};\n    // index of last gaussian to contribute to this pixel\n    const int32_t bin_final = inside ? last_ids[pix_id] : 0;\n\n    // df/d_out for this pixel\n    float v_render_c[COLOR_DIM];\n    PRAGMA_UNROLL\n    for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n        v_render_c[k] = v_render_colors[pix_id * COLOR_DIM + k];\n    }\n    const float v_render_a = v_render_alphas[pix_id];\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing\n    const uint32_t tr = block.thread_rank();\n    cg::thread_block_tile<32> warp = cg::tiled_partition<32>(block);\n    const int32_t warp_bin_final = cg::reduce(warp, bin_final, cg::greater<int>());\n    for (uint32_t b = 0; b < num_batches; ++b) {\n        // resync all threads before writing next batch of shared mem\n        block.sync();\n\n        // each thread fetch 1 gaussian from back to front\n        // 0 index will be furthest back in batch\n        // index of gaussian to load\n        // batch end is the index of the last gaussian in the batch\n        // These values can be negative so must be int32 instead of uint32\n        const int32_t batch_end = range_end - 1 - block_size * b;\n        const int32_t batch_size = min(block_size, batch_end + 1 - range_start);\n        const int32_t idx = batch_end - tr;\n        if (idx >= range_start) {\n            int32_t g = flatten_ids[idx]; // flatten index in [C * N] or [nnz]\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float2 pix_vel = pix_vels[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y};\n            PRAGMA_UNROLL\n            for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                rgbs_batch[tr * COLOR_DIM + k] = colors[g * COLOR_DIM + k];\n            }\n        }\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n        // process gaussians in the current batch for this pixel\n        // 0 index is the furthest back gaussian in the batch\n        for (uint32_t t = max(0, batch_end - warp_bin_final); t < batch_size; ++t) {\n            bool valid = inside;\n            if (batch_end - t > bin_final) {\n                valid = 0;\n            }\n            float alpha;\n            float opac;\n            float2 pix_vel;\n            float2 delta;\n            float3 conic;\n            float vis;\n\n            if (valid) {\n                conic = conic_batch[t];\n                float3 xy_opac = xy_opacity_batch[t];\n                opac = xy_opac.z;\n                pix_vel = pix_vel_batch[t];\n                delta = {\n                    xy_opac.x + roll_time * pix_vel.x - px,\n                    xy_opac.y + roll_time * pix_vel.y - py\n                };\n                float sigma =\n                    0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                    conic.y * delta.x * delta.y;\n                vis = __expf(-sigma);\n                alpha = min(0.999f, opac * vis);\n                if (sigma < 0.f || alpha < 1.f / 255.f) {\n                    valid = false;\n                }\n            }\n\n            // if all threads are inactive in this warp, skip this loop\n            if (!warp.any(valid)) {\n                continue;\n            }\n            float v_rgb_local[COLOR_DIM] = {0.f};\n            float3 v_conic_local = {0.f, 0.f, 0.f};\n            float2 v_xy_local = {0.f, 0.f};\n            float2 v_xy_abs_local = {0.f, 0.f};\n            float2 v_pix_vel_local = {0.f, 0.f};\n            float v_opacity_local = 0.f;\n            // initialize everything to 0, only set if the lane is valid\n            if (valid) {\n                // compute the current T for this gaussian\n                float ra = 1.0f / (1.0f - alpha);\n                T *= ra;\n                // update v_rgb for this gaussian\n                const float fac = alpha * T;\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    v_rgb_local[k] = fac * v_render_c[k];\n                }\n                // contribution from this pixel\n                float v_alpha = 0.f;\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    v_alpha += (rgbs_batch[t * COLOR_DIM + k] * T - buffer[k] * ra) *\n                               v_render_c[k];\n                }\n\n                v_alpha += T_final * ra * v_render_a;\n                // contribution from background pixel\n                if (backgrounds != nullptr) {\n                    float accum = 0.f;\n                    PRAGMA_UNROLL\n                    for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                        accum += backgrounds[k] * v_render_c[k];\n                    }\n                    v_alpha += -T_final * ra * accum;\n                }\n\n                if (opac * vis <= 0.999f) {\n                    const float v_sigma = -opac * vis * v_alpha;\n                    v_conic_local = {0.5f * v_sigma * delta.x * delta.x,\n                                     v_sigma * delta.x * delta.y,\n                                     0.5f * v_sigma * delta.y * delta.y};\n                    v_xy_local = {v_sigma * (conic.x * delta.x + conic.y * delta.y),\n                                  v_sigma * (conic.y * delta.x + conic.z * delta.y)};\n                    v_pix_vel_local.x = v_xy_local.x * roll_time;\n                    v_pix_vel_local.y = v_xy_local.y * roll_time;\n                    if (v_means2d_abs != nullptr) {\n                        v_xy_abs_local = {abs(v_xy_local.x), abs(v_xy_local.y)};\n                    }\n                    v_opacity_local = vis * v_alpha;\n                }\n\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    buffer[k] += rgbs_batch[t * COLOR_DIM + k] * fac;\n                }\n            }\n            warpSum<COLOR_DIM, float>(v_rgb_local, warp);\n            warpSum(v_conic_local, warp);\n            warpSum(v_xy_local, warp);\n            warpSum(v_pix_vel_local, warp);\n            if (v_means2d_abs != nullptr) {\n                warpSum(v_xy_abs_local, warp);\n            }\n            warpSum(v_opacity_local, warp);\n            if (warp.thread_rank() == 0) {\n                int32_t g = id_batch[t]; // flatten index in [C * N] or [nnz]\n                float *v_rgb_ptr = (float *)(v_colors) + COLOR_DIM * g;\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    gpuAtomicAdd(v_rgb_ptr + k, v_rgb_local[k]);\n                }\n\n                float *v_conic_ptr = (float *)(v_conics) + 3 * g;\n                gpuAtomicAdd(v_conic_ptr, v_conic_local.x);\n                gpuAtomicAdd(v_conic_ptr + 1, v_conic_local.y);\n                gpuAtomicAdd(v_conic_ptr + 2, v_conic_local.z);\n\n                float *v_xy_ptr = (float *)(v_means2d) + 2 * g;\n                gpuAtomicAdd(v_xy_ptr, v_xy_local.x);\n                gpuAtomicAdd(v_xy_ptr + 1, v_xy_local.y);\n\n                if (v_means2d_abs != nullptr) {\n                    float *v_xy_abs_ptr = (float *)(v_means2d_abs) + 2 * g;\n                    gpuAtomicAdd(v_xy_abs_ptr, v_xy_abs_local.x);\n                    gpuAtomicAdd(v_xy_abs_ptr + 1, v_xy_abs_local.y);\n                }\n\n                float* v_pix_vel_ptr = (float*)(v_pix_vels) + 2 * g;\n                gpuAtomicAdd(v_pix_vel_ptr, v_pix_vel_local.x);\n                gpuAtomicAdd(v_pix_vel_ptr + 1, v_pix_vel_local.y);\n\n                gpuAtomicAdd(v_opacities + g, v_opacity_local);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nrasterize_to_pixels_bwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2] or [nnz, 2]\n    const torch::Tensor &conics,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &colors,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &opacities,                 // [C, N] or [nnz]\n    const torch::Tensor &pix_vels,                  // [C, N, 2] or [nnz, 2]\n    const torch::Tensor &rolling_shutter_time,      // [C]\n    const at::optional<torch::Tensor> &backgrounds, // [C, 3]\n    // image size\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_size,\n    const uint32_t rolling_shutter_direction, // 1: top2bot, 2: left2right, 3: bot2top, 4: right2left, 5: global\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids,  // [n_isects]\n    // forward outputs\n    const torch::Tensor &render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &last_ids,      // [C, image_height, image_width]\n    // gradients of outputs\n    const torch::Tensor &v_render_colors, // [C, image_height, image_width, 3]\n    const torch::Tensor &v_render_alphas, // [C, image_height, image_width, 1]\n    // options\n    bool absgrad) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(colors);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(rolling_shutter_time);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n    CHECK_INPUT(render_alphas);\n    CHECK_INPUT(last_ids);\n    CHECK_INPUT(v_render_colors);\n    CHECK_INPUT(v_render_alphas);\n    if (backgrounds.has_value()) {\n        CHECK_INPUT(backgrounds.value());\n    }\n\n    bool packed = means2d.dim() == 2;\n\n    uint32_t C = tile_offsets.size(0);         // number of cameras\n    uint32_t N = packed ? 0 : means2d.size(1); // number of gaussians\n    uint32_t n_isects = flatten_ids.size(0);\n    uint32_t COLOR_DIM = colors.size(-1);\n    uint32_t tile_height = tile_offsets.size(1);\n    uint32_t tile_width = tile_offsets.size(2);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_height * tile_width blocks.\n    dim3 threads = {tile_size, tile_size, 1};\n    dim3 blocks = {C, tile_height, tile_width};\n\n    torch::Tensor v_means2d = torch::zeros_like(means2d);\n    torch::Tensor v_conics = torch::zeros_like(conics);\n    torch::Tensor v_colors = torch::zeros_like(colors);\n    torch::Tensor v_opacities = torch::zeros_like(opacities);\n    torch::Tensor v_pix_vels = torch::zeros_like(pix_vels);\n    torch::Tensor v_means2d_abs;\n    if (absgrad) {\n        v_means2d_abs = torch::zeros_like(means2d);\n    }\n\n    if (n_isects) {\n        const uint32_t shared_mem = tile_size * tile_size *\n                                    (sizeof(int32_t) + sizeof(float3) + sizeof(float3) +\n                                     sizeof(float2) + sizeof(float) * COLOR_DIM);\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        switch (COLOR_DIM) {\n        case 1:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<1>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<1><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 2:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<2>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<2><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 3:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<3>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<3><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 4:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<4>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<4><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 5:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<5>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<5><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 8:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<8>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<8><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 9:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<9>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<9><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 16:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<16>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<16><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 17:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<17>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<17><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 32:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<32>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<32><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 33:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<33>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<33><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 64:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<64>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<64><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 65:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<65>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<65><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float2 *)pix_vels.data_ptr<float>(),\n                rolling_shutter_time.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 128:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<128>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<128>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 129:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<129>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<129>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 256:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<256>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<256>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 257:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<257>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<257>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 512:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<512>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<512>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        case 513:\n            if (cudaFuncSetAttribute(rasterize_to_pixels_bwd_kernel<513>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_pixels_bwd_kernel<513>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float2 *)pix_vels.data_ptr<float>(),\n                    rolling_shutter_time.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    image_width, image_height, tile_size, tile_width, tile_height, rolling_shutter_direction,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    render_alphas.data_ptr<float>(), last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(), (float2 *)v_pix_vels.data_ptr<float>());\n            break;\n        default:\n            AT_ERROR(\"Unsupported number of channels: \", COLOR_DIM);\n        }\n    }\n\n    return std::make_tuple(v_means2d_abs, v_means2d, v_conics, v_colors, v_opacities, v_pix_vels);\n}\n\ntemplate <uint32_t COLOR_DIM>\n__global__ void rasterize_to_points_bwd_kernel(\n    const uint32_t C, const uint32_t N, const uint32_t n_isects, const bool packed,\n    // fwd inputs\n    const float2 *__restrict__ means2d,    // [C, N, 2] or [nnz, 2]\n    const float3 *__restrict__ conics,     // [C, N, 3] or [nnz, 3]\n    const float *__restrict__ colors,      // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    const float *__restrict__ opacities,   // [C, N] or [nnz]\n    const float3 *__restrict__ pix_vels,   // [C, N, 3]\n    const float2 *__restrict__ depth_compensations, // [C, N, 2]\n    const float *__restrict__ backgrounds, // [C, COLOR_DIM] or [nnz, COLOR_DIM]\n    const float4 *__restrict__ raster_pts, // [C, image_height, image_width, 4]\n    const uint32_t image_width,\n    const uint32_t image_height,\n    const uint32_t tile_width,\n    const uint32_t tile_height,\n    const uint32_t tile_grid_width,\n    const uint32_t tile_grid_height,\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    const int32_t *__restrict__ tile_offsets, // [C, tile_height, tile_width]\n    const int32_t *__restrict__ flatten_ids,  // [n_isects]\n    const uint32_t depth_channel_idx,\n    // fwd outputs\n    const float *__restrict__ render_alphas, // [C, image_height, image_width, 1]\n    const int32_t *__restrict__ last_ids,    // [C, image_height, image_width]\n    // grad outputs\n    const float *__restrict__ v_render_colors, // [C, image_height, image_width, COLOR_DIM]\n    const float *__restrict__ v_render_alphas, // [C, image_height, image_width, 1]\n    const float *__restrict__ v_alpha_sum_until_points, // [C, image_height, image_width, 1]\n    // grad inputs\n    float2 *__restrict__ v_means2d_abs, // [C, N, 2] or [nnz, 2]\n    float2 *__restrict__ v_means2d,     // [C, N, 2] or [nnz, 2]\n    float3 *__restrict__ v_conics,      // [C, N, 3] or [nnz, 3]\n    float *__restrict__ v_colors,       // [C, N, COLOR_DIM] or [nnz, COLOR_DIM]\n    float *__restrict__ v_opacities,    // [C, N] or [nnz]\n    float3 *__restrict__ v_pix_vels,    // [C, N, 3]\n    float2 *__restrict__ v_depth_compensations // [C, N, 2]\n) {\n    auto block = cg::this_thread_block();\n    uint32_t camera_id = block.group_index().x;\n    int32_t tile_id = block.group_index().y * tile_grid_width + block.group_index().z;\n    uint32_t i = block.group_index().y * tile_height + block.thread_index().y;\n    uint32_t j = block.group_index().z * tile_width + block.thread_index().x;\n\n    tile_offsets += camera_id * tile_grid_height * tile_grid_width;\n    const int32_t camera_offset = camera_id * image_height * image_width;\n    render_alphas += camera_offset;\n    last_ids += camera_offset;\n    raster_pts += camera_offset + i * image_width + j;\n    v_render_colors += camera_offset * COLOR_DIM;\n    v_render_alphas += camera_offset;\n    if (v_alpha_sum_until_points != nullptr) {\n        v_alpha_sum_until_points += camera_offset;\n    }\n    if (backgrounds != nullptr) {\n        backgrounds += camera_id * COLOR_DIM;\n    }\n\n    // clamp this value to the last pixel\n    const int32_t pix_id = min(i * image_width + j, image_width * image_height - 1);\n\n    // keep not rasterizing threads around for reading data\n    bool inside = (i < image_height && j < image_width);\n    float px;\n    float py;\n    float pz;\n    float roll_time;\n    if (inside) {\n        px = raster_pts[0].x; // azimuth\n        py = raster_pts[0].y; // elevation\n        pz = raster_pts[0].z; // range\n        roll_time = raster_pts[0].w;\n        if (pz <= 0.f) {\n            inside = false;\n        }\n    }\n\n    // have all threads in tile process the same gaussians in batches\n    // first collect gaussians between range.x and range.y in batches\n    // which gaussians to look through in this tile\n    int32_t range_start = tile_offsets[tile_id];\n    int32_t range_end =\n        (camera_id == C - 1) && (tile_id == tile_grid_width * tile_grid_height - 1)\n            ? n_isects\n            : tile_offsets[tile_id + 1];\n    const uint32_t block_size = block.size();\n    const uint32_t num_batches =\n        (range_end - range_start + block_size - 1) / block_size;\n\n    extern __shared__ int s[];\n    int32_t *id_batch = (int32_t *)s;                              // [block_size]\n    float3 *xy_opacity_batch = (float3 *)&id_batch[block_size];    // [block_size]\n    float3 *conic_batch = (float3 *)&xy_opacity_batch[block_size]; // [block_size]\n    float3 *pix_vel_batch = (float3 *)&conic_batch[block_size];    // [block_size]\n    float2 *depth_comp_batch = (float2 *)&pix_vel_batch[block_size]; // [block_size]\n    float *rgbs_batch = (float *)&depth_comp_batch[block_size]; // [block_size * COLOR_DIM]\n\n    // this is the T AFTER the last gaussian in this pixel\n    float T_final = 1.0f - render_alphas[pix_id];\n    float T = T_final;\n    // the contribution from gaussians behind the current one\n    float buffer[COLOR_DIM] = {0.f};\n    // index of last gaussian to contribute to this pixel\n    const int32_t bin_final = inside ? last_ids[pix_id] : 0;\n\n    // df/d_out for this pixel\n    float v_render_c[COLOR_DIM];\n    PRAGMA_UNROLL\n    for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n        v_render_c[k] = v_render_colors[pix_id * COLOR_DIM + k];\n    }\n    const float v_render_a = v_render_alphas[pix_id];\n    float v_alpha_sum_until_points_current;\n    if (v_alpha_sum_until_points != nullptr) {\n        v_alpha_sum_until_points_current = v_alpha_sum_until_points[pix_id];\n    }\n\n    // collect and process batches of gaussians\n    // each thread loads one gaussian at a time before rasterizing\n    const uint32_t tr = block.thread_rank();\n    cg::thread_block_tile<32> warp = cg::tiled_partition<32>(block);\n    const int32_t warp_bin_final = cg::reduce(warp, bin_final, cg::greater<int>());\n\n    for (uint32_t b = 0; b < num_batches; ++b) {\n        // resync all threads before writing next batch of shared mem\n        block.sync();\n\n        // each thread fetch 1 gaussian from back to front\n        // 0 index will be furthest back in batch\n        // index of gaussian to load\n        // batch end is the index of the last gaussian in the batch\n        // These values can be negative so must be int32 instead of uint32\n        const int32_t batch_end = range_end - 1 - block_size * b;\n        const int32_t batch_size = min(block_size, batch_end + 1 - range_start);\n        const int32_t idx = batch_end - tr;\n        if (idx >= range_start) {\n            int32_t g = flatten_ids[idx]; // flatten index in [C * N] or [nnz]\n            id_batch[tr] = g;\n            const float2 xy = means2d[g];\n            const float opac = opacities[g];\n            const float3 pix_vel = pix_vels[g];\n            const float2 depth_comp = depth_compensations[g];\n            xy_opacity_batch[tr] = {xy.x, xy.y, opac};\n            conic_batch[tr] = conics[g];\n            pix_vel_batch[tr] = {pix_vel.x, pix_vel.y, pix_vel.z};\n            depth_comp_batch[tr] = {depth_comp.x, depth_comp.y};\n            PRAGMA_UNROLL\n            for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                rgbs_batch[tr * COLOR_DIM + k] = colors[g * COLOR_DIM + k];\n            }\n        }\n        // wait for other threads to collect the gaussians in batch\n        block.sync();\n        // process gaussians in the current batch for this pixel\n        // 0 index is the furthest back gaussian in the batch\n        for (uint32_t t = max(0, batch_end - warp_bin_final); t < batch_size; ++t) {\n            bool valid = inside;\n            if (batch_end - t > bin_final) {\n                valid = 0;\n            }\n            float alpha;\n            float opac;\n            float3 pix_vel;\n            float2 depth_comp;\n            float2 delta;\n            float3 conic;\n            float vis;\n\n            if (valid) {\n                conic = conic_batch[t];\n                float3 xy_opac = xy_opacity_batch[t];\n                opac = xy_opac.z;\n                pix_vel = pix_vel_batch[t];\n                depth_comp = depth_comp_batch[t];\n                delta = {\n                    angle_difference(xy_opac.x + roll_time * pix_vel.x, px),\n                    angle_difference(xy_opac.y + roll_time * pix_vel.y, py)\n                };\n                float sigma =\n                    0.5f * (conic.x * delta.x * delta.x + conic.z * delta.y * delta.y) +\n                    conic.y * delta.x * delta.y;\n                vis = __expf(-sigma);\n                alpha = min(0.999f, opac * vis);\n                if (sigma < 0.f || alpha < 1.f / 255.f) {\n                    valid = false;\n                }\n            }\n\n            // if all threads are inactive in this warp, skip this loop\n            if (!warp.any(valid)) {\n                continue;\n            }\n            float v_rgb_local[COLOR_DIM] = {0.f};\n            float3 v_conic_local = {0.f, 0.f, 0.f};\n            float2 v_xy_local = {0.f, 0.f};\n            float2 v_xy_abs_local = {0.f, 0.f};\n            float3 v_pix_vel_local = {0.f, 0.f, 0.f};\n            float2 v_depth_comp_local = {0.f, 0.f};\n            float v_opacity_local = 0.f;\n            // initialize everything to 0, only set if the lane is valid\n            if (valid) {\n                // compute the current T for this gaussian\n                float ra = 1.0f / (1.0f - alpha);\n                T *= ra;\n                // update v_rgb for this gaussian\n                const float fac = alpha * T;\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    v_rgb_local[k] = fac * v_render_c[k];\n                }\n                // contribution from this pixel\n                float v_alpha = 0.f;\n                // pragma unroll?\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    v_alpha += (rgbs_batch[t * COLOR_DIM + k] * T - buffer[k] * ra) *\n                               v_render_c[k];\n                }\n                v_alpha += (depth_comp.x * delta.x + depth_comp.y * delta.y + pix_vel.z * roll_time) * T * v_render_c[depth_channel_idx];\n\n                v_alpha += T_final * ra * v_render_a;\n                // contribution from background pixel\n                if (backgrounds != nullptr) {\n                    float accum = 0.f;\n                    PRAGMA_UNROLL\n                    for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                        accum += backgrounds[k] * v_render_c[k];\n                    }\n                    v_alpha += -T_final * ra * accum;\n                }\n\n                if (opac * vis <= 0.999f) {\n                    v_depth_comp_local = {v_rgb_local[depth_channel_idx] * delta.x, v_rgb_local[depth_channel_idx] * delta.y};\n                    v_pix_vel_local.z = v_rgb_local[depth_channel_idx] * roll_time;\n                    const float v_sigma = -opac * vis * v_alpha;\n                    v_conic_local = {0.5f * v_sigma * delta.x * delta.x,\n                                     v_sigma * delta.x * delta.y,\n                                     0.5f * v_sigma * delta.y * delta.y};\n                    v_xy_local = {v_sigma * (conic.x * delta.x + conic.y * delta.y),\n                                  v_sigma * (conic.y * delta.x + conic.z * delta.y)};\n                    v_xy_local.x += v_rgb_local[depth_channel_idx] * depth_comp.x;\n                    v_xy_local.y += v_rgb_local[depth_channel_idx] * depth_comp.y;\n                    v_pix_vel_local.x = v_xy_local.x * roll_time;\n                    v_pix_vel_local.y = v_xy_local.y * roll_time;\n                    if (v_means2d_abs != nullptr) {\n                        v_xy_abs_local = {abs(v_xy_local.x), abs(v_xy_local.y)};\n                    }\n                    v_opacity_local = vis * v_alpha;\n                }\n\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    buffer[k] += rgbs_batch[t * COLOR_DIM + k] * fac;\n                }\n                buffer[depth_channel_idx] += (depth_comp.x * delta.x + depth_comp.y * delta.y + pix_vel.z * roll_time) * fac;\n\n                const float g_depth = rgbs_batch[t * COLOR_DIM + depth_channel_idx];\n                const bool g_is_prior_point = g_depth < (pz - compute_alpha_sum_until_points_threshold);\n                if (compute_alpha_sum_until_points && g_is_prior_point) {\n                    const float v_sigma_until_point = v_alpha_sum_until_points_current * -opac * vis;\n                    const float2 v_xy_local_until_point = {\n                        v_sigma_until_point * (conic.x * delta.x + conic.y * delta.y),\n                        v_sigma_until_point * (conic.y * delta.x + conic.z * delta.y)\n                    };\n                    \n                    v_xy_local.x += v_xy_local_until_point.x;\n                    v_xy_local.y += v_xy_local_until_point.y;\n                    v_pix_vel_local.x += v_xy_local_until_point.x * roll_time;\n                    v_pix_vel_local.y += v_xy_local_until_point.y * roll_time;\n                    if (v_means2d_abs != nullptr) {\n                        v_xy_abs_local.x += abs(v_xy_local_until_point.x);\n                        v_xy_abs_local.y += abs(v_xy_local_until_point.y);\n                    }\n             \n                    v_conic_local.x += v_sigma_until_point * 0.5f * delta.x * delta.x;\n                    v_conic_local.y += v_sigma_until_point * delta.x * delta.y;\n                    v_conic_local.z += v_sigma_until_point * 0.5f * delta.y * delta.y;\n                    \n                    v_opacity_local += v_alpha_sum_until_points_current * vis;\n                }\n            }\n            warpSum<COLOR_DIM, float>(v_rgb_local, warp);\n            warpSum(v_conic_local, warp);\n            warpSum(v_xy_local, warp);\n            warpSum(v_pix_vel_local, warp);\n            warpSum(v_depth_comp_local, warp);\n            if (v_means2d_abs != nullptr) {\n                warpSum(v_xy_abs_local, warp);\n            }\n            warpSum(v_opacity_local, warp);\n            if (warp.thread_rank() == 0) {\n                int32_t g = id_batch[t]; // flatten index in [C * N] or [nnz]\n                float *v_rgb_ptr = (float *)(v_colors) + COLOR_DIM * g;\n                PRAGMA_UNROLL\n                for (uint32_t k = 0; k < COLOR_DIM; ++k) {\n                    gpuAtomicAdd(v_rgb_ptr + k, v_rgb_local[k]);\n                }\n\n                float *v_conic_ptr = (float *)(v_conics) + 3 * g;\n                gpuAtomicAdd(v_conic_ptr, v_conic_local.x);\n                gpuAtomicAdd(v_conic_ptr + 1, v_conic_local.y);\n                gpuAtomicAdd(v_conic_ptr + 2, v_conic_local.z);\n\n                float *v_xy_ptr = (float *)(v_means2d) + 2 * g;\n                gpuAtomicAdd(v_xy_ptr, v_xy_local.x);\n                gpuAtomicAdd(v_xy_ptr + 1, v_xy_local.y);\n\n                if (v_means2d_abs != nullptr) {\n                    float *v_xy_abs_ptr = (float *)(v_means2d_abs) + 2 * g;\n                    gpuAtomicAdd(v_xy_abs_ptr, v_xy_abs_local.x);\n                    gpuAtomicAdd(v_xy_abs_ptr + 1, v_xy_abs_local.y);\n                }\n\n                float* v_pix_vel_ptr = (float*)(v_pix_vels) + 3 * g;\n                gpuAtomicAdd(v_pix_vel_ptr, v_pix_vel_local.x);\n                gpuAtomicAdd(v_pix_vel_ptr + 1, v_pix_vel_local.y);\n                gpuAtomicAdd(v_pix_vel_ptr + 2, v_pix_vel_local.z);\n\n                float* v_depth_comp_ptr = (float*)(v_depth_compensations) + 2 * g;\n                gpuAtomicAdd(v_depth_comp_ptr, v_depth_comp_local.x);\n                gpuAtomicAdd(v_depth_comp_ptr + 1, v_depth_comp_local.y);\n\n                gpuAtomicAdd(v_opacities + g, v_opacity_local);\n            }\n        }\n    }\n}\n\nstd::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>\nrasterize_to_points_bwd_tensor(\n    // Gaussian parameters\n    const torch::Tensor &means2d,                   // [C, N, 2] or [nnz, 2]\n    const torch::Tensor &conics,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &colors,                    // [C, N, 3] or [nnz, 3]\n    const torch::Tensor &opacities,                 // [C, N] or [nnz]\n    const torch::Tensor &pix_vels,                  // [C, N, 3]\n    const torch::Tensor &depth_compensations,       // [C, N, 2]\n    const at::optional<torch::Tensor> &backgrounds, // [C, 3]\n    // Points to rasterize\n    const torch::Tensor &raster_pts, // [C, image_height, image_width, 4]\n    // image size\n    const uint32_t image_width, const uint32_t image_height, \n    const uint32_t tile_width, const uint32_t tile_height,\n    // intersections\n    const torch::Tensor &tile_offsets, // [C, tile_height, tile_width]\n    const torch::Tensor &flatten_ids,  // [n_isects]\n    // forward outputs\n    const torch::Tensor &render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &last_ids,      // [C, image_height, image_width]\n    // gradients of outputs\n    const torch::Tensor &v_render_colors, // [C, image_height, image_width, 3]\n    const torch::Tensor &v_render_alphas, // [C, image_height, image_width, 1]\n    const torch::Tensor &v_alpha_sum_until_points, // [C, image_height, image_width, 1])\n    // options\n    bool absgrad,\n    const bool compute_alpha_sum_until_points,\n    const float compute_alpha_sum_until_points_threshold,\n    const uint32_t depth_channel_idx\n) {\n    DEVICE_GUARD(means2d);\n    CHECK_INPUT(means2d);\n    CHECK_INPUT(conics);\n    CHECK_INPUT(colors);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(pix_vels);\n    CHECK_INPUT(depth_compensations);\n    CHECK_INPUT(raster_pts);\n    CHECK_INPUT(tile_offsets);\n    CHECK_INPUT(flatten_ids);\n    CHECK_INPUT(render_alphas);\n    CHECK_INPUT(last_ids);\n    CHECK_INPUT(v_render_colors);\n    CHECK_INPUT(v_render_alphas);\n    CHECK_INPUT(v_alpha_sum_until_points);\n    if (backgrounds.has_value()) {\n        CHECK_INPUT(backgrounds.value());\n    }\n\n    bool packed = means2d.dim() == 2;\n\n    uint32_t C = tile_offsets.size(0);         // number of cameras\n    uint32_t N = packed ? 0 : means2d.size(1); // number of gaussians\n    uint32_t n_isects = flatten_ids.size(0);\n    uint32_t COLOR_DIM = colors.size(-1);\n    uint32_t tile_grid_height = tile_offsets.size(1);\n    uint32_t tile_grid_width = tile_offsets.size(2);\n\n    // Each block covers a tile on the image. In total there are\n    // C * tile_height * tile_width blocks.\n    dim3 threads = {tile_width, tile_height, 1};\n    dim3 blocks = {C, tile_grid_height, tile_grid_width};\n\n    torch::Tensor v_means2d = torch::zeros_like(means2d);\n    torch::Tensor v_conics = torch::zeros_like(conics);\n    torch::Tensor v_colors = torch::zeros_like(colors);\n    torch::Tensor v_opacities = torch::zeros_like(opacities);\n    torch::Tensor v_pix_vels = torch::zeros_like(pix_vels);\n    torch::Tensor v_depth_compensations = torch::zeros_like(depth_compensations);\n    torch::Tensor v_means2d_abs;\n    if (absgrad) {\n        v_means2d_abs = torch::zeros_like(means2d);\n    }\n\n    if (n_isects) {\n        const uint32_t shared_mem = tile_width * tile_height *\n                                    (sizeof(int32_t) + sizeof(float3) + sizeof(float3) +\n                                     sizeof(float3) + sizeof(float2) + sizeof(float) * COLOR_DIM);\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        switch (COLOR_DIM) {\n        case 1:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<1>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<1><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 2:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<2>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<2><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 3:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<3>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<3><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 4:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<4>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<4><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 5:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<5>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<5><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 8:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<8>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<8><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 9:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<9>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<9><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 16:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<16>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<16><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 17:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<17>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<17><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 32:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<32>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<32><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 33:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<33>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<33><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 64:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<64>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<64><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 65:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<65>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<65><<<blocks, threads, shared_mem, stream>>>(\n                C, N, n_isects, packed,\n                (float2 *)means2d.data_ptr<float>(),\n                (float3 *)conics.data_ptr<float>(),\n                colors.data_ptr<float>(),\n                opacities.data_ptr<float>(),\n                (float3 *)pix_vels.data_ptr<float>(),\n                (float2 *)depth_compensations.data_ptr<float>(),\n                backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                        : nullptr,\n                (float4 *)raster_pts.data_ptr<float>(),\n                image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold,\n                tile_offsets.data_ptr<int32_t>(),\n                flatten_ids.data_ptr<int32_t>(),\n                depth_channel_idx,\n                render_alphas.data_ptr<float>(), \n                last_ids.data_ptr<int32_t>(),\n                v_render_colors.data_ptr<float>(),\n                v_render_alphas.data_ptr<float>(),\n                v_alpha_sum_until_points.data_ptr<float>(),\n                absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                (float2 *)v_means2d.data_ptr<float>(),\n                (float3 *)v_conics.data_ptr<float>(),\n                v_colors.data_ptr<float>(),\n                v_opacities.data_ptr<float>(),\n                (float3 *)v_pix_vels.data_ptr<float>(),\n                (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 128:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<128>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<128>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 129:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<129>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<129>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 256:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<256>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<256>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 257:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<257>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<257>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 512:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<512>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<512>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        case 513:\n            if (cudaFuncSetAttribute(rasterize_to_points_bwd_kernel<513>,\n                                     cudaFuncAttributeMaxDynamicSharedMemorySize,\n                                     shared_mem) != cudaSuccess) {\n                AT_ERROR(\"Failed to set maximum shared memory size (requested \",\n                         shared_mem, \" bytes), try lowering tile_size.\");\n            }\n            rasterize_to_points_bwd_kernel<513>\n                <<<blocks, threads, shared_mem, stream>>>(\n                    C, N, n_isects, packed,\n                    (float2 *)means2d.data_ptr<float>(),\n                    (float3 *)conics.data_ptr<float>(),\n                    colors.data_ptr<float>(),\n                    opacities.data_ptr<float>(),\n                    (float3 *)pix_vels.data_ptr<float>(),\n                    (float2 *)depth_compensations.data_ptr<float>(),\n                    backgrounds.has_value() ? backgrounds.value().data_ptr<float>()\n                                            : nullptr,\n                    (float4 *)raster_pts.data_ptr<float>(),\n                    image_width, image_height, tile_width, tile_height, tile_grid_width, tile_grid_height,\n                    compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold,\n                    tile_offsets.data_ptr<int32_t>(),\n                    flatten_ids.data_ptr<int32_t>(),\n                    depth_channel_idx,\n                    render_alphas.data_ptr<float>(), \n                    last_ids.data_ptr<int32_t>(),\n                    v_render_colors.data_ptr<float>(),\n                    v_render_alphas.data_ptr<float>(),\n                    v_alpha_sum_until_points.data_ptr<float>(),\n                    absgrad ? (float2 *)v_means2d_abs.data_ptr<float>() : nullptr,\n                    (float2 *)v_means2d.data_ptr<float>(),\n                    (float3 *)v_conics.data_ptr<float>(),\n                    v_colors.data_ptr<float>(),\n                    v_opacities.data_ptr<float>(),\n                    (float3 *)v_pix_vels.data_ptr<float>(),\n                    (float2 *)v_depth_compensations.data_ptr<float>());\n            break;\n        default:\n            AT_ERROR(\"Unsupported number of channels: \", COLOR_DIM);\n        }\n    }\n\n    return std::make_tuple(v_means2d_abs, v_means2d, v_conics, v_colors, v_opacities, v_pix_vels, v_depth_compensations);\n}"
  },
  {
    "path": "gsplat/cuda/csrc/relocation.cu",
    "content": "#include \"bindings.h\"\n\n// Equation (9) in \"3D Gaussian Splatting as Markov Chain Monte Carlo\"\n__global__ void compute_relocation_kernel(int N, float *opacities, float *scales,\n                                          int *ratios, float *binoms, int n_max,\n                                          float *new_opacities, float *new_scales) {\n    int idx = threadIdx.x + blockIdx.x * blockDim.x;\n    if (idx >= N)\n        return;\n\n    int n_idx = ratios[idx];\n    float denom_sum = 0.0f;\n\n    // compute new opacity\n    new_opacities[idx] = 1.0f - powf(1.0f - opacities[idx], 1.0f / n_idx);\n\n    // compute new scale\n    for (int i = 1; i <= n_idx; ++i) {\n        for (int k = 0; k <= (i - 1); ++k) {\n            float bin_coeff = binoms[(i - 1) * n_max + k];\n            float term = (pow(-1.0f, k) / sqrt(static_cast<float>(k + 1))) *\n                         pow(new_opacities[idx], k + 1);\n            denom_sum += (bin_coeff * term);\n        }\n    }\n    float coeff = (opacities[idx] / denom_sum);\n    for (int i = 0; i < 3; ++i)\n        new_scales[idx * 3 + i] = coeff * scales[idx * 3 + i];\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_relocation_tensor(torch::Tensor &opacities, torch::Tensor &scales,\n                          torch::Tensor &ratios, torch::Tensor &binoms,\n                          const int n_max) {\n    DEVICE_GUARD(opacities);\n    CHECK_INPUT(opacities);\n    CHECK_INPUT(scales);\n    CHECK_INPUT(ratios);\n    CHECK_INPUT(binoms);\n    torch::Tensor new_opacities = torch::empty_like(opacities);\n    torch::Tensor new_scales = torch::empty_like(scales);\n\n    uint32_t N = opacities.size(0);\n    if (N) {\n        at::cuda::CUDAStream stream = at::cuda::getCurrentCUDAStream();\n        compute_relocation_kernel<<<(N + N_THREADS - 1) / N_THREADS, N_THREADS, 0,\n                                    stream>>>(\n            N, opacities.data_ptr<float>(), scales.data_ptr<float>(),\n            ratios.data_ptr<int>(), binoms.data_ptr<float>(), n_max,\n            new_opacities.data_ptr<float>(), new_scales.data_ptr<float>());\n    }\n    return std::make_tuple(new_opacities, new_scales);\n}\n"
  },
  {
    "path": "gsplat/cuda/csrc/sh.cu",
    "content": "#include \"bindings.h\"\n#include \"third_party/glm/glm/glm.hpp\"\n#include \"third_party/glm/glm/gtc/type_ptr.hpp\"\n#include <cooperative_groups.h>\n#include <cuda_runtime.h>\n#include <ATen/cuda/Atomic.cuh>\n\nnamespace cg = cooperative_groups;\n\n// Evaluate spherical harmonics bases at unit direction for high orders using approach\n// described by Efficient Spherical Harmonic Evaluation, Peter-Pike Sloan, JCGT 2013 See\n// https://jcgt.org/published/0002/02/06/ for reference implementation\n__device__ void\nsh_coeffs_to_color_fast(const uint32_t degree, // degree of SH to be evaluated\n                        const uint32_t c,      // color channel\n                        const float3 &dir,     // [3]\n                        const float *coeffs,   // [K, 3]\n                        // output\n                        float *colors // [3]\n) {\n    float result = 0.2820947917738781f * coeffs[c];\n    if (degree >= 1) {\n        // Normally rsqrt is faster than sqrt, but --use_fast_math will optimize sqrt\n        // on single precision, so we use sqrt here.\n        float inorm = rsqrtf(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);\n        float x = dir.x * inorm;\n        float y = dir.y * inorm;\n        float z = dir.z * inorm;\n\n        result += 0.48860251190292f * (-y * coeffs[1 * 3 + c] + z * coeffs[2 * 3 + c] -\n                                       x * coeffs[3 * 3 + c]);\n        if (degree >= 2) {\n            float z2 = z * z;\n\n            float fTmp0B = -1.092548430592079f * z;\n            float fC1 = x * x - y * y;\n            float fS1 = 2.f * x * y;\n            float pSH6 = (0.9461746957575601f * z2 - 0.3153915652525201f);\n            float pSH7 = fTmp0B * x;\n            float pSH5 = fTmp0B * y;\n            float pSH8 = 0.5462742152960395f * fC1;\n            float pSH4 = 0.5462742152960395f * fS1;\n\n            result += pSH4 * coeffs[4 * 3 + c] + pSH5 * coeffs[5 * 3 + c] +\n                      pSH6 * coeffs[6 * 3 + c] + pSH7 * coeffs[7 * 3 + c] +\n                      pSH8 * coeffs[8 * 3 + c];\n            if (degree >= 3) {\n                float fTmp0C = -2.285228997322329f * z2 + 0.4570457994644658f;\n                float fTmp1B = 1.445305721320277f * z;\n                float fC2 = x * fC1 - y * fS1;\n                float fS2 = x * fS1 + y * fC1;\n                float pSH12 = z * (1.865881662950577f * z2 - 1.119528997770346f);\n                float pSH13 = fTmp0C * x;\n                float pSH11 = fTmp0C * y;\n                float pSH14 = fTmp1B * fC1;\n                float pSH10 = fTmp1B * fS1;\n                float pSH15 = -0.5900435899266435f * fC2;\n                float pSH9 = -0.5900435899266435f * fS2;\n\n                result += pSH9 * coeffs[9 * 3 + c] + pSH10 * coeffs[10 * 3 + c] +\n                          pSH11 * coeffs[11 * 3 + c] + pSH12 * coeffs[12 * 3 + c] +\n                          pSH13 * coeffs[13 * 3 + c] + pSH14 * coeffs[14 * 3 + c] +\n                          pSH15 * coeffs[15 * 3 + c];\n\n                if (degree >= 4) {\n                    float fTmp0D = z * (-4.683325804901025f * z2 + 2.007139630671868f);\n                    float fTmp1C = 3.31161143515146f * z2 - 0.47308734787878f;\n                    float fTmp2B = -1.770130769779931f * z;\n                    float fC3 = x * fC2 - y * fS2;\n                    float fS3 = x * fS2 + y * fC2;\n                    float pSH20 =\n                        (1.984313483298443f * z * pSH12 - 1.006230589874905f * pSH6);\n                    float pSH21 = fTmp0D * x;\n                    float pSH19 = fTmp0D * y;\n                    float pSH22 = fTmp1C * fC1;\n                    float pSH18 = fTmp1C * fS1;\n                    float pSH23 = fTmp2B * fC2;\n                    float pSH17 = fTmp2B * fS2;\n                    float pSH24 = 0.6258357354491763f * fC3;\n                    float pSH16 = 0.6258357354491763f * fS3;\n\n                    result += pSH16 * coeffs[16 * 3 + c] + pSH17 * coeffs[17 * 3 + c] +\n                              pSH18 * coeffs[18 * 3 + c] + pSH19 * coeffs[19 * 3 + c] +\n                              pSH20 * coeffs[20 * 3 + c] + pSH21 * coeffs[21 * 3 + c] +\n                              pSH22 * coeffs[22 * 3 + c] + pSH23 * coeffs[23 * 3 + c] +\n                              pSH24 * coeffs[24 * 3 + c];\n                }\n            }\n        }\n    }\n\n    colors[c] = result;\n}\n\n__device__ void\nsh_coeffs_to_color_fast_vjp(const uint32_t degree, // degree of SH to be evaluated\n                            const uint32_t c,      // color channel\n                            const float3 &dir,     // [3]\n                            const float *coeffs,   // [K, 3]\n                            const float *v_colors, // [3]\n                            // output\n                            float *v_coeffs, // [K, 3]\n                            float3 *v_dir    // [3] optional\n) {\n    float v_colors_local = v_colors[c];\n\n    v_coeffs[c] = 0.2820947917738781f * v_colors_local;\n    if (degree < 1) {\n        return;\n    }\n    float inorm = rsqrtf(dir.x * dir.x + dir.y * dir.y + dir.z * dir.z);\n    float x = dir.x * inorm;\n    float y = dir.y * inorm;\n    float z = dir.z * inorm;\n    float v_x = 0.f, v_y = 0.f, v_z = 0.f;\n\n    v_coeffs[1 * 3 + c] = -0.48860251190292f * y * v_colors_local;\n    v_coeffs[2 * 3 + c] = 0.48860251190292f * z * v_colors_local;\n    v_coeffs[3 * 3 + c] = -0.48860251190292f * x * v_colors_local;\n\n    if (v_dir != nullptr) {\n        v_x += -0.48860251190292f * coeffs[3 * 3 + c] * v_colors_local;\n        v_y += -0.48860251190292f * coeffs[1 * 3 + c] * v_colors_local;\n        v_z += 0.48860251190292f * coeffs[2 * 3 + c] * v_colors_local;\n    }\n    if (degree < 2) {\n        if (v_dir != nullptr) {\n            glm::vec3 dir_n = glm::vec3(x, y, z);\n            glm::vec3 v_dir_n = glm::vec3(v_x, v_y, v_z);\n            glm::vec3 v_d = (v_dir_n - glm::dot(v_dir_n, dir_n) * dir_n) * inorm;\n\n            v_dir->x = v_d.x;\n            v_dir->y = v_d.y;\n            v_dir->z = v_d.z;\n        }\n        return;\n    }\n\n    float z2 = z * z;\n    float fTmp0B = -1.092548430592079f * z;\n    float fC1 = x * x - y * y;\n    float fS1 = 2.f * x * y;\n    float pSH6 = (0.9461746957575601f * z2 - 0.3153915652525201f);\n    float pSH7 = fTmp0B * x;\n    float pSH5 = fTmp0B * y;\n    float pSH8 = 0.5462742152960395f * fC1;\n    float pSH4 = 0.5462742152960395f * fS1;\n    v_coeffs[4 * 3 + c] = pSH4 * v_colors_local;\n    v_coeffs[5 * 3 + c] = pSH5 * v_colors_local;\n    v_coeffs[6 * 3 + c] = pSH6 * v_colors_local;\n    v_coeffs[7 * 3 + c] = pSH7 * v_colors_local;\n    v_coeffs[8 * 3 + c] = pSH8 * v_colors_local;\n\n    float fTmp0B_z, fC1_x, fC1_y, fS1_x, fS1_y, pSH6_z, pSH7_x, pSH7_z, pSH5_y, pSH5_z,\n        pSH8_x, pSH8_y, pSH4_x, pSH4_y;\n    if (v_dir != nullptr) {\n        fTmp0B_z = -1.092548430592079f;\n        fC1_x = 2.f * x;\n        fC1_y = -2.f * y;\n        fS1_x = 2.f * y;\n        fS1_y = 2.f * x;\n        pSH6_z = 2.f * 0.9461746957575601f * z;\n        pSH7_x = fTmp0B;\n        pSH7_z = fTmp0B_z * x;\n        pSH5_y = fTmp0B;\n        pSH5_z = fTmp0B_z * y;\n        pSH8_x = 0.5462742152960395f * fC1_x;\n        pSH8_y = 0.5462742152960395f * fC1_y;\n        pSH4_x = 0.5462742152960395f * fS1_x;\n        pSH4_y = 0.5462742152960395f * fS1_y;\n\n        v_x +=\n            v_colors_local * (pSH4_x * coeffs[4 * 3 + c] + pSH8_x * coeffs[8 * 3 + c] +\n                              pSH7_x * coeffs[7 * 3 + c]);\n        v_y +=\n            v_colors_local * (pSH4_y * coeffs[4 * 3 + c] + pSH8_y * coeffs[8 * 3 + c] +\n                              pSH5_y * coeffs[5 * 3 + c]);\n        v_z +=\n            v_colors_local * (pSH6_z * coeffs[6 * 3 + c] + pSH7_z * coeffs[7 * 3 + c] +\n                              pSH5_z * coeffs[5 * 3 + c]);\n    }\n\n    if (degree < 3) {\n        if (v_dir != nullptr) {\n            glm::vec3 dir_n = glm::vec3(x, y, z);\n            glm::vec3 v_dir_n = glm::vec3(v_x, v_y, v_z);\n            glm::vec3 v_d = (v_dir_n - glm::dot(v_dir_n, dir_n) * dir_n) * inorm;\n\n            v_dir->x = v_d.x;\n            v_dir->y = v_d.y;\n            v_dir->z = v_d.z;\n        }\n        return;\n    }\n\n    float fTmp0C = -2.285228997322329f * z2 + 0.4570457994644658f;\n    float fTmp1B = 1.445305721320277f * z;\n    float fC2 = x * fC1 - y * fS1;\n    float fS2 = x * fS1 + y * fC1;\n    float pSH12 = z * (1.865881662950577f * z2 - 1.119528997770346f);\n    float pSH13 = fTmp0C * x;\n    float pSH11 = fTmp0C * y;\n    float pSH14 = fTmp1B * fC1;\n    float pSH10 = fTmp1B * fS1;\n    float pSH15 = -0.5900435899266435f * fC2;\n    float pSH9 = -0.5900435899266435f * fS2;\n    v_coeffs[9 * 3 + c] = pSH9 * v_colors_local;\n    v_coeffs[10 * 3 + c] = pSH10 * v_colors_local;\n    v_coeffs[11 * 3 + c] = pSH11 * v_colors_local;\n    v_coeffs[12 * 3 + c] = pSH12 * v_colors_local;\n    v_coeffs[13 * 3 + c] = pSH13 * v_colors_local;\n    v_coeffs[14 * 3 + c] = pSH14 * v_colors_local;\n    v_coeffs[15 * 3 + c] = pSH15 * v_colors_local;\n\n    float fTmp0C_z, fTmp1B_z, fC2_x, fC2_y, fS2_x, fS2_y, pSH12_z, pSH13_x, pSH13_z,\n        pSH11_y, pSH11_z, pSH14_x, pSH14_y, pSH14_z, pSH10_x, pSH10_y, pSH10_z, pSH15_x,\n        pSH15_y, pSH9_x, pSH9_y;\n    if (v_dir != nullptr) {\n        fTmp0C_z = -2.285228997322329f * 2.f * z;\n        fTmp1B_z = 1.445305721320277f;\n        fC2_x = fC1 + x * fC1_x - y * fS1_x;\n        fC2_y = x * fC1_y - fS1 - y * fS1_y;\n        fS2_x = fS1 + x * fS1_x + y * fC1_x;\n        fS2_y = x * fS1_y + fC1 + y * fC1_y;\n        pSH12_z = 3.f * 1.865881662950577f * z2 - 1.119528997770346f;\n        pSH13_x = fTmp0C;\n        pSH13_z = fTmp0C_z * x;\n        pSH11_y = fTmp0C;\n        pSH11_z = fTmp0C_z * y;\n        pSH14_x = fTmp1B * fC1_x;\n        pSH14_y = fTmp1B * fC1_y;\n        pSH14_z = fTmp1B_z * fC1;\n        pSH10_x = fTmp1B * fS1_x;\n        pSH10_y = fTmp1B * fS1_y;\n        pSH10_z = fTmp1B_z * fS1;\n        pSH15_x = -0.5900435899266435f * fC2_x;\n        pSH15_y = -0.5900435899266435f * fC2_y;\n        pSH9_x = -0.5900435899266435f * fS2_x;\n        pSH9_y = -0.5900435899266435f * fS2_y;\n\n        v_x += v_colors_local *\n               (pSH9_x * coeffs[9 * 3 + c] + pSH15_x * coeffs[15 * 3 + c] +\n                pSH10_x * coeffs[10 * 3 + c] + pSH14_x * coeffs[14 * 3 + c] +\n                pSH13_x * coeffs[13 * 3 + c]);\n\n        v_y += v_colors_local *\n               (pSH9_y * coeffs[9 * 3 + c] + pSH15_y * coeffs[15 * 3 + c] +\n                pSH10_y * coeffs[10 * 3 + c] + pSH14_y * coeffs[14 * 3 + c] +\n                pSH11_y * coeffs[11 * 3 + c]);\n\n        v_z += v_colors_local *\n               (pSH12_z * coeffs[12 * 3 + c] + pSH13_z * coeffs[13 * 3 + c] +\n                pSH11_z * coeffs[11 * 3 + c] + pSH14_z * coeffs[14 * 3 + c] +\n                pSH10_z * coeffs[10 * 3 + c]);\n    }\n\n    if (degree < 4) {\n        if (v_dir != nullptr) {\n            glm::vec3 dir_n = glm::vec3(x, y, z);\n            glm::vec3 v_dir_n = glm::vec3(v_x, v_y, v_z);\n            glm::vec3 v_d = (v_dir_n - glm::dot(v_dir_n, dir_n) * dir_n) * inorm;\n\n            v_dir->x = v_d.x;\n            v_dir->y = v_d.y;\n            v_dir->z = v_d.z;\n        }\n        return;\n    }\n\n    float fTmp0D = z * (-4.683325804901025f * z2 + 2.007139630671868f);\n    float fTmp1C = 3.31161143515146f * z2 - 0.47308734787878f;\n    float fTmp2B = -1.770130769779931f * z;\n    float fC3 = x * fC2 - y * fS2;\n    float fS3 = x * fS2 + y * fC2;\n    float pSH20 = (1.984313483298443f * z * pSH12 + -1.006230589874905f * pSH6);\n    float pSH21 = fTmp0D * x;\n    float pSH19 = fTmp0D * y;\n    float pSH22 = fTmp1C * fC1;\n    float pSH18 = fTmp1C * fS1;\n    float pSH23 = fTmp2B * fC2;\n    float pSH17 = fTmp2B * fS2;\n    float pSH24 = 0.6258357354491763f * fC3;\n    float pSH16 = 0.6258357354491763f * fS3;\n    v_coeffs[16 * 3 + c] = pSH16 * v_colors_local;\n    v_coeffs[17 * 3 + c] = pSH17 * v_colors_local;\n    v_coeffs[18 * 3 + c] = pSH18 * v_colors_local;\n    v_coeffs[19 * 3 + c] = pSH19 * v_colors_local;\n    v_coeffs[20 * 3 + c] = pSH20 * v_colors_local;\n    v_coeffs[21 * 3 + c] = pSH21 * v_colors_local;\n    v_coeffs[22 * 3 + c] = pSH22 * v_colors_local;\n    v_coeffs[23 * 3 + c] = pSH23 * v_colors_local;\n    v_coeffs[24 * 3 + c] = pSH24 * v_colors_local;\n\n    float fTmp0D_z, fTmp1C_z, fTmp2B_z, fC3_x, fC3_y, fS3_x, fS3_y, pSH20_z, pSH21_x,\n        pSH21_z, pSH19_y, pSH19_z, pSH22_x, pSH22_y, pSH22_z, pSH18_x, pSH18_y, pSH18_z,\n        pSH23_x, pSH23_y, pSH23_z, pSH17_x, pSH17_y, pSH17_z, pSH24_x, pSH24_y, pSH16_x,\n        pSH16_y;\n    if (v_dir != nullptr) {\n        fTmp0D_z = 3.f * -4.683325804901025f * z2 + 2.007139630671868f;\n        fTmp1C_z = 2.f * 3.31161143515146f * z;\n        fTmp2B_z = -1.770130769779931f;\n        fC3_x = fC2 + x * fC2_x - y * fS2_x;\n        fC3_y = x * fC2_y - fS2 - y * fS2_y;\n        fS3_x = fS2 + y * fC2_x + x * fS2_x;\n        fS3_y = x * fS2_y + fC2 + y * fC2_y;\n        pSH20_z =\n            1.984313483298443f * (pSH12 + z * pSH12_z) + -1.006230589874905f * pSH6_z;\n        pSH21_x = fTmp0D;\n        pSH21_z = fTmp0D_z * x;\n        pSH19_y = fTmp0D;\n        pSH19_z = fTmp0D_z * y;\n        pSH22_x = fTmp1C * fC1_x;\n        pSH22_y = fTmp1C * fC1_y;\n        pSH22_z = fTmp1C_z * fC1;\n        pSH18_x = fTmp1C * fS1_x;\n        pSH18_y = fTmp1C * fS1_y;\n        pSH18_z = fTmp1C_z * fS1;\n        pSH23_x = fTmp2B * fC2_x;\n        pSH23_y = fTmp2B * fC2_y;\n        pSH23_z = fTmp2B_z * fC2;\n        pSH17_x = fTmp2B * fS2_x;\n        pSH17_y = fTmp2B * fS2_y;\n        pSH17_z = fTmp2B_z * fS2;\n        pSH24_x = 0.6258357354491763f * fC3_x;\n        pSH24_y = 0.6258357354491763f * fC3_y;\n        pSH16_x = 0.6258357354491763f * fS3_x;\n        pSH16_y = 0.6258357354491763f * fS3_y;\n\n        v_x += v_colors_local *\n               (pSH16_x * coeffs[16 * 3 + c] + pSH24_x * coeffs[24 * 3 + c] +\n                pSH17_x * coeffs[17 * 3 + c] + pSH23_x * coeffs[23 * 3 + c] +\n                pSH18_x * coeffs[18 * 3 + c] + pSH22_x * coeffs[22 * 3 + c] +\n                pSH21_x * coeffs[21 * 3 + c]);\n        v_y += v_colors_local *\n               (pSH16_y * coeffs[16 * 3 + c] + pSH24_y * coeffs[24 * 3 + c] +\n                pSH17_y * coeffs[17 * 3 + c] + pSH23_y * coeffs[23 * 3 + c] +\n                pSH18_y * coeffs[18 * 3 + c] + pSH22_y * coeffs[22 * 3 + c] +\n                pSH19_y * coeffs[19 * 3 + c]);\n        v_z += v_colors_local *\n               (pSH20_z * coeffs[20 * 3 + c] + pSH21_z * coeffs[21 * 3 + c] +\n                pSH19_z * coeffs[19 * 3 + c] + pSH22_z * coeffs[22 * 3 + c] +\n                pSH18_z * coeffs[18 * 3 + c] + pSH23_z * coeffs[23 * 3 + c] +\n                pSH17_z * coeffs[17 * 3 + c]);\n\n        glm::vec3 dir_n = glm::vec3(x, y, z);\n        glm::vec3 v_dir_n = glm::vec3(v_x, v_y, v_z);\n        glm::vec3 v_d = (v_dir_n - glm::dot(v_dir_n, dir_n) * dir_n) * inorm;\n\n        v_dir->x = v_d.x;\n        v_dir->y = v_d.y;\n        v_dir->z = v_d.z;\n    }\n}\n\n__global__ void compute_sh_fwd_kernel(const uint32_t N, const uint32_t K,\n                                      const uint32_t degrees_to_use,\n                                      const float3 *__restrict__ dirs,  // [N, 3]\n                                      const float *__restrict__ coeffs, // [N, K, 3]\n                                      const bool *__restrict__ masks,   // [N]\n                                      float *__restrict__ colors        // [N, 3]\n) {\n    // parallelize over N * 3\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= N * 3) {\n        return;\n    }\n    uint32_t elem_id = idx / 3;\n    uint32_t c = idx % 3; // color channel\n    if (masks != nullptr && !masks[elem_id]) {\n        return;\n    }\n    sh_coeffs_to_color_fast(degrees_to_use, c, dirs[elem_id], coeffs + elem_id * K * 3,\n                            colors + elem_id * 3);\n}\n\n__global__ void compute_sh_bwd_kernel(const uint32_t N, const uint32_t K,\n                                      const uint32_t degrees_to_use,\n                                      const float3 *__restrict__ dirs,    // [N, 3]\n                                      const float *__restrict__ coeffs,   // [N, K, 3]\n                                      const bool *__restrict__ masks,     // [N]\n                                      const float *__restrict__ v_colors, // [N, 3\n                                      float *__restrict__ v_coeffs,       // [N, K, 3]\n                                      float *__restrict__ v_dirs // [N, 3] optional\n) {\n    // parallelize over N * 3\n    uint32_t idx = cg::this_grid().thread_rank();\n    if (idx >= N * 3) {\n        return;\n    }\n    uint32_t elem_id = idx / 3;\n    uint32_t c = idx % 3; // color channel\n    if (masks != nullptr && !masks[elem_id]) {\n        return;\n    }\n\n    float3 v_dir = {0.f, 0.f, 0.f};\n    sh_coeffs_to_color_fast_vjp(degrees_to_use, c, dirs[elem_id],\n                                coeffs + elem_id * K * 3, v_colors + elem_id * 3,\n                                v_coeffs + elem_id * K * 3,\n                                v_dirs == nullptr ? nullptr : &v_dir);\n    if (v_dirs != nullptr) {\n        gpuAtomicAdd(v_dirs + elem_id * 3, v_dir.x);\n        gpuAtomicAdd(v_dirs + elem_id * 3 + 1, v_dir.y);\n        gpuAtomicAdd(v_dirs + elem_id * 3 + 2, v_dir.z);\n    }\n}\n\ntorch::Tensor compute_sh_fwd_tensor(const uint32_t degrees_to_use,\n                                    torch::Tensor &dirs,              // [..., 3]\n                                    torch::Tensor &coeffs,            // [..., K, 3]\n                                    at::optional<torch::Tensor> masks // [...]\n) {\n    DEVICE_GUARD(dirs);\n    CHECK_INPUT(dirs);\n    CHECK_INPUT(coeffs);\n    if (masks.has_value()) {\n        CHECK_INPUT(masks.value());\n    }\n    TORCH_CHECK(coeffs.size(-1) == 3, \"coeffs must have last dimension 3\");\n    TORCH_CHECK(dirs.size(-1) == 3, \"dirs must have last dimension 3\");\n    const uint32_t K = coeffs.size(-2);\n    const uint32_t N = dirs.numel() / 3;\n    torch::Tensor colors = torch::empty_like(dirs); // [..., 3]\n    // parallelize over N * 3\n    if (N) {\n        compute_sh_fwd_kernel<<<(N * 3 + N_THREADS - 1) / N_THREADS, N_THREADS>>>(\n            N, K, degrees_to_use, (float3 *)dirs.data_ptr<float>(),\n            coeffs.data_ptr<float>(),\n            masks.has_value() ? masks.value().data_ptr<bool>() : nullptr,\n            colors.data_ptr<float>());\n    }\n    return colors; // [..., 3]\n}\n\nstd::tuple<torch::Tensor, torch::Tensor>\ncompute_sh_bwd_tensor(const uint32_t K, const uint32_t degrees_to_use,\n                      torch::Tensor &dirs,               // [..., 3]\n                      torch::Tensor &coeffs,             // [..., K, 3]\n                      at::optional<torch::Tensor> masks, // [...]\n                      torch::Tensor &v_colors,           // [..., 3]\n                      bool compute_v_dirs) {\n    DEVICE_GUARD(dirs);\n    CHECK_INPUT(dirs);\n    CHECK_INPUT(coeffs);\n    CHECK_INPUT(v_colors);\n    if (masks.has_value()) {\n        CHECK_INPUT(masks.value());\n    }\n    TORCH_CHECK(v_colors.size(-1) == 3, \"v_colors must have last dimension 3\");\n    TORCH_CHECK(coeffs.size(-1) == 3, \"coeffs must have last dimension 3\");\n    TORCH_CHECK(dirs.size(-1) == 3, \"dirs must have last dimension 3\");\n    const uint32_t N = dirs.numel() / 3;\n\n    torch::Tensor v_coeffs = torch::zeros_like(coeffs);\n    torch::Tensor v_dirs;\n    if (compute_v_dirs) {\n        v_dirs = torch::zeros_like(dirs);\n    }\n    if (N) {\n        compute_sh_bwd_kernel<<<(N * 3 + N_THREADS - 1) / N_THREADS, N_THREADS>>>(\n            N, K, degrees_to_use, (float3 *)dirs.data_ptr<float>(),\n            coeffs.data_ptr<float>(),\n            masks.has_value() ? masks.value().data_ptr<bool>() : nullptr,\n            v_colors.data_ptr<float>(), v_coeffs.data_ptr<float>(),\n            compute_v_dirs ? v_dirs.data_ptr<float>() : nullptr);\n    }\n    return std::make_tuple(v_coeffs, v_dirs); // [..., K, 3], [..., 3]\n}\n"
  },
  {
    "path": "gsplat/cuda/csrc/utils.cuh",
    "content": "#ifndef GSPLAT_CUDA_UTILS_H\n#define GSPLAT_CUDA_UTILS_H\n\n#include \"helpers.cuh\"\n#include \"third_party/glm/glm/glm.hpp\"\n#include \"third_party/glm/glm/gtc/type_ptr.hpp\"\n#include <cuda.h>\n#include <cuda_runtime.h>\n\n#define RAD_TO_DEG 57.2957795131f\n\ninline __device__ void depth_compensation_from_cov3d(const glm::mat3 cov3d, const float eps2d, glm::vec2 &depth_compensation) {\n    // cov3d is a 3x3 matrix [a1, a2, a3; b1, b2, b3; c1, c2, c3]\n    // but glm::mat3 is column major\n    // depth_compensation is a 2x1 vector [dc1; dc2]\n    // in rowmajor terms: [invcov3d[2,0]/invcov3d[2,2]; invcov3d[2,1]/invcov3d[2,2]]\n    // we can compute this by inverting the 3x3 matrix and taking the 3rd column\n    // hence, we don't have to compute the full inverse\n    float a1 = cov3d[0][0] + eps2d;\n    float a2 = cov3d[1][0];\n    float b1 = cov3d[0][1];\n    float b2 = cov3d[1][1] + eps2d;\n    float c1 = cov3d[0][2];\n    float c2 = cov3d[1][2];\n\n    float invD = 1/(a1*b2-a2*b1);\n    depth_compensation = glm::vec2(\n        (b1*c2-b2*c1) * invD,\n        (a2*c1-a1*c2) * invD\n    );\n}\n\ninline __device__ void depth_compensation_from_cov3d_vjp(const glm::mat3 cov3d, const float eps2d, const glm::vec2 v_depth_compensation, glm::mat3 &v_cov3d) {\n    float a1 = cov3d[0][0] + eps2d;\n    float a2 = cov3d[1][0];\n    float b1 = cov3d[0][1];\n    float b2 = cov3d[1][1] + eps2d;\n    float c1 = cov3d[0][2];\n    float c2 = cov3d[1][2];\n\n    float invD = 1/(a1*b2-a2*b1);\n\n    float dc1 = (b1*c2-b2*c1) * invD;\n    float dc2 = (a2*c1-a1*c2) * invD;\n\n    v_cov3d[0][0] += (v_depth_compensation[0] * (-dc1*b2) + v_depth_compensation[1] * (-c2-dc2*b2))*invD;\n    v_cov3d[1][0] += (v_depth_compensation[0] * (dc1*b1) + v_depth_compensation[1] * (c1+dc2*b1))*invD;\n    //v_cov3d[2][0] += 0.f;\n    v_cov3d[0][1] += (v_depth_compensation[0] * (c2 + dc1*a2) + v_depth_compensation[1] * (dc2*a2))*invD;\n    v_cov3d[1][1] += (v_depth_compensation[0] * (-c1 - dc1*a1) + v_depth_compensation[1] * (-dc2*a1))*invD;\n    //v_cov3d[2][1] += 0.f;\n    v_cov3d[0][2] += (v_depth_compensation[0] * (-b2) + v_depth_compensation[1] * (a2))*invD;\n    v_cov3d[1][2] += (v_depth_compensation[0] * (b1) + v_depth_compensation[1] * (-a1))*invD;\n    //v_cov3d[2][2] += 0.f;\n}\n\ninline __device__ glm::mat3 quat_to_rotmat(const glm::vec4 quat) {\n    float w = quat[0], x = quat[1], y = quat[2], z = quat[3];\n    // normalize\n    float inv_norm = rnorm4df(x, y, z, w);\n    x *= inv_norm;\n    y *= inv_norm;\n    z *= inv_norm;\n    w *= inv_norm;\n    float x2 = x * x, y2 = y * y, z2 = z * z;\n    float xy = x * y, xz = x * z, yz = y * z;\n    float wx = w * x, wy = w * y, wz = w * z;\n    return glm::mat3((1.f - 2.f * (y2 + z2)), (2.f * (xy + wz)),\n                     (2.f * (xz - wy)), // 1st col\n                     (2.f * (xy - wz)), (1.f - 2.f * (x2 + z2)),\n                     (2.f * (yz + wx)), // 2nd col\n                     (2.f * (xz + wy)), (2.f * (yz - wx)),\n                     (1.f - 2.f * (x2 + y2)) // 3rd col\n    );\n}\n\ninline __device__ void quat_to_rotmat_vjp(const glm::vec4 quat, const glm::mat3 v_R,\n                                          glm::vec4 &v_quat) {\n    float w = quat[0], x = quat[1], y = quat[2], z = quat[3];\n    // normalize\n    float inv_norm = rnorm4df(x, y, z, w);\n    x *= inv_norm;\n    y *= inv_norm;\n    z *= inv_norm;\n    w *= inv_norm;\n    glm::vec4 v_quat_n = glm::vec4(\n        2.f * (x * (v_R[1][2] - v_R[2][1]) + y * (v_R[2][0] - v_R[0][2]) +\n               z * (v_R[0][1] - v_R[1][0])),\n        2.f * (-2.f * x * (v_R[1][1] + v_R[2][2]) + y * (v_R[0][1] + v_R[1][0]) +\n               z * (v_R[0][2] + v_R[2][0]) + w * (v_R[1][2] - v_R[2][1])),\n        2.f * (x * (v_R[0][1] + v_R[1][0]) - 2.f * y * (v_R[0][0] + v_R[2][2]) +\n               z * (v_R[1][2] + v_R[2][1]) + w * (v_R[2][0] - v_R[0][2])),\n        2.f * (x * (v_R[0][2] + v_R[2][0]) + y * (v_R[1][2] + v_R[2][1]) -\n               2.f * z * (v_R[0][0] + v_R[1][1]) + w * (v_R[0][1] - v_R[1][0])));\n\n    glm::vec4 quat_n = glm::vec4(w, x, y, z);\n    v_quat += (v_quat_n - glm::dot(v_quat_n, quat_n) * quat_n) * inv_norm;\n}\n\ninline __device__ void quat_scale_to_covar_preci(const glm::vec4 quat,\n                                                 const glm::vec3 scale,\n                                                 // optional outputs\n                                                 glm::mat3 *covar, glm::mat3 *preci) {\n    glm::mat3 R = quat_to_rotmat(quat);\n    if (covar != nullptr) {\n        // C = R * S * S * Rt\n        glm::mat3 S =\n            glm::mat3(scale[0], 0.f, 0.f, 0.f, scale[1], 0.f, 0.f, 0.f, scale[2]);\n        glm::mat3 M = R * S;\n        *covar = M * glm::transpose(M);\n    }\n    if (preci != nullptr) {\n        // P = R * S^-1 * S^-1 * Rt\n        glm::mat3 S = glm::mat3(1.0f / scale[0], 0.f, 0.f, 0.f, 1.0f / scale[1], 0.f,\n                                0.f, 0.f, 1.0f / scale[2]);\n        glm::mat3 M = R * S;\n        *preci = M * glm::transpose(M);\n    }\n}\n\ninline __device__ void quat_scale_to_covar_vjp(\n    // fwd inputs\n    const glm::vec4 quat, const glm::vec3 scale,\n    // precompute\n    const glm::mat3 R,\n    // grad outputs\n    const glm::mat3 v_covar,\n    // grad inputs\n    glm::vec4 &v_quat, glm::vec3 &v_scale) {\n    float w = quat[0], x = quat[1], y = quat[2], z = quat[3];\n    float sx = scale[0], sy = scale[1], sz = scale[2];\n\n    // M = R * S\n    glm::mat3 S = glm::mat3(sx, 0.f, 0.f, 0.f, sy, 0.f, 0.f, 0.f, sz);\n    glm::mat3 M = R * S;\n\n    // https://math.stackexchange.com/a/3850121\n    // for D = W * X, G = df/dD\n    // df/dW = G * XT, df/dX = WT * G\n    // so\n    // for D = M * Mt,\n    // df/dM = df/dM + df/dMt = G * M + (Mt * G)t = G * M + Gt * M\n    glm::mat3 v_M = (v_covar + glm::transpose(v_covar)) * M;\n    glm::mat3 v_R = v_M * S;\n\n    // grad for (quat, scale) from covar\n    quat_to_rotmat_vjp(quat, v_R, v_quat);\n\n    v_scale[0] += R[0][0] * v_M[0][0] + R[0][1] * v_M[0][1] + R[0][2] * v_M[0][2];\n    v_scale[1] += R[1][0] * v_M[1][0] + R[1][1] * v_M[1][1] + R[1][2] * v_M[1][2];\n    v_scale[2] += R[2][0] * v_M[2][0] + R[2][1] * v_M[2][1] + R[2][2] * v_M[2][2];\n}\n\ninline __device__ void quat_scale_to_preci_vjp(\n    // fwd inputs\n    const glm::vec4 quat, const glm::vec3 scale,\n    // precompute\n    const glm::mat3 R,\n    // grad outputs\n    const glm::mat3 v_preci,\n    // grad inputs\n    glm::vec4 &v_quat, glm::vec3 &v_scale) {\n    float w = quat[0], x = quat[1], y = quat[2], z = quat[3];\n    float sx = 1.0f / scale[0], sy = 1.0f / scale[1], sz = 1.0f / scale[2];\n\n    // M = R * S\n    glm::mat3 S = glm::mat3(sx, 0.f, 0.f, 0.f, sy, 0.f, 0.f, 0.f, sz);\n    glm::mat3 M = R * S;\n\n    // https://math.stackexchange.com/a/3850121\n    // for D = W * X, G = df/dD\n    // df/dW = G * XT, df/dX = WT * G\n    // so\n    // for D = M * Mt,\n    // df/dM = df/dM + df/dMt = G * M + (Mt * G)t = G * M + Gt * M\n    glm::mat3 v_M = (v_preci + glm::transpose(v_preci)) * M;\n    glm::mat3 v_R = v_M * S;\n\n    // grad for (quat, scale) from preci\n    quat_to_rotmat_vjp(quat, v_R, v_quat);\n\n    v_scale[0] +=\n        -sx * sx * (R[0][0] * v_M[0][0] + R[0][1] * v_M[0][1] + R[0][2] * v_M[0][2]);\n    v_scale[1] +=\n        -sy * sy * (R[1][0] * v_M[1][0] + R[1][1] * v_M[1][1] + R[1][2] * v_M[1][2]);\n    v_scale[2] +=\n        -sz * sz * (R[2][0] * v_M[2][0] + R[2][1] * v_M[2][1] + R[2][2] * v_M[2][2]);\n}\n\ninline __device__ void persp_proj(\n    // inputs\n    const glm::vec3 mean3d, const glm::mat3 cov3d, const float fx, const float fy,\n    const float cx, const float cy, const uint32_t width, const uint32_t height,\n    // outputs\n    glm::mat2 &cov2d, glm::vec2 &mean2d) {\n    float x = mean3d[0], y = mean3d[1], z = mean3d[2];\n\n    float tan_fovx = 0.5f * width / fx;\n    float tan_fovy = 0.5f * height / fy;\n    float lim_x_pos = (width - cx) / fx + 0.3f * tan_fovx;\n    float lim_x_neg = cx / fx + 0.3f * tan_fovx;\n    float lim_y_pos = (height - cy) / fy + 0.3f * tan_fovy;\n    float lim_y_neg = cy / fy + 0.3f * tan_fovy;\n\n    float rz = 1.f / z;\n    float rz2 = rz * rz;\n    float tx = z * min(lim_x_pos, max(-lim_x_neg, x * rz));\n    float ty = z * min(lim_y_pos, max(-lim_y_neg, y * rz));\n\n    // mat3x2 is 3 columns x 2 rows.\n    glm::mat3x2 J = glm::mat3x2(fx * rz, 0.f,                  // 1st column\n                                0.f, fy * rz,                  // 2nd column\n                                -fx * tx * rz2, -fy * ty * rz2 // 3rd column\n    );\n    cov2d = J * cov3d * glm::transpose(J);\n    mean2d = glm::vec2({fx * x * rz + cx, fy * y * rz + cy});\n}\n\ninline __device__ void persp_proj_vjp(\n    // fwd inputs\n    const glm::vec3 mean3d, const glm::mat3 cov3d, const float fx, const float fy,\n    const float cx, const float cy, const uint32_t width, const uint32_t height,\n    // grad outputs\n    const glm::mat2 v_cov2d, const glm::vec2 v_mean2d,\n    // grad inputs\n    glm::vec3 &v_mean3d, glm::mat3 &v_cov3d) {\n    float x = mean3d[0], y = mean3d[1], z = mean3d[2];\n\n    float tan_fovx = 0.5f * width / fx;\n    float tan_fovy = 0.5f * height / fy;\n    float lim_x_pos = (width - cx) / fx + 0.3f * tan_fovx;\n    float lim_x_neg = cx / fx + 0.3f * tan_fovx;\n    float lim_y_pos = (height - cy) / fy + 0.3f * tan_fovy;\n    float lim_y_neg = cy / fy + 0.3f * tan_fovy;\n\n    float rz = 1.f / z;\n    float rz2 = rz * rz;\n    float tx = z * min(lim_x_pos, max(-lim_x_neg, x * rz));\n    float ty = z * min(lim_y_pos, max(-lim_y_neg, y * rz));\n\n    // mat3x2 is 3 columns x 2 rows.\n    glm::mat3x2 J = glm::mat3x2(fx * rz, 0.f,                  // 1st column\n                                0.f, fy * rz,                  // 2nd column\n                                -fx * tx * rz2, -fy * ty * rz2 // 3rd column\n    );\n\n    // cov = J * V * Jt; G = df/dcov = v_cov\n    // -> df/dV = Jt * G * J\n    // -> df/dJ = G * J * Vt + Gt * J * V\n    v_cov3d += glm::transpose(J) * v_cov2d * J;\n\n    // df/dx = fx * rz * df/dpixx\n    // df/dy = fy * rz * df/dpixy\n    // df/dz = - fx * mean.x * rz2 * df/dpixx - fy * mean.y * rz2 * df/dpixy\n    v_mean3d += glm::vec3(fx * rz * v_mean2d[0], fy * rz * v_mean2d[1],\n                          -(fx * x * v_mean2d[0] + fy * y * v_mean2d[1]) * rz2);\n\n    // df/dx = -fx * rz2 * df/dJ_02\n    // df/dy = -fy * rz2 * df/dJ_12\n    // df/dz = -fx * rz2 * df/dJ_00 - fy * rz2 * df/dJ_11\n    //         + 2 * fx * tx * rz3 * df/dJ_02 + 2 * fy * ty * rz3\n    float rz3 = rz2 * rz;\n    glm::mat3x2 v_J =\n        v_cov2d * J * glm::transpose(cov3d) + glm::transpose(v_cov2d) * J * cov3d;\n\n    // fov clipping\n    if (x * rz <= lim_x_pos && x * rz >= -lim_x_neg) {\n        v_mean3d.x += -fx * rz2 * v_J[2][0];\n    } else {\n        v_mean3d.z += -fx * rz3 * v_J[2][0] * tx;\n    }\n    if (y * rz <= lim_y_pos && y * rz >= -lim_y_neg) {\n        v_mean3d.y += -fy * rz2 * v_J[2][1];\n    } else {\n        v_mean3d.z += -fy * rz3 * v_J[2][1] * ty;\n    }\n    v_mean3d.z += -fx * rz2 * v_J[0][0] - fy * rz2 * v_J[1][1] +\n                  2.f * fx * tx * rz3 * v_J[2][0] + 2.f * fy * ty * rz3 * v_J[2][1];\n}\n\ninline __device__ void lidar_proj(\n    const glm::vec3& __restrict__ mean3d,\n    const glm::mat3& __restrict__ cov3d,\n    const float eps2d,\n    glm::vec2 &mean2d,\n    glm::mat2 &cov2d,\n    glm::vec2 &depth_compensation,\n    glm::mat3 &jacobian\n) {\n    const float x2 = mean3d.x * mean3d.x;\n    const float y2 = mean3d.y * mean3d.y;\n    const float z2 = mean3d.z * mean3d.z;\n    const float xz = mean3d.x * mean3d.z;\n    const float yz = mean3d.y * mean3d.z;\n    const float r2 = x2 + y2 + z2;\n    const float rinv = rnorm3df(mean3d.x, mean3d.y, mean3d.z);\n    const float sqrtx2y2 = hypotf(mean3d.x, mean3d.y);\n    const float sqrtx2y2_inv = rhypotf(mean3d.x, mean3d.y);\n    const float r2sqrtx2y2_inv = 1.f / (r2) * sqrtx2y2_inv;\n    // column major\n    // we only care about the top 2x2 submatrix\n    jacobian = glm::mat3(\n        -mean3d.y / (x2 + y2) * RAD_TO_DEG, -xz * r2sqrtx2y2_inv * RAD_TO_DEG, mean3d.x * rinv, // 1st column\n        mean3d.x / (x2 + y2)  * RAD_TO_DEG, -yz * r2sqrtx2y2_inv * RAD_TO_DEG, mean3d.y * rinv, // 2nd column\n        0.f                               , sqrtx2y2 / r2  * RAD_TO_DEG      , mean3d.z * rinv  // 3rd column\n    );\n\n    glm::mat3 cov3d_spherical = jacobian * cov3d * glm::transpose(jacobian);\n\n    cov2d = glm::mat2(cov3d_spherical[0][0], cov3d_spherical[0][1],\n                      cov3d_spherical[1][0], cov3d_spherical[1][1]);\n\n    mean2d = glm::vec2(\n        glm::atan(mean3d.y, mean3d.x) * RAD_TO_DEG, glm::asin(mean3d.z * rinv) * RAD_TO_DEG\n    );\n\n    depth_compensation_from_cov3d(cov3d_spherical, eps2d, depth_compensation);\n}\n\ninline __device__ void lidar_proj_vjp(\n    // fwd inputs\n    const glm::vec3 mean3d, const glm::mat3 cov3d, const float eps2d,\n    // grad outputs\n    const glm::vec2 v_mean2d, const glm::mat2 v_cov2d, const glm::vec2 v_depth_compensation,\n    // grad inputs\n    glm::vec3 &v_mean3d, glm::mat3 &v_cov3d) {\n\n    const float x2 = mean3d.x * mean3d.x;\n    const float y2 = mean3d.y * mean3d.y;\n    const float z2 = mean3d.z * mean3d.z;\n    const float r2 = x2 + y2 + z2;\n    const float rinv = rnorm3df(mean3d.x, mean3d.y, mean3d.z);\n    const float sqrtx2y2 = hypotf(mean3d.x, mean3d.y);\n    const float sqrtx2y2_inv = rhypotf(mean3d.x, mean3d.y);\n    const float xy = mean3d.x * mean3d.y;\n    const float xz = mean3d.x * mean3d.z;\n    const float yz = mean3d.y * mean3d.z;\n    const float r2sqrtx2y2_inv = 1 / (r2) * sqrtx2y2_inv;\n\n    // column major, mat3x2 is 3 columns x 2 rows.\n    glm::mat3x2 J = glm::mat3x2(\n        -mean3d.y / (x2 + y2), -xz * r2sqrtx2y2_inv, // 1st column\n        mean3d.x / (x2 + y2) , -yz * r2sqrtx2y2_inv, // 2nd column\n        0.f                  , sqrtx2y2 / r2     // 3rd column\n    ) * RAD_TO_DEG;\n\n    glm::mat3 J3x3 = glm::mat3(\n        J[0][0], J[0][1], mean3d.x * rinv,\n        J[1][0], J[1][1], mean3d.y * rinv,\n        J[2][0], J[2][1], mean3d.z * rinv\n    );\n\n    glm::mat3 cov3d_spherical = J3x3 * cov3d * glm::transpose(J3x3);\n    glm::mat3 v_cov3d_spherical(0.f);\n    depth_compensation_from_cov3d_vjp(cov3d_spherical, eps2d, v_depth_compensation, v_cov3d_spherical);\n    v_cov3d += glm::transpose(J3x3) * v_cov3d_spherical * J3x3;\n\n    // cov = J * V * Jt; G = df/dcov = v_cov\n    // -> df/dV = Jt * G * J\n    // -> df/dJ = G * J * Vt + Gt * J * V\n    v_cov3d += glm::transpose(J) * v_cov2d * J;\n\n    v_mean3d += v_mean2d * J;\n    // glm::vec3(\n    //     -mean3d.y/(x2y2)*v_mean2d.x - mean3d.x*mean3d.z/r2sqrtx2y2*v_mean2d.y,\n    //     mean3d.x/x2y2 * v_mean2d.x - mean3d.y*mean3d.z/r2sqrtx2y2*v_mean2d.y,\n    //     sqrtx2y2/r2*v_mean2d.y\n    // );\n\n    const float x2plusy2 = x2 + y2;\n    const float x2plusy2squared = x2plusy2 * x2plusy2;\n    const float x2plusy2sqrt3andahalf = sqrtx2y2 * x2plusy2;\n    const float x4 = x2 * x2;\n    const float y4 = y2 * y2;\n    const float r4 = r2 * r2;\n    const float xyz = mean3d.x * mean3d.y * mean3d.z;\n    const float denom1 = 1.f / (x2plusy2sqrt3andahalf * r4);\n    const float denom2 = 1.f / r4 * sqrtx2y2_inv;\n    const float r3_inv = 1.f / r2 * rinv;\n\n    glm::mat3x2 v_J =\n        v_cov2d * J * glm::transpose(cov3d) + glm::transpose(v_cov2d) * J * cov3d;\n\n    glm::mat3 v_J3x3 = v_cov3d_spherical * J3x3 * glm::transpose(cov3d) + glm::transpose(v_cov3d_spherical) * J3x3 * cov3d;\n    v_mean3d.x += (\n        2.f * mean3d.x * mean3d.y / x2plusy2squared * (v_J[0][0] + v_J3x3[0][0])\n        + (y2 - x2) / x2plusy2squared * (v_J[1][0] + v_J3x3[1][0])\n        + 0.f * (v_J[2][0] + v_J3x3[2][0])\n        + mean3d.z * (2.f*x4 + x2*y2 - y2*(y2 + z2)) * denom1 * (v_J[0][1] + v_J3x3[0][1])\n        + xyz * (3.f*x2 + 3.f*y2 + z2) * denom1 * (v_J[1][1] + v_J3x3[1][1])\n        - mean3d.x * (x2 + y2 - z2) * denom2 * (v_J[2][1]+v_J3x3[2][1])\n        ) * RAD_TO_DEG;\n        v_mean3d.x += (\n            (y2 + z2) * r3_inv * v_J3x3[0][2] \n            - xy * r3_inv * v_J3x3[1][2] \n            - xz * r3_inv * v_J3x3[2][2]);\n\n    v_mean3d.y += (\n        (y2 - x2) / x2plusy2squared * (v_J[0][0] + v_J3x3[0][0])\n        - 2.f * mean3d.x * mean3d.y / x2plusy2squared * (v_J[1][0] + v_J3x3[1][0])\n        + 0.f * (v_J[2][0] + v_J3x3[2][0])\n        + xyz * (3.f*x2 + 3.f*y2 + z2) * denom1 * (v_J[0][1] + v_J3x3[0][1])\n        - mean3d.z * (x4 + x2*(z2-y2)-2.f*y4) * denom1 * (v_J[1][1] + v_J3x3[1][1])\n        - mean3d.y * (x2 + y2 - z2) * denom2 * (v_J[2][1] + v_J3x3[2][1])\n        ) * RAD_TO_DEG;\n    v_mean3d.y += (\n        - xy * r3_inv * v_J3x3[0][2]\n        + (x2 + z2) * r3_inv * v_J3x3[1][2] \n        - yz * r3_inv * v_J3x3[2][2]\n    );\n\n    v_mean3d.z += (\n        0.f * (v_J[0][0] + v_J3x3[0][0])\n        + 0.f * (v_J[1][0] + v_J3x3[1][0])\n        + 0.f * (v_J[2][0] + v_J3x3[2][0])\n        - mean3d.x * (x2 + y2 -z2) * denom2 * (v_J[0][1] + v_J3x3[0][1])\n        - mean3d.y * (x2 + y2 -z2) * denom2 * (v_J[1][1] + v_J3x3[1][1])\n        - 2.f*mean3d.z * sqrtx2y2 / r4 * (v_J[2][1] + v_J3x3[2][1])\n        ) * RAD_TO_DEG;\n    v_mean3d.z += (\n        - xz * r3_inv * v_J3x3[0][2]\n        - yz * r3_inv * v_J3x3[1][2]\n        + (x2 + y2) * r3_inv * v_J3x3[2][2]\n    );\n\n}\n\ninline __device__ void vel_world_to_cam(\n    // [R] is the world-to-camera rotation\n    const glm::mat3 R, const glm::vec3 vel, glm::vec3 &vel_c) {\n    vel_c = R * vel;\n}\n\ninline __device__ void vel_world_to_cam_vjp(\n    // fwd inputs\n    const glm::mat3 R, const glm::vec3 vel,\n    // grad outputs\n    const glm::vec3 v_vel_c,\n    // grad inputs\n    glm::mat3 &v_R, glm::vec3 &v_vel) {\n    // for D = W * X, G = df/dD\n    // df/dW = G * XT, df/dX = WT * G\n    v_R += glm::outerProduct(v_vel_c, vel);\n    v_vel += glm::transpose(R) * v_vel_c;\n}\n\ninline __device__ void pos_world_to_cam(\n    // [R, t] is the world-to-camera transformation\n    const glm::mat3 R, const glm::vec3 t, const glm::vec3 p, glm::vec3 &p_c) {\n    p_c = R * p + t;\n}\n\ninline __device__ void pos_world_to_cam_vjp(\n    // fwd inputs\n    const glm::mat3 R, const glm::vec3 t, const glm::vec3 p,\n    // grad outputs\n    const glm::vec3 v_p_c,\n    // grad inputs\n    glm::mat3 &v_R, glm::vec3 &v_t, glm::vec3 &v_p) {\n    // for D = W * X, G = df/dD\n    // df/dW = G * XT, df/dX = WT * G\n    v_R += glm::outerProduct(v_p_c, p);\n    v_t += v_p_c;\n    v_p += glm::transpose(R) * v_p_c;\n}\n\ninline __device__ void covar_world_to_cam(\n    // [R, t] is the world-to-camera transformation\n    const glm::mat3 R, const glm::mat3 covar, glm::mat3 &covar_c) {\n    covar_c = R * covar * glm::transpose(R);\n}\n\ninline __device__ void covar_world_to_cam_vjp(\n    // fwd inputs\n    const glm::mat3 R, const glm::mat3 covar,\n    // grad outputs\n    const glm::mat3 v_covar_c,\n    // grad inputs\n    glm::mat3 &v_R, glm::mat3 &v_covar) {\n    // for D = W * X * WT, G = df/dD\n    // df/dX = WT * G * W\n    // df/dW\n    // = G * (X * WT)T + ((W * X)T * G)T\n    // = G * W * XT + (XT * WT * G)T\n    // = G * W * XT + GT * W * X\n    v_R +=\n        v_covar_c * R * glm::transpose(covar) + glm::transpose(v_covar_c) * R * covar;\n    v_covar += glm::transpose(R) * v_covar_c * R;\n}\n\ninline __device__ float inverse(const glm::mat2 M, glm::mat2 &Minv) {\n    float det = M[0][0] * M[1][1] - M[0][1] * M[1][0];\n    if (det <= 0.f) {\n        return det;\n    }\n    float invDet = 1.f / det;\n    Minv[0][0] = M[1][1] * invDet;\n    Minv[0][1] = -M[0][1] * invDet;\n    Minv[1][0] = Minv[0][1];\n    Minv[1][1] = M[0][0] * invDet;\n    return det;\n}\n\ntemplate <class T>\ninline __device__ void inverse_vjp(const T Minv, const T v_Minv, T &v_M) {\n    // P = M^-1\n    // df/dM = -P * df/dP * P\n    v_M += -Minv * v_Minv * Minv;\n}\n\ninline __device__ float add_blur(const float eps2d, glm::mat2 &covar,\n                                 float &compensation) {\n    float det_orig = covar[0][0] * covar[1][1] - covar[0][1] * covar[1][0];\n    covar[0][0] += eps2d;\n    covar[1][1] += eps2d;\n    float det_blur = covar[0][0] * covar[1][1] - covar[0][1] * covar[1][0];\n    compensation = sqrt(max(0.f, det_orig / det_blur));\n    return det_blur;\n}\n\ninline __device__ void add_blur_vjp(const float eps2d, const glm::mat2 conic_blur,\n                                    const float compensation,\n                                    const float v_compensation, glm::mat2 &v_covar) {\n    // comp = sqrt(det(covar) / det(covar_blur))\n\n    // d [det(M)] / d M = adj(M)\n    // d [det(M + aI)] / d M  = adj(M + aI) = adj(M) + a * I\n    // d [det(M) / det(M + aI)] / d M\n    // = (det(M + aI) * adj(M) - det(M) * adj(M + aI)) / (det(M + aI))^2\n    // = adj(M) / det(M + aI) - adj(M + aI) / det(M + aI) * comp^2\n    // = (adj(M) - adj(M + aI) * comp^2) / det(M + aI)\n    // given that adj(M + aI) = adj(M) + a * I\n    // = (adj(M + aI) - aI - adj(M + aI) * comp^2) / det(M + aI)\n    // given that adj(M) / det(M) = inv(M)\n    // = (1 - comp^2) * inv(M + aI) - aI / det(M + aI)\n    // given det(inv(M)) = 1 / det(M)\n    // = (1 - comp^2) * inv(M + aI) - aI * det(inv(M + aI))\n    // = (1 - comp^2) * conic_blur - aI * det(conic_blur)\n\n    float det_conic_blur =\n        conic_blur[0][0] * conic_blur[1][1] - conic_blur[0][1] * conic_blur[1][0];\n    float v_sqr_comp = v_compensation * 0.5 / (compensation + 1e-6);\n    float one_minus_sqr_comp = 1 - compensation * compensation;\n    v_covar[0][0] +=\n        v_sqr_comp * (one_minus_sqr_comp * conic_blur[0][0] - eps2d * det_conic_blur);\n    v_covar[0][1] += v_sqr_comp * (one_minus_sqr_comp * conic_blur[0][1]);\n    v_covar[1][0] += v_sqr_comp * (one_minus_sqr_comp * conic_blur[1][0]);\n    v_covar[1][1] +=\n        v_sqr_comp * (one_minus_sqr_comp * conic_blur[1][1] - eps2d * det_conic_blur);\n}\n\ninline __device__ float angle_difference(const float angle1, const float angle2) {\n    float diff = fmodf((angle1 - angle2 + 180.f), 360.f) - 180.f;\n    return diff < -180.f ? diff + 360.f : diff;\n}\n\n#endif // GSPLAT_CUDA_UTILS_H"
  },
  {
    "path": "gsplat/distributed.py",
    "content": "import os\nfrom typing import Any, Callable, List, Optional, Union\n\nimport torch\nimport torch.distributed as dist\nimport torch.distributed.nn.functional as distF\nfrom torch import Tensor\n\n\ndef all_gather_int32(\n    world_size: int, value: Union[int, Tensor], device: Optional[torch.device] = None\n) -> List[int]:\n    \"\"\"Gather an 32-bit integer from all ranks.\n\n    .. note::\n        This implementation is faster than using `torch.distributed.all_gather_object`.\n\n    .. note::\n        This function is not differentiable to the input tensor.\n\n    Args:\n        world_size: The total number of ranks.\n        value: The integer to gather. Could be a scalar or a tensor.\n        device: Only required if `value` is a scalar. The device to put the tensor on.\n\n    Returns:\n        A list of integers, where the i-th element is the value from the i-th rank.\n        Could be a list of scalars or tensors based on the input `value`.\n    \"\"\"\n    if world_size == 1:\n        return [value]\n\n    # move to CUDA\n    if isinstance(value, int):\n        assert device is not None, \"device is required for scalar input\"\n        value_tensor = torch.tensor(value, dtype=torch.int, device=device)\n    else:\n        value_tensor = value\n    assert value_tensor.is_cuda, \"value should be on CUDA\"\n\n    # gather\n    collected = torch.empty(\n        world_size, dtype=value_tensor.dtype, device=value_tensor.device\n    )\n    dist.all_gather_into_tensor(collected, value_tensor)\n\n    if isinstance(value, int):\n        # return as list of integers on CPU\n        return collected.tolist()\n    else:\n        # return as list of single-element tensors\n        return collected.unbind()\n\n\ndef all_to_all_int32(\n    world_size: int,\n    values: List[Union[int, Tensor]],\n    device: Optional[torch.device] = None,\n) -> List[int]:\n    \"\"\"Exchange 32-bit integers between all ranks in a many-to-many fashion.\n\n    .. note::\n        This function is not differentiable to the input tensors.\n\n    Args:\n        world_size: The total number of ranks.\n        values: A list of integers to exchange. Could be a list of scalars or tensors.\n            Should have the same length as `world_size`.\n        device: Only required if `values` contains scalars. The device to put the tensors on.\n\n    Returns:\n        A list of integers. Could be a list of scalars or tensors based on the input `values`.\n        Have the same length as `world_size`.\n    \"\"\"\n    if world_size == 1:\n        return values\n\n    assert (\n        len(values) == world_size\n    ), \"The length of values should be equal to world_size\"\n\n    if any(isinstance(v, int) for v in values):\n        assert device is not None, \"device is required for scalar input\"\n\n    # move to CUDA\n    values_tensor = [\n        (torch.tensor(v, dtype=torch.int, device=device) if isinstance(v, int) else v)\n        for v in values\n    ]\n\n    # all_to_all\n    collected = [torch.empty_like(v) for v in values_tensor]\n    dist.all_to_all(collected, values_tensor)\n\n    # return as a list of integers or tensors, based on the input\n    return [\n        v.item() if isinstance(tensor, int) else v\n        for v, tensor in zip(collected, values)\n    ]\n\n\ndef all_gather_tensor_list(world_size: int, tensor_list: List[Tensor]) -> List[Tensor]:\n    \"\"\"Gather a list of tensors from all ranks.\n\n    .. note::\n        This function expects the tensors in the `tensor_list` to have the same shape\n        and data type across all ranks.\n\n    .. note::\n        This function is differentiable to the tensors in `tensor_list`.\n\n    .. note::\n        For efficiency, this function internally concatenates the tensors in `tensor_list`\n        and performs a single gather operation. Thus it requires all tensors in the list\n        to have the same first-dimension size.\n\n    Args:\n        world_size: The total number of ranks.\n        tensor_list: A list of tensors to gather. The size of the first dimension of all\n            the tensors in this list should be the same. The rest dimensions can be\n            arbitrary. Shape: [(N, *), (N, *), ...]\n\n    Returns:\n        A list of tensors gathered from all ranks, where the i-th element is corresponding\n        to the i-th tensor in `tensor_list`. The returned tensors have the shape\n        [(N * world_size, *), (N * world_size, *), ...]\n\n    Examples:\n\n    .. code-block:: python\n\n        >>> # on rank 0\n        >>> # tensor_list = [torch.tensor([1, 2, 3]), torch.tensor([4, 5, 6])]\n        >>> # on rank 1\n        >>> # tensor_list = [torch.tensor([7, 8, 9]), torch.tensor([10, 11, 12])]\n        >>> collected = all_gather_tensor_list(world_rank, world_size, tensor_list)\n        >>> # on both ranks\n        >>> # [torch.tensor([1, 2, 3, 7, 8, 9]), torch.tensor([4, 5, 6, 10, 11, 12])]\n\n    \"\"\"\n    if world_size == 1:\n        return tensor_list\n\n    N = len(tensor_list[0])\n    for tensor in tensor_list:\n        assert len(tensor) == N, \"All tensors should have the same first dimension size\"\n\n    # concatenate tensors and record their sizes\n    data = torch.cat([t.reshape(N, -1) for t in tensor_list], dim=-1)\n    sizes = [t.numel() // N for t in tensor_list]\n\n    if data.requires_grad:\n        # differentiable gather\n        collected = distF.all_gather(data)\n    else:\n        # non-differentiable gather\n        collected = [torch.empty_like(data) for _ in range(world_size)]\n        torch.distributed.all_gather(collected, data)\n    collected = torch.cat(collected, dim=0)\n\n    # split the collected tensor and reshape to the original shape\n    out_tensor_tuple = torch.split(collected, sizes, dim=-1)\n    out_tensor_list = []\n    for out_tensor, tensor in zip(out_tensor_tuple, tensor_list):\n        out_tensor = out_tensor.view(-1, *tensor.shape[1:])  # [N * world_size, *]\n        out_tensor_list.append(out_tensor)\n    return out_tensor_list\n\n\ndef all_to_all_tensor_list(\n    world_size: int,\n    tensor_list: List[Tensor],\n    splits: List[Union[int, Tensor]],\n    output_splits: Optional[List[Union[int, Tensor]]] = None,\n) -> List[Tensor]:\n    \"\"\"Split and exchange tensors between all ranks in a many-to-many fashion.\n\n    Args:\n        world_size: The total number of ranks.\n        tensor_list: A list of tensors to split and exchange. The size of the first\n            dimension of all the tensors in this list should be the same. The rest\n            dimensions can be arbitrary. Shape: [(N, *), (N, *), ...]\n        splits: A list of integers representing the number of elements to send to each\n            rank. It will be used to split the tensor in the `tensor_list`.\n            The sum of the elements in this list should be equal to N. The size of this\n            list should be equal to the `world_size`.\n        output_splits: Splits of the output tensors. Could be pre-calculated via\n            `all_to_all_int32(world_size, splits)`. If not provided, it will\n            be calculated internally.\n\n    Returns:\n        A list of tensors exchanged between all ranks, where the i-th element is\n        corresponding to the i-th tensor in `tensor_list`. Note the shape of the\n        returned tensors might be different from the input tensors, depending on the\n        splits.\n\n    Examples:\n\n    .. code-block:: python\n\n        >>> # on rank 0\n        >>> # tensor_list = [torch.tensor([1, 2, 3]), torch.tensor([4, 5, 6])]\n        >>> # splits = [2, 1]\n\n        >>> # on rank 1\n        >>> # tensor_list = [torch.tensor([7, 8]), torch.tensor([9, 10])]\n        >>> # splits = [1, 1]\n\n        >>> collected = all_to_all_tensor_list(world_rank, world_size, tensor_list, splits)\n\n        >>> # on rank 0\n        >>> # [torch.tensor([1, 2, 7]), torch.tensor([4, 5, 9])]\n        >>> # on rank 1\n        >>> # [torch.tensor([3, 8]), torch.tensor([6, 10])]\n\n    \"\"\"\n    if world_size == 1:\n        return tensor_list\n\n    N = len(tensor_list[0])\n    for tensor in tensor_list:\n        assert len(tensor) == N, \"All tensors should have the same first dimension size\"\n\n    assert (\n        len(splits) == world_size\n    ), \"The length of splits should be equal to world_size\"\n\n    # concatenate tensors and record their sizes\n    data = torch.cat([t.reshape(N, -1) for t in tensor_list], dim=-1)\n    sizes = [t.numel() // N for t in tensor_list]\n\n    # all_to_all\n    if output_splits is not None:\n        collected_splits = output_splits\n    else:\n        collected_splits = all_to_all_int32(world_size, splits, device=data.device)\n    collected = [\n        torch.empty((l, *data.shape[1:]), dtype=data.dtype, device=data.device)\n        for l in collected_splits\n    ]\n    # torch.split requires tuple of integers\n    splits = [s.item() if isinstance(s, Tensor) else s for s in splits]\n    if data.requires_grad:\n        # differentiable all_to_all\n        distF.all_to_all(collected, data.split(splits, dim=0))\n    else:\n        # non-differentiable all_to_all\n        torch.distributed.all_to_all(collected, list(data.split(splits, dim=0)))\n    collected = torch.cat(collected, dim=0)\n\n    # split the collected tensor and reshape to the original shape\n    out_tensor_tuple = torch.split(collected, sizes, dim=-1)\n    out_tensor_list = []\n    for out_tensor, tensor in zip(out_tensor_tuple, tensor_list):\n        out_tensor = out_tensor.view(-1, *tensor.shape[1:])\n        out_tensor_list.append(out_tensor)\n    return out_tensor_list\n\n\ndef _find_free_port():\n    import socket\n\n    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    # Binding to port 0 will cause the OS to find an available port for us\n    sock.bind((\"\", 0))\n    port = sock.getsockname()[1]\n    sock.close()\n    # NOTE: there is still a chance the port could be taken by other processes.\n    return port\n\n\ndef _distributed_worker(\n    world_rank: int,\n    world_size: int,\n    fn: Callable,\n    args: Any,\n    local_rank: Optional[int] = None,\n    verbose: bool = False,\n) -> bool:\n    if local_rank is None:  # single Node\n        local_rank = world_rank\n    if verbose:\n        print(\"Distributed worker: %d / %d\" % (world_rank + 1, world_size))\n    distributed = world_size > 1\n    if distributed:\n        torch.cuda.set_device(local_rank)\n        torch.distributed.init_process_group(\n            backend=\"nccl\", world_size=world_size, rank=world_rank\n        )\n        # Dump collection that participates all ranks.\n        # This initializes the communicator required by `batch_isend_irecv`.\n        # See: https://github.com/pytorch/pytorch/pull/74701\n        _ = [None for _ in range(world_size)]\n        torch.distributed.all_gather_object(_, 0)\n    fn(local_rank, world_rank, world_size, args)\n    if distributed:\n        torch.distributed.barrier()\n        torch.distributed.destroy_process_group()\n    if verbose:\n        print(\"Job Done for worker: %d / %d\" % (world_rank + 1, world_size))\n    return True\n\n\ndef cli(fn: Callable, args: Any, verbose: bool = False) -> bool:\n    \"\"\"Wrapper to run a function in a distributed environment.\n\n    The function `fn` should have the following signature:\n\n    ```python\n    def fn(local_rank: int, world_rank: int, world_size: int, args: Any) -> None:\n        pass\n    ```\n\n    Usage:\n\n    ```python\n    # Launch with \"CUDA_VISIBLE_DEVICES=0,1,2,3 python my_script.py\"\n    if __name__ == \"__main__\":\n        cli(fn, None, verbose=True)\n    ```\n    \"\"\"\n    assert torch.cuda.is_available(), \"CUDA device is required!\"\n    if \"OMPI_COMM_WORLD_SIZE\" in os.environ:  # multi-node\n        local_rank = int(os.environ[\"OMPI_COMM_WORLD_LOCAL_RANK\"])\n        world_size = int(os.environ[\"OMPI_COMM_WORLD_SIZE\"])  # dist.get_world_size()\n        world_rank = int(os.environ[\"OMPI_COMM_WORLD_RANK\"])  # dist.get_rank()\n        return _distributed_worker(\n            world_rank, world_size, fn, args, local_rank, verbose\n        )\n\n    world_size = torch.cuda.device_count()\n    distributed = world_size > 1\n\n    if distributed:\n        os.environ[\"MASTER_ADDR\"] = \"localhost\"\n        os.environ[\"MASTER_PORT\"] = str(_find_free_port())\n        process_context = torch.multiprocessing.spawn(\n            _distributed_worker,\n            args=(world_size, fn, args, None, verbose),\n            nprocs=world_size,\n            join=False,\n        )\n        try:\n            process_context.join()\n        except KeyboardInterrupt:\n            # this is important.\n            # if we do not explicitly terminate all launched subprocesses,\n            # they would continue living even after this main process ends,\n            # eventually making the OD machine unusable!\n            for i, process in enumerate(process_context.processes):\n                if process.is_alive():\n                    if verbose:\n                        print(\"terminating process \" + str(i) + \"...\")\n                    process.terminate()\n                process.join()\n                if verbose:\n                    print(\"process \" + str(i) + \" finished\")\n        return True\n    else:\n        return _distributed_worker(0, 1, fn=fn, args=args)\n"
  },
  {
    "path": "gsplat/profile.py",
    "content": "import os\nimport time\nfrom functools import wraps\nfrom typing import Callable, Optional\n\nimport torch\n\nprofiler = {}\n\n\nclass timeit(object):\n    \"\"\"Profiler that is controled by the TIMEIT environment variable.\n\n    If TIMEIT is set to 1, the profiler will measure the time taken by the decorated function.\n\n    Usage:\n\n    ```python\n    @timeit()\n    def my_function():\n        pass\n\n    # Or\n\n    with timeit(name=\"stage1\"):\n        my_function()\n\n    print(profiler)\n    ```\n    \"\"\"\n\n    def __init__(self, name: str = \"unnamed\"):\n        self.name = name\n        self.start_time: Optional[float] = None\n        self.enabled = os.environ.get(\"TIMEIT\", \"0\") == \"1\"\n\n    def __enter__(self):\n        if self.enabled:\n            torch.cuda.synchronize()\n            self.start_time = time.perf_counter()\n\n    def __exit__(self, exc_type, exc_val, exc_tb):\n        if self.enabled:\n            torch.cuda.synchronize()\n            end_time = time.perf_counter()\n            total_time = end_time - self.start_time\n            if self.name not in profiler:\n                profiler[self.name] = total_time\n            else:\n                profiler[self.name] += total_time\n\n    def __call__(self, f: Callable) -> Callable:\n        @wraps(f)\n        def decorated(*args, **kwargs):\n            with self:\n                self.name = f.__name__\n                return f(*args, **kwargs)\n\n        return decorated\n"
  },
  {
    "path": "gsplat/relocation.py",
    "content": "import math\nfrom typing import Tuple\n\nimport torch\nfrom torch import Tensor\n\nfrom .cuda._wrapper import _make_lazy_cuda_func\n\n\ndef compute_relocation(\n    opacities: Tensor,  # [N]\n    scales: Tensor,  # [N, 3]\n    ratios: Tensor,  # [N]\n    binoms: Tensor,  # [n_max, n_max]\n) -> Tuple[Tensor, Tensor]:\n    \"\"\"Compute new Gaussians from a set of old Gaussians.\n\n    This function interprets the Gaussians as samples from a likelihood distribution.\n    It uses the old opacities and scales to compute the new opacities and scales.\n    This is an implementation of the paper\n    `3D Gaussian Splatting as Markov Chain Monte Carlo <https://arxiv.org/pdf/2404.09591>`_,\n\n    Args:\n        opacities: The opacities of the Gaussians. [N]\n        scales: The scales of the Gaussians. [N, 3]\n        ratios: The relative frequencies for each of the Gaussians. [N]\n        binoms: Precomputed lookup table for binomial coefficients used in\n          Equation 9 in the paper. [n_max, n_max]\n\n    Returns:\n        A tuple:\n\n        **new_opacities**: The opacities of the new Gaussians. [N]\n        **new_scales**: The scales of the Gaussians. [N, 3]\n    \"\"\"\n\n    N = opacities.shape[0]\n    n_max, _ = binoms.shape\n    assert scales.shape == (N, 3), scales.shape\n    assert ratios.shape == (N,), ratios.shape\n    opacities = opacities.contiguous()\n    scales = scales.contiguous()\n    ratios.clamp_(min=1, max=n_max)\n    ratios = ratios.int().contiguous()\n\n    new_opacities, new_scales = _make_lazy_cuda_func(\"compute_relocation\")(\n        opacities, scales, ratios, binoms, n_max\n    )\n    return new_opacities, new_scales\n"
  },
  {
    "path": "gsplat/rendering.py",
    "content": "import math\nfrom typing import Dict, Optional, Tuple, Union\n\nimport torch\nfrom torch import Tensor\nfrom typing_extensions import Literal\n\nfrom gsplat.cuda._wrapper import fully_fused_projection\n\nfrom .cuda._wrapper import (\n    fully_fused_lidar_projection,\n    fully_fused_projection,\n    isect_lidar_tiles,\n    isect_offset_encode,\n    isect_tiles,\n    rasterize_to_pixels,\n    rasterize_to_points,\n    spherical_harmonics,\n)\n\n\ndef rasterization(\n    means: Tensor,  # [N, 3]\n    quats: Tensor,  # [N, 4]\n    scales: Tensor,  # [N, 3]\n    opacities: Tensor,  # [N]\n    colors: Tensor,  # [(C,) N, D] or [(C,) N, K, 3]\n    velocities: Optional[Tensor],  # [N, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n    linear_velocity: Optional[Tensor] = None,  # [C, 3]\n    angular_velocity: Optional[Tensor] = None,  # [C, 3]\n    rolling_shutter_time: Optional[Tensor] = None,  # [C]\n    rolling_shutter_direction: Optional[int] = 1,  # 1: top2bottom, 2: bottom2top, 3: left2right, 4: right2left, 5: no rolling shutter\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    radius_clip: float = 0.0,\n    eps2d: float = 0.3,\n    sh_degree: Optional[int] = None,\n    packed: bool = True,\n    tile_size: int = 16,\n    backgrounds: Optional[Tensor] = None,\n    render_mode: Literal[\"RGB\", \"D\", \"ED\", \"RGB+D\", \"RGB+ED\"] = \"RGB\",\n    sparse_grad: bool = False,\n    absgrad: bool = False,\n    rasterize_mode: Literal[\"classic\", \"antialiased\"] = \"classic\",\n    channel_chunk: int = 32,\n) -> Tuple[Tensor, Tensor, Dict]:\n    \"\"\"Rasterize a set of 3D Gaussians (N) to a batch of image planes (C).\n\n    This function provides a handful features for 3D Gaussian rasterization, which\n    we detail in the following notes. A complete profiling of the these features\n    can be found in the :ref:`profiling` page.\n\n    .. note::\n        **Batch Rasterization**: This function allows for rasterizing a set of 3D Gaussians\n        to a batch of images in one go, by simplly providing the batched `viewmats` and `Ks`.\n\n    .. note::\n        **Support N-D Features**: If `sh_degree` is None,\n        the `colors` is expected to be with shape [N, D] or [C, N, D], in which D is the channel of\n        the features to be rendered. The computation is slow when D > 32 at the moment.\n        If `sh_degree` is set, the `colors` is expected to be the SH coefficients with\n        shape [N, K, 3] or [C, N, K, 3], where K is the number of SH bases. In this case, it is expected\n        that :math:`(\\\\textit{sh_degree} + 1) ^ 2 \\\\leq K`, where `sh_degree` controls the\n        activated bases in the SH coefficients.\n\n    .. note::\n        **Depth Rendering**: This function supports colors or/and depths via `render_mode`.\n        The supported modes are \"RGB\", \"D\", \"ED\", \"RGB+D\", and \"RGB+ED\". \"RGB\" renders the\n        colored image that respects the `colors` argument. \"D\" renders the accumulated z-depth\n        :math:`\\\\sum_i w_i z_i`. \"ED\" renders the expected z-depth\n        :math:`\\\\frac{\\\\sum_i w_i z_i}{\\\\sum_i w_i}`. \"RGB+D\" and \"RGB+ED\" render both\n        the colored image and the depth, in which the depth is the last channel of the output.\n\n    .. note::\n        **Memory-Speed Trade-off**: The `packed` argument provides a trade-off between\n        memory footprint and runtime. If `packed` is True, the intermediate results are\n        packed into sparse tensors, which is more memory efficient but might be slightly\n        slower. This is especially helpful when the scene is large and each camera sees only\n        a small portion of the scene. If `packed` is False, the intermediate results are\n        with shape [C, N, ...], which is faster but might consume more memory.\n\n    .. note::\n        **Sparse Gradients**: If `sparse_grad` is True, the gradients for {means, quats, scales}\n        will be stored in a `COO sparse layout <https://pytorch.org/docs/stable/generated/torch.sparse_coo_tensor.html>`_.\n        This can be helpful for saving memory\n        for training when the scene is large and each iteration only activates a small portion\n        of the Gaussians. Usually a sparse optimizer is required to work with sparse gradients,\n        such as `torch.optim.SparseAdam <https://pytorch.org/docs/stable/generated/torch.optim.SparseAdam.html#sparseadam>`_.\n        This argument is only effective when `packed` is True.\n\n    .. note::\n        **Speed-up for Large Scenes**: The `radius_clip` argument is extremely helpful for\n        speeding up large scale scenes or scenes with large depth of fields. Gaussians with\n        2D radius smaller or equal than this value (in pixel unit) will be skipped during rasterization.\n        This will skip all the far-away Gaussians that are too small to be seen in the image.\n        But be warned that if there are close-up Gaussians that are also below this threshold, they will\n        also get skipped (which rarely happens in practice). This is by default disabled by setting\n        `radius_clip` to 0.0.\n\n    .. note::\n        **Antialiased Rendering**: If `rasterize_mode` is \"antialiased\", the function will\n        apply a view-dependent compensation factor\n        :math:`\\\\rho=\\\\sqrt{\\\\frac{Det(\\\\Sigma)}{Det(\\\\Sigma+ \\\\epsilon I)}}` to Gaussian\n        opacities, where :math:`\\\\Sigma` is the projected 2D covariance matrix and :math:`\\\\epsilon`\n        is the `eps2d`. This will make the rendered image more antialiased, as proposed in\n        the paper `Mip-Splatting: Alias-free 3D Gaussian Splatting <https://arxiv.org/pdf/2311.16493>`_.\n\n    .. note::\n        **AbsGrad**: If `absgrad` is True, the absolute gradients of the projected\n        2D means will be computed during the backward pass, which could be accessed by\n        `meta[\"means2d\"].absgrad`. This is an implementation of the paper\n        `AbsGS: Recovering Fine Details for 3D Gaussian Splatting <https://arxiv.org/abs/2404.10484>`_,\n        which is shown to be more effective for splitting Gaussians during training.\n\n    .. warning::\n        This function is currently not differentiable w.r.t. the camera intrinsics `Ks`.\n\n    Args:\n        means: The 3D centers of the Gaussians. [N, 3]\n        quats: The quaternions of the Gaussians. It's not required to be normalized. [N, 4]\n        scales: The scales of the Gaussians. [N, 3]\n        opacities: The opacities of the Gaussians. [N]\n        colors: The colors of the Gaussians. [(C,) N, D] or [(C,) N, K, 3] for SH coefficients.\n        velocities: The 3D velocities of the Gaussians. [N, 3]\n        viewmats: The world-to-cam transformation of the cameras. [C, 4, 4]\n        linear_velocity: The linear velocities of the cameras in world frame. [C, 3]\n        angular_velocity: The angular velocities of the cameras in their own frames. [C, 3]\n        rolling_shutter_time: The rolling shutter duration of the cameras. [C]\n        Ks: The camera intrinsics. [C, 3, 3]\n        width: The width of the image.\n        height: The height of the image.\n        near_plane: The near plane for clipping. Default is 0.01.\n        far_plane: The far plane for clipping. Default is 1e10.\n        radius_clip: Gaussians with 2D radius smaller or equal than this value will be\n            skipped. This is extremely helpful for speeding up large scale scenes.\n            Default is 0.0.\n        eps2d: An epsilon added to the egienvalues of projected 2D covariance matrices.\n            This will prevents the projected GS to be too small. For example eps2d=0.3\n            leads to minimal 3 pixel unit. Default is 0.3.\n        sh_degree: The SH degree to use, which can be smaller than the total\n            number of bands. If set, the `colors` should be [(C,) N, K, 3] SH coefficients,\n            else the `colors` should [(C,) N, D] post-activation color values. Default is None.\n        packed: Whether to use packed mode which is more memory efficient but might or\n            might not be as fast. Default is True.\n        tile_size: The size of the tiles for rasterization. Default is 16.\n            (Note: other values are not tested)\n        backgrounds: The background colors. [C, D]. Default is None.\n        render_mode: The rendering mode. Supported modes are \"RGB\", \"D\", \"ED\", \"RGB+D\",\n            and \"RGB+ED\". \"RGB\" renders the colored image, \"D\" renders the accumulated depth, and\n            \"ED\" renders the expected depth. Default is \"RGB\".\n        sparse_grad: If true, the gradients for {means, quats, scales} will be stored in\n            a COO sparse layout. This can be helpful for saving memory. Default is False.\n        absgrad: If true, the absolute gradients of the projected 2D means\n            will be computed during the backward pass, which could be accessed by\n            `meta[\"means2d\"].absgrad`. Default is False.\n        rasterize_mode: The rasterization mode. Supported modes are \"classic\" and\n            \"antialiased\". Default is \"classic\".\n        channel_chunk: The number of channels to render in one go. Default is 32.\n            If the required rendering channels are larger than this value, the rendering\n            will be done looply in chunks.\n\n    Returns:\n        A tuple:\n\n        **render_colors**: The rendered colors. [C, height, width, X].\n        X depends on the `render_mode` and input `colors`. If `render_mode` is \"RGB\",\n        X is D; if `render_mode` is \"D\" or \"ED\", X is 1; if `render_mode` is \"RGB+D\" or\n        \"RGB+ED\", X is D+1.\n\n        **render_alphas**: The rendered alphas. [C, height, width, 1].\n\n        **meta**: A dictionary of intermediate results of the rasterization.\n\n    Examples:\n\n    .. code-block:: python\n\n        >>> # define Gaussians\n        >>> means = torch.randn((100, 3), device=device)\n        >>> quats = torch.randn((100, 4), device=device)\n        >>> scales = torch.rand((100, 3), device=device) * 0.1\n        >>> colors = torch.rand((100, 3), device=device)\n        >>> opacities = torch.rand((100,), device=device)\n        >>> # define cameras\n        >>> viewmats = torch.eye(4, device=device)[None, :, :]\n        >>> Ks = torch.tensor([\n        >>>    [300., 0., 150.], [0., 300., 100.], [0., 0., 1.]], device=device)[None, :, :]\n        >>> width, height = 300, 200\n        >>> # render\n        >>> colors, alphas, meta = rasterization(\n        >>>    means, quats, scales, opacities, colors, viewmats, Ks, width, height\n        >>> )\n        >>> print (colors.shape, alphas.shape)\n        torch.Size([1, 200, 300, 3]) torch.Size([1, 200, 300, 1])\n        >>> print (meta.keys())\n        dict_keys(['camera_ids', 'gaussian_ids', 'radii', 'means2d', 'depths', 'conics',\n        'opacities', 'tile_width', 'tile_height', 'tiles_per_gauss', 'isect_ids',\n        'flatten_ids', 'isect_offsets', 'width', 'height', 'tile_size'])\n\n    \"\"\"\n\n    N = means.shape[0]\n    C = viewmats.shape[0]\n    assert means.shape == (N, 3), means.shape\n    assert quats.shape == (N, 4), quats.shape\n    assert scales.shape == (N, 3), scales.shape\n    assert opacities.shape == (N,), opacities.shape\n    if velocities is not None:\n        assert velocities.shape == (N, 3), velocities.shape\n    assert viewmats.shape == (C, 4, 4), viewmats.shape\n    assert Ks.shape == (C, 3, 3), Ks.shape\n    if linear_velocity is not None:\n        assert linear_velocity.shape == (C, 3), linear_velocity.shape\n    else:\n        linear_velocity = torch.zeros(C, 3, device=means.device)\n    if angular_velocity is not None:\n        assert angular_velocity.shape == (C, 3), angular_velocity.shape\n    else:\n        angular_velocity = torch.zeros(C, 3, device=means.device)\n    if rolling_shutter_time is not None:\n        assert rolling_shutter_time.shape == (C,), rolling_shutter_time.shape\n    else:\n        rolling_shutter_time = torch.zeros(C, device=means.device)\n    if rolling_shutter_direction is not None:\n        assert rolling_shutter_direction in (1,2,3,4,5), rolling_shutter_direction\n    else:\n        rolling_shutter_direction = 1\n    assert render_mode in [\"RGB\", \"D\", \"ED\", \"RGB+D\", \"RGB+ED\"], render_mode\n\n    if sh_degree is None:\n        # treat colors as post-activation values, should be in shape [N, D] or [C, N, D]\n        assert (colors.dim() == 2 and colors.shape[0] == N) or (\n            colors.dim() == 3 and colors.shape[:2] == (C, N)\n        ), colors.shape\n    else:\n        # treat colors as SH coefficients, should be in shape [N, K, 3] or [C, N, K, 3]\n        # Allowing for activating partial SH bands\n        assert (\n            colors.dim() == 3 and colors.shape[0] == N and colors.shape[2] == 3\n        ) or (\n            colors.dim() == 4 and colors.shape[:2] == (C, N) and colors.shape[3] == 3\n        ), colors.shape\n        assert (sh_degree + 1) ** 2 <= colors.shape[-2], colors.shape\n\n    # Project Gaussians to 2D. Directly pass in {quats, scales} is faster than precomputing covars.\n    proj_results = fully_fused_projection(\n        means,\n        None,  # covars,\n        quats,\n        scales,\n        velocities,\n        viewmats,\n        Ks,\n        width,\n        height,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n        eps2d=eps2d,\n        packed=packed,\n        near_plane=near_plane,\n        far_plane=far_plane,\n        radius_clip=radius_clip,\n        sparse_grad=sparse_grad,\n        calc_compensations=(rasterize_mode == \"antialiased\"),\n    )\n\n    if packed:\n        # The results are packed into shape [nnz, ...]. All elements are valid.\n        (\n            camera_ids,\n            gaussian_ids,\n            radii,\n            means2d,\n            depths,\n            conics,\n            compensations,\n            pix_vels,\n        ) = proj_results\n        opacities = opacities[gaussian_ids]  # [nnz]\n    else:\n        # The results are with shape [C, N, ...]. Only the elements with radii > 0 are valid.\n        radii, means2d, depths, conics, compensations, pix_vels = proj_results\n        opacities = opacities.repeat(C, 1)  # [C, N]\n        camera_ids, gaussian_ids = None, None\n\n    if compensations is not None:\n        opacities = opacities * compensations\n\n    # Identify intersecting tiles\n    tile_width = math.ceil(width / float(tile_size))\n    tile_height = math.ceil(height / float(tile_size))\n    tiles_per_gauss, isect_ids, flatten_ids = isect_tiles(\n        means2d,\n        radii,\n        depths,\n        tile_size,\n        tile_width,\n        tile_height,\n        packed=packed,\n        n_cameras=C,\n        camera_ids=camera_ids,\n        gaussian_ids=gaussian_ids,\n    )\n    isect_offsets = isect_offset_encode(isect_ids, C, tile_width, tile_height)\n\n    # Turn colors into [C, N, D] or [nnz, D] to pass into rasterize_to_pixels()\n    if sh_degree is None:\n        # Colors are post-activation values, with shape [N, D] or [C, N, D]\n        if packed:\n            if colors.dim() == 2:\n                # Turn [N, D] into [nnz, D]\n                colors = colors[gaussian_ids]\n            else:\n                # Turn [C, N, D] into [nnz, D]\n                colors = colors[camera_ids, gaussian_ids]\n        else:\n            if colors.dim() == 2:\n                # Turn [N, D] into [C, N, D]\n                colors = colors.expand(C, -1, -1)\n            else:\n                # colors is already [C, N, D]\n                pass\n    else:\n        # Colors are SH coefficients, with shape [N, K, 3] or [C, N, K, 3]\n        camtoworlds = torch.inverse(viewmats)  # [C, 4, 4]\n        if packed:\n            dirs = means[gaussian_ids, :] - camtoworlds[camera_ids, :3, 3]  # [nnz, 3]\n            masks = radii[...,0] > 0  # [nnz]\n            if colors.dim() == 3:\n                # Turn [N, K, 3] into [nnz, 3]\n                shs = colors[gaussian_ids, :, :]  # [nnz, K, 3]\n            else:\n                # Turn [C, N, K, 3] into [nnz, 3]\n                shs = colors[camera_ids, gaussian_ids, :, :]  # [nnz, K, 3]\n            colors = spherical_harmonics(sh_degree, dirs, shs, masks=masks)  # [nnz, 3]\n        else:\n            dirs = means[None, :, :] - camtoworlds[:, None, :3, 3]  # [C, N, 3]\n            masks = radii[..., 0] > 0  # [C, N]\n            if colors.dim() == 3:\n                # Turn [N, K, 3] into [C, N, 3]\n                shs = colors.expand(C, -1, -1, -1)  # [C, N, K, 3]\n            else:\n                # colors is already [C, N, K, 3]\n                shs = colors\n            colors = spherical_harmonics(sh_degree, dirs, shs, masks=masks)  # [C, N, 3]\n        # make it apple-to-apple with Inria's CUDA Backend.\n        colors = torch.clamp_min(colors + 0.5, 0.0)\n\n    # Rasterize to pixels\n    if render_mode in [\"RGB+D\", \"RGB+ED\"]:\n        colors = torch.cat((colors, depths[..., None]), dim=-1)\n        if backgrounds is not None:\n            backgrounds = torch.cat(\n                [backgrounds, torch.zeros(C, 1, device=backgrounds.device)], dim=-1\n            )\n    elif render_mode in [\"D\", \"ED\"]:\n        colors = depths[..., None]\n        if backgrounds is not None:\n            backgrounds = torch.zeros(C, 1, device=backgrounds.device)\n    else:  # RGB\n        pass\n    if colors.shape[-1] > channel_chunk:\n        # slice into chunks\n        n_chunks = (colors.shape[-1] + channel_chunk - 1) // channel_chunk\n        render_colors, render_alphas, render_medians = [], [], []\n        for i in range(n_chunks):\n            colors_chunk = colors[..., i * channel_chunk : (i + 1) * channel_chunk]\n            backgrounds_chunk = (\n                backgrounds[..., i * channel_chunk : (i + 1) * channel_chunk]\n                if backgrounds is not None\n                else None\n            )\n            render_colors_, render_alphas_, render_medians_ = rasterize_to_pixels(\n                means2d,\n                conics,\n                colors_chunk,\n                opacities,\n                pix_vels,\n                width,\n                height,\n                tile_size,\n                isect_offsets,\n                flatten_ids,\n                rolling_shutter_time,\n                rolling_shutter_direction=rolling_shutter_direction,\n                backgrounds=backgrounds_chunk,\n                packed=packed,\n                absgrad=absgrad,\n            )\n            render_colors.append(render_colors_)\n            render_alphas.append(render_alphas_)\n            render_medians.append(render_medians_)\n        render_colors = torch.cat(render_colors, dim=-1)\n        render_alphas = render_alphas[0]  # discard the rest\n        render_medians = torch.cat(render_medians, dim=-1)\n    else:\n        render_colors, render_alphas, render_medians = rasterize_to_pixels(\n            means2d,\n            conics,\n            colors,\n            opacities,\n            pix_vels,\n            width,\n            height,\n            tile_size,\n            isect_offsets,\n            flatten_ids,\n            rolling_shutter_time,\n            rolling_shutter_direction=rolling_shutter_direction,\n            backgrounds=backgrounds,\n            packed=packed,\n            absgrad=absgrad,\n        )\n    if render_mode in [\"ED\", \"RGB+ED\"]:\n        # normalize the accumulated depth to get the expected depth\n        render_colors = torch.cat(\n            [\n                render_colors[..., :-1],\n                render_colors[..., -1:] / render_alphas.clamp(min=1e-10),\n            ],\n            dim=-1,\n        )\n\n    meta = {\n        \"camera_ids\": camera_ids,\n        \"gaussian_ids\": gaussian_ids,\n        \"radii\": radii,\n        \"means2d\": means2d,\n        \"depths\": depths,\n        \"conics\": conics,\n        \"opacities\": opacities,\n        \"pix_vels\": pix_vels,\n        \"tile_width\": tile_width,\n        \"tile_height\": tile_height,\n        \"tiles_per_gauss\": tiles_per_gauss,\n        \"isect_ids\": isect_ids,\n        \"flatten_ids\": flatten_ids,\n        \"isect_offsets\": isect_offsets,\n        \"width\": width,\n        \"height\": height,\n        \"tile_size\": tile_size,\n        \"n_cameras\": C,\n        \"render_medians\": render_medians,\n    }\n    return render_colors, render_alphas, meta\n\n\ndef lidar_rasterization(\n    means: Tensor,  # [N, 3]\n    quats: Tensor,  # [N, 4]\n    scales: Tensor,  # [N, 3]\n    opacities: Tensor,  # [N]\n    lidar_features: Tensor,  # [(C,) N, D]\n    velocities: Optional[Tensor],  # [N, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n    raster_pts: Tensor,  # [C, H, W, 4]\n    tile_elevation_boundaries: Tensor,  # [n_elevation_channels//tile_height + 1]\n    linear_velocity: Optional[Tensor] = None,  # [C, 3]\n    angular_velocity: Optional[Tensor] = None,  # [C, 3]\n    rolling_shutter_time: Optional[Tensor] = None,  # [C]\n    min_azimuth: float = -180,\n    max_azimuth: float = 180,\n    min_elevation: float = -80,\n    max_elevation: float = 80,\n    n_elevation_channels: int = 32,\n    azimuth_resolution: float = 0.1,\n    tile_width: int = 32,\n    tile_height: int = 8,\n    near_plane: float = 0.01,\n    far_plane: float = 1e10,\n    radius_clip: float = 0.0,\n    eps2d: float = 0.017,\n    compute_alpha_sum_until_points: bool = True,\n    compute_alpha_sum_until_points_threshold: float = 0.2,\n    packed: bool = False,  # packed mode is not supported yet\n    sparse_grad: bool = False,\n    absgrad: bool = False,\n    rasterize_mode: Literal[\"classic\", \"antialiased\"] = \"classic\",\n    channel_chunk: int = 32,\n    use_depth_compensation: bool = True,\n) -> Tuple[Tensor, Tensor, Union[Tensor, None], Dict]:\n    \"\"\"Rasterize a set of 3D Gaussians (N) to a batch of spherical lidar range images (C).\n\n    This function provides a handful features for 3D Gaussian rasterization, which\n    we detail in the following notes.\n\n    .. note::\n        **Batch Rasterization**: This function allows for rasterizing a set of 3D Gaussians\n        to a batch of outputs in one go, by simplly providing the batched `viewmats` and `Ks`.\n\n    .. note::\n        **Memory-Speed Trade-off**: The `packed` argument provides a trade-off between\n        memory footprint and runtime. If `packed` is True, the intermediate results are\n        packed into sparse tensors, which is more memory efficient but might be slightly\n        slower. This is especially helpful when the scene is large and each camera sees only\n        a small portion of the scene. If `packed` is False, the intermediate results are\n        with shape [C, N, ...], which is faster but might consume more memory. Not currently supported.\n\n    .. note::\n        **Sparse Gradients**: If `sparse_grad` is True, the gradients for {means, quats, scales}\n        will be stored in a `COO sparse layout <https://pytorch.org/docs/stable/generated/torch.sparse_coo_tensor.html>`_.\n        This can be helpful for saving memory\n        for training when the scene is large and each iteration only activates a small portion\n        of the Gaussians. Usually a sparse optimizer is required to work with sparse gradients,\n        such as `torch.optim.SparseAdam <https://pytorch.org/docs/stable/generated/torch.optim.SparseAdam.html#sparseadam>`_.\n        This argument is only effective when `packed` is True. Not currently supported.\n\n    .. note::\n        **Speed-up for Large Scenes**: The `radius_clip` argument is extremely helpful for\n        speeding up large scale scenes or scenes with large depth of fields. Gaussians with\n        2D radius smaller or equal than this value (in degrees) will be skipped during rasterization.\n        This will skip all the far-away Gaussians that are too small to be seen in the image.\n        But be warned that if there are close-up Gaussians that are also below this threshold, they will\n        also get skipped (which rarely happens in practice). This is by default disabled by setting\n        `radius_clip` to 0.0.\n\n    .. note::\n        **Antialiased Rendering**: If `rasterize_mode` is \"antialiased\", the function will\n        apply a view-dependent compensation factor\n        :math:`\\\\rho=\\\\sqrt{\\\\frac{Det(\\\\Sigma)}{Det(\\\\Sigma+ \\\\epsilon I)}}` to Gaussian\n        opacities, where :math:`\\\\Sigma` is the projected 2D covariance matrix and :math:`\\\\epsilon`\n        is the `eps2d`. This will make the rendered output more antialiased, as proposed in\n        the paper `Mip-Splatting: Alias-free 3D Gaussian Splatting <https://arxiv.org/pdf/2311.16493>`_.\n\n    .. note::\n        **AbsGrad**: If `absgrad` is True, the absolute gradients of the projected\n        2D means will be computed during the backward pass, which could be accessed by\n        `meta[\"means2d\"].absgrad`. This is an implementation of the paper\n        `AbsGS: Recovering Fine Details for 3D Gaussian Splatting <https://arxiv.org/abs/2404.10484>`_,\n        which is shown to be more effective for splitting Gaussians during training.\n\n    Args:\n        means: The 3D centers of the Gaussians. [N, 3]\n        quats: The quaternions of the Gaussians. It's not required to be normalized. [N, 4]\n        scales: The scales of the Gaussians. [N, 3]\n        opacities: The opacities of the Gaussians. [N]\n        lidar_features: The features of the Gaussians. [(C,) N, D]\n        velocities: The 3D velocities of the Gaussians. [N, 3]\n        viewmats: The world-to-cam transformation of the lidars. [C, 4, 4]\n        raster_pts: The rasterization points. This specficies the location of the points\n            to rasterize in terms of spherical coordinates (3D), and their rolling shutter\n            times. [C, H, W, 4]\n        linear_velocity: The linear velocities of the lidars in world frame. [C, 3]\n        angular_velocity: The angular velocities of the lidars in their own frames. [C, 3]\n        rolling_shutter_time: The rolling shutter duration of the lidars. [C]\n        min_azimuth: The minimum azimuth angle. Default is -180.0.\n        max_azimuth: The maximum azimuth angle. Default is 180.0.\n        min_elevation: The minimum elevation angle. Default is -80.0.\n        max_elevation: The maximum elevation angle. Default is 80.0.\n        n_elevation_channels: The number of elevation channels. Default is 32.\n        azimuth_resolution: The azimuth angle between beams. Default is 0.1.\n        tile_width: The width of the tiles for rasterization. Default is 1.\n        tile_height: The height of the tiles for rasterization. Default is 1.\n        tile_elevation_boundaries: The elevation boundaries of the tiles. [n_elevation_channels//tile_height + 1]\n        near_plane: The near plane for clipping. Default is 0.01.\n        far_plane: The far plane for clipping. Default is 1e10.\n        radius_clip: Gaussians with 2D radius smaller or equal than this value will be\n            skipped. This is extremely helpful for speeding up large scale scenes.\n            Default is 0.0.\n        eps2d: An epsilon added to the egienvalues of projected 2D covariance matrices.\n            This will prevents the projected GS to be too small. Default is 0.017.\n        compute_alpha_sum_until_points: Whether to compute the sum of alpha values until the depth specified\n            by raster_pts. Default is True.\n        compute_alpha_sum_until_points_threshold: Alpha sum is calculated until raster_pts depth - threshold.\n            Default is 0.2.\n        packed: Whether to use packed mode which is more memory efficient but might or\n            might not be as fast. Default is False. Currently not supported.\n        sparse_grad: If true, the gradients for {means, quats, scales} will be stored in\n            a COO sparse layout. This can be helpful for saving memory. Default is False. Currently not supported.\n        absgrad: If true, the absolute gradients of the projected 2D means\n            will be computed during the backward pass, which could be accessed by\n            `meta[\"means2d\"].absgrad`. Default is False.\n        rasterize_mode: The rasterization mode. Supported modes are \"classic\" and\n            \"antialiased\". Default is \"classic\".\n        channel_chunk: The number of channels to render in one go. Default is 32.\n            If the required rendering channels are larger than this value, the rendering\n            will be done looply in chunks.\n        use_depth_compensation: Whether to use depth compensation, i.e., calculate the change in depth\n            due to orientation of the Gaussian and the distance between the ray and the Gaussian center. Default is True.\n\n    Returns:\n        A tuple:\n\n        **render_lidar_features**: The rendered features+expected distance. Expected distance is the last channel. [C, height, width, D+1].\n\n        **render_alphas**: The rendered alphas. [C, height, width, 1].\n\n        **alpha_sum_until_points**: The sum of alpha values until the depth specified by raster_pts minus threshold. [C, height, width, 1].\n\n        **meta**: A dictionary of intermediate results of the rasterization. Contains median depths. \n\n    Examples:\n\n    .. code-block:: python\n\n        >>> # define Gaussians\n        >>> means = torch.randn((100, 3), device=device)\n        >>> quats = torch.randn((100, 4), device=device)\n        >>> scales = torch.rand((100, 3), device=device) * 0.1\n        >>> opacities = torch.rand((100,), device=device)\n        >>> lidar_feats = torch.rand((100, 16), device=device)\n        >>> velocities = torch.randn((100, 3), device=device)\n        >>> # define lidars\n        >>> viewmats = torch.eye(4, device=device)[None, :, :]\n        >>> width, height = 300, 200\n        >>> raster_pts = torch.rand((1, height, width, 4), device=device)\n        >>> tile_elevation_boundaries = torch.linspace(min_elevation, max_elevation, n_elevation_channels//tile_height + 1, device=device)\n        >>> # render\n        >>> lidar_features, alphas, meta = lidar_rasterization(\n        >>>    means, quats, scales, opacities, lidar_feats, velocities, viewmats, raster_pts, tile_elevation_boundaries, width, height\n        >>> )\n        >>> print (lidar_features.shape, alphas.shape)\n        torch.Size([1, 200, 300, 17]) torch.Size([1, 200, 300, 1])\n        >>> print (meta.keys())\n        dict_keys(['camera_ids', 'gaussian_ids', 'radii', 'means2d', 'depths', 'conics',\n        'opacities', 'pix_vels', 'tile_grid_width', 'tile_grid_height', 'tiles_per_gauss', 'isect_ids',\n        'flatten_ids', 'isect_offsets', 'width', 'height', 'tile_width', 'tile_width', 'n_cameras', 'median_depths'])\n\n    \"\"\"\n\n    N = means.shape[0] # number of Gaussians\n    C = viewmats.shape[0] # number of lidars\n    D = lidar_features.shape[-1] # feature dimension\n    assert means.shape == (N, 3), means.shape\n    assert quats.shape == (N, 4), quats.shape\n    assert scales.shape == (N, 3), scales.shape\n    assert opacities.shape == (N,), opacities.shape\n    if velocities is not None:\n        assert velocities.shape == (N, 3), velocities.shape\n    assert viewmats.shape == (C, 4, 4), viewmats.shape\n    assert lidar_features.shape == (C, N, D), lidar_features.shape\n    assert min_azimuth < max_azimuth, (min_azimuth, max_azimuth)\n    assert min_elevation < max_elevation, (min_elevation, max_elevation)\n    assert min_azimuth >= -180.0 and max_azimuth <= 180.0, (min_azimuth, max_azimuth)\n    assert min_elevation >= -85.0 and max_elevation <= 85.0, (\n        min_elevation,\n        max_elevation,\n    ) # beyond this range, the function is not numerically stable\n    assert tile_width * tile_height <= 256, (tile_width, tile_height) # tile size is limited to 256\n    assert n_elevation_channels > 0, n_elevation_channels\n    # assert n_elevation_channels % tile_height == 0, (n_elevation_channels, tile_height)\n    assert tile_elevation_boundaries.shape == (\n        math.ceil(n_elevation_channels / tile_height) + 1,\n    ), tile_elevation_boundaries.shape\n    assert azimuth_resolution > 0.0, azimuth_resolution\n    if linear_velocity is not None:\n        assert linear_velocity.shape == (C, 3), linear_velocity.shape\n    else:\n        linear_velocity = torch.zeros(C, 3, device=means.device)\n    if angular_velocity is not None:\n        assert angular_velocity.shape == (C, 3), angular_velocity.shape\n    else:\n        angular_velocity = torch.zeros(C, 3, device=means.device)\n    if rolling_shutter_time is not None:\n        assert rolling_shutter_time.shape == (C,), rolling_shutter_time.shape\n    else:\n        rolling_shutter_time = torch.zeros(C, device=means.device)\n    assert raster_pts.shape == (C, *raster_pts.shape[1:]), raster_pts.shape\n    assert raster_pts.shape[-1] == 4, raster_pts.shape\n\n    # Project Gaussians to 2D. Directly pass in {quats, scales} is faster than precomputing covars.\n    proj_results = fully_fused_lidar_projection(\n        means,\n        None,  # covars,\n        quats,\n        scales,\n        velocities,\n        viewmats,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n        min_elevation=min_elevation,\n        max_elevation=max_elevation,\n        min_azimuth=min_azimuth,\n        max_azimuth=max_azimuth,\n        eps2d=eps2d,\n        packed=packed,\n        near_plane=near_plane,\n        far_plane=far_plane,\n        radius_clip=radius_clip,\n        sparse_grad=sparse_grad,\n        calc_compensations=(rasterize_mode == \"antialiased\"),\n    )\n\n    if packed:\n        # The results are packed into shape [nnz, ...]. All elements are valid.\n        # TODO: Implement packed mode for lidar_rasterization\n        raise NotImplementedError(\n            \"Packed mode is not supported for lidar_rasterization\"\n        )\n        (\n            camera_ids,\n            gaussian_ids,\n            radii,\n            means2d,\n            depths,\n            conics,\n            compensations,\n        ) = proj_results\n        opacities = opacities[gaussian_ids]  # [nnz]\n    else:\n        # The results are with shape [C, N, ...]. Only the elements with radii > 0 are valid.\n        radii, means2d, depths, conics, compensations, pix_vels, depth_compensations = (\n            proj_results\n        )\n        opacities = opacities.repeat(C, 1)  # [C, N]\n        camera_ids, gaussian_ids = None, None\n\n    if not use_depth_compensation:\n        depth_compensations = depth_compensations * 0 \n\n    if compensations is not None:\n        opacities = opacities * compensations\n\n    # Identify intersecting tiles\n    n_elevation_tiles = math.ceil(n_elevation_channels / tile_height)\n    tile_azimuth_resolution = azimuth_resolution * tile_width\n    n_azimuth_tiles = math.ceil((max_azimuth - min_azimuth) / tile_azimuth_resolution)\n    tiles_per_gauss, isect_ids, flatten_ids = isect_lidar_tiles(\n        means2d,\n        radii,\n        depths,\n        elev_boundaries=tile_elevation_boundaries,\n        tile_azim_resolution=tile_azimuth_resolution,\n        min_azim=min_azimuth,\n        packed=packed,\n        n_cameras=C,\n        camera_ids=camera_ids,\n        gaussian_ids=gaussian_ids,\n    )\n    isect_offsets = isect_offset_encode(\n        isect_ids, C, n_azimuth_tiles, n_elevation_tiles\n    )\n\n    image_width = raster_pts.shape[-2]\n    image_height = raster_pts.shape[-3]\n\n    if (lidar_features.shape[-1] + 1) > channel_chunk:\n        # slice into chunks\n        n_chunks = (lidar_features.shape[-1] + channel_chunk) // channel_chunk\n        render_lidar_features, render_alphas, alpha_sum_until_points, median_depths = [], [], [], []\n        for i in range(n_chunks):\n            lidar_features_chunk = lidar_features[\n                ..., i * (channel_chunk - 1) : (i + 1) * (channel_chunk - 1)\n            ]\n\n            render_lidar_features_, render_alphas_, alpha_sum_until_points_, median_depths_ = (\n                rasterize_to_points(\n                    means2d,\n                    conics,\n                    torch.cat([lidar_features_chunk, depths[..., None]], dim=-1),\n                    opacities,\n                    pix_vels,\n                    depth_compensations,\n                    raster_pts,\n                    image_width,\n                    image_height,\n                    tile_width,\n                    tile_height,\n                    isect_offsets,\n                    flatten_ids,\n                    compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n                    compute_alpha_sum_until_points_threshold=compute_alpha_sum_until_points_threshold,\n                    packed=packed,\n                    absgrad=absgrad,\n                )\n            )\n            if i == (n_chunks - 1):\n                render_lidar_features.append(render_lidar_features_)\n            else:\n                render_lidar_features.append(render_lidar_features_[..., :-1])\n            render_alphas.append(render_alphas_)\n            alpha_sum_until_points.append(alpha_sum_until_points_)\n            median_depths.append(median_depths_)\n        render_lidar_features = torch.cat(render_lidar_features, dim=-1)\n        median_depths = torch.cat(median_depths, dim=-1)\n        render_alphas = render_alphas[0]  # discard the rest\n        alpha_sum_until_points = alpha_sum_until_points[0] # same alphas for all chunks\n    else:\n        render_lidar_features, render_alphas, alpha_sum_until_points, median_depths = (\n            rasterize_to_points(\n                means2d,\n                conics,\n                torch.cat([lidar_features, depths[..., None]], dim=-1),\n                opacities,\n                pix_vels,\n                depth_compensations,\n                raster_pts,\n                image_width,\n                image_height,\n                tile_width,\n                tile_height,\n                isect_offsets,\n                flatten_ids,\n                compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n                compute_alpha_sum_until_points_threshold=compute_alpha_sum_until_points_threshold,\n                packed=packed,\n                absgrad=absgrad,\n            )\n        )\n\n    meta = {\n        \"camera_ids\": camera_ids,\n        \"gaussian_ids\": gaussian_ids,\n        \"radii\": radii,\n        \"means2d\": means2d,\n        \"depths\": depths,\n        \"conics\": conics,\n        \"opacities\": opacities,\n        \"pix_vels\": pix_vels,\n        \"tile_grid_width\": n_azimuth_tiles,\n        \"tile_grid_height\": n_elevation_tiles,\n        \"tiles_per_gauss\": tiles_per_gauss,\n        \"isect_ids\": isect_ids,\n        \"flatten_ids\": flatten_ids,\n        \"isect_offsets\": isect_offsets,\n        \"width\": image_width,\n        \"height\": image_height,\n        \"tile_width\": tile_width,\n        \"tile_height\": tile_height,\n        \"n_cameras\": C,\n        \"median_depths\": median_depths,\n    }\n    return render_lidar_features, render_alphas, alpha_sum_until_points, meta\n\n\ndef rasterization_inria_wrapper(\n    means: Tensor,  # [N, 3]\n    quats: Tensor,  # [N, 4]\n    scales: Tensor,  # [N, 3]\n    opacities: Tensor,  # [N]\n    colors: Tensor,  # [N, D] or [N, K, 3]\n    viewmats: Tensor,  # [C, 4, 4]\n    Ks: Tensor,  # [C, 3, 3]\n    width: int,\n    height: int,\n    near_plane: float = 0.01,\n    far_plane: float = 100.0,\n    eps2d: float = 0.3,\n    sh_degree: Optional[int] = None,\n    backgrounds: Optional[Tensor] = None,\n    **kwargs,\n) -> Tuple[Tensor, Tensor, Dict]:\n    \"\"\"Wrapper for Inria's rasterization backend.\n\n    .. warning::\n        This function exists for comparision purpose only. Only rendered image is\n        returned.\n\n    .. warning::\n        Inria's CUDA backend has its own LICENSE, so this function should be used with\n        the respect to the original LICENSE at:\n        https://github.com/graphdeco-inria/diff-gaussian-rasterization\n\n    \"\"\"\n    from diff_gaussian_rasterization import (\n        GaussianRasterizationSettings,\n        GaussianRasterizer,\n    )\n\n    def _getProjectionMatrix(znear, zfar, fovX, fovY, device=\"cuda\"):\n        tanHalfFovY = math.tan((fovY / 2))\n        tanHalfFovX = math.tan((fovX / 2))\n\n        top = tanHalfFovY * znear\n        bottom = -top\n        right = tanHalfFovX * znear\n        left = -right\n\n        P = torch.zeros(4, 4, device=device)\n\n        z_sign = 1.0\n\n        P[0, 0] = 2.0 * znear / (right - left)\n        P[1, 1] = 2.0 * znear / (top - bottom)\n        P[0, 2] = (right + left) / (right - left)\n        P[1, 2] = (top + bottom) / (top - bottom)\n        P[3, 2] = z_sign\n        P[2, 2] = z_sign * zfar / (zfar - znear)\n        P[2, 3] = -(zfar * znear) / (zfar - znear)\n        return P\n\n    assert eps2d == 0.3, \"This is hard-coded in CUDA to be 0.3\"\n    C = len(viewmats)\n    device = means.device\n    channels = colors.shape[-1]\n\n    render_colors = []\n    for cid in range(C):\n        FoVx = 2 * math.atan(width / (2 * Ks[cid, 0, 0].item()))\n        FoVy = 2 * math.atan(height / (2 * Ks[cid, 1, 1].item()))\n        tanfovx = math.tan(FoVx * 0.5)\n        tanfovy = math.tan(FoVy * 0.5)\n\n        world_view_transform = viewmats[cid].transpose(0, 1)\n        projection_matrix = _getProjectionMatrix(\n            znear=near_plane, zfar=far_plane, fovX=FoVx, fovY=FoVy, device=device\n        ).transpose(0, 1)\n        full_proj_transform = (\n            world_view_transform.unsqueeze(0).bmm(projection_matrix.unsqueeze(0))\n        ).squeeze(0)\n        camera_center = world_view_transform.inverse()[3, :3]\n\n        background = (\n            backgrounds[cid]\n            if backgrounds is not None\n            else torch.zeros(3, device=device)\n        )\n\n        raster_settings = GaussianRasterizationSettings(\n            image_height=height,\n            image_width=width,\n            tanfovx=tanfovx,\n            tanfovy=tanfovy,\n            bg=background,\n            scale_modifier=1.0,\n            viewmatrix=world_view_transform,\n            projmatrix=full_proj_transform,\n            sh_degree=0 if sh_degree is None else sh_degree,\n            campos=camera_center,\n            prefiltered=False,\n            debug=False,\n        )\n\n        rasterizer = GaussianRasterizer(raster_settings=raster_settings)\n\n        means2D = torch.zeros_like(means, requires_grad=True, device=device)\n\n        render_colors_ = []\n        for i in range(0, channels, 3):\n            _colors = colors[..., i : i + 3]\n            if _colors.shape[-1] < 3:\n                pad = torch.zeros(\n                    _colors.shape[0], 3 - _colors.shape[-1], device=device\n                )\n                _colors = torch.cat([_colors, pad], dim=-1)\n            _render_colors_, radii = rasterizer(\n                means3D=means,\n                means2D=means2D,\n                shs=_colors if colors.dim() == 3 else None,\n                colors_precomp=_colors if colors.dim() == 2 else None,\n                opacities=opacities[:, None],\n                scales=scales,\n                rotations=quats,\n                cov3D_precomp=None,\n            )\n            if _colors.shape[-1] < 3:\n                _render_colors_ = _render_colors_[:, :, : _colors.shape[-1]]\n            render_colors_.append(_render_colors_)\n        render_colors_ = torch.cat(render_colors_, dim=-1)\n\n        render_colors_ = render_colors_.permute(1, 2, 0)  # [H, W, 3]\n\n        render_colors.append(render_colors_)\n    render_colors = torch.stack(render_colors, dim=0)\n    return render_colors, None, {}\n"
  },
  {
    "path": "gsplat/strategy/__init__.py",
    "content": "from .base import Strategy\nfrom .default import DefaultStrategy\nfrom .mcmc import MCMCStrategy\n"
  },
  {
    "path": "gsplat/strategy/base.py",
    "content": "from dataclasses import dataclass\nfrom typing import Dict, Union\n\nimport torch\n\n\n@dataclass\nclass Strategy:\n    \"\"\"Base class for the GS densification strategy.\n\n    This class is an base class that defines the interface for the GS\n    densification strategy.\n    \"\"\"\n\n    def check_sanity(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n    ):\n        \"\"\"Sanity check for the parameters and optimizers.\"\"\"\n        assert set(params.keys()) == set(optimizers.keys()), (\n            \"params and optimizers must have the same keys, \"\n            f\"but got {params.keys()} and {optimizers.keys()}\"\n        )\n\n        for optimizer in optimizers.values():\n            assert len(optimizer.param_groups) == 1, (\n                \"Each optimizer must have exactly one param_group, \"\n                \"that cooresponds to each parameter, \"\n                f\"but got {len(optimizer.param_groups)}\"\n            )\n\n    def step_pre_backward(\n        self,\n        *args,\n        **kwargs,\n    ):\n        \"\"\"Callback function to be executed before the `loss.backward()` call.\"\"\"\n        pass\n\n    def step_post_backward(\n        self,\n        *args,\n        **kwargs,\n    ):\n        \"\"\"Callback function to be executed after the `loss.backward()` call.\"\"\"\n        pass\n"
  },
  {
    "path": "gsplat/strategy/default.py",
    "content": "from dataclasses import dataclass\nfrom typing import Any, Dict, Tuple, Union\n\nimport torch\nfrom typing_extensions import Literal\n\nfrom .base import Strategy\nfrom .ops import duplicate, remove, reset_opa, split\n\n\n@dataclass\nclass DefaultStrategy(Strategy):\n    \"\"\"A default strategy that follows the original 3DGS paper:\n\n    `3D Gaussian Splatting for Real-Time Radiance Field Rendering <https://arxiv.org/abs/2308.04079>`_\n\n    The strategy will:\n\n    - Periodically duplicate GSs with high image plane gradients and small scales.\n    - Periodically split GSs with high image plane gradients and large scales.\n    - Periodically prune GSs with low opacity.\n    - Periodically reset GSs to a lower opacity.\n\n    If `absgrad=True`, it will use the absolute gradients instead of average gradients\n    for GS duplicating & splitting, following the AbsGS paper:\n\n    `AbsGS: Recovering Fine Details for 3D Gaussian Splatting <https://arxiv.org/abs/2404.10484>`_\n\n    Which typically leads to better results but requires to set the `grow_grad2d` to a\n    higher value, e.g., 0.0008. Also, the :func:`rasterization` function should be called\n    with `absgrad=True` as well so that the absolute gradients are computed.\n\n    Args:\n        prune_opa (float): GSs with opacity below this value will be pruned. Default is 0.005.\n        grow_grad2d (float): GSs with image plane gradient above this value will be\n          split/duplicated. Default is 0.0002.\n        grow_scale3d (float): GSs with 3d scale (normalized by scene_scale) below this\n          value will be duplicated. Above will be split. Default is 0.01.\n        grow_scale2d (float): GSs with 2d scale (normalized by image resolution) above\n          this value will be split. Default is 0.05.\n        prune_scale3d (float): GSs with 3d scale (normalized by scene_scale) above this\n          value will be pruned. Default is 0.1.\n        prune_scale2d (float): GSs with 2d scale (normalized by image resolution) above\n          this value will be pruned. Default is 0.15.\n        refine_scale2d_stop_iter (int): Stop refining GSs based on 2d scale after this\n          iteration. Default is 0. Set to a positive value to enable this feature.\n        refine_start_iter (int): Start refining GSs after this iteration. Default is 500.\n        refine_stop_iter (int): Stop refining GSs after this iteration. Default is 15_000.\n        reset_every (int): Reset opacities every this steps. Default is 3000.\n        refine_every (int): Refine GSs every this steps. Default is 100.\n        pause_refine_after_reset (int): Pause refining GSs until this number of steps after\n          reset, Default is 0 (no pause at all) and one might want to set this number to the\n          number of images in training set.\n        absgrad (bool): Use absolute gradients for GS splitting. Default is False.\n        revised_opacity (bool): Whether to use revised opacity heuristic from\n          arXiv:2404.06109 (experimental). Default is False.\n        verbose (bool): Whether to print verbose information. Default is False.\n        key_for_gradient (str): Which variable uses for densification strategy.\n          3DGS uses \"means2d\" gradient and 2DGS uses a similar gradient which stores\n          in variable \"gradient_2dgs\".\n\n    Examples:\n\n        >>> from gsplat import DefaultStrategy, rasterization\n        >>> params: Dict[str, torch.nn.Parameter] | torch.nn.ParameterDict = ...\n        >>> optimizers: Dict[str, torch.optim.Optimizer] = ...\n        >>> strategy = DefaultStrategy()\n        >>> strategy.check_sanity(params, optimizers)\n        >>> strategy_state = strategy.initialize_state()\n        >>> for step in range(1000):\n        ...     render_image, render_alpha, info = rasterization(...)\n        ...     strategy.step_pre_backward(params, optimizers, strategy_state, step, info)\n        ...     loss = ...\n        ...     loss.backward()\n        ...     strategy.step_post_backward(params, optimizers, strategy_state, step, info)\n\n    \"\"\"\n\n    prune_opa: float = 0.005\n    grow_grad2d: float = 0.0002\n    grow_scale3d: float = 0.01\n    grow_scale2d: float = 0.05\n    prune_scale3d: float = 0.1\n    prune_scale2d: float = 0.15\n    refine_scale2d_stop_iter: int = 0\n    refine_start_iter: int = 500\n    refine_stop_iter: int = 15_000\n    reset_every: int = 3000\n    refine_every: int = 100\n    pause_refine_after_reset: int = 0\n    absgrad: bool = False\n    revised_opacity: bool = False\n    verbose: bool = False\n    key_for_gradient: Literal[\"means2d\", \"gradient_2dgs\"] = \"means2d\"\n\n    def initialize_state(self, scene_scale: float = 1.0) -> Dict[str, Any]:\n        \"\"\"Initialize and return the running state for this strategy.\n\n        The returned state should be passed to the `step_pre_backward()` and\n        `step_post_backward()` functions.\n        \"\"\"\n        # Postpone the initialization of the state to the first step so that we can\n        # put them on the correct device.\n        # - grad2d: running accum of the norm of the image plane gradients for each GS.\n        # - count: running accum of how many time each GS is visible.\n        # - radii: the radii of the GSs (normalized by the image resolution).\n        state = {\"grad2d\": None, \"count\": None, \"scene_scale\": scene_scale}\n        if self.refine_scale2d_stop_iter > 0:\n            state[\"radii\"] = None\n        return state\n\n    def check_sanity(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n    ):\n        \"\"\"Sanity check for the parameters and optimizers.\n\n        Check if:\n            * `params` and `optimizers` have the same keys.\n            * Each optimizer has exactly one param_group, corresponding to each parameter.\n            * The following keys are present: {\"means\", \"scales\", \"quats\", \"opacities\"}.\n\n        Raises:\n            AssertionError: If any of the above conditions is not met.\n\n        .. note::\n            It is not required but highly recommended for the user to call this function\n            after initializing the strategy to ensure the convention of the parameters\n            and optimizers is as expected.\n        \"\"\"\n\n        super().check_sanity(params, optimizers)\n        # The following keys are required for this strategy.\n        for key in [\"means\", \"scales\", \"quats\", \"opacities\"]:\n            assert key in params, f\"{key} is required in params but missing.\"\n\n    def step_pre_backward(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        state: Dict[str, Any],\n        step: int,\n        info: Dict[str, Any],\n    ):\n        \"\"\"Callback function to be executed before the `loss.backward()` call.\"\"\"\n        assert (\n            self.key_for_gradient in info\n        ), \"The 2D means of the Gaussians is required but missing.\"\n        info[self.key_for_gradient].retain_grad()\n\n    def step_post_backward(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        state: Dict[str, Any],\n        step: int,\n        info: Dict[str, Any],\n        packed: bool = False,\n    ):\n        \"\"\"Callback function to be executed after the `loss.backward()` call.\"\"\"\n        if step >= self.refine_stop_iter:\n            return\n\n        self._update_state(params, state, info, packed=packed)\n\n        if (\n            step > self.refine_start_iter\n            and step % self.refine_every == 0\n            and step % self.reset_every >= self.pause_refine_after_reset\n        ):\n            # grow GSs\n            n_dupli, n_split = self._grow_gs(params, optimizers, state, step)\n            if self.verbose:\n                print(\n                    f\"Step {step}: {n_dupli} GSs duplicated, {n_split} GSs split. \"\n                    f\"Now having {len(params['means'])} GSs.\"\n                )\n\n            # prune GSs\n            n_prune = self._prune_gs(params, optimizers, state, step)\n            if self.verbose:\n                print(\n                    f\"Step {step}: {n_prune} GSs pruned. \"\n                    f\"Now having {len(params['means'])} GSs.\"\n                )\n\n            # reset running stats\n            state[\"grad2d\"].zero_()\n            state[\"count\"].zero_()\n            if self.refine_scale2d_stop_iter > 0:\n                state[\"radii\"].zero_()\n            torch.cuda.empty_cache()\n\n        if step % self.reset_every == 0:\n            reset_opa(\n                params=params,\n                optimizers=optimizers,\n                state=state,\n                value=self.prune_opa * 2.0,\n            )\n\n    def _update_state(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        state: Dict[str, Any],\n        info: Dict[str, Any],\n        packed: bool = False,\n    ):\n        for key in [\n            \"width\",\n            \"height\",\n            \"n_cameras\",\n            \"radii\",\n            \"gaussian_ids\",\n            self.key_for_gradient,\n        ]:\n            assert key in info, f\"{key} is required but missing.\"\n\n        # normalize grads to [-1, 1] screen space\n        if self.absgrad:\n            grads = info[self.key_for_gradient].absgrad.clone()\n        else:\n            grads = info[self.key_for_gradient].grad.clone()\n        grads[..., 0] *= info[\"width\"] / 2.0 * info[\"n_cameras\"]\n        grads[..., 1] *= info[\"height\"] / 2.0 * info[\"n_cameras\"]\n\n        # initialize state on the first run\n        n_gaussian = len(list(params.values())[0])\n\n        if state[\"grad2d\"] is None:\n            state[\"grad2d\"] = torch.zeros(n_gaussian, device=grads.device)\n        if state[\"count\"] is None:\n            state[\"count\"] = torch.zeros(n_gaussian, device=grads.device)\n        if self.refine_scale2d_stop_iter > 0 and state[\"radii\"] is None:\n            assert \"radii\" in info, \"radii is required but missing.\"\n            state[\"radii\"] = torch.zeros(n_gaussian, device=grads.device)\n\n        # update the running state\n        if packed:\n            # grads is [nnz, 2]\n            gs_ids = info[\"gaussian_ids\"]  # [nnz]\n            radii = info[\"radii\"].max(dim=-1).values  # [nnz]\n        else:\n            # grads is [C, N, 2]\n            sel = info[\"radii\"][..., 0] > 0.0  # [C, N]\n            gs_ids = torch.where(sel)[1]  # [nnz]\n            grads = grads[sel]  # [nnz, 2]\n            radii = info[\"radii\"][sel].max(dim=-1).values  # [nnz]\n\n        state[\"grad2d\"].index_add_(0, gs_ids, grads.norm(dim=-1))\n        state[\"count\"].index_add_(0, gs_ids, torch.ones_like(gs_ids, dtype=torch.float32))\n        if self.refine_scale2d_stop_iter > 0:\n            # Should be ideally using scatter max\n            state[\"radii\"][gs_ids] = torch.maximum(\n                state[\"radii\"][gs_ids],\n                # normalize radii to [0, 1] screen space\n                radii / float(max(info[\"width\"], info[\"height\"])),\n            )\n\n    @torch.no_grad()\n    def _grow_gs(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        state: Dict[str, Any],\n        step: int,\n    ) -> Tuple[int, int]:\n        count = state[\"count\"]\n        grads = state[\"grad2d\"] / count.clamp_min(1)\n        device = grads.device\n\n        is_grad_high = grads > self.grow_grad2d\n        is_small = (\n            torch.exp(params[\"scales\"]).max(dim=-1).values\n            <= self.grow_scale3d * state[\"scene_scale\"]\n        )\n        is_dupli = is_grad_high & is_small\n        n_dupli = is_dupli.sum().item()\n\n        is_large = ~is_small\n        is_split = is_large\n        if step < self.refine_scale2d_stop_iter:\n            is_split |= state[\"radii\"] > self.grow_scale2d\n        is_split = is_grad_high & is_split\n        n_split = is_split.sum().item()\n\n        # first duplicate\n        if n_dupli > 0:\n            duplicate(params=params, optimizers=optimizers, state=state, mask=is_dupli)\n\n        # new GSs added by duplication will not be split\n        is_split = torch.cat(\n            [\n                is_split,\n                torch.zeros(n_dupli, dtype=torch.bool, device=device),\n            ]\n        )\n\n        # then split\n        if n_split > 0:\n            split(\n                params=params,\n                optimizers=optimizers,\n                state=state,\n                mask=is_split,\n                revised_opacity=self.revised_opacity,\n            )\n        return n_dupli, n_split\n\n    @torch.no_grad()\n    def _prune_gs(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        state: Dict[str, Any],\n        step: int,\n    ) -> int:\n        is_prune = torch.sigmoid(params[\"opacities\"].flatten()) < self.prune_opa\n        if step > self.reset_every:\n            is_too_big = (\n                torch.exp(params[\"scales\"]).max(dim=-1).values\n                > self.prune_scale3d * state[\"scene_scale\"]\n            )\n            # The official code also implements sreen-size pruning but\n            # it's actually not being used due to a bug:\n            # https://github.com/graphdeco-inria/gaussian-splatting/issues/123\n            # We implement it here for completeness but set `refine_scale2d_stop_iter`\n            # to 0 by default to disable it.\n            if step < self.refine_scale2d_stop_iter:\n                is_too_big |= state[\"radii\"] > self.prune_scale2d\n\n            is_prune = is_prune | is_too_big\n\n        n_prune = is_prune.sum().item()\n        if n_prune > 0:\n            remove(params=params, optimizers=optimizers, state=state, mask=is_prune)\n\n        return n_prune\n"
  },
  {
    "path": "gsplat/strategy/mcmc.py",
    "content": "import math\nfrom dataclasses import dataclass\nfrom typing import Any, Dict, Union\n\nimport torch\nfrom torch import Tensor\n\nfrom .base import Strategy\nfrom .ops import inject_noise_to_position, relocate, sample_add\n\n\n@dataclass\nclass MCMCStrategy(Strategy):\n    \"\"\"Strategy that follows the paper:\n\n    `3D Gaussian Splatting as Markov Chain Monte Carlo <https://arxiv.org/abs/2404.09591>`_\n\n    This strategy will:\n\n    - Periodically teleport GSs with low opacity to a place that has high opacity.\n    - Periodically introduce new GSs sampled based on the opacity distribution.\n    - Periodically perturb the GSs locations.\n\n    Args:\n        cap_max (int): Maximum number of GSs. Default to 1_000_000.\n        noise_lr (float): MCMC samping noise learning rate. Default to 5e5.\n        refine_start_iter (int): Start refining GSs after this iteration. Default to 500.\n        refine_stop_iter (int): Stop refining GSs after this iteration. Default to 25_000.\n        refine_every (int): Refine GSs every this steps. Default to 100.\n        min_opacity (float): GSs with opacity below this value will be pruned. Default to 0.005.\n        verbose (bool): Whether to print verbose information. Default to False.\n\n    Examples:\n\n        >>> from gsplat import MCMCStrategy, rasterization\n        >>> params: Dict[str, torch.nn.Parameter] | torch.nn.ParameterDict = ...\n        >>> optimizers: Dict[str, torch.optim.Optimizer] = ...\n        >>> strategy = MCMCStrategy()\n        >>> strategy.check_sanity(params, optimizers)\n        >>> strategy_state = strategy.initialize_state()\n        >>> for step in range(1000):\n        ...     render_image, render_alpha, info = rasterization(...)\n        ...     loss = ...\n        ...     loss.backward()\n        ...     strategy.step_post_backward(params, optimizers, strategy_state, step, info, lr=1e-3)\n\n    \"\"\"\n\n    cap_max: int = 1_000_000\n    noise_lr: float = 5e5\n    refine_start_iter: int = 500\n    refine_stop_iter: int = 25_000\n    refine_every: int = 100\n    min_opacity: float = 0.005\n    verbose: bool = False\n\n    def initialize_state(self) -> Dict[str, Any]:\n        \"\"\"Initialize and return the running state for this strategy.\"\"\"\n        n_max = 51\n        binoms = torch.zeros((n_max, n_max))\n        for n in range(n_max):\n            for k in range(n + 1):\n                binoms[n, k] = math.comb(n, k)\n        return {\"binoms\": binoms}\n\n    def check_sanity(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n    ):\n        \"\"\"Sanity check for the parameters and optimizers.\n\n        Check if:\n            * `params` and `optimizers` have the same keys.\n            * Each optimizer has exactly one param_group, corresponding to each parameter.\n            * The following keys are present: {\"means\", \"scales\", \"quats\", \"opacities\"}.\n\n        Raises:\n            AssertionError: If any of the above conditions is not met.\n\n        .. note::\n            It is not required but highly recommended for the user to call this function\n            after initializing the strategy to ensure the convention of the parameters\n            and optimizers is as expected.\n        \"\"\"\n\n        super().check_sanity(params, optimizers)\n        # The following keys are required for this strategy.\n        for key in [\"means\", \"scales\", \"quats\", \"opacities\"]:\n            assert key in params, f\"{key} is required in params but missing.\"\n\n    # def step_pre_backward(\n    #     self,\n    #     params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    #     optimizers: Dict[str, torch.optim.Optimizer],\n    #     # state: Dict[str, Any],\n    #     step: int,\n    #     info: Dict[str, Any],\n    # ):\n    #     \"\"\"Callback function to be executed before the `loss.backward()` call.\"\"\"\n    #     pass\n\n    def step_post_backward(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        state: Dict[str, Any],\n        step: int,\n        info: Dict[str, Any],\n        lr: float,\n        optimizers_prefix: str = \"\",\n    ):\n        \"\"\"Callback function to be executed after the `loss.backward()` call.\n\n        Args:\n            lr (float): Learning rate for \"means\" attribute of the GS.\n        \"\"\"\n        # move to the correct device\n        state[\"binoms\"] = state[\"binoms\"].to(params[\"means\"].device)\n\n        binoms = state[\"binoms\"]\n\n        if (\n            step < self.refine_stop_iter\n            and step > self.refine_start_iter\n            and step % self.refine_every == 0\n        ):\n            # teleport GSs\n            n_relocated_gs = self._relocate_gs(\n                params, optimizers, binoms, optimizers_prefix\n            )\n            if self.verbose:\n                print(f\"Step {step}: Relocated {n_relocated_gs} GSs.\")\n\n            # add new GSs\n            n_new_gs = self._add_new_gs(params, optimizers, binoms, optimizers_prefix)\n            if self.verbose:\n                print(\n                    f\"Step {step}: Added {n_new_gs} GSs. \"\n                    f\"Now having {len(params['means'])} GSs.\"\n                )\n\n            torch.cuda.empty_cache()\n\n        # add noise to GSs\n        inject_noise_to_position(\n            params=params, optimizers=optimizers, state={}, scaler=lr * self.noise_lr\n        )\n\n    @torch.no_grad()\n    def _relocate_gs(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        binoms: Tensor,\n        optimizers_prefix: str = \"\",\n    ) -> int:\n        opacities = torch.sigmoid(params[\"opacities\"].flatten())\n        dead_mask = opacities <= self.min_opacity\n        n_gs = dead_mask.sum().item()\n        if n_gs > 0:\n            relocate(\n                params=params,\n                optimizers=optimizers,\n                state={},\n                mask=dead_mask,\n                binoms=binoms,\n                min_opacity=self.min_opacity,\n                optimizers_prefix=optimizers_prefix,\n            )\n        return n_gs\n\n    @torch.no_grad()\n    def _add_new_gs(\n        self,\n        params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n        optimizers: Dict[str, torch.optim.Optimizer],\n        binoms: Tensor,\n        optimizers_prefix: str = \"\",\n    ) -> int:\n        current_n_points = len(params[\"means\"])\n        n_target = min(self.cap_max, int(1.05 * current_n_points))\n        n_gs = max(0, n_target - current_n_points)\n        if n_gs > 0:\n            sample_add(\n                params=params,\n                optimizers=optimizers,\n                state={},\n                n=n_gs,\n                binoms=binoms,\n                min_opacity=self.min_opacity,\n                optimizers_prefix=optimizers_prefix,\n            )\n        return n_gs\n"
  },
  {
    "path": "gsplat/strategy/ops.py",
    "content": "from typing import Callable, Dict, List, Union\n\nimport numpy as np\nimport torch\nimport torch.nn.functional as F\nfrom torch import Tensor\n\nfrom gsplat import quat_scale_to_covar_preci\nfrom gsplat.relocation import compute_relocation\nfrom gsplat.utils import normalized_quat_to_rotmat\n\n\n@torch.no_grad()\ndef _multinomial_sample(weights: Tensor, n: int, replacement: bool = True) -> Tensor:\n    \"\"\"Sample from a distribution using torch.multinomial or numpy.random.choice.\n\n    This function adaptively chooses between `torch.multinomial` and `numpy.random.choice`\n    based on the number of elements in `weights`. If the number of elements exceeds\n    the torch.multinomial limit (2^24), it falls back to using `numpy.random.choice`.\n\n    Args:\n        weights (Tensor): A 1D tensor of weights for each element.\n        n (int): The number of samples to draw.\n        replacement (bool): Whether to sample with replacement. Default is True.\n\n    Returns:\n        Tensor: A 1D tensor of sampled indices.\n    \"\"\"\n    num_elements = weights.size(0)\n\n    if num_elements <= 2**24:\n        # Use torch.multinomial for elements within the limit\n        return torch.multinomial(weights, n, replacement=replacement)\n    else:\n        # Fallback to numpy.random.choice for larger element spaces\n        weights = weights / weights.sum()\n        weights_np = weights.detach().cpu().numpy()\n        sampled_idxs_np = np.random.choice(\n            num_elements, size=n, p=weights_np, replace=replacement\n        )\n        sampled_idxs = torch.from_numpy(sampled_idxs_np)\n\n        # Return the sampled indices on the original device\n        return sampled_idxs.to(weights.device)\n\n\n@torch.no_grad()\ndef _update_param_with_optimizer(\n    param_fn: Callable[[str, Tensor], Tensor],\n    optimizer_fn: Callable[[str, Tensor], Tensor],\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    names: Union[List[str], None] = None,\n    optimizers_prefix: str = \"\",\n):\n    \"\"\"Update the parameters and the state in the optimizers with defined functions.\n\n    Args:\n        param_fn: A function that takes the name of the parameter and the parameter itself,\n            and returns the new parameter.\n        optimizer_fn: A function that takes the key of the optimizer state and the state value,\n            and returns the new state value.\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        names: A list of key names to update. If None, update all. Default: None.\n    \"\"\"\n    if names is None:\n        # If names is not provided, update all parameters\n        names = list(params.keys())\n\n    # Split the names into optimized and un-optimized\n    optimizers_names = [optimizers_prefix + name for name in names]\n    un_optimized_names = set(optimizers_names) - set(optimizers.keys())\n    optimized_names = set(optimizers_names) - un_optimized_names\n\n    for name in optimized_names:\n        optimizer = optimizers[name]\n        param_name = name.replace(optimizers_prefix, \"\")\n        for i, param_group in enumerate(optimizer.param_groups):\n            p = param_group[\"params\"][0]\n            p_state = optimizer.state[p]\n            del optimizer.state[p]\n            for key in p_state.keys():\n                if key != \"step\":\n                    v = p_state[key]\n                    p_state[key] = optimizer_fn(key, v)\n            p_new = param_fn(param_name, p)\n            optimizer.param_groups[i][\"params\"] = [p_new]\n            optimizer.state[p_new] = p_state\n            params[param_name] = p_new\n\n    for name in un_optimized_names:\n        param_name = name.replace(optimizers_prefix, \"\")\n        params[param_name] = param_fn(param_name, params[param_name])\n\n\n@torch.no_grad()\ndef duplicate(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    mask: Tensor,\n):\n    \"\"\"Inplace duplicate the Gaussian with the given mask.\n\n    Args:\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        mask: A boolean mask to duplicate the Gaussians.\n    \"\"\"\n    device = mask.device\n    sel = torch.where(mask)[0]\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        return torch.nn.Parameter(torch.cat([p, p[sel]]))\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        return torch.cat([v, torch.zeros((len(sel), *v.shape[1:]), device=device)])\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(param_fn, optimizer_fn, params, optimizers)\n    # update the extra running state\n    for k, v in state.items():\n        if isinstance(v, torch.Tensor):\n            state[k] = torch.cat((v, v[sel]))\n\n\n@torch.no_grad()\ndef split(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    mask: Tensor,\n    revised_opacity: bool = False,\n):\n    \"\"\"Inplace split the Gaussian with the given mask.\n\n    Args:\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        mask: A boolean mask to split the Gaussians.\n        revised_opacity: Whether to use revised opacity formulation\n          from arXiv:2404.06109. Default: False.\n    \"\"\"\n    device = mask.device\n    sel = torch.where(mask)[0]\n    rest = torch.where(~mask)[0]\n\n    scales = torch.exp(params[\"scales\"][sel])\n    quats = F.normalize(params[\"quats\"][sel], dim=-1)\n    rotmats = normalized_quat_to_rotmat(quats)  # [N, 3, 3]\n    samples = torch.einsum(\n        \"nij,nj,bnj->bni\",\n        rotmats,\n        scales,\n        torch.randn(2, len(scales), 3, device=device),\n    )  # [2, N, 3]\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        repeats = [2] + [1] * (p.dim() - 1)\n        if name == \"means\":\n            p_split = (p[sel] + samples).reshape(-1, 3)  # [2N, 3]\n        elif name == \"scales\":\n            p_split = torch.log(scales / 1.6).repeat(2, 1)  # [2N, 3]\n        elif name == \"opacities\" and revised_opacity:\n            new_opacities = 1.0 - torch.sqrt(1.0 - torch.sigmoid(p[sel]))\n            p_split = torch.logit(new_opacities).repeat(repeats)  # [2N]\n        else:\n            p_split = p[sel].repeat(repeats)\n        p_new = torch.cat([p[rest], p_split])\n        p_new = torch.nn.Parameter(p_new)\n        return p_new\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        v_split = torch.zeros((2 * len(sel), *v.shape[1:]), device=device)\n        return torch.cat([v[rest], v_split])\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(param_fn, optimizer_fn, params, optimizers)\n    # update the extra running state\n    for k, v in state.items():\n        if isinstance(v, torch.Tensor):\n            repeats = [2] + [1] * (v.dim() - 1)\n            v_new = v[sel].repeat(repeats)\n            state[k] = torch.cat((v[rest], v_new))\n\n\n@torch.no_grad()\ndef remove(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    mask: Tensor,\n):\n    \"\"\"Inplace remove the Gaussian with the given mask.\n\n    Args:\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        mask: A boolean mask to remove the Gaussians.\n    \"\"\"\n    sel = torch.where(~mask)[0]\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        return torch.nn.Parameter(p[sel])\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        return v[sel]\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(param_fn, optimizer_fn, params, optimizers)\n    # update the extra running state\n    for k, v in state.items():\n        if isinstance(v, torch.Tensor):\n            state[k] = v[sel]\n\n\n@torch.no_grad()\ndef reset_opa(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    value: float,\n):\n    \"\"\"Inplace reset the opacities to the given post-sigmoid value.\n\n    Args:\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        value: The value to reset the opacities\n    \"\"\"\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        if name == \"opacities\":\n            opacities = torch.clamp(p, max=torch.logit(torch.tensor(value)).item())\n            return torch.nn.Parameter(opacities)\n        else:\n            raise ValueError(f\"Unexpected parameter name: {name}\")\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        return torch.zeros_like(v)\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(\n        param_fn, optimizer_fn, params, optimizers, names=[\"opacities\"]\n    )\n\n\n@torch.no_grad()\ndef relocate(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    mask: Tensor,\n    binoms: Tensor,\n    min_opacity: float = 0.005,\n    optimizers_prefix: str = \"\",\n):\n    \"\"\"Inplace relocate some dead Gaussians to the lives ones.\n\n    Args:\n        params: A dictionary of parameters.\n        optimizers: A dictionary of optimizers, each corresponding to a parameter.\n        mask: A boolean mask to indicates which Gaussians are dead.\n    \"\"\"\n    # support \"opacities\" with shape [N,] or [N, 1]\n    opacities = torch.sigmoid(params[\"opacities\"])\n\n    dead_indices = mask.nonzero(as_tuple=True)[0]\n    alive_indices = (~mask).nonzero(as_tuple=True)[0]\n    n = len(dead_indices)\n\n    # Sample for new GSs\n    eps = torch.finfo(torch.float32).eps\n    probs = opacities[alive_indices].flatten()  # ensure its shape is [N,]\n    sampled_idxs = _multinomial_sample(probs, n, replacement=True)\n    sampled_idxs = alive_indices[sampled_idxs]\n    new_opacities, new_scales = compute_relocation(\n        opacities=opacities[sampled_idxs],\n        scales=torch.exp(params[\"scales\"])[sampled_idxs],\n        ratios=torch.bincount(sampled_idxs)[sampled_idxs] + 1,\n        binoms=binoms,\n    )\n    new_opacities = torch.clamp(new_opacities, max=1.0 - eps, min=min_opacity)\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        requires_grad = p.requires_grad\n        if name == \"opacities\":\n            p[sampled_idxs] = torch.logit(new_opacities)\n        elif name == \"scales\":\n            p[sampled_idxs] = torch.log(new_scales)\n        p[dead_indices] = p[sampled_idxs]\n        return torch.nn.Parameter(p, requires_grad=requires_grad)\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        v[sampled_idxs] = 0\n        return v\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(\n        param_fn, optimizer_fn, params, optimizers, optimizers_prefix=optimizers_prefix\n    )\n    # update the extra running state\n    for k, v in state.items():\n        if isinstance(v, torch.Tensor):\n            v[sampled_idxs] = 0\n\n\n@torch.no_grad()\ndef sample_add(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    n: int,\n    binoms: Tensor,\n    min_opacity: float = 0.005,\n    optimizers_prefix: str = \"\",\n):\n    opacities = torch.sigmoid(params[\"opacities\"])\n\n    eps = torch.finfo(torch.float32).eps\n    probs = opacities.flatten()\n    sampled_idxs = _multinomial_sample(probs, n, replacement=True)\n    new_opacities, new_scales = compute_relocation(\n        opacities=opacities[sampled_idxs],\n        scales=torch.exp(params[\"scales\"])[sampled_idxs],\n        ratios=torch.bincount(sampled_idxs)[sampled_idxs] + 1,\n        binoms=binoms,\n    )\n    new_opacities = torch.clamp(new_opacities, max=1.0 - eps, min=min_opacity)\n\n    def param_fn(name: str, p: Tensor) -> Tensor:\n        requires_grad = p.requires_grad\n        if name == \"opacities\":\n            p[sampled_idxs] = torch.logit(new_opacities)\n        elif name == \"scales\":\n            p[sampled_idxs] = torch.log(new_scales)\n        p = torch.cat([p, p[sampled_idxs]])\n        return torch.nn.Parameter(p, requires_grad=requires_grad)\n\n    def optimizer_fn(key: str, v: Tensor) -> Tensor:\n        v_new = torch.zeros((len(sampled_idxs), *v.shape[1:]), device=v.device)\n        return torch.cat([v, v_new])\n\n    # update the parameters and the state in the optimizers\n    _update_param_with_optimizer(\n        param_fn, optimizer_fn, params, optimizers, optimizers_prefix=optimizers_prefix\n    )\n    # update the extra running state\n    for k, v in state.items():\n        v_new = torch.zeros((len(sampled_idxs), *v.shape[1:]), device=v.device)\n        if isinstance(v, torch.Tensor):\n            state[k] = torch.cat((v, v_new))\n\n\n@torch.no_grad()\ndef inject_noise_to_position(\n    params: Union[Dict[str, torch.nn.Parameter], torch.nn.ParameterDict],\n    optimizers: Dict[str, torch.optim.Optimizer],\n    state: Dict[str, Tensor],\n    scaler: float,\n):\n    opacities = torch.sigmoid(params[\"opacities\"].flatten())\n    scales = torch.exp(params[\"scales\"])\n    covars, _ = quat_scale_to_covar_preci(\n        params[\"quats\"],\n        scales,\n        compute_covar=True,\n        compute_preci=False,\n        triu=False,\n    )\n\n    def op_sigmoid(x, k=100, x0=0.995):\n        return 1 / (1 + torch.exp(-k * (x - x0)))\n\n    noise = (\n        torch.randn_like(params[\"means\"])\n        * (op_sigmoid(1 - opacities)).unsqueeze(-1)\n        * scaler\n    )\n    noise = torch.einsum(\"bij,bj->bi\", covars, noise)\n    params[\"means\"].add_(noise)\n"
  },
  {
    "path": "gsplat/utils.py",
    "content": "import math\n\nimport torch\nimport torch.nn.functional as F\nfrom torch import Tensor\n\n\ndef normalized_quat_to_rotmat(quat: Tensor) -> Tensor:\n    \"\"\"Convert normalized quaternion to rotation matrix.\n\n    Args:\n        quat: Normalized quaternion in wxyz convension. (..., 4)\n\n    Returns:\n        Rotation matrix (..., 3, 3)\n    \"\"\"\n    assert quat.shape[-1] == 4, quat.shape\n    w, x, y, z = torch.unbind(quat, dim=-1)\n    mat = torch.stack(\n        [\n            1 - 2 * (y**2 + z**2),\n            2 * (x * y - w * z),\n            2 * (x * z + w * y),\n            2 * (x * y + w * z),\n            1 - 2 * (x**2 + z**2),\n            2 * (y * z - w * x),\n            2 * (x * z - w * y),\n            2 * (y * z + w * x),\n            1 - 2 * (x**2 + y**2),\n        ],\n        dim=-1,\n    )\n    return mat.reshape(quat.shape[:-1] + (3, 3))\n\n\ndef log_transform(x):\n    return torch.sign(x) * torch.log1p(torch.abs(x))\n\n\ndef inverse_log_transform(y):\n    return torch.sign(y) * (torch.expm1(torch.abs(y)))\n\n\ndef depth_to_points(\n    depths: Tensor, camtoworlds: Tensor, Ks: Tensor, z_depth: bool = True\n) -> Tensor:\n    \"\"\"Convert depth maps to 3D points\n\n    Args:\n        depths: Depth maps [..., H, W, 1]\n        camtoworlds: Camera-to-world transformation matrices [..., 4, 4]\n        Ks: Camera intrinsics [..., 3, 3]\n        z_depth: Whether the depth is in z-depth (True) or ray depth (False)\n\n    Returns:\n        points: 3D points in the world coordinate system [..., H, W, 3]\n    \"\"\"\n    assert depths.shape[-1] == 1, f\"Invalid depth shape: {depths.shape}\"\n    assert camtoworlds.shape[-2:] == (\n        4,\n        4,\n    ), f\"Invalid viewmats shape: {camtoworlds.shape}\"\n    assert Ks.shape[-2:] == (3, 3), f\"Invalid Ks shape: {Ks.shape}\"\n    assert (\n        depths.shape[:-3] == camtoworlds.shape[:-2] == Ks.shape[:-2]\n    ), f\"Shape mismatch! depths: {depths.shape}, viewmats: {camtoworlds.shape}, Ks: {Ks.shape}\"\n\n    device = depths.device\n    height, width = depths.shape[-3:-1]\n\n    x, y = torch.meshgrid(\n        torch.arange(width, device=device),\n        torch.arange(height, device=device),\n        indexing=\"xy\",\n    )  # [H, W]\n\n    fx = Ks[..., 0, 0]  # [...]\n    fy = Ks[..., 1, 1]  # [...]\n    cx = Ks[..., 0, 2]  # [...]\n    cy = Ks[..., 1, 2]  # [...]\n\n    # camera directions in camera coordinates\n    camera_dirs = F.pad(\n        torch.stack(\n            [\n                (x - cx[..., None, None] + 0.5) / fx[..., None, None],\n                (y - cy[..., None, None] + 0.5) / fy[..., None, None],\n            ],\n            dim=-1,\n        ),\n        (0, 1),\n        value=1.0,\n    )  # [..., H, W, 3]\n\n    # ray directions in world coordinates\n    directions = torch.einsum(\n        \"...ij,...hwj->...hwi\", camtoworlds[..., :3, :3], camera_dirs\n    )  # [..., H, W, 3]\n    origins = camtoworlds[..., :3, -1]  # [..., 3]\n\n    if not z_depth:\n        directions = F.normalize(directions, dim=-1)\n\n    points = origins[..., None, None, :] + depths * directions\n    return points\n\n\ndef depth_to_normal(\n    depths: Tensor, camtoworlds: Tensor, Ks: Tensor, z_depth: bool = True\n) -> Tensor:\n    \"\"\"Convert depth maps to surface normals\n\n    Args:\n        depths: Depth maps [..., H, W, 1]\n        camtoworlds: Camera-to-world transformation matrices [..., 4, 4]\n        Ks: Camera intrinsics [..., 3, 3]\n        z_depth: Whether the depth is in z-depth (True) or ray depth (False)\n\n    Returns:\n        normals: Surface normals in the world coordinate system [..., H, W, 3]\n    \"\"\"\n    points = depth_to_points(depths, camtoworlds, Ks, z_depth=z_depth)  # [..., H, W, 3]\n    dx = torch.cat(\n        [points[..., 2:, 1:-1, :] - points[..., :-2, 1:-1, :]], dim=-3\n    )  # [..., H-2, W-2, 3]\n    dy = torch.cat(\n        [points[..., 1:-1, 2:, :] - points[..., 1:-1, :-2, :]], dim=-2\n    )  # [..., H-2, W-2, 3]\n    normals = F.normalize(torch.cross(dx, dy, dim=-1), dim=-1)  # [..., H-2, W-2, 3]\n    normals = F.pad(normals, (0, 0, 1, 1, 1, 1), value=0.0)  # [..., H, W, 3]\n    return normals\n\n\ndef get_projection_matrix(znear, zfar, fovX, fovY, device=\"cuda\"):\n    \"\"\"Create OpenGL-style projection matrix\"\"\"\n    tanHalfFovY = math.tan((fovY / 2))\n    tanHalfFovX = math.tan((fovX / 2))\n\n    top = tanHalfFovY * znear\n    bottom = -top\n    right = tanHalfFovX * znear\n    left = -right\n\n    P = torch.zeros(4, 4, device=device)\n\n    z_sign = 1.0\n\n    P[0, 0] = 2.0 * znear / (right - left)\n    P[1, 1] = 2.0 * znear / (top - bottom)\n    P[0, 2] = (right + left) / (right - left)\n    P[1, 2] = (top + bottom) / (top - bottom)\n    P[3, 2] = z_sign\n    P[2, 2] = z_sign * zfar / (zfar - znear)\n    P[2, 3] = -(zfar * znear) / (zfar - znear)\n    return P\n\n\n# def depth_to_normal(\n#     depths: Tensor, camtoworlds: Tensor, Ks: Tensor, near_plane: float, far_plane: float\n# ) -> Tensor:\n#     \"\"\"\n#     Convert depth to surface normal\n\n#     Args:\n#         depths: Z-depth of the Gaussians.\n#         camtoworlds: camera to world transformation matrix.\n#         Ks: camera intrinsics.\n#         near_plane: Near plane distance.\n#         far_plane: Far plane distance.\n\n#     Returns:\n#         Surface normals.\n#     \"\"\"\n#     height, width = depths.shape[1:3]\n#     viewmats = torch.linalg.inv(camtoworlds)  # [C, 4, 4]\n\n#     normals = []\n#     for cid, depth in enumerate(depths):\n#         FoVx = 2 * math.atan(width / (2 * Ks[cid, 0, 0].item()))\n#         FoVy = 2 * math.atan(height / (2 * Ks[cid, 1, 1].item()))\n#         world_view_transform = viewmats[cid].transpose(0, 1)\n#         projection_matrix = _get_projection_matrix(\n#             znear=near_plane, zfar=far_plane, fovX=FoVx, fovY=FoVy, device=depths.device\n#         ).transpose(0, 1)\n#         full_proj_transform = (\n#             world_view_transform.unsqueeze(0).bmm(projection_matrix.unsqueeze(0))\n#         ).squeeze(0)\n#         normal = _depth_to_normal(\n#             depth,\n#             world_view_transform,\n#             full_proj_transform,\n#             Ks[cid, 0, 0],\n#             Ks[cid, 1, 1],\n#         )\n#         normals.append(normal)\n#     normals = torch.stack(normals, dim=0)\n#     return normals\n\n\n# # ref: https://github.com/hbb1/2d-gaussian-splatting/blob/61c7b417393d5e0c58b742ad5e2e5f9e9f240cc6/utils/point_utils.py#L26\n# def _depths_to_points(\n#     depthmap, world_view_transform, full_proj_transform, fx, fy\n# ) -> Tensor:\n#     c2w = (world_view_transform.T).inverse()\n#     H, W = depthmap.shape[:2]\n\n#     intrins = (\n#         torch.tensor([[fx, 0.0, W / 2.0], [0.0, fy, H / 2.0], [0.0, 0.0, 1.0]])\n#         .float()\n#         .cuda()\n#     )\n\n#     grid_x, grid_y = torch.meshgrid(\n#         torch.arange(W, device=\"cuda\").float(),\n#         torch.arange(H, device=\"cuda\").float(),\n#         indexing=\"xy\",\n#     )\n#     points = torch.stack([grid_x, grid_y, torch.ones_like(grid_x)], dim=-1).reshape(\n#         -1, 3\n#     )\n#     rays_d = points @ intrins.inverse().T @ c2w[:3, :3].T\n#     rays_o = c2w[:3, 3]\n#     points = depthmap.reshape(-1, 1) * rays_d + rays_o\n#     return points\n\n\n# def _depth_to_normal(\n#     depth, world_view_transform, full_proj_transform, fx, fy\n# ) -> Tensor:\n#     points = _depths_to_points(\n#         depth,\n#         world_view_transform,\n#         full_proj_transform,\n#         fx,\n#         fy,\n#     ).reshape(*depth.shape[:2], 3)\n#     output = torch.zeros_like(points)\n#     dx = torch.cat([points[2:, 1:-1] - points[:-2, 1:-1]], dim=0)\n#     dy = torch.cat([points[1:-1, 2:] - points[1:-1, :-2]], dim=1)\n#     normal_map = torch.nn.functional.normalize(torch.cross(dx, dy, dim=-1), dim=-1)\n#     output[1:-1, 1:-1, :] = normal_map\n#     return output\n\n\n# def _get_projection_matrix(znear, zfar, fovX, fovY, device=\"cuda\") -> Tensor:\n#     tanHalfFovY = math.tan((fovY / 2))\n#     tanHalfFovX = math.tan((fovX / 2))\n\n#     top = tanHalfFovY * znear\n#     bottom = -top\n#     right = tanHalfFovX * znear\n#     left = -right\n\n#     P = torch.zeros(4, 4, device=device)\n\n#     z_sign = 1.0\n\n#     P[0, 0] = 2.0 * znear / (right - left)\n#     P[1, 1] = 2.0 * znear / (top - bottom)\n#     P[0, 2] = (right + left) / (right - left)\n#     P[1, 2] = (top + bottom) / (top - bottom)\n#     P[3, 2] = z_sign\n#     P[2, 2] = z_sign * zfar / (zfar - znear)\n#     P[2, 3] = -(zfar * znear) / (zfar - znear)\n#     return P\n"
  },
  {
    "path": "gsplat/version.py",
    "content": "__version__ = \"1.0.0\"\n"
  },
  {
    "path": "pyproject.toml",
    "content": "[build-system]\n# -- Everything needed just to run setup.py ---------------\nrequires = [\n    \"setuptools>=62\",      # the build backend\n]\nbuild-backend = \"setuptools.build_meta\"\n"
  },
  {
    "path": "setup.py",
    "content": "import glob\nimport os\nimport os.path as osp\nimport platform\nimport sys\n\nfrom setuptools import find_packages, setup\n\n__version__ = None\nexec(open(\"gsplat/version.py\", \"r\").read())\n\nURL = \"https://github.com/nerfstudio-project/gsplat\"\n\nBUILD_CUDA = os.getenv(\"BUILD_CUDA\", \"0\") == \"1\"\nWITH_SYMBOLS = os.getenv(\"WITH_SYMBOLS\", \"0\") == \"1\"\nLINE_INFO = os.getenv(\"LINE_INFO\", \"0\") == \"1\"\n\n\ndef get_ext():\n    from torch.utils.cpp_extension import BuildExtension\n\n    return BuildExtension.with_options(no_python_abi_suffix=True, use_ninja=False)\n\n\ndef get_extensions():\n    import torch\n    from torch.__config__ import parallel_info\n    from torch.utils.cpp_extension import CUDAExtension\n\n    extensions_dir = osp.join(\"gsplat\", \"cuda\", \"csrc\")\n    sources = glob.glob(osp.join(extensions_dir, \"*.cu\")) + glob.glob(\n        osp.join(extensions_dir, \"*.cpp\")\n    )\n    sources = [path for path in sources if \"hip\" not in path]\n\n    undef_macros = []\n    define_macros = []\n\n    if sys.platform == \"win32\":\n        define_macros += [(\"gsplat_EXPORTS\", None)]\n\n    extra_compile_args = {\"cxx\": [\"-O3\"]}\n    if not os.name == \"nt\":  # Not on Windows:\n        extra_compile_args[\"cxx\"] += [\"-Wno-sign-compare\"]\n    extra_link_args = [] if WITH_SYMBOLS else [\"-s\"]\n\n    info = parallel_info()\n    if (\n        \"backend: OpenMP\" in info\n        and \"OpenMP not found\" not in info\n        and sys.platform != \"darwin\"\n    ):\n        extra_compile_args[\"cxx\"] += [\"-DAT_PARALLEL_OPENMP\"]\n        if sys.platform == \"win32\":\n            extra_compile_args[\"cxx\"] += [\"/openmp\"]\n        else:\n            extra_compile_args[\"cxx\"] += [\"-fopenmp\"]\n    else:\n        print(\"Compiling without OpenMP...\")\n\n    # Compile for mac arm64\n    if sys.platform == \"darwin\" and platform.machine() == \"arm64\":\n        extra_compile_args[\"cxx\"] += [\"-arch\", \"arm64\"]\n        extra_link_args += [\"-arch\", \"arm64\"]\n\n    nvcc_flags = os.getenv(\"NVCC_FLAGS\", \"\")\n    nvcc_flags = [] if nvcc_flags == \"\" else nvcc_flags.split(\" \")\n    nvcc_flags += [\"-O3\", \"--use_fast_math\"]\n    if LINE_INFO:\n        nvcc_flags += [\"-lineinfo\"]\n    if torch.version.hip:\n        # USE_ROCM was added to later versions of PyTorch.\n        # Define here to support older PyTorch versions as well:\n        define_macros += [(\"USE_ROCM\", None)]\n        undef_macros += [\"__HIP_NO_HALF_CONVERSIONS__\"]\n    else:\n        nvcc_flags += [\"--expt-relaxed-constexpr\"]\n    extra_compile_args[\"nvcc\"] = nvcc_flags\n    if sys.platform == \"win32\":\n        extra_compile_args[\"nvcc\"] += [\"-DWIN32_LEAN_AND_MEAN\"]\n\n    extension = CUDAExtension(\n        f\"gsplat.csrc\",\n        sources,\n        include_dirs=[extensions_dir],\n        define_macros=define_macros,\n        undef_macros=undef_macros,\n        extra_compile_args=extra_compile_args,\n        extra_link_args=extra_link_args,\n    )\n\n    return [extension]\n\n\nsetup(\n    name=\"gsplat\",\n    version=__version__,\n    description=\" Python package for differentiable rasterization of gaussians\",\n    keywords=\"gaussian, splatting, cuda\",\n    url=URL,\n    download_url=f\"{URL}/archive/gsplat-{__version__}.tar.gz\",\n    python_requires=\">=3.7\",\n    install_requires=[\n        \"ninja\",\n        \"numpy\",\n        \"jaxtyping\",\n        \"rich>=12\",\n        \"torch\",\n        \"typing_extensions; python_version<'3.8'\",\n    ],\n    extras_require={\n        # dev dependencies. Install them by `pip install gsplat[dev]`\n        \"dev\": [\n            \"black[jupyter]==22.3.0\",\n            \"isort==5.10.1\",\n            \"pylint==2.13.4\",\n            \"pytest==7.1.2\",\n            \"pytest-xdist==2.5.0\",\n            \"typeguard>=2.13.3\",\n            \"pyyaml==6.0\",\n            \"build\",\n            \"twine\",\n        ],\n    },\n    ext_modules=get_extensions() if BUILD_CUDA else [],\n    cmdclass={\"build_ext\": get_ext()} if BUILD_CUDA else {},\n    packages=find_packages(),\n    # https://github.com/pypa/setuptools/issues/1461#issuecomment-954725244\n    include_package_data=True,\n)\n"
  },
  {
    "path": "tests/_test_distributed.py",
    "content": "import pytest\nimport torch\n\nfrom gsplat.distributed import (\n    all_gather_int32,\n    all_gather_tensor_list,\n    all_to_all_int32,\n    all_to_all_tensor_list,\n    cli,\n)\n\n\ndef _main_all_gather_int32(local_rank: int, world_rank: int, world_size: int, _):\n    device = torch.device(\"cuda\", local_rank)\n\n    value = world_rank\n    collected = all_gather_int32(world_size, value, device=device)\n    for i in range(world_size):\n        assert collected[i] == i\n\n    value = torch.tensor(world_rank, device=device, dtype=torch.int)\n    collected = all_gather_int32(world_size, value, device=device)\n    for i in range(world_size):\n        assert collected[i] == torch.tensor(i, device=device, dtype=torch.int)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_all_gather_int32():\n    cli(_main_all_gather_int32, None, verbose=True)\n\n\ndef _main_all_to_all_int32(local_rank: int, world_rank: int, world_size: int, _):\n    device = torch.device(\"cuda\", local_rank)\n\n    values = list(range(world_size))\n    collected = all_to_all_int32(world_size, values, device=device)\n    for i in range(world_size):\n        assert collected[i] == world_rank\n\n    values = torch.arange(world_size, device=device, dtype=torch.int)\n    collected = all_to_all_int32(world_size, values, device=device)\n    for i in range(world_size):\n        assert collected[i] == torch.tensor(world_rank, device=device, dtype=torch.int)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_all_to_all_int32():\n    cli(_main_all_to_all_int32, None, verbose=True)\n\n\ndef _main_all_gather_tensor_list(local_rank: int, world_rank: int, world_size: int, _):\n    device = torch.device(\"cuda\", local_rank)\n    N = 10\n\n    tensor_list = [\n        torch.full((N, 2), world_rank, device=device),\n        torch.full((N, 3, 3), world_rank, device=device),\n    ]\n\n    target_list = [\n        torch.cat([torch.full((N, 2), i, device=device) for i in range(world_size)]),\n        torch.cat([torch.full((N, 3, 3), i, device=device) for i in range(world_size)]),\n    ]\n\n    collected = all_gather_tensor_list(world_size, tensor_list)\n    for tensor, target in zip(collected, target_list):\n        assert torch.equal(tensor, target)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_all_gather_tensor_list():\n    cli(_main_all_gather_tensor_list, None, verbose=True)\n\n\ndef _main_all_to_all_tensor_list(local_rank: int, world_rank: int, world_size: int, _):\n    device = torch.device(\"cuda\", local_rank)\n    splits = torch.arange(0, world_size, device=device)\n    N = splits.sum().item()\n\n    tensor_list = [\n        torch.full((N, 2), world_rank, device=device),\n        torch.full((N, 3, 3), world_rank, device=device),\n    ]\n\n    target_list = [\n        torch.cat(\n            [\n                torch.full((splits[world_rank], 2), i, device=device)\n                for i in range(world_size)\n            ]\n        ),\n        torch.cat(\n            [\n                torch.full((splits[world_rank], 3, 3), i, device=device)\n                for i in range(world_size)\n            ]\n        ),\n    ]\n\n    collected = all_to_all_tensor_list(world_size, tensor_list, splits)\n    for tensor, target in zip(collected, target_list):\n        assert torch.equal(tensor, target)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_all_to_all_tensor_list():\n    cli(_main_all_to_all_tensor_list, None, verbose=True)\n\n\nif __name__ == \"__main__\":\n    test_all_gather_int32()\n    test_all_to_all_int32()\n    test_all_gather_tensor_list()\n    test_all_to_all_tensor_list()\n"
  },
  {
    "path": "tests/test_basic.py",
    "content": "\"\"\"Tests for the functions in the CUDA extension.\n\nUsage:\n```bash\npytest <THIS_PY_FILE> -s\n```\n\"\"\"\n\nimport math\n\nimport pytest\nimport torch\nfrom gsplat._helper import load_test_data\n\ndevice = torch.device(\"cuda:0\")\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.fixture\ndef test_data():\n    (\n        means,\n        quats,\n        scales,\n        opacities,\n        colors,\n        viewmats,\n        Ks,\n        width,\n        height,\n    ) = load_test_data(device=device)\n    colors = colors[None].repeat(len(viewmats), 1, 1)\n    return {\n        \"means\": means,\n        \"quats\": quats,\n        \"scales\": scales,\n        \"opacities\": opacities,\n        \"colors\": colors,\n        \"viewmats\": viewmats,\n        \"Ks\": Ks,\n        \"width\": width,\n        \"height\": height,\n        \"min_azimuth\": -180,\n        \"max_azimuth\": 180,\n        \"min_elevation\": -45 - 1e-2,\n        \"max_elevation\": 45 + 1e-2,\n        \"velocities\": torch.randn_like(means, requires_grad=True, device=device) * 0.1,\n        \"linear_velocity\": torch.randn(viewmats.shape[0], 3, device=device) * 0.5,\n        \"angular_velocity\": torch.randn(viewmats.shape[0], 3, device=device) * 0.1,\n        \"rolling_shutter_time\": torch.ones(viewmats.shape[0], device=device) * 0.01,\n        \"n_elev_channels\": 32,\n        \"tile_height\": 4,\n        \"tile_width\": 64,\n        \"azim_resolution\": 0.2,\n    }\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"triu\", [False, True])\ndef test_quat_scale_to_covar_preci(test_data, triu: bool):\n    from gsplat.cuda._torch_impl import _quat_scale_to_covar_preci\n    from gsplat.cuda._wrapper import quat_scale_to_covar_preci\n\n    torch.manual_seed(42)\n\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"]\n    quats.requires_grad = True\n    scales.requires_grad = True\n\n    # forward\n    covars, precis = quat_scale_to_covar_preci(quats, scales, triu=triu)\n    _covars, _precis = _quat_scale_to_covar_preci(quats, scales, triu=triu)\n    torch.testing.assert_close(covars, _covars)\n    # This test is disabled because the numerical instability.\n    # torch.testing.assert_close(precis, _precis, rtol=2e-2, atol=1e-2)\n    # if not triu:\n    #     I = torch.eye(3, device=device).expand(len(covars), 3, 3)\n    #     torch.testing.assert_close(torch.bmm(covars, precis), I)\n    #     torch.testing.assert_close(torch.bmm(precis, covars), I)\n\n    # backward\n    v_covars = torch.randn_like(covars)\n    v_precis = torch.randn_like(precis) * 0.01\n    v_quats, v_scales = torch.autograd.grad(\n        (covars * v_covars + precis * v_precis).sum(),\n        (quats, scales),\n    )\n    _v_quats, _v_scales = torch.autograd.grad(\n        (_covars * v_covars + _precis * v_precis).sum(),\n        (quats, scales),\n    )\n    torch.testing.assert_close(v_quats, _v_quats, rtol=1e-1, atol=1e-1)\n    torch.testing.assert_close(v_scales, _v_scales, rtol=1e-1, atol=1e-1)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_world_to_cam(test_data):\n    from gsplat.cuda._torch_impl import _world_to_cam\n    from gsplat.cuda._wrapper import quat_scale_to_covar_preci, world_to_cam\n\n    torch.manual_seed(42)\n\n    viewmats = test_data[\"viewmats\"]\n    means = test_data[\"means\"]\n    scales = test_data[\"scales\"]\n    quats = test_data[\"quats\"]\n    covars, _ = quat_scale_to_covar_preci(quats, scales)\n    means.requires_grad = True\n    covars.requires_grad = True\n    viewmats.requires_grad = True\n\n    # forward\n    means_c, covars_c = world_to_cam(means, covars, viewmats)\n    _means_c, _covars_c = _world_to_cam(means, covars, viewmats)\n    torch.testing.assert_close(means_c, _means_c)\n    torch.testing.assert_close(covars_c, _covars_c)\n\n    # backward\n    v_means_c = torch.randn_like(means_c)\n    v_covars_c = torch.randn_like(covars_c)\n    v_means, v_covars, v_viewmats = torch.autograd.grad(\n        (means_c * v_means_c).sum() + (covars_c * v_covars_c).sum(),\n        (means, covars, viewmats),\n    )\n    _v_means, _v_covars, _v_viewmats = torch.autograd.grad(\n        (_means_c * v_means_c).sum() + (_covars_c * v_covars_c).sum(),\n        (means, covars, viewmats),\n    )\n    torch.testing.assert_close(v_means, _v_means)\n    torch.testing.assert_close(v_covars, _v_covars)\n    torch.testing.assert_close(v_viewmats, _v_viewmats, rtol=1e-3, atol=1e-3)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_persp_proj(test_data):\n    from gsplat.cuda._torch_impl import _persp_proj\n    from gsplat.cuda._wrapper import persp_proj, quat_scale_to_covar_preci, world_to_cam\n\n    torch.manual_seed(42)\n\n    Ks = test_data[\"Ks\"]\n    viewmats = test_data[\"viewmats\"]\n    height = test_data[\"height\"]\n    width = test_data[\"width\"]\n    covars, _ = quat_scale_to_covar_preci(test_data[\"quats\"], test_data[\"scales\"])\n    means, covars = world_to_cam(test_data[\"means\"], covars, viewmats)\n    means.requires_grad = True\n    covars.requires_grad = True\n\n    # forward\n    means2d, covars2d = persp_proj(means, covars, Ks, width, height)\n    _means2d, _covars2d = _persp_proj(means, covars, Ks, width, height)\n    torch.testing.assert_close(means2d, _means2d, rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(covars2d, _covars2d, rtol=1e-1, atol=3e-2)\n\n    # backward\n    v_means2d = torch.randn_like(means2d)\n    v_covars2d = torch.randn_like(covars2d)\n    v_means, v_covars = torch.autograd.grad(\n        (means2d * v_means2d).sum() + (covars2d * v_covars2d).sum(),\n        (means, covars),\n    )\n    _v_means, _v_covars = torch.autograd.grad(\n        (_means2d * v_means2d).sum() + (_covars2d * v_covars2d).sum(),\n        (means, covars),\n    )\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-2, atol=1e-2)\n    torch.testing.assert_close(v_covars, _v_covars, rtol=1e-1, atol=1e-1)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"calc_depth_comp_grads\", [False, True])\ndef test_lidar_proj(test_data, calc_depth_comp_grads: bool):\n    from gsplat.cuda._torch_impl import _lidar_proj\n    from gsplat.cuda._wrapper import lidar_proj, quat_scale_to_covar_preci, world_to_cam\n\n    torch.manual_seed(42)\n\n    viewmats = test_data[\"viewmats\"]\n    covars, _ = quat_scale_to_covar_preci(test_data[\"quats\"], test_data[\"scales\"])\n    means, covars = world_to_cam(test_data[\"means\"], covars, viewmats)\n    means.requires_grad = True\n    covars.requires_grad = True\n\n    # forward\n    means2d, covars2d, depth_comp = lidar_proj(means, covars, eps2d=1e-3)\n    _means2d, _covars2d, _r, _depth_comp = _lidar_proj(means, covars, eps2d=1e-3)\n    well_behaved = (means2d[..., -1] > -70) & (means2d[..., -1] < 70)\n    torch.testing.assert_close(means2d, _means2d, rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(covars2d, _covars2d, rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(depth_comp[well_behaved], _depth_comp[well_behaved], rtol=1e-2, atol=1e-2)\n\n    # backward\n    v_means2d = torch.randn_like(means2d) * well_behaved[..., None] * (0 if calc_depth_comp_grads else 1)\n    v_covars2d = torch.randn_like(covars2d) * well_behaved[..., None, None] * (0 if calc_depth_comp_grads else 1)\n    v_depth_comp = torch.randn_like(depth_comp) * well_behaved[..., None] * (1 if calc_depth_comp_grads else 0)\n    v_means, v_covars = torch.autograd.grad(\n        (means2d * v_means2d).sum() + (covars2d * v_covars2d).sum() + (depth_comp * v_depth_comp).sum(),\n        (means, covars),\n    )\n    _v_means, _v_covars = torch.autograd.grad(\n        (_means2d * v_means2d).sum() + (_covars2d * v_covars2d).sum() + (_depth_comp * v_depth_comp).sum(),\n        (means, covars),\n    )\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_covars, _v_covars, rtol=5e-2, atol=1e-2)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_compute_lidar_velocity(test_data):\n    from gsplat.cuda._torch_impl import _compute_lidar_velocity\n    from gsplat.cuda._wrapper import compute_lidar_velocity, quat_scale_to_covar_preci, world_to_cam\n\n    torch.manual_seed(42)\n\n    viewmats = test_data[\"viewmats\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    covars, _ = quat_scale_to_covar_preci(test_data[\"quats\"], test_data[\"scales\"])\n    means, _ = world_to_cam(test_data[\"means\"], covars, viewmats)\n    velocities = test_data[\"velocities\"].repeat(len(viewmats), 1, 1)\n    means.requires_grad = True\n\n    # forward\n    spherical_vel = compute_lidar_velocity(means, linear_velocity, angular_velocity, velocities)\n    _spherical_vel = _compute_lidar_velocity(means, linear_velocity, angular_velocity, velocities)\n    torch.testing.assert_close(spherical_vel, _spherical_vel, rtol=1e-4, atol=1e-4)\n\n    # backward\n    v_spherical_vel = torch.randn_like(spherical_vel)\n    v_means, v_velocities = torch.autograd.grad(\n        (spherical_vel * v_spherical_vel).sum(),\n        (means, velocities),\n    )\n    _v_means, _v_velocities = torch.autograd.grad(\n        (_spherical_vel * v_spherical_vel).sum(),\n        (means, velocities),\n    )\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_velocities, _v_velocities, rtol=1e-5, atol=1e-3)\n\n\npytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n\n\ndef test_compute_pix_velocity(test_data):\n    from gsplat.cuda._torch_impl import _compute_pix_velocity\n    from gsplat.cuda._wrapper import compute_pix_velocity, quat_scale_to_covar_preci, world_to_cam\n\n    torch.manual_seed(42)\n\n    viewmats = test_data[\"viewmats\"]\n    Ks = test_data[\"Ks\"]\n    width = test_data[\"width\"]\n    height = test_data[\"height\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    covars, _ = quat_scale_to_covar_preci(test_data[\"quats\"], test_data[\"scales\"])\n    means, _ = world_to_cam(test_data[\"means\"], covars, viewmats)\n    velocities = test_data[\"velocities\"].repeat(len(viewmats), 1, 1)\n    means.requires_grad = True\n    valid = means[..., -1] > 1e-2\n\n    # forward\n    pix_vel = compute_pix_velocity(means, linear_velocity, angular_velocity, velocities, Ks, width, height)\n    _pix_vel = _compute_pix_velocity(means, linear_velocity, angular_velocity, velocities, Ks, width, height)\n    torch.testing.assert_close(pix_vel[valid], _pix_vel[valid], rtol=1e-3, atol=1e-3)\n\n    # backward\n    v_pix_vel = torch.randn_like(pix_vel) * valid[..., None]\n    v_means, v_velocities = torch.autograd.grad(\n        (pix_vel * v_pix_vel).sum(),\n        (means, velocities),\n    )\n    _v_means, _v_velocities = torch.autograd.grad(\n        (_pix_vel * v_pix_vel).sum(),\n        (means, velocities),\n    )\n    torch.testing.assert_close(v_means, _v_means, rtol=2e-3, atol=1e-3)\n    torch.testing.assert_close(v_velocities, _v_velocities, rtol=1e-3, atol=1e-3)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"fused\", [False, True])\n@pytest.mark.parametrize(\"calc_compensations\", [False, True])\n@pytest.mark.parametrize(\"use_velocities\", [False, True])\ndef test_projection(test_data, fused: bool, calc_compensations: bool, use_velocities: bool):\n    from gsplat.cuda._torch_impl import _fully_fused_projection\n    from gsplat.cuda._wrapper import fully_fused_projection, quat_scale_to_covar_preci\n\n    torch.manual_seed(42)\n\n    Ks = test_data[\"Ks\"]\n    viewmats = test_data[\"viewmats\"]\n    height = test_data[\"height\"]\n    width = test_data[\"width\"]\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"]\n    means = test_data[\"means\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    rolling_shutter_time = test_data[\"rolling_shutter_time\"]\n    velocities = test_data[\"velocities\"] if use_velocities else None\n    viewmats.requires_grad = True\n    quats.requires_grad = True\n    scales.requires_grad = True\n    means.requires_grad = True\n\n    # forward\n    if fused:\n        radii, means2d, depths, conics, compensations, pix_vels = fully_fused_projection(\n            means,\n            None,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            calc_compensations=calc_compensations,\n        )\n    else:\n        covars, _ = quat_scale_to_covar_preci(quats, scales, triu=True)  # [N, 6]\n        radii, means2d, depths, conics, compensations, pix_vels = fully_fused_projection(\n            means,\n            covars,\n            None,\n            None,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            calc_compensations=calc_compensations,\n        )\n    _covars, _ = quat_scale_to_covar_preci(quats, scales, triu=False)  # [N, 3, 3]\n    _radii, _means2d, _depths, _conics, _compensations, _pix_vels = _fully_fused_projection(\n        means,\n        _covars,\n        velocities,\n        viewmats,\n        Ks,\n        width,\n        height,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n        calc_compensations=calc_compensations,\n    )\n\n    # radii is integer so we allow for 1 unit difference\n    valid = (radii[..., 0] > 0) & (_radii[..., 0] > 0)\n    torch.testing.assert_close(radii[valid], _radii[valid], rtol=0, atol=1)\n    torch.testing.assert_close(means2d[valid], _means2d[valid], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(depths[valid], _depths[valid], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(conics[valid], _conics[valid], rtol=1e-4, atol=1e-4)\n    if calc_compensations:\n        torch.testing.assert_close(compensations[valid], _compensations[valid], rtol=1e-4, atol=1e-3)\n    torch.testing.assert_close(pix_vels[valid], _pix_vels[valid], rtol=1e-4, atol=1e-4)\n\n    # backward\n    v_means2d = torch.randn_like(means2d) * valid[..., None]\n    v_depths = torch.randn_like(depths) * valid\n    v_conics = torch.randn_like(conics) * valid[..., None]\n    if calc_compensations:\n        v_compensations = torch.randn_like(compensations) * valid\n    v_pix_vels = torch.randn_like(pix_vels) * valid[..., None]\n    v_viewmats, v_quats, v_scales, v_means = torch.autograd.grad(\n        (means2d * v_means2d).sum()\n        + (depths * v_depths).sum()\n        + (conics * v_conics).sum()\n        + ((compensations * v_compensations).sum() if calc_compensations else 0)\n        + (pix_vels * v_pix_vels).sum(),\n        (viewmats, quats, scales, means),\n    )\n    _v_viewmats, _v_quats, _v_scales, _v_means = torch.autograd.grad(\n        (_means2d * v_means2d).sum()\n        + (_depths * v_depths).sum()\n        + (_conics * v_conics).sum()\n        + ((_compensations * v_compensations).sum() if calc_compensations else 0)\n        + (_pix_vels * v_pix_vels).sum(),\n        (viewmats, quats, scales, means),\n    )\n\n    torch.testing.assert_close(v_viewmats, _v_viewmats, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_quats, _v_quats, rtol=2e-1, atol=1e-2)\n    torch.testing.assert_close(v_scales, _v_scales, rtol=1e-1, atol=2e-1)\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-2, atol=6e-2)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"fused\", [False, True])\n@pytest.mark.parametrize(\"sparse_grad\", [False, True])\n@pytest.mark.parametrize(\"calc_compensations\", [False, True])\ndef test_fully_fused_projection_packed(test_data, fused: bool, sparse_grad: bool, calc_compensations: bool):\n    from gsplat.cuda._wrapper import fully_fused_projection, quat_scale_to_covar_preci\n\n    torch.manual_seed(42)\n\n    Ks = test_data[\"Ks\"]\n    viewmats = test_data[\"viewmats\"]\n    height = test_data[\"height\"]\n    width = test_data[\"width\"]\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"]\n    means = test_data[\"means\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    rolling_shutter_time = test_data[\"rolling_shutter_time\"]\n    velocities = test_data[\"velocities\"]\n    viewmats.requires_grad = True\n    quats.requires_grad = True\n    scales.requires_grad = True\n    means.requires_grad = True\n\n    # forward\n    if fused:\n        (\n            camera_ids,\n            gaussian_ids,\n            radii,\n            means2d,\n            depths,\n            conics,\n            compensations,\n            pix_vels,\n        ) = fully_fused_projection(\n            means,\n            None,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            packed=True,\n            sparse_grad=sparse_grad,\n            calc_compensations=calc_compensations,\n        )\n        _radii, _means2d, _depths, _conics, _compensations, _pix_vels = fully_fused_projection(\n            means,\n            None,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            packed=False,\n            calc_compensations=calc_compensations,\n        )\n    else:\n        covars, _ = quat_scale_to_covar_preci(quats, scales, triu=True)  # [N, 6]\n        (\n            camera_ids,\n            gaussian_ids,\n            radii,\n            means2d,\n            depths,\n            conics,\n            compensations,\n            pix_vels,\n        ) = fully_fused_projection(\n            means,\n            covars,\n            None,\n            None,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            packed=True,\n            sparse_grad=sparse_grad,\n            calc_compensations=calc_compensations,\n        )\n        _radii, _means2d, _depths, _conics, _compensations, _pix_vels = fully_fused_projection(\n            means,\n            covars,\n            None,\n            None,\n            velocities,\n            viewmats,\n            Ks,\n            width,\n            height,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            packed=False,\n            calc_compensations=calc_compensations,\n        )\n\n    # recover packed tensors to full matrices for testing\n    __radii = torch.sparse_coo_tensor(torch.stack([camera_ids, gaussian_ids]), radii, _radii.shape).to_dense()\n    __means2d = torch.sparse_coo_tensor(torch.stack([camera_ids, gaussian_ids]), means2d, _means2d.shape).to_dense()\n    __depths = torch.sparse_coo_tensor(torch.stack([camera_ids, gaussian_ids]), depths, _depths.shape).to_dense()\n    __conics = torch.sparse_coo_tensor(torch.stack([camera_ids, gaussian_ids]), conics, _conics.shape).to_dense()\n    __pix_vels = torch.sparse_coo_tensor(torch.stack([camera_ids, gaussian_ids]), pix_vels, _pix_vels.shape).to_dense()\n    if calc_compensations:\n        __compensations = torch.sparse_coo_tensor(\n            torch.stack([camera_ids, gaussian_ids]), compensations, _compensations.shape\n        ).to_dense()\n    sel = (__radii[..., 0] > 0) & (_radii[..., 0] > 0)\n    torch.testing.assert_close(__radii[sel], _radii[sel], rtol=0, atol=1)\n    torch.testing.assert_close(__means2d[sel], _means2d[sel], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(__depths[sel], _depths[sel], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(__conics[sel], _conics[sel], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(__pix_vels[sel], _pix_vels[sel], rtol=1e-4, atol=1e-4)\n    if calc_compensations:\n        torch.testing.assert_close(__compensations[sel], _compensations[sel], rtol=1e-4, atol=1e-3)\n\n    # backward\n    v_means2d = torch.randn_like(_means2d) * sel[..., None]\n    v_depths = torch.randn_like(_depths) * sel\n    v_conics = torch.randn_like(_conics) * sel[..., None]\n    v_pix_vels = torch.randn_like(_pix_vels) * sel[..., None]\n    _v_viewmats, _v_quats, _v_scales, _v_means = torch.autograd.grad(\n        (_means2d * v_means2d).sum()\n        + (_depths * v_depths).sum()\n        + (_conics * v_conics).sum()\n        + (_pix_vels * v_pix_vels).sum(),\n        (viewmats, quats, scales, means),\n        retain_graph=True,\n    )\n    v_viewmats, v_quats, v_scales, v_means = torch.autograd.grad(\n        (means2d * v_means2d[__radii[..., 0] > 0]).sum()\n        + (depths * v_depths[__radii[..., 0] > 0]).sum()\n        + (conics * v_conics[__radii[..., 0] > 0]).sum()\n        + (pix_vels * v_pix_vels[__radii[..., 0] > 0]).sum(),\n        (viewmats, quats, scales, means),\n        retain_graph=True,\n    )\n    if sparse_grad:\n        v_quats = v_quats.to_dense()\n        v_scales = v_scales.to_dense()\n        v_means = v_means.to_dense()\n\n    torch.testing.assert_close(v_viewmats, _v_viewmats, rtol=1e-2, atol=1e-2)\n    torch.testing.assert_close(v_quats, _v_quats, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_scales, _v_scales, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-3, atol=1e-3)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"fused\", [False, True])\n@pytest.mark.parametrize(\"calc_compensations\", [False, True])\n@pytest.mark.parametrize(\"use_velocities\", [True, False])\ndef test_lidar_projection(test_data, fused: bool, calc_compensations: bool, use_velocities: bool):\n    from gsplat.cuda._torch_impl import _fully_fused_lidar_projection\n    from gsplat.cuda._wrapper import fully_fused_lidar_projection, quat_scale_to_covar_preci\n\n    torch.manual_seed(42)\n    rescaling_factor = 100\n\n    viewmats = test_data[\"viewmats\"]\n    world2cam = viewmats\n    lidar2cam = torch.eye(4, device=device).expand(len(viewmats), -1, -1).clone()\n    rot = torch.tensor([[1, 0, 0], [0, 0, -1], [0, 1, 0]])\n    lidar2cam[:, :3, :3] = rot\n    cam2lidar = lidar2cam.inverse()\n    world2lidar = cam2lidar @ world2cam\n    lidar2world = world2lidar.inverse()\n    lidar2world[:, :3, 3] *= rescaling_factor\n    viewmats = lidar2world.inverse()\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"] * rescaling_factor\n    means = test_data[\"means\"] * rescaling_factor\n    min_azimuth = test_data[\"min_azimuth\"]\n    max_azimuth = test_data[\"max_azimuth\"]\n    min_elevation = test_data[\"min_elevation\"]\n    max_elevation = test_data[\"max_elevation\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    rolling_shutter_time = test_data[\"rolling_shutter_time\"]\n    velocities = test_data[\"velocities\"] if use_velocities else None\n\n    viewmats.requires_grad = True\n    quats.requires_grad = True\n    scales.requires_grad = True\n    means.requires_grad = True\n\n    # forward\n    if fused:\n        radii, means2d, depths, conics, compensations, pix_vels, depth_compensations = fully_fused_lidar_projection(\n            means,\n            None,\n            quats,\n            scales,\n            velocities,\n            viewmats,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            calc_compensations=calc_compensations,\n        )\n    else:\n        covars, _ = quat_scale_to_covar_preci(quats, scales, triu=True)  # [N, 6]\n        radii, means2d, depths, conics, compensations, pix_vels, depth_compensations = fully_fused_lidar_projection(\n            means,\n            covars,\n            None,\n            None,\n            velocities,\n            viewmats,\n            linear_velocity,\n            angular_velocity,\n            rolling_shutter_time,\n            min_elevation,\n            max_elevation,\n            min_azimuth,\n            max_azimuth,\n            calc_compensations=calc_compensations,\n        )\n    _covars, _ = quat_scale_to_covar_preci(quats, scales, triu=False)  # [N, 3, 3]\n    _radii, _means2d, _depths, _conics, _compensations, _pix_vels, _depth_compensations = _fully_fused_lidar_projection(\n        means,\n        _covars,\n        velocities,\n        viewmats,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n        min_elevation,\n        max_elevation,\n        min_azimuth,\n        max_azimuth,\n        calc_compensations=calc_compensations,\n    )\n\n    valid = (radii[..., 0] > 0) & (_radii[..., 0] > 0)\n    torch.testing.assert_close(radii[valid], _radii[valid], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(means2d[valid], _means2d[valid], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(depths[valid], _depths[valid], rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(conics[valid], _conics[valid], rtol=1e-3, atol=1e-3)\n    if calc_compensations:\n        torch.testing.assert_close(compensations[valid], _compensations[valid], rtol=1e-3, atol=2e-3)\n    torch.testing.assert_close(pix_vels[valid], _pix_vels[valid], rtol=2e-4, atol=1e-4)\n    torch.testing.assert_close(depth_compensations[valid], _depth_compensations[valid], rtol=1e-1, atol=1e-2)\n\n    # # backward\n    v_means2d = torch.randn_like(means2d) * valid[..., None]\n    v_depths = torch.randn_like(depths) * valid\n    v_conics = torch.randn_like(conics) * valid[..., None]\n    if calc_compensations:\n        v_compensations = torch.randn_like(compensations) * valid\n    v_pix_vels = torch.randn_like(pix_vels) * valid[..., None]\n    v_depth_compensations = torch.randn_like(depth_compensations) * valid[..., None]\n    v_viewmats, v_quats, v_scales, v_means = torch.autograd.grad(\n        (means2d * v_means2d).sum()\n        + (depths * v_depths).sum()\n        + (conics * v_conics).sum()\n        + ((compensations * v_compensations).sum() if calc_compensations else 0)\n        + (pix_vels * v_pix_vels).sum()\n        + (depth_compensations * v_depth_compensations).sum(),\n        (viewmats, quats, scales, means),\n    )\n    _v_viewmats, _v_quats, _v_scales, _v_means = torch.autograd.grad(\n        (_means2d * v_means2d).sum()\n        + (_depths * v_depths).sum()\n        + (_conics * v_conics).sum()\n        + ((_compensations * v_compensations).sum() if calc_compensations else 0)\n        + (_pix_vels * v_pix_vels).sum()\n        + (_depth_compensations * v_depth_compensations).sum(),\n        (viewmats, quats, scales, means),\n    )\n\n    torch.testing.assert_close(v_viewmats, _v_viewmats, rtol=1e-2, atol=1e-3)\n    torch.testing.assert_close(v_quats, _v_quats, rtol=2e-1, atol=1e-1)\n    torch.testing.assert_close(v_scales, _v_scales, rtol=2e-1, atol=5e-1)\n    torch.testing.assert_close(v_means, _v_means, rtol=1e-2, atol=6e-2)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_isect(test_data):\n    from gsplat.cuda._torch_impl import _isect_offset_encode, _isect_tiles\n    from gsplat.cuda._wrapper import isect_offset_encode, isect_tiles\n\n    torch.manual_seed(42)\n\n    C, N = 3, 1000\n    width, height = 40, 60\n    means2d = torch.randn(C, N, 2, device=device) * width\n    radii = torch.randint(0, width, (C, N, 2), device=device, dtype=torch.int32)\n    depths = torch.rand(C, N, device=device)\n\n    tile_size = 16\n    tile_width = math.ceil(width / tile_size)\n    tile_height = math.ceil(height / tile_size)\n\n    tiles_per_gauss, isect_ids, flatten_ids = isect_tiles(means2d, radii, depths, tile_size, tile_width, tile_height)\n    isect_offsets = isect_offset_encode(isect_ids, C, tile_width, tile_height)\n\n    _tiles_per_gauss, _isect_ids, _gauss_ids = _isect_tiles(means2d, radii, depths, tile_size, tile_width, tile_height)\n    _isect_offsets = _isect_offset_encode(_isect_ids, C, tile_width, tile_height)\n\n    torch.testing.assert_close(tiles_per_gauss, _tiles_per_gauss)\n    torch.testing.assert_close(isect_ids, _isect_ids)\n    torch.testing.assert_close(flatten_ids, _gauss_ids)\n    torch.testing.assert_close(isect_offsets, _isect_offsets)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_isect_lidar(test_data):\n    from gsplat.cuda._torch_impl import _isect_lidar_tiles, _isect_offset_encode\n    from gsplat.cuda._wrapper import isect_lidar_tiles, isect_offset_encode\n\n    torch.manual_seed(42)\n\n    C, N = 3, 100\n    width, height = 360.0, 90.0\n    min_azimuth = -180\n\n    min_elev = -height / 2.0\n    tile_elev_res = height / 16\n\n    azim_resolution = 0.2\n    tile_azim_resolution = azim_resolution * 16\n    n_azim_tiles = math.ceil(360 / tile_azim_resolution)\n\n    n_elev_tiles = 16\n    elev_boundaries = torch.linspace(-height / 2.0, height / 2.0, n_elev_tiles + 1, device=device)\n\n    means2d = torch.zeros((C, N, 2), device=device)\n    means2d[:, :, 0] = torch.rand(C, N, device=device) * width - width / 2\n    means2d[:, :, 1] = torch.rand(C, N, device=device) * height - height / 2\n    radii = torch.rand(C, N, 2, device=device, dtype=torch.float32) / 2\n    depths = torch.rand(C, N, device=device)\n\n    tiles_per_gauss, isect_ids, flatten_ids = isect_lidar_tiles(\n        means2d, radii, depths, elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    isect_offsets = isect_offset_encode(isect_ids, C, n_azim_tiles, n_elev_tiles)\n\n    _tiles_per_gauss, _isect_ids, _gauss_ids = _isect_lidar_tiles(\n        means2d, radii, depths, elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    _isect_offsets = _isect_offset_encode(_isect_ids, C, n_azim_tiles, n_elev_tiles)\n\n    torch.testing.assert_close(tiles_per_gauss, _tiles_per_gauss)\n    torch.testing.assert_close(isect_ids, _isect_ids)\n    torch.testing.assert_close(flatten_ids, _gauss_ids)\n    torch.testing.assert_close(isect_offsets, _isect_offsets)\n\n    first_tile_ids = _gauss_ids[: _isect_offsets[0, 0, 1]]\n    gauss_azim_lb = means2d.view(-1, 2)[first_tile_ids, 0] - radii.view(-1)[first_tile_ids] + min_azimuth\n    gauss_azim_ub = means2d.view(-1, 2)[first_tile_ids, 0] + radii.view(-1)[first_tile_ids] + min_azimuth\n    azim_lb_inside = ((gauss_azim_lb) > 0) & ((gauss_azim_lb) < (0 + tile_azim_resolution))\n    azim_ub_inside = ((gauss_azim_ub) > 0) & ((gauss_azim_ub) < (0 + tile_azim_resolution))\n    azim_bounds_include_tile = ((gauss_azim_lb) < 0) & ((gauss_azim_ub) > (0 + tile_elev_res))\n    inside_azim_bounds = azim_lb_inside | azim_ub_inside | azim_bounds_include_tile\n    torch.testing.assert_close(inside_azim_bounds, torch.ones_like(inside_azim_bounds), atol=0, rtol=0)\n\n    gauss_elev_lb = means2d.view(-1, 2)[first_tile_ids, 1] - radii[..., 1].view(-1)[first_tile_ids]\n    gauss_elev_ub = means2d.view(-1, 2)[first_tile_ids, 1] + radii[..., 1].view(-1)[first_tile_ids]\n    elev_lb_inside = ((gauss_elev_lb) > min_elev) & ((gauss_elev_lb) < (min_elev + tile_elev_res))\n    elev_ub_inside = ((gauss_elev_ub) > min_elev) & ((gauss_elev_ub) < (min_elev + tile_elev_res))\n    elev_bounds_include_tile = ((gauss_elev_lb) < min_elev) & ((gauss_elev_ub) > (min_elev + tile_elev_res))\n    inside_elev_bounds = elev_lb_inside | elev_ub_inside | elev_bounds_include_tile\n    torch.testing.assert_close(inside_elev_bounds, torch.ones_like(inside_elev_bounds), atol=0, rtol=0)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_map_points_to_lidar_tiles(test_data):\n    from gsplat.cuda._wrapper import map_points_to_lidar_tiles, points_mapping_offset_encode\n\n    torch.manual_seed(42)\n\n    C, N = 3, 100_000\n    width, height = 360.0, 90.0\n    min_azimuth = -180\n\n    azim_resolution = 0.2\n    tile_azim_resolution = azim_resolution * 16\n    n_azim_tiles = math.ceil(360 / tile_azim_resolution)\n\n    n_elev_tiles = 16\n    elev_boundaries = torch.linspace(-height / 2.0, height / 2.0, n_elev_tiles + 1, device=device)\n\n    points2d = torch.zeros((C, N, 2), device=device)\n    points2d[:, :, 0] = torch.rand(C, N, device=device) * width - width / 2\n    points2d[:, :, 1] = torch.rand(C, N, device=device) * height - height / 2\n\n    points_tile_ids, flatten_ids = map_points_to_lidar_tiles(\n        points2d, elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    tile_offsets = points_mapping_offset_encode(points_tile_ids, C, n_azim_tiles, n_elev_tiles)\n\n    camera_ids = points_tile_ids >> 32\n    tile_ids = points_tile_ids & 0xFFFFFFFF\n\n    assert camera_ids.shape[0] == C * N\n    assert camera_ids.unique().shape[0] == C\n    for i in range(C):\n        assert camera_ids[i * N : (i + 1) * N].unique()[0] == i\n\n    n_max_tiles = n_elev_tiles * n_azim_tiles\n    assert tile_ids.shape[0] == C * N\n    assert tile_ids.unique().shape[0] <= n_max_tiles\n    for i in range(C):\n        tile_ids_i = tile_ids[i * N : (i + 1) * N].unique()\n        assert (tile_ids_i[:-1] <= tile_ids_i[1:]).all()\n\n    assert flatten_ids.shape[0] == C * N\n    for i in range(C):\n        points_in_last_tile = points2d.view(-1, 2)[flatten_ids[i * N : (i + 1) * N][-10:]]\n        assert (points_in_last_tile[:, 0] <= (width / 2)).all()\n        assert (points_in_last_tile[:, 0] >= (width / 2 - tile_azim_resolution)).all()\n        assert (points_in_last_tile[:, 1] <= elev_boundaries[-1]).all()\n        assert (points_in_last_tile[:, 1] >= elev_boundaries[-2]).all()\n\n    assert tile_offsets.shape == (C, n_elev_tiles, n_azim_tiles)\n    for i in range(C):\n        tile_offsets_i = tile_offsets[i]\n        # Check that we have points in all tiles\n        assert ((tile_offsets_i.flatten()[1:] - tile_offsets_i.flatten()[:-1]) > 0).all()\n        assert (tile_offsets_i.flatten()[1:] >= tile_offsets_i.flatten()[:-1]).all()\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_populate_image_from_points(test_data):\n    from gsplat.cuda._wrapper import map_points_to_lidar_tiles, points_mapping_offset_encode, populate_image_from_points\n\n    torch.manual_seed(42)\n\n    C, N = 3, 1_000_000\n    min_azimuth = test_data[\"min_azimuth\"]\n    max_azimuth = test_data[\"max_azimuth\"]\n    min_elevation = test_data[\"min_elevation\"]\n    max_elevation = test_data[\"max_elevation\"]\n    tile_height = test_data[\"tile_height\"]\n    tile_width = test_data[\"tile_width\"]\n    n_elev_channels = test_data[\"n_elev_channels\"]\n    n_elev_tiles = n_elev_channels // tile_height\n    azim_resolution = test_data[\"azim_resolution\"]\n\n    tile_azim_resolution = azim_resolution * tile_width\n    n_azim_tiles = math.ceil(360 / tile_azim_resolution)\n\n    elev_boundaries = torch.linspace(min_elevation - 1e-2, max_elevation + 1e-2, n_elev_tiles + 1, device=device)\n\n    points = torch.zeros((C, N, 5), device=device)\n    points[:, :, 0] = torch.rand(C, N, device=device) * (max_azimuth - min_azimuth) - max_azimuth\n    points[:, :, 1] = torch.rand(C, N, device=device) * (max_elevation - min_elevation) - max_elevation\n    points[:, :, 2] = torch.rand(C, N, device=device) * 100\n    points[:, :, 3] = torch.rand(C, N, device=device)\n    points[:, :, 4] = torch.rand(C, N, device=device)\n\n    points_tile_ids, flatten_ids = map_points_to_lidar_tiles(\n        points[:, :, :2], elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    tile_offsets = points_mapping_offset_encode(points_tile_ids, C, n_azim_tiles, n_elev_tiles)\n\n    raster_pts_image = populate_image_from_points(\n        points,\n        image_width=n_azim_tiles * tile_width,\n        image_height=n_elev_channels,\n        tile_width=tile_width,\n        tile_height=tile_height,\n        tile_offsets=tile_offsets,\n        flatten_id=flatten_ids,\n    )\n\n    assert raster_pts_image.shape == (C, n_elev_channels, n_azim_tiles * tile_width, 5)\n    assert raster_pts_image.all()\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"channels\", [3, 32, 64])\ndef test_rasterize_to_pixels(test_data, channels: int):\n    from gsplat.cuda._torch_impl import _rasterize_to_pixels\n    from gsplat.cuda._wrapper import (\n        fully_fused_projection,\n        isect_offset_encode,\n        isect_tiles,\n        quat_scale_to_covar_preci,\n        rasterize_to_pixels,\n    )\n\n    torch.manual_seed(42)\n\n    Ks = test_data[\"Ks\"]\n    C = len(Ks)\n    viewmats = test_data[\"viewmats\"]\n    height = test_data[\"height\"]\n    width = test_data[\"width\"]\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"] * 0.1\n    means = test_data[\"means\"]\n    opacities = test_data[\"opacities\"]\n    velocities = test_data[\"velocities\"].detach()\n    colors = torch.randn(C, len(means), channels, device=device)\n    backgrounds = torch.rand((C, colors.shape[-1]), device=device)\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    rolling_shutter_time = test_data[\"rolling_shutter_time\"]\n\n    covars, _ = quat_scale_to_covar_preci(quats, scales, compute_preci=False, triu=True)\n\n    # project Gaussians to 2D\n    radii, means2d, depths, conics, _, pix_vels = fully_fused_projection(\n        means,\n        covars,\n        velocities,\n        None,\n        None,\n        viewmats,\n        Ks,\n        width,\n        height,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n    )\n    opacities = opacities.repeat(C, 1)\n\n    # identify intersecting tiles\n    tile_size = 16 if channels <= 32 else 4\n    tile_width = math.ceil(width / float(tile_size))\n    tile_height = math.ceil(height / float(tile_size))\n    _, isect_ids, flatten_ids = isect_tiles(means2d, radii, depths, tile_size, tile_width, tile_height)\n    isect_offsets = isect_offset_encode(isect_ids, C, tile_width, tile_height)\n\n    means2d.requires_grad = True\n    conics.requires_grad = True\n    colors.requires_grad = True\n    opacities.requires_grad = True\n    pix_vels.requires_grad = True\n    backgrounds.requires_grad = True\n\n    # forward\n    render_colors, render_alphas, render_medians = rasterize_to_pixels(\n        means2d,\n        conics,\n        colors,\n        opacities,\n        pix_vels,\n        width,\n        height,\n        tile_size,\n        isect_offsets,\n        flatten_ids,\n        rolling_shutter_time=rolling_shutter_time,\n        backgrounds=backgrounds,\n    )\n    _render_colors, _render_alphas = _rasterize_to_pixels(\n        means2d,\n        conics,\n        colors,\n        opacities,\n        pix_vels,\n        width,\n        height,\n        tile_size,\n        isect_offsets,\n        flatten_ids,\n        rolling_shutter_time=rolling_shutter_time,\n        backgrounds=backgrounds,\n    )\n    torch.testing.assert_close(render_colors, _render_colors, rtol=1e-4, atol=1e-4)\n    torch.testing.assert_close(render_alphas, _render_alphas, rtol=1e-4, atol=1e-4)\n\n    # backward\n    v_render_colors = torch.randn_like(render_colors)\n    v_render_alphas = torch.randn_like(render_alphas)\n\n    v_means2d, v_conics, v_colors, v_opacities, v_pix_vels, v_backgrounds = torch.autograd.grad(\n        (render_colors * v_render_colors).sum() + (render_alphas * v_render_alphas).sum(),\n        (means2d, conics, colors, opacities, pix_vels, backgrounds),\n    )\n    (\n        _v_means2d,\n        _v_conics,\n        _v_colors,\n        _v_opacities,\n        _v_pix_vels,\n        _v_backgrounds,\n    ) = torch.autograd.grad(\n        (_render_colors * v_render_colors).sum() + (_render_alphas * v_render_alphas).sum(),\n        (means2d, conics, colors, opacities, pix_vels, backgrounds),\n    )\n    torch.testing.assert_close(v_means2d, _v_means2d, rtol=5e-3, atol=5e-3)\n    torch.testing.assert_close(v_conics, _v_conics, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_colors, _v_colors, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_opacities, _v_opacities, rtol=2e-3, atol=2e-3)\n    torch.testing.assert_close(v_backgrounds, _v_backgrounds, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_pix_vels, _v_pix_vels, rtol=1e-3, atol=1e-3)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"compute_alpha_sum_until_points\", [False, True])\n@pytest.mark.parametrize(\"use_depth_compensations\", [False, True])\ndef test_rasterize_to_points(test_data, compute_alpha_sum_until_points: bool, use_depth_compensations: bool):\n    from gsplat.cuda._torch_impl import _rasterize_to_points\n    from gsplat.cuda._wrapper import (\n        fully_fused_lidar_projection,\n        isect_lidar_tiles,\n        isect_offset_encode,\n        quat_scale_to_covar_preci,\n        rasterize_to_points,\n    )\n\n    torch.manual_seed(42)\n    Ks = test_data[\"Ks\"]\n    C = len(Ks)\n    viewmats = test_data[\"viewmats\"]\n    height = test_data[\"height\"]\n    width = test_data[\"width\"]\n    quats = test_data[\"quats\"]\n    scales = test_data[\"scales\"]\n    means = test_data[\"means\"]\n    opacities = test_data[\"opacities\"]\n    velocities = test_data[\"velocities\"].detach()\n    num_sensors = viewmats.shape[0]\n    min_azimuth = test_data[\"min_azimuth\"]\n    max_azimuth = test_data[\"max_azimuth\"]\n    min_elevation = test_data[\"min_elevation\"]\n    max_elevation = test_data[\"max_elevation\"]\n    linear_velocity = test_data[\"linear_velocity\"]\n    angular_velocity = test_data[\"angular_velocity\"]\n    rolling_shutter_time = test_data[\"rolling_shutter_time\"]\n    min_azimuth = test_data[\"min_azimuth\"]\n    max_azimuth = test_data[\"max_azimuth\"]\n    min_elevation = test_data[\"min_elevation\"]\n    max_elevation = test_data[\"max_elevation\"]\n    tile_height = test_data[\"tile_height\"]\n    tile_width = test_data[\"tile_width\"]\n    n_elev_channels = test_data[\"n_elev_channels\"]\n    n_elev_tiles = n_elev_channels // tile_height\n    azim_resolution = test_data[\"azim_resolution\"]\n\n    # setup raster points\n    elevations = torch.linspace(min_elevation, max_elevation, n_elev_channels, device=device)\n    n_elev_tiles = n_elev_channels // tile_height\n    elev_boundaries = torch.linspace(min_elevation - 1e-2, max_elevation + 1e-2, n_elev_tiles + 1, device=device)\n    height = n_elev_channels\n\n    width = math.ceil(360 / azim_resolution)\n    azimuths = torch.linspace(\n        min_azimuth + azim_resolution / 2, max_azimuth - azim_resolution / 2, width, device=device\n    )\n    tile_azim_resolution = azim_resolution * tile_width\n    n_azim_tiles = math.ceil(360 / tile_azim_resolution)\n\n    azimuth_elevation = torch.stack(torch.meshgrid(elevations, azimuths), dim=-1)[\n        ..., [1, 0]\n    ]  # [height, width, 2] (azim, elev)\n    ranges = torch.rand(height, width, 1, device=device) * 10\n    keep_range_mask = torch.rand(height, width, device=device) > 0.1\n    raster_pts = torch.cat([azimuth_elevation, ranges], dim=-1)\n    raster_pts = raster_pts.unsqueeze(0).repeat(\n        num_sensors, 1, 1, 1\n    )  # [num_sensors, height, width, 3] (azim, elev, range)\n    # add randomness\n    raster_pts += torch.randn_like(raster_pts) * 0.01 * keep_range_mask[None, ..., None]\n\n    # add timestamps\n    raster_pts = torch.cat(\n        [raster_pts, rolling_shutter_time.max() * torch.randn(raster_pts[..., 0:1].shape, device=raster_pts.device)],\n        dim=-1,\n    )\n\n    lidar_features = torch.randn(C, len(means), 5, device=device) * ranges.max() * 1.5\n    lidar_features[..., -1] = torch.rand_like(lidar_features[..., -1]) * ranges.max() * 1.5\n\n    covars, _ = quat_scale_to_covar_preci(quats, scales, compute_preci=False, triu=True)\n\n    # project Gaussians to 2D\n    radii, means2d, depths, conics, _, pix_vels, depth_compensations = fully_fused_lidar_projection(\n        means,\n        covars,\n        None,\n        None,\n        velocities,\n        viewmats,\n        linear_velocity,\n        angular_velocity,\n        rolling_shutter_time,\n        min_elevation,\n        max_elevation,\n        min_azimuth,\n        max_azimuth,\n        eps2d=0.0,\n    )\n    opacities = opacities.repeat(C, 1)\n\n    # identify intersecting tiles\n    _, isect_ids, flatten_ids = isect_lidar_tiles(\n        means2d, radii, depths, elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    isect_offsets = isect_offset_encode(isect_ids, C, n_azim_tiles, n_elev_tiles)\n\n    means2d.requires_grad = True\n    conics.requires_grad = True\n    lidar_features.requires_grad = True\n    opacities.requires_grad = True\n    pix_vels.requires_grad = True\n    depth_compensations = depth_compensations * use_depth_compensations\n    depth_compensations.requires_grad = True\n\n    # forward\n    render_lidar_features, render_alphas, alpha_sum_until_points, _ = rasterize_to_points(\n        means2d,\n        conics,\n        lidar_features,\n        opacities,\n        pix_vels,\n        depth_compensations,\n        raster_pts,\n        width,\n        height,\n        tile_width,\n        tile_height,\n        isect_offsets,\n        flatten_ids,\n        compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n        compute_alpha_sum_until_points_threshold=0.5,\n        # backgrounds=backgrounds,\n    )\n    _render_lidar_features, _render_alphas, _alpha_sum_until_points = _rasterize_to_points(\n        means2d,\n        conics,\n        lidar_features,\n        opacities,\n        pix_vels,\n        depth_compensations,\n        raster_pts,\n        width,\n        height,\n        tile_width,\n        tile_height,\n        isect_offsets,\n        flatten_ids,\n        compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n        compute_alpha_sum_until_points_threshold=0.5,\n        # backgrounds=backgrounds,\n    )\n    torch.testing.assert_close(render_lidar_features, _render_lidar_features, rtol=1e-2, atol=2e-2)\n    torch.testing.assert_close(render_alphas, _render_alphas, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(alpha_sum_until_points, _alpha_sum_until_points, rtol=1e-3, atol=1e-3)\n\n    # backward\n    v_render_colors = torch.randn_like(render_lidar_features)\n    v_render_alphas = torch.randn_like(render_alphas)\n    v_alpha_sum_until_points = torch.randn_like(alpha_sum_until_points) if compute_alpha_sum_until_points else None\n\n    losses = (render_lidar_features * v_render_colors).sum() + (render_alphas * v_render_alphas).sum()\n    if compute_alpha_sum_until_points:\n        losses += (alpha_sum_until_points * v_alpha_sum_until_points).sum()\n    v_means2d, v_conics, v_colors, v_opacities, v_pix_vels, v_depth_compensations = torch.autograd.grad(\n        losses,\n        (means2d, conics, lidar_features, opacities, pix_vels, depth_compensations),\n    )\n\n    _losses = (_render_lidar_features * v_render_colors).sum() + (_render_alphas * v_render_alphas).sum()\n    if compute_alpha_sum_until_points:\n        _losses += (_alpha_sum_until_points * v_alpha_sum_until_points).sum()\n    (\n        _v_means2d,\n        _v_conics,\n        _v_colors,\n        _v_opacities,\n        _v_pix_vels,\n        _v_depth_compensations,\n    ) = torch.autograd.grad(\n        _losses,\n        (means2d, conics, lidar_features, opacities, pix_vels, depth_compensations),\n    )\n    torch.testing.assert_close(v_means2d, _v_means2d, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_conics, _v_conics, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_colors, _v_colors, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_opacities, _v_opacities, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_pix_vels, _v_pix_vels, rtol=5e-2, atol=5e-2)\n    torch.testing.assert_close(v_depth_compensations, _v_depth_compensations, rtol=5e-2, atol=5e-2)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"use_random_test_points\", [False, True])\n@pytest.mark.parametrize(\"compute_alpha_sum_until_points\", [False, True])\ndef test_accumulate_until_points(test_data, use_random_test_points: bool, compute_alpha_sum_until_points: bool):\n    from gsplat.cuda._torch_impl import _rasterize_to_points\n    from gsplat.cuda._wrapper import isect_lidar_tiles, isect_offset_encode, rasterize_to_points\n\n    torch.manual_seed(42)\n    min_azimuth = test_data[\"min_azimuth\"]\n    max_azimuth = test_data[\"max_azimuth\"]\n    min_elevation = test_data[\"min_elevation\"]\n    max_elevation = test_data[\"max_elevation\"]\n    tile_height = test_data[\"tile_height\"]\n    tile_width = test_data[\"tile_width\"]\n    n_elev_channels = test_data[\"n_elev_channels\"]\n    n_elev_tiles = n_elev_channels // tile_height\n    azim_resolution = test_data[\"azim_resolution\"]\n\n    # setup lidar raster points\n    elevations = torch.linspace(min_elevation, max_elevation, n_elev_channels, device=device)\n    n_elev_tiles = n_elev_channels // tile_height\n    elev_boundaries = torch.linspace(min_elevation - 1e-2, max_elevation + 1e-2, n_elev_tiles + 1, device=device)\n    height = n_elev_channels\n\n    width = math.ceil(360 / azim_resolution)\n    azimuths = torch.linspace(\n        min_azimuth + azim_resolution / 2, max_azimuth - azim_resolution / 2, width, device=device\n    )\n    tile_azim_resolution = azim_resolution * tile_width\n    n_azim_tiles = math.ceil(360 / tile_azim_resolution)\n\n    azimuth_elevation = torch.stack(torch.meshgrid(elevations, azimuths), dim=-1)[\n        ..., [1, 0]\n    ]  # [height, width, 2] (azim, elev)\n    raster_pts = torch.cat([azimuth_elevation, torch.zeros_like(azimuth_elevation)], dim=-1).unsqueeze(0)\n\n    if use_random_test_points:\n        n_gaussians = 100_000\n        raster_pts[..., 2] = torch.rand_like(raster_pts[..., 2]) * 150.0\n\n        means2d = torch.cat(\n            [\n                torch.rand((1, n_gaussians, 1), device=device) * 2 * 180 - 180.0,\n                torch.rand((1, n_gaussians, 1), device=device) * 2 * 90 - 90.0,\n            ],\n            dim=-1,\n        )\n        radii = torch.rand((1, n_gaussians, 2), device=device) * 10.0\n        sigma_x = torch.rand(1, n_gaussians, device=device) * radii[..., 0]\n        sigma_y = torch.rand(1, n_gaussians, device=device) * radii[..., 1]\n        sigma_xy = torch.rand(1, n_gaussians, device=device) * radii[..., 0] * radii[..., 1]\n        conics = torch.linalg.inv(\n            torch.stack([torch.stack([sigma_x, sigma_xy], dim=-1), torch.stack([sigma_xy, sigma_y], dim=-1)], dim=-1)\n        ).reshape(1, n_gaussians, -1)[..., [0, 1, 3]]\n        depths = torch.rand((1, n_gaussians), device=device) * 150.0\n        opacities = torch.rand_like(depths)\n        pix_vels = (torch.rand_like(conics) - 0.5) * 10.0\n    else:\n        n_gaussians = 10\n        # testing accumulation against a single point for simplicity\n        test_point = (16, 900, 85.0)\n        raster_pts[0, test_point[0], test_point[1], 2] = test_point[2]\n\n        # all gaussians are located at the test point, such that only their range will determine if they should be accumulated or not\n        means2d = (\n            (\n                raster_pts[0, test_point[0], test_point[1], :2].clone()\n                + 0.1 * torch.ones_like(raster_pts[0, test_point[0], test_point[1], :2])\n            )\n            .repeat(n_gaussians, 1)\n            .unsqueeze(0)\n        )\n        radii = torch.tensor([1.0, 1.0], device=device).repeat(n_gaussians).reshape(1, n_gaussians, 2)\n        sigma_x = torch.ones(1, n_gaussians, device=device)\n        sigma_y = torch.ones(1, n_gaussians, device=device)\n        sigma_xy = torch.zeros(1, n_gaussians, device=device)\n        conics = torch.linalg.inv(\n            torch.stack([torch.stack([sigma_x, sigma_xy], dim=-1), torch.stack([sigma_xy, sigma_y], dim=-1)], dim=-1)\n        ).reshape(1, n_gaussians, -1)[..., [0, 1, 3]]\n        depths = torch.linspace(20.0, 120.0, n_gaussians, device=device).unsqueeze(0)\n        opacities = torch.rand_like(depths)\n        pix_vels = torch.zeros_like(conics)\n\n    lidar_features = torch.randn((*means2d.shape[:2], 5), device=device)\n    lidar_features = torch.cat([lidar_features, depths.unsqueeze(-1)], dim=-1)\n\n    # identify intersecting tiles\n    _, isect_ids, flatten_ids = isect_lidar_tiles(\n        means2d, radii, depths, elev_boundaries, tile_azim_resolution, min_azimuth\n    )\n    isect_offsets = isect_offset_encode(isect_ids, 1, n_azim_tiles, n_elev_tiles)\n\n    means2d.requires_grad = True\n    conics.requires_grad = True\n    lidar_features.requires_grad = True\n    opacities.requires_grad = True\n    pix_vels.requires_grad = True\n\n    # forward\n    point_epsilon = 0.5\n    depth_compensations = torch.zeros_like(means2d)\n    render_lidar_features, render_alphas, alpha_sum_until_points, _ = rasterize_to_points(\n        means2d,\n        conics,\n        lidar_features,\n        opacities,\n        pix_vels,\n        depth_compensations,\n        raster_pts,\n        width,\n        height,\n        tile_width,\n        tile_height,\n        isect_offsets,\n        flatten_ids,\n        compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n        compute_alpha_sum_until_points_threshold=point_epsilon,\n    )\n    _render_lidar_features, _render_alphas, _alpha_sum_until_points = _rasterize_to_points(\n        means2d,\n        conics,\n        lidar_features,\n        opacities,\n        pix_vels,\n        depth_compensations,\n        raster_pts,\n        width,\n        height,\n        tile_width,\n        tile_height,\n        isect_offsets,\n        flatten_ids,\n        compute_alpha_sum_until_points=compute_alpha_sum_until_points,\n        compute_alpha_sum_until_points_threshold=point_epsilon,\n    )\n\n    # forward\n    torch.testing.assert_close(render_lidar_features, _render_lidar_features, rtol=1e-2, atol=1e-2)\n    torch.testing.assert_close(render_alphas, _render_alphas, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(alpha_sum_until_points, _alpha_sum_until_points, rtol=1e-3, atol=1e-3)\n\n    # backward\n    v_render_colors = torch.rand_like(render_lidar_features)\n    v_render_alphas = torch.rand_like(render_alphas)\n    v_alpha_sum_until_points = torch.rand_like(alpha_sum_until_points) if compute_alpha_sum_until_points else None\n\n    losses = (render_lidar_features * v_render_colors).sum() + (render_alphas * v_render_alphas).sum()\n    if compute_alpha_sum_until_points:\n        losses += (alpha_sum_until_points * v_alpha_sum_until_points).sum()\n    v_means2d, v_conics, v_colors, v_opacities, v_pix_vels = torch.autograd.grad(\n        losses,\n        (means2d, conics, lidar_features, opacities, pix_vels),\n    )\n\n    _losses = (_render_lidar_features * v_render_colors).sum() + (_render_alphas * v_render_alphas).sum()\n    if compute_alpha_sum_until_points:\n        _losses += (_alpha_sum_until_points * v_alpha_sum_until_points).sum()\n    (\n        _v_means2d,\n        _v_conics,\n        _v_colors,\n        _v_opacities,\n        _v_pix_vels,\n    ) = torch.autograd.grad(\n        _losses,\n        (means2d, conics, lidar_features, opacities, pix_vels),\n    )\n    torch.testing.assert_close(v_means2d, _v_means2d, rtol=5e-3, atol=5e-3)\n    torch.testing.assert_close(v_conics, _v_conics, rtol=5e-2, atol=1e-2)\n    torch.testing.assert_close(v_colors, _v_colors, rtol=1e-3, atol=1e-3)\n    torch.testing.assert_close(v_opacities, _v_opacities, rtol=5e-2, atol=1e-2)\n    torch.testing.assert_close(v_pix_vels, _v_pix_vels, rtol=1e-3, atol=1e-3)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"sh_degree\", [0, 1, 2, 3, 4])\ndef test_sh(test_data, sh_degree: int):\n    from gsplat.cuda._torch_impl import _spherical_harmonics\n    from gsplat.cuda._wrapper import spherical_harmonics\n\n    torch.manual_seed(42)\n\n    N = 1000\n    coeffs = torch.randn(N, (4 + 1) ** 2, 3, device=device)\n    dirs = torch.randn(N, 3, device=device)\n    coeffs.requires_grad = True\n    dirs.requires_grad = True\n\n    colors = spherical_harmonics(sh_degree, dirs, coeffs)\n    _colors = _spherical_harmonics(sh_degree, dirs, coeffs)\n    torch.testing.assert_close(colors, _colors, rtol=1e-4, atol=1e-4)\n\n    v_colors = torch.randn_like(colors)\n\n    v_coeffs, v_dirs = torch.autograd.grad(\n        (colors * v_colors).sum(), (coeffs, dirs), retain_graph=True, allow_unused=True\n    )\n    _v_coeffs, _v_dirs = torch.autograd.grad(\n        (_colors * v_colors).sum(), (coeffs, dirs), retain_graph=True, allow_unused=True\n    )\n    torch.testing.assert_close(v_coeffs, _v_coeffs, rtol=1e-4, atol=1e-4)\n    if sh_degree > 0:\n        torch.testing.assert_close(v_dirs, _v_dirs, rtol=1e-4, atol=1e-4)\n"
  },
  {
    "path": "tests/test_compression.py",
    "content": "\"\"\"Tests for the functions in the CUDA extension.\n\nUsage:\n```bash\npytest <THIS_PY_FILE> -s\n```\n\"\"\"\n\nimport pytest\nimport torch\n\ndevice = torch.device(\"cuda:0\")\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_png_compression():\n    from gsplat.compression import PngCompression\n\n    torch.manual_seed(42)\n\n    # Prepare Gaussians\n    N = 100000\n    splats = torch.nn.ParameterDict(\n        {\n            \"means\": torch.randn(N, 3),\n            \"scales\": torch.randn(N, 3),\n            \"quats\": torch.randn(N, 4),\n            \"opacities\": torch.randn(N),\n            \"sh0\": torch.randn(N, 1, 3),\n            \"shN\": torch.randn(N, 24, 3),\n            \"features\": torch.randn(N, 128),\n        }\n    ).to(device)\n    compress_dir = \"/tmp/gsplat/compression\"\n\n    compression_method = PngCompression()\n    # run compression and save the compressed files to compress_dir\n    compression_method.compress(compress_dir, splats)\n    # decompress the compressed files\n    splats_c = compression_method.decompress(compress_dir)\n\n\nif __name__ == \"__main__\":\n    test_png_compression()\n"
  },
  {
    "path": "tests/test_rasterization.py",
    "content": "\"\"\"Tests for the functions in the CUDA extension.\n\nUsage:\n```bash\npytest <THIS_PY_FILE> -s\n```\n\"\"\"\n\nimport math\nfrom typing import Optional\n\nimport pytest\nimport torch\n\ndevice = torch.device(\"cuda:0\")\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"per_view_color\", [True, False])\n@pytest.mark.parametrize(\"sh_degree\", [None, 3])\n@pytest.mark.parametrize(\"render_mode\", [\"RGB\", \"RGB+D\", \"D\"])\n@pytest.mark.parametrize(\"packed\", [True, False])\ndef test_rasterization(per_view_color: bool, sh_degree: Optional[int], render_mode: str, packed: bool):\n    from gsplat.rendering import rasterization\n\n    torch.manual_seed(42)\n\n    C, N = 2, 10_000\n    means = torch.rand(N, 3, device=device)\n    velocities = torch.randn(N, 3, device=device) * 0.01\n    quats = torch.randn(N, 4, device=device)\n    scales = torch.rand(N, 3, device=device)\n    opacities = torch.rand(N, device=device)\n    if per_view_color:\n        if sh_degree is None:\n            colors = torch.rand(C, N, 3, device=device)\n        else:\n            colors = torch.rand(C, N, (sh_degree + 1) ** 2, 3, device=device)\n    else:\n        if sh_degree is None:\n            colors = torch.rand(N, 3, device=device)\n        else:\n            colors = torch.rand(N, (sh_degree + 1) ** 2, 3, device=device)\n\n    width, height = 300, 200\n    focal = 300.0\n    Ks = torch.tensor(\n        [[focal, 0.0, width / 2.0], [0.0, focal, height / 2.0], [0.0, 0.0, 1.0]],\n        device=device,\n    ).expand(C, -1, -1)\n    viewmats = torch.eye(4, device=device).expand(C, -1, -1)\n\n    linear_velocity = torch.randn(C, 3, device=device) * 0.01\n    angular_velocity = torch.randn(C, 3, device=device) * 0.01\n    rolling_shutter_time = torch.rand(C, device=device) * 0.1\n\n    colors_out, _, _ = rasterization(\n        means=means,\n        quats=quats,\n        scales=scales,\n        opacities=opacities,\n        colors=colors,\n        velocities=velocities,\n        viewmats=viewmats,\n        Ks=Ks,\n        width=width,\n        height=height,\n        linear_velocity=linear_velocity,\n        angular_velocity=angular_velocity,\n        rolling_shutter_time=rolling_shutter_time,\n        sh_degree=sh_degree,\n        render_mode=render_mode,\n        packed=packed,\n    )\n\n    if render_mode == \"D\":\n        assert colors_out.shape == (C, height, width, 1)\n    elif render_mode == \"RGB\":\n        assert colors_out.shape == (C, height, width, 3)\n    elif render_mode == \"RGB+D\":\n        assert colors_out.shape == (C, height, width, 4)\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\n@pytest.mark.parametrize(\"channels\", [3, 32, 128])\ndef test_lidar_rasterization(channels: int):\n    from gsplat.rendering import lidar_rasterization\n\n    torch.manual_seed(42)\n\n    C, N = 2, 10_000\n    means = torch.rand(N, 3, device=device)\n    quats = torch.randn(N, 4, device=device)\n    scales = torch.rand(N, 3, device=device)\n    opacities = torch.rand(N, device=device)\n    velocities = torch.randn(N, 3, device=device) * 0.01\n\n    min_azimuth = -180\n    max_azimuth = 180\n    min_elevation = -45\n    max_elevation = 45\n    n_elevation_channels = 32\n    azimuth_resolution = 0.2\n\n    tile_width = 64\n    tile_height = 4\n    tile_elevation_boundaries = torch.linspace(\n        min_elevation, max_elevation, n_elevation_channels // tile_height + 1, device=means.device\n    )\n\n    viewmats = torch.eye(4, device=device).expand(C, -1, -1)\n    lidar_features = torch.randn(C, len(means), channels, device=device)\n\n    image_width = math.ceil((max_azimuth - min_azimuth) / azimuth_resolution)\n    raster_pts_azim = torch.linspace(\n        min_azimuth + azimuth_resolution / 2, max_azimuth - azimuth_resolution / 2, image_width, device=means.device\n    )\n    raster_pts_elev = torch.linspace(\n        min_elevation + (max_elevation - min_elevation) / n_elevation_channels / 2,\n        max_elevation - (max_elevation - min_elevation) / n_elevation_channels / 2,\n        n_elevation_channels,\n        device=means.device,\n    )\n    raster_pts = torch.stack(torch.meshgrid(raster_pts_elev, raster_pts_azim), dim=-1)[..., [1, 0]]\n    ranges = torch.rand(n_elevation_channels, image_width, 1, device=device) * 10\n    keep_range_mask = torch.rand(n_elevation_channels, image_width, device=device) > 0.1\n    raster_pts = torch.cat([raster_pts, ranges], dim=-1)\n    raster_pts = raster_pts.unsqueeze(0).repeat(C, 1, 1, 1)\n    # add randomness\n    raster_pts += torch.randn_like(raster_pts) * 0.01 * keep_range_mask[None, ..., None]\n\n    linear_velocity = torch.randn(C, 3, device=device) * 0.01\n    angular_velocity = torch.randn(C, 3, device=device) * 0.01\n    rolling_shutter_time = torch.rand(C, device=device) * 0.1\n\n    # add timestamps\n    raster_pts = torch.cat(\n        [raster_pts, rolling_shutter_time.max() * torch.randn(raster_pts[..., 0:1].shape, device=raster_pts.device)],\n        dim=-1,\n    )\n\n    render_lidar_features, _, _, _ = lidar_rasterization(\n        means=means,\n        quats=quats,\n        scales=scales,\n        opacities=opacities,\n        lidar_features=lidar_features,\n        velocities=velocities,\n        linear_velocity=linear_velocity,\n        angular_velocity=angular_velocity,\n        rolling_shutter_time=rolling_shutter_time,\n        viewmats=viewmats,\n        min_azimuth=min_azimuth,\n        max_azimuth=max_azimuth,\n        min_elevation=min_elevation,\n        max_elevation=max_elevation,\n        n_elevation_channels=n_elevation_channels,\n        azimuth_resolution=azimuth_resolution,\n        raster_pts=raster_pts,\n        tile_width=tile_width,\n        tile_height=tile_height,\n        tile_elevation_boundaries=tile_elevation_boundaries,\n    )\n\n    n_azimuth_pixels = math.ceil((max_azimuth - min_azimuth) / azimuth_resolution)\n    assert render_lidar_features.shape == (C, n_elevation_channels, n_azimuth_pixels, channels + 1)\n"
  },
  {
    "path": "tests/test_strategy.py",
    "content": "\"\"\"Tests for the functions in the CUDA extension.\n\nUsage:\n```bash\npytest <THIS_PY_FILE> -s\n```\n\"\"\"\n\nimport pytest\nimport torch\n\ndevice = torch.device(\"cuda:0\")\n\n\n@pytest.mark.skipif(not torch.cuda.is_available(), reason=\"No CUDA device\")\ndef test_strategy():\n    from gsplat.rendering import rasterization\n    from gsplat.strategy import DefaultStrategy, MCMCStrategy\n\n    torch.manual_seed(42)\n\n    # Prepare Gaussians\n    N = 100\n    params = torch.nn.ParameterDict(\n        {\n            \"means\": torch.randn(N, 3),\n            \"scales\": torch.rand(N, 3),\n            \"quats\": torch.randn(N, 4),\n            \"opacities\": torch.rand(N),\n            \"colors\": torch.rand(N, 3),\n        }\n    ).to(device)\n    optimizers = {k: torch.optim.Adam([v], lr=1e-3) for k, v in params.items()}\n\n    # A dummy rendering call\n    render_colors, render_alphas, info = rasterization(\n        means=params[\"means\"],\n        quats=params[\"quats\"],  # F.normalize is fused into the kernel\n        scales=torch.exp(params[\"scales\"]),\n        opacities=torch.sigmoid(params[\"opacities\"]),\n        colors=params[\"colors\"],\n        velocities=None,\n        viewmats=torch.eye(4).unsqueeze(0).to(device),\n        Ks=torch.eye(3).unsqueeze(0).to(device),\n        width=10,\n        height=10,\n        packed=False,\n    )\n\n    # Test DefaultStrategy\n    strategy = DefaultStrategy(verbose=True)\n    strategy.check_sanity(params, optimizers)\n    state = strategy.initialize_state()\n    strategy.step_pre_backward(params, optimizers, state, step=600, info=info)\n    render_colors.mean().backward(retain_graph=True)\n    strategy.step_post_backward(params, optimizers, state, step=600, info=info)\n\n    # Test MCMCStrategy\n    strategy = MCMCStrategy(verbose=True)\n    strategy.check_sanity(params, optimizers)\n    state = strategy.initialize_state()\n    render_colors.mean().backward(retain_graph=True)\n    strategy.step_post_backward(params, optimizers, state, step=600, info=info, lr=1e-3)\n\n\nif __name__ == \"__main__\":\n    test_strategy()\n"
  }
]