f fu2 @sdZddlmZddZeddddd d d d d ddg eeddZddZidd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6d*d+6d,d-6d.d/6d0d16d2d36d4d56d6d76d8d96d:d;6d(d<6d=d>6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dUde6dWdf6dYdg6d[dh6d]di6d_dj6dadk6dcdl6dmdn6dodp6dqdr6dsdt6dudv6dwdx6dydz6d{d|6dmd}6dod~6dqd6dsd6dud6dwd6dyd6d{d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d6dd6dd6dd6dd6dd6dd6dd6d$d6dd6dd6dd6d&d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d6d6dd6dd6dd6d d 6d d 6d d6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d d+6d,d-6d.d/6d0d16d2d36d4d56d6d76d8d96d:d;6d8d<6d=d>6d?d@6dAdB6dCdD6dEdF6dCdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6d\d]6d^d_6d`da6dbdc6ddde6dfdg6dhdi6djdk6dldm6dndo6dpdq6dpdr6dsdt6dudv6dwdx6dydz6d{d|6d}d~6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6dd 6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd!6dd"6dd#6dd$6dd%6dd&6dd'6dd(6dd)6d}d*6dd+6dd,6dd-6dd.6dd/6dd06dd16dd26dd36dd46dd56dd66dd76dd86dd96dd:6dd;6dd<6dd=6dd>6dd?6dd@6ddA6ddB6ddC6d}dD6ddE6ddF6ddG6ddH6ddI6ddJ6ddK6ddL6ddM6ddN6ddO6ddP6ddQ6ddR6ddS6ddT6ddU6ddV6ddW6ddX6ddY6ddZ6dd[6dd\6dd]6d}d^6dd_6dd`6dda6ddb6ddc6ddd6dde6ddf6ddg6ddh6ddi6ddj6ddk6ddl6ddm6ddn6ddo6ddp6ddq6ddr6dds6ddt6ddu6ddv6ddw6d}dx6ddy6ddz6dd{6dd|6dd}6dd~6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d}d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d*d6dd6dd6d=d6dd6dd6d,d6d d6d8d6dd6dd6dd6dd6dd6d6d6d:d6d,d6d(d6dd6d.d6d4d6dd6dd6dd6d(d6dd6d*d6dd6dd6d=d6dd6dd6d,d6d d6d8d6dd6dd6dd6dd6dd6d6d6d:d6d,d6d(d6dd6d.d6d4d6dd6dd6dd6d(d6dd6d*d6dd6dd 6d=d 6dd 6dd 6d,d 6d d6d8d6dd6dd6dd6dd6dd6d6d6d:d6d,d6d(d6dd6d.d6d4d6dd6dd6dd6d(d6dd 6d*d!6dd"6dd#6d=d$6dd%6dd&6d,d'6d d(6d8d)6dd*6dd+6dd,6dd-6dd.6d6d/6d:d06d,d16d(d26dd36d.d46d4d56dd66dd76dd86d(d96dd:6d*d;6dd<6dd=6d=d>6dd?6dd@6d,dA6d dB6d8dC6ddD6ddE6ddF6ddG6ddH6d6dI6d:dJ6d,dK6d(dL6ddM6d.dN6d4dO6ddP6ddQ6ddR6d(dS6Z dTdUZ dVdWZ dXdYZ dZd[Z d\d]Zd^d_Zed`dadbd d dcdddgeeddeeedfdgeedhdieedjdkZdldmZdndoZdpdqZdrdsZdtduZeedhdvZdwdxZeedydzZd{d|Zed}d~ddgeeddeedfdgZddZedgeeddZddZddZddZdS(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_0cCsStj|dkrdSt|}d|ko<dknrEdS|d@dkS)NZCnFii)rr) unicodedatacategoryord)codecr //opt/alt/python34/lib64/python3.4/stringprep.py in_table_a1 s  r iOii i i i i i i` iiicCst|tkS)N)rb1_set)rr r r in_table_b1sruμZssui̇i0uʼniIsiuǰiuιiEu ιizuΐiuΰiuσiuβiuθiuυiuύiuϋiuφiuπiuκiuρiiuεiuեւiuẖiuẗiuẘiuẙiuaʾiuṡiuὐiPuὒiRuὔiTuὖiVuἀιiuἁιiuἂιiuἃιiuἄιiuἅιiuἆιiuἇιiiiiiiiiiuἠιiuἡιiuἢιiuἣιiuἤιiuἥιiuἦιiuἧιiiiiiiiiiuὠιiuὡιiuὢιiuὣιiuὤιiuὥιiuὦιiuὧιiiiiiiiiiuὰιiuαιiuάιiuᾶiuᾶιiiiuὴιiuηιiuήιiuῆiuῆιiiuῒiiuῖiuῗiuῢiiuῤiuῦiuῧiuὼιiuωιiuώιiuῶiuῶιiiZrsi r i!u°ci!uɛi!u°fi !hi !i !i !ii!i!li!ni!noi!pi!qi!ri!i!i!Zsmi !Zteli!!Ztmi"!zi$!i(!bi,!i-!ei0!fi1!mi3!uγi>!i?!diE!Zhpaiq3Zauis3Zoviu3Zpai3Znai3uμai3Zmai3Zkai3Zkbi3Zmbi3Zgbi3Zpfi3Znfi3uμfi3hzi3Zkhzi3Zmhzi3Zghzi3Zthzi3i3Zkpai3Zmpai3Zgpai3Zpvi3Znvi3uμvi3Zmvi3Zkvi3i3Zpwi3Znwi3uμwi3Zmwi3kwi3i3ukωi3umωi3Zbqi3uc∕kgi3zco.i3Zdbi3Zgyi3Zhpi3Zkki3Zkmi3Zphi3Zppmi3Zpri3Zsvi3wbi3ZffiZfiiZfliZffiiZfflistiiuմնiuմեiuմիiuվնiuմխiaiiiiiigiiiji ki i i i oiiiiitiuiviwixiyiii4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMihiiijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i iiiiiiiiiiiiiii8i9i;i<i=i>i@iAiBiCiDiFiJiKiLiMiNiOiPiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiuαiiiuδiiuζiuηiiiiuλiiuνiuξiuοiiiiiuτiiiuχiuψiuωiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4iGiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikiliminiiiiiiiiiiiiiiiiiiiiiiiiiiicCs/tjt|}|dk r%|S|jS)N) b3_exceptionsgetrlower)rrr r r map_table_b3s r3cCsdt|}tjd|}djdd|D}tjd|}||kr\|S|SdS)NZNFKCcSsg|]}t|qSr )r3).0Zchr r r s z map_table_b2..)r3rZ normalizejoin)r%ZalrZblr r r r map_table_b2s  r8cCs |dkS)N r )rr r r in_table_c11sr:cCstj|dko|dkS)NZsr9)rr)rr r r in_table_c12sr<cCstj|dkS)Nr;)rr)rr r r in_table_c11_c12sr=cCs%t|dko$tj|dkS)NCc)rrr)rr r r in_table_c21sr@iiii( i) id ij ip iiisi{cCs?t|}|dkrdStj|dkr5dS|tkS)Nr>Fr?T)rrr c22_specials)rr r r r in_table_c22s   rBcCs%tj|dkp$t|tkS)Nr?)rrrrA)rr r r in_table_c21_c22srCcCstj|dkS)NZCo)rr)rr r r in_table_c3srDcCs@t|}|dkrdS|dkr,dSt|d@dkS)NiFiT)rFrE)r)rr r r r in_table_c4s    rGcCstj|dkS)NZCs)rr)rr r r in_table_c5srHicCst|tkS)N)rc6_set)rr r r in_table_c6srJi/i/cCst|tkS)N)rc7_set)rr r r in_table_c7srLi@iAi i i* i/ cCst|tkS)N)rc8_set)rr r r in_table_c8srNii icCst|tkS)N)rc9_set)rr r r in_table_c9srPcCstj|dkS)NRAL)rQrR)r bidirectional)rr r r in_table_d1 srTcCstj|dkS)NL)rrS)rr r r in_table_d2srVN) __doc__rrr setlistrangerrr0r3r8r:r<r=r@rArBrCrDrGrHrIrJrKrLrMrNrOrPrTrVr r r r s| @      p       > "