Skip to main content

passagemath: Algorithms for Rubik's cube

Project description

passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.

It is a fork of SageMath, which has been developed 2005-2025 under the motto “Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB”.

The passagemath fork uses the motto “Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities.” It was created in October 2024 with the following goals:

Full documentation is available online.

passagemath attempts to support and provides binary wheels suitable for all major Linux distributions and recent versions of macOS.

Binary wheels for native Windows (x86_64) are are available for a subset of the passagemath distributions. Use of the full functionality of passagemath on Windows currently requires the use of Windows Subsystem for Linux (WSL) or virtualization.

The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.

About this pip-installable distribution package

This pip-installable distribution passagemath-rubiks provides an interface to several programs for working with Rubik’s cubes.

Michael Reid (GPL) http://www.cflmath.com/~reid/Rubik/optimal_solver.html

  • optimal - uses many pre-computed tables to find an optimal solution to the 3x3x3 Rubik’s cube

Dik T. Winter (MIT License)

  • cube - uses Kociemba’s algorithm to iteratively find a short solution to the 3x3x3 Rubik’s cube

  • size222 - solves a 2x2x2 Rubik’s cube

Eric Dietz (GPL) https://web.archive.org/web/20121212175710/http://www.wrongway.org/?rubiksource

  • cu2 - A fast, non-optimal 2x2x2 solver

  • cubex - A fast, non-optimal 3x3x3 solver

  • mcube - A fast, non-optimal 4x4x4 solver

What is included

  • Interface

  • Features (via passagemath-environment)

  • Binary wheels on PyPI contain prebuilt copies of rubiks executables.

Examples

Using rubiks programs on the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.interfaces.rubik import *

In [2]: C = RubiksCube("R U F L B D")

In [3]: sol = CubexSolver().solve(C.facets()); sol
Out[3]: "U' L' L' U L U' L U D L L D' L' D L' D' L D L' U' L D' L' U L' B' U' L' U B L D L D' U' L' U L B L B' L' U L U' L' F' L' F L' F L F' L' D' L' D D L D' B L B' L B' L B F' L F F B' L F' B D' D' L D B' B' L' D' B U' U' L' B' D' F' F' L D F'"

Using sage.groups.perm_gps:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.all__sagemath_rubiks import *

In [2]: rubik = CubeGroup(); state = rubik.faces("R")

In [3]: rubik.solve(state)
Out[3]: 'R'

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

