为了账号安全,请及时绑定邮箱和手机立即绑定

VidSnap:轻松屏幕录制,由Pinata驱动。

这是针对Pinata挑战的参赛作品

我建的东西

VidSnap 是一个屏幕录制应用程序,用于轻松捕捉并分享你的屏幕内容。你所需要做的就是点击“开始录制”按钮,并将预览链接分享给任何人。它很私密,你的录制会安全地存储在 Pinata Cloud。

演示

你可以在这里查看VidSnap的实际操作:网址是"https://vidsnap-app.vercel.app/"。

或者看看这个快速屏幕截图 😉:https://vidsnap-app.vercel.app/v/019288f7-d95f-7eef-bcd4-7c2f00693508

您可以开始录制匿名音频,也可以自由注册用户名和密码。注册后,视频会保存到您的账户里,您可以在首页查看所有录制的内容。
VidSnap 主页

下面来看看VidSnap的录影功能吧
VidSnap 录制功能

这是你的视频预览;你可以将网址分享给任何人,让他们也可以观看。
VidSnap 视频预览

我的那段代码 GitHub logo fredoist / vidsnap

(注:由于没有提供源文本和翻译内容,因此无法进行具体的修改和反馈。请提供需要审查的文本。)

VidSnap:轻松录制屏幕的应用

App 预览图

VidSnap 是一个屏幕录制软件,可以轻松捕捉并分享您的屏幕内容。只需点击“开始录制”,然后将预览链接分享给任何人。它是保密的,您的录制内容会安全地保存在 Pinata Cloud 上。

开始吧
  1. 将项目克隆到您的本地机器。
  2. 将其链接到 Vercel 项目以进行 API 功能测试(使用 npm i -g vercel)。
  3. Pinata Cloud 注册并创建一个新的 API 密钥。
  4. 获取 JWT 密钥并在 Vercel 中将其添加为环境变量 vercel env add PINATA_JWT
  5. /api/video.js 文件中替换网关域名。
  6. 运行开发服务器 vercel dev
截屏

