B
    \ cu2                @   s  d Z ddlmZ ejdkstdd Zedddd	d
ddddddgeedd Z	dd Z
dddddddddddd d!d"d#d$d%d&d'd(dd)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDd=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdEdFdGdHdIdJdKdLdMdNdOdPdQdNddRdSdTdUdVdSdWddXdYdZdd[d\d]d^d_d`dadbd_dcdddedfdgdhdhdhdididjdkdldmdndodododpdqdrdsdsdtdddudvdwdxd&dydzd{d|d}d~ddddddddddddddd}ddddddddddddddddddddddddddddddddddddddddddddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddddyddddkddmdnddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdydudvddddjdwdkddmdndddddddddtdydudvddidddjdwddddddddddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsdd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddːZdd̈́ Zddτ Zddф Zddӄ ZddՄ Zddׄ Zeddddddddgeedd݃ eedd߃ eedd eedd Zdd Zdd Zdd Zdd Zdd ZeeddZdd ZeeddZdd Zeddddgeedd eedd߃ Zdd Zedgeedd Zd d Zdd Z dd Z!dS (  zLibrary that exposes various tables found in the StringPrep RFC 3454.

There are two kinds of tables: sets, for which a member test is provided,
and mappings, for which a mapping function is provided.
    )	ucd_3_2_0z3.2.0c             C   sB   t | dkrdS t| }d|  kr.dk r6n ndS |d@ dkS )NZCnFi  i  i  )i  i  )unicodedatacategoryord)codec r   lib/python3.7/stringprep.pyin_table_a1   s      r
      iO  i  i  i  i  i   i   i   i`   i  i   i  c             C   s   t | tkS )N)r   b1_set)r   r   r   r	   in_table_b1   s    r   u   μZssu   i̇u   ʼnsu   ǰu   ιu    ιu   ΐu   ΰu   σu   βu   θu   υu   ύu   ϋu   φu   πu   κu   ρu   εu   եւu   ẖu   ẗu   ẘu   ẙu   aʾu   ṡu   ὐu   ὒu   ὔu   ὖu   ἀιu   ἁιu   ἂιu   ἃιu   ἄιu   ἅιu   ἆιu   ἇιu   ἠιu   ἡιu   ἢιu   ἣιu   ἤιu   ἥιu   ἦιu   ἧιu   ὠιu   ὡιu   ὢιu   ὣιu   ὤιu   ὥιu   ὦιu   ὧιu   ὰιu   αιu   άιu   ᾶu   ᾶιu   ὴιu   ηιu   ήιu   ῆu   ῆιu   ῒu   ῖu   ῗu   ῢu   ῤu   ῦu   ῧu   ὼιu   ωιu   ώιu   ῶu   ῶιZrsr   u   °cu   ɛu   °fhilnZnopqrZsmZtelZtmzbefmu   γdZhpaZauZovZpaZnau   μaZmaZkaZkbZmbZgbZpfZnfu   μfhzZkhzZmhzZghzZthzZkpaZmpaZgpaZpvZnvu   μvZmvZkvZpwZnwu   μwZmwkwu   kωu   mωZbqu   c∕kgzco.ZdbZgyZhpZkkZkmZphZppmZprZsvwbZffZfiZflZffiZfflstu   մնu   մեu   միu   վնu   մխagjkotuvwxyu   αu   δu   ζu   ηu   λu   νu   ξu   οu   τu   χu   ψu   ω(        i0  iI  i  i  iE  iz  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  iP  iR  iT  iV  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i   i!  i!  i!  i	!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i!  i !  i!!  i"!  i$!  i(!  i,!  i-!  i0!  i1!  i3!  i>!  i?!  iE!  iq3  is3  iu3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i   i  i  i  i  i  i  i  i  i  i  i  i  i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i4 i5 i6 i7 i8 i9 i: i; i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i8 i9 i; i< i= i> i@ iA iB iC iD iF iJ iK iL iM iN iO iP il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i i i i i i i  i! i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO iP iQ iR iS iT iU ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i  i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/ i0 i1 i2 i3 i4 iG iV iW iX iY iZ i[ i\ i] i^ i_ i` ia ib ic id ie if ig ih ii ij ik il im in i i i i i i i i i i i i i i i i i i i i i i i i i i i c             C   s"   t t| }|d k	r|S |  S )N)b3_exceptionsgetr   lower)r   r   r   r   r	   map_table_b3   s     r0   c             C   sH   t | }td|}ddd |D }td|}||kr@|S |S d S )NZNFKC c             S   s   g | ]}t |qS r   )r0   ).0Zchr   r   r	   
<listcomp>   s    z map_table_b2.<locals>.<listcomp>)r0   r   Z	normalizejoin)r    Zalr   Zblr   r   r   r	   map_table_b2   s    r5   c             C   s   | dkS )N r   )r   r   r   r	   in_table_c11   s    r7   c             C   s   t | dko| dkS )NZsr6   )r   r   )r   r   r   r	   in_table_c12   s    r9   c             C   s   t | dkS )Nr8   )r   r   )r   r   r   r	   in_table_c11_c12   s    r:   c             C   s   t | dk ot| dkS )N   Cc)r   r   r   )r   r   r   r	   in_table_c21   s    r=   i  i  i  i(   i)   id   ij   ip   i  i  is i{ c             C   s.   t | }|dk rdS t| dkr&dS |tkS )Nr;   Fr<   T)r   r   r   c22_specials)r   r   r   r   r	   in_table_c22   s      r?   c             C   s   t | dkpt| tkS )Nr<   )r   r   r   r>   )r   r   r   r	   in_table_c21_c22   s    r@   c             C   s   t | dkS )NZCo)r   r   )r   r   r   r	   in_table_c3   s    rA   c             C   s0   t | }|dk rdS |dk r dS t | d@ dkS )Ni  Fi  Ti  )i  i  )r   )r   r   r   r   r	   in_table_c4   s      rB   c             C   s   t | dkS )NZCs)r   r   )r   r   r   r	   in_table_c5   s    rC   i  c             C   s   t | tkS )N)r   c6_set)r   r   r   r	   in_table_c6   s    rE   i/  i/  c             C   s   t | tkS )N)r   c7_set)r   r   r   r	   in_table_c7   s    rG   i@  iA  i   i   i*   i/   c             C   s   t | tkS )N)r   c8_set)r   r   r   r	   in_table_c8  s    rI   i  i   i  c             C   s   t | tkS )N)r   c9_set)r   r   r   r	   in_table_c9  s    rK   c             C   s   t | dkS )N)RZAL)r   bidirectional)r   r   r   r	   in_table_d1  s    rN   c             C   s   t | dkS )NL)r   rM   )r   r   r   r	   in_table_d2  s    rP   N)"__doc__r   r   Zunidata_versionAssertionErrorr
   setlistranger   r   r-   r0   r5   r7   r9   r:   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rN   rP   r   r   r   r	   <module>   s|  ,P,