passagemath_rubiks-10.6.36.tar.gz (8.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_x86_64.whl (212.8 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_arm64.whl (204.6 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.6.36.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.36.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for passagemath_rubiks-10.6.36.tar.gz
Algorithm Hash digest
SHA256 d6f06dd08809cfaf06fe7e01d4aef78d4783c5a4bf59e2b32e00770796eb3a4e
MD5 30ab9e809964a6ab5d00304f1e8522ff
BLAKE2b-256 f134ab255d06214d6bac69e80f2b5503717000d7fac4dd3c08e0a36ad6b90370

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2ba4318e2bfa37219f7eab1c2cda863cf82073456e7e48af543bfad6e2db52ca
MD5 fecf1c17ace4fbda8ae9a0a310fe242a
BLAKE2b-256 517b48cfb0cddac08a0a1a8af0ada14c6073e78e17603a6ab67ea1ddd0597770

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0e4ee10564a68ad3df3a697d6f5144087a6610e182fda6b8d90a7a0442aa168e
MD5 02b56ab51ced4663be5a9ff5ec4ffeca
BLAKE2b-256 7cb921fd77268a761f7e3dbd8c53e24b37e6d6db2767763294f410d194119956

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a3c0db0955e1592a1732e743b68bc745f6ca2c6d41248e00748d71c78f392ff
MD5 6674cbe4ca34732391fa830f1804433f
BLAKE2b-256 bdb52ba1ddc224c06efbeccf1fc514985b4783843d66df293c6ee2acebcd1ac1

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d8eff8a6b4057dd50ba610929c3cd7bee7db20ae44d3763bc635a3ade549fe34
MD5 1350ad108013b91db08ee1c4971ef7c9
BLAKE2b-256 9907402b48e37f5d463578869a53b28c372aa8bb6509a9c8a7981be2927fc581

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a13e698742ba4c354056d2e36a563726a421f7c247943d7994e71c6c407ae8bf
MD5 ef3671b205d8c7ccdaafe3e671f04bf9
BLAKE2b-256 abbcfb24fbc792d117e96adff9847f690012e5638cbbfba9facb4511b66ce33a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 99b49dc117a99729cbb919fdb5baa66c33ba93949ed5b2bf0884f95d0dc97ac2
MD5 99f69bf3820b3c4a2f32393738d316da
BLAKE2b-256 c292c9c45499904fbfa52cb25e73f38bac1f5bdc2d58d6924d5837ae6d636398

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5336c550a9488c8f5365999dab2c71153e24db2739d6c99e6ea18866d13dbda2
MD5 ad8677a076adb0cc1711516b448da85f
BLAKE2b-256 9e5cb806ef5eeb242e32660c51056ffceddc38ab7d60acc139b40c0f5bde4919

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b090334276c1cf7837abe735d8e772ceb99dfed45a5b764803b29f23dfa36280
MD5 11c6394cc3d060394af948b69dc96380
BLAKE2b-256 a6f40b68c6e65ab8bae4b918223cde8af094ae7313f82bbe1ae5b94814695fc3

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 65dd00717de3352fa4ff864549bd2019966ccb2cb1bb9d5d3833d76b85b73545
MD5 740d3c1b1cbc7b8bcdae93da69a7276a
BLAKE2b-256 c816d5b5761150e4a47650c6e9e7ac7b97ba084d549c8662f8c4832f56ba42b7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 49eef305a20be5fe690c76a054b4f7b7562ee26a378d47d539d858030e9f6f05
MD5 c821ddedc302434cebdb647b94a71636
BLAKE2b-256 1c62a709b876814ca177d0eb9be79c1cab9d594cb26bf1d112825e17dcad381c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c45b5fdfa3d0f78b5f1ab17bbf2c5b5caaa3c5ce2a4dd0bb488c87c326bc6392
MD5 efd9c5b4aeca4b7d9f98d85568463461
BLAKE2b-256 26143d3734e0f631e1ac6f4b8f661f7a204f3b70b880cb212b3c1a39ed5838db

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ed209681d1509611a08830153bbb54bcd85e9c25e2cf2ca94221b29e6cf65862
MD5 56f4d54f28d183b9a11569183b6e1307
BLAKE2b-256 b1e6c950de3b3f7c0b2bf201107d035e312b72b51f17161327e84de749f0c2e2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e08f92573333fedaeb7925682e231e828394fc113f109800dbfab3a4e514441
MD5 a09f3de46b52df1b6405fe42550e026d
BLAKE2b-256 b5dcb7499f5259858ebe844c9fb3c9a689333eb5ae740fb593467fbecd9cb7e4

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f9c05d01d511cdd075cbef07e3337d959b7d17ce861656fac756f47e8bcedf12
MD5 ae060ba0bba6c631af5ae4241179169f
BLAKE2b-256 378944cc27bb4e4766301e7ccab60db3fe1e116b1597940af4e33174a828f5a7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91b179c7d07cb565b3bdbff8ba9c11bf2bc1a9bfce0b94868b4bed715fe09715
MD5 e3c55d114302f01646b07f36b26e3e80
BLAKE2b-256 ec05af500b6f92b92960a9f38fa487e53c5e8635a9731e4700e73b0ce78100c7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7a4a3c4bf0ff8eef963828ab3130b6a8d558df971b1dd73d626b4e6b49daad54
MD5 b620607c561a87c83de7449a79eb71a7
BLAKE2b-256 a99276339176b99ab8e832274671a3c42255f1d53b22c29bbf2e6456a3253e1a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7d3e4768943ae0244e9f9b0c7bb1dc46dbfdf78975142fc5f1f17f294b752a05
MD5 6b7eafbff422d224b629ef231ef7790a
BLAKE2b-256 d0626065248ae85214e2f2ea2e44e555279c43d2ffc3f3361469e0dd45667e1c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 69f1fbf9faddd70af0238180e0e94cba145b60a1171ee661ee6a24112d747eeb
MD5 1a8608f7c3c24a571832fdfc0000b04f
BLAKE2b-256 b52699b334af8dcf339dd0c5eaf6d84475a03eb3c249e2e4de51da7e2863be0f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 621ce4066003e0440a81b29487536a56438a2c26c812849cd2ab1423043fb682
MD5 a4a0aa0990ff58d38b0225dea5dfd917
BLAKE2b-256 7fa78906a4f4a1c07492474e67f90ea037395e703b0d8e3b7e13e2cfe70ec31a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5e7e698b502ec3c76a7ad75543d05badb91ee176ef2ad816b810af4365527564
MD5 03841061678dfc26a350dc00f6180e63
BLAKE2b-256 152af4216eb0aae7c2598dbdadc4b89918fdf0156770f69f4648e769669e6b79

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 24fdb4bd23c647779af567ed16889731cc6406282b2258c083592fb2b3d2ba2c
MD5 0efe38b34fc6921ce17c533490e7949b
BLAKE2b-256 57aa7d5d1546babbb2e98514f3b989d1c28bdddfb60675e77cdb32204198b5fb

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f7824d415e5671125c65eef543cc7e56a24b0338754659b38c33f0d694cada17
MD5 be29f383b14578f2490e00124c0e1ab1
BLAKE2b-256 e10619d18250adef92a777bbed48b76d7a2965f20c1f6af3f2d652f95bc02dcf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 098f14bf8b64ada15c1e59814a7f79316fe0c0947dd42d4bd94ea9a1fb5bb767
MD5 cf39827d2b231b4da5120fe51cfa189b
BLAKE2b-256 a153bcb9298ec6bc586d68146ebcf89a557ba4d65b4a5313dffeb0f2b253aaaf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.36-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0215264959cfb85d26bdb3051f86abbbc7ae4d5561697c631d0a771f87b4dca7
MD5 5123a911b323dd9bb531cfb2bd3cb1c5
BLAKE2b-256 f3e4b50f8c033581ebade32781c8a93222f0f32a79debd66d5383c87c3048cfd

See more details on using hashes here.

Supported by

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