�
܍~c�` �
� � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZ
d dlZd dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZ d dlmZmZ d dlmZm Z d dl!m"Z"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d d l,m.Z/ d d
l,m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8 da9 e/j: e;� � Z<e
j= diZ>d
ej? z ej@ z ZAdZBdZCd� ZD e"� � d�d�� � ZE e"� � d�d�� � ZFd�d�ZGd�d�ZHd� ZId� ZJd� ZK G d� d� � ZL G d� deM� � ZN G d� deM� � ZOd� ZPd�d �ZQd�d!�ZRd�d"�ZSd�d$�ZTd�d%�ZUdd&�d'e'fd(�ZVd)� ZWd*� ZXd+� ZYd�d-�ZZd.� Z[d/e\d'e]fd0�Z^d1� Z_d,d,de/j` d,fd2�Za e"� � d3� � � Zb e"� � d4� � � Zc e"� � d5� � � Zd e"� � d6� � � Ze e"� � d7� � � Zf e"� � d8� � � Zgd�d:�Zhd�d;�Zid�d<�Zjd�d=�Zk e"� � d>� � � Zld?� Zm e"� � d@� � � Znd�dA�Zod�dB�ZpdC� Zqd�dD�Zrd�d'e]fdE�Zse jt dF� � � Zue jt dG� � � ZvdH� ZwdI� Zxd�dL�Zyd�dM�Zzde]ffdN�Z{d�dP�Z|dd&�d'e]fdQ�Z}dd&�d'e]fdR�Z~d�dS�Zd�dT�Z�dU� Z� edVg dW�� � Z�d�dX�Z�d�dZ�Z�d[� Z�d\� Z�d]� Z�d^� Z�d_� Z�d`� Z� d�db�Z� d�dc�Z� d�dd�Z� d�de�Z� d�df�Z�d�dg�Z�dh� Z�di� Z�d�dj�Z� e"� � dk� � � Z�dl� Z�d�dn�Z�d�do�Z�d�dp�Z�dq� Z�dr� Z�ds� Z�d�dt�Z�du� Z�dv� Z�dw� Z�d�dy�Z�e]ffdz�Z�d{� Z�d|� Z�d�d}�Z�e jt d~� � � Z�d� Z� d�d��Z�d�� Z�d�� Z�d�d��Z�d�� Z�d�� Zd�� Z� e"� � d�� � � Z�d�� Z�d�� Z� d�d9d��d�e�d�e�d'dfd��Z�d�� Z�d�� Z�d�e\d'e�fd��Z�d�e\d'e�fd��Z�d�e\d'e\fd��Z�d�e\d'e\fd��Z�d�e\d'e(e\ fd��Z� d�d,d��d��Z�d�� Z�d�d��Z�d�� Z�d�d��Z�d�d��Z�d�� Z�d�� Z�d�� Z�d�� Z� e"� � d�� � � Z�d�� Z�d�d��Z�d�� Z�d�� Z�d�� Z�e<d9fd��Z�d�� Z�d�� Z�d�� Z�d�� Z�d�� Z�d�� Z�d�� Z�e<d9fd��Z�d�e\d'e�fd��Z� e)d�� � Z� d�d�e%d�e�f d'e�fd��Z�d�� Z�dde
j� j= fd��Z�d�d��Z�d�� Z�d�dZ�dÄ Z�d�dĄZ�dń Z�dƄ Z�d�dDŽZ�d�dɄZ�dʄ Z�d�d˄Z�d̄ Z�d�dτZ�e# G dЄ d� ed�g dҢ� � � � � � Z�dS )�� N)� b64decode� b64encode)�deque�
namedtuple)�EACCES�ENOENT)� lru_cache�total_ordering)�Callable�Deque�Dict�List�TypeVar)�parse)�importer)�log)�mergers�safeyaml�subp�
temp_utils�
type_utils�
url_helper�version)�CFG_BUILTIN�_z_-.())�true�1�on�yes)�off�0�no�falsec � � t t t t j � � j � d� � d d� � � � � S )N�.� )�tuple�map�int�os�uname�release�split� � �0/usr/lib/python3/dist-packages/cloudinit/util.py�kernel_versionr1 C s: � ���S�"�(�*�*�,�2�2�3�7�7����;�<�<�=�=�=r/ c �f � t j ddgd| �� � }|j � � � S )z�Return the sanitized string output by `dpkg --print-architecture`.
N.B. This function is wrapped in functools.lru_cache, so repeated calls
won't shell out every time.
�dpkgz--print-architectureT��capture�target)r �stdout�strip)r6 �outs r0 �get_dpkg_architecturer: G s= � � �)� �'�(�$�v�� � �C� �:�����r/ c �z � � ddddd�}i � t j ddgd| � � � }|j � � � D ]<}|� d
� � \ }}}||v r|� � � � || < |