Allow redundant 0xFE0F after emoji.

This commit is contained in:
levlam 2023-01-18 18:22:41 +03:00
parent 1588f0d687
commit 5b451f7e11
2 changed files with 274 additions and 183 deletions

View File

@ -13,193 +13,274 @@
namespace td {
bool is_emoji(Slice str) {
constexpr size_t MAX_EMOJI_LENGTH = 35;
constexpr size_t MAX_EMOJI_LENGTH = 38;
static const FlatHashSet<Slice, SliceHash> emojis = [max_emoji_length = MAX_EMOJI_LENGTH] {
#if TD_HAVE_ZLIB
Slice packed_emojis(
"eJyNnety27i2rV8lVfvf-XXul7frVmfZ6cS6kJJskrLj7tUUaYmOI1uObcUEWLUfJecBdledFzgaJIfJiUkyqyqAJ4wxJzE_QABF2fGPs-"
"jdj7PVux_TzbFsjyU7lttj2R3L_t2PC3Ms9t2PYHEsy3c_wg_H8vuxfDyWT8dydizjY5kcy_RYZsfiHYt_LPNjKd79iI5foz-P5Rg_"
"OsaPjjGjY8zV-2P5x7EcfVfH-Ktj_-rhWI7XXX07lu_HctReHjWXx-tdHq93efPux9XxmldHn6tj3Kuj39VxXFcX7358Pn79fH4ssI_j_"
"3y89u0xt9vLdz--HMf1Zfnu7-tf3h-r36bH6mSCykPlo5qjWqCC7uQc1QWqAFWIKjpWH35FVVpfUT2g2qN6RPUN1ROqF1QHVN-P1e8zVLja2S-"
"oEOVshOo3VBjV2T9QnaA6RfUB1e-oPqL6hOoM1RgVRn-GPM4Q-ayMjDzOkMcZ8jhDHmfI4wx5nCGPM-RxhtEfZ_"
"1YXaK6QvUZ1TWqP1B9QXWHClme7VDdo0K-Z8j3DPmeId-zZ1TI9wz5niHfs1dUOSqDyqIqjtUY6Y-R_hjpj5H-GOmPkf4Y6Y-R_hjpj5H-"
"GOmPkf4Y6Y-R_hjpj5H-GOmPkf4Y6Y-R_hjpj5H-GOmPkf4Y6Y-R_hjpj5H-GOmPkf4Y6Y-R_hjpj_"
"9E9U9Uf6GKUa1RJahSVDeoNqi2qDJUt6iAbgx0Y6AbA90Y6MZANwa6MdCNgW6MpTIGvzH4jcFvDH5j8BuD3xjoxkA3AboJ0E2AbgJ0E6CbAN0E"
"6CZANwG6CdBNgG4CdBOgmwDdBOgmQDcBugnQTYBuAnQTpD9B-hOkP0H6E6Q_QfoTpD9B-hOkP0H6E6Q_QfoTpD9B-hOkP0H6E6Q_QfoTpD9B-"
"hOkP0H6E6Q_QfoTpD9B-hOkP0H6E6Q_wfKZgMEEDKZgMAWDKRhMwWAKBlMwmILBFAymYDAFgykYTJHvFPlOke8U-U6R7xT5TpHvFPlOke8U-"
"U6R7xT5TpHvFPlOke8U-U6R7xT5TpHvFPlOke8U-"
"U6R4BQZTZHRFBlNkdEUGU2R0RQZTZHRDBnNkNEMGc2Q0QwZzZDRDBnNkNEMGc2Q0QwZzTCrM8zqDLM6w6zOkOUMWc6Q5QxZzpDlDC-"
"IGV4QM7wgZnhBzPCCmOEFMcMLYoYXxAwviBleEDO8IGZ4QcxAaAZCMxCagdAMhGYgNAOhGQjNQGgGQjMQmoHQDIRmIDQDoRkIzUBohhUxw4qYY"
"UXMAGyGFTHDiphhRczAbwZ-M_Cbgd8M_GbgNwM_D-"
"g8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8"
"UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9Q8UPNAzQM1D9S8khpWnQ90PladD34--Png54OfD34--"
"Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--"
"Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--Png54OfD34--M3Bbw5-c_Cbg98c_ObgNwe_"
"OfjNwW8OfnPwm4PfHPzm4DcHvzn4zcFvDn5z8JuD3xz85uA3B785-M3Bbw5-c_Cbg98c_ObgNwe_"
"OfjNwW8OfnPwm4PfHPzm4DcHvzn4zcFvDn5z8JuD3xz85uA3B785-M3Bbw5-c_Cbg98c_ObgNwe_"
"OfjNwW8OfnPwm4PfHPzmoLYAtQWoLUBtAWoLUFuA2gLUFqC2ALUFqC1AbQFqC1BbgNoC1BagtgC1BagtQG0BagtQW4DaAtQWoLYAtQWoLUBtAW"
"oLUFuA2gLUFqC2ALUFqC1AbQFqC1BbgNoC1BagtgC1BagtQG0BagtQW4DaAtQWoLYAtQWoLUBtAWoLUFuA2gLUFqC2ALUFqC1AbQFqC1BbYNUt"
"kf4S6S-R_hLpL5H5EpkvkfkSmS-R-RKZL5H5EpkvkfkSmS-R-RKZL5H5EpkvkfkSmS-R-RKZL5H5EpkvkfkSmS-R-RKZLzG-c1zjHNc4h-"
"QCw73AcC8w3Au8SC4w3QGmO8B0B5juANMdYLoDTHeA6Q4w3QGmO8B0B5juAPkGyDdAvgHyDTDdAZIOkHSApAMkHSDpAAMKMKAASQdIOkDSAZIO"
"kHSApAMkHSDpAEkHSDpA0gGSDpB0gIwCJB0g6QBJB5juANMdYLoDTHeA6Q4w3QGmO8B0B5juANMdYLoDTHeA6Q4w3QGmO8B0B5juANMdAGcAfg"
"H4BeAXgF8AfiH4heAXgl8IfiH4heAXgl8IfiH4heAXgl8IfiH4heAXgl8IfhHiRYgXIV6EeBHiRYgXIV6EeBHiRYgXIV6EeBHiRYgXIV5UxsN8"
"RJiPCPMRYT4izEeE-YgwHxHmI8J8RJiPCPMRYT4izEeE-YgwHxHmI8J8RJiPCPMRYT4izEeE-YgwHxHmI8J8RJiPCPMRYT4izEeE-"
"YgwHxHmI8J8RJiPCPMRYT4izEeE-YgwHxHmI8J8RJiPCPMRYT4izEeE-YgwHxHmYwV-K_Bbgd8K_FbgtwK_"
"FQitgGQFJCsgWQHECiBWALFC0iskvULSKyS9wuhXGP0KQ1thaCsMbYWhrTC0FYa2wtBWGNoKQ7sGq2uwugara7C6BqtrsLoGq2uwugara7C6Bq"
"trXO0aXGIMN8aExpjQGBMaY_"
"QxRh9j9DEmNMaExsgjRh4x8ogxoTEmNMaExpjQGLnFyC1GbjFyizHIGIOMMcgYg4wxyBiDjDHIGIOMMcgYg4wxyBiDjIEkxoTGmNAYExqXA8eE"
"xpjQGBMag1oMajGoxaAWg1oMajGoxQAWYy5jzGWMuVxjLteYyzXmco25XGMu15jLNV4Ga7wM1ngZrPEyWONlsAa1NaitQW0NamtQW4PaGtTWoL"
"YGtTWorUFtDWprUFuD2hrU1qC2BrU1qK1BbQ1qa1Bbg9oa1Nagtga1NaitQW0NamtQW4PaGtTWoLYGtTWorUFtDWprUFuD2hrU1qC2BrU1qK1B"
"bQ1qa1Bbg9oa1NZYa2ugWwPdGujWQJcAXQJ0CdAlQJcAXQJ0CbaRBPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_"
"BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_BPwS8EvALwG_"
"BPwS8EvALwG_BPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_"
"FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_FPxS8EvBLwW_"
"FPw2iLdBvA3ibRBvg3gbxNsg3gbxNoi3QbwN4m0Qb4N4W0zAFhOwxQRsMQFbTMAWE7DFBGwxAVtMwBZ0t6C7Bd0t6G5Bdwu6W9Ddgu4WdLeguw"
"XdLehuQXcLulvQ3YLuFnS3oLsF3S3obkF3C7pb0N2C7hZ0t6C7Bd0t6G5Bdwu6W9Ddgu4WNLagsQWNLWhsQWMLGlvQ2ILGFjS2oLEFjS1obEsa"
"oLsF2AxcMnDJwCUDlwxcMnDJsOAyLLgMSDIgyYAkA5IMSDIgyYAkA5IMSDIgyYAkA5IM6WdIP0P6GdLPkH6G9DOknyH9DOlnyC1Dbhlyy5Bbht"
"wy5JYhtwy5ZS_v_n1z_PcfL9N3_353_Afjxy85Smn--jtKab7_"
"J0plHlBK82SBUplLlMo8R6nMC5TKDFAqM0SpzA1KZW5RSvPsBqU0p2WpzC8olXmHUplfUSrzHqUyH1Aq8wWlMg8olfkdpTSP70WPpTTPtyiVma"
"FU5hNKaV78glKZryiVmaOU5vHu_Vgq81eUyhyhVOZvKJX5HqUyJyiV6aFUZoBSmVcolfkHSmX-E6Uy_"
"0KpzASlMrcolXmHUplfUSrzBaUyDyiV-R2lNI-308dSmSOUyrxGqcw_"
"UCrzL5TKXKNUZoJSmTcolfmKUpkWpTSPt8THUpkLlMpcolTmOUplXqBUZohSmSuUyrxEqcw_"
"UCozRanMHUpl3qOU5uoDSmWWpTI9lMqco1TmBqUydyiVeY9SmY8olfmMUpkvKJV5QCnNyxFKZX5AqczfUSrzDKUyxyiVWZbK9FEqc4FSmecolX"
"mFUpl_olTmHqUyH1FK8-o9SmWeolTmXyiVGaOU5uc_UUrzeGt5LJX5DaU0b_-BUpknKJV5igLz__"
"6yQ6lMg1KaHy9QKjNEgfn39T92ZVU37suqbtiyqhtFWVWND6OyqhvPZVU1zv4sq7oRl1XdWJdV3UjKqm6kZVU3bsqqbmzKqm5sy6puZGVVN27L"
"qm48lVXVGJuyqhqT87KqGxdlVTfCsqobUVnVjVVZ1Y3PZVU3rsuqakw_"
"lVXdOCurujEuq7oxKau6sSirurEsq7pxXlZ146Ks6kZQVnUjLKu6EZVV3ViVVd24LKu6cVVWdeNzWdWN67KqG_uyqhvfyqpuPJdV1ZiVnx_"
"Ui8L7tayqxtyUVdVY_"
"l5WdeNjWdWNr2VVN3ZlVTf2ZVU3Hsuqbnwrq7rxVFZ147ms6sZLWdWNQ1lVjfPTsqobH8uqbnwqq7pxVlZ1Y1xWdWNWVnVjXVZ146as6sZ9WdW"
"Nh7KqG3lZVY2LUVnVjd_Kqm68L6u64ZVV3fDLqm7My6puXJZV3bgqq7rxuazqxp9lVTf-"
"Kqu6cVNWdeNrWdWNfVnVje9lVTVWn8qqbozLqm5MyqpuVFXd-KOs6safZVU3_llWdeOvsqobcVnVjXVZ1Y1NWdWNXVnVjX1ZofFvP377692_"
"HS18_U9lVTf-c1nVjf9SVnXjv5ZV3fhvZVU3_ntZ1Y3_UVZ143-WVd34X2VVN_53WdWN_"
"1NWdePv69PkWG5obGhsaWQ0bmnc0bin8UDjkcYTjWcaLzQONL7TyGkYGniBn6Zo0EhpbGhsaWQ0bml8oXFH4yuNexoPNPY0Hmk80Xim8ULjQOO"
"VRk7D0igHf8PB3xDvDQd_wzHfcMw3HPMNxwxjR-OexgONPY1HGt9oPNP4TuOVRk7D0LA0yjFvSHXDgW2IbsPxbDiMDa--ofuWKW-"
"Z8pYBtwy4ZaZbDnVLvFvi3XLwGWlkHEbGYWQcRsZhZAx4y2Hcctnckvwtx3PLKbjlwG45sFte9Jbkb3mtW5K_"
"JfBbrpbb9tVfaBxofKeR0yjJf2E6X3iJL7zEFwb8wjhfGOeOeO-Y1x3zuuOY7xjwjgHvCOqOY77jJe445jte6ysDfmWcr3T_"
"ytx31OzIcEeGOzLc0X3HYeza7s80chqWRrmi7jmV95zKe-Z-z0vck-E9A94znXumc090MF5plNd64CUeGPmBVB-Y4ANXywMzfWCmD7z6A8k_"
"MOUHpvxAdA_M_YFT8MAxP3DMDxzzA8f8wDE_EBQMQ-Mti5LYnunsmc6eWeyZxZ5Z7Mlwz8HvOdQ9h7rnCPccz57XemSm33jRb7zWN17rG6_"
"1jcS-kdg3XvRbO86exjONFxoHGjmNMvcnXv2ZV39mFs90f-bgn-n-"
"Qi8YKY0bGhsaWxq3NL7QuKPxlcaOxj2NBxp7Go80nmm80DjQeKVhaFgaJfkDB3_gmA8c84HkDxzzgWM-"
"cKgHDvXAoR441AOHeuBQDxzqgSM8cIQHwjxwYN85sO-8-ndG_s7I35nyd-b1ne6vdH9lXq-"
"cglcGfCX5VwZ85eTmzD3nJQwztYxjmUXBaxUcYVGnM338f3_8mh7LP49lfSx3dbtwO_fH8texPHZ1Ph_LbS0q8Oin_GGo6mtefzX1V1t_"
"LfAkodKVX_P6q6m_2vprgR8NrXTl17z-auqvtv4K3ada96nWfap1n2rdp1p3VuvOat1ZrTurdWe1blzrxrVuXOvGtW5c_4DX5B_1T3-"
"VRk7D0LA0SnIj_qjYiD8uNuKPjI34Y2Mjin-j-DeKf6P4N4p_o_g9xe8pfk_xe4rfU3xK8SnFpxSfUnxK8UeKP1L8keKPFH-k-BPFnyj-"
"RPEnij9RfEbxGcVnFJ9RfFaLPaLziM4jOo_oPKLziM4jOo_oPKLziM47ofiE4hOKTyg-oZjoPKLziM4jOo_ovA8Uf6D4A8UfKP5A8e8U_"
"07x7xT_TvHvFHNSPE6Kx0nxOCkeJ8XjpHicFI-"
"T4nFSPE6Kx0nxOCkeJ8XjpHhvkzKmeEzxmOIxxXyleBOKJxRPKJ5QPKF4SvGU4inFU4qnFM8onlE8o3hG8YzihOKE4oTihOKE4pTilOKU4pTil"
"OIbim8ovqH4huIbijcUbyjeULyheENxRnFGcUZxRnFG8S3FtxTfUnxL8S3FXyj-QvEXir9Q_IXiO4rvKL6j-"
"I7iO4p3FO8o3lG8o3hH8T3F9xTfU3xP8T3FDxQ_UPxA8QPFDxTvKd5TvKd4T_Ge4keKHyl-pPiR4keKv1H8jeJvFH-j-BvFTxQ_"
"UfxE8RPFTxQ_U_xM8TPFzxQ_U_xC8QvFLxS_UPxCcU5xTnFOcU5xXov9X2txaeQ0DA1LoxRzf_a5P_vcn33uzz73Z5_7s8_92ef-7HN_9rk_-"
"zxhfZ6wPk9YnyeszxPW52buczP3uZn73Mx9buY-N3Ofm7nPzdznZu5zM_e5I_"
"nckXzuSD53JJ87ku9R7FHsUexR7FG8pXhL8ZbiLcXbWrzkEl1yiS65RJdcoksu0SWX6JJLdMkluuQSXXKJLr9T_J3i7xR_p_"
"h7LT6f1eLSyGkYGpZGKV5SvKR4SfGS4iXF5xSfU3xO8TnF57U45NoIuTZCro2QayPk2gi5NkKujZBrI-"
"TaCLk2Qq6NkGsj5NoIuTZCro2QJ2zIEzbkCRvyhA15woY8YUOesCFP2JAnbMgTNuQJG_KEDXnChjxhQ56wIU_"
"YkCdsyBM25Akb8oQNuZ5DrueQ6znkeg65nqO_"
"anFp5DQMDUujFHOJRlyiEZdoxCUacYlGXKIRl2jEJRpxiUZcohF30Yi7aMRdNOIuGnEXXf1Si0sjp2FoWBqlmJOy4qSsOCkrTsqKkxJTHFMcUx"
"xTHL-"
"JyTkm55icY3KOyTkOKA4oDigOKA4oDikOKQ4pDikOKY4ojiiOKI4ojiheUbyieEXxiuIVxZcUX1J8SfElxZcUX1F8RfEVxVcUX1H8meLPFH-m-"
"DPFnym-pvia4muKrym-ppg3gTFvAmPeBMa8CYx5ExjvKN5RvKN4R_GOYt7JxLyTiXknE_"
"NOJuadTMw7mZh3MjHvZGLeycS8k4l5JxPzTibmnUzMO5mYdzIxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4MxX4Mx"
"72Ri3snEvJOJeScT804m5p1MzDuZmHcyMe9kYt7JxAeKDxQfKD5QfKDYUGwoNhQbig3FlmJLsaXYUmxr8ZoJrpngmgmumeCaCSbknJBzQs4JOS"
"fknJBzQs4JOSfknJBzQnQJ0SVElxBdQnQJ0SVElxBdQnQJ0SWvFL9S_"
"ErxK8WvtTjlaZXytEp5WqU8rVKeVilPq5SnVcrTKuVplfK0SrmLptxFU-6iKXfRlLtoyruvlHdfKe--"
"Ut59pbz7Sn2KfYp9in2KfYrnFM8pnlM8p3hO8YLiBcULihcULyjmPVLKe6SU90gp75FS3iOlvEdKeY-U8h4p5T1Synuk9ILiC4ovKL6g-"
"IJiHkApD6CUB1DKAyjlAZTyAEp5AKU8gFIeQCkPoJQHUMoDKOUBlPIASnkApTyAUh5AKQ-"
"glAdQygMo5QGU8gBKeQClPIBSHkApD6CUB1DKAyjlAZTyAMr4PiXj-5SM71Myvk_J-D4l4yO4jI_gMj6Cy_"
"gILuMjuIw3rhlvXDPeuGa8cc1445rtKN5RvKN4R_GOYh5AGQ-"
"gjAdQxgMo4wGU8QDKeABlPIAyHkAZD6CMB1DGAyjjAZTxAMp4AGU8gDIeQBkPoIwHUMYDKOPGmHFjzLgxZtwYM26MGTfGjBtjxo0x48aYcWPMu"
"D9n3J8z7s8Z9-eM-3PGXTTjLppxF824i2Zvb6Vvfvwy_nEVH-u_61_0rL-DHzpQ3yy_43_qV6u-v-tfJKWtv5W27Y5ureqI2x--4yr9F-u_"
"5kaLN73X3PT6d1xz03FNzKCYmL9bz-"
"Re3Qnq6Gx68iE3t7PpMUNubmfTY4fc3M6mpxhyczvlQhsgM6RRgj5OQxol6KM2pFGCPoZDGiXoI9qrwTuWnkxll-nvsv1db9fKe9d1PrSulVs-"
"5OZ2doy-y83t7Misy83t7M-6e1233TrXrOM9pOlfswNBOnF1rtmBIJ3wOtfsQJBOlJ1rdiCI0Mhl-NrfZfq7bH_X27VM77o2Q-taueVDbm5nx-"
"i73NzOjsy63NzO_qy713XbrXPNOt5Dmv41OxCkE1fnmh0I0gmvc80OBOlE2blmB4IITc-61l15f5ft73q7lu1d13ZoXSu3fMjN7eyg3-"
"XmdnZk1uXmdvZn3b2u226da9bxHtL0r9mBIJ24OtfsQJBOeJ1rdiBIJ8rONTsQRGh61rXuyvu7TH_"
"X27WK3nVdDK1r5ZYPubmdHUPscnM7O3h3ubmd_Vl3r-u2W-eadbyHNP1rdiBIJ67ONTsQpBNe55odCNKJsnPNDgQRmp51rbvy_"
"i7T31X9pIWY99Z35Jt5Idt0yTauTLyv3_Sk3OfUdQnV93f9rrjjXXX77XTH--iON9D1tzri9ofvuEr_xbqu-Xffm_"
"ZWj95UOt3yITe301kffW5up7t2etzcTmd597m5nTW2ISRdnU1PL5KuzqanF0lXZ9PTi6Srs-npRdLV2b2HdngPabr30J8E6cSl9tCfBOmEp_"
"bQnwTpRKn20J8EGQQ7tOSGNErwM7C967At-BnY3lXZFvwMbO8abQt-BlZpOk6p7i7T32X7u3qupajKrp5rKQKy6-1a3Q-jWj3d-3X3w6g-"
"N7ezg1Tvw6hONzvk5nZ2EO59GKXcNkNIujo7Jq3LrRvJZghJV2fHZHe5dSPpWgjd-_Xg87kO7yFN_178s-dzQ0H6qA1p-"
"vfinz2fGwrSR3RI078X9wTpXXmde_FAkEGwQ8txSNO_Fw8EGQQ7tFR7NR1vOLq7TH-X7e_"
"quZaamp79Wnf1XEvk1f2QtdXTvV93P2Ttc3M7O0j1PmTtdLNDbm5nB-Heh6zKbTOEpKuz46XQ5daNZDOEpKuzY7K73LqRdC2E7v168Llzh_"
"eQpn8v_tlz56EgfdSGNP178c-eOw8F6SM6pOnfi3uC9K68zr14IMgg2KHlOKTp34sHggyCHVqqvZqe_brngX53l-3v6rmWmpqeW2_"
"d1XMtkVf3hwetnu79uvvDgz43t7PjJdT74UGnmx1yczs7CPd-eKDcNkNIujo7ZqbLrRvJZghJV2fHZHe5dSPpWgjd-_Xg5ykd3kOa_r34Z5-"
"nDAXpozak6d-Lf_Z5ylCQPqJDmv69uCdI78rr3IsHggyCHVqOQ5r-vXggyCDYoaXaq-nZr3s-qOruMv1dPddSU9OzX-uunmuJvLo_FGv1dO_"
"X3R-K9bm5nR04ej8U63SzQ25uZwfh3g_FlNtmCElXZ8fMdLl1I9kMIenq7FjuXW7dSLoWQvd-3feZWB-ZIU3_"
"XjwQpBNX5148EKQTXudePBCkE2XnXjwQZBDs0JIb0vTvxQNBBsEOLcchTf9ePBBkEOzQUu3V9OzXuivv7zL9Xba7S01Nz36tu3quRTip1_"
"529V9rl78xonnJXyDpft7fqVEC8y8EcTVKYP-FIK5GCYp_IYir-TmMfgqD6ffnPZhwf6aDKerO-m-stdpvy6Jefj1deX-X6e-y_V1vw-"
"p4jOn8QlP_vLma_iU2EMTV9C-xgSCupn-JDQTpZDIIo5_CYPr9eQ8m3J_pYIq6s70MxUNcnU_PMtRdpr_L9ne9Davj6YwcTPfTmU5N_"
"3Y5EMTV9C-xgSCupn-JDQTpZDIIo5_CYPr9eQ8m3J_pYIq6s70MxbMpnU_PMtRdpr_L9ne9DavjTaccTPebzk5N_xIbCOJq-rfLgSCupn-"
"JDQTpZDIIo5_CYPr9eQ8m3J_pYIq6s70MxVtunU_PMtRdpr_L9ne9DavjXloOpvteulPTv8QGgria_iU2EMTV9G-XA0Fczc9h9FMYTL8_78GE-"
"zMdTFF3tpeheCeh8-lZhrrL9HfZ_q7m93rL7zW_rOt8z3R8z3Z87y1e3nzvteN7puN7tuN7b_FMRzzTMWbTEc90xLMd8WxHPNsxZtsRr-"
"iIV3TEKzriFXLM1e_vln8Lj-Z_VP9Vf9U6b5ntjssPLbPVUf8Z7dou_5I07byxyz_jTDtu2a1fGy7_"
"fDHtL43tv7bsVsxF67dty79zWdvlHxSk7Td2-"
"WezaLfiJPL3M2s0TZPJvn3n3Gm6ghpV03QEb8je2jW2pu38NmaNr2nHTvtGtmuUTfuLbPuvTtu53iJ12reyXSNu2r5s16ibthO_"
"QZ5L5LlCnkvkuUKeS-"
"S5Qp47yHMHee4gzx3kuYM8d5DnDvLcQZ47yHMHee4gzx3kuYM8d5DnDvLcQZ47yI1EbhRyI5EbhdxI5EYhNw5y4yA3DnLjIDcOcuMgNw5y4yA3"
"DnLjIDcOcuMgNw5y4yA3DnLjIDcOciuRW4XcSuRWIbcSuVXIrYPcOsitg9w6yK2D3DrIrYPcOsitg9w6yK2D3DrIrYPcOsitg9w6yK2DvJDIC4"
"W8kMgLhbyQyAuFvHCQFw7ywkFeOMgLB3nhIC8c5IWDvHCQFw7ywkFeOMgLB3nhIC8c5IWDvGgh3zS4NwL1psG8EYg3Dd6NQLtpYd20kG5aODct"
"lJsWxk0L4aaFb9NCt2lh27SQbVq4Ni1UmxamTQvRpoVn00KzaWORdxWtJpOVdxWtpiuoUam7Cn7nDZlzV9FqOz9WX-"
"Nz7ipa7RvZrlE6dxVN23912s71FqnTvpXtGrFzV9G0a9TOXUWrLX8ut0GeK-"
"S5RJ4r5LlEnivkuYM8d5DnDvLcQZ47yHMHee4gzx3kuYM8d5DnDvLcQZ47yHMHee4gzx3kuYPcSORGITcSuVHIjURuFHLjIDcOcuMgNw5y4yA3"
"DnLjIDcOcuMgNw5y4yA3DnLjIDcOcuMgNw5y4yC3ErlVyK1EbhVyK5Fbhdw6yK2D3DrIrYPcOsitg9w6yK2D3DrIrYPcOsitg9w6yK2D3DrIrY"
"PcOsgLibxQyAuJvFDIC4m8UMgLB3nhIC8c5IWDvHCQFw7ywkFeOMgLB3nhIC8c5IWDvHCQFw7ywkFeOMhbdxXlJ94VbpoVqLp13jLbHSVemq2O"
"Gmttl0hp541doqQdt-"
"ybxi7x0f7S2P5ry27FLHHRvm3sEhNtv7FLPLRbcRL5mXONxr2raH3n3Gm6ghqVe1fx9p03ZPKuot12PlKu8cm7inb7RrZrlPKuotX2nU-"
"zfed6NVp5V9Fq14jlXUWrXaOWdxXttvx8tUGeK-"
"S5RJ4r5LlEnivkuYM8d5DnDvLcQZ47yHMHee4gzx3kuYM8d5DnDvLcQZ47yHMHee4gzx3kuYPcSORGITcSuVHIjURuFHLjIDcOcuMgNw5y4yA3"
"DnLjIDcOcuMgNw5y4yA3DnLjIDcOcuMgNw5y4yC3ErlVyK1EbhVyK5Fbhdw6yK2D3DrIrYPcOsitg9w6yK2D3DrIrYPcOsitg9w6yK2D3DrIrY"
"PcOsgLibxQyAuJvFDIC4m8UMgLB3nhIC8c5IWDvHCQFw7ywkFeOMgLB3nhIC8c5IWDvHCQFw7ywkFeOMjf7irqP-EFQPjT6-0WcLW_"
"MZKtpjsX3rnrnQvv3PU2wtu43kZ4G9fbCm_relvhbV3vQngXrnchvAvh3XhWHz02jo0Te-o_"
"XDz9rXZqTNExapnsaE2ObCrByGm2BLmMkKsIuYyQqwhGRjAqgpERjIpgZQSrIlgZwaoIhYxQqAiFjFCICO8b7_"
"fC833j9V56SPatphKMnGZLkMsIuYqQywi5imBkBKMiGBnBqAhWRrAqgpURrIpQyAiFilDICJL9x8b7o_"
"D82Hh9lB6SfaupBCOn2RLkMkKuIuQyQq4iGBnBqAhGRjAqgpURrIpgZQSrIhQyQqEiFDKCZP9Jkmw1lWDkNFuCXEbIVYRcRshVBCMjGBXByAhG"
"RbAyglURrIxgVYRCRihUhEJGcEi2vMWe_9Y3En30O5Mz0GoqwchptgS5jJCrCLmMkKsIRkYwKoKREYyKYGUEqyJYGcGqCIWMUKgIhYwgZ-"
"Cs5e3OwFnL0ZkB7-7Nj6boGLVMdog5azeVYOQ0W4JcRshVhFxGyFUEIyMYFcHICEZFsDKCVRGsjGBVhEJGKFSEQkYQc-Z9bby_Cs-"
"vjddX4bFrPHbCY9d47KSHnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq2dnK2dmq37xvteeN43X"
"vfSQ7K_V-zvJft7xf5esr9X7O8l-3vF_l6yv1fs7yX7e8X-XrK_V-zvJft7xf5esr9X7O8l-3vFft9474XnvvHaSw_Jfq_Y7yX7vWK_l-"
"z3iv1est8r9nvJfq_Y7yX7vWK_l-z3iv1est8r9nvJfq_Y7yX7vWL_3Hg_C8_nxutZekj2z4r9s2T_rNg_S_bPiv2zZP-s2D9L9s-K_bNk_"
"6zYP0v2z4r9s2T_rNg_S_bPiv2zZP_ssvd_"
"ffOmKTpGLZMdgn27qQQjp9kS5DJCriLkMkKuIhgZwagIRkYwKoKVEayKYGUEqyIUMkKhIhQygmQ_arxHwnPUeI2kh2Q_"
"UuxHkv1IsR9J9iPFfiTZjxT7kWQ_UuxHkv1IsR9J9iPFfiTZjxT7kWQ_UuxHkv1IsT9pvE-E50njdSI9JPsTxf5Esj9R7E8k-xPF_"
"kSyP1HsTyT7E8X-RLI_UexPJPsTxf5Esj9R7E8k-xPF_kSyP1HsTxvvU-F52nidSg_J_lSxP5XsTxX7U8n-VLE_lexPFftTyf5UsT-V7E8V-"
"1PJ_lSxP5XsTxX7U8n-VLE_lexPXfbVXzN-i9BuKsHIabYEuYyQqwi5jJCrCEZGMCqCkRGMimBlBKsiWBnBqgiFjFCoCIWM4JBseTvvh-u-"
"keir_cJ_"
"vPnRFB2jlskOMWftphKMnGZLkMsIuYqQywi5imBkBKMiGBnBqAhWRrAqgpURrIpQyAiFilDICGLOwmbXD8WuHza7fngiPSR7teuHctcP1a4fyl"
"0_VLt-KHf9UO36odz1Q7Xrh3LXD9WuH8pdP1S7fih3_VDt-qHc9UO164dy1w_Vrh82u34odv2w2fXDU-kh2atdP5S7fqh2_VDu-"
"qHa9UO564dq1w_lrh-qXT-Uu36odv1Q7vqh2vVDueuHatcP5a4fql0_lLt-qHb9sHl6SlN0jFomOyR79eQ6lE-uQ_"
"XkOpRPrkP15DqUT65D9eQ6lE-uQ_XkOpRPrkP15DqUT65D9eQ6lE-uQ_XkOpRPrkP15DqUT65D9eQ6HDfeY-E5brzG0kOyHyv2Y8l-"
"rNiPJfuxYj-W7MeK_ViyHyv2Y8l-rNiPJfuxYj-W7MeK_ViyHyv2Y8l-rNhPGu-J8Jw0XhPpIdlPFPuJZD9R7CeS_USxn0j2E8V-"
"ItlPFPuJZD9R7CeS_USxn0j2E8V-ItlPFPuJZD9x2Ud_"
"vXnTFB2jlskOwb7dVIKR02wJchkhVxFyGSFXEYyMYFQEIyMYFcHKCFZFsDKCVREKGaFQEQoZQbJ_bLwfhedj4_UoPST7R8X-UbJ_"
"VOwfJftHxf5Rsn9U7B8l-0fF_lGyf1TsHyX7R8X-UbJ_VOwfJftHxf5Rsn9U7Jv3BTRFx6hlskOyV-_"
"JWt8ZOc2WIJcRchUhlxFyFcHICEZFMDKCURGsjGBVBCsjWBWhkBEKFaGQEST7p8b7SXg-NV5P0kOyf1LsnyT7J8X-SbJ_"
"UuyfJPsnxf5Jsn9S7J8k-yfF_kmyf1LsnyT7J8X-SbJ_"
"UuyfJPsnl32cvHnTFB2jlskOwb7dVIKR02wJchkhVxFyGSFXEYyMYFQEIyMYFcHKCFZFsDKCVREKGaFQEQoZQbJv9pxY7Dlxs-fE36SHZK_"
"2nFjuObHac2K558Rqz4nlnhOrPSeWe06s9pxY7jmx2nNiuefEas-J5Z4Tqz0nlntOrPacWO45sdpz4ubTq1h8ehU3n17Fz9JDslefXrW-"
"M3KaLUEuI-QqQi4j5CqCkRGMimBkBKMiWBnBqghWRrAqQiEjFCpCISNI9i-N94vwfGm8XqSHZP-i2L9I9i-K_Ytk_6LYv0j2L4r9i2T_oti_"
"SPYviv2LZP-i2L9I9i-K_Ytk_6LYv0j2L4r9ofE-CM9D43WQHpL9QbE_SPYHxf4g2R8U-4Nkf1DsD5L9QbE_SPYHxf4g2R8U-"
"4Nkf1DsD5L9QbE_"
"SPYHxb7FQObfyl3m3cpZ5tvKVeZp5GwZNVtGzpZRs2XkbBk1W0bOllGzZeRsGTVbRs6WUbNl5GwZNVtGzpZRs2XkbBk1W0bOllGz1bq-"
"vHbruvKaVrK3ir2V7K1ibyV7q9hbyd4q9layt4q9leytYm8le6vYW8neKvZWsreKvZXsrcs-aU6IRJwQSXNCJC_SQ7BP1AmRyBMiUSdEIk-"
"IRJ0QiTwhEnVCJPKESNQJkcgTIlEnRCJPiESdEIk8IRJ1QiTyhEjUCZHIEyJRJ0TSnBCJOCGS5oRIDtJDslcnRCJPiESdEIk8IRJ1QiTyhEjUC"
"ZHIEyJRJ0QiT4hEnRCJPCESdUIk8oRI1AmRyBMiUSdEIk-"
"IRJ0QafPUmaboGLVMdgj27aYSjJxmS5DLCLmKkMsIuYpgZASjIhgZwagIVkawKoKVEayKUMgIhYpQyAiSffPUmaboGLVMdkj26qlz6zsjp9kS5"
"DJCriLkMkKuIhgZwagIRkYwKoKVEayKYGUEqyIUMkKhIhQygmQ_bbzFR_J1a9Qy2SHZTxX7qWQ_Veynkv1UsZ9K9lPFfirZTxX7qWQ_"
"Veynkv1UsZ9K9lPFfirZTxX7qWQ_VewXjfdCeC4ar4X0kOwXiv1Csl8o9gvJfqHYLyT7hWK_kOwXiv1Csl8o9gvJfqHYLyT7hWK_"
"kOwXiv1Csl8o9ueN97nwPG-8zqWHZH-u2J9L9ueK_blkf67Yn0v254r9uWR_rtifS_bniv25ZH-u2J9L9ueK_"
"blkf67Yn0v254r9ReN9ITwvGq8L6SHZXyj2F5L9hWJ_IdlfKPYXkv2FYn8h2V8o9heS_YVifyHZXyj2F5L9hWJ_"
"IdlfKPYXkv2FYh803oHwDBqvQHpI9oFiH0j2gWIfSPaBYh9I9oFiH0j2gWIfSPaBYh9I9oFiH0j2gWIfSPaBYh9I9oFiHzbeofAMG69Qekj2oW"
"IfSvahYh9K9qFiH0r2oWIfSvahYh9K9qFiH0r2oWIfSvahYh9K9qFiH0r2oWIfNd6R8Iwar0h6SPaRYh9J9pFiH0n2kWIfSfaRYh9J9pFiH0n2"
"kWIfSfaRYh9J9pFiH0n2kWIfSfaRYr9qvFfCc9V4raSHZL9S7FeS_UqxX0n2K8V-JdmvFPuVZL9S7FeS_UqxX0n2K8V-JdmvFPuVZL9S7FeS_"
"Uqxv2y8L4XnZeN1KT0k-0vF_lKyv1TsLyX7S8X-UrK_VOwvJftLxf5Ssr9U7C8l-0vF_lKyv1TsLyX7S8X-UrK_VOyvGu8r4XnVeF1JD8n-"
"SrG_kuyvFPsryf5Ksb-S7K8U-yvJ_kqxv5LsrxT7K8n-SrG_kuyvFPsryf5Ksb-S7K8U-8-N92fh-bnx-iw8rhuPa-"
"Fx3Xhctz34X9DvWvZ9y35o2c7_EV_7NO17p_3gtJ3_8Lzxzx3_3PHPHX_j-BvH3zj-xvG3jr91_K3jbx3_wvEvHP_C8S9a_"
"puW76blt2n5bNp6h_fG4b1xeG8c3huH98bhvXF4bxzeG4f3xuG9cXhvHN4bh_fG4b1xeG8c3huH98bhvXF4byRv_reFu5Z937IfWrbz_"
"wrWPpJ3u_3gtJ3_JK_xzx3_3PHPHX_j-BvH3zj-xvG3jr91_K3jbx3_wvEvHP_C8X_jzT8Ys1i_a_2FmKpVmptDu-"
"PYOnqXv2EdpaVZ9Rxb1e5U9v19ffah1clm-aOMwR8ts_KZfUDrdgVzWQ3sO-yk-XZ52ly9b5n1Zvhrqb8o_6vSX3m5i5uqN7grmz56g2-"
"Vjf9uLHiqRiXsetut_-PO9-_-P_-VKLY");
"eJyVvWly20qztTuVL-L7d36dvpmdTcuSbXUm1YKSLDcwIQmSTImSqAZNxB3KewdwdsSdwN1YWAlkVpIQFHGwnE9VViaYVQBYoM5-_7Ex_j__"
"2Bj_7-P23_"
"8cVQfM7fPqqM2L6qjNtDpq87I6anNaHbU5qw6YB3l11GZRHTAPd6ujNveqA2b0qTpq83N11OaX6qjN9eqozY3qqM3N6qjNreqoTRy1-"
"bU6anNYHbU5qo7a3KmO2iyrA-"
"Z4pzpq80d11OZFddRmWh21mVdHbRbVAfNopTpq82N11OZWddTmbnXU5kV11OZtddTmrDpq8746avO5Omozrw6Yxx-roza_"
"VEdtrldHbZ5VB8yTjeqoza3qqM2d6qjN3eqozb3qqM2D6oD5ba86anO_OmrzoDpqc1odtVlWB8zLo-qozePqgHn1tTpqc686KvOv03crkBo-"
"1FLD6haEMIQQRhDCDoSwCyHsQQj7EMIBhHAIIUQQwhhSw6f3EMIYQvgDIdxCCDMI4Q5CuIcQHiCERwjhCUJ4htTw-"
"SuEMITUsPEOQngPIQwghA8QwgqE8BFCWIUQ1iCETxDCZwjhC4SwDiFsQAibEMIWhFAL4SuEMIQQRhDCDoSwCyHsQQj7EMIBhHAIIUQQwhhCOII"
"QjiGEEwjhG4RwCiF8hxCuIIRrCOEPhDCFEG4ghFsIYQYh3EEI9xDCHEJ4hBCeIIRnCOEFQsgghBxCKCCEElLD5jsI4T2EMIAQPkAIKxDCRwhhF"
"UJYgxA-"
"QQifIYQvEMI6hLABIWxCCFsQQi2ErxDCEEIYQQg7EMIuhLAHIexDCAcQwiGEEEEIYwjhCEI4hhBOIIRvEMIphPAdQvgBIfyEEH5BCDGE8BtCmE"
"AICYRwBiGcQwgXEEIKIVxCCFcQwjWE8AdCmEIINxDCLYQwgxDuIIR7COEBQphDCI8QwhOE8AwhvEAIGYRQQAglpIatdxDCewhhACF8gBBWIISP"
"EMIqhLAGIXyCED5DCF8ghHUIYQNC2IQQtiCEWghfIYQhhDCCEHYghO8Qwg8I4SeE8AtCiCGE3xDCBEJIIIQzCOEcQriAEFII4RJCuIIQriGEPx"
"DCFEK4gRBuIYQZhHAHIdxDCA8QwhxCeIQQniCEZwjhBULIIIQcQigghBJSw_"
"Y7COE9hDCAED5ACCsQwkcIYRVCWIMQPkEInyGELxBCLYSvEMIQQhhBCDsQwncI4QeE8BNC-"
"AUhxBDCbwhhAiEkEMIZhHAOIVxACCmEcAkhXEEI1xDCHwhhCiHcQQiPEMIThPAMIbxACBmEkEMIBYRQQmr4-"
"g5CeA8hDCCEDxDCCoTwEUJYhRDWIIRPEMJnCOELhLAOIWxACJsQwhaEUAvhK4QwhBBGEMIOhLALIexBCPsQwgGEcAghRBDCGEI4ghCOIYQTCOE"
"bhHAKIXyHEH5ACD8hhF8QQgwh_IYQJhBCAiGcQQjnEMIFhJBCCJcQwhWEcA0h_"
"IEQphDCDYRwCyHMIIQ7COEeQniAEOYQwiOE8AQhPEMILxBCBiHkEEIBqWH4DkIYQAgfIIQVCOEjhLAKIaxBCJ8ghM8QwhcIYR1C2IAQNiGELQi"
"hFsJXCGEIIYwghB0IYRdC2IMQ9iGEAwjhEEKIIIQxhHAEIRxDCCcQwjcI4RRC-A4h_"
"IAQfkIIvyCEGEL4DSFMIIQEQjiDEM4hhAsIIYUQLiGEKwjhGkL4AyFMIYQbCOEWQphBCHcQwj2E8AAhzCGERwjhCUJ4hhBeIIQMQsghhAJCKCE"
"1jN5BCO8hhAGE8AFCWIEQPkIIqxDCGoTwCUL4DCF8gRDWIYQNCGETQtiCEGohfIUQhhDCCELYgRB2IYQ9CGEfQjiAEA4hhAhCGEMIRxDCMYRwA"
"iF8gxBOIYTvEMIPCOEnhPALQoghhN8QwgRCSCCEMwjhHEK4gBBSCOESQriCEK4hhD8QwhRCuIEQbiGEGYRwByHcQwgPEMIcQniEEJ4ghGcI4QV"
"CyCCEHEIoIIQSUsPOOwjhPYQwgBA-"
"QAgrEMJHCGEVQliDED5BCJ8hhC8QwjqEsAEhbEIIWxBCLYSvEMIQQhhBCDsQwi6EsAch7EMIBxDCIYQQQQhjCOEIQjiGEE4ghG8QwimE8B1C-"
"AEh_"
"IQQfkEIMYTwG0KYQAgJhHAGIZxDCBcQQgohXEIIVxDCNYTwB0KYQgg3EMIthDCDEO4ghHsI4QFCmEMIjxDCE4TwDCG8QAgZhFBCath9ByG8hxA"
"GEMIHCGEFQvgIIaxCCGsQwicI4TOE8AVCWIcQNiCETQhhC0KohfAVQhhCCCMIYQdC2IUQ9iCEfQjhAEI4hBAiCGEMIRxBCMcQwgmE8A1COIUQv"
"kMIPyCEnxDCLwghhhB-QwgTCCGBEM4ghHMI4QJCSCGESwjhCkK4hhD-"
"QAhTCOEGQriFEGYQwh2EcA8hPEAIcwjhEUJ4ghCeIYQXCCGDEHJIDXvrEMIGhLAJIWxBCF8hhCGEMIIQdiCEXQhhD0LYhxAOIIRDCCGCEMYQwh"
"GEcAwhnEAI3yCEUwjhO4TwA0L4CSH8ghBiCOE3hDCBEBII4RlSw_"
"4ehLAPIcSQGg5eIIQMQsghhAJCKCE1HL6DEN5DCAMI4QOEsAIhfIQQViGENQjhE4TwGUL4AiGsQwgbEMImhLAFIdRC-"
"AohDCGEEYSwAyHsQgh7EMI-"
"hHAAIRxCCBGEMIYQjiCEYwjhBEL4BiGcQgjfIYQfEMJPCOEXhBBDCL8hhAmEkEAIZxDCOYRwASGkEMIlhHAFIVxDCH8ghCmEcAMh3EIIMwjhDk"
"K4hxAeIIQ5hPAIITxBCM8QwguEkEEIOYRQQAglpIboHYTwHkIYQAgfIIQVCOEjhLAKIaxBCJ8ghM8QwhcIYR1C2IAQNiGELQihlhrG7yCE9xDC"
"AEL4ACGsQAgfIYRVCGENQvgEIXyGEL5ACOsQwgaEsAkhbEEItRC-"
"QghDCGEEIexACLsQwh6EsA8hHEAIhxBCBCGMIYQjCOEYQjiBEL5BCKcQwncI4QeE8BNC-"
"AUhxBDCbwhhAiEkEMIZhHAOIVxACCmEcAkhXEEI1xDCHwhhCiHcQAi3EMIMQriDEO4hhAcIYQ4hPEIITxDCM4TwAiFkEEIOIRQQQgmp4egdhPA"
"eQhhACB8ghBUI4SOEsAEhfIUQhhDCCELYgxD2IYQDCOEYQjiBEL5BCKcQQgohXEIIdxDCPYTwACHMIYRHCOEJQniGEF4ghAxSw-"
"l3COEHhPATQvgFIcQQwm8IYQIhJBDCGYRwDiFcQAgphDCF1BBvQAibEMIWhFAL4SuEMIQQRhDCDoSwCyHsQQj7EMIBhHAIIUQQwhhCOIIQjiGE"
"EwjhG4RwCiF8hxB-QAg_"
"IYRfEEIMIfyGECYQQgIhnEEI5xDCBYSQQgiXEMIVhHANIfyBEKYQwg2EcAshzCCEOwjhHkJ4gBDmEMIjhPAEITxDCBmEkEMIBYRQQmr4_"
"Q5CeA8hDCCEDxDCCoTwEUJYgxA-"
"QQifIYQvEMI6hLABIWxCCFsQQi2ErxDCEEIYQQg7EMIuhLAHIexDCAcQwiGEEEEIYwjhCEI4hhBOIIRvEMIphPAdQvgBIfyEEH5BCDGE8BtCmE"
"AICYRwBiGcQwgXEEIKIVxCCFcQwjWE8AdCmEIINxDCLYQwgxDuIIR7COEBQphDCI8QwhOE8AwhvEAIGYSQQwgFhFBCapi8gxDeQwgDCOEDhLAC"
"IXyEEFYhhDUI4ROE8BlC-AIhrEMIGxDCJoSwBSHUQvgKIQwhhBGEsAMh7EIIexDCPoRwACEcQggRhDCGEI4ghGMI4QRC-"
"AYhnEII3yGEHxDCTwjhF4QQQwi_IYQJhJBACGcQwjmEcAEhpBDCJYRwBSFcQwh_"
"IIQphHADIdxCCDMI4Q5CuIcQHiCEOYTwCCE8QQjPEMILhJBBCDmEUEAIJaSG5B2E8B5CGEAIHyCEFQjhI4SwCiGsQQifIITPEMIXCGEdQtiAED"
"YhhC0IoRbCVwhhCCGMIIQdCGEXQtiDEPYhhAMI4RBCiCCEMYRwBCEcQwgnEMI3COEUQvgOIfyAEH5CCL8ghBhC-"
"A0hTCCEBEI4gxDOIYQLCCGFEC4hhCsI4RpC-"
"AMhTCGEGwjhFkKYQQh3EMI9hPAAIcwhhEcI4QlCeIYQXiCEDELIIYQCQighNZxPIYQbCOEWQphBCHcQwj2E8AAhzCGERwjhCUJ4hhBeIIQMUsP"
"FOwjhPYQwgBA-"
"QAgrEMJHCGEVQliDED5BCF8hhCGEMIIQdiCEXQhhD0LYhxAOIIRDCCGCEMYQwhGEcAwhnEAI3yCEUwjhO4TwA0L4CSH8ghBiCOE3hDCBEBII4Q"
"xCOIcQLiCEFEK4hBCuIIRrCOEPhDCFEG4ghFsIYQYh3EEI9xDCA4QwhxAeIYQnCOEZQniBEDIIIYcQSkgN6TsI4T2EMIAQPkAIKxDCRwhhC0Ko"
"hfAVQhhCCCMIYQdC2IUQ9iCEfQjhAEI4hBAiCGEMIRxBCN8hhB8Qwk8I4ReEEEMIvyGECYSQQAhnEMIUQriBEG4hhBmEcAch3EMIDxDCHEJ4hF"
"Tw_5z__X8wrv_-v8r4x7usOmC-_1wdMFd-VkdtPlUHzNXd6qjNveqozf3qqM2D6qjNw-"
"qozag6avO8OmrzojpgbpxVB8xtHLV5VR21eV0dtfmnOmrzpjpq87Y6avOxOmrzqTpq87k6YO4MqgPm_kV11GZaHbX5UB0wD95VR22-"
"VEdtZtUB8_BdddTm--qozUF11OaH6qjNleqoza3qqM1hddTmYXXU5kl11Ob36qjNn9VRm7-qozYn1VGbF9VRm9fVUZt_qqM2H6ujNp-"
"qozafqwNm9K46anNQHbV5Wh21-b06avNXddTm7-qozUl11OZZddTmS3XUZlEdMMej6qjN3eqozb3qqM396qjNg-"
"qozag6avOoOmrzuDpq83t11GZSHbU5rY7avKkOmEefqqM2cdTmsDpqc6c6avO8OmpzWh21eVMdtXlXHbU5r47afKyO2nyqDpjHg-qozU_"
"VUZufq6M2N6qjNjerozZx1OaoOmpztzpqc786avOkOmrzR3XU5qw6avOuOmCerFRHba5VR23-"
"qo7ajKsD5rcf1QEzvquO2ryvDpiXH6ujNlerozbXqqMy_9930-qozbw6YH45qI7ajKqjvoV9nEIINxBCASGUkBo-DSCEOaSGjR8QQgwh_"
"IYQJhBCAiGcQQjnEMIFhJBCCJcQwgOkhs0cUsPWPoRwACFEEMIYQjiCEL5BCKeQGrbXIYQNCGETQtiCEHYhhD0IYR9COIAQDiGECEIYQwhHEMI"
"xhHACIXyDEE4hhBmEcA8hzCE1fC0hNQzfQ2rYySE17H2GEL5ACH8ghCmEMIMQ7iCEewjhAUKYQwiPEMITpIb9NQjhC4SwDiFsQAibEMJXCOE3h"
"HAGIdxACLcQQgap4WAAIXyAEFYghCGEMIIQdiCEYwjhBEL4BiH8gBB-QQhnEMIfCGEGITxDajhahxA2IYQtCKEWwncI4QeE8BNC-"
"AUhxBDCbwjhHEKYQggzSAX_9x8ffv2f__u3pf6t2v-p4n9i-z-17f9c8T-z_Z_b9n-p-F_Y_i9t-79W_K9s_9e2_d8q_je2_1vb_u8V_zvb_"
"71t_4-K_4Pt_9G2_2fF_8n2_2zb_6vi_2L7f7Xt_13xf7P9v9v2_6n4f9j-P237X6drk7-"
"Ps8ZQjeeNoRovGkM1po2hGi8bQzVeN4ZqvGkM1XjbGKrxrjFU40NjqMZ5Y6jGx8ZQjU-"
"NoRqfG0M1Zo2hGvPGUI1lY7AxqbgxVGPSGKrxvDFU40VjqMa0MVTjZWOoxqvGUI3XjaEa_"
"zSGarxpDNV42xiqcdYYqvGuMVTjQ2OoxnljqMbHxlCNT42hGl8aQzVmjaEai8ZQjWVjsPFMJu5MTVxlnzWGajxvDNWYNoZqvGwM1XjVGKrxujF"
"U47QxVONNY6jG28ZQjbPGUI13jaEa7xtDNc4bQzU-"
"N4ZqfGkM1Zg1hmrMG0M1Fo2hGsvGYOP5X7w6YKjGy8ZQjX8aQzVOG0M13jaGarxrDNVYNgYbL2TZXKhlcyHL5kItmws5-"
"Qt18hdy8hfq5C9khVyoFXIh03GhpqOyHxtDNT41hmp8bgw2prLqUrXqUildqkqXSulSVbpUSpeq0qVSulSVLpWTT9XJX0rpLlXpKjtpDNV43hi"
"q8aIxVGPaGKrxsjFU41VjqMbrxlCNN42hGm8bQzXOGkM13jeGanxoDNU4bwzV-NgYqvGpMVTjc2OoxqwxVGPRGGy8kim-UlN8JR_zSn3MK_"
"mYV-pjXsnJX6mTv5LzvFLneSXneaXO8_ovXjIwVON5Y6jGi8ZQjTeNoRpvG0M1zhpDNd41hmp8aAzVOG8M1fjYGKrxqTHY-EdO_o86-T9ynn_"
"Uef6RU_qjTumPrKU_ai1NJeZUxazsy8ZQjVeNoRqvG0M13jaGapw1hmq8bwzVOG8M1Zg1hmosGkM1lo3Bxpu_"
"eLuAoRqTxlCNZ42hGq8bQzVOG0M1zhtDNT42hmp8agzV-NwYqvGlMVRj0RhsvJWPeas-"
"5q18olv1iSr7vDFU40VjqMa0MVTjZWOoxqvGUI3TxlCNN42hGm8bQzXOGkM13jWGarxvDNX40Biqcd4YqvGxMVTjU2OoxufGUI0vjaEas8ZQjX"
"ljqMaiMVRj2RhsnMkUz9QUz2SKZ2qKZzKbMzWbM5nNmZrNmczmTM1mZV83hmq8aQzVeNcYqvG-"
"MVTjvDFU43NjqMayMdh4JyvkTq2QeynIvSrIvXz2e_XZ7-Wz36vPfi-f_V599sq-"
"agzVOG0M1XjTGKrxtjFU46wxVOO8MVTjY2OoxqfGUI1ZY6jGojHY-"
"CBVelBVmkuV5qpKc5nNuZrNuZzSXJ3SXCZuriZuLqc0V6f0KNkfVfbKThpDNZ41hmo8bwzVeNEYqvGyMVTjVWOoxuvGUI1_"
"GkM1ThtDNd40hmq8bQzVOGsM1XjXGKpx3hiq8bExVONTY6jGl8ZQjXljqMaiMVRj2RhsfJKJe1IT9yRz9KTm6Enm6EnNUWWnjaEaLxtDNV41hm"
"r80xiqcdoYqvGmMVTjbWOoxlljqMa7xlCN88ZQjU-NoRpfGkM1Zo2hGsvGYOOzFPlZFflZqvSsqvQsn-hZfaJn-"
"UTP6hM9y7J5VsvmWeb9Wc37s5zSszqlFzmlF3VKLzLvL2reK_"
"uiMVTjZWOoxuvGUI2zxlCNz43BxkzWUqbWUiYfM1MfM5cVkqsVUsh5Fuo8C5nNQs1mKZ-9VJ-9lMqXqvKlTHHZTvH23f_3_X3y9_Hz7-"
"P338c1uezsXDB49vfx6-_jbtFg07lg8Pzv45J-brDprAb_4_AE_2E3_ts2ZfJv25TLv21TIf-2TaX8i6ajpzp8_W_blMm_bVMu_"
"7ZNhfzbNpXyL5qOv9Th63_bpkz-bZty-bdtKuTftqmUf-umdYZfb8OvM_x6G36d4dfb8OsMv96GX2f49Tb8BsNvtOE3GH6jDb_B8Btt-"
"A2G32jDbzD8Rht-k-E32_CbDL_Zht9k-M02_CbDb7bhNxl-s_3P-W195H8TsDZUY9YYqjFvDNVYNIZqLBuD63sg__"
"HBgfoPEA7kP0I4UP8hwgET1YZqLBpDNZaNwcYPkuiDSvRBEn1QiT5Iog8q0QdJ9EEl-"
"iCJPqhEK5JoRSVakUQrKtGKJFpRiVYk0YpKtCKJVlSiNUm0phKtSaI1lWhNEq2pRGuSaE0lWpNEayrRF0n0RSX6Iom-"
"qERfJNEXleiLJPqiEn2RRF9UonVJtK4SrUuidZVoXRKtq0TrkmhdJVqXROsq0YYk2lCJNiTRhkq0IYk2VKINSbShEm1Ioo020VCW91At76Es76"
"Fa3kNZ3kO1vIeyvIdqeQ9leQ_V8h7K8h6q5T2U5T1Uy3soy3uolvdQlvdQLe-hLO-hWt7DVUm0qhKtSqJVlWhVEq2qRKuSaFUlWpVEqyqRLO-"
"hWt5DWd5DtbyHsryHankPZXkP1fIeyvIequU9_CSJPqlEnyTRJ5XokyT6pBJ9kkSfVKJPkuiTSvRZEn1WiT5Los8q0WdJ9Fkl-"
"iyJPqtEnyXRZ5VILtihumCHcsEO1QU7lAt2qC7YoVywQ3XBDuWCHaoLdigX7FBdsEO5YIfqgh3KBTtUF-"
"xQLtihumCHcsEO1QU7lAt2qC7YoVywQ3XBDuWCHaoLdigX7FBdsEO5YIf6gt2URJsq0aYk2lSJNiXRpkq0KYk2VaJNSaSesMMtSbSlEm1Joi2V"
"aEsSbalEW5JoSyXakkRbKtG2JNpWibYl0bZKtC2JtlWibUm0rRJtS6JtleirJPqqEn2VRF9Voq-"
"S6KtK9FUSfVWJvkqiryrRRBJNVKKJJJqoRBNJNFGJJpJoohJNJNFEJUokUaISJZIoUYkSSZSoRIkkSlSiRBIlKtGZJDpTic4k0ZlKdCaJzlSiM"
"0l0phKdSaIzlehcEp2rROeS6FwlOpdE5yrRuSQ6V4nOJdG5SpRKolQlSiVRqhKlkihViVJJlKpEqSRKVaJLSXSpEl1KokuV6FISXapEl5LoUiW"
"6lESXKtGVJLpSia4k0ZVKdCWJrlSiK0l0pRJdSaIrlehaEl2rRNeS6FolupZE1yrRtSS6VomuJdG1SjSVRFOVaCqJpirRVBJNVaKpJJqqRFNJN"
"FWJbiTRjUp0I4luVKIbSXSjEt1IohuV6EYS3ahEt5LoViW6lUS3KtGtJLpViW4l0a1KdCuJblWimSSaqUQzSTRTiWaSaKYSzSTRTCWaSaKZSnQ"
"nie5UojtJdKcS3UmiO5XoThLdqUR3kuhOJbqXRPcq0b0kuleJ7iXRvUp0L4nuVaJ7SXSvEj1IogeV6EESPahED5LoQSV6kEQPKtGDJHpQieaSa"
"K4SzSXRXCWaS6K5SjSXRHOVaC6J5irRoyR6VIkeJdGjSvQoiR5VokdJ9KgSPUqiR5Uok0SZSpRJokwlyiRRphJlkihTiTJJlLWJRu-"
"ZqDZUY9YYqjFvDNVYNIZqLBuDjbI_Gqn90Uj2RyO1PxrJ_mik9kcj2R-N1P5oJPujkdofjWR_NFL7o5Hsj0ZqfzSS_"
"dFI7Y9Gsj8aqf3RSPZHI7U_"
"Gsmbk5F6czKSNycj9eZkJG9ORurNyUjenIzUm5ORvDkZqTcnI9mIjdRGbCQbsZHaiI1kIzZSG7GRbMRGaiM2ko3YSG3ERrIRG6mN2Eg2YiO1ER"
"vJRmykNmIj2YiN1EZsJBuxkdqIjeSb6kh9Ux3JN9WR-qY6km-qI_VNdSTfVEfqm-"
"pIvqmO1DfV0VASDVWioSQaqkRDSTRUiYaSaKgSDSXRUCW6kEQXKtGFJLpQiS4k0YVKdCGJLlSiC0l00Sbak8fEnnpM7MljYk89JvbkMbGnHhN7"
"8pjYU4-JPXlM7KnHxJ48JvbUY2JPHhN76jGxJ4-"
"JPfWY2JPHxJ56TOzJY2JPPSb2niXRs0r0LImeVaJnSfSsEj1LomeV6FkSPbeJ9r8yUW2oxqwxVGPeGKqxaAzVWDYGG_"
"ck0Z5KtCeJ9lSiPUm0pxLtSaI9lWhPEu2pRPuSaF8l2pdE-yrRviTaV4n2JdG-"
"SrQvifbbRJHc6yJ1r4vkXhepe10k97pI3esiuddF6l4Xyb0uUve6SO51kbrXRXKvi9S9LpJ7XaTudZHc6yJ1r4vkXhepe10k97pI3esiuddF6l"
"4Xyb0uUve6SO51kbrXRXKvi9S9LpI3J5F6cxLJm5NIvTmJ5M1JpN6cRPLmJFJvTiJ5cxKpNyeRvDmJ1JuTSN6cROrNSSRvTiL15iSSNyeRenMS"
"yZuTSL05ieTNSaTenETy5iRSb04ieXMSqTcnkbw5idSbk0jenETqzUkkb04i9eYkkjcnkXpzEsmbk0i9OYnkzUmk3pxE8uYkUm9OInkeRep5FM"
"nzKFLPo0ieR5F6HkXyPIrU8yiS51GknkfjX0xUG6oxawzVmDeGaiwaQzWWjcFGeUyM1WNiLI-"
"JsXpMjOUxMVaPibE8JsbqMTGWx8RYPSbG8pgYq8fEWB4TY_"
"WYGMtjYqweE2N5TIzVY2Isj4mxekyMZTcxVruJsewmxmo3MZbdxFjtJsaymxir3cRYdhNjtZs4esdEtaEas8ZQjXljqMaiMVRj2RhslAv2SF2w"
"R3LBHqkL9kgu2CN1wR7JBXukLtgjuWCP1AUbS6JYJYolUawSxZIoVoliSRSrRLEkinUiuY5idR3Fch3F6jqK5TqK1XUUy3UUq-"
"solusoVtdRfCiJDlWiQ0l0qBIdSqJDlehQEh2qRIeS6FAliiRRpBJFkihSiSJJFKlEkSSKVKJIEkUq0VgSjVWisSQaq0RjSTRWicaSaKwSjSXR"
"WCU6kkRHKtGRJDpSiY4k0ZFKdCSJjlSiI0l0pBIdS6JjlehYEh2rRMeS6FglOpZExyrRsSQ6VolOJNGJSnQiiU5UohNJdKISnUiiE5XoRBKdqE"
"TfJNE3leibJPqmEn2TRN9Uom-S6JtK9E0SfVOJTiXRqUp0KolOVaJTSXSqEp1KolOV6FQSnapE8oI9Vi_YY3nBHqsX7LG8YI_VC_"
"ZYXrDH6gV7LC_YY_WCPZ5KoqlKNJVEU5VoKommKtFUEk1VoqkkmqpE8gYyVm8gY3kDGas3kLG8gYzVG8hY3kDG6g1kLG8gY_"
"UGMpY3kLF6AxnLG8hYvYGM5Q1krN5AxvIGMlZvIGN5AxmrN5CxvIGM1RvIWN5AxuoNZCxvIGP1BjKWN5CxegMZyxvIWL2BjOU7Q6y-"
"M8TynSFW3xli-c4Qq-8MsXxniNV3hli-"
"M8TqO0Ms3xli9Z0hlu8MsfrOEMt3hlh9Z4jlO0OsvjPE8p0hVt8ZYvnOEKvvDLF8Z4jVd4ZYvjPE6jtDLN8ZYvWdIZbvDLH6zhDLG8hYvYGM5Q"
"1krN5AxvIGMlZvIGN5AxmrN5CxvIGM1RvIWN5AxuoNZCxvIGP1BjKWN5CxegMZyxvIWL2BjOUNZKzeQMZPkuhJJXqSRE8q0ZMkelKJniTRk0r0"
"JImeVKJcEuUqUS6JcpUol0S5SpRLolwlyiVRrhIVkqhQiQpJVKhEhSQqVKJCEhUqUSGJijbRb1kMv9Vi-C2L4bdaDL9lMfxWi-"
"G3LIbfajH8lsXwWy2GiVxHE3UdTeQ6mqjraCLX0URdRxO5jibqOprIdTRR19FErqOJuo4mch1N1HU0ketooq6jiVxHE3UdTeQ6mqjraCLLe6KW"
"90SW90Qt74ks74la3hNZ3hO1vCeyvCdqeU9keU_U8p7I8p6o5T2R5T1Ry3siy3uilvdElvdELe_"
"JiyR6UYleJNGLSvQiiV5UohdJ9KISvUiilzZRIrvyRO3KE9mVJ2pXnsiuPFG78kR25YnalSeyK0_"
"UrjyRXXmiduWJ7MoTtStPZFeeqF15IrvyRO3KE9mVJ2pXnshuIlG7iUR2E4naTSSym0jUbiKR3USidhOJ7CYStZtI5C1xot4SJ_"
"KWOFFviRN5S5yot8SJvCVO1FviRN4SJ-"
"otcTKSRCOVaCSJRirRSBKNVKKRJBqpRCNJNFKJdiTRjkq0I4l2VKIdSbSjEu1Ioh2VaEcS7ahEu5JoVyXalUS7KtGuJNpViXYl0a5KtCuJdlUi"
"eaeaqHeqibxTTdQ71UTeqSbqnWoi71QT9U41kXeqiXqnmsg71US9U03knWqi3qkm8k41Ue9UE3mnmqh3qom8U03UO9XkQBIdqEQHkuhAJTqQRA"
"cq0YEkOlCJDiTRgUokm-VEbZYT2SwnarOcyGY5UZvlRDbLidosJ7JZTtRmOZHNcqI2y4lslhO1WU5ks5yozXIim-"
"VEbZYT2SwnarOcyGY5UZvlRDbLidosJ7JZTtRmOZHNcqI2y4lslhO1WU5ks5yozXIim-"
"VEbZYT2SwnarOcyGY5UZvlRDbLidosJ7JZTtRmOZHNcqI2y4lslhO1WU5ks5yozXIim-"
"VEbZYT2SwnarOcyGY5UZvlRDbLidosJ7JZTtRmOZHNcqI2y6n8Dpuq32FT-R02Vb_DpvI7bKp-h03ld9hU_Q6byu-wqfodNpU_"
"w07Vn2Gn8mfYqfoz7FT-DDtVf4adyp9hp-rPsFP5M-xU_Rl2Kj-CpOpHkFR-BEnVjyCp_AiSqh9BUvkRJFU_"
"gqTyI0iqfgRJp5JoqhJNJdFUJZpKoqlKNJVEU5VoKommKpFsllO1WU5ls5yqzXIqm-"
"VUbZZT2SynarOcymY5VZvlVDbLqdosp7JZTtVmOZXNcqo2y6lsllO1WU5ls5yqzXIqm-"
"VUbZZT2SynarOcymY5VZvlVDbLqdosp7JZTtVmOZXNcqo2y6lsllO1WU5ls5yqzXIqm-VUbZZT2SynarOcypf8VH3JT-VLfqq-5KfyJT9VX_"
"JT-ZKfqi_5qXzJT9WX_FS-5KfqS34qX_JT9SU_lS_5qfqSn8qX_FR9yU_lS36qvuSnsj9K1f4olf1RqvZHqeyPUrU_SmV_"
"lKr9USr7o1Ttj1LZTaRqN5HKbiJVu4lUdhOp2k2ksptI1W4ild1Eqv9c5-wf7zb_cRL_rX_J_-R73fJ3f1fjguGj9eUDevWpmH_"
"xf5le7KBrgcdCx0TbQZePkSyOsSDUwogLznvx6S__FJ0fZsFnWvzRln_Czg-6_PN2fuxzn-Z8YfzzpR_7vOtjn_vzOe86kQUf-7zrY58v_"
"djniz92dUWaq4bXqu5pL5RXO7vCZl0juzu7wuZdI7s7u8IWXSO7O7vCll0juzuXhG3uOB2T82afHrmWzdibfXrkWjaNb_"
"bpkWvZ3L7Zp0euZRP-Zp8g11-"
"n8cmSWQi6OgfmHV2dA4uOrs6BZUeXGpgtvWVlXbeshZ1dYbOukd2dXWHzrpHdnV1hi66R3Z1dYcuukd2dS8IuvB0FAd7s0yPXshl7s0-"
"PXMum8c0-PXItm9s3-_TItWzC3-wT5LIX-0tHV-"
"fAvKOrc2DR0dU5sOzoUgPzpbesvOuWtbCzK2zWNbK7syts3jWyu7MrbNE1sruzK2zZNbK7c0nYhbejIMCbfXrkWjZjb_"
"bpkWvZNL7Zp0euZXP7Zp8euZZN-"
"Jt9glxLblkLujoHZh1dnQOLjq7OgWVHlxpYLL1lFV23rIWdXWGzrpHdnV1h866R3Z1dYYuukd2dXWHLrpHdnUvCLrwdBQHe7NMj17IZe7NPj1z"
"LpvHNPj1yLZvbN_v0yLVswt_sE-Racsta0NU5MOvo6hyYd3R1Diw7utTAcuktq-"
"y6ZS3s7AqbdY3s7uwKm3eN7O7sClt0jezu7Apbdo3s7lwSduHtKAjwZp8euZbN2Jt9euRaNo1v9umRa9ncvtmnR65lE_"
"5mnyDXklvWgq7OgVlHV-fAvKOrc2DR0cWB5-aSUi3t1bKwcdHw80WeixsXDDe_aQUDevV1xFx0Er36VMy_-CNI8GvMgp9hFv_-"
"on94CX5xWfBTy-LfWBb8uLL4VxW2Ljjvxae__FN0fpgFn2nxR1v-CTs_6PLPu-Rj_7XsxyTV4x_"
"ASzu7wmZdI7s7u8LmXSO7O7vCFl0juzu7wpZdI7s7l4U975qV1zu7wi6dldc7u8IunZXXO7vCLp2V1zu7wi6dldc7l4R134cWBHizT49cy2bsz"
"T49ci2bxjf79Mi1bG7f7NMj17IJf7PPK7m6Ltw3-_TI9dq89_bpkeu1ee_t0yPXa_Pe26dHrtfmvbdPkGvB1-IlXZ0D846uzoFFR1fnwLKja-"
"lAt9KCrs6BSz7jotVie5d8xkVTb3uXfMZwHhf__q16Fn_L6vr9e2HYrGtkd2dX2LxrZHdnV9iia2R3Z1fYsmtkd-eysOdds_"
"J6Z1fYpbPyemdX2KWz8npnV9ils_J6Z1fYpbPyeueSsAu_Qb32Jwuv-fTItWzG3uzTI9eyaXyzT49cy-b2zT49ci2b8Df7vJKr68J9s0-PXK_"
"Ne2-fHrlem_fePj1yvTbvvX165Hpt3nv7BLkWvLVc0tU5MO_"
"o6hxYdHR1Diw7upYOdKs66OocuOQzLlotS75lLejqHLjkM4bzuPhPdlTP4m9ZXX-"
"yszBs1jWyu7MrbN41sruzK2zRNbK7syts2TWyu3NZ2POuWXm9syvs0ll5vbMr7NJZeb2zK-"
"zSWXm9syvs0ll5vXNJ2IXfoF77K6vXfHrkWjZjb_bpkWvZNL7Zp0euZXP7Zp8euZZN-Jt9XsnVdeG-"
"2adHrtfmvbdPj1yvzXtvnx65Xpv33j49cr027719glxLvmUt_wu8xb1ZR1fnwKKjq3Ng2dG1dKBb1cu_"
"ZfneJZ9x0cpc8i1rQVfnwCWfMZzHxX9lqHoWf8vq-"
"ivDhWGzrpHdnV1h866R3Z1dYYuukd2dXWHLrpHdncvCnnfNyuudXWGXzsrrnV1hl87K651dYZfOyuudXWGXzsrrnUvCLvwG9dofhr7m0yPXshl"
"7s0-PXMum8c0-PXItm9s3-_TItWzC3-zzSq6uC_fNPj1yvTbvvX165Hpt3nv79Mj12rz39umR67V57-"
"0T5FryLWv5Hw0v7s06ujoH5h1dnQPLjq6lA92qXv4ty_cu-YyLVuaSl2ALujoHLvmM4TyW-"
"rFiprEMnhyvd3aFzbpGdnd2hc27RnZ3doUtukZ2d3aFLbtGdncuC3veNSuvd3aFXTorr3d2hV06K693doVdOiuvd3aFXTorr3cuCbvwG1QQ4M0"
"-PXItm7E3-_TItWwa3-zTI9eyuX2zT49cyyb8zT6v5Oq6cN_s0yPXa_Pe26dHrtfmvbdPj1yvzXtvnx65Xpv33j5BriXfshZ0dQ7MOro6B-"
"YdXZ0Di46upQPdql7-Lcv3LvmMi1bmkm9ZC7o6By75jGrNJEPdkwwXNInjXwv_6M_-l25fFi6c_j49cuU94vTy6ZGr6BGnl0-"
"PXGWPOL18luTqnIQenV1hl9W7R2dX2GWl7dHZFXZZFXt0BmH_Ot1aCdm5NBcS7x3LujoHZh1dnQPzjq7OgUVHV-fAsqNLDVzwpy22RIv_bKW_"
"T49ceY84vXx65Cp6xOnl0yNX2SNOL58luTonoUdnV9hl9e7R2RV2WWl7dHaFXVbFHp1BWH0vEXYuC-"
"8lC7o6B2YdXZ0D846uzoFFR1fnwLKjSw1c8AOuLdHiH2f7-_"
"TIlfWI08unR66iR5xePj1ylT3i9PJZkqtzEnp0doVdVu8enV1hl5W2R2dX2GVV7NEZhNX3EmHnsvBesqCrc2DW0dU5MO_"
"o6hxYdHR1Diw7utTABT9T2BIt_gmiv0-PXFmPOL18euTKe8Tp5dMjV9kjTi-"
"fJbk6J6FHZ1fYZfXu0dkVdllpe3R2hV1WxR6dQVh9LxF2LgvvJQu6OgdmHV2dA_OOrs6BRUdX58Cyo0sNXPAyzpZo8Yu2_"
"j49cmU94vTy6ZEr7xGnl0-"
"PXEWPOL18luTqnIQenV1hl9W7R2dX2GWl7dHZFXZZFXt0BmH1vUTYuSy8lyzo6hyYdXR1Dsw7ujoHFh1dnQPLjq56YP0_sILm9n_"
"2JGxb7JovalvsWixqW-xaLmpTrlnb_LKobbFrvqhtsWuxqG2xa7moTbnmC841X3yu-"
"YIpyBdPQb7gXPPF55ovONd88bkWC861WHyuxYJzLRafa7FgCorFU1AsONdi8bmWC861XHyu5YJzLRefa7ngXMvF51oumILSTUH9v4Qy3lOm6dh"
"Xpu44_"
"qRM1fHX6UahbdO1OdO27cq0bbq2drRtu2Jt264zbZuu7VTbtutK26Zr9KJt25Vp23TtJtq2XZfaNl3jd9q2XSNtm67JH23brkzbtivXtnTx5iY"
"ro0XnsB9g6MCV0mLg0KwYxc6FK0exd8lCdi5cSYq9SxyydzkL2blwhSn2LlchO5fRS8jeJQvZuXAFKvYulyE7F65Ixd5lFLJz4QpV7F2ykL1LH"
"rJyyeyqzdyqzeyqzdyqzeyqzdyqzYJVK-"
"xc2lUr7F2ykJ1Lu2qFvUscsnc5C9m5tKtW2Ltchexc2lUr7F2ykJ1Lu2qFvctlyM6lXbXC3mUUsnNpV62wd8lC9i55yMolt6s2d6s2t6s2d6s2"
"t6s2d6s2D1atsHNpV62wd8lCdi7tqhX2LnHI3uUsZOfSrlph73IVsnNpV62wd8lCdi7tqhX2LpchO5d21Qp7l1HIzqVdtcLeJQvZu-"
"QhK5fCrtrCrdrCrtrCrdrCrtrCrdoiWLXCzqVdtcLeJQvZubSrVti7xCF7l7OQnUu7aoW9y1XIzqVdtcLeJQvZubSrVti7XIbsXNpVK-"
"xdRiE7l3bVCnuXLGTvkoesXEq7aku3aku7aku3aku7aku3astg1Qo7l3bVCnuXLGTn0q5aYe8Sh-"
"xdzkJ2Lu2qFfYuVyE7l3bVCnuXLGTn0q5aYe9yGbJzaVetsHcZhexc2lUr7F2ykL1LHjJdztsVe25W63m7Us_NKj1vV-"
"i5WZ3namWKbbrqFSm27cq0bbrqFSi27Yq1bbvOtG266pUmtu260rbpqleW2LYr07bp2k20bbsutW266pUjtu0aadt01StFbNuVadt25dqWrr_"
"MHl2hc9gPMHTgSmkxcGhWjGLnwpWj2LtkITsXriTF3iUO2buchexcuMIUe5erkJ3L6CVk75KF7Fy4AhV7l8uQnQtXpGLvMgrZuXCFKvYuWcjeJ"
"Q9Zuag9ukLnsB9g6NCuWrtHlxa9aoM9etvUrtpgj66aspCdS7tqgz26aopD9i5nITuXdtUGe3TVdBWyc2lXbbBHV01ZyM6lXbXBHl01XYbsXNp"
"VG-zRVdMoZOfSrtpgj66aspC9Sx6yclF7dIXOYT_"
"A0KFdtXaPLi161QZ79LapXbXBHl01ZSE7l3bVBnt01RSH7F3OQnYu7aoN9uiq6Spk59Ku2mCPrpqykJ1Lu2qDPbpqugzZubSrNtijq6ZRyM6lX"
"bXBHl01ZSF7lzxk5aL26Aqdw36AoUO7au0eXVr0qg326G1Tu2qDPbpqykJ2Lu2qDfboqikO2buchexc2lUb7NFV01XIzqVdtcEeXTVlITuXdtU"
"Ge3TVdBmyc2lXbbBHV02jkJ1Lu2qDPbpqykL2LnnIykXt0RU6h_0AQ4d21do9urToVRvs0dumdtUGe3TVlIXsXNpVG-"
"zRVVMcsnc5C9m5tKs22KOrpquQnUu7aoM9umrKQnYu7aoN9uiq6TJk59Ku2mCPrppGITuXdtUGe3TVlIXsXfKQaxf8fw3WK1ZM07GvTN2BFSqm"
"6uDKbGzThRXZ2LYr07bpwgpsbNsVa9t2nWnbdGGlNbbtutK26Rq9aNt2Zdo2XVhJjW27LrVturByGtt2jbRturBSGtt2Zdq2Xbm2pesvvUfX6B"
"z2AwwduFJaDByaFaPYuXDlKPYuWcjOhStJsXeJQ_"
"YuZyE7F64wxd7lKmTnMnoJ2btkITsXrkDF3uUyZOfCFanYu4xCdi5coYq9Sxayd8lDVi7tHl2jc9gPMHRoV63ZozctetXaPbpqalet3aPrpixk"
"59KuWrtH101xyN7lLGTn0q5au0fXTVchO5d21do9um7KQnYu7aq1e3TddBmyc2lXrd2j66ZRyM6lXbV2j66bspC9Sx6ycmn36Bqdw36AoUO7as"
"0evWnRq9bu0VVTu2rtHl03ZSE7l3bV2j26bopD9i5nITuXdtXaPbpuugrZubSr1u7RdVMWsnNpV63do-"
"umy5CdS7tq7R5dN41Cdi7tqrV7dN2Uhexd8pCVS7tH1-gc9gMMHdpVa_"
"boTYtetXaPrpraVWv36LopC9m5tKvW7tF1UxyydzkL2bm0q9bu0XXTVcjOpV21do-um7KQnUu7au0eXTddhuxc2lVr9-"
"i6aRSyc2lXrd2j66YsZO-"
"Sh6xc2j26RuewH2Do0K5as0dvWvSqtXt01dSuWrtH101ZyM6lXbV2j66b4pC9y1nIzqVdtXaPrpuuQnYu7aq1e3TdlIXsXNpVa_"
"fouukyZOfSrlq7R9dNo5CdS7tq7R5dN2Uhe5c85MrlH0dPf3HvFL2zFHYPLLXdmRmdhaMzMzoLR-dmdB6Ozs3oPBxdmNFFOLowo4twdGlGl-"
"Ho0owuzeh25P_i_"
"7mpHdgOkp5BPRnbHzioNU3HQJnSoSbHonMYBKgcMhshcxEyGyFzEXIbIXcRchshdxEKG6FwEQoboXARShuhdBFKG6E0EVba0Stm5Eo7asWOsLV"
"X6BwGASqHzEbIXITMRshchNxGyF2E3EbIXYTCRihchMJGKFyE0kYoXYTSRrC1_9KO_"
"mJGfmlHfbEjbO0VOodBgMohsxEyFyGzETIXIbcRchchtxFyF6GwEQoXobARChehtBFKF6G0EWzt120lFTqHQYDKIbMRMhchsxEyFyG3EXIXIbc"
"RchehsBEKF6GwEQoXobQRShehtBGCSqrR5p7f9A1Mn4zbsDOg0DkMAlQOmY2QuQiZjZC5CLmNkLsIuY2QuwiFjVC4CIWNULgIpY1QugiljWBnY"
"EONDmdgQw0MZmB43YwT03QMlCkdZs40OodBgMohsxEyFyGzETIXIbcRchchtxFyF6GwEQoXobARChehtBFKF6G0EcycDf-0o_-YkX_aUX_"
"MiGk7YmpGTNsRUzvCztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdbUztbUzdZNO_"
"rGjLxpR93YEbb2N672N7b2N672N7b2N672N7b2N672N7b2N672N7b2N672N7b2N672N7b2N672N7b2N672N7b2N672s3b0zIyctaNmdoSt_"
"czVfmZrP3O1n9naz1ztZ7b2M1f7ma39zNV-Zms_c7Wf2drPXO1ntvYzV_uZrf3M1X5maz9ztZ-3o-dm5LwdNbcjbO3nrvZzW_u5q_3c1n7uaj-"
"3tZ-72s9t7eeu9nNb-7mr_dzWfu5qP7e1n7vaz23t5672c1v7eVj70ftmtJimY6BM6TC11-"
"gcBgEqh8xGyFyEzEbIXITcRshdhNxGyF2EwkYoXITCRihchNJGKF2E0kawtR-0owdm5KAdNbAjbO0HrvYDW_uBq_3A1n7gaj-wtR-"
"42g9s7Qeu9gNb-4Gr_"
"cDWfuBqP7C1H7jaD2ztB672A1v7gav9ajt61YxcbUet2hG29quu9qu29quu9qu29quu9qu29quu9qu29quu9qu29quu9qu29quu9qu29quu9qu"
"29quu9qu29quu9mvt6DUzcq0dtWZH2Nqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvudqv2dqvhbXfu"
"zeV1OgcBgEqh8xGyFyEzEbIXITcRshdhNxGyF2EwkYoXITCRihchNJGKF2E0kYIKqlGB_"
"th9g1MH8dFH5txYpqOgTKlw8yZRucwCFA5ZDZC5iJkNkLmIuQ2Qu4i5DZC7iIUNkLhIhQ2QuEilDZC6SKUNoKZs6i960fmrh-1d_"
"1o1Y6wtXd3_cje9SN314_sXT9yd_3I3vUjd9eP7F0_cnf9yN71I3fXj-xdP3J3_cje9SN314_sXT9yd_3I3vUjd9eP2rt-"
"ZO76UXvXj9bsCFt7d9eP7F0_cnf9yN71I3fXj-xdP3J3_cje9SN314_sXT9yd_3I3vUjd9eP7F0_cnf9yN71I3fXj-xdP3J3_"
"ah9eyqm6RgoUzps7d2b68i-uY7cm-vIvrmO3JvryL65jtyb68i-uY7cm-vIvrmO3JvryL65jtyb68i-uY7cm-"
"vIvrmO3JvryL65jtyb62izHb1pRm62ozbtCFv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7TVf7TVv7"
"TVf7rXb0lhm51Y7asiNs7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bdc7bds7bfC2o9_"
"NaPFNB0DZUqHqb1G5zAIUDlkNkLmImQ2QuYi5DZC7iLkNkLuIhQ2QuEiFDZC4SKUNkLpIpQ2gq39XTv6zoy8a0fd2RG29neu9ne29neu9ne29n"
"eu9ne29neu9ne29neu9ne29neu9ne29neu9ne29neu9ne29neu9ne29neu9u2-"
"QEzTMVCmdNjauz2ZahkEqBwyGyFzETIbIXMRchshdxFyGyF3EQoboXARChuhcBFKG6F0EUobwdb-oR39YEY-tKMe7Ahb-wdX-wdb-wdX-wdb-"
"wdX-wdb-wdX-wdb-wdX-wdb-wdX-wdb-wdX-wdb-wdX-wdb-wdX-wdb-"
"4ew9vGkGS2m6RgoUzpM7TU6h0GAyiGzETIXIbMRMhchtxFyFyG3EXIXobARChehsBEKF6G0EUoXobQRbO3be05s7jlxe8-J7-"
"0IW3t3z4ntPSd295zY3nNid8-J7T0ndvec2N5zYnfPie09J3b3nNjec2J3z4ntPSd295zY3nNid8-J7T0ndvecuP31Kja_XsXtr1fx3I6wtXe_"
"XqmWQYDKIbMRMhchsxEyFyG3EXIXIbcRchehsBEKF6GwEQoXobQRShehtBFs7R_b0Y9m5GM76tGOsLV_dLV_tLV_dLV_tLV_dLV_tLV_dLV_"
"tLV_dLV_tLV_dLV_tLV_dLV_tLV_dLV_tLV_dLV_tLV_dLV_akc_mZFP7agnO8LW_snV_snW_snV_snW_snV_snW_snV_snW_snV_snW_snV_"
"snW_snV_snW_snV_snW_snV_snW_snVXtXAfn712e3nVp_"
"Zfl71We3nzO1s5W62cjtbuZut3M5W7mYrt7OVu9nK7WzlbrZyO1u5m63czlbuZiu3s5W72crtbOVutnI7W7mbLZXf5lZ5bc7C1r5wtS9s7QtX-"
"8LWvnC1L2ztC1f7wta-cLUvbO0LV_vC1r5wtS9s7QtX-8LWvnC1L2zti7D2k_YJMTFPiEn7hJg82hGm9hP3hJjYJ8TEPSEm9gkxcU-"
"IiX1CTNwTYmKfEBP3hJjYJ8TEPSEm9gkxcU-IiX1CTNwTYmKfEBP3hJjYJ8TEPSEm7RNiYp4Qk_YJMXmyI2zt3RNiYp8QE_"
"eEmNgnxMQ9ISb2CTFxT4iJfUJM3BNiYp8QE_eEmNgnxMQ9ISb2CTFxT4iJfUJM3BNiYp8QE_"
"eESNq3zmKajoEypcPUXqNzGASoHDIbIXMRMhshcxFyGyF3EXIbIXcRChuhcBEKG6FwEUoboXQRShvB1r596yym6RgoUzps7d1bZ9UyCFA5ZDZC"
"5iJkNkLmIuQ2Qu4i5DZC7iIUNkLhIhQ2QuEilDZC6SKUNoKt_"
"XY72vwkTxooUzps7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7bdt7bdd7Xfb0btm5G47ateOsLX"
"fdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXftbXfdbXfb0fvm5H77ah9O8LWft_Vft_Wft_Vft_"
"Wft_Vft_Wft_Vft_Wft_Vft_Wft_Vft_Wft_Vft_Wft_Vft_Wft_Vft_Wft_V_qAdfWBGHrSjDuwIW_sDV_sDW_sDV_sDW_sDV_sDW_sDV_"
"sDW_sDV_sDW_sDV_sDW_sDV_sDW_sDV_sDW_sDV_sDW_sDV_"
"vDdvShGXnYjjq0I2ztD13tD23tD13tD23tD13tD23tD13tD23tD13tD23tD13tD23tD13tD23tD13tD23tD13tD23tD13to3Z0ZEZG7ajIjrC1"
"j1ztI1v7yNU-srWPXO0jW_vI1T6ytY9c7SNb-8jVPrK1j1ztI1v7yNU-srWPXO0jW_vI1X7cjh6bkeN21NiOsLUfu9qPbe3HrvZjW_uxq_"
"3Y1n7saj-2tR-72o9t7ceu9mNb-7Gr_djWfuxqP7a1H7vaj23tx672R-3oIzPyqB11ZEfY2h-52h_Z2h-52h_Z2h-52h_Z2h-52h_Z2h-52h_"
"Z2h-52h_Z2h-52h_Z2h-52h_Z2h-52h_Z2h-52h-3o4_NyON21LEdYWt_7Gp_bGt_7Gp_bGt_7Gp_bGt_7Gp_bGt_7Gp_bGt_7Gp_bGt_7Gp_"
"bGt_7Gp_bGt_7Gp_bGt_7Gp_0o4-MSNP2lEndoSt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_Ymt_Ymr_"
"Ymt_Ymr_bd29Dcz8ls76psZcdqOODUjTtsRp3qE_A9uTrVtu260bbtutW27ZtqWLs50k0-xd7kJ2bvchuxdZiErlyw4l8yfSxacS-"
"bPJQvOJfPnkgXnkvlzyYNzyf255MG55P5c8uBccn8ueXAuuT-XIjiXwp9LEZxL4c-lCM6l8OdSBOdS-HMpg3Mp_bmUwbmU_"
"lzK4FxKfy5lcC6lPZdzdR7n9hzOVf5zm_tc5T23Oc9VvvMgV3CdaPYuNyF7l9uQvcssZOWSBeeS-XPJgnPJ_Llkwblk_"
"lyy4Fwyfy55cC65P5c8OJfcn0senEvuzyUPziX351IE51L4cymCcyn8uRTBuRT-XIrgXAp_LmVwLqU_lzI4l9KfSxmcS-nPpQzOxV4n8h-"
"enmrbdt1o23bdatt2zbQtXfY6MexdbkL2Lrche5dZyMolC84l8-eSBeeS-XPJgnPJ_Llkwblk_"
"lzy4Fxyfy55cC65P5c8OJfcn0senEvuz6UIzqXw51IE51L4cymCcyn8uRTBuRT-XMrgXEp_LmVwLqU_lzI4l9KfSxmci75O_nESg3Z_V-b_"
"4v9Z0JP2PH_SfSHVabfx36oYJzDrzr9J9f11uvFJdS5AOuPPxA-_K7Pu-PqpossjZbJjr_50z9pm16QdMzFj8KX_ZEWZvM28R4AD_G9MvJeTO-"
"B_vvLwGjg60za77mtMtc2uh_oTpto2d5itFW1XXf8_vFUDyA");
static string all_emojis_str = gzdecode(base64url_decode(packed_emojis).ok()).as_slice().str();
constexpr size_t EMOJI_COUNT = 4713;
constexpr size_t EMOJI_COUNT = 7539;
#else
string all_emojis_str;
constexpr size_t EMOJI_COUNT = 0;

View File

@ -10,9 +10,12 @@
TEST(Emoji, is_emoji) {
ASSERT_TRUE(!td::is_emoji(""));
ASSERT_TRUE(td::is_emoji("πŸ‘©πŸΌβ€β€β€πŸ’‹β€πŸ‘©πŸ»"));
ASSERT_TRUE(!td::is_emoji("πŸ‘©πŸΌβ€β€β€πŸ’‹β€πŸ‘©πŸ»οΈ"));
ASSERT_TRUE(td::is_emoji("πŸ‘©πŸΌβ€β€οΈβ€πŸ’‹β€πŸ‘©πŸ»"));
ASSERT_TRUE(td::is_emoji("πŸ‘©πŸΌβ€β€οΈβ€πŸ’‹β€πŸ‘©πŸ»οΈ"));
ASSERT_TRUE(!td::is_emoji("πŸ‘©πŸΌβ€β€οΈοΈβ€πŸ’‹β€πŸ‘©πŸ»"));
ASSERT_TRUE(td::is_emoji("⌚"));
ASSERT_TRUE(td::is_emoji("⌚️"));
ASSERT_TRUE(td::is_emoji("↔"));
ASSERT_TRUE(td::is_emoji("πŸͺ—"));
ASSERT_TRUE(td::is_emoji("2️⃣"));
@ -27,6 +30,13 @@ TEST(Emoji, is_emoji) {
ASSERT_TRUE(td::is_emoji("⌚"));
ASSERT_TRUE(td::is_emoji("πŸŽ„"));
ASSERT_TRUE(td::is_emoji("πŸ§‘β€πŸŽ„"));
ASSERT_TRUE(td::is_emoji("©️"));
ASSERT_TRUE(td::is_emoji("Β©"));
ASSERT_TRUE(!td::is_emoji("©️️"));
ASSERT_TRUE(td::is_emoji("πŸ•΅οΈβ€β™‚οΈ"));
ASSERT_TRUE(!td::is_emoji("πŸ•΅β€β™‚οΈ"));
ASSERT_TRUE(!td::is_emoji("πŸ•΅οΈβ€β™‚"));
ASSERT_TRUE(td::is_emoji("πŸ•΅β€β™‚"));
}
static void test_get_fitzpatrick_modifier(td::string emoji, int result) {