�
"T�e� � �j � d dl Z d dlmZ d dlmZ d dlmZmZmZm Z m
Z
mZmZm
Z
ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZ e j0 de j2 � Z e j0 d� Z G d
� de
� Ze e Zeegef Zeeegef Z e j0 d� jB fdede defd�Z"dedeee#ee ee f fd�Z$ d!dede
eef de%dee def
d�Z&e'dk( rCg d�Z(d dl)m*Z* d dl+m,Z, e,ddd� � Z-e(D ] Z.e-j_ ee.� e.� � e*e-� yy)"� N)�literal_eval)�
attrgetter)�Callable�Iterable�List�Match�
NamedTuple�Optional�Tuple�Union� )�_emoji_replace)�EmojiVariant)�MarkupError)�Style)�Span�Textz((\\*)\[([a-z#/@][^[]*?)])z^([\w.]*?)(\(.*?\))?$c �R � e Zd ZU dZeed< |