File: //home/arjun/projects/env/lib/python3.10/site-packages/boto/__pycache__/utils.cpython-310.pyc
o
we�� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZ
ddlZ
ddlZ
ddlZ
ddlZ
ddlZddlZddlZddlmZmZmZmZ ddlmZ ddlmZmZ eZddlm Z zddl!m"Z" W n e#y e$Z"Y nw g d�Z%e�&d �Z'e�&d
�Z(e�&d�Z)dd
� Z* d]dd�Z+d^dd�Z,d^dd�Z-d_dd�Z.d^dd�Z/G dd� de0�Z1dd� Z2 !d`d"d#�Z3 !dad$d%�Z4 !dbd&d'�Z5d(Z6d)Z7d*Z8e�9� Z:ed+d,� �Z;d^d-d.�Z<d/d0� Z=d^d1d2�Z>d3d4� Z?dcd5d6�Z@G d7d8� d8eA�ZBG d9d:� d:ejCjD�ZEG d;d<� d<e0�ZFG d=d>� d>eA�ZG ddd?d@�ZHdAdB� ZIdCdD� ZJdEdF� ZKdedJdK�ZLdLdM� ZMdfdOdP�ZNdNdefdQdR�ZOdSdT� ZPdUdV� ZQG dWdX� dXeA�ZRdYdZ� ZSd[d\� ZTdS )gz7
Some handy utility functions used by several classes.
� N)�six�StringIO�urllib�encodebytes)�contextmanager)�md5�sha512)�json)�JSONDecodeError)�acl�cors�defaultObjectAcl�location�logging�
partNumber�policy�requestPayment�torrent�
versioning� versionId�versions�website�uploads�uploadIdzresponse-content-typezresponse-content-languagezresponse-expireszresponse-cache-controlzresponse-content-dispositionzresponse-content-encoding�delete� lifecycle�tagging�restore�storageClass�
websiteConfig�compose�billing�userProject�encryptionConfigz(.)([A-Z][a-z]+)z([a-z])([0-9]+)z([a-z0-9])([A-Z])c C s( t | �dkr| S | d tj�| d �fS )N� r )�lenr �parse�unquote)�nv� r) �C/home/arjun/projects/env/lib/python3.10/site-packages/boto/utils.py� unquote_vk s r+ c
C sz |st j�� }i }|D ] }|�� }|| dur+|dv s!|�|j�r+t|| ��� ||<