Skip to main content

A domain-specific language for modeling convex optimization problems in Python.

Project description

CVXPY

Build Status PyPI - downloads Conda - downloads Coverage Benchmarks OpenSSF Scorecard

The CVXPY documentation is at cvxpy.org.

We are building a CVXPY community on Discord. Join the conversation! For issues and long-form discussions, use Github Issues and Github Discussions.

Contents

CVXPY is a Python-embedded modeling language for convex optimization problems. It allows you to express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers.

For example, the following code solves a least-squares problem where the variable is constrained by lower and upper bounds:

import cvxpy as cp
import numpy

# Problem data.
m = 30
n = 20
numpy.random.seed(1)
A = numpy.random.randn(m, n)
b = numpy.random.randn(m)

# Construct the problem.
x = cp.Variable(n)
objective = cp.Minimize(cp.sum_squares(A @ x - b))
constraints = [0 <= x, x <= 1]
prob = cp.Problem(objective, constraints)

# The optimal objective is returned by prob.solve().
result = prob.solve()
# The optimal value for x is stored in x.value.
print(x.value)
# The optimal Lagrange multiplier for a constraint
# is stored in constraint.dual_value.
print(constraints[0].dual_value)

With CVXPY, you can model

  • convex optimization problems,
  • mixed-integer convex optimization problems,
  • geometric programs, and
  • quasiconvex programs.

CVXPY is not a solver. It relies upon the open source solvers Clarabel, SCS, and OSQP. Additional solvers are available, but must be installed separately.

CVXPY began as a Stanford University research project. It is now developed by many people, across many institutions and countries.

Installation

CVXPY is available on PyPI, and can be installed with

pip install cvxpy

CVXPY can also be installed with conda, using

conda install -c conda-forge cvxpy

CVXPY has the following dependencies:

  • Python >= 3.9
  • Clarabel >= 0.5.0
  • OSQP >= 0.6.2
  • SCS >= 3.2.4.post1
  • NumPy >= 1.20.0
  • SciPy >= 1.6.0

For detailed instructions, see the installation guide.

Getting started

To get started with CVXPY, check out the following:

Issues

We encourage you to report issues using the Github tracker. We welcome all kinds of issues, especially those related to correctness, documentation, performance, and feature requests.

For basic usage questions (e.g., "Why isn't my problem DCP?"), please use StackOverflow instead.

Community

The CVXPY community consists of researchers, data scientists, software engineers, and students from all over the world. We welcome you to join us!

  • To chat with the CVXPY community in real-time, join us on Discord.
  • To have longer, in-depth discussions with the CVXPY community, use Github Discussions.
  • To share feature requests and bug reports, use Github Issues.

Please be respectful in your communications with the CVXPY community, and make sure to abide by our code of conduct.

Contributing

We appreciate all contributions. You don't need to be an expert in convex optimization to help out.

You should first install CVXPY from source. Here are some simple ways to start contributing immediately:

If you'd like to add a new example to our library, or implement a new feature, please get in touch with us first to make sure that your priorities align with ours.

Contributions should be submitted as pull requests. A member of the CVXPY development team will review the pull request and guide you through the contributing process.

Before starting work on your contribution, please read the contributing guide.

Team

CVXPY is a community project, built from the contributions of many researchers and engineers.

CVXPY is developed and maintained by Steven Diamond, Akshay Agrawal, Riley Murray, Philipp Schiele, and Bartolomeo Stellato, with many others contributing significantly. A non-exhaustive list of people who have shaped CVXPY over the years includes Stephen Boyd, Eric Chu, Robin Verschueren, Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, Chris Dembia, and Parth Nobel.

For more information about the team and our processes, see our governance document.

Citing

If you use CVXPY for academic work, we encourage you to cite our papers. If you use CVXPY in industry, we'd love to hear from you as well, on Discord or over email.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cvxpy_base-1.6.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distributions

cvxpy_base-1.6.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13 Windows x86-64

cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13 macOS 10.13+ x86-64

cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_universal2.whl (1.5 MB view details)

Uploaded CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)

cvxpy_base-1.6.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12 Windows x86-64

cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_universal2.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)

cvxpy_base-1.6.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11 Windows x86-64

cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_universal2.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

cvxpy_base-1.6.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_universal2.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

cvxpy_base-1.6.0-cp39-cp39-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_universal2.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file cvxpy_base-1.6.0.tar.gz.

File metadata

  • Download URL: cvxpy_base-1.6.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cvxpy_base-1.6.0.tar.gz
Algorithm Hash digest
SHA256 833cac32cb8a9931a9ccb1d018496337be9767945d3d97e636ffc3404996b7d7
MD5 ce705ee12ff0c770a229607f8740d1c2
BLAKE2b-256 23c76b06130a11b0b98944bf9195ce56be28015c1666eb56f463ebd5d8c31c6e

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 52fe3ca416da69204d2c5ff4fe81b9bd70142e6a731306d2376a25bcaeea2c48
MD5 1939ce646e378124f5560cffc61fb9a3
BLAKE2b-256 a8b88229b8a5e50399e180c39c22d798e282e7762ed71bbc2a435ac285985882

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96a4f4067a2efa87b932c63c2e32a11a47c91b648a563c6d8d30b73b80993840
MD5 8bf023ffe4ad0b067abe05c4bed45311
BLAKE2b-256 c2d7c67817e3a88de38a66c29239247ce28962513d6ffff70421804c527f817f

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a21a81a09b5212d83c79774ac6f64996044cb320b5b4900554e55edd06a77dba
MD5 83f4eda924b03a2569c6dcffc3d4cb03
BLAKE2b-256 be20f5773aa258e7d41fd1b464e01c72fe6f9b98773806fa8d0b6bece7ced39e

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 70dfba355adc423f42454a99d231663c422c2a74bf8ce7af1b25fa892ccb4b47
MD5 011465bc534c878c1de405598a40c06d
BLAKE2b-256 7dc31a7daaeb01eb5e47c8de0f041a25f58d027018f55ca858601f6b10828b38

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3df00c7fc4b5da92a469631f2f73d88f90ec631b615252c0b989631502351e47
MD5 c6caf4ac0c112d2504f475a656edbba9
BLAKE2b-256 809e275bff0e8ef0cee8f63c12fe4c2b6683c5b63b2305fbbb9f8ab9e982a87a

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 201785694a880ff4c2f8291e78b47e99b72e6470b163e2aadf37f8a12826ea67
MD5 93194844fcf0fe2fb5e75c8ac2473f46
BLAKE2b-256 e29737993f3df2fb410fa5945f0dfd9d487694333dd788641943e6437b2cacfe

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 addcf50e8a9eaec9c09703aa61146b17086139c4b432c301a595814d4bae0695
MD5 d4f2bc880258704957711d7c144e6a71
BLAKE2b-256 4b18af421128f5c3d1404b98bfb1fe140abb0a9e7600c32ffe1a31a1bee600b3

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a23e762bc7c2c033308dd223a012daff7b2b06c94005993538d878082ce66018
MD5 1bd76948173b71f94f39d79fd3a67a37
BLAKE2b-256 be1091c52ac0b0c24753ef4bad222ccd9d9b44de4eae0eb8bc833f936207d28d

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9738864249d2adf2b1b8db796c59a03b0fcf17feebf47d04d7bb28b3456b08a5
MD5 4dc23838d917e29c5fca8a41f90ea7a9
BLAKE2b-256 c9bd8bd60016e721dde77db1828efbb683033cba4b1f25e09b38ca4e041cb934

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 07a537eda88b0ee7e7f2e6ed0e7551b9a4c62d196cef36d3d7a443d913baae77
MD5 6907d91244bbe492f25ed1aa8c04740b
BLAKE2b-256 4cbfff5a5da536b53d70350549fa0be3d77bf7eb9c6e3079485561970ea4c781

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ca7dd1930cf5809e76ed331a9771bfaab27bb08b5446975f3fea7b1989a0f0a5
MD5 04450ec6c3d78bab25164a12d527d110
BLAKE2b-256 2b1a38b5c600659fc1c52eb027ee01fe90075bd6b7bc45c77e5ce3e8375e8a0b

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9efac767366926a60677d183fef44223a8b32d4ba0c3db591d91fa167fcf4fe1
MD5 19b78b0da111a2ddabfc0554482fb3b6
BLAKE2b-256 b5cb5f62cb2d1137386032c3b9a63086188232fefc2a35d652ea6d54b01599e3

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c2443a77c12a10b06a218375c934056db99628561b0a36329a366b0b955895ed
MD5 9cce1adf3d71ca6f8ad4411c7878a750
BLAKE2b-256 045c3e8c9e1499bf5a13b8ce5076215c7f4a39c5a5a7c38eb699b6c5e1f1e78a

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ffa459eb4cba5e0624ec79431beaae5ee88737b12b825a4ef7e333497ac64221
MD5 6d680867338e0188fb66cfe52a7c84d3
BLAKE2b-256 13ed1139a68feb049b8215f064796bd707b11f62e235974a47055adf6bc3d29b

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 eba0b55b242167e14ba80ce62561f11b842c942bb4be0cfd43986238b7b32e18
MD5 e663d51765e7468100e7939573e90e4f
BLAKE2b-256 508097a8e1d3662fe0ee14d4302f1bc324410e353ba8accc510d235582385b43

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ccf303af1d760a9b68f7aa7ad977d7016b91cdcc0dd4f94b05d31cdd86f728bc
MD5 23ae8cc335a633d36c4cdf361fa318ae
BLAKE2b-256 5da03778d4d057ad547475bda32dc29f192401f89b3af323fb38ab8e5e87630c

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 740623eaf7b2d8fccbcce43fb3a707c1e64b3188131b7c92ff24eaa79ed63653
MD5 04f906bd3f03b18d13dd154db01d048f
BLAKE2b-256 a5fb6e4c753172856b81e8b30d078fe16398af09e14063017968ad82acd71e10

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bcab6afaffc09d27298410da8a428e32ea257276c3458d249ccc07b7a38ac26b
MD5 916e90354e602273b7ddd2667217de1b
BLAKE2b-256 afb61871aacb61e21b47838d6f5d0ce1319903066c64f9532249094961b22a1a

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1f7560e25cf0f335978ac83162b518264fe77d26b53dabd046a354ee1ff7b2ae
MD5 084e7fa6d643f7c31692f3f5ad7ae2cd
BLAKE2b-256 4b06be26c9aee0ff17561cacb08df93b807a74058fd6bbfe6d40908e95e8219c

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b79b33252b56754d55a4a49a29803977a6ec0537d03839b9e3d47b5537f9404a
MD5 5ff41adfaa750bbc5080a5002f192423
BLAKE2b-256 0a4807a50d416a40a129594846b9c8c1c91b61f600dfc668624a0a62403cd2a4

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 10cc1004855f69e79012db828ab249f4ce1820d382128915ac12f521b4e43c0c
MD5 788fa6eeb86c43799014cce5955be02e
BLAKE2b-256 36c97305ea4992c2dba3a1e47aa2443fba75af2fc62d395d8a1367a8e4903f66

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f74f640ffc66f4e09e1a7157761d32ac87d30f57d986207b62429a2e9a55eac2
MD5 9787f664c52d108d78bbd11e99090489
BLAKE2b-256 2ab5731a62d792e2c0b53c1c11d1a3be0668f03e130d7925da31956d0f605d03

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 82e5fbcd9954814a78d61fd8d5a67061567f52c4021407f77b8e7580bbf7fd05
MD5 8af8048a7a2bed086e49db5486d8b8aa
BLAKE2b-256 7f058a145772241cec506df32bea5995799a3092679896fae1b1787079cf299e

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d240dc9367e180f898d88f6d450162a15586bbb7390bea1d31142e53433afdc3
MD5 c470ba37272afb2271cb868e54818791
BLAKE2b-256 db05b45f23d8c5abaf2c7739c18413ec6f91584af89cab5dfb5c852d4915895d

See more details on using hashes here.

File details

Details for the file cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cvxpy_base-1.6.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ec372bf9be8c0ef93c47c5f99481eca0165cade7ae6008930ab69b6e84636253
MD5 2a2f963e102ef83524eee57974ab3ecc
BLAKE2b-256 4cef358942734ad42076b57b72a0ae35b2b8c4a5c8442d5cc9b735ae72993c18

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page