Apache OpenDAL™ Python Binding
Project description
Apache OpenDAL™ Python Binding
Documentation: main
This package intends to build a native python binding for Apache OpenDAL.
Installation
pip install opendal
Usage
fs service example:
import opendal
op = opendal.Operator("fs", root="/tmp")
op.write("test.txt", b"Hello World")
print(op.read("test.txt"))
print(op.stat("test.txt").content_length)
Or using the async API:
import asyncio
async def main():
op = opendal.AsyncOperator("fs", root="/tmp")
await op.write("test.txt", b"Hello World")
print(await op.read("test.txt"))
asyncio.run(main())
s3 service example:
import opendal
op = opendal.Operator("s3", root="/tmp", bucket="your_bucket_name", region="your_region")
op.write("test.txt", b"Hello World")
print(op.read("test.txt"))
print(op.stat("test.txt").content_length)
Or using the async API:
import asyncio
async def main():
op = opendal.AsyncOperator("s3", root="/tmp", bucket="your_bucket_name", region="your_region")
await op.write("test.txt", b"Hello World")
print(await op.read("test.txt"))
asyncio.run(main())
Development
Setup virtualenv:
python -m venv venv
Activate venv:
source venv/bin/activate
Install maturin
:
pip install maturin[patchelf]
Build bindings:
maturin develop
Run some tests:
maturin develop -E test
# To run `test_write.py` and use `fs` operator
OPENDAL_TEST=fs OPENDAL_FS_ROOT=/tmp pytest -vk test_write
Build API docs:
maturin develop -E docs
pdoc -t ./template opendal
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
opendal-0.44.1.tar.gz
(633.9 kB
view hashes)
Built Distributions
Close
Hashes for opendal-0.44.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f876763f81c73a77d77d2b3c5a560ba8925fcb4bb23c61bad1c733288c386a8 |
|
MD5 | 19f2107f1a60e7cfdf43ceb9d0302348 |
|
BLAKE2b-256 | dca6ef3d83f7d22df97dbba2108d191eaffaf4cb66831a071098d484d0df2b3b |
Close
Hashes for opendal-0.44.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 122f2c0f63138786e6a1a06659c4524eadc5794d7cf8340d38f6ecc29a197ac6 |
|
MD5 | 863bc57a24e1240606038c99d3cef40c |
|
BLAKE2b-256 | 040b300cd743da380737a8d12d74148a5ff988ccc9353ac02db564d5e6c644bd |
Close
Hashes for opendal-0.44.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | baa4c14479532857907edee305eac5958900f32990f788866b15db67a892ffdc |
|
MD5 | f2bf4828b63444e6c1e17c87c384bd94 |
|
BLAKE2b-256 | 20f33aca924318b3b824339c24f906f8e16325e5c3c1f70df54ef5e82471b64a |
Close
Hashes for opendal-0.44.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8390057ef1c10d36df7b96a37b2d152b3a78ba251923f5a037a4f4aaeb307838 |
|
MD5 | 9f3ef7bd885ab7f9949e98f203669a39 |
|
BLAKE2b-256 | d5467ce06bdd2d347d42d70a3b777344e78282f3305ce218b760286205b504bb |
Close
Hashes for opendal-0.44.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 620792be7918f2baa0193b92146d52f99a4e0c1a5fca4953279d32f1e1b0a39a |
|
MD5 | f5e2e4c2b43709c3fbcd7722cdff3417 |
|
BLAKE2b-256 | 4ded2bdf642d8cc7cb2194350cae99a69ce2b44152728ce35b79cd1c7ecba4c4 |
Close
Hashes for opendal-0.44.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3876edc0c2d433abfaadcfb2863fcbeef9e548d9f0daaab94b1b36679ab16c4d |
|
MD5 | 23266ef7704630866d3661bc9146e62c |
|
BLAKE2b-256 | 5dbfb1b265a563c926cdc1ce45aa062a30418f877d6b2fafd96e31f51e47dbeb |
Close
Hashes for opendal-0.44.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3e839a9f799c3b0d5397a85a3b6cd7ed62ed111a80ec7335b427414f9a5b2e |
|
MD5 | a69fe1a9ac3c24cce841f05b444f7185 |
|
BLAKE2b-256 | 7167f1cdfc51dfe7d6437bebadc74fe2bb150d2f239531d679af08bd9fd1d38b |
Close
Hashes for opendal-0.44.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03f5dcb828edb150effb2e806c51f225c1615edc8a5cda16188cc7c27b0b9fab |
|
MD5 | ac91c66033761e7d12da79467f0ba334 |
|
BLAKE2b-256 | 160fb6c260b565aa19a65a8647ff1ceca1b270c6ac5caa8ec2f6a46b00a312b4 |
Close
Hashes for opendal-0.44.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c37fc389999c29e8b792e7f68c8e231bd6041f46ae43425c6177fb10f1e911d |
|
MD5 | 11c24283927fb78fb11ef9e9f3612377 |
|
BLAKE2b-256 | 9c20828dc2dfd42c92aa84cd256a821b3a976a0f428ea0a58efeb50d059192c3 |
Close
Hashes for opendal-0.44.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc149ea614e694381276f7cb2b1a1832ecc78f0a9ace192a2a0e8b3fdafc4763 |
|
MD5 | ab7c7bada7d49f80a2fdf75254a0cba5 |
|
BLAKE2b-256 | 40ce1a9edc6cd314144ae0a696b59d90bb639d46fb015c18d318ce161d6faec4 |
Close
Hashes for opendal-0.44.1-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e172c6e19cc18d5b35f3b48dce0f847df5a70093968a76b28a2b4c148b35d01 |
|
MD5 | 4aec77f32204872b0193d4847b5ed2ab |
|
BLAKE2b-256 | 2d89ead3342be3990e4a7cdac209259237d6ceacdb9f6ac25da16de772858947 |
Close
Hashes for opendal-0.44.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 575a250c361e49ac63e71d47c0ec27bb9b05cf02ec1be387a245372bab41b85b |
|
MD5 | f4c845bbc4da7b1b5e000155e797eed9 |
|
BLAKE2b-256 | 10859cb80271002bdb38d3f6ad6823c3118c3843e5c09da2dce2c15e5bc5ff6f |
Close
Hashes for opendal-0.44.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64108f18a7c2a3b8ed94d94af72871444e82ed0f04ba40494cdf25334d0cff6c |
|
MD5 | 3cc9a06913a28ff4b4f35c2f4df1c3cc |
|
BLAKE2b-256 | cb8f794191f83e4a1e54686ed61be08fd4ca1f575d93a75b4a0422850d882a01 |
Close
Hashes for opendal-0.44.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6e1377230536843f4eb23f4a4e65bc81df80a45ad7d416b13eae8e621cd6c76 |
|
MD5 | ce01ddef9c724778ada47ac8e1fad4a6 |
|
BLAKE2b-256 | 29a2329fa3494254d68c58db63072ce42a5ada59d62a16eee951a41846a50222 |
Close
Hashes for opendal-0.44.1-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95455627022f558e510a27244de19268b7ac94181ab07a853ec855895f6a05f2 |
|
MD5 | 01fb52bfd702e5dbcdbe2ec0a2721b4c |
|
BLAKE2b-256 | bcde9555dd251e3edfb1c5ef15b08aa0e77f4960b84782da0027ef0db66add91 |
Close
Hashes for opendal-0.44.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b4e5a9fc8e7c46f81ec93d5f7bc1267bed8d71e8363e04bf4dd96ecda2b1db0 |
|
MD5 | 85b63429019e4ba1f846ff3d6a13962a |
|
BLAKE2b-256 | dbb6f31a1bb6dfcabda6279b5062b65b918924289cb351f188ba40309e530809 |
Close
Hashes for opendal-0.44.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcf23e336624d58e5424503208881dbaac741b4379fe289448fc760fdc84bbcd |
|
MD5 | 51939b4900e3d6006da068d92637e045 |
|
BLAKE2b-256 | 480eb7c92f1b437d229d4d9308fba5cdc53c6e3ee47122a3d4f3152a60c99925 |
Close
Hashes for opendal-0.44.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63aa0d8895145073eb0780062c0c58919d5df1643a565dc30bfee8f9b8fabcab |
|
MD5 | 03d3f855b65065bfd17f8cd7a2cfe1fa |
|
BLAKE2b-256 | 54be65214c8984db85160e0396f58fb0f811f5a013188d0dc17e0d02f1c20ac6 |
Close
Hashes for opendal-0.44.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91b08fd0daf4fceab8b7fe43df332d35262d00d2e9f5431cf36d3384d3377dc3 |
|
MD5 | 5e9ebb94b7b1e96bbf84e7f7d0100ada |
|
BLAKE2b-256 | 862da2cae8fe110639ae48a84e639c44d72250e2ee209225d8a85d6538447982 |
Close
Hashes for opendal-0.44.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb0a2c810589ec41b451c6289625d1a4650333f81a35fd766bab13dba2e4c6c2 |
|
MD5 | 6cf20fc2b54b51fe87a2249dff23cf7c |
|
BLAKE2b-256 | 69eb854c61896b06d8d69b15e9239cdd7a4e1250cca33bcbcc11645f7c2b8047 |
Close
Hashes for opendal-0.44.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f84be42b7a058eacb807b11d9548defa61936946109f5010290a6b63d40419b0 |
|
MD5 | ccbd79794308fc82b2e5cdf4957c5212 |
|
BLAKE2b-256 | 460e27c0531d4305a3e968017d56a3e6b09bb2b59e19dd5951e2d6b2ee674d1d |
Close
Hashes for opendal-0.44.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c36b62c486938b5ead6c24bd7cc03790f62a59ee5f5b98a8eda825d7945ad4a |
|
MD5 | a87acf5cffea32cb5d02c801a99ca5ea |
|
BLAKE2b-256 | 101c3f6d4e3873abfae3707e1c7086614a4ec680404239862426d09bf6b45c86 |
Close
Hashes for opendal-0.44.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edcbc20c26cff2054d55644c22bb044ea72c2a2804cd0e4c12046327586f1486 |
|
MD5 | a939a22d98158595ab3fb544eef8cc97 |
|
BLAKE2b-256 | 07943d370fc899d78c3f4fa8ebe096136e676290b7e6b3db06d370ae363c40a9 |
Close
Hashes for opendal-0.44.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a81d862e51f08de2fe82de859866ac57f0afd1a8a8aa95da64f2661e559d4a50 |
|
MD5 | 3cbd396fadf84f872e8779e202d90652 |
|
BLAKE2b-256 | 1f0511e3c3d66491735e8d49dbd4b3bd60c5b308662fdaa869858221551db4b0 |
Close
Hashes for opendal-0.44.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 308244909fbc1175ecb1cd602b98c9fe677db35aed0327eeac63e772b607309e |
|
MD5 | 08744fb8fd0d352fd9a0ed28b55a3d88 |
|
BLAKE2b-256 | 177b4da1164e1de25115cacc96e145cba0375727965254aa34246dfa3045d746 |
Close
Hashes for opendal-0.44.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1ba05e38a4a593fa19848266192652b5d6cec372d822c4d9aab6cd183526016 |
|
MD5 | fdce193205cb42ab509596aeb1ed699a |
|
BLAKE2b-256 | c60bcb1ced246b7e64f9bc68585c43a69e7073f4c0d3f6adbba92edd8d7db98b |
Close
Hashes for opendal-0.44.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 968830099298b1286a0377ae4de6b18ca366ba9136e6e1e75dbfd839a3a4a411 |
|
MD5 | 3fc72bea426c75def1d035cd80a7d8c6 |
|
BLAKE2b-256 | e81b1e8a84d3a6349661fb7773a3eb028927f0b853dcd04860fe2aa99a8fec90 |
Close
Hashes for opendal-0.44.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83d46a999cbc7d4cefd0c0f6f9acf036f3ffe681e2646e69e1004e9283a8282b |
|
MD5 | 2a5b7951d2f1777e4bfe386f4e21923d |
|
BLAKE2b-256 | d624c4370fb6b83a3070593afe88247091a71744251642b63b809ac5bcde26e3 |
Close
Hashes for opendal-0.44.1-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29414a12b927cf86a684ab9d744edb51c9e0f3036fe005e1370b4d745c65d92c |
|
MD5 | 7a494fecb7c2ee4569c20daaca980256 |
|
BLAKE2b-256 | 35b8fd7a2fdb4a3968ee4ac2e02488f549f893ca8d48476b895a79cd4f210c3f |
Close
Hashes for opendal-0.44.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c54d62315efff630154c5cd5aafbb22300c1e82952fdf0e68833bdb7fe55f63b |
|
MD5 | 42f0be6bf041fec050d3c33ceb619851 |
|
BLAKE2b-256 | 7eed84d0503d51ed519f003cefc8d7e90104f72d3243f49a8e472a72e099aab3 |
Close
Hashes for opendal-0.44.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3316cd13840dd1f8ba9f73e0668140caa287fb91aba44e5d3cbe08ef2bd15b6 |
|
MD5 | e30e117f314aa8c763fc191bf81f7a61 |
|
BLAKE2b-256 | 37f32f71331af113f2e23f4c6e1858d906153db21d5504e21ef221a22dc1c9ca |
Close
Hashes for opendal-0.44.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2289671f2c4e6c5d51a555bb0c7fa734150b0479b57cc98d2c2ce6368f0022bd |
|
MD5 | f54bc953b16f541533d082f1841485c9 |
|
BLAKE2b-256 | 183473b7404f1e9af645e9a3933d66fee6b38897f5e096cb59041ed41e974725 |
Close
Hashes for opendal-0.44.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c2445bc8364e3b4230521f73c38237cadd827973b49321e8208f7d02301e275 |
|
MD5 | b45943f8f8b6abb78b950fff7459c5e2 |
|
BLAKE2b-256 | 0619c371c5c71ec96fd3d1c5f2a5c53da2a53fe69c30f4371bfdeedbce3f4db8 |
Close
Hashes for opendal-0.44.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c604f597ca9e00e96865907b47071e5e85352bbf1052734c5b0a7c6f33099e66 |
|
MD5 | 5a40eaf25d995d7f4b1c64cf10ed34dc |
|
BLAKE2b-256 | d80d1ee582d02616c61683d3e2d7fcb0801de23d6193aed3d4d24fb8028a4a61 |
Close
Hashes for opendal-0.44.1-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b32a9f309a710562fc05a65fb2cf3f54f0c35818566bd13bb7b77bb84627054d |
|
MD5 | 72d36c4680aabd586007f6c9b07816ab |
|
BLAKE2b-256 | 8836752685137fd569812454388117227d7da3c4f0ec0b0a318f67b466fbb900 |
Close
Hashes for opendal-0.44.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3df6152689d0cc92e7f5820ef79feb5afbf04da9875cd2fcb905ade67982751 |
|
MD5 | 3b5f0d86f2fbf473de7c2fdb9590d406 |
|
BLAKE2b-256 | 6a6832ad41d181efd08281e5476f6a36c81b4d178d79ac97a1c0f2d5df9c8438 |
Close
Hashes for opendal-0.44.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e295b2341a7f28c1fc04a00ebebd4f044adf24a4a89be8e4071dee1197baaf20 |
|
MD5 | a2230fa434aa09ce62b43787dedbcc78 |
|
BLAKE2b-256 | e2588fac8d40bfff3dd81a7929a3cd8840fb0b8272102b39569262cb082d2695 |
Close
Hashes for opendal-0.44.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33a84ccfe9ae0d5457b22e9271ae7cf76c406f6f9758de96d7e53ea9dcca0ba8 |
|
MD5 | 564c4c58ff59a9d9aae5abbc0ed10c61 |
|
BLAKE2b-256 | 9f91aa2be9f0723880248b0fc0f37fbdf501455e362c297bafb114995e0f7dd6 |
Close
Hashes for opendal-0.44.1-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fcba963e8f19e496147a8ef40056043ef3f72ead13d5dc68d4d586fac7222ca |
|
MD5 | 67d7f62d56ee2817591b890ec6cf8eed |
|
BLAKE2b-256 | 55feaa850c9d45740331d56c6ecdec2954a45c64fe7e55fa371c761f23dedab2 |
Close
Hashes for opendal-0.44.1-cp37-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7abcd34566424a00978fdf24d01a8c7518a9dc551764b99e2be55b1814e26c0 |
|
MD5 | 919066f33067673a4df0377b31837084 |
|
BLAKE2b-256 | b73dbae8eb9e8faf340a85afb498a63ffd084da1135797bfa0ec6292e2ec901b |
Close
Hashes for opendal-0.44.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 055f2f433fd7941c5a643169dbcf8ea35439c74b0b06cea3e56a4b6ba06b8fab |
|
MD5 | fdc5d06a0c45c8f6e73a03d06836523f |
|
BLAKE2b-256 | 5c8cfb2c049d82db37ebecf7a71fd6ea27e152afd787f8096ff5021eea54e2b4 |
Close
Hashes for opendal-0.44.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0b35195dd7e9771a9898446f628799261c9f95b72113bfb7d451e9198718925 |
|
MD5 | f9a079f582874e033c8de76487487957 |
|
BLAKE2b-256 | 15d8b28a1ad69e2fe1743daf5442287e0ac994215ae81c6476e307851450f8f3 |
Close
Hashes for opendal-0.44.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7de3ebc30ca491cc735be84cd13e6a881407ddaad1198835c133c39e60e21b4d |
|
MD5 | 3bb6135931e7814ee7cb5a0e470dc145 |
|
BLAKE2b-256 | cc2acbb3ce9561255f4e4839b945909d6088bfaf4a8afc725e6a2512cfc44a63 |
Close
Hashes for opendal-0.44.1-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b43500f4a52a4b54f4c4533eb2f6435ca3d27b79ecb9f8ec4d585806a95099d6 |
|
MD5 | b81881faa5ef5b568edabbcc393db20c |
|
BLAKE2b-256 | d8110829dea43701e590adc4d963717b58ccddffcd772fee6ae038025c003462 |