首页 [首页](https://private-user-images.githubusercontent.com/7684330/376104109-5e66289d-5dab-4b11-acaf-819f593c12d8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mjg5MTU2MDAsIm5iZiI6MTcyODkxNTMwMCwicGF0aCI6Ii83Njg0MzMwLzM3NjEwNDEwOS01ZTY2Mjg5ZC01ZGFiLTRiMTEtYWNhZi04MTlmNTkzYzEyZDgucG5nP1xtLXVzLV9yZXF1ZXN0JlxtLWFjY2Vzc2NvdmVycjo0MTQwMzU4MjU1Yjg0ZDc5NzI5Nzg5OTQxNjNhZDI2MzYwMzY2NWRiNGYxZDkxN2YyMWYwNWQ0ZDQ0ZGQ2MmM4Y2JkZjJlNTk5M2ExMmFkYmY1Nzg0MzA3ZTFlMmM3YjIzZDc5MmEyZDYwNzYzZDliMzE1NjE4MWE5NTg3ZDk4ZDg3OTMxZjc3M2QxZWYyMjI3N2ZjOTQwZDg1MzBmM2Y0Zjg1Nzg5Y2UyMzRjNmI3OTI5MDNiZjMzM2FiNzgyNzI3Y2IwMjkwN2MzNjQxNzQ4NjEzNjM5OTFhZjBhYmM5NzE0NmZiYjMxM2U4ZjEyNDg3NTBjYjA0ODFiMmMzZmU0MWUxZDI5ZTQwNzJmNDQ3OWQ3MjQwZmM5MzRlM2M1ZDg5ZTQ3NzQ1N2UwZjQyOTMyZjJkOTIwMzUxNTI1MDM5NzgxZTBmMjg3N2M4YzA5YmYyZjU1N2ZjNzAyMTA2OGUxMDQ1NTY1ZDg3ZTg0Y2UyN2Q1Yzg4ZWY5ZDhiOTY3MjQzZjliM2RiMzRiYjg3ZDEwOTNhZGQzNTM2OTM1ZTc0YjZlZDg4ZTBmYzFiZDMxMmIwY2I1YjNiYjM4NDgyZGI1Mzg4ZTRjZmYyYzYyY2IzMjFhY2RkNzMxYzA3NDFjZDk1ZjQ1ZjJkMzU1ZWMxZjQwYzg1ZmM3NTk0N2Q5ODk3NzY0YjIxYmVkNjg2ZjM2ZjM3ODc3NzAxOTYxMzg0N2RiMTg1MTUyNjY3OTNjZDkxZThiYjM1NzZmODI1NjM5Mzg5MjU4NzU1MzQyNjYwNzE4ZDhiOTg2MTgzNDY0NTRjMjQxYzg5ZDQ4Yzg1ZDc2OTRkZjYwNTQyZjM3MzRlZDIyMWJiMjllMzNiM2M5MzE0NjMzZDhiYzBjZTQwMzMyOTliZTQxNjJhZTg3MDQ1YzIwYjViNzJlODg1NzU1Zjg4Yjg1ODc4ZjFkOTZmNjY3ZTE5NmQyNTMyZjRiZTg3NjA3Mzg1NzhiMjI5ZTg3NzdkYmQ1OTM0OTQ2NmMxMzFiN2QxYzU0NjYzNjRlNzI4N2M2ZjIyNTg1ZDc3YzMyYjEzZjQ0YTQ1ZjViNmI3Yjg5ZjNhZmViN2MzYjY1Y2E0YjI5YWQ2Nzg5ZDk2MjAyZDk0NWM1MTM0ZDc5ZDc0NmZiNjM5YzY4ODU4MjRlNjQ5YjRlMTYyYzJjMjYxY2JiMzgwZmI4MzljOGJlY2I2Y2M2YjAwMDkzNzA4MmUwNjNhYjBkM2IzN2MxZDk5MmI1NTIzNjM4YzAxMzRlZDViOTMwNjg3ZDhiMTMwNzVlZjQ5NzhiMzQ5MmEzN2M4NjMzOTQ3ZDM0MWIwNzI0ZmFhNzVjMzFjMjA0MzIwM2IwOTQ3MDUxNzUxMzY5NzI4NTYxNjQ5Y2RkOTFiNGM1YzZmNzFmOWQyNzgwMGY3MzQxOGJjNzRmZjRlMWUwZDg5ODA2MDM0MTRiZjQ4Y2Q5MzRjNjNhOGJiOTliNjg0NzA3ZTI1MzE2MTA1NzI2YzQxNjYxODEwNjQ2Njg5OTYyN2I4Nzg1MzhiMGQxMzg3NjE2NzYwY2M2N2Q4YmM3MzRlNTk1Yzg1ZjRiYjY4ZjdiNjRmN2Q1NjAyNzQxNWQ1M2EzZmUyMjQ3ZmY4NTg1ZmU5OTcyOTI4MzE3Y2MwODIyZTQ1NzU4OTI5YjBjMzE4NzEzNjQ4OTM5NjA3MzA5NjRmOTg5MjY0NTc1MzkyMTEyNzg3ODMxMzQ2NTkzNjMxOTQ4M2I2MjliM2Y3MDQyYjIwMzg1MmIzZjM1NGM5MzE4MjY4MzY0ZmJlN2QxM2QxYjI3NjRlM2Q2ZmEzOTI2MzE3Yjg5N2E1ODI0NDZlNzg3ZDQwNjc2ZjQzNzNkZTg0ZjY1OTM1YjI1ZjBiNzliMmQzZmQyNjM2MzQ5MzZiMzg2YmU3ZjRiNjM5MWY4NjUzMGQ0MzIzZjM5ZTgyMzBhZjYyMjQxNzI4NjYwNzYzYmQyN2M4YzBkNzQ3NTM4ZmUzMzQ2M2MxZjliNzI4MzU0ZjA2ZTc0OTZlZjUxN2M1NGIyNDU5MzgyMjQzMzYxZmQ2NzM1NjkwNDUzYmMxODg1ZTQyZTA3ZmU2Mzg4N2I3NjRmMzg2ZDU4NjU4ZjUxMmQ4MjgzZjI1NzYzNmUzNTM5MzRkNzQzMzg3YzI5NjUyN2Y1OTM0NjRmYzA2MzYxNTg4Y2ZlZDkzYzJkMzViYmM4ZjBjYzUxMzI1MDc4NzY3ZTkzMzQyYjMxOTg4ZjkwZTJjYzdlY2JkYzljNzI0MzgzZjQyZDc4ZjMzNzg2MjRjY2IzN2I5ZmYyMzI0N2E4MzRlYzczM2UyYzQ5N2JiNzg5MzQ3ZTdkNjM3ZjYyZmUyZjMzZjYyZjU3ZGM4MDkzN2Y0ZDg4M2QxZjQxZTRhZjY2MzAwMzI0MTkzNDU3YjNiZjNkOTM0ZTJhM2YxODg4OTU0Nzg4ZjIzNzI2ZDI0OTI3NzYyMzg4ZDk2MjMyNzI5M2M0OTFhYmE0MjY5ZjZjMmUxZDZiNzQ3NWI2MmU2NzRkY2M3ZmYyNjRjMmMwM2Y0ZjY0ZjNhMDQyNGQwMjMwN2YyNjFjOTRmMDZlZjI3MjRiY2YyZjRlNjdiNzI0YjNjMTM4MzIwYmU0YjczZjY5N2Q3ZjRkMzI1NTQ4MDYwZDIyODMwODQzNjMwZjc4NDMzNGY0ZjM5MjQyMzI4NmMzNjEwMTkwMzA1Mzg0ZDcyM2EyNzI1ZjM3Y2ZlZjQ0YzQ0NmUxMzg3ZjQwYzI4NzQ1NzMxZjI4YzFhZGMxNDkxNzUxNjM1Njg0ZjYzNzg0MDk0NmM2ZTQ5NjU2ZjQ5MzI1YjQ4ZDIxZTg3MzE1ZDJlMjU5NjQxNzg0NjZjZjBkMTNkZjRmZjY0N2I0YzRmOWZjNDg5ZTIyZTc4NjE0ZjA4Mjk4ZDk3M2I5MzRlM2RhNmU4ZjI5Nzg3ZjQ0MzdhZDg3MmMwNzY4NzE3YjEyZTdjNjQ2ZTIzNjEwMjMwNDg0MzEyMTM1ZTQ5MjM3MzU0ZjJiYmZjNDM5ZjQwZDkxNzUwOGZlY2Y4MjBjOWI1M2Q1YmY1OTkxZDg5MTY1ZjQ1MmIzZjNhMzQ2ZmMxZjhhNjU2MzEzYmQ3MzRlNzY2M2YzOTQ1YmE2ZmRkNTQyNjRjNDg4NjA5NzRhOTkwZWMxMWEzYzQyNjg1ZTQyNjM4NzE3ZDJhNzQxY2IyZjg0ZGI4M2ZmZDg1NjM1MTYwOTYxZmQzZTg4ZmIyZTg0ZjliNTBjOTQxYzg5MGYzNzQ4ZTg4MjI3ZjEyMjQ4N2EyZjI2ZjZlZDUwZTc0MzBkNmMzOTZlMjQwNWY3MzRkMzU2Y2Y5MjUxYjI3OTk1Njg0NzQyZjg2ZDY5MzYxMmU3OTI0YTk4YjBmY2Q2MzIyNzZkZjMwNmM5MTI1OTgwZmE0OTQxZjQ5ZjhiZjJhYjI0NzJlMzUxODM4MzVjMjBhMzJiZjlkM2JlZjM5ZjgwYzVjNGFhZTJjYzU2YzUyN2RjZDk2Y2YzNjVjZjIyM2RmZmViM2Q2M2YzZjcxN2M2MzA0ZjQ1ZTg3YjgzNzViYjY0ZTA1NjlhMzg2ZGE1YjY1ZmVjYjgyMjA4NjFhZjY1ZjMzNTU3M2YxMzQwYmEzNzg3ZDIxZDk3MmZkNzZlYzE2NDBkYzQ5NzU1OTg0NjZkMzY0YjUxZTViMzY2MzVjZjEwMjQwZWViZTc4ZjEwNzNjMWE3M2ZmMzJmYTI2NzE4OTY0ZWFiZDQ2Y2RjZDU4ZmMxNzQ5NjMzMTRkMzRkMzU5NGEzN2QwZDcxMmY5MzI0ZDEwNzYzMjg2ZjY0ZTg1MDQ4NWQzNzIwMzM2N2MwZjY2Yzg4Mzg1ZTgzNjYyZjY3M2I5OTI5NzliNjEyZjIwMDI2ZmRkMzkwZGYyODMzZjMwMWYyMzU2MzE2M2Q0MTYwYzI0ZTUxZDc4M2Q5MzkyODMxZjE1NjM3MTQ5MjQxNmUzMTMyNDlmZjQwMjRlNjhiZTQyYjg4ZjU2NGYzYjA4ZDQxMzEwOTM0YzA0MzI4M2ZlZjM4NWM0MzdhMjQ0ZmI2NzFmMzFkMzYxNmU3M2E5ODM5YzcyZDg1Zjg1YzczMDkzMTkxNjA3ZDcyZmQ3ZDViNGY3M2QzOWU2Mjg1YmM5Nzg4Y2UyNjRkZTAzNzg3N2MzMjJmYzIyODcwMjI5MzkyZjMwYzYyNjMxOTk0NjE4M2ZmZjM0ZjNkZjM0ZmZlZjAzNTI1MjAyNzkyMzYxNjMxNjMwMzY3MjQ2OTI2Mzg2MzY3NzM1YzRmOTNiNjRmNWJhMzU3NmRlMjM4ZDQwZDg2MTY0M2Y4ZjgyMzUxZWRiN2MxZDc3ZDhiOThjZTRmMzliYjFkN2M0Nzg2MmI0MzRlZjg4NTMwNDAxODg5MmQxNzRiZDk1NTY0YjIzNjMxN2M2ZGM5NzQ1NzliZTliZmI2ZjViMzY3YjVjNjVlZTg0ZTIxZjQ4NjY1NzQ5ZjQ4MjI1ZmJlMzFhY2NkZTg5ZjU4Mzg2MzM1OTQ0MjQ3Mzg4Mzg4YmM5Mzg5YjM4NzQ3MGQzYjM4OTUyZjMwZTg0ZjIzNzYwZGU5ZDI1ZTI5M2U5OTU3NzdiOTQ3Zjg3Y2Y0ODJjYjM2ZTkxZDc1ZmQzYjg2M2ZiNzFkMmYyMzA2OTQwNzQwZDQ2NzI5Nzg3ZjQ3NDE2ZjQ4YjI1OGYyNDE3ZWY4OGU4MmEyZmU4ZjE0ZTc3YjUyNjM4YzY1YzY4Mzg3YjBjZTc1MzI1Zjg1MzRkZmU0NjI2OTU2ZjI0MzI0NmM5MzRlMjU3OTQyZjMzMmQyMzRjYzg4MjM1ZjliMzI5OTQ5Nzg0ZjM0NDc3MzEwZjYwMzVlMjU1M2IwNGJkZjg0MzgxOTg3Y2M3ZDk5ZmQ3ZWE2OTQ5NTYzNjM5MzYxNzQ1ZjU3NjUxNTIyMzY5ZjE4NTk3MDE2Mjg2ZmVjYzY2ODMwZjQ3YjgzMDcyZDg3Nzg2MzYxNjg5N2M2ZjY1ZDg3MjMxYzYzNzhiZTRlZmY5MzU2MzU4MjQ2MjY1Zjc4ZjI1ZGU4Nzg1MzQxYjg4MzUyNjQ5Mzg2ZjAzZjI4MjU5ZjU2ZDI4MjI3MDZiZTg5MjFmYzViOTljNjA2M2UxNjE0NzY2MzFhMzZjNjYxNjJhNzg1Y2EzOTg1YjhiYmY3Mzg0MmJiMjcyNzY4OTZmYzRmMzU0ZjQ1MzI3MDY1NzI4NjM5MDk3YzQwMzA1YzQwYzUzNzUyNjY2NjMxNzM4MzU0ZjMxY2QxZjEwOGE0MTRlZjRlMDk2ZDM2ODFjMzUxMDQwZGJhMjRlMTcyN2U4ZDQ4YzJiNzg4ZjFjOTMxY2E3OTUxYzE0NjM2NTA2MTU5ZmYyZTI1Zjg5Mzg5MDM2MzE2MzcyMzYwMzI0NjBkOTMyMzcyYjg5ZjM4MGRhMzRiNzg4OTg0Mzg3ODk4ZTQ4Yjg2ZDA3ZTg3YjRiMjM4NDc2MzhiNjU1ZjZiMjUxN2MzMjg3MzRiZjQwNjI0MmYzOTc0MjRjZmQzN2I4NzIwOGE5NzA2MzA0ZjFjZDliZDUzZDk3OTc4OTYyMjI4YzY0ZmY4OTI2ZjJiZDk2OTZjM2Q5N2U1NzUxMWUxNzQxNzI1NzY4N2Q2ZTQxYmU3YjAwZTg5ZjU3Nzg4ZjFmZTI1YTI4MzYwMDM2YzU5YzYxMTg1ZDg4Nzg0MzYwMzg3Yzg5MzQ5Y2U3YjNlMzg3ZmMzMjU2ZTQyNjQ1ZmYyZDQ3M2U2NTA3MzYxMjM0YjMxMzYyZDg2OTM5Yzg5ZDg3NTM0MjI0ZGI5NzI1ZDg4YTNmNjIwMjIwODg0ZDUzNzE0MjgzOTMwMzUwNzM2NjQ2ZDQ4M2QxZjMzNjA5NzE3NjQzOTQ0NDQ3MzI5MzU2NzQ5ZDk4NTQ2NDM3MmM1ODc2NzQ5Y2IzNDEzNjM0Zjg4Mzg1NjI5Mzg3ZmU5MjQyMzAwZjIwMzg5NzQwMDIyYmFhZjg3Nzg3OTMxNGVlZDI0ZjI5ODJhZDg2NTFjYjMzMjM0M2QzNjY5N2I1ZjU0Nzg4Nzg5YjY0ZTkyMzIyZjc3NjQ0ZmQ5MjQ4ZmM1Njg2MzhiZDg0OTMwYjI5ZjUzNzMyOTIzMTYzZjQ4NjQwMjMwMDMzNTZjYjQyOGFjZmI4NjNiNjMzOTQ5YjBmMTJkN2MwMDUyMzg2NjQxM2I0NzQ2NzE1Yjg4ZjI2MjQ0N2M2MzE4YjNlN2EwMDQ0ZjFkYWQ0ZDk5OTU2Y2MxMjgzMzE5MjQ5NjYxZDkxMTYwZmY1YzE4NmYxOTg3YzUxNzQ1OTY4MGQyYzU2Yjg3N2YyMzA4Nzg4ZGI1NzIzODQ5NzU2NjgxNzMxNzYyNTI4ZDgwMzE0ODMzNzYzNGY5NzY5MWUwZjBkN2NiN2U5NjFkODIyYzQ3MDQxMzg3MjQ5ZTliZDE1OTIzZTQ4MmEwNjQ2ZDg2ZTc4ZjQwMjQ4OTUxMzQ0YzUyM2JhMzUzN2M0OTM3YzRmOWM0YzEzNDM3ZmUyZTc5NzI0NjM0ZTQxZjZmMTYwYjQ5NjQ4ODk5MTQyOTRkNjEwMmFkNmVjNjM4OTlhNjU2ZDQ4ZjMzMmI2NzY2NjBmNjYwZTc4MzI0ZDk5NDU5Y2MwYzJmNzYzNzY5MjY5ZDg3YzQzZGJmNzE1YWM5Y2Q0NmM4YjAzOTQ2YWZjNjRjZjFiZDFhZjMwNjIyZDg4YzU1YzRjMGI4ZjhiMmMzNjZjN2MzZjRkZjcyM2YwZjI3ZmI5Nzg3MjFhZjJlNTIwM2Q0N2MzYzE2OTg5Zjg3NjQ0MjM1Nzg4NzkyNzgyMzIwOTg0ZjQ1Zjg3Nzg0ZjQ5NzE1MTkxYzA4MzI1Mjg1NzEzMjU5ZTQ4NmEyYjVmZmIyZDI4NDQ1Nzg3Mzg3OTI1ZjA1NGMxZjcyODhiZDIwZjYwZmZlNDQxY2RmOTMyZDc3M2JlNjU5N2M4YzQ4ZmU0N2U0NTliMzgyOTM2YjAwZjUzYzRhNmE0MzUxYjEzYzg4ZjhiZjI2YjBkZTg5NzZkYmQxZDcxMjg1OTY2ODEyZjM5NThjZTJlY2I1ZmFkZDgyMzU0YzIzMjMxMDM5ZjA1NzYyZjIyOTIzZDUxNDgyNjViOGQ0MDU0OTliNjg2MzEyNzYxOTk5Mzg4NjA5NzE2ZDQxNjg4ZjY3YzA5MzIyZDg4NjQ0ZDJjMzQ1YjFjZjMxODI1YjQ2ZjQzNzQ5NjgzM2Q2MzliZDc2MmUzZWFlM2I0NzQ2YjZiNmMxODRiYjg1YzRlMzRlYjY4ZTdkNzFmZTQ1MDc0NzU5ZjA4ZTRkNjQ2NzQ3OTQ0Zjg5ZmJlZmMzNTI3ZjQwNjMzMTIzNjQ3MzQxNzQxNzU3MjY4MjQ0YjZmNDQ3Zjg4M2Y2YjM5YjE3Y2Y1Mzg5NzQzZjQ4ZjAwMzIyZDg3NjYxMzg1ZDg3NzRkNzNjYmY4MzJlMzUwZjMwYzc1ZjUyNjQ5YmFhNzg4OTI3NzQzZTE1OTg5MzQ4ZDZjM2I3NzQ3MzAwZjgzZjg1Y2I3NjIyYjQwZTI3OTk3ZDgwNDQzZmQ5NTUyZTg5YmU5OTI1ZDk2YmQyM2I5NzY0M2IyNGFhYmM0MWY2NjI1MjBmYzliMzlkNjIzMzEwOGJlZjIwZDkxZDM0OWUwNzEwZjYzMDk3MjYxZDQ5ZDkxMzEwNTU2MjU0NjNhODJiMTA4MzRmYzI3ZmQ5MzRkYzhlN2I1ZjY5MzJjNjQzMzJkMWU4MzRlMjEzNzcwM2M5YjY4ZmViMzk3ZGRmMjE4ZDliZmJhMmM0MzU5MWI2MjBkZmQyMTU3Yzg3YmU2ZjJmZjQzZTQ3ODI0M2M2ZjQ5ZmY1YzY1ZDUzNTg1Zjg1MmM3ZWI3NmMzYjQ4OWY3Y2Q1MzQ2NzQyN2Y2ZjYwZTc0MmQxZDQ3YmQ5NzQzZjMzMTIyZDkyNzg3MDY5ZTQwMzQ2NzE0MzRlMmNhZGQxMzJhMWQ4MzAwMjRmNjNmMzVlMDI4ZmFhNzU0NmM5NjQ1NjQ1ZjY1OTI1ZDAyZjhlZDI1YmVhNjI4NjUwYjQwZjgwMjYxYzg2MzE3ZjQ5OThiYjhhMzA0ZjI5NzA4MzI1NjJjN2FkNDI1NzUxMGVhZjJmMmFhNmIzYjEwMjE3MzUwODMxMzBjNjg2YjRjNWQ0ZmNhNzg1MzQ5YjQ4NjQzNjYwMjIyZjMxZDUzMTk5YmMwYzIzNmMwOTMzYjE5ZTc2NGY0YmFiNjUyMDg0YjMxNzc4ZjE5OTM5NzE5YzYxMzQwZjI4NzhiN2U2Mzg5ZmQxN2RkN2MwYzFkYmEzZjY5MzI5MzViYjYwMDMwYzg0ZjQxYzg0Mzg1YzBjNjYwZjg5MjQ4MjRkNzUyODk3NjQxYzE3ZDQ0M2MwNjg5ODQ5ZmE1NjFkOTkxMTQyZTQwZTc4Nzg1ZThlZjdlOTYxODRkZjJlYzQ1ZDliNjQwYzY5MzYyNzQ4MzQxYzliMzFjMjYyYzg1M2ZjMmI2NTU3YjQ1ZjQ5OTQ0ZjU5NjQ0ODg1ZmM5YzQ5NjQwYjFjMzEwNzQ5MmIyNzg0OTEyNTMzNjZlMDY5NzY5NjQ4NjM1ZjNlMzg2NjM5OTM4MGIwZjNhNzRiYzg1Yzg5NjEzNDY4ZTg2NDc4NjAzMjY3Mzg2NDM5Y2E1ZjcyMWU3Nzg4NzYyNzQyZjRhZmU2YzQ4NjMwY2EzOTI4OTI2NjY1YzA1NzMyYzg3NjY4MzY4ZDQ4N2RmNzg3NTJhYzI5NWMxNzg1Yjg3ZjYzZjIwMzZkYzczNmM4NjZmNjQ4NzY0MjRiYzRjZjM5ZDIyZjJiNmViZDQwYjNjMWQ0MDQ2ZmQ4ZjYyNzFhM2ZjNjY2MTg1ZjMzY2IzNDcxNjQyNDU1ZmUyZDg1YjM4MDkxZTQ3MjYwZGZiZjRmODA0NmY2OTZmNjY4OTQ2ZTQ0OTZlYzg4NDg3ZDA1MjIwYjZkYjM2ZjQyYzYxOWI5ZGFmZjFmMjQyOTg5NzE2ZjA1YmY1YmQ2MGZiMDZiOWFjNjY5MzRjYzg1N2Q5ZDkxNmM4NjQ4NzMzNzRiZTQ5YjBhNjhlMDQ1ZDk2ZjEzZjcxYzg4MmI5MzE3ZDgwYjQ3MjA5Mjg3NzQ0ZDg0ZjYwMzg4ZjM1OTRmYzRmNjQ4MmYwMzY0MTczZjcyZjIzNjgzNjNhMjFkZjcxNzI2MzkwYjg2NzI1MTI2YjM1MDQ4YjQ0ZjJmNjBmZTQyNzg2NjQxYjI1ODk4MzhiODRlNTg3ZDAzYjQxZjU2OTQ4NDliMTliODhkNzI3MDkzNzg3ZjQzNjFhZmM1ZDk1MWQ4MjI2ZjUyOTg0ZDkxNjI3OTk2YTQ2ZjQ1MjUwZDkxMjA3MmU4ZjQyMzUxNjM5OTQ3Yzg5ZDc1N2MxNzg2ZDk2NzJmZmU4MzU2ZjkwZjBjN2Y3MTczYzU5YmQyYzE0NjFjNDY3YjUxM2M0ZDU1NzliN2E0NDc3YjQ1YzY2ZTQ3YjliMDMzNjRiY2Q1NzQ3ZjM3NjY2NjFjMDVjYzRiYjFmZDUwZjM0OTc1Mzg2ZTQ2MzRlNzQ3NGY2NmIyMzJmNjliZDk3OTliNjliNzYwMzQ2MWE5YjFhMzQ5N2I0Y2E1Yjg0MzY2NzE2YmM1ZjZjNjQxM2JmYjM5M2IyZjcyMzIwZGQ1MzRlNjM3Nzg5OTg2Y2NjMjFhMjU3ZDU1NjM0YjYyMzYwZjQ0MWIyNzg1ZTQ4MzQyZmJiZTJiNjRjZDU0ZjQ5Mzg2ZTQwNjhmNjkyNzA0ZjgyZjMxNzliYjNjMzIyNzY4OTJhZTg4MzI4NDY2ZjY4MzgyOWYzNzkwYjMzNzY2ZjJiMzg5MjIyNzQ2Njg0ZjI2NmIzM2U1NzEwNzE0N2M4MWM5MzQzMzAwODI3YzA3Mzg3ZGVlNTYzOTZjMzBkZDg4MzcyNjY2YTNmYjM5ZjYxZDJhODM0NjM2ZDUxNzE2NzQxZjQ2Mjg5ZDg3MGIyZmY0YjM5ZWI1ODg4NTUzNzU4MzJlOGU1Njg4NzQxNzQyNzRlNjhlOGYyOTU0YjU4ZjhlNjg4ZjE0ZTQzMzUyNjQ0MzgwZjMxNzIwNTc3NWMzNDhiZWM1NDIwYzRiZmQ1ZDQyZjZlM2ZiZTQzMDRkZjBjODJiYzUyNzVjNjg2ZmUyZWIzMDMwNzM2ZjQ5YmI0NzIyOWM2MjI5NjM0Mzg1ZDc5ZjQ0NGQ5ZGQyMzIwZjM0OTkxNjMwYmVlMjg3NTM3NzUzNGU0YjQ4ZmMzNjU4N2M0Mzg0M2Y0Njg2NTRiMzIxZjMxMzQ3NmUwNjg5Nzg1ZDg3OTAwNTg1YzE2Yzg0YjQyMzgzZTg2MjFmNjcyZTg5MzI5NzEzNjU1MWYzOTk1NjM3NzI0MDIwZTUzZDg2NjQ3ODI2ZTc4MzIyMDU1ZjRiNjE4ZjMzODc0ZGRiZDcxODJjNjE0YTUzODk4ZjQ5OTQyYjEzZmQyOTY0ZTAzNjI3ZjI1YmNhZDE4ZjJiNjQ2YzI0Zjg0M2Y4NzIyYjQ5ZTg4NjFmNzIyMDNjZjRjY2EyOTg4Yjg4MzI4NjQzMzQ5Nzg4ZmUzNjE0ZDkzYjI3ZTgyNzQzNzg1N2MwMDM2Mzg0ZjFhZDQwYzAyNzE3MTA0ZjI1ZTMxZTg1Zjg5ODJmNjQ5ZDc0Y2I4Njg4Nzg1Nzg2ZjZhMmQyM2E0Nzg2NDUyZDk3ZGI4ZmQ0Mjg0NzRmODIzZTg1NDE3ZjU5ZDg0ZjBkZjhiNzg2MzRkODU5NjRmNWJlZmRkYjQ3MjQ1YjhlY2YzZjg4MjcyNjI2YzYyZjE3MzE1NmU2NzQzYjAyZmY5MmFkYjIwYjdiNDc5ZDQyYjYyMzU3MWJjZTNjMjU4ZjUyZjI5OTA4NWY3ZjA3ZDk1NjA3ZmFmZjI1NzE5ZjZiNzg4MzljMjYyYjA4OTYxMjVlNDEyNTk2OTQyMTkxZTJhZjQwYjFjMGIyZjQwNWI2NzQ4MTY2YjE2NTU4MjU5YzYxNjgzNDJiMzI4MmE3Mzg1ZDc3NzhiNjQwNDM2Zjg3ODdiZjMwNzQxNTIwNzQ1ZDJhY2RkNjhhYzA4Y2MzNjJiZjY2ZTRiZTc5YjQ1YjY1Njg4YjMzM2UwOTI3NjE2ZjY3YzIwNzYxMmMwNzQzZDU4Yzg3YzAwZDU2ZjQ1NjM2ZDc5NjEyMjEyZmU5MjYyMjYzNzRlZjBjM2U2ZGQxNzdiZmI4N2FjMzI1YmZmZmMwMjFmYjg3ZjY2NjIzMWI1NmZjZTc2NzQwMzU5MTRiNzU1ZjM1ODMwZjFjOTY2NjI5OTk4ZmM1YjUwNzJiMzgwZmFkZmFjMzhlMzg5MjJiMzIwZmE5NzgwMzRiMzZiZGQ2MjE2MjU5NGU4MzZiMjg1YmY2NzQxZDgyM2YxNjQzNzQzYWJkYjRjM2Y1NzU5Nzg0NjMxMzJkNzU0ZjMxNjdlOTU5NzRmODViYzQzNzJhMDQyZjVhZjhhYzg1M2YyMjIzN2FjZTQ5MzI1NzVlOTgwNjM3ZjY3YzAxYzZmZjJiN2ZmNzE4M2VlYjQzMTU2ZDkxMDQwNzE0ZmYyZjQyNjIxMzY0MzY0Zjg5ZjJjZGJlOTYzNjM4NjU5ZmU3YzUzNjI2ZTQyZjUxMDk3M2M1MWY3NjU4ZmRlNzRlMzg3YjI3MzNjYjQyNzI4MzEwNzFmN2M4ZmVjMjkyOTM5ZjQ4NzQ1NzRiMzg2ZmYzZjg1N2M2Y2Y0OTAyYzU3N2ZjNWFlYzUxNjM3ZWNiYjg3ZjFhOGZlZGQ4ZDAxYjY0NzgwZDE5ZmMzNjY1ZDQ0Yzg1MjY4N2JmNjI1ODNlNjI4NzIwMTMxMmRjN2MxMzIwMjQ4YjM4MjgwNzQ5Nzg2Nzg0M2U3ODdiZjRlNzQ2MjYzY2I5YmYxNjY2MzRmYmUzNDYzYjg4MmQyMzRkZmQ1NjFhNjEwZTQ5MzJmYzdlZjM5NDg5ZmRkMzQyNzg2ZTU1YTA5ODhjNjIwMzY0YjRjNTg1MDU5ZjIwOTI1NzM4ZjI5ZTg4OTI0NDBjZWEzZjg5OTgwNGQ1NjY0MzUxZDg2NjA1NTc1NTM4OTg0YjE5OTk4ZjZlOTJiMmQyZjg1ZDc0OTg1ZDZiZjY5ZjI4NjAyZjg0MGI5NzQxNGQ0Nzg4Zjg0ZmM3NzYxM2MwZjg1MzYwZmViNjcyNzZjNzQwMzc1YzgwZjg4YzA4YzIwNzUyMjI3NjhlY2Y1MzIwODU5MzE1Mzg4ZjYxMTJjMzU0MjQwOGE3OTJlYjA4ZTg0NzJlZDMxMTI0OTk1NjMwOTg2NTZlNTk4MDg0MzRlNzY3NzgwZjZlYzg5YjFmYzQzNjM5YjYzNmM4ZDUxZjhlYzQzN2M4YjZkMzI4MjAzNzRiMTI5NzQ4MjQxZjQ4Mzg4Nzg3MjRlZDc4ZjFhZmM3N2IwNzY1OWE5YmY3NWNjMzg0M2JiZTg4YzdmZGZmNDQ3ZjY0ZjM1OTI3ZTg4Nzg2MWUxNGYzZDZlNjcyNzY0MjYxZDAzYzYyZjA0Zjg5NjQxZjMxZjc4YmFlZTQ4MzU3MTA1MGI0MzA2MDg3ZDAxNjMxZDU4NmFhNzg5Nzg3Njg4MTk2MzliMjQxYzJmNTEzNzhlMzBmMTQzNzA5MzRkNzIzYjRhNmZlNDUyMDEwZjM0Mzg2Mzg0ZjYzNzA5ZjMxYzA5YjNhZjQ0MzUxNzQ5MzQxYmI0ODg5ZjM3ZjI4Mzg0NjIzNjg2ODI3Yjg4ZTVhZjJjM2U4Mjg3Mzg5ZjE4MTA0NTYwYjIwZWUxNjMxZmRjYjg2MTQ4NWIzNjM0ZmE4ZTkzNTBmMjQ5ODQ5M2UzMWY2ZDk2YmQ5OTJiMzYyMjg5ZjAwZDg4ZjA5Nzg2YjY4MTIwNjQ3ZTQ4YjRiN2MzYzRkMDdmYmE0Nzg0ZjIzMDMzN2FkNzg0ZDQyY2IwNjY5ZWMwNmEwZjRjNTJiN2Q0ZjRiYzY5NGJjMjNjNjVhMjM2NmYzN2MxMzFjY2IzZjY2Zjg3MzJmNjMwNjg5NjY5ZjQ1ZWI1MDc5ZmZkZDQyMDYyOWI0NjQxNzI5ZjY5ZjI2ZjYyZTQ3N2IwYzRjMjM4MzRmZTc0MjIwZjc2Y2Q0Mzg3ZmIzNGQzNzI5MTg0Zjg5MjIwZjMzZDg3NzY0MzVjZGQ1ZjEzZGQ1ZjMzZjA1OGU1NzI4YzcyYzg1MjgyZjEwMzY4ZGEwNWQyMzI5YzZjYzE3ZjRlZjM0MzU0MzQyMmNlYWNjMjUyZjQwYzYxMGUzNzg2MmY5Y2UzMjUxZjMzNzQ0MzJmMjQ2ZGU1ZDYxMWY4NjY3NjQwMDg5MjMxNjQ5YTk5YzhlZjg0YzFlN2I0YjcyMzYxZjMzMDM5ZTc1Mzg1ZDljZTc3OTIwZDg4N2Q5ZjY5YjQxZDUwYzliZmY0ZmE2Mzg3MDM4OTIxOTg5MDE1ZWMwMjFlYzg3M2RkNzg5YmEwMzI2MzYwZDQzMzJkYzUxN2RjNzI4NTI1YmM2M2MxZjIzNzgzMDY0N2M5YjFjNGM5ZjA5MzdkNjQxNzU3Y2ZlNjNmNmYzNjI1N2RlNjhlMzU2NzQzZjQ0MjJiY2M1MDIzN2M5Y2E2YzQyNjRjNjM1MzBjZjNjMzg1ZjEzZjhlMzg4NzYwZjgwNjQzYzdiYzhlOTMxMzg2ZWMwMDg0ZjAwM2JhMzg2N2M4MzIwMzNjZmYzNjgyMjFjMGUzZjQ5ZDg3MzI2YzQ2ZDg1ZmQ2NzQ0M2M2MmZmZjYzNzRiOWI2MDk3MWQxNmMzNjM4ZjM4MjU4MzBkMzg0MjM0MjYwMzZmOGMyN2M5ZDg2ZGU0NzI1MmFkMzczMWY3Njg1YjgwYTg0ZDg5MzdmMWQ5Zjg4MTRmNDA5NzIwYjRjYjZjOGI0MTg2MmRiZjM4YjMwMzUwNjQxMmIyNzg0ZmRiYTM4OTJlZDI4ZjYxMzI0ZjY5MmZlYzdhOTQ1NzBjZmU0ZTQ3YjMxNTQxNTM5MzJmOTY4NTM2YjJjZWM0ZDE3ZTQyZTQ1YjkyMDQ5Mzg4MjhlNjE5ZjQ3NzRkZmU0MzQ2YjE1YzA5ZmZmMGQyOTg0YmYzMTJhMzU4NTg0ZmE3MzhiNjY3NzUyZjdiYzQ3ZjQ1ZjRjN2Y0MzJmYmQ0MzU1MWYwY2MwZjY2OWMzMTk0OWM4Yjg1ZmZjZjg0YmI3YzE0MGUxMzU2MzUwZmQ2NzgxNjM5ZjQ4NzEzNTkxNDQ5YjI1MzA2YjA2ZmQxNTkxMmRmOWYxYzE5MjRkMmVlZjgzNjQxZjYzN2Q2ZTQwZmQxZjc0OTM5NzYxZjUyZDc0NzBjNzhiMWNlM2Q1N2M1Y2ZmYjJlNTY0MzZjNjg5NTQzNjNiZmMxODI4ZDU4MjExOTUzMzI3MjFkMzkwZjMxNzg3MzRlZmI5NjM4MjJlMzJiY2M4YmRiY2Y3ZjE5ZDJlZjIwMjQ5ZjBjZjI0Nzg4NzYzNzg2MjM4ZjA2Yjg0YzUyZjQ1OTQzOWM4YjM5YzgwYzRmNzg4ZjNhMzE1ZjQ1NjQ0MzVjMWQ1YjA5ZjY1NGM4YzU1ODc4OTU2YjQwZTcxMDRmMDRiZjM3ODZmODc2YmUzZjIwMDQ3ZTg4NmEwZmZkZmZmZjY2NzRkYjQwMjBkZjJjZjI3N2E1NjZjNDZjNTM4ZDg4Zjg1ZjQyYzIyNjRkYzg1ZjliNjUyYjQyNjJiMzI1MTUwOTk1NjYwMDJjODU3ZDhiM2E0NjQ1NzFiNjI3NzY2ZjQzYjZiODQwMDg4ZmQ5ZmQxZjQ2ZjliNzEzZmI5MGIzYzg0ZmE0ODIwNzg4ZjZiNGE5ZDliMDYwYWQ4N2RiYjBhNjNhMGRhNjQ4YjU2ZjM2MzFiZDk3ZGI3ZmZlOTNlYzg1MTkzNjMzNzI0YTIyZDg4ZDQxNzg4ZmQzYmYwMmQ0ZmIwMzg0M2E1OWI2OTQ5NTg0MjI5ZjM1ODI1MzhiZTc2ZDQ4MjQ2Mzg2Y2M2ZmQxZTJhNjI4OTJhMzhlYjI2MzQzZTg2NDMwNzViOTk3MjI4NjMzNzA1Mjg0MTY0M2Y1ZjdiN2QwNjQ3MWQxZjNhYzIwYmY5MjQ1YjQ3ZDQxOGNlZjg5Mzg0YjhlNzYzMjM1YzQ4YzcyNGM1YTIwNTQzZTFiZWE3MzQxNDMzNGY1ZTg2Zjg5NzE2YzRlZmFhMWM4OTQ3MjRlMzg1Yzg2NmU3NzYxMDc0Y2Q3M2Q5Zjg5NzE1YjNjZmFmZjNiMjg4Mzg0NTRiZjQzMjg4ZjM2ZmQwOTM3NTZmZTc2NzRiNWZmMzUzYjRkOTQ3Yjg1ZjY4MjQ4ZjZkOWMwZmQ4ZDg3MTE2Mzg4YjAzMzIwZDQzYjAzZTM2ZTUyZjA2M2MzYzQ5MzJkOGQwNzA5MmE3Nzg2MzA3ZmU5MDM0Mzg0Nzg1NzIyMDIwNjQyZjIwMmY0ZjZiY2YwMzNjY2QxNjQyYjMzNjMwMzI3MzMyNzY4Mjg3ZDliZTcyZDM4MzY4ZmM1NDBmZDIxNzEzZTJmZjI1NDE0ZjA4ZjIwZDQyMDk2MzA0N2VlMjY1NzQ1NzFkNzQ5ZjQ3MzRhZjQyN2YyZDZmZjMwYzA1ZjYzZTIwYjBkNDYxZjg0YzYxZjQ5M2M5ZjYyMWU5Y2IwN2IyZjMxZjg3YzI0ODg0MzBjNzkwMDA5Y2UwZmRiMzI3Yzg1YjhlNjMxM2QwZjA4ZjA0ZjQ5NzQxYzg2NGYzYzUwMzg3ZjQ2ZjFkN2FjN2E3ZjZjM2I3ZjAwNjU2NmYxODU1YmMzZWM2ZjQzZjI1NTM4MzI5ZjJmMzg0ZjViNjYxODUwZjE4YzU0MzRmNzI2ZjUxNzQyZDJlZmU1NjY4ZjFkYjQwZjRjYjQxNzUwYzQ1Y2UwYzQ1MzI5ZTgyMzdiZjY0ZTYxYWQ0ZjQ4ZjY1MjQ5MzJkYWI2MzU0NjI0YjQ2Nzg1M2YxZjQ5MWMwN2YxNzRmYzJhYzAwZjRjMzQ5NGM3Y2YyOTMwN2UwNzQ5MmM4ZjM5Mjg1OTE5MjQ5ZmQ5NzRlZjE0ZTg5OTMxMzY1OTJhNDg2N2IwNzRkOTliNTk3NTJjNjM1ZjE5Nzg0ZjI5Zjg1NjY0MDc0N2UwMDY5MzAwYzMyMDQ0ZjA2M2U3NzViMjIyMzRiMjU2MjUyZDQyNjM3NWU5NDk2ODg4MzZlNmIzYmQ4MDMzNjZlYzU1ODMzZjg5NjE2MjY3ZTFjYzIwNzE0ZTc2Mzc1NjA5YjQ5OTQyOTQ4OTBmNzhlN2Q3ZDk3YzE3NjE2NjcyZGE2NzY3MGY0MzA0N2QyMmU4OGZiMmMwZjM0MzgyMmQ5ZjRlMzQ2YjAwZDljMTQxZjRjMzQzYjBmMzIyYjI4NjU0M2JlODQzMTg0Zjg5ZDc1ZjY1M2UyN2MyMDZjMjVjNzIyYzU3NjU5NzA1YjQ1MWJjZjQ0Nzg1ZjIwYzQxN2FkMTMwNmMyZjQyZTg3MzgyN2YyZjViYWY0YjdlNTQ5YzRlZTNlY2E1YzRkOTBlNjQ1Nzg1Yjg5ODI2NjgxNTY5MDg4Zjg4MzQwZjUxYzE5YzYxMDQzNjQ0MzE5Zjg0NTA1OTI4MDQwZDMyZjI5ZTg0ZTFjNjQwZDQ3MTViMzQwMDg1ZGUwYjYxZTc3Mzg2Yjg0MjQwMjkyNjE3MGI2Yzc4MzUxMzJiMjM1MzA5Zjg3ODY4ZmRjNjM0N2U5ZjMwYzg5YjMwZjJjNTg5MjMzYTI3YjYxMjRlZDg4NjIwMzY1MDg1YmY3NTI3NzRmZjY0MzhhMjM4NjMwMGU2MjhiODg5ZjQzYjQyZDA4ZjQ1ZTI3OTQwYzg2OGMwMWM1NzFhZTliNTZlYzQyN2YyZDg1NzE3MzgyM2JmZGQxZmYwMzJjYjg5N2FkMmY3N2I3NzQ0NjIwODgwNzY4ZDQ1YjYxMzE5YmQzYzQyZGZlMzU0NTg2ZmNhMmQxMmU5N2QwZjkwZjZjZmE4Y2YyMmY5ZDc3YjU4ZjFmYjEwZDg3Nzg4NzUzYzUwNjRiNWI4NmM2YzQzODM2ZDI1M2ExN2Y5NGMxZTMxNzg3Nzg1MzI5ZjM4NDg2MzQ1YjBmMjYxZmYyN2RjZTg4ZTgyMDQ5YjM1OTgwZDg1NTg0NDkxYzM1Zjg3NjI0YzU4ZTc4NjMyMmZjMjU5YzU1NmZiYzBkN2U1NzA5ZjBkOTMwNDU1NmU1ZjQyY2QxNjZkZmY1NjEyZjI4OTJmZjRlYjI1ZTg4YjE5Nzg0NjY0NmM4ZjM2MGZiMTIzZTY1MzVjZjIwZjRlMDc0OTMzOTQzN2MzNzgzNDc2ZTkzNjQyZDk1ZGYwZTQxNzQ5NzY4Yzg2ZDg4ZjgyN2RiMjhlNzA3NjI0MjYxMzRiNzg4NzIzNjU4NTk5OTJjMjNiMmZmZmJiZjZkODQ0YjIwYmU4N2IyZmRiMDE2YjRlM2Q4ODUwZDE0Nzg1YjI3OTQzMThjNjY5ZmU0NmMyNjQ2MDEyOTMxZjM4NGM1ZjMwYjA0ZTdhNmQyNjQ1Mzg2MDIyMzE2YmUzY2IwODUyZDkxM2I2NjIzYzM0ZGJlNDhlZjM5MzRkNjU0ZjYzOGJlZTgwOTIwNjMwMzg4ZjU2Mzg2OTI1MzQ1NjI2ZDI5M2JkYjUwY2QwM2EzYzg0NmQ1NzY4ODM4YzQwMzgwNjFkN2QwNzRiOGNjZTg1ZjJiY2U2ZjY4Y2YzMTg5ZjYzOGJjYmMxMDMzZjg1NTUwZjQwMWY3MjM5Y2E3Njg0NjY4MzI1Nzg3MzUwZDk1Yzg5Mzg1ZmQ4Nzg5MzJiZDI5ZjIwNDM3YzI0YjI4MTg3ZTg3ZmI0ZjYxZmQwMTIzNzg4YzRlNzg4NjEwOTQxZTg0NjU1NDBlZjg4ZDQ1NzJiNzU1MzY0MzRkZWU5NzUwYmQxZDQ4ODkxMDA2YjMxNjMxZjg3OWMxOTc4ZjU5OTliZjBhNzc2ZDU0MmNjM2MwNjg1ZjM2NzYxMDg4MDA5NmY4NjM5M2ZkZjRkNzZmOWI0NTQ5ZjIwZmUxNmU4NzI2MzQxNjMwODc0Mjg4ZmM3MmIzMTMxNDYwNDI4Mzg0NzBlNjZiMmVjM2NlZjRiYzExOTliOTJiMjYwNjQwOTY0OTQ5YjQ4MzY2ZTc2ZjYyMzhlZjQ1ZjYxYjUxNjMxN2RlZjMwZjRkZjBlNzY0ZmQ4ZjQ4NjYxNzgyZjQ0NzFjYzg4NjRmNjk0MDIzNzIyNmQyNzQzZjg2ZjVhZjRiZjQ1MjI0MmY3MzY1NjY5OTQ0ZmViZDQ4ZDUzNjY1M2Q3YjliZjg4MDcyN2M0MzY0YzFhZGZlMzRiMzQyZDg5NzViZjM4YzU3YmQxNjg0ZjJjYzg0ZTg5YjQzNzQxY2Y0MjFhZTg1YmEzOTQ2NmIzNmU3NzA5ZWE1NzFjZjZjOTJhYzcwOTM2NmIzZjRiYjJjMWQwN2RjOGU0ZjA2MjIzMDMwZWRkZjA5Nzg3N2RiM2I4Yzg2ZjYwN2RjNDMxMWU1Yzg1OTg0OTI4YzA5ZjA2YzUzN2Y4ZDQ1NDMzZWFkYjRlMzU5OTBiOTkzZjBjNGM2NmIwMjZjNTJlZDQxMDA0YjNkNzJhOTQyZjg4NjJlYmY2YzhhM2U3Nzg4Nzk5ZjIzNjc0YjFjM2JiZTkyNjY4MzYzOTRiMGE1Nzg1MjQxZjIzY2E3MmZiMzcyZTI1Yzg3ZTc4NzQxMzQxZjQ4MzZjMTA4Zjk0OTg0YjVjZjY5MjZlNjQwMzJhZDliZjcwYzJlNjQxZTg4ZjY3NjQxZDg2NzU4NjU1ZDQwYmYyNjA5ZjgxNzEzYzRiNTY3YmE4ZDg5YTMxNzg0Mjg1ZDk0MzI5ZDc0M2E3NmQxMjQ3NjZjMzg5ZDc2Nzg5MTU5ZmViMzFiZjI1NjdiMmRjYjk3N2I2MzIwNzE5Zjg1NjNjZjNjNjI1MzA2Mzg3MzhiOTMxZTM4NjQxZjQwZmZlNjg1NzY0ZmMxYTU1MzRjOGQzMzU5NjA1ZjI1Mzg2MzRkZDIwMGEzNGI2MzYxNTBjZmM5MzY3NjRiNTk4ZjQwMTQyZmU4NzRlODc0M2FmYzQ1NzVjZDc3ZjRjMzZmMzgyYzUxN2I4MzJiNjQ0N2Q0NmM2NTk0N2ZjMzZlZTU5NzUxN2FkMzg1YzQxNjhiMzE5ZGRiZjY5YjM3N2I2Zjg3ZGIxZjQ5NzQ4ZTIzMTQxZWIzNzI2NzEzZjBjZDI2Y2YwZjQzN2RkNjljMzM0MjYyZjRmODQxZTc2ZDUxNDIwYjBmZDJiOTRiNzI1NjMwZjQxMzI0MDQxZTc2NzgyNzhiMzY0N2RiOTNhZjRjM2MzZjZlM2I5MmM4ZjE4Njg1MzNkMWQ4Y2MwNzg5MzI5ZTgxMDg2Mjg1ZmVhZDQ2ZjRjZjI1ODQ2MzVkYjg1NjQzNjRlMzg2MjRmZTMzZmU0MDAyMmZhZTczOGQ2NzBjYzJlNzg1MzI5ZTg1ZTQ2MzYyZjIzNjczYjMxNTgzZjMzNzM1ZjU2MjhiMWM2M2E4Njg2ZjI2ZmQ2MzQ2YzFjNjA5MzY2MTViMzg3OGQ5NjE3ZTgzYjM4NzhiOTQ3Y2VhMjMyM2IzODNiMmRlYjQ5NzhiOTVhNjg4ZTg1MzY3N2MzNjNhY2I0YzU5MzZjNzg3YjYxNjA0MTY1MDk0NjQ4Nzg0Yjg3NjEzZmI1ZmUyZjEwNjIzMWJlOWFhMjQ5ZDc5NzY0MzVlZTQ4ZTI5ZTJkYTk1ZDJiMTk3MmQ4MzQ3ZDMxNzQyNzUzZjRiMzJhNjI1NDMwNzNjOTUyMzQwMzg2MzYxZTIwYzQ5ZmQyNTQ0M2IzYzAzZjg5ZDg2OWQyNjYxMzYzZTg0NGYyNjM2ZTQ2Yjg5MDM1MzljNjU4MjRiMzI4NDU0YjI1MzRmODM3Zjg1N2Q2OTVlYjM2NDc3NjI2NmM2YzFjMTkxMDQxZGI1MjU1MGY0Yjc4NzE3ZjQxOTI0MzA1MjQyYjY5Mzg0N2RmYWFhY2RkZmNjZjQ1YzUwMzg0ZDQwZGI1ZjY4MjUxNDg0Zjg1YzIwZmIzYjI5NjMxNDJmNzg0YmZiN2Q1ODJlMzQyMDc1Yzg0NjU5YjEzY2U4ZjMzNzY0ZGM2ZjYwNzgyNjQ5ZjIzMjQzN2U1ZDI5YzliNjQxZDQ1NTQ1ZmFkMzg2OTQ5NzI3ZjQ1MzUyNGZjYjQwNjQ2NzI4ZjUyZTI3ZTNiMjhjZDEyZjRlMDMzNjUzYmUxN2MzNmUxNmJhMDM0NzUxZDI0MDk5YjU5YjIwYjI5NzM0MjZjYzZmZGM5ZTQ5Y2UwNzFjYzI4N2MxZDUyMzFmOTc4MjM0ZjQyMDM1NTk4NjE3NjQyZjI2NDkwY2EwMjNjY2ZlNjQzMzEyNzMyOTYzNzI0ZjQ0MzUwNDM0M2MwNzYyNjg0Njg0ZjY3NTdkMjQwMzRmZjJiMjIzZmM3ZmRmNjg0ZmQ3OTIzNDk3MjgzN2E2ZTljZTc3Yjg2ZmM0ZmQzNGZkM2QxY2JmYjQxMzg2NzZjNjM0MjQyMzhiZTg5OTNkNTYwNGVmYzI1Y2MxODI2Nzg1MjQxZTg3NzA0Y2U4Nzg1ZThhODM5Nzg0NDE0Mzg1ODM5MzQ1ODU4ZDg2NzQxYjg1OGY1YmQ5MjQzNGUzNjA1NjY2YmU2M2ZjNjZjMmU4M2Y3NzQ4NmQ0NTM4ZjM5OWY4ZDg1NjQzYjFkNzRmMzg4ZjhlNzg0MDU1NjE5YzJiZGQxZjYwZjZjMjgxZjQwNzYzMzNiZjFjNzRjYmQ5Njg3ZTc4MGJjM2UwOTQxYzg4NjA2YzU0ODAzNDUyNTY0ZDc2NjQ2Mzg3ODM1NzA5NmMzNDE1Mzg4ZjM1Y2ZiNjM0N2Q1OTc4NDMzNzAwMTg4YzUyZjYyZmQ5MmU3ZmYyNjgwZjYzYzBhYzhjOTYyMzg3MzAyZjY0NzY3MjJkM2QyNzYzZDM2NjUxNjI1NzQ2NzQ1Nzg1ZDgzNzhiZmY1MjQ4ZTQyOTI0OWMxMWQxNzg0Mjg2NTI4MjE3M2I4NzE0MjBiMzAxOTg1OGU0ODQ4OTEwMzQ4MTg3ZjQ5MzQyNzRmZDQzN2IwNjM1ZjQ0YmZlZTg5ZTQ5NjJlOTI5NzBjMjg3MjBkYzQ2N2MzNmE2Mzg3ZDZlNTZmNjgyNDc5NzY0NjIwZTJhMzYwNjQ5ZjBlMTA1ZDI2OTUwZjg4Zjg1N2Q5Zjg3NTdiZjQ1ZjQ1ZTg5Yjg1YjYyMzg1NjQ4YjA5YjFkYjY5NzRlZDcyNzc1OTkxMjQ0NzMyYjM2YzRiNTlhMzJlNjE4NzU3ZjI5ZjNjN2Y2YzgwNTc4ZTAyNzJlNDg1YjY1ZDg4ZmFkZDJlOTU3NDIwZjQ0ODI5ZjE1YzU2OTliOTRkMzg1Yjg4ZDkzYjQ1MmQzZjMzYmQwZDIzNjFjODQ4MmU3NjZlMjM4NjQ1OWQxN2ViMzJmOTg3MjgzZTg1MjMzNjMwNzBjNTNkNGQ5ZTBmNjg1Y2U3MzE0YzYwNzUwM2UyNzlkNjA4ZDUxNTkzMzg3NzI1Y2U4YzcwMDk3MzU1ZWNiZjVmZDc0ZTQxZjYxM2QyM2MzNjYxMzkwYjhlZDljZjg5MGJjZTg3ZjQ2YzUxMzJhNTg4ODAxNzhhN2Y4ZDU1ZTZiYzg0NzEzZWM0Y2E4ZGIyZDU3Y2M5N2QyNzNjNzQwYjQwYjE3ZDdiYzUwZTRlMjU1MzI4MzNjMzRiMDk1ZmYxZjJhMjM4MmE1OTI4NzJhYmQxZWRjMzIyZmUyY2QyYzZiZDk1Nzg1Yjg1ZjI5ODQwZjRiMDQ2Y2YyYzQyNmMyNzgyMzY0M2JmYjRlNjliYjMxYjA1ZmRmYzU2NzE2NTAzYzM2MzA0ZmYzMWZmNTkxZDI2Y2I1YWViMzgxZTc0OTQzYjZkOGUwNzE3NzhiZTQ0N2M0NjY3MjQwNzFjYjIzMzYwYTRiYzQ1ZDQ2ZDQwNDc0MjQ5Zjg1ZDk0ZjE2ZTIxN2ZjMzZlNzhlY2E5MzI4N2YyNzMyZTIyYmQ2Y2IwM2MwY2MzN2EzNzQxMThlMTk0OTQ5NzQxY2QyZDE5NzA5ZTg3ZDcxZmM1NWQxNzYwMzYxYmYwYzQwZDg5ZTc4ZjE2Mzg2MzViMjBlNjI5MjJhZDQyMzg2MjQ1ZmI0Yjg1MjRlMzQxZjY5NjM3ZTg0YmFiOTQwZmM4YmZjZjg0ZTg4MzcxYjRiM2VjMzQzNjMwNjUzN2JkZTQzZmUzYzA4NzczYmQ2MzQ3MjQzNjMxMzg3ZjQ1ZTg1MDJhOTFjZTg5YThiMjQ1NzliMmMxZDg1ODI4ODRjZDc0MjNhNjgwZWE4Zjg5OTg1NjNhNjQzN2NhMzU4MjRiMjM3Mzg5NzQyZDc5OTY3ZDQ0N2IzYjMzOTg3MjcxNTk4YzI1ZjQ3MzFhZDQ1YmU1NzVjMzQ2OTQwMzc1NmQzZmYyYzYwYzhiN2FjMzI4ZDU3Njg1MjI5ZjZjZDQ1MzZlZTY2ZjQyYWY0ZmYyMzVjY2I5MWQxZTQ3MTZlMjRmMjMxMWQwZjMzZjNjNjI4MzljMzFhMmYzNzg5Mzg5NzI1MTk3MzQ4NTdhZWIwN2Y0NzQxNTQzY2QwYzQwNzg4YjY5ZDg4ODI5N2Y1NGIyZTg1MjgyM2MxNmUxZjZlZjI2YzBlNjQ1YjNjNjE4Y2M0ZTA1Mjg0Nzg0Zjg1Y2QxZDQxYjhlYzg0ODQ2YzA5MmE2ZjIyOTg2ZDk3M2M4Nzg0Mzg1OTZiODgwZWM0ODQzN2IzNjdiYzYzOWMwMjY2MjNjZWM4NzZmMmY4MjZmZjU0OTMzZjRiYzUwZjhiMzBjN2ZiZjg5OWMzNzg1NTA0ZDg1MzRjZmFjZDQ5Mzg0M2I0ZTc0YjYyM2U5NjM1Y2YxYmY4MzZiZDc4MTg3OTZlMzEwZjQwNjYwN2Y4ZTJmYjRjYjY1NzliMjI3OGM2Nzg0NzE1YjQwNzQyZjY5MzQ2YzA1NzEwZjMwNzIyZDUyZWRiODkxZjg0OTM4Zjg4MjE4ODM1YzA5NjYxNzcxNTQwYjM2NjcxNTQyYjAyMzg4ZjI5ZjA1OGYzZmJiMWQ1OTJmMDFjNjg2ZmIzNzIzNzQxODJhMzQ1ZDkxOTVjYjUzNjI0OGFhM2M4MzIwYzljZTg0YzQ0Y2JhZDE3Nzg1ZTc3NjZmZTRlMzg5NjY3ZDQwY2IyN2ZmNjM4MmQ2YzNkYzI4ZmMxMDUxZjQ1YmRjNzE1NzA1NzkwZjFjYzMyMDEwMDg1YmMxNzRkZTQxNTg2NzQ4YzIxMjU4NmM1OTIyYjU1MjczN2ZlZGYxZjRlZjM0YWI0Mzg1YzYxNzZjYmQwZjQ2ZDQxY2RkMTIzZjhjMzIyMTliNDM5M2NhNjE2NzhlMjQ1Zjg4OTQyNjIyNjBjZDliOGMwNzgwZDI1MTg5NmY4ZmFhMzQ1ZmViNjg5MTg4ZmJiZmU1MGIwZjQzZjMxY2Y0MzJiZTIwN2IzNjM4ZGI0OTg3NGQyYmIzNzRmZjZlMzY0YzY0MTZmZjU4MWQ2NzY4Zjg4MmYyMzIwYzJiNzYxZjRkZTg1YjY1ZjQzYjM2ZTQ4ZjU5Zjg2YzI5Mjg3ZmY0ZmE2NTA3Mjg4MjJkZjI5Y2Y5MjI1ZTA5YzI3ZmIwMDg5ZjliN2Y1OTBhMjg3NTJiNTYxZjI0NTYxYjBkZjUwNmY1Mzg2ZjU0ODRkOWMwYmRlM2QxNTg1YjZmNWM1ZDk0MjAyYWJhMzg4MzY1ZjE2MzQxNjgwZjQwZjQ4ZjI0NjYwZjdiNWE0OGY2MjM4NDg2YTNhMTQ3MjZmMzQwNTU3ZjJiZTliZDQ1MTQyZjQ4MjIzZWQzYTkxMzQxMzliNjQ2YmI1MzE0ZjA3ZGExMjUwZWQ5N2ZmY2I1MzgxZTdiMzg3NGMxMWZiNjU5ZDkwNzRiNjIyOTg5Mjg5ZjE3Mzg0M2Q5ZmZjMzI3YzU3MjM5N2M0NjQ4MjQwYjU5NjQwODJhNzZjNGM2MzJmMzYwZjQ5NzE4YzY2YjYxNjMzNjY1Y2QwMzFjZTg3ZTQwNjU3ODQwMzhiZjM4MDA1ZjE3MjY0NzNmMjUxMWVjNjg4MzQ3MTYzMzYxMjg5MDMxZjY1YzQ1OTQ1NjM1MWQwZDQxMTMwNzQ1MzlkZTQyNzRmN2RjNTQ5YzU0YjU3ZjZjNzYxZDg2OTZjODg2OGM4MzRmNzYyNjg4ZjA1ZjY1ZmY0NzkyMjQ3N2RhNzQ4MDQ5ODU3MWY3MTM1NzI1ZmQzNjg3ZDliM2YxN2Q3OTQwZjI2YmRjZmY3ODg5NjI2ZjE3ZDQxZjMzNzNjZTQ0NTYwZDc4NzQwMzEzYmQwNmMxZDFkOGE3MzZiMDg5ZjBhZjQzOGZmNjE4NzYyZDVhMzFmYzQwMjQwODIwMmZjMzQ5ZjM3ZjJlMGI3Zjg3NzQ2YmZlNjQ0OTQ5NzkyYzg0MjUxYjg4YzdkMzYyZjJhNzRlYjg1N2ZlYjQ0Mzg1Nzg4ZjY5ZjQ4MjQ2YTI4Nzg0NWZlMzg3ZTg4ZjYyZjhlMDg4ZjM0MzRjNjUzYzI2MzgxODE1N2FjNjI2Mzg1ZDQxN2MxZmRiZjRjZjQwMDEwYjFhN2M4ZjliNjUxMDRjNjg4M2Y2ZTQyOTg1YzgwMzRiNjg4M2ZiM2JmOGQzNzAwOGQ0NjE0ZjM3YzRmZjAwNjQwMTM0ODM5NzljN2IwYzg2Yjg3YmY0N2Q4ZmQ5MDMwNjhlNjQ2ODQ2Y2I4N2NhOWIyNzI3ZmU4MjQxZjg2Yzg5NzhlNTc5NWQ1NjU4NjM5ZTc4NzQyY2ZmZjMzN2UyYzUxZjg5ZDRmY2UxMzRiZTcyOTM1ZTQyMzYwYjg1ZjRkZDc2N2E0ODJhMzNhMzg1NTM4MTk5Yzg2YjQ1Mzg4NzYxNjIwYzI2ZjNhOGM1MWY3YmE0ODUxMzhlZjI1ZjI3ZjQzNjMxNzY5YmNlOTkxMDhhMzBkZjYyMzIwMzhlMWQ4YjBhMTYxZDgwNjQ5NzkzMjYxMzRlZmQwZjUyZjEzNzMyOTMzMTM3YjQzZGU0NzA1ZjI0NTkxNzg3YjI4MzIwZjM5ZjQyMjliNzQ0YjlkNWJhYjg2NzVhZmRlZDhjZjJiNzQ1NjhlZjg1ODQ3MzE3MGI2ZmMxZWYyYjI5ZjI1YjBhZjFmZDViMmExZjdlN2IwOTg1MjMwZjUxZjg1YjNlYzg3MzBlMjZiMzI2ZmU3MTY0MzRlZDU3Yjg3ZjNhMzFiZjQ1MzI1NjQ4Nzg4Nzg4ZjMxNzRiNzUzMzNhMzQ4ZjQ1Yzg0YjcyNTMxMTRkODc0NDkxM2FhOGIwOGM5MzE3M2Q1MjM0MzI2ZGI0OTNlMzY0ZmM2OTBhOTQ0NzE4MWY0M2QxMDk4Y2MxYzg2YjQxMzg0NzYyN2UwYjM2YzViOTVjYjA3ODg2ZjMzNTM4ZTQwNzYxMzI5ZjRiYmIzZjViOTM3YWI4ZDNhZjE5ZjQxMTQzYjU3MzFmMzU2OTUzYmQ2MTUyZmQxMzQyZDIwNjYxZmQ1MjQ4NzIzOTVjY2E4OTNlN2QwYjUxMzg2NjJkNzUzNzViZGZjZTg0ZDg0ODg4MjYxNjY2NjIyMmY4OTcxNTY5MjNiMzUxNzg3OTBlZTU0ZjgyZjQ2ZjU0N2M5ZjViNDk2ZGFhYzBkNTkxY2ZjZWRiZjg4ZjRiNjY1YjA4N2YxYjQzNjMwNzQ2MjQ5ZmFjZDk5MjQ3MWFlZjNiYzg3OGFkN2UyODJlZjE0NzI2YjM5ZDk0ZTc5OTZmNDc5YzRiZmUwN2IwZjUzYjcyYTNjMzg1Y2RjZTkwOTJhOWY0MTViYjg1MzQ1MDg5ZGI4Y2MyMjZlMzNlZjgyMzczNWJhMzZmMzYyNmYwODg4ZmQwYjU0YjAwNGM3NjM2NjNhNjY2N2QzNjIyZjQ4MjNhZWNjNjQ3MzIzZmY1MTY2M2I0NjE5NzBhZmJjYjI5ODU5MDM4OTI4OTk0ZTQ5MjFjZTQ0YjliMjQ4ZjYzN2Q2ZDUxYjIwM2RjMzI3ZjM5Yzg2YjQ3OWE3ZmQyNzgwNjQ5ZjI4ZDQxMzI1NzAwNzFhNzQ0MDk1ZjkwNjQzNjMxMGU0OGY4MjRjOTg4Nzg4Nzg4MzIwZDJkNzgxZjM3YmY2Mjg2ZjcxYjRlZTg1MTQ0ZTMyY2QyNzliNjA1NjQxMzg1YmUzNzg4ZmRmMzRkMzQyZmY0NzYyMWI3ZDNkOTQxNzg0YzQ3ZDkzZjJiNzRiZjgxNTk0YzMxMzRhOTg4MTJmZDE4ZjQxNjJlMzAzMzE1MzhiMmQ1Nzg0Mjg4ZmM2NTI5ZjRlNjZiMjUyYjg1MzUzYjYyYjUyYzYyZjRiYzI1NzQxNjU4MTYwYjEwYWY3ZjlmY2IwZDI2Yzg0Nzg4YjQyZjFjMmI0ZDI2MjhiZjg4Mzg0OTNjNmZlY2QyY2Q1NGRmZjVlOTM3ZjRkZjQxYzQwMjkwNjg1ZDg5NjQzYjM0Yjg1OTI0M2IwNTg3MjQ2NjQ0NmU1Mzg4ZjU2YzZmNDdhZjg1MjRlYzg1ZTQ1ZjFhMjRjNjg3NzQ1ZjQ5YzA3NzkwMTg1Njg0M2RlMjQ4M2QxNzE4ZjQ5NjMwNjYxMzhlM2RlNjg2Mzg4NzEwZjU2Y2MwZjg4M2NhMWE4ODI1ZmIwNjQ2M2QwZjA2MzRmNzYxZmFhYzQ5MTJmNjUyYzg3ODc4ZjE0MzIyNzU4YzI5NzI2Mzg2NzhiMjg3NzZlMGYxNTM0NzRhM2FhNzA2OTIwNzQ4ZjIzYmU1MjMwMzMyODg5Zjg1Mzg2YjY0ZTQxYzQyY2ZjYmU0YmFhMjZjMzliMTc5MjcyYjQzZWU1OWUzNzYwNzQyZmZlZjgwMTJiNDFiOTJiNjMzZmZjMjkwY2Y3NjUyYzQ2MzYyNDA3ZjYwNDc0N2M4MzA1ZTQ2MWQxNjQwNjYwYjg5ZjEwZmY2ZDQzNDBmZmZjMzQ4NzU3MzUyYzlhZmUwNzg0NjI2MjYwMTBmODNiMzg1ZmI5Yzg4YmRjM2M4MmxsZW1lbnQ=)

首页

录制预览 图片

查看 GitHub 上的

更多细节

Pinata 被用来存储所有文件和元数据。

我创建了四个用于与Pinata API交互的API端点。

  • /api/file.js 处理所有文件上传和元数据操作以及文件删除。在这里我们为每个操作使用不同的 HTTP 方法,比如 GET、POST、PUT 和 DELETE。我想指出 Pinata 的一个优点是我们可以发送不同类型的文件数据,例如 blobs,因此在这种用例中我们可以将流录制转换为 blob 并直接发送给 API。
  • /api/files.js 获取 group_id 内的所有文件。Pinata 提供的一个有趣且有用的特性是,无需数据库就可以为每个用户单独存储文件,这使得存储更加方便。
  • /api/group.js 为每个用户创建一个新的组,group_id 用于标识每个用户在文件端点中的文件。
  • /api/video.js 获取视频录制的签名 URL 并将其请求重定向到该 URL,此端点用于在应用程序中嵌入视频内容,使视频播放更加便捷。

这个 web 应用使用 AlpineJS 实现交互,使用 TailwindCSS 设置样式,使用 Clerk 进行用户验证,并使用 Vercel 进行部署。这个技术组合使我能够在 24 小时内快速构建并部署了一个 MVP。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消