Mercurial > prosody-modules
annotate mod_lib_ldap/dev/t/02-vcard.t @ 4717:f4f07891c4cc
mod_auth_ldap: Mark as Merged into Prosody
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 18 Oct 2021 15:42:37 +0200 |
parents | 8e293681deb5 |
children |
rev | line source |
---|---|
809 | 1 use strict; |
2 use warnings; | |
3 use lib 't'; | |
4 | |
5 use TestConnection; | |
6 use AnyEvent::XMPP::Ext::VCard; | |
827 | 7 use MIME::Base64 qw(decode_base64); |
809 | 8 use Test::More; |
9 | |
10 sub test_vcard { | |
11 my ( $username, $expected_fields ) = @_; | |
12 | |
13 $expected_fields->{'JABBERID'} = $username . '@' . $TestConnection::HOST; | |
14 $expected_fields->{'VERSION'} = '2.0'; | |
15 | |
16 my $conn = TestConnection->new($username); | |
17 my $vcard = AnyEvent::XMPP::Ext::VCard->new; | |
18 | |
19 local $Test::Builder::Level = $Test::Builder::Level + 1; | |
20 | |
21 $conn->reg_cb(stream_ready => sub { | |
22 $vcard->hook_on($conn); | |
23 }); | |
24 | |
25 $conn->reg_cb(session_ready => sub { | |
26 $vcard->retrieve($conn, undef, sub { | |
27 my ( $jid, $vcard, $error ) = @_; | |
28 | |
29 if(eval { $vcard->isa('AnyEvent::XMPP::Error') }) { | |
30 $error = $vcard; | |
31 } | |
32 | |
33 if($error) { | |
34 $conn->cond->send($error->string); | |
35 return; | |
36 } | |
37 | |
828
855b28e10b39
Fix vCard checking routine to handle avatars properly
Rob Hoelz <rob@hoelz.ro>
parents:
827
diff
changeset
|
38 delete $vcard->{'_avatar_hash'}; # we don't check this |
855b28e10b39
Fix vCard checking routine to handle avatars properly
Rob Hoelz <rob@hoelz.ro>
parents:
827
diff
changeset
|
39 delete $vcard->{'PHOTO'}; # PHOTO data is treated specially |
855b28e10b39
Fix vCard checking routine to handle avatars properly
Rob Hoelz <rob@hoelz.ro>
parents:
827
diff
changeset
|
40 # by the vCard extension |
855b28e10b39
Fix vCard checking routine to handle avatars properly
Rob Hoelz <rob@hoelz.ro>
parents:
827
diff
changeset
|
41 |
809 | 42 foreach my $key (keys %$vcard) { |
43 my $value = $vcard->{$key}; | |
44 | |
828
855b28e10b39
Fix vCard checking routine to handle avatars properly
Rob Hoelz <rob@hoelz.ro>
parents:
827
diff
changeset
|
45 $value = $value->[0] if ref($value) eq 'ARRAY'; |
809 | 46 |
47 if($value eq '') { | |
48 delete $vcard->{$key}; | |
49 } else { | |
50 $vcard->{$key} = $value; | |
51 } | |
52 } | |
53 | |
825
abdc5db04152
Fix got/expected in vCard content test
Rob Hoelz <rob@hoelz.ro>
parents:
823
diff
changeset
|
54 is_deeply $vcard, $expected_fields or diag(explain($vcard)); |
809 | 55 $conn->cond->send; |
56 }); | |
57 }); | |
58 | |
59 my $error = $conn->cond->recv; | |
60 | |
61 if($error) { | |
62 fail($error); | |
63 return; | |
64 } | |
65 } | |
66 | |
67 plan tests => 5; | |
68 | |
823 | 69 my $photo_data = do { |
70 local $/; | |
71 my $data = <DATA>; | |
72 chomp $data; | |
73 | |
827 | 74 decode_base64($data) |
823 | 75 }; |
76 | |
809 | 77 test_vcard(one => { |
78 FN => 'John Testerson', | |
79 NICKNAME => 'one', | |
1464
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
80 TEL => { |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
81 NUMBER => '555-555-5555', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
82 WORK => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
83 VOICE => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
84 }, |
809 | 85 }); |
86 | |
87 test_vcard(two => { | |
88 FN => 'Jane Testerson', | |
89 NICKNAME => 'two', | |
1464
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
90 TEL => { |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
91 NUMBER => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
92 WORK => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
93 VOICE => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
94 }, |
809 | 95 }); |
96 | |
97 test_vcard(three => { | |
98 FN => 'Jerry Testerson', | |
99 NICKNAME => 'three', | |
1464
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
100 TEL => { |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
101 NUMBER => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
102 WORK => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
103 VOICE => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
104 }, |
809 | 105 }); |
106 | |
107 test_vcard(four => { | |
108 FN => 'Jack Testerson', | |
109 NICKNAME => 'four', | |
1464
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
110 TEL => { |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
111 NUMBER => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
112 WORK => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
113 VOICE => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
114 }, |
809 | 115 }); |
116 | |
117 test_vcard(five => { | |
1464
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
118 FN => 'Jimmy Testerson', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
119 NICKNAME => 'five', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
120 TEL => { |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
121 NUMBER => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
122 WORK => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
123 VOICE => '', |
8e293681deb5
Test telephone configuration in LDAP tests
Rob Hoelz <rob@hoelz.ro>
parents:
829
diff
changeset
|
124 }, |
829
9c134ff07d0f
Test for present avatar data in user vCard
Rob Hoelz <rob@hoelz.ro>
parents:
828
diff
changeset
|
125 _avatar => $photo_data, |
9c134ff07d0f
Test for present avatar data in user vCard
Rob Hoelz <rob@hoelz.ro>
parents:
828
diff
changeset
|
126 _avatar_type => 'image/jpeg', |
809 | 127 }); |
823 | 128 |
129 __DATA__ | |
130 /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg | |
131 SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP | |
132 FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc | |
133 ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA | |
134 yADIAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC | |
135 BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn | |
136 KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY | |
137 mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 | |
138 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB | |
139 AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD | |
140 REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip | |
141 qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR | |
142 AD8A9/opM0ZFADVGGan00feNLkUALSGkJqjfX5t4jsjkZyDtwuRmhK4m0ldl4sBnNZk+sRCJnt0a | |
143 cqdoC/xH0FYM+t363cPlxyPCv+sDYBfPXgdMdqoXGtxRXxuZftMSxMypAkXBXuST3JreNB9TnliI | |
144 9GaNz4jvYpQk6wwCQ7UAcMwPoazrjUJpmO+Rm+prjtZ1Zb7UZLiOLyQcYA68dz71qWV99qtEkJ+b | |
145 7rc9xXq4ehFK9tTzsVOT1voaDszdTgVUlnVBhT/9eoZrgngVXLHOTXao2OBslLljk0hmx3qBn5zm | |
146 omfBzV2EWPPOaPtJHeqZkqNpKl2GrmvDfsjA7sEd810+k+J5Y8JMfMT9RXn/AJ1WYropgZ/KuerS | |
147 hOPvI1p1JQleLPRNY+w3Vut8kLEnKyFV5IIOO4zzXKzNaPfWipFIES1cbGTB3bsDjcf50/Sbu4Lh | |
148 BcZjbho5BuUj3Bq5q1tBY6pBcvHDHC0GQFYIud3bj3r5jMsK4ax2Z9Ll+JU9JbopAafFDdS3GnzX | |
149 HyNnaE4QlR/ER6VXt7vRv7RsSvh+4VjDIIpT5Gdvz5xyW9en+NaktxaxXl7GY4GWOE8NKmGAcZz+ | |
150 7JGPqfp3q1aotybCaOzQ25gf5kkyB970iH81rClBxhZmtWfNNs5CO+0C50qWaDwrax2zSoSjXVqv | |
151 zYbB56d+vPNTeF7vR3+LDQQaI1rqAtMmYXQeML5a4AVRjpjoa2ltWOli1tbDaTLGEQTEcc458k4H | |
152 b+vrDothJa/FqeWXSzGXgwtznIOEAPOB/kVqtzP0PRmTGMDtRVgrzmihQKUynHNd5Icxj3HNPMs+ | |
153 PvJn6GubGsKTn5vqoFPXVmkU+XHKw/vZrosZXNp574A4MPtyf8KwrubXpXbbIIEB6hgc0v2qYtlZ | |
154 GT6jNI1wmTueR26YC0AY19P4kTIFyZl9uKp2viPXLaXZPHcY9XjJB/H+tdJvXvGVA7soxUT3UfIw | |
155 GTuRzincLFceILkENLaK/fONx/xq1Bd6XrDgyK8UvcDoaqta2dwN5X3yvH8qhezWIb4mYkddxzVR | |
156 m1syJU4y3Q7U/DHmFpLaOOeMknHcVzot1tN8aRmPDYYe9dXY3rQOpEjbM4z2H19Ks6hpcGoxG4Ql | |
157 ZeSdo4Jrvw+Ns7TOCvgrq8DiMjnims9Wb6zktC277uePes5n7Zr14zUldHkyg4uzHM1RO/FNZ6hd | |
158 6LgkPZuOKZuz1qIv6GmPJtGai5SROzBF5xUQmJbcTVQksxJp6mspSbNoxsblhdFHBzXpPhy7iuo1 | |
159 jlCs6D5GPUeoryW3cqw5rsPDmoeTNGWbGDXJiaanCx0Yeo4TuenCJfSl2ACkilWWNXQgqRkEU814 | |
160 57KGbRQU3KQe/pTgKXpTsBSe1PaWb/vs0VbYZHBxRWbhqVzHmAkQP80RUe3/ANc1ZE0bcAdPTrXJ | |
161 y3csMO7du47Meas2V5NOuHLAf3UHT8a6HuZHR/aVj6I4Huxp8dzIWG1Ac92Un+lYgLZzu2+maR5f | |
162 KUtvP1BJ/SpGa017Omf3iKPYVWlvJGXcjAv25xn8ax5b2Rk4dyPfiqiXJl3KSzc9xQBrpdXImXfG | |
163 VJ7rkn9Kvm5u1HmbUOPUBTWFbyz7yUjI9z/nFXl81hmWUL79adguaUFzJOfMeONW+7kHitW0ultx | |
164 jzVIzXM/aI48Rx5PqTxmrMVzICAISTjjIqWNG5qtsNQRDGAVBya4zULJ7WYpg4C7ua7XT5y4bd8u | |
165 BkjFOurSG7wsiAkgjPtXXQxbp6PY5a+FjV1W55m8gx15qIyAitfVtBmt7l/KwyHOCTgmsBvMibaQ | |
166 B9a9WFaM1oeVOhKm9USls85wfWoWcs3J/CkaYn5Tt/CmkjGc0OQlEeG6U4VEGz1pwepuVYsxnBFb | |
167 ukzbZVrnkYE1qWMm2RaiexUdz2fR5UfTo9oAx2rQByK4vSdeg0rSJrq73m3iUM5RdxHOM4/Gkb4o | |
168 aAIRJGl7IM4wsGD+pFeJWapzabPaoXnBNI7aiuFg+KGl3cgS207U5WJxhYV6/wDfVMuPijYWyuW0 | |
169 jVTsJD/uV+X/AMerL2sO5ryS7HeHpRXnsPxa06e4WEaTqSlhwSqflw1FL20O4/Zy7HD3kkW3IDFu | |
170 xqxpkflL5ag5bl3/AKCoY4lKEsm5ywwPStqyjjihO1gW6FsV1GBVnb7ODkbVPdjzUX2sCISFNyno | |
171 SCc03Uf3mQd31JqH5EiQuC3y4VQM4AqRkU91GyPN0CAsfwrkNI8X+bemO9SONWOY3A+79f8AGuvn | |
172 SNkK4Kq4wwxg815TrWlzaVqEkLfczujP95exFS9CkexWbh18wyB1PQ84NNuZ2Y8sUX6YOP6V5loH | |
173 i670r9w586D/AJ5ueR9DXWR67aaiFaOYq7fwt29uKrmFY02vkib5eo7k1uabdSzWu/qn+ya5by4n | |
174 ZSjl1IzxjI/AnrW1pep6daEwT+ZAkhw3moRzS0A6myuduGMmcetan2pPLyp5HWsfz9Kij3+ehUc/ | |
175 J0rPl1qGRyLcEAcZ9aWgzUvb2zndYp1zk4HbBrD1XTbC8yY5EE+0YboSR1/rVfWZ3MKyWxLOBkqP | |
176 vevSuIfUtUvZBJErRqpwWIOPSqhOcHoTKEZq0jfm0W4gTdsYr+eaqSW8sTYkRlPoRitK3N69hsiu | |
177 HMmchQ3y/nmrQnuIrQw3WmPdSsBiRvlUe+Qa64Yt/aRyzwi+yzAKEDOOKYWPeuwvtIWbT4zHIm5V | |
178 GUVcc1y1xavExBHIrphVVRXRy1KTpvUjSTkDNaFtKUYNjIrIKspq5a3LoRlQwFXzEJHoOgXVncp9 | |
179 nlwUcbXikHDA12kfh3RzH8thAQw7rnIrzLSb20aRd0bK2a9R0W7We0VN2WUd/SvOxdKMveZ34SpJ | |
180 e6i1aada2MPlW8CRxj+FRU0lvFNE0UsaPGwwVYZBqUUtciirWOu7KQ0uxAwLOADjjyx26UVcxRRy | |
181 R7DuzwtnaGeNccAbj9auRzv5RzgZJ9gBk4/Tk1mPKXuBtzhWABHU4H8qbJcOURUPL/KMHoB71o3q | |
182 TYsPMszEANs3cc4Le/0om87gYRF7AUQw+RgHc8h65Ocf4VXuDIXIjwQPvuc8n0FILELjzJSFQbMn | |
183 5jUep6JFqunPFIdkoGYZf7reh9qe27fkn7o9eBRFGbh8Gfao6DpQB5Re2N1pt41veQ7XU/xd/cUs | |
184 d39nIWWHeo6EPjFet3+mW9/bGK7gWRAMKzfeH0NcpN4LsGfCSSIWOB3ApDKFjqAlgBgnaQrz8zfM | |
185 n+NTW+tzRziGdg6d/MGaaPA93GwksbpN3YZIJqYaHqTlUv7JgFP+uQZx9aXNYLFu6vLm4AjtpvLA | |
186 XkD0PSum0OWzttOiydz7AXdjncT1P51yt1BbwXfnW8pkCKAwPHT19ulV9N1EiQwO/J+6f6VomJnX | |
187 avcxXK5QmIjkMpwa5kRzSOfnaZmPBc5P1q+XtyoDzDjt6fWqNzOiS7EQDA79896HYSJYZ7q1c7CN | |
188 44JAxg10OiiSZxNeyl1B4QM2M+/NYVnNHI2yVeQcIf61PdaiIMBFA7EhuKEJnSavrkVnbloSFKsA | |
189 DniqNjqlnrxTYBBIRg56Zrib7UWv7wW287IzvdifSrNoklr/AKTbiQwxrlmA4+vvVRk4O8RSgpq0 | |
190 jtr3Rfs6K8k0GG6YkGf1rPWxkjfKMMfnWI/iO3JYPKz44BLZ/Q1Ol+gAkRFA7OxGP0PWuiOLl1Rz | |
191 ywkejOnsm8ra8hwckZI5rsNI1RoXVw3ToK8sbxRbxBWd0lK9doY/hnFL/wALCt7UZWDdjsHx/OuX | |
192 EVJVHpsdeFp06S11Z9HWd5HeQCSM/UelEt/awTxwS3EUcshwiM4BY+w718yXfxd17yHi03ZZK4wX | |
193 X5nx+PA/KqfgZNV8T+PtNMs81xKk6zySSMWwqkEk/l+tYpvqaSSvofWAOaKaDgc0VZB8+kkptQhS | |
194 xwW79amswj3AAGI4F6+pqlK6IV9QuVH6ZNTaYCBMRzu5G7oPSgDQRi5LHOP4VHf/ABqOcs+2CMqF | |
195 U5kY9B7UxpjHwGLO3ANNAVVK/wAAOWb+81AEMoEhIx8g/Wpbcr5rKseSo5Y9qgeZmJK+vFW7T5UY | |
196 kdOhPOaAJJJPNiKkkAc8nFUlCBwOSQCfxp0gbfxlsnmoiqxSF87nzgegoEDMwBwcMeM57V1mi2uN | |
197 OYzDeXX+LniuUWMzSqM/gK7K0lCWqIvQL1ob0BbnmWqTWwtWWW9El15oRYDCEKDPqOo6fpXPqjrq | |
198 apxn0ro9Y0z7TqDlxlWZgG9MZxULaS8lxDcgFcKAxPHI60o7lPYDZFYWDHlgCD1/WqVwP3RZsgqN | |
199 pz710Zt0MQUMpc8ZPWqNzZM5YAfORtxjn61skjJtoylkZZJVQHO/aW9h2/PNR3QxGH25P97OKvSR | |
200 /Zn7Esx2pmq84ebAZVPHQcj8jSsNM59CVD/7TYwOprZ0yWc200EUzSOI2V4EQllzxn3GTWRqMIt3 | |
201 RIyVcfM2O3cV33w8hvdRea6kmZhFGURgABuPTp7ZrOTsaRV2edy2s9nJme0uQc5BaMjNQyalNsKL | |
202 Eyg9z1r2OfX7hEFldRRFo2I3OoLfnXO61bpcRtcxRQlVGWUxrx+lZ85v7B7nmi3d190yHB4IpojJ | |
203 bnJ78GulD2Uhw1vbn8Mfyrb0t7RWAt9Otg/GCkW9vzOafOR7JnPaP4SvtV2OymC3P/LSQdR/sjvX | |
204 vPw/0XTvC1qRbRBp5QPMuHHzN7ew9q5rTNP1C+kWWQrCo/vfMcV2axGygDuy+UoyWzwPrWNSU1qb | |
205 Rpxsdsl3E4HPWivM73x1awSrbWkgllPBdeVj9z6n2opqqzN0UmefS/NMwJJMjgZPpWjEx+YKQoOB | |
206 9Ky3DNNBubG35mA+tW7WX5Xk7nGM9q3MC7jEuAD05J601pDMxSMDAGMjoKaSSCP4mPftU9qqojdB | |
207 jJ69aAKwi2y/McenPSrDzZTanTpzVfmW5ZuNnNPzzgjIoAkciOIE8Hpk1RWTe0nykYHAqyXLtjby | |
208 B09KpSkJcYB4xj6+poA0rUhpSw+g/CuogcLCqg8YrkdMlCuB69M9uK6KCTC8mkBkXUZFxMB8zBiR | |
209 xUBjJQDHz9K0J1zdMxAwOee9NaKTYWXGW6KPSkMzrYEyncu714Iz+lVZJWW6YkYTGAevHrWlIhTM | |
210 SHDYJJHaslweRwcZz/n8q1g7ohlHUSrbSvyqRkYHJqnA4jcg7WB59xVsQCRiwC9M4PU/Tmq3lFd5 | |
211 YZB4GaUmNIyprb+0dWfaOGYEivYPDdgul+HlEMfBbc3Y81wOlaZvv0AyrdyB2rttUvvslhDbxOFP | |
212 RgOcispa6GkEZVzpdqmoTT3E5mBclY1+UAe57/pVPUGW5i8hFCRf3VGBS7mkPOc1Yig3EZFXGma8 | |
213 7Mq10KItnYPyrobHT4rfBCgfSpYIwo6VY3ha0UUibtmlBMIwADWvaXEc8bQyqGRhtZW6Ee9cqZ8d | |
214 6sWt6VkGDUT1Licj4g0t9F1mawGfs8vzxNj7yk8A+uDx+FFdrr2nrr2lYUf6XAC8LY6+q/j/ADxR | |
215 XFJNOx2wlFx1POnkLFuxPJHoB/kVNbbsr37hfU1XRQ0cz+ox+tWYAY5h32qAPrXYeUXJGKkKpyw5 | |
216 JPrUjSYQhM8jBNNjVjkngVKyfIiqOTzk9qAIkzHGTn+HOKhs5jcSFRnCHHXrVi5ysJUDkjFQ2irC | |
217 hXHucUCLTrhCV496zpkwOOp+Zj6Cr7PlSWPbAAqpcoVxGpHzcsfYdqACxkVZox3GOK6eA8E/hXJQ | |
218 kLdIe2a6SC4BizwKVwsWJHSOUO3A6Z9KbOrmPemefQZyKq3EoeJ1Hpx9antrhm0vzJHwzctyflAp | |
219 bjKV0yhgG4OOhOCfrisu6mjUAZHTn2NVJ9Xgu7l5I33KRgE+nNZt1qUA3fMQfU962jZIhp3L1u/n | |
220 B8FWQfoaEjCuVcHYxwCexpukMstxHJEcxkkYH61Jqbm3vZIj9wEEY9CKzkUjftzHpuny30mNiKW4 | |
221 74HA/E1xlz4jup9QFycMufmU/wAQ/wAas67fTNbwWRmOxEDOB13GsBUwcEYPepgupTZ6HYPFdW6T | |
222 xHcjjIP9K040AFcT4bvjbXf2R2/dTHK+zf8A167dG4re+g4kgOOlNeTHFIz45qpNNxxUORokLJIB | |
223 34p9vN845rMluAO4pkN4DJgGpuUdzp8hO1geRRVLQ590gB70Vm9y1scCNqJIh6AYqxAxkmPYAZqn | |
224 McxrnrgA/hWjp8eQWxy1Vc5LF17hIYAChLnsO1IsmV3OcE9BTZQd+09yBRGDyzUwGtICcc/jURdR | |
225 ggj5u9SPg9elV5YSlqX/ALg4NAExfAB9Dn9KZuJcufU4+mKYW8zbjpimTsVC46YOaAIXYrIg6Ekj | |
226 NakUxCKB0AyaxFZpl3AHA4B9eK1YOAo7/wD16nYZeLZAIqysYn05om4DKcfyP+feoLW3dwDgn5jT | |
227 7xmsITK3CDr7UReoNHk8k7WsskAYgoSAPbNVXu2aQIMsx7CtPX0QXks0Y++SfzqnaQRwOJ35Oela | |
228 EnS6HGbBEjdwCPmPPOTW3qlzABBJd7fO27goGCR1ANY+kTQ3d+Xm4iRcuT6VlXl617dSzsx/1jAZ | |
229 7DqP0oeoLQklmaeZpH5JNQt0z0K/y/8ArH+dOTmlcYwe2dp+h4NMYiswKuhw6ncp9CK9Dsrv7TZw | |
230 zDo6Bq86jPPP8IJ/z+Ndf4fkP9kRqf4WYfqaVyo7m7JLhetZV3c7aluLgKpJPSuZ1PUyDsjO6Rug | |
231 9PeszdElzfM8vkw/NI36VesoDHyzZP8AWszTYBGvmOdztySa2IpBgU0gex0+jSbXWiqWmzYlAzRS | |
232 Y1sUH0efaJfLEhZh8u7GPerkVoYieMDtWmvyqBknHGTTriIiPOOcdq3q01DY8+jVczIkwZAByQO1 | |
233 RiTAxg7asECMhWHfk1UlYtcFVxs9ayNiKVz0xyDyakkcNYurdcYqCQsrSMeNnBp+BLEGB5PagCvC | |
234 SI8HtwPenPtlXH4VHLIkalicbe3rUcV3A8mc9av2cmroj2kU7XLUECmJQvGMGtO1gXIz2NQR7Nw2 | |
235 96sSTLAoJPNZqMm7ItySV2b8CwwW24kZxk5rB1G/iubaUOAyl2XHqOR/KqN3qruvlgkBjjHsOtYv | |
236 2phpwcjDEFsehr0cPgrK9Q4a+M6QMa70uSZnNlIsiKcFG4KVWTRNSncK+1EJABBHeuq8FlLj7eDy | |
237 WAHPqM/41PJbA6nAxyFSQFsf59QK8+o7SaR2wTcU2Yktr/ZKHT1+8drSt3OegrEf5Lu4UdCxP4hi | |
238 P5Guj1Ex3OqyneOnP4D/AOtXLK5klD/89JZP1ppjZdhOVx7fy/8ArVLL/qXHt/8AXqCBgGjPY5z+ | |
239 opS7MuBwAvJ/ChsaAMFeQHrnb+ZzXUaBMW0rcezt/OuYgiw7MefmzzXoXhrwrdah4enuzmK1t4Wk | |
240 Z8cu/wB7aPz5NS2XHTc5bW9VKKUi+Zj+lYlmjPKZHOWJ5Jq9qtuI5yMcZqG1XHFQnc3aNWA4XAq0 | |
241 jVTiPFWI+vWtBG3pzjzV+tFQ2BIlXHrRUsDXkuNsakdS1X4JRcxEADIrEkb5VHoTU9jcbbhYyQFb | |
242 kmvRrx5oniYefLJC3KMshXGW6+wFU8COQyMQdxxx0ArWv4pF+Zf4xxWJcRMbUpuxnnj1rzz0mJKu | |
243 RMHGVkHFPWJUsWBzwuQRUow0cAdef4qbqCtDYvLDyY+x6EVUfiJexy9wGe4YtITk5wKVRDCPMLYx | |
244 z1qq8mWYnAyc02OEzyB5P9WDwvqfWvWgtLWPKk7u9zZtdRbzAdp2YAGepqd7t5WLyEBfSs6P2Gas | |
245 qFRcvgnHT0rWFOKfNYznVk1y3JA+9g5GC3Cf7vc1BJFui8ukidizTN1J4HoO1OMqpG8rHAAyfoK1 | |
246 5lbUx5XfQk8Gj7NqN+hJ25H+H9f0redAs8kpGQsZf8QMj+Vcf4Yv2F3cseDMy4/PNdhqn7rTZyD1 | |
247 ifP0xj+tfPVWnNtH0FPSKTPPZ59lxfzZznftP8qoKfLa124bL/4CllLyADp5h2nHtT0AMkBHTOfy | |
248 JNCAmiiJcbu2SBVlwBHtAxu44pqcAH2p33mAAzk7QB3J/wA4pXKSOm8DeGH8Ua5HbNuW2X95O4/h | |
249 XPT6npX0Nc6dBb+HbixtoljhFuyIi9BwayPAPhmPw34chQqPtdwBJOw9SOF+gH9a6mQbo2Ujggin | |
250 bQm+p8t65DtmPHNZUQwea6XxRAYr6VMY2sRXOKO1ZROxstoatRdqqRjNW4RhhWpNzZ08fvV+tFSa | |
251 YuZVxRUPcENL/MwPY1Ax3SgbsZ4pS2WzVeXhjXr7nz2x114A2nwNGd3y4BHSsCQt5YB+9nk+lauk | |
252 XS3OjmJvvRHAPt1rn77VLKzEiyS5O7IwCc+1eZNcsmj1oO8UywAXjZI8qE7k8kZ4pmqXH2PSlR/m | |
253 eXgiubn8SyecwgAVeDk9/wAKl1LUPtyWxzlgnzH3zV0Yc01cirPlg7FZdmeFqQHOD1HpUK9KkD4G | |
254 K9aJ5Uiyr7RSB8k7jx6VXMhJxRv7Dqaq5NiyHJOM4z19hVDV7vZbi3U4aTr7LUktwlvC0jNhR19z | |
255 6CsCW4e4maV/vMenoOwrnxNbljyrc6MNR5pcz2Rp6DP5OrWyn7rSLnNdp4im8vTbkKQGEQ/Xr/Kv | |
256 PbOXyryKTurAj61v6lqizl4c/wCst1H4gZ/lmvKkeojnVOS7/wBwbR9anRcSAdlXH9P8ahRduF67 | |
257 f1NaEVsypvkUgHkA96G7DUW3oMeQRpk8+gHU1v8AgjS5NS8QQXM8eIIXDKCOrdvy61mQf6wE9a9F | |
258 8Dxh9Sts/wB9f51nzXN/ZW1Z7jEuyJUH8IAp5GaB0pa3OU8H+Iunm11y5AXCs29foea8/UfOR0Fe | |
259 3fFXTg8NveKOoMbH6cj+teKSLtkI7g1jazsdUXeJNHnAq1GelUkbJxVqM1oI6HRvmuUHqaKXw4C+ | |
260 owr1ywFFQxnH2/iPY2y5jbb/AH1Ga1luorlPMikDD2NFFd9GpJvU8mvTildGrZXS2drCp+7NIwY+ | |
261 3ArB1fS9kUgY8KSR70UVhJ++zopr3EcnFETc7s52kda0gSg+bG7JJ9jmiitMP8TM8R8KQ4S8cmnC | |
262 TPWiiu9HAxwJxk8CmTXMcEeWOB6dzRRRVk4xbRVKKlNJmPc3T3LgnhR0XsKhyBRRXlSk5O7PUikl | |
263 ZB5m3mni5KzLNIRleAPUUUVJQ5L6ZLhZYAEZSCGZQ3I9jxVx9S1C5cvLNvJ6kqP6Ciimop7hzNbE | |
264 sM9yCDtU/UV13hzxZPo91FMbNJQjAkbyOlFFP2cR+0l3PS7b4w2rqBNpMyt/sSg/0Fa0PxT0OTG+ | |
265 K7j+qA4/I0UUNElHxV4s0HW/D81vBcP54IeNWiYZP5ehNeM3NrP5rFImYZ6gUUVDirmsJNKxGsE6 | |
266 9YZB/wABNTJkcEEfWiigpM6rwgyR6vDLJ/q4zvb6Dmiiioe5dj//2Q== |