Decrypting Cobalt Strike Network Traffic

Introduction

hehe

So another year another Internal CTF within my university! For this time I was busy with my final year project so I prepared my challenges in advance. However, being my final year at university, my friends encouraged me that I needed to get a champion title for a CTF while i’m still in university. Having that said, I abandoned my challenges and gave the opportunity to the new committee to create the Forensics challenges. I have to say in all honesty I had low expectations in the beginning but I was impressed by the Forensics challenges made by Chai Cheng Xun, it was realistic and fun to do. Anyways, how was the CTF you maybe asking? Well, our team NT won first place! Thanks to the RE King Danisy Eisyraf and Queen of OSINT Chang Shiau Huei!

However, I’m not here to boast or talk about the CTF (because I was not involved in organising it lol). I’m here to tell you about the Hard challenge I did for the Forensics category initially (which i abandoned) for the CTF called SCP 4.0. Thinking about it now, it may be too difficult lmao. Anyways, this challenge was inspired by a HacktheBox Forensics challenge and I was able to recreate it!


Preparing the Environment

Screw You

So first and foremost, you need Cobalt Strike, specifically Cobalt Strike 4.X. BUT WAIT, how am I supposed to get Cobalt Strike??? IT’S A PAID PRODUCT??? Well, good luck lol.


┌──(jigsaw㉿jigsaw)-[~/Desktop/CobaltStrike]
└─$ sudo ./teamserver 192.168.142.129 jigsaw

Anyways, once you obtained Cobalt Strike, start up the server like this. The binary followed by the IP address of your Cobalt Strike server and finally the password to the Cobalt Strike server.


┌──(jigsaw㉿jigsaw)-[~/Desktop/CobaltStrike]
└─$ ./cobaltstrike

Then, start up the GUI for Cobalt Strike.


Cobalt Strike GUI

As John Hammond from Jurassic Park would say, Welcome to Cobalt Strike!


Target Machine

For the victim machine, it’s a simple Windows 10 machine installed with Wireshark and Procdump. These tools are used to capture the network traffic as well as dumping processes respectively. Of course, Windows Defender is down.


Creating a Payload

Now, with the environment all setup, let’s create a payload. For simplicity sake, it will be a simple Cobalt Strike beacon executable.


Payload Type

It will be configured with a windows/beacon_http/reverse_http beacon listening on port 80.


Saving the Payload

Well, just save it somewhere.


Drive By Download

With the payload created, we’ll host the file as a drive by download.


Drive By URL

So, all we need to do is to copy the URL and paste it onto our victim machine’s browser and away we go!


Awayyyy We Go


Exploiting the Victim Machine

Wireshark

With our payload downloaded on the victim’s machine, we can execute it right? RIGHT? Yea no, let’s start up Wireshark.


Callback from Beacon

Now with Wireshark capturing our packets, let’s launch the payload and watch Cobalt Strike be happy with a callback.


Interacting with Beacon

Let’s interact with the beacon and start creating some fluff and being a CTF challenge, a flag.


Dumping the Process

Current Processes

When you’re done creating fluff and as well as the flag, let’s stop capturing packets with Wireshark and dump the process of the beacon as part of the challenge.


Dumping Process with Procdump

You can dump the process with Procdump with the executable followed by the Pid.


Forensics Analysis

Now here’s where the real challenge starts. A network capture file and a process dump. The reason why this challenge is ranked Hard is because Cobalt Strike 4.X does not send and receive data in plain text. It uses encryption specifically AES-256 in CBC mode with HMAC-SHA-256 before sending the data to and from the victim and the attacker.

Luckily for us, there is a solution thanks to Didier Stevens’ blog which is divided in 7 parts. For a detailed explanation, you can refer to his blog on NVISO Labs.

┌──(jigsaw㉿jigsaw)-[~/Desktop/scp-4.0]
└─$ python3 cs-parse-http-traffic.py -k unknown capture.pcapng

First, cs-parse-http-traffic.py is used extract the encrypted data from the network capture file.


Packet number: 40
HTTP response (for request 36 GET)
Length raw data: 64
6141f2872594360aa3411b33c61582e3920f41bf72af502863e32a978cb1b3f82f3979aae93569d0c06784672b6e73b90fffbcbe4be2fc62a00a8d0cea4fb299

Packet number: 47
HTTP request POST
http://192.168.142.129/submit.php?id=1850308416
Length raw data: 68
000000407468637f4035f8e23e604e58262415b22150becd1158da6748936cff0b67e7dfe9910af33bab1c118045bd0f418c51caaeb58d30acd639acb17f6b9769e215a3

Packet number: 94
HTTP response (for request 91 GET)
Length raw data: 80
85c3951d0e9f00be1aef2d4b4b02f54de8245162c4bc967ef23691d1de1d21ee1ec2c1d766f66d20e9d44e996d5620977af1d17dfa5046ad0b9ee1fd83a2291a47de1accfbc9f570b5064b516eb782ea

Packet number: 102
HTTP request POST
http://192.168.142.129/submit.php?id=1850308416
Length raw data: 2996
00000bb0c362ecfc8b96d5db1957250013414128e63c3ca49d3b9e674ab1d6f2b706a99082ec5369291810833e283afe9afafa495f688a9bc950522a627f833e70859b7cb6c2c8de5f55c0aa677e1129237ea18e94c9d85664b3acb9e0baf12daac392f18633b96dab71c99960023b38b47a3c567ac75b3013f8ecee1b27926a800c1a7e5bf7448d8ab63d01090bbfa8f1955078dd616b9c22eae01c0e7fcb9a3043335996784278e537cd05af6b7086e9186f3393708e17ece5d3a4f63e189f3fb32ba7a9683bc49a87d9f40d05d9e620ffbcd56c0b93f1088ebe940438f7fd9333f23aeb30210b915d6039844de4f5f69d8fb296536b0a1ac6e407b3c3cc3868858c0c29ab5c0f0f7ba75cab85d9da72cab013aa9380f407e5973ef120b6c4bacdcf8106cf4ddef13ccb4ae7ddb9ed5890f06a98e04d8e16b7ccdb86359d587cd8d99b19121806892b70538c4708602a8c866fe26f2954d453f64aa9f8ad2b139653755fe719fa1c628b3901917e642fd4349f9bbfc204a3770855b163d2e42d3a58bc40c9db8020e0502f052e5f205eae8b8279a2231a17469d34215a7191346a3ed94009875490cf1c1c03421a19682a29ae3421f5bca2435536f66b8514fce0469345980465683d746e543c8baaf81965717c15a39933479628f86ab913c0501d80a0da2cc282b086dd61368f9ff6d316b03ace62028696e2d0374b97e70231f555e087792ee5a0d164d4df87e42f0a38659541b0e199f2112798019298f76db31fa063a9403323e3f28cbb6dbec7c7ad93c2172e2d04da09bbb85217b24fa94d7505538caee628d1c5622fb2304d63d33f36ef5e67de98c60d36493ab0e6d27c681573239b7639554aba9de098fb3bd062277d284e66a89ba03c9a403a8157365abb8b1448010ce8b1fe4314d2f6e394f32620a01d853954b749c2c1db7a20df35904a81d399742d0f1097c2fcd298d2a48f5e397fb00f2446096343021a1507fe9f65c29367d26a8f72da4ebf95c75a27ff40aa3754a1770f292c14b455fc437f6cc5b198dd0fb7217936854a2bcc5705655e876dd6cb333aa9a0732f2dcde8674c86b64d694d26225fad7ecd04503cd938ae1790c09837a246a457993f5f09088bfa784ef70a965d20d8857f9d1393706fda513da5452e493a89c490d6191a2cf1d0776b963895fa65dfc7fdbcda78b51c5d3744abefa724a63a11e02e36394837f2957b5d1a79087a8fc35676698acdb411117d887e65e995fbf5acd7ebd52b4b615e91ef4001aada0130f98e83f59c2273cfa4a4e60aea1e5a97816c295910c5fe0929cd1147e68e40ce7646ee250504172a5b18f104ed76786cfa7cbdf90e12c2d14a3ba11efda4a1bd42ba75cb2153df697ef4cc8ad2feb2f32ac06456eff3f9a3fe542dfe76805375cdba4f8262a729b82e4e8a5e30e94b47df38b04dc0e4f9503a2c4edf1cf50c37a690e89906e7573a4d1d017cacff72cd646555aa76036e51f5d8709296312262380122d752ab0bd96c72a1e59fe4b715ea4ab60f210b3e77fb0a5521f923056a181e68b1dd5d12b06ae6682f13aaf5af67b3690096a6522717cf2ebddd324c3b4e3491389cf4fd9c8824d3a9508ff8748d0d782a36d12a7b9dd22841b48712937a1687edadfeeba30fc6f6fd840a4ae02aebdf5c277f4fb501c8938d031e3819906e8e53b75b75ce01213398755f5fba43395ca1660d105a4d7da1cffcab1b7bf357cdbb461a033d0ce0e4676aadc95744620a5240aa0aa8b129cadbe21e9c03a98998bcb352dbdb014b6442e7d0025d3dd442a52bc2f15998aeb4bf67b465cda5b39c6cb08de3a7d6d0e9b80371acdbed7ba1f4890ebbd6d5214ae3e291de6aafc8990e61d994e700e1c9d5ef7fddd707dcf63c875d3ad79829583af0bd1a7ff53eacf1e364685419fffdda59459a2307c8d23644bd2fea7dee39560bdd5e54b75fe5000fb5bf0f029126ed3bf0213544757594aa668f351987ff8b7bfe6afcc2bd3db96e8037c640cba5593cf2c8f4f3e0bc253b39dbc29efe396e70cbf5bb83742d93f67d247b6f96e04e493e4fbf11eb5160e398f30f1f071282a6be34e79a6460d4f3fdd0a7efe19a794cf2b96e00df8e6621c8b61e23bfe713b324c3d1b40b85494e3850e32c88febabc55c8da62f715d9f28eb3109176b904f12d6b6f3be43a2442de72bf882d094cf4e93ad905ef21dd409368d8062f441fd27aa72a66279cfe0456f2c4615f8ded22e25c2fcf5c27d40d037e2df05957256509c4e70ad3c92a8a560c6732bbd3bfc5cfab32bbdb2bfc2dec8da796d869fa429fe247883da9b314fd0a67f6bbf481cc23e46bf7edee31e0fac7cbaa068cb3e79b9387deebbf5dbec36154736bf05b865262c344fa5652323074b38df377435de6406749d5f45378d13b018f0662feb30c63402118c57154dfb8c820b321600f14272ad61e54e7fd7b3e88d2cf6ab14de48eaf6b20860abe91f62c3b960689e7789c2a422845bc296df406a62f34cbfb63f3b5355bcd3d3bc334e082022864161e666c3416b2e9803f1f31cfd9698c8c3352b3af52d344e30c8c5d0c6be8e3c21b49c029524fa73c5d079e233d8258aa4f264d98a25cf4fb01e9840f579ff61290afdd5fd595466968a2a348f9cc407b66b6b5d235c17793b67f3511fe26d7767aa8e93d6bc79eeeb3a96080809966c0d7de2bec5ce9ea9430c2b5e7cf3c4ee0368f4daa5d12e637b170402c22b44214e0576d865ee525d4e45d93506455c14565cb60414117ae161851da4468d0ecf8ac742e88184dfafd7f8aaf611c5778b59e413c6fe7739995587e10ea52844a5cea21df1fa1ed72aa8837d9154500e0cdf643c8edbd6195c7737b84796b15a0bb89a22979e30af68983ec71a12f0583769512ea8468b5684f09342c22cb16c607bee2d925c5f64f24637efca3d7723ec1c80012758f651d94817fef65e54aef94402197fdd1c11f01bb214fed2bb5d28379cf2b6491ddc3edb86210a24ec4856bba760b0da01f01a039bab80c3a78e9488c355a56b264aa063f6788e90f24c26949e5da504ac44a6a2e7acbb0e896fc40a846463a97897809ea01d811d23f5d91707aaf27e05a4331f01bfe1dd4b082fe13bb977a81c14d4912e2f48010df3afde72b335532cb6b58e8aeba295023719515a3f8845748a03c31753b95f5bda427671bbda3ae9cc8c5f0bf5b3cae4d01f911772de7063e9871f5cf04b8164a9ccbe3e60d7cf98739edd5b6f0f0ec9c467ed98285929b18379ffec70f1c489c37cd8866441b938a4db0a2545727bddd35c5caa59ca9a563968072079b373a4d2c3ad99bd30ce95872a4e3ff8105329ff29cc19112a92eb0fe674612618ed11a5684b393062979f7652b9899c5c728e6e404cd5d4f11e997ca8a8260d09ffa0b36756169093492da1d85c372dc781180edd440036d3b3c0c13ae321b96e27cfc0b5291597d7a87ed322887e39e05f35a731bbba275270e86608527e53ca69231daf1e88eb4eedd41bfa8fd6b68f97ad49c3e3855fb91a9f369da811bb319299ff4a2dd8f6a4de99305d28130ef517025a505b6c8a5be840dc2027591a14754836f4a8ebeb1bc5613545b365c3c67bbd1cd4c61b754aa4ae187479cae558a193d1f865a32649e48469857e875a3eb4882f6cc1e82ae591d40d46e69d8862dd5fb178c4d972da13a49b242fcf21894b25ea965fb60a3ef842a6b4b061c8495b6ed386ea93b9412ee06ea5400198abe8b66fab0c4a402c77a1a9e69bb4832b08082b7dfd51ab1980110c3af144771bddb622d2c044504baf1591c0658c64ae03154497cd55b8ea0b72960f216a15ec2daa464475fcdd8090893c0267f5d1d87373c6f8ec8d2bc8c1b51b3aa3311f619a382376a8ddcbb0196be9a9e1fe23fd1d952e74215496ea98a3e0c122770b34500bf14bcaaf67cfb7c5174d6e270b6d45ba2dca6da08b6ca3b97d4e76d83605fc1b28f480c754e335a7c0bcbebf370735691d8f56cbeaae53d2fa3536bd9ec508c49dc9c57343dd3b4309df8f7faa47152c9dd3dfc41af53f79a9bfa6eee835dfc7b1e060e745083335786d9b434bce5e16b552e72aa29344d21d9341680b894cd215949cd412c3d453c19fc5ff26d31b7fb42cbdb1f1e92df59b7e71efc2262b8a80bd0f6070471b39754628f2661d717f3290b3d47bd3606fab2095aecace6e69ad4fee988b1d0875b2ce5

Packet number: 123
HTTP response (for request 119 GET)
Length raw data: 64
f711c8fcc407cafd6894c33bd11e17f3167372f8340bde9b69637efe75b6d091ce20d10f95ed12bbe10e2087731095cf9d66610b7026ad87e62cc0ca7f84c486

Packet number: 130
HTTP request POST
http://192.168.142.129/submit.php?id=1850308416
Length raw data: 548
00000220c67b3cd12150d2ad219d5dd21627b7d15ceb952c5deaa3e409444af7ded3f1be3c3040c5a2689c9c8740ef781a8d7010294846722a7add91442776fdf147fa29cd50f681d5667f72af9aa784dda2959931cc04f5b35dbcf9ea8d9c2567a3492c77c4d78e8369d6c66d44f1f382e4bdc8077d14a18384c4474dac0a98ebcbc3a3b842d42c235b0389ec8c599a1fbcb9844cf29103b6b09db0a17a39715a480dbfdacec06e91df708d24b46ab15a4c91482782d8a2dbd172edb86e0a6c31858ee88eee2550d4cf9824b6ff626de45e38390508d1f829d8f575fde7972318efbd98c1cfc23482425dfea2dfb94c1bd2ea18dd96a202b2623b9c00077c8b1a0deaba9e99f424f74e8555f4982615ced9ac2721441fc7249dada838f021223cd5af1f13d0c1d559b090cc9c90f465f1a379c904dffef30bebcdaca7f481a97c07796cb3c75b0f516247aff01db556b75da666cdf9562293735ba2182692474d41ec487e1902fae499f1c60058eed56d187946c35f573e2d452f4cd09460b2c9e1078cdefbe4841a92e9027dca5cc012670c80f42c73456fca9f97317cb5970e3734914f73f75060922ede1345d0e4fd88594ae54089f7ed5ea9b483aa383cd516fe44996701784e0f670e140be7ae317b0c3088a7ff26bcd154f2a12579a0413c64b0771e15ea18cc24fd73570cd3fca822ec9e3c8d2bd77c3e9f4953101d5cab5ffa67dd045717de39173694fb45394b9cea74508f6b20f2ac6b23757b8f69e2cf8d

Packet number: 145
HTTP response (for request 141 GET)
Length raw data: 80
004299ba5d6ed29d5a4bb7330eb0fe55b632239e5bf0adf3ad1cc16b5c94b1ecf94ebb57dd4ae1daf66ced3d46957a64b03239d2163f77cecab24cc04182449b81a9aa0ca22a6bdad5fa87a660f5e8a1

Packet number: 153
HTTP request POST
http://192.168.142.129/submit.php?id=1850308416
Length raw data: 1796
0000070062c3b66a95cd260960e9804b20ac9848e039182683c22583dc812300ba181f01248bbb55320f141aa1109c005748a898ffe553e3a23956bc8916478f1f7fc90dc74cfd921c6856dde38b97fb605bbed696d5ac33bf16afec29602dbc2bf7fa44cabbff890583fd957e191ce195d8c709f7ed4c3fb4f95ec05c027fa8cfec3a4e98b812e51d71f545d09d4be8444aea89c2a3a38aaed435f9240cc7200c2b70681c92ae534d4fd88f448d05361f0e2dd7612f5a61286e6c8d889a2b496d7e48be9f289671eb54a39fb65c4c7df0a9930a14d9f8f4e05b2d8c813f98fae479e79a89063247baee7dc387e8721a00568f280a7616d7708c337cf3f5654bc6cc4ff4779794a130942ebc5386ef4e8b6c5589db07360af20df9313b27c6b3649c420ca28a3f5ec206c3fb6f9e625164a79de2638b76667f344fc2cf8e631e01aea33d9053e923538bba9c14513ba46c41a87ef6be36e7d7680d479fd802d9fe86b112ccb1b94a056606a3879baab6d20523bdbeccd00c4a9f358f3995479422e1e2297517dc73c05fd469e2fced1de41bb960adcb56f714d08e8d577fe7725140352c1869afcb9288b03e9f19e03d2eee8758e75b538e518d3be0619243476defbc8829ec4446e81273619667a40c0c64e2251a89d8eb2e2509d0de86c02c4fb1a3f6e413371e5b89b3431f62b1dff696ab86b75677ae51109cc9ee7b1cab91ffa1da224b1dd495df0c44051397ca1651065a88713aab3c8b1d4e70854a398664c97d17c04bff1e30f2092ff244dfb11daca8c58d6d84d2f20ceb80c85ba2ccadb13ac629ecbf6ff75089c65d068a8345531acf96ce2712c4923da58ba0f76e63c5738543abdfad80c226580459c9305ec9e12b13d39d6e65fd526ade1b530692ad7398eb9aac4d75c24b8d5a9bed163441411b771796de8a3d415115b039d174d35590943df2d8237c067090b82a6506c14295b713fca730160a2319ffd57d40ece503a868961d232cfa7226ad73cf9c27ed67e33577b6d75a7f7a7bfe302f518604b2e1af3d2497a37ed405dc165451d4fa50d3f1747656faf970618a0d71d4b93984f3ce32c0cfdaffb6cb4ae78adce8f44224d9874866a3b301a9328ddfe7c36885be65da1d73cd7767531fedd0ab158335ba7aa6f87f5b80fef4233afc04b4cd06c138e0af3db19e55cb39b278a5c04173de878f3cef17bbf79e5b3ae397b0752064a0ffa9322aaaadaa9d5705c6d1cc1d0e219e65180ea005cf66503e5ca7486e7a9716d11f203877afd6fb2668fbf257f54dd10fbd376b4bb779ecd953b4527044612077e2798d7231167797f78333982df9e84e6b0b4adfba6ffddae55979bf2765d2cea390e7b526363c707eae8da18349cca78eac4f96b7dab1e53f4a6305397b775d8d9a81771e22a1190de1fd8040de8211ad706a6d0e29c5cba7c5d7643dca92d108609eb578e08576706c281618ebf9b5625cf5cde20112a39beef738667c5074789c521a0d5d4772c098530bd3fa387e213b597bae5706a9eb2676281d00ba744585413ba769904150bf0fe7953dfe339499ec205d7e7c04e09b447910ef0e09a4d008a05e46b83b88153d380d2d87d66d18e633c28c4674c5825d40b729d739c187be23ec66546bf11ac59406489528f97dc47abd44f52abf4ebd9a84b5a88c1e93026a7d19b1060f13f4dbb4a42b5ee5d7295379a40b2ee9350199ad45d5dfadd37ab4b1262db5e123b18e682ab08067f2974170b4a336803e606df7cb87d19c2ad94150e45f391a0952a3c08e0a1880acad655ccb453f4819dda3e00dd008491b25c00c10eb75775985b030bd37ea8aaded3791e6e72d70da34ead658dd23482655a18aef53fdcd5c07a371379e01e01c834c71e650c768266f0e85149d996ed21d3078ea407ff3d57a9980ca4b786c20af2c41c9d3eb09392fbcc83c76add0781d69b87c527b779b7dd526e3a6450a5c310203995c51ea241bd3c2e49352cf87d1bf26d2c919b5a08c9abf509b6208fef4b1f763a9449cfca28a6046ca214e8bda296e2525c745bca952423b81cb1c5cc8b208b00c1ca5e66cbb0b1f676a6dfbe60696d834aff6dc903371f5624cc20dccc89e8933cac85e9338cf3774525df0e91d9f4c30735ede21f7c7ba41ce5354bdae0cd1fde1568b80331b64e8eb55d7a6d4dc542630f7e7ee548ee87a5d89e8b1ac4a1a59d8d3a2413a4d51acd381894f0bf8f07709c77e909a1da7d0cb036243e41443934b8a95c0e80eeab69072e465c7cb4a875c2c40941533d01bc9578f920e990aee6c5f96477465fbb05603f69ab9d2a1878279e373d19137a77d8d42d58d349935743ba90b53eed5575d0c6e884421dd8dbacd69d9ce78dc2e5ccf4381917791c53fe1d90026802092f9da318ac09029e7e8b23585446d3118ebb45ca0840277d6e5467e52e5bb85ba07c6222fb775d0b365e0383a231d759a8397c10c9c41a691102529f160b9dfbbc0c91886a39dad5dd5cded08b524d1c308a5b61e40f0d66fd96a6cef

Packet number: 240
HTTP response (for request 207 GET)
Length raw data: 43616
8c7e997a281c47d14d15846ee48ab59745b56b080624b7b464437644f72cbfbbd22802c2394aee33fba0a21edc8684e6c79a75878721d8958f5bc53102e4b6c8150bf87cf14d331a3f454f8d98c9e394f9a1ca5d4a666c6651becdb8c7eea0646c27b5d9f104cf426974abb7abe72064b2accc67f139da758461de51f5d21d5c802848e9a67c72b2d8090f3cde974442aab21c02bd7c223c8015f5bae4b86613a69aa57d2033940111e9d2666bfc325abe869972fe7c9ff341fc734b402a5b31c2e26c02ede5ab5f5925c77e216bdc828b8f611d91c75b2cd6e611488c47d7a4e97d49c0dd02db4929d21c04d04f274581d0c135689d29cc6065e6952b22eb55d1d4e2fa775d4e6946e5d127080ae8c15c9d8f38c4ab105ba4ad99f556d4f8444cf3692456632bb10ce102f5e4735ab1cb405d399015e04e9034286bee86496fcb0d1ff8721409afdd36eda3eb9b7297799c7b7746a4f7066450f4213af03bfcfb42659ec3ff294fc2c92de72070f2f1997ec744440c50a71850cd2f6b3fd0cf2e673cfc2bee5a925fc097d34093e3ab3d907a9f88571d628fd5440386e87d866876885c31aa30f22b66326deec96f7ce7ee78220999765271d602d6978b081fa5174b50631893f902fd08168cffba70e6e32ae3015e71ee0387359f4ad720661c1582eb2a7ed5a265fe29ee35dc9f5d5d357eef1cffdab9d1c9f927e387094bcd0a518ed43057e063536362a2602c0dc2ee0cc62f2951643eaad641538db3823f75d2813bc1691562066059c0250a79dbecb941c2647e044e977e407b1c65cc63f52e89c939bb02e3192b2d796870539d7a1899c8a0a90f4ff6cc0d719e4f04fb5b8173e8a707ddbc3dcdebab98f37b8a6a3447676799fb42a70c073c2ed764b1ac45d82b7708038aad586b306c86552bcd19db4d1b47c1e3bc1efa4ea19edc77eb3831cbd4692522c97c7695513593145c92073672f717933163eea5ece015aab68e88abb48891bd4255ecd846b260b9f7002074b51a3c1b0ce32ffbf5717f1039d8f71de859f96dbce9efdf055f907b5454520b2cbb4922d9df63986a2cfda44314d5e18ac090813bab6cb7b72ef0fe65c6cd39f24d0cfc92070ed118d3fffeff6636ef13b449dd2ddb95d93d4fb041690f3134804e6b59d835d2adb120fb0291018489c67bc376f4e5bbda4822aa017f59fadf23e128ac8e688db8f3e7accaa8d4144da19f9afb5d7a5cb61a5641c399ee7bd5aecb3aeef78713363c4d5087665b8f614525d0a04be7ceae7c791dcb1d385dabc150d84487be48b1fff6bd5a9e1b01249215742eedf34926fff1cef6f5ecfe1658d48e975c36621dacad44fc3c2c67cedfb04958307990372b7ae5a867497c13c45864e015656479e3a03c54a2b12c80c3f021d5c4fad87e8bac733e37d6f4385da42e0cad8939143a5a2ffb053a00e7412608cde68fc1e142af3cf906a9484eb836ec10a5c1836ccb21c11c9ae7ac9f1437c9d7711b2e25477a31a6449eac4e1ce5495f3c0b99d636e8cf5e670f5a9112cb1588501786164d8c9af0519c643dadb49f406ee421eb7fae450f99f43a82869b2a8fdfa353e8c8b6e4257ef402f48e37a56cf1037687fd3ddee232710ae36ff98e14325bc7a57e4f0af71fb0bed0b72f7fe0c1ed3e1eff04db6bf9b8df6b45abafd18e1319e7d14830a1fbe5a99535bbf6ab6db8ad53680663371878ee24944e4adc02e4972e0bf061e808fe33baade103735b494a51540aa9048ec2a6a2af6a6e5ad3c6188620146c8f0916fc2571700919e01f9a3b14ad1482e48ce7b38c7950e2478d64803e5eedf916ea1d2f42126e0234e97c24b8c184dfea787663806492347628393761658cc3fda5cee090e1c946cf3126120e3747a3b5c64682a32e536b39e9d6d659fa26859c983d9e38f4a600dc5cd4e94387d0b5f57f2a2e53f64bff1aa2bdc26e030fbf564139fd400624c56cc7eece6f5f69136e8e52adc26e64c924ea9823e2ab6095679c708c49faf01d07d0cba8472699a087a1bf68cbc0917e5671dbfd729d41d0fdb85824197b84e71cfcf6a17c730466e2c25a8149882afa7ab2d0cc4aee55c88ddbc378fd281d434f15de1af99d4729d55b330cdd0248997ac2c8ffc7e6532bc7f82d5c0c7e3faf28f4de7686b8ccc4f4219f04cf2c8d0b2d1377cf487fe515bb1da4e97be4c3d28b0063d09917a851d1d4f8f5098133215d3414b412e3f67e740bb72f950c9a34b823a62cfe334cb34d7c1a77dedfa9937f562e9e712db8737ec26b91c2413a8ad28d1bd7efe8e46947c491c16edf925a4e4a7bf2d4dc68eafc95cbc14d110c05638f8970efa5e10148305f1c99ae936efbe0940c7b530cf44e0706c830a132ca819e75821cd44420a1b915b06863bd0a9e952ab77833d2c8120e9d80b8ff17f3e42b213b6a58764e48aebffbf517755ffbb380bd8980475d23f336d2acfa5021ac8d9a05a3f13db67677558169b077a90dca276d8482940b0f7939719cb40db43e0b8e8a5d6073c8c287b8554862967ff4e1e43b078dd9320fb127990e54c9e483ec362c5d7f48ebc4311d7446fc95c53cb4bdda2de9c3f44e9c073ee248577db7f28be317e873e07a7c8b5c8420701c366d62f74fe017d3cbc41a8caef7332eb9f6e1c5b003ad2d2bbdc098e53c312b540c3c2609f3dd69c80197cc363417a62def466ec78c25d0362fbc1233029e1f87a5ee40a47a087655dad01c010d8b6e4cfa05ac7503a7e7e4a671a3fef600c9d2815ae11a77767ef0ad18cf46a0b8139a92040ce7771e05d3edc3bc76193609ebbecfcd5a15450eb14a1b3ae957798ba2a1b7b453b44dae2f7347f3ef2f4bcb125ac45ad4b746e9b1d9b13827728c9c95e899ff8799f7831c7f718e30c3623e1ddc345508677696b5f16ade16e7a3ea174bbd6c93e7ddef41cf9b9d683c3af4ed743889fd9cad2b1f660a92da83fe2d01e905b743585b90e21af6fa1e336b0c6d9854ea3ac689b2e969b06b1161bbad3e62f85ff2762f0491865b22d7d868bf9b52b45660e1e75bf5d8955fc99fce1f4a09eab79da17b09b271bb7a13333f4ab198b8ddaa612948c4c16c1daf94fc278c7e96853c4bd7d5f54fe4d7420dec92e6b79de15bf668f2141a6ecc9121151ae23d269ca88cfdcd56f6faaae0f6ae2a4f3fab04d0143ed676de68d7aa9dabf7eab5e7b077b7f2d37895954517fb3deb3e3c5e0ce856e966d7121d70c92351e120ae899bd2d82add1753133ebd0e84743f5614efd2540af53a5a27f2ed044ef90cf66f26778923fb00947a20ac50164a503be5c234fdba47857f22754331befc7ac2812ff8859a90446641e12881e911c171561b3e55d52147af5c0ca1f84f9e63d89399a2664d0b5dc59bbfd1bb7556eeff0f873ec7a7e1df7ee3706ffdd2f118e6f7ac0e1efe68ed32c53ed99677314fe9d6311cfcd6f2664f1fa4e694f7d017feef24b7ff1c323f746de859f3bd1a91a3b1ba192c5e25e6fa9e59cac2d52b6b475fb4442aa5af1c15287c7eb687f74ce68ab9ed4b59ccf4098144b4cff821f81bd0da26a44cc3a34f77b35427f1415c98d102c58996194e48ef692a4e9919eb0558190707760cb62434d75e5d60fd99fa25df74433cfadef3d9d77449a30b18181b4dfc514787629f159365411ba1389d6ed817ae04aa932a2be20a26964acd126cfa63e655b31c258205914da2480067f66caf038f87de1bbebd65a42227c9235bdaa90ad4cec423adcaad74d046d8cf5fc55375b99b04efcb3e555775b6b7960e12f2605f9db6728f596cd978366baf2475035802f1e26a6f2441aca9815c3fb59b1e517aa31abb73007e44d673af093ef726dee62ab47a8e90eb749543feb0ca11849b7d2fb96e708dadc8bbf7672391301b6e5b7c46ee202e9b6b518fec782cd3f2a9fcc5251beadd06758d5063df6f2b09d2c293fc2ac9591c2633ec3d2b897d35c77ca5efeaeeab753fc9c6abe4be019a517c52abbac47e802792e34d6e5cade6e77045ab2f1c442373207425d2e87ae7ef9671e792ee18ce8a92e142a8e9b7061e656676a8139755eabbede87389c720131088b89eadd3b2aae7ae36343622441b0c4cb0d443f48fc530ff6f24b3151ca43f73fd97d7d6dc32d79f414dc8504b20919386c03329bbb32276ca3dec7d28ad5c2901df8e4363e0f0e268208f6a19792f65c9c70f7245432c3155965c101a396bacabd4cb98b7e22685a907dedb41198f8065f3f6a3745bda9bca96dc8f5d7f61a08d7777f9e8216a46d0b58f7b911850c927e6bcf78d239564b0acf3e6ce8d1746bd5d56b7007e37cae5eaa67390249b4e61fcd78493177dfa8d62d3e74d953c9ecd000b2ecd3cf592b5f844a924321ee936e678bd236f66e1e9cee9403a12040799d915f3b96c027581e9ab3922c205c94d32ab64bb263819b9d447aea3a347317b0f52ae2bbe417e1158c221ad68c53f9f173ec62d6a069e77094c3bb644140b8fb7c33ec28b0b32b0947a9d88617e68025893fed68ce824081adf351e4ab83d29bbd07dff2596953d5f2da9f6e06a5c2306a574146ebe669687fc9c82926046fcbc7234d5b73db5b4627fec4d8569078b3a4537b7115bbd582e07115c5d7af340603cf7eb9c15d3b1a9d6130b9af50591310a7da9e5139299548366e68d0a21f3cabc9760b1b9efc0e24aea34f727b5dadcfe86e422d3af2e03c864016a8b9fe85450f8cd7b8027e600918fab233c099a5804d55ef1436ef4393f932a906d7c3786b04446937f906348fd8cd4aeed904e72416f6e15ba9e4a2071f5c86bfd2247380821b07c1a452b4d2017a38df3804ef1da7f95b2f9542bde8e1dbf9e62f47067d24c7b0fb4cc820fe84aa98013d6aae225d3ebb1d88130d20635a9b0712b1768e2b68cb0e7c00d8e4c32099bcd7bf4a072191846346d63c5ea89c71c9fa9c4a91dccc23f96348d344cefc2eff95c178920d215f2b872292584079525431c00254b76a0c8c238667236220d07a9c7aa39db08f7677e97e4b77d3fd8eedf5f675b908bfc4e69740b89036df910a959246dcdc2b7b740205fc204a914788e876574c3a0140fe6717e90a04a4ea760537cac41f01e197ac1d3ebe7f3c5470ca93963c78fe5f49890df990d406df5db19fbeb916e3fa500a7e9faea79238b41182d173b385a819579fcfe1e3e3d2fd584cfe0ad24b14786057ae0a67735df67828219f9382d4f2476c2a9ed7ed7e63cba156fa461d50033816ce7475d409285a1b1b252a682ef0a88035a2809399b1a94cab19e6a604364067787e1b073099d46eaaa46ab1c0829dedb6970de2b636643299f9016832dbdb9b2e562755b5b3a35e8851e7ec05b89401643aa976a18c9844d92d5a97b7c25b2871004a5d4d0c74b6d78d32e284798f6e04562ae3dfb512c3dbaf2f2f045b21c458a22e389a3334da009bb8f718502436d5d59d8aff8c9a7f348fa95c0d1a7f5a307ba22673ce0a07e4152ef941ee8c71cca24bf6280e022cacedd255e7c89f37f6a5e22afcf7927f76bea77ac747c1db3d35e380ccd05fb918ffe84a3b5370371c631e4477652bae5383799dfb5f72b86c830930c022a3193f47302145679d150fb2c35bf114596874b356330c36f3a9f80c728ac24705bf2274e37ef83848ca94e032cd23a71c564834af6e0cbba9658c815e0f918e492d2af11bbf6622e84cf5dd51b48bf992ad79d8d15eefd0f61a388cf11a366a5e707c2020c04a4a42df839c94aa6594e60d28c9549bf4e004c0d69165fcc602a185372d1f4f640e42cbaefe200c1ec06fffd278856e92ba8a5cec49eb25c3f55cbbdacbc7c8889079dc681f658a3dbd913473bc16acede41fef27e0e29ef9f7016d6e935f36b03a8416d828e14b43430e8dcc93d309ee06946bba2914fe29270f53a691d4fa309952bf3ee91eb8dcaff51a14dcb748585c8c2f48331d847d18b101ec0d19a305e1017b3be00e49b3b1c35400025790f449b2f6153b61176bd35233c78b9837638e9bd75bfc83fda4da1579be377aa252f8544f510cf2b8c8db09d7576b2c6c004baf03f70ab97112d0f2a8c988e2da1302fc2c1de5f143c877d74ee3f3338c6eef887e6ca397823f8dc458ee36386188b067535b71e3a0d1c9f3237cc7b034a151db141f83e7c9bc6daf677ed29ba2f6af8a83dde59516b48445b3fea71aa37304de1a485817e2294ecea9708e83dedd3b79d5b7e555c6eb8c39af536db54bc54efbcbf5648ae36efdbb352c9c824748f9bfabd5ca0f5005f254dd2d0662e4ae1e645ad52f2c3499fa4925851a4d987afd591c234ecb2b0b7a876fc0ca080d1169432e9ca238b90318931739de5734f0c5dc485bdfde708a9c466326ea4f8b24363194a95183afcad0fa4ad88aa78eba5bf7525eca9ddc8903b36b7c4ce4086063969d5d00c102d8a3ad91bc63c837c9bd56d1ad4e0e4479516b7fe7fa04d5f4f480f2bae1c069cf49b86c386d1005123d351fcf2000e19dca21bd4eafbdaf301b0c0218a3adb87995f529005af1a79940011592276411d76a7d69c4057cccd7640c5728015c3486be3b2d85b0f3d8e0d8ff5439fc27577efb95f8f7f384976ec7f368aa46f9f5a5968c6f79c80e57b78489c358fb7927d2c446800007edb2030cce6e4321345d1a52a9382ec56a7438b0b59599983e9046467d5856d54104fe1217f228df060f72d2543937927a58695e6514f8796b4930789538f9fa23a70aaf781d6aae18dd6f2f19d5db67d40f71479d8aa3113328a02d5651ed5493c187ee519f2adf435b864337e1cdbf242970abb89cfb235029704af7d04e9bcb79b5113b8b83f06c4b9b35d4886ace7d17c6c0679f061c447ffbeb8a658e0a5c9658412c8c6d09f4f4738566b20b4c5a3a04bd229d1adf77a647abbc7bd5301199565455c9b909200680e78af026f56b835cade2facb01e5f007a68f03b1a86e45d2b3265cc5bd8c42a7760ed2ad91cab2ddc60467b2cc162ef4be455cd788334032619f45c38b80bef920cd9c5dadd77b6bb2a90bbc851acb3b00ea9d5679da73a760b98924ef37d2c4d62257e3f49e3a9ede6a9f3912b6a8b218bb4d0836c8f951b057b55f64275de9d3319e37255d0dce464691e94825958de9f5b6034e691446b24bc3eb469fb98e9127ae0f152d90393fa8d429598e1d948a0478765ff00a38cb536b3abf45bb20a4b4bcafa1a2b11ae491dd1f39a3ecf339ca357a6c1daf677c6bb5f10810d5847d97f550bd284e258303fb124a02086b717ea73b7c224f2b949a081199f7dbe9ca85cef67dbbaea64fa033325871b64389d7cda3c7db646fe011502c9f5711d82d1d74d92d1f567bffab19788bdfd023e860bf5340950c3b70b8267e256203f76c96ea4856fe361f281226ef1c096486f8778ba1916470d0bc26031b56b3587a17750c2152904518da8489dfd20bef91bdcb31530a4702407c74fd3ac4519ce3d10ad76a7fa0fcbf2e6c88203a4a70c261ce7143ee52b2bd0dddf8b329eb5ee96cc14244e380fc6a3bee19fbf34638e813fce724a3f386732f8be76d296a73053a0223fb69356fcde173234e51010070568d43827e2a9c253496b591256ba97dc620c0356d4c3ac976940a5c5b3c4c8ebd8f129da4fb8d20f3be1c84c379b3d041ba250481ad7daf0e5df3eab540e0534895a26cfd8eeaab54d2bf652e0f3885c313ddaf73796af10611e64b99fa27caf066ba826dd5f777ed4ac7af2485f7677ed9b345f246ffccac948a34531cd630d6994695e21c80414a81c062d2ecd3ee10eccefc10fa6c1a7972e214ee58b4c9c5394034773c9db1b1a21c7bc6b9e74f2e78c78842de9121188c08ec7347e45e2c75dc2d1a5a96baa33a83b53e423b6d4ed264481175bb39daf3d5b400fc6aaea3ffa055e8a790db4e6ca5ff7839aa3c3beae3eb35a5d44906c7fd2ff4f57d61c94fed461b5daf2ebd44539234fa7cc94ad81c33c91879d22776829008ef52de22a51b81e141acc397515c6bf4ab2ed3e77469fcd8e3b85781f6bc29f1083f4090ffc65384403f1a4995fe8b4868d38ac8851128a0ae7f032efd09aa8745aad532ff1d97ec38dae186af9d8ae992e15d518de886488cffe4fa0e6e437aa48d9ba8d897bd8abca5acd632ac8a9baa8e722c3a0c6fd7f821e653442975b1b80ea53ec9f995fcb2037a1ac667cb6ac5ddf3b366495c45c5925c46da514edaf72838b5374e89cd499fc28aab282208d4d35f40df883d27522736e0cd5c87059fd56d1777ebd763c9ffb197d2f594af36af216aed0b7c4afe986da895d7db9940e60ba91ebf31cba10530ba4c7b0ce764666a62b724e1d3bbf3df53d4bab22f892abd0a194d96fb8948c820e7865417401cef37a16eacbc8709d81e7321a9f912702b106b68f0d2521687e618e5e11fce2685da0740e3dee23edcb75c3d6f88965e581e38c56686c2637448706d5796cc00be03cf8f6de261f4751f48ccd5029367fb1858067fa7acff700b9093330f4ffeaeecd5b7192acf97df7ad7ca33d84d6ea28f3685456e1bf45c966cfde75f41054a56506b50af59bb02196536e3c8052d90c2b6131eeef10199ddc4cc45fa04e4d933d7451108c2d364b4c21b8751f6f9a11e481660671fb7bf7ac739794052d10256da62d5fe8b58b2e1ec6516630928605f8c57952125ea6339382832735f5305640f3af8580655d552b6421500baf18c03d40afe0f810bcc72e2d2c866aaf5926510733309df3e8f8b308bd348f8c03973ea79fc9ebd2c913e3fc2ef6feaff70165f292785da184763f96a1ceda5c3ec1e840f50d60100cee4b515e66f8e1caf149a78f75fe6abc7fe793d7799ec6749669fbbe2913bec44ff894926c1efecad3950d8c40b24694e27c1373266ade33a44d743d9075e8d18cb40be6ed4fd9a19806a91bba4abfe28fa8b8990d78fd810cb20b91381dec606961630f8ed54bfc7613e009345f2a721f60845a7904c3a065122e2e9271ba8f4fb8385da32bdfcc3319adce1405d2c95675a24e7355f2dc5c429d9309cd9fe220bacd575481750673d77ed3096bd88b65ba960db03c84e441d501e7f5405794e26754574d06b413b19d2efcbe67096b458938d099711c6f197bb9609de36d25306171c4edef60a11282385385daad5273e70eef1dbfffd9264aebd5c14721a6faf61993351615c3b1d696aef433d37f25315cf9e1f3de106b20e100dcc3ba25753e1c5aacc9c03d30d3685bbfe9e69540daf5d180d861dba8308c00e52dcf77fba5423683b775a27f2e6a5c5b1bb401eb62735d18e64712f352ec0ddaee82115e600bb5be8e9cd89ff39442e7b31d5245ce38ff09c89198865dec553724bb61c631253887f9c601be545ba9342354b2bb939fd7a9c46566f8c8ada419ad95fa2ec49f727eee5898f2ecdcc9c3665def87b43b6837e3cd403d24a8488184ce8d8dd5ec368a019bd83e96ac64bc27f651779f0b5ca79793e9979047b122218c4d29c39ec96fb6448509238a12dfaf7ddfdaaf5d789ac1d748faccf4372dd49b3c0e9dff8b779df84c50c4c89a17ebb5239133c927ff8b2197e567a94f19f60e54aa77d96f84430a794a67be9594070261e2728ddc2d262e31b36fd7f21300e7224029b35364934aaac8ce06b0190167d2da6a42e737e0db0e5e61714534964ece1add4c07bf3adee3f954a294b32458bc98450012096c109f03d7382e6c3f27c19a4b09aed693b136884699ce0985aa1d2ad121f967bfa506e54c8891ada602b29e1d435c25272d5c7814fcd3545fa9906d581b104b30c0f77228c24187d93efab8d148e70561f7eb16c6d9329dae197af1c5014cddb6bc20aea4bf2bfbb4582cc90bc8c7ecf2e66f76507b64279ac3d5ff8d410194bf6e3ef48660d9bae59e78b4f464d8d596fb016c0094d3a10df0b5dc14ac4f98ca49a4ee2355ce9c318aff422190141849700e6a5e3ff0627f4e09f434a090039af96889079da4781daf1eedb8d5539afffcead0a1a685a8b55a881b4d2fda75962b2bfc71b97f3d58d76eb7f794b2337c56fc592a399c041564b9d05107de9fa6bb2d2f95761fcba8c29fbcefd71c509995137911a7dcbf4d5f80cc94ea8510fc981e50957fc4841ab0428ac3112876023bbb1fb392f9777fe4265eff12bf4188e69ba1614f4587c846590ddf2832b4486c8e538e8a058ca5c10d6a4080654e88ad12f569bc6b06b07c3db516fef3b2bbddb13074a571d210fc6bb84dac32107ecfad08145c8651be47a593d4a92b8bae1003f2201ce8277b351f7f197b5674898a4ee1b34dab8d6c7adc582a3f287c1e5d53bcc212ff26b32526e10e562d65e56407346e1e1627fca5747d2f90e4df08f7aae75981e049895a8847faf237ed201ff616fcc46764c2964831b6d7d8b31b1d3d330664f04a8469f4ef8202568858546e1aea5ba3a50a336dc3b9b1aa11108659c32a8dba38abb1525aa6afed1638d39b6b7acaa1ea13a8ca4f8dfc94a43e277265eb41baa6c0239203eb1b0c96025a7a887d2c13b808cc90abdf321df05de61bc9e62036b22d4ba8ca0b016fc909646bcbcc90b0e244cf2297fd6c752e7c46a608490bdb0caa21efa86f6056a6cbb766f4b6b42c5620d3aac00f7db55ebc49f7340f7dafd1ded4ce03385ea3913ed638a5aa89ba31ddb04e0f3b7a60874a7aa4ec03ba5be7dda8f6008876c7c50d043c1d7b5e8400e8c4b3a7c8d681b6d8e148b25459683b839473f751bd7b59e5ff80b0fd9d23321c0ea1d1feef9b4d08a33a5c37c1d82fc228cf4606b578ac2c3731c08a91af6889bc15ee4cd65632e687c1603d9f0fa740223635bf83138395a948ffd12d38166549f94899a34064fd2b33d48b3886f23e4532471525ee7c8c4b9984d5fddacfe777981d22ed6b28bcf3bc3e68d6fa937020e2bdccc7c3b580cb969bb9eb0fbc645c4511cd6018d18f12bfe30c25d2f8ae53b072f94a73573fda9e4b0a40524d89d109bdaba443cdd0bd93e6b77ab00624dbfbdfd1e76254df6d85a912b21c2799bf67334cb81db6446ccf7aba52ca4740c47672d75d709d4ba48e60d0bc7f11021cf6667845840e764e943fb6c9be86fd9fd3b0a296536c68b27245bcf9fdfbd2b41587399d5080bf2e6bb2bcf9652e58fe421292a4c71584978c8da1303e40a3628de8a9bcb4f4243440439b8f6a49a331a11bb4b2b135a2f09c4c7cb0fed7681f91e9e5f2680f3f1849835b08c204ba27899d687f972b654c9a3aa53f7b81ddc83b23664e0df5978835ec09153ee14f207ea4cec40435c7cf45de4c0959fd76a9c3ae6b715ff8788dbbd278add94b5e220a1957649c1a723f6dc90d3e1251b8730fe44775c50af0e1524218cfea89bbc8edfebac2f5c324003bf319a8b9387b36761542071122f40224f58ee25b9736384bc47c720551bdadb64cd0c0d3af2e226b44f89a47712c4e9306145a525968bc4b0e17a865b479502b46a8ad48c741b585c83b4206ba1d75573f90593234ca496bbaf52f57f1f594dbaaafd6d981c4c02021f2693622f49f666f1cd2099560cc5a41778ea559a7be253a766457f96fc667458c8302b9e25d6c2f766cba8adf43ae36ea63e2615dfe361b9c57f8aaca66691d19da888b949c263e190a51234db56c2a54b9c638aacc09a52087b748f46558f963d5eb3d5d341be33b5592e12cab9543c58b8ca149008453f64714bda27a31f1c33a64f567c32dc94ecd383574dd0df95a8537e032a353daf460701fbf9abfb5b66bb0f46476435d99ac1720e0a5efbe4593a65ad0babc343e6ac0a470341992f1eb3dac6cea572590a17288f206ea3dc4902e1720ee99c8e9ef3d0d7eb047a6e60d50d7624b6dc054a8c3fd20c2a629dd3013cd74b52649ac99e81085ab006a6ae20129c782858b177d9a81c6e42d0ceb50c9d722e85499c90388db04c6ba927825bf8a0450a87313ec0cb5cf46824f8bbb0531d1f33e7423a018a0d90faa89da67b4ff88f57082508f75064648fceb67cdda328bc01cdf4310d8646b33413d1b939604af65cfc93fa2d2a5cda3074c4ad5db6bc10a36b8b4bfc7398ba6932c561b6d145dbdee2748ab961952195bebf68d444489abe0f81639c5de865bc902c9718f304f4d01958a3b0ea893fd741ad76e1ba74456873257aae7e38c4ec7e58e601fdce418438434a5eb8d0596bd7b43eb8439833eeae8b2ca89df20982933db10b1f51c214f0c814212d396d772e87dfbfc8a1bc898c06fca40a63c80e6d89c3fd9018b90363305d6357eb673e985dd954ce3cdab3da69a47c62113696d510be03788ca053661b9b29f94843e420ab507101186979ee975c1b59b1ed6fdb0e6a52d8312b757483a1c3085e9491165c842773a173d6512161677d0935931f4ba2b0f5ebb47970e01f0207910022a883bcdc6fefa6f0ca60d2cb38fac4171caaf934bdcb994861c7ca95051f864264cedd6d0dfe5f848ac87ce3b95094e4bfdfe52a7ac3faad9d75dd731b21f76797144add54a8df8a5287599999edba33562accd9f6cd24ba5fff058dea68c8de783d25b102da5bd457ea04a0f380705fdf070a16863370bde883fa570a58ca44c5623dd0642eee70eafe4513528d44cdca891d1c0f460cf56ee7204cccec2a5753a11b4a724d18328906aa52781b71d2ab1a8d87fe2475534eadeba1df3a7bc429b939d1331dddec43882087f8ce6c9e3ee615ee94fdebff99b5befe6c0017b66820ffc7e32e79d7e1996971d6a6b23c89677e344183f9ea9bcd0166f8a80cd116b2cb91716725c41ee31894f4ed92e4949d72f3d14e943ea942976a76a5fb2904f409494aaf96b7e5671d1b0e0601a52157f464805e2aa8aebb8570430b8075a7acc8da605363a1a7b391ceed26301c918826e712713c20a95f14032f4498c76249cdab1330356738a6eafd96efc0a818586b65aee0bee3d05872c5f5b557b469f72082e7bd81f7b00f6c3ef0199fc3c26a17c6e4178a987c114a185ffea94078b48d95266c11f892d75d0b1ab91d6097f4380e96632e67698b3bef3b4b64f57a64fae228e614e65e080f14abf1fc0fa34c4bb045b6b405be35edf0bc9b29c7663d9b29e9353b002311f7d854e67f4f368da27736cd9fdb380cd861b4c7cadd34854916dfeb613d4c9172ac2d3fe4338e56c8964c64e5605f70acb74d1cafe1485f4110cae04779b1dff19c11cc9d6fde09e02eae8d550c5f3b2aa534d1e041f6a73c0681839b339839cddce07b8d26f9c6f6fa7b36f94aa7fedda1576b0d1aa1dbfd5b05837829d50801f1953ff67d3bf7e57efa3fcae2aecc22f5d0c249ff7ddc14c934896fea7bbf8e331ab5f7dc7d676f39d4e4cb4fa8fa37eb1eefa3f75e46e8ccc4a177d44524a4f2e78bd2882142a881e4a716035985a1e11fdc349fad5996fa57733578956bf1be3484938f5fd449d6c76123c96270f7cc714d1cc1d12249c213c99c1e578fcca6a7cf5a461778662543fcd882ebd411db21e6cc3ca7791ee8559e9170fff1cdc1f96bea6ac3d18af19e54b088f4cc341e9eb1874b0346e4311683ad34d91a5152571bb0c80295376c960ac9040de7bfdb60aef23c5a3e9a6f8d4c3d4c20717ba315c706c6bb4585b6b6e6ab019a0346ba0a68febf2b124f2145d94e2864ed9c176bb17ed96c0caf09da0bfe11ba535cafbdf7ff06b4203f19b276b2c227f8bbed405f282c462b782a2fff4a0657bbc97fa41299fcca597bdf80d8f174e599c14194643d13494dd2ed4825cd7ff4d05c3021617f481901d9090a61f080d6d57c2de2874aa9a19f862b8d07925b93d00dd3d75cd49aed96f3fba5761c84c18898a2855ef410c3911392469dd5e82cda20ae0c52c3a10e0a417e9a2f0f1ef95fdf1c93d80f85ee6d777b11077cf661c1b2a61fe9bb79cc6d5334cf56a6c245146c610b99aeb11a5be1c59ee82dd42514a661cc3e6ace0524b03a52d0e19d73b85687f357024bd113fbd7c89ca4961c0cc7f6cf8cd6e1a3cbc8f40e0fd60ffa0902490b2ab024a6722009360e23f235a38603451d36a2ff98616dc8d84a7fd42e583e52683a279bb958864047d8e95719c740202687de054c0aad9be29927a869565b7ae9d90ed15a21cc8df6559aa1bedbccd25aa3b6ee003fb8000f7ceb91c6281f869f4484a0529837ce30df4d69f03f0ccacffe33b441471fd3dc9e68b155048947fc5371ba6181ec1fbedb0164292a75f70550decfadf4b166c2faeb4c72a318dbf10b3f9b291588617af6d9a3cf8f4672bb6ba614ddc5179f13ba8d1e51cb845a5899bba25064f36433b11c235474d0bbf5a100c642dad58c062cd7faa509eac5197e33dada9f647547dea451b144ef0d559072f8ba8c52bc86f78b7443f303ea591c1fa32bb3b8d33ac5b3917f8fef67a162063809ff0e5ed8418c90dd2bdf4c614cfa7fea111405ca889cf13ca96d40fa354c5b49a1f565ef43ba4a6b05045213ff6bc326e7e3570527f5b47e2b24bd009d596e63a918b471185a21aafb7f969f35a6001daa7b58065adcbd9a5af95c86ee12c3c9887345a647351f90fb080fa42b64fd25bb15ae045d1557b34f3a8cf0af9c6bb8ca887d2ae78bd200215444332b85784234c6fa6d7a47320db47f86e0abbd6aea25f41125e641e4f3e1d40554d6481f6caff22f691ef9ef757080df7c19820f592fef0a5fd95c09ce4f84437d12f6fbafe4f51734c5333c11daed8e96012c1111bc6cc8a706d1ea78a2d79274312b1c90590f3602f0fd061aa0b6f1de61840342aa1985e64f0d7c0ad305c5771e36db136f79213ddaf43d658132ed919a415761d6429942cac3def59482f360645ecf129578ecdd8c1962c4c9aff64771dc655761e90c1b6137d964979b42f9a2f7eefe60fce178469e1b29a1b402a0c6adb3a8886a987a95f81756a6eba018caaa6fafdb33234185af520a5136d18c1d53cf1eb8f1e838043db5f8da212cc8b2cf1a004d9eea1539520fc82da10a8757c32480978cb318efff5ab3a9c2e66e1b073fc0b34d60de2abbe93d8ac5bd1e7b515978f8df81948baabdca8fb319d102e7b3236b2de4acdb0363167b02c6febb161e06fa9e44fae2aa044087be09d305e1ace7f21d0418a3f5879af13b66c0bcd3d3c238638c301c8ec97db4310f9ab0b222e424b6914a9b75e25179e839c66e5e098150ab7e98826c05a674a7a386e7662ddb3d073529536c5a0e0bef49efdb4f5d2f60a2ca2e8d6b55c994de579437a254911381b1980465ba287e219b7958bcbaa55f0787d9d5e4de07d40c7fe41458092376b6e0e6654488f410ef9749d01d447c2419951f1d471b221b19066f124b4879102ed387490d050eb34d642c96547bc5bf8df2767ae97764ca75a7babf36b4a6069b0086d723c10910f4184c3ca8e9e003570fac45bff3d8e56628e1f0a8b6f81f56af475a8e7de47f4208c2b1c2c54720c7db6f1c46ec0e7745a8acd243fa03778f980df77090eb82c901e3bb3632faeaab9be62bb9d5ae03bdfe2d1199f163373448d7e7d3202b070ab11356c598605a7ba9adc96ff2836b2cc6b60af6e5abf4f342ac8eebb1c1c73be315dd33fe67b244e935b20d53ecd3317b730d891e576d8294bbd52b232e718a8d4d15bd3431f990bb31ddf67aa495351585005e4acf579a86eda9e02cb670ccd14ec5d15f0c7e410608f5d8b6ebea2e5d92f59655c2ca3bc930a6c4ed8247c92f0cf91460146555dbae0b33f28e71d1e5a410e448c8c91f7e1c70b8675ef70fa623dbbdf912d74e536eff6221a311f7db6db8b266177949d67d86c4987e4bf6286c595e32684d1a77e62ae4d129ce5111c2c946b616bf7bb17feb377aecd50631927097c7268e0b20dc6ea4c00de56fc9ef912d77117be4d6f79196f58f6c93d273d6932ae005ea80de24ca8ffb63a6d75291e3a4718889bfbd7695f9fd71a79a087491d1c0a0e2cfb5465caa4c97101bc684d64b3045fcce22f8af380af5344a1cb9aef14268deda0c296d588b84ed470dafa782356ad8141ebc117663df7f9bf63c428f671803cd28858529d293bf13a8dc422b7a9878b7791876fd2dd02c50b68e5eb295a4102ee6e69807054dea57e2e9c135a091bb651d439ddba5ef285a876027c290fd95aed5495bae539b8361083a9cfb332a116f88f96454a459972e87bbf8a3375fb86123c73d8690a9102c6a6981ff8161c534d26c86163ef45c82f31d71fa75a8e17d123b5b1c415423494b8452fb921a6e4603ea658d0724b00e4deb07071a76df12ecedd586e2ac19d6091aa035859bc2c5a4e0e2e392cf37d49b311c9daddbf015d357c6c5844958efa7a13701f8d2aa9fb8f8463e49db276f98ee63970d667aa4d1a66eff8eb827c2618254df9f26ba5bdca5a1703e02ef9ad048d66c546c669ca39ca77d20ee7c33873b955de2eb02c518c74fdd6726170d2ca83244f93b0071271f9080bdc4ea11212e9a4faf2a7be8c6b170b2cc31fe790b5b4c3f02f9bac0fb6c3387b9d45d620d753bf4c311aa451a7b23d6527b45d9cf3101d248c5a419e9e6141337ca5ba650d208982c1f2007d59f6d8efd44e5d2a56a1dc6b9013174ba8f33a8cf04bda59411627c684ed449fbb7e05ecb9ac01185d6802a2548a539eb49cfaff80b051daa790ffd751d637b7e91c38ab9d4c2c906dbbede567396dffb9d0adaee6e65ea53da4e78bfbc7b3d30c5d98e9290a5311f08ac5fc694be31c458d7cd59c5d3bbfff353cb014ac619d02ed670f442082488f9b752d08508866bba78ca624fbdb1f4d775e49a4a476f903666e343e9d13b090082f062a0f9ecf7bbe63b5a2ef48d2f7f58021ca1a74e486cd44ca0acd65e9f49c6786d953d6b0b52fb8f3f834186f8cee08fea4652d60afa98d3a17a5a15ff2ec5e4f7dd321b9ad31922513c14fd95042fd007be915f67d360802bc84743f1f521a455cb52bb54f9f0d51555f9868c36f5f30e67ba4421a67a9247acda09899ccf5f44474a852283f45c5a530faf60734c5569845146db6608b2572c7ca588950c9211541a70940a6a24d682e6a4282a4e4700f173d7e6a1e01d7833759ff302500533674dd94ffdea6a149ee0acadcb4801ea770a3e938558d975e21fd59f35e2bf73bb80df613de43d51b545367fb33b5e032caf69a9a72bd577e6eae626389aa4ee63726beb055b22c1d34f22602881fe941d791acbbc617a525a5b4410f3e29c87c73a1915646895b7baea0151fdff44fa78ef3d1e2c65fef8c4ba3b808db9e4f4df054a574b152e780c0f88d118eaaa754e73e56080646e813aadea7bf140e558f7f6261a09f395a468930646edd58abe0c2b7afa3ecf2399bbe0fd4024ef3e36335daec305e0376fe1c2b1d528b62ca92c7f34fc9f6b35948f93184f94380ee7d1586cf82c79dc735cb1cdf84bf7f66beae112bfa85ba3c6ec6beff5a8a1521bedbd259d1a7484faf9d09f9ea931ca6c06da01dbf6cb1d8a0062e9b258e9a70c6539dfa293595c8db9f89944a4bc031713bbf28b83ed2346b4ad6d6d347ee97f59a858b39a9cde5691da0974530c5aa76f21328b486ac5336ae1d84bb26c135fa4224f9b2948466219c83566c6411ed99d5b3dd89ee92073a80ffe63ab3f366530a98e5ca32d9ad335bc8e225512e3dc972c73be97203f55a4ca51211b95061f0609906f07ddb4e2820e9b37e355b233a899d36c7bce4aee55adbd450d07826051d168b27f5d5761e7c8573c5c83437192266450c82871d035c4dd055e074897567607b729889a03984c67bfc762342f78f650d9a4d07c85284aee5093bd3b295009c246244930359e4906468f7611df768f6e44e1f79778f41f9bb1a9a71b17b99d1962d26297adf8140093bcd230527885203f0f4cd8a4f674394cf691ad1213b8eeabf36a60881cb5c826809c697fdcc2b12f33eb5cbab5115a022d124711b360df8513d3248df63de146c4e86e80f7e7ef1803271714e543393bdda5db90fc0ad10fb8804f230675873d18599c3fc5d586417c6a0962b330394a2e2834f1df6fa0603f0cc3097038923751f71485ab73000187b818c16aa4a7d9808f97dc0d85b8a812e1a518441ae2341ba883f6f5d572725b574960a5cc3124f178e696493051e8c7f8ec3557891991c88274f40673da269c12adaf97c10d29638dbdab5f1829575322c56dd9c3220fcc0568065c412e59fed11def6fc7a8450f91b7839b72c212277e9c549c7480700a278b3d301f7c616a21411d0adae638b856c03a74d47b2ce1240feb5c3bed215591f4d8fbc08a7a4441e0d9eef13f4ffb5817e5194eb903023aec60db2969e75a6f628d12768c914c6f2428bf21bf15adef6f7189ffe2de5dd70f9970736952655b634e2c253a6ca69e4812d75e2d3c0c75d9a1a83d71168c695c429daee9dd188c2cb45eba2c1a8d8c40f25a16c15c68b0a973253bcaff0628c219d8f02270acc898595c3acaa2d07424402dc07f538e05b3be814c9a5bf2d073f247c90ad122ab05276284396bf91a7ca0e7dfbb9ea3dec750bf85e4084fa2b30ba2cb81f1f02151aea0764f377b73a920a02a7686359312a5b3355fe7368e906c9860355ef48fc3909770615be64efdbf3977f4f0dcc77de6c4186aeeba63f2ba80f5aec173affa317499ceab113b4de5bd5ea5069cfe9a006f87c1107867901940ae5497234f54a8d276e93dfa98e8814d376409e2d3d7eb50cd37df7a3c59050cb093fe14ee2a4ee57402cd946fdcdbf9c62127ba1fea99b0975066693589394e0f160dbea624b200ff776db70657747220e77701e531297f411af31839114db29523b6d2e2a60c0b0f766d5968e4350c2b0f3dd09181f0f1bffa07c1dd1e22652037a8e2b8825ec89d568cbce57cb717951d597a095cf4275e7354b77429ceb3c6518692475e72d403fc42fed63ff8f0a87c5ec4118fd72b0b3750b876390f9daa7086aee225a6d5bce7ffb2450fca28dec9148ffbbcc267adfe322d4ce22663d78acbd0c6148d90faadaa679125403b9724cda2db44d6310028691dd438ab7b708d038644e7244a1534f60b108a11d5f28fd215479a8727f5a44f5d309215a72d41ec96eb9b11ee35b9b733e7c17dfe5ef7096c2c3a409cca3531e0f2129f26642246b6f4bb4fb84b25beee15985487fea8cacca2faf25e99dc107f8d4cd2dc956bbc3bc5c0698a3329d56677bdab5f7ccf36094337a1c39f112405d515e839ddc1b03541c2145229c9c67a13bc8b385e87eaa5abc5a123e4c07ca14547f093accf5308764160c6b770c52fcaa61aec3cf4f9fb097f54577ddbc756580ad113e5a3aebaaa09d8b31fdd25526fed0642519634c8cb2cb88eb0e0f2941da47271f832751896d0b76390c9f1d1ff84e543baf4c1f23818ae61c6e12a05e9960f1fe55ef8a8ccbb34decfda732e00e64df8ce329775c114c2fc816bf0df5dd93e3d9682e588068fc69ab343f35e04b11d98f6f2d4780689602d02daeb8e7722072216dff03c308dc319263df4f191700653d38e8e44308c607b597e02c50d42a0d0eb6a61edf372b8bc25478c4a644c0d7d4048f99e12b74c65f8a9d6777ec55a28647ba4d1d6904547a62f255883c16048cd0078ab63d25d0a8990d6650193f57d9078b95f63cec9de6d3ed57f50a85bf73f04bea5317196492f056ff9a27cc9cb67fe2e08d93eacb18e2b1db6d7d9cf463a1a07ff37e02af5b11a08f878f6280696ed18d91c0ce094330b2d940a57f5f7501d9c3c28cf96c3fbb6e0f72acc9c8334030256f06296d0745c8661f30afa032c1ecd7f4f3ac6598a6a4eb61d6cde860afc73843bc06bcb6710178e9ad88bfff0a3838481f22b63ca27a867db23d9783499016f818862d3c9c4cb06d8713e124f096b4be065858ef78563206c1b2a2a28ea2265fcdcdb5bae864b5dbcd9126b3f1492efa04101034c5301911a4313472a19e7c95827e6ea56fd08e4dbfed6e1fc2126ae10b4c071812dd53c9291d7590b6ba9cdc09401222e18e0f28be83f912dadbb32ccc7d416943e48b37b95a116d6d0efff294e3d2180720f0cde7941a1d197ac7b348a5f09617106445c41b4a8ef47d073837bdb5ac2f18905b44ecb3a31e004bdd12e42df7359c241d3e79824dc8309495d9c13f9c90ba688cb0a62c9afb0e4a3e19c25e24847571b64d5e538fe139c47beb4141309458bb3e1acfd6c9bc9104e6120363aa32b896b52fc23cbadfef676d582079c4f827c43bbaeb82698d7887b1c2df2c99780a8a0828529ee73e653af6cd2b522aedbd419922110592c6bc4237cf00fcfa797260902082a7bbc52ce9d92aa74761ed6f513c6be183392050f19c0654ceeedb4166817117ae47cf26cc81fc6d046ddde5388a63474c6f1dada915f67be7a0949b6a18512e88716a1b7f4631ec3cc257f71c47aa1693b44de755cb4358202f66e9fa821d63cd2548f4fc335f6ad58d73577ae4416e85b8334ccc78353a24c93d18c6519d7ff481a7a8a7859d39ae51f7df2b8229f637a14a86b95524f7edf443ddcc1bf72abd4b6cc6a2fd5cf149000c46db27ddba7ce91b687f8c7f624588e0404b3a52cadde9a7ac68df5f520a0e9e726c965c913f91ad4fc8113138db28432a6889beb6d7701929cf1ac0def90215c0e15f0ee288a597153053d1e0849e3858ede12fb52dfe6e426b602f3214ca8fefaf438def6e9346bcd7690c4f2f7cb67538e0d8df38adbc6f54652094fe84ff92d4acb5946d10d6ca827f0be601fae1792b41cfa7459539d3c1ac4bd15c95f7b816b972c6937363b449efe995a0cc48c4fee4c4d7999ec08fe60ffcba918c5f13b88c468d3e46b55d4ecb84fda415a68eba78dda12ca576e4afdeb0356502a462f3ad2fc9e81c02039164d060e2d84d08283c8229abb1a0188e9caec18b46af468eedf7793c47d48f360565af6ab9b312a1648267cd303713c52fdbfd42011dba45b80603e1f643b178d3724a947527f097d4aede8197c76a3b12c0593c27a057e3200f4ab7af77def400239b6738e06854d569226d07a117c27cc6f09427dce59755143fb90e0ab7d821ee0fbc48e526f347ef9b1a1bebdf676497cce9b383be37bc2c82129dc7aad9a753183d6263f8193308cd1dddd8025985f35c1078f37607e58e7b43a4ece1f63362ac254de72a03aff57c0048ef42cf28bf962cb7689d94dc8318260cb7d3886f5ca9afde09cc20947bcda2275f9cc572fbb397d225db613109f6a18952fb8ef01628ec1736875e226a834e7aa9e4f36e3d1ca21e9f4ba457c18107a87dea089ba75c35f46ac588f808f743c02556c1c2526d893026e164ced2284d7c23cd8048d1c4599dcc873468c7866d0d0640aa7035e331b1b994691bf567f81e5ebd3492bbf4e2171ba7197f100f42990d75335ae5db2c030c38ef4a648e946ecf55cca605c7c1c53e8b9d3b924409c57464686229412b9da48772f88c1d6949558b83f1064a9f5fb41a7f18773826e53a43b3655cb318c782cd7389d58376e27a074e6ea7a34d63324b621ea68278180e0d8868219c7bacfe73933567ef294a3e34944bb0599baa9ea47447bf0c40c0a5cd45e524a503e3ee35c589d683075dbf885851ef4fb67508d347b5e4a232cd3dd69336bb8f44f3e5e9c67e6ce53922b6453c7a84cc4a6dd45e89a8847342aad7213443b757bf184a8513347b285453a3a879c7f946a1516ad92ccd14bfa0cc127d3a79c793fbddb84a55d41282aa9bfc8b52bb2b30d3e9508aa0b18e4cd11b37bf67507b56eb850ec5c9ec0aeac450ccd94c1f8d54506bf8ad02bfc824c2ee5d10b7c21d31bf24ec7c492998fe41190b7a86da5d7323d0a9d8dda31d82b28b3baa8e8b0f3ed31285577237aa423bcf975c3a68095d78ed1609c1dfa6e15b546761a8cb549f8cb60840c4e01a856bc66c228b151ad3715088fdcd486adbbb54bd59d62a3f615c868aa7dad5615efbf473df874e16eeed0a9871d6bc8de16c85cc5ec69b7dcb0668efe85301464a848bf75539c04ab3f4d480eb668c4ac74a72726c7b7fe5a1208274c2fe6521ae63eece21e825eea03128ef46b92d415bff3a37e6d47bf5f0ff24ed736f3bdef6c55e767a4d1e9c84f9bb3507e8032f72982fe463dbec09b65d185771d0bb5e52ec524b5f7a993f504c152e311b7195de166910404dce3c12260f305e1c34a28f003961b8364335aae7867430f7e22e5165af382132d7faa16331f36f01f9c5999dd748ac4e1688feb497593cb13cb5b158ccc409120a8caf94d65197285660fc5addfa0cd6569af47390545ca56be5816ea96143f3c28ea11f0b541f8329e72c3e2817f9f105e058e31450889c1735ff66f2c6c9344ead58ff608c26cfcc15fd00659d80a0a3e950e33344a00e78f785862a3964ccacaf91301a439150e6a925e85eeb27c0a510e82610ce0a064c1a0860e22126586b384994fcb6e60d6b33f0f24282385e6e27fd2a013e6c68b94f1cb2eb1a74b6d21170a46232b23b70735ac9d0f9aa59b8dddab9924a843ab23452f4a69abba18f4bc0ae20eae7d1090a7461d2fefe14a2a60de666ec01e092fc988b278ca8cc1953c427b16cf10fb88a29bf050f248dd0b35b0aabfda44108c0ebddbf3b56859dd741fef55ec44b4fd634fed5eba895bc8aea1d3befc1cd5b9f356b807a46fe987ef862d595b8bd6c7aa0e6d7bfff7c688d10d13b85e91fbffb8897e37e67d33b91badb10f641c9afa71ba14e460b00311285b350ac180edcda2c583984d66f287d6a0c1b29323ca015cef816c2c1ea09d315ecf50740a8e1bf60156c8783d2755d3647b3f9e3f7d5f0da67725f47eacfe2972f3f5f0a6ea9d29790a1775416eb91bd4be49311e2d400d11e7b7314460afc15e0b9edcc6b3191948ff6e1880ea2e451187c4918aedf99f80b96523237d6fabcb040681d3ab72513a0b6471a03789486f061a2a11d51475cbca5caabfbc8762edcb9c594fbb0afdbf40f77cdd6493ccfbd8748d91cfe84f115b6f4034d4ea440c8502081ff855828fcdcf13c6647683b4ea34c4fffb5f90b7a66296263ca312e24733f8ff73c5296cf27b88508e6c98829e8d3fffd739a6ea171f00f3031ba37f1543423aea01f21629c94e23013de518c835877daf499efc16a8d13b477ddcbcce46e8457a84396e21760739e111211a9d220a5d980659c47d1be9ad3cba4a7b8224dd0fa33db6f605fc20ebc2e328a4216a2b4dedb0f4de37d39da37e824518addf18e1ab75ad28b114858ed2598047041a22f48ae8a9c2c941e43ea85c4ee2e1fcd9272d574ad53f4cabd4182c5a93f4249a186162c8df96b809751678bc5eff2dbd26d7437cd44c3745cb4697f596cf7f3b94549ad5e04b9e22f992d8657f1633ee96739e795cd0183c7f7454ebf2b118b82dfe08cacb71dc01bb5817d56b788f65cc0f2fe7912affec8a1ced701c85def4d4bb1b9356c865c9585e6035630390444a870e91e7e0aa5d429041bc87d3cb5e5b6cd93890d64ebf2833e94507a00ce0fddf80848022bf5d8835c78d4da7b00943deba7da37e9ca574f69c3a8d9330e17a43bc8faababdffbaff8ac84f36f3b44129675cee629f0cc089435d7785a259ff7103a8b7b0272605d41819169c201d9e51abdbe09057ccdb92a79159d4f4bcfb3233d5a06e143a7c5ce0a50449d7c56ed54907aae3518883e6b3d9492d1b4ea05d7078432eb6ef2f537aa5bc767175d3d4cb7075b561ce42c36377afe40d61202a609ab9e2f2f8c9031777f843b6bdce057920928501275301e03d0f4b5b3cffbdf4edd8863a6f07483425c984454091e3c24b0e699f243e1c724203382b22a9a1b2d64e0a70425bd6797f9c5640b4f56a0c397cbdd78c5de8e81a5eba9aca6e53cb594aff4b8c2feb1ef5ddf244a8cfcf183b0839398b13ee374f8caebd170f23fef309fc47e64d171553a04ddc627828af3ba25dc66d15977b57733e2aeed3f35dc09bee7fcddd7365ff9a5f431bfc2f5c1531d230282398549157027b4f59a780a1bc13de68b2b4a1171dbb5a8bbc42e34079723fca323a473c4f761ba95ed7bec5cc6aae28241098dbe73556ec530ccbb2feec5766770dde18729b831f7131134d759aed0a6a3334bf4461a963f023db802d28546d3e1347a0e90a3828feb9ccc5c0be0b825495cfee83637f87c085d55ae7c418babf739ba3d3bf89684215ce11d864acdec5062e7f163b572c356e4f35152eb60279855bae8f84df63cfaf0638eca00c91a46ab594a8c1a1eb5eb7a20f0e9ec2531643b5f5944a570b4b6240f23f1442a4a20d380a32be72ae59030688527dc2871cc6914f01abcd53ef4f216b5406ff9071d6c370bd337ffa745cd68cbb44e144665495eaa978dc880b06b337dd1cfd76663eb67dd43038635fcab6322a7ef27cc1220deb7d704e08c0cf369c76f3ddb5ecf6f7d446f564e2d2d9a54cd55c90b29d52850752ab7cd5a2c50831987e9790cd58ca26e73c6af1216a0a33dee03ef81fe8148df66f410bd07bebe80300b2ff8734446817729ce97f158e0114519bff300cb9259f3ffbe49c4b0b12b65b2e27ff3d4cfed6dd6c48568b626221c1df6b30aff419a165a40214e628e4d8bddb9e8208af17d21981e80309df0027a7216d1772147eb31d75943a3e8936bbf97cc26f6ab37f76a29a63229e9e97d937a7cd615b40289bf249165c8f6d6c236a9a371c7eded60b0377d2776c2d5e7fb10456a975bdf2d4d2e4d288425aa8b1a4678843fbc6ad6603cab9588890ce4ef5ec665d40b147e385791c95148ff0f4bf3a77cec5f25066288aecb02135d55626f03ca028914b43b21c76c01b3a036dbdc5bd29359e4f6a224a19852bc79c41ec7275f7704b5a837d00673aa5ce6863ab5c02769b23c6f89a6240cf994bc3a55811318e11485f15d1239c1bbc083d4cf3b24ff983585f44e5a4149e3ba919c07e96647fbb9fdf5b3c4cbc18b1800e16bafa372ecf8a0264ffaa7d3d005845fdcf7975148412de9cc1dac0d797e3c37f2595731cda568fcf4cb3cf6d363dc41467a9cbfed5cde549dbd17a9a73e5b7e209b2cc99a8907a6d171a9551d985866ad76f48179b72b8951f67dd76588a0db9b6df11b7235d53746e2744c36cdbb388cb422f2c6efc63a9d3cedb5c6c15b77ecf810606b0619b4bf07ec7b2dc5bbbc5cd12d21eb8c5a19d10e8c27a60f9f074d2d2902470beabc028f63830cf60b6c36144ce5419c4b2c645f975b16c336d55b269065613fad617b3b14a9dc499c19d2de4baaf8e70535991556905c64c69a3d50ff8d2b2f0b8781ceb2c376ca8ebf67cec73ccea9297d40ef2f7f1727ccb767217e3725397dfa99139ed405f1d8b8c3c143a8052f2105d41bc33322f6c4fd8aca104c8d0da4055c7edba3b935715f0e03b72901ae22d36c1f36b11ee4c1813077264bc6d581746799b4a2dddf89096b810898fae41ca6492d6675979817ede9f5147dd2be45423da5201d45f7d261a112d73eff0944b63ec12289f735e3e37106a2478ff27443ef310b1dd65c18531b8a632a8e62cde5462b415d4dde4213a78e734bd38da0002eb34c62cb3b1aa90db5420d4d6bc68d2ea6b2cbd64bffbf09baab703cfd3703ae3d2cbfb703babedb8064b74ca6c55c20e62a365f475ca95c678885014bcb5852af8d80663d126f06e745ee7ed5a664af381cc516abc7d67befe05fefa66266f96c3678acb479d12cba069ebcfd320e947a39fe8b57fb1e3163fadbc2d85e236387e9cd76b50907775d74f703d1918e004503c8fca98a6453d8e1c7e7e4126148cf552da4a64a09c097cbdfa8f98ae44930f1a6fa7a0d00d76b155f9acfd2006781ca7130b2c45936002032aa9cf7e4e34391c063797dd3a03e861e8174550344cbb64d5b94303424eb3c1f6b2d057149244022c4ff9362fa178faffb4120aba3a6d34070ac76a2a1a113233d56ea89b8a320cebcac08731b29fafb796bb4d2efdb21880d6d421f1c8eb0f3190cb458866c3fbd32892e683bdf5c6c244fe77acac277c45f32a1b0bf91d89034d06abe376ab726797afeb3fcd211ad73458da7c4d6ec69e0b564dcdd5b598dd5e1461b7d0a625b1771be610bd44057aebdab1656b17122e329a4b9d70c8ffc9af15af1daab7053f970db556fe90f66a01fddd3a63adf7472021262e46cc85fb55c4aa3e3c8a9150dd29c26f4693a74c5f42404a58f9424e17abc041988d500775af311a7160b56d453adabb47f52e41f60d19af85ff43f6ea66c5d640c113b37865f5f7813cb6df8e9817f6d5665d103bec9c9a29b23626eebd5ca1be56fd3cc53f1900c79a1fcc09d14937a60e667c97a624a1ba6f34d86c1fb154c8265a6e7da631ebf6fbfe340ebafb8579dee49843e03e13745ac6ada0252e04dbfe755b610206f6a536bd35142d8011f6946ae220e7d425a205504584324639f81c2a8b602f1001f5999e7976266834e26dadd235540fdebb3a24524bfd721f2785362e744b104b0893086d197f52c9884a81d3e49369531b286fd0212e5bb51cc02cc42b72621e1a496f1cd3ccc2adadd082e847da2658cc8ba5ebe2c183667d9c0bc242f3dc622bfc6c17acca5a64730460a3bbd2018aaeb8eba6729a1726444138c0c39e1f1db7c71ee63eedae0fd36b40a0ff9f18455f562aa975d7f5c0d63a54d60390a521727324cbc3eccd02bc90542d6b4d659720a7953e43076bd3d86d4f525e6cb96bd979d490ae8c9de7ae32fefc3ede576de8b4670e51e68a0725a92546bae1b4abfbe3be454807e0320a9bf0fb75e480848d124026176e78bb99114e564fa74aaa9840c4f5782a4f1003f2077b3bbf7bebfcef659426d79764b7002a55fd6c008defe64de4c7f2063cdd51c5e63507afbf96ee8e92d54e5f28b8196fa8b2a47e1132add7303db2812f8a08cd174647c4cd7845c30f7fcfebad01f4f029ec5532357d5110d49ad1bb73479c51217d58bf2cdc7e6f82f10515e6c67e94b694afc5e41c5af271a12244e8a5f34becd3a38d337285b3dd44837f70cc4128affbb9e0f1814e3abdbfe72cd5ae344ade2536d562c4bb9daba0c4402219e1791de2e13e9d328512f89efd0fea6ab01f0152235a378c78794df98ed036f27858b46e385b27fb30d4754b375ee183762f0955172836b2d2e34a4e564993fa242a623d85ff778e82438b646d37d1249a00c3b2c9c1d2e8b4b3d0b753db796c0d21958d49614f62737236e956921b644469db57091927a04a4dcdca7ae13c572202f59b5453517976dca096132002b81d1dff61d481768dace920d94252f253e2c43be5394e8f9a3b6934194b3b4dd9352cf71d2801f9aaff88eb2ea6fb7c8344830053dbefdf270aaa130613c0072b2fd37cbfc0b55f889743591eb19eaf40a02166e47adb16994e9630b6bbd7a086bb3727a464d9d5104a8d0ec1a9b1e590d0e7a4233ef1071a3e72ec5dbba23c0e4eb50173362655e9529853422d9fdcf08655535059ec87c757063a9cdad00fe7aa4a16f9b808ac57958b3345d98dc98ae2e29a2ef6570c8ad6fa33bf173bff924a5396617d9d9f9e153ce91b58cb6f922e7418c1ddacaf5410d7a656dd2030a30e6ceb21a49b85025d56948ee5aa6710fe302920a056c352a40440a0ea959b3e7119be67d589f0854f4e4304131be5288ffafd00c5db169a33410dd4a7ece8ce89fff771247168799ff1273ccde7a681917b5d54174bc693e5490656251ac797fe229a5515bb9ee658e3e03fadc4c064663afdbeb84864ef67b50023c0cf99ae16029a4f1d35b80b829d57d52b8f1b56f3029ea8c44795705787068a958f0442d1d62a7aec97459de23ec401a49dcf3b7b184c13ca6e0228992e20ac857a31542aa64efad48e12fcf67b95580dc3e9bfd96489068f494872e4c89f0444769d7daaa6b9392d64a6bfacbad8a168a99fccae43ac255731cdb1d2b8e4bd8ecd814b4d5abfbbb0eee7854a3948f8b8c91ebb1849b8a306c92db5ec1488185800d18479512d30f7ace35f793c9e7654ef80bb458dea2be926aece362f3c4e8a3708bfd69e098bd6ccba40b21e12a996bca4febea4fccbd46b14d0e432c68301cda44c246f4d108afc45d498601bde2579838a91fd41d5eb32267ea58fc74c23a103a58f86917b840c6ee005b0425e9e271d0375452db638276b7b6dcae17ce2685e82379d7ab2dbf0231e36119bc7901ff9db1f45d93aed5bc3b6cf23cbf2c2a02389dbd5fee0a6e2faa2cccbd1cb5c0beae5b668e7a1c656673e75c193ad1f3161d4b46824d48bdb0a523a0ac857708616af2d6dc05f06aec07d64c9f8195b6b1c31827cad3fbde342deed853303f5a5278230a27f767bb8b889dd4a3197c8e27831da7257480c7e88e828e23ab45534378e80ae7a5d94fc19a793de82d80d85e4cd606d5c1694c563a610e7bfc95062a1876d36307d22bd09a8daf593dfe6f286aa7df9609d30cc2005b6838e87c726133184285c31f14a22ac552e83c7dac1e046578f603a0acc42114de21b5ee40a7981e396a0474d706ef649b40b6d5ab5914abee7e3207f3e6b3cac9481dc4634e16d6993a9224859584f1f248aab74710edaf920590f7fcdeb1397acaf98dc08d419f2fa78d0f88081207cd1ba96f1cade775da3b8d1b47c67e500c0c94d078642870e94c79ad8b11d7bd6137e292c36246f30bc2dd944c203c48696a7695c975b68b1efe0f23fe8a3e8ad00b63f1aa3d72210c29391cd07f154f6596059f0f9bf29a2ee86a6ab1e357d5b23923591058919c237ad544a0379a41ce92105ead0d6b3238e431173e44dd87dd9b287cefcc8ee811d1b63e417cf86e5874e6f154e6fd6faa2daecbb6188ec459c685dd5d2d3a29b6eb90114171c6321af345e3325cb42c80d054f03282225a3ba6d7deba23b60f4982e47dd44c71d65cf0c827fb98271e1f6d0b31a7cbc2b2de99bef0d69e9d7637330a2c694f89958581d44c1461d552454128473abd8f3dc9b8df791e9bb9d9518732414262daf9248419f1dd27a8b32245e8e5de7097b133d6c87d4d913dd94baabc45f2b34586cf2e3e7cd0e230da01573c345d3e6809de85a6a5c32fe11d54b5ab292fda1560eeb2e4312199af95393f596bd4403c418868797f985eadd86cc767fefee8bdeef46d3d7c58e25ef0ae0a1221ab8c177ca3236fa909f23775eac0f45fcdb4fe544aafa7b0b93f465477174d8d9a74b4cca850a79d91a492834361a3524168ec2ac55b8db9242ee9e13e3ae1b6627326030fe0de091f5e1f8b4232a5deda37671fa8dc501b6406f3f01fa69068a0280f04e55429ded08aa59e6c79f0aec5e95385057b25a388e68e3383647cb8044aa1c1a04677dc0dbd0c3206e47ad9e85a8aa8fa08374e4933505c7c5a67e375aef85ec32445076c1b8ec57cdd982adab1645bfc6f8f5dae5026c2233306040b523ea6dad6d9043ef9e9be499a73d61b1fd43a8ba881b04a64c2861c8c57713608bd513702d1c4cefac422ad74fe372f760c90520ac48be76443599014ecbbef62f00a71fd1fe06e6e83b87f8873dc0e44d6df5c8730f3aa821e0473013f015e0deca9a45edd76701a35106444dbdedd47622d6273c574b81d41404c604b65bb76dfeb464aa855a1e88a9b46cd3be2ffca8e6b6b6009413b0229258ac349e228fff13e53af14c6096d1492818cfa934dd8d901b78a3d7c8e8d8258eda081e265865a15df3ac905288ca66dba024d47fd837c4b7a6d5440fa0f4deafe5845b71b4ce7649c39163306434fdab572e7e6d809298848838db3a1c4ff4e390e76073ba5688f4a2e65c6076ea9cd5166f7074674c94ff83c643813da03ec8655b3ea6967b45430587ee9fd508d3a59b7901312dfe06c52791f8e3bfca19ba6ac250da28be19dd4066942add695e1e86afd7ebd9c1ad6b7189c6326ba951ab04140e6ef3a732209e45e2a914cf4d9599bb3dbb8bdbe153ba349695e5e6d8a1ccb5257e82405f6a99ae8dbe4e85cd57981ad8e9d9d956e402ab340f3611fb7f353424e8ebaed58f1e45ea74321c46408c6ac03625b203b46e75dc98c08cd9d838c603dc9dcab5e759a938c0886de59aaf8f7350b34442385b708e88078931a3dcdad8d2f142bc107ed0ed1f7162562b7089749d31f4802db0de3be457703e274764c10d2f743ccb98a97d3220cc7f0a9b411bf4ce3f64eab7fed81956c85f5e2ff6bf4875dca5a6e86cf41937d794b24d9885ab47f4c04d7836de26162b00edc8e1409f2aff61721ce9b000e9de9ca00d32429719671f1484f03ba42885163c548a57320098507f34b27cfd206e358f5ae2783a8452fe7976abdbd522b07a6d4cc124c51ab02a05fbda1d8dafaa06bdcdf649c514e94ae7e9d84d81bed192a912e652b8e35643245761e072fd7308e5f5e140dba9b1940c88e9080e61e9b5923208d9358947432272381d8dfa50367c83697afc72439bac738cdb503f8b183203425f494e1d366d155e65aa3a57a31c983610e3e26b9c2eff01f04b5f0dee8c38f59fd99a23da2a984ed4eba0600229f3436ad3a33141faa572799d1cbc1968a0a7478831c13a3535237e8bf48a9db34f958e646d4ea6e96f06f9dc0fbe3d490e0ee90bdc86eef09d0ad1f824981c6ecb4ebcedd3d9f2e113d2f3d1f855e2411cad3aa7691f05a67c198a518602f1cc974d6fdc8b531a32b76bd0b3eac1b8d0dec9a8c34132ec8e3f432482f10a97b6e8ad9fe9a70e3f5146dd189929b72c3f99ecceff9a66172899cc925c1a4fa8245d136ee361c5b6b211f2272259efc8a79af7b27bd760d0a8f7ce87727e0f15ecad434067a7dbef8586b444cd3c55a9f8be9dabf775569c9c6f22700dc07d6dece22eca78b825b75fbb7faf03c0e6cb29b44890bb95c6ea237211abc2a7fe33fac16d8f2b295608bc2ddbdc24cdae4801b1f1de1cef127c0c3df29b033e88621af254bad1107071e514c904953e3d410886582fb40ccd8cab4ba5cdd92983ca09e5312c56d568748dba3c71332b5db9fcc127977d498e973f15897b00ea0492ab9f419ad5355b4bb73980c2b6e9f8020654b4fc2a9d783f9a7cb700257d94b0a4652387c0c349e93d4a5fde66ee44d1602d768393b3afddda6e81ce771e2d73e1fe55e0ca6ffff2008ea248f18efe9029412d36c431dad50a2df00292dd00a3d48c68c7b7acdb4d7b2bd4cc6c612d629b9f677a02b4cda7c31f96eb4a2395cb35ae0e06f41ed1786c8f138841cdf80459635304caaacfdd689071b97c9e55c4d2b6d2a4f034ad109ea4036c53ff31f14b9f2ce9bd023246e64fca6819a3012803b6d44e2231ec080aafcbb94bc84c63bbfcc7f0639f4d733d75b1275b43cd586c75d871152367b91fdcf46cc4206272f8996cf1895defc673656ab5b842bdf47eaea3595a0b76069e40fd61a274670978c8ca010c00be64808f3a35addce7957ec0475549fd8f53f7918fe4141e2d9e83bb7a4f358f79f4c388a31bd71111525f4ec4fc1af2765a00d1cfddbce1eca06e17c1af290c93489e1fbee8ad998f00ee522a37599fbd3ec873e65818e0eeee96a2ae9491a583bd8c5e16dc31d0dcc7de85fc4b5491d6ac2be205c2050eb4d4345356d33a4c17ee904b3ffd40797ada706e760dd590208ea373f527922b5dc20d7ded92b49cef1b0222bd858720bfe32afa64cd80389940f2afc2e52f34c517b00b38e84e5ee58548fc4b56396e561cdf3c37b2f0b6630d750c4ccf31048c9a45d959b3a7ca74c475dfedac9cc8f92cbff8fa11b8e77ac55868a873ddb62c4b3c573ed10ce90b6a1e2836eddd7be0303d37653c55ae1ee67491adb0637293e153da70df8c1839393f62bb9ed587cd5a0c58a8f1c6b7551c4144d4c4c5e7b3e056838eb04b5b8b46d8e807dc82fab5d44cfae11d0e3135321ac52eb6c4d46b18d00da1fe2094032c6f985867bffb7abde72c19d0fe5dfc8c279f7ae1766af2de6e8978da758c3fdad711050c290e94d0fe4406618e7b8b5fcb3f275268c8a88cb826bc0388a5c48861a830c6d9ec19e93c0bcf0fa00a32f1a91fedc7e693a8c3a318333b6b6437b8aab0a8bd86362f583c33e77ff59aeea2ae73aa5e5132b95f0dce073914a580e7b1762ef446ca6987d16d83f771487cb23c9ce34170da4daaededc4e1965e37760013a9af2dc39f1ae6dd19f70cc9453a050ba36f5009736e101114e1847cc1edd8392503c1a95a64cac14ebe0654753a77908afeb530d62cbcdc2a204b4d5786fa8f9cb17252130e9323a1e7cbbe121df8462b0b4f8ccfe3073e9ab6b8bb06ef9373cbed7b4fed23613e674090e37f24993d0eb7918cfabef817bdfa3756b954c6772e2ff74bfd1b9bb07fbdb269274a17b77345ba7854b65b941268c22d6c73825b4e5de9ed9c49bfca803a70c2205a851b609292c22a244187ce7a8a1d24fc5d6b50db3797fc1acd95d54541776033df97026bc5936323e9e659cf1d5e27cf303f9130b8ee63ffc016c693c558e4055bcc1b1d745a8c42822cd3232de1be281fe7fbe5035ba88a229ab4ad2814d12d112655e8fc098587564ca5bdab45f9522e861142045724f845db2867cbbff6f68b586d65890cbed15e0c195851fda7255240325f1ddc709874ccbffbe3bd4784af5e45518e9eb7c1d9ee49cd3f9ceeac7ff4bb583f0828dacb54b60b7609b31d493882fd27d909e2d6ed7e3a8b87ae230c32813839d9a2d8ea4f4184dbdb5faa782cb94cee994d3728639d1e64d1e911e40ef3b0f49f3beda16a35e4598fc8e678a90f8245e6bbb66ef22d6561fb241a88772735d9202fad3d864cc8e1a92c52e92be9668d4774da1d6ad91a7ae6937acee23acbe2a39ee22bea223cff372cd76dbc3e38527961f65d2c67bc6d42898dd6cc7f0fd81c64236cb1a363de8fd5d1ecee7c7ef0b966423754ed055be1d83326d2353a1b0231096e518c9c18c5371305ba3946693ccf07529ccd52dec3af1ee5afc7b88e446c2bb67c264e8b9e4de2d9d5ac19a22687a8fb541b4fdafcd148a46117105bc5b97ade3027d52fc16c0653d1522f3ff3646ef3b662c5e07ea0cb5e9479e91a45b3438ab61ac3bdef778107a2dd500862a9d6dc9cb6a5b56f92bb09f22479d87557a5a8611ac47f4bfff5fc5831400d979c5492829972a0d3614060cee9c3e1fcf108dc36a5ae6d1104f8ce1d9e63a8cb38243f5de6866b097c3b0db31d42079b9a0176eba0ac24a835194c75b7b738288f86461058fb4f27899dccfaf69e4233f3a9576f866d7a54900cd201864763f66473a53a20590c4ca32593ef637a679679017648f1437c297707ec44de58b2c0354a00e97be90c3fbc3395470c5bf16d5e24d08bc83a88e2c451a26f2cceb29e4d427d9545ae8ea975acfc58012b188daef1d0d1b08e939d682bf227ea141185cd8e021c88c80544ca0fc2072572292dcad88e9cff47ae0ab6d262716c21cae49242de56971ba9c0ffcc6f7e9f97634b832d62dec08d0bc7942d058e482ce49b9c073427672af3deec65a9e6863110fc7dbd28935351ae400a5d0273c814b699c8b53c8997839719c21400767a23c9ac50abf4d4332beeac5f8bc703aaca6d094b404a30e75ad8d0dfdf80a0b99ff7dbffc0ffaa61e49f4d73c1f68c75f7df8253be0f3ed6986ab5c320dabf7f408b8a1984ed357098af913e7b0dc1b235a7339275ebf1d02deb031cfd0edf9f31d3a0f097f8183ee2bf8e70ec7926d8e8afc9fd1438449a5c9a5656799e2dcfb18c179b046a2876232227d659e6adfa8890c0e75d0113985938602c30eab02c0046be511b06de5e1bb9b2ee5e56333be1fe7abebbe366eab6c9692b0910e52cab43c6bc8474f411251ed36dad78ddab0e75ee7c336a070c2ff28aa2ab63890fefe308aaef40df4bb436090e7414ef435efdccb1a8c99e8d114137ba305bd69b5d6bbaad5d34489e7bf159e29b939bb2e957d3303b45d82f7471970cdd7998de595a28c20e03173f51368141a546ff203b04a1934a3278c63cfbd507c46ef9832e841483cde6d22de83307a8e51935772c6628917b0b2b31100a1031d419ab42b9285a81c8d5fd08aa4e626effb3b82b42428a42cc0ff059b893010e6996de39ca8f3f77bfdb92668298a49ff700482e4164741d2cd55adcb07c7ba7558ff7cfd3993ad916d914bf9a1be1331f0f9810f37864ed94b748d5a878ed377f8f6784a70136d4f16e4895f3d4d961a35253851e47fd135890a5b2868bc6131b8877e0c5cca12bc2dd6af796b9bff177a2990766610f84684f1a0bdbaa8a1166df41c2fa70f633f97cbba22ce4aece97e44a434f913ee214d18cc073b171049740775460f695b4a7aff42f064c32b2e5fb97dfc5d538849e698ac0e7fe344dc9b2430147c29d28d2c4dea98d9fa4bca309040bdd0bb32a6bfde9202a759692769809c0527879796072407542f5222e4af7da583efd589659520c136e8bd0a79eea3e24e8493f9827e2b4b73e8a2e956e93588c2f5006eb624b5cf15a4e41968bb5385c830ac41539bfb3e991971c118c195670e03294db70fd7f22795d21b6b318b9b655c89818b37514a1be21b184ec3741a1e5fb6843652b19b352867a58ffd662cece1efa0e7e22a7743960115c9e9acf51a8b077bd84f33fae6ec959e1b193e46cdf2881f5870096bf249c6382ac5a4fd886e10df18dfd88e9989bffb2f3d943acd8e8b92a91fc46813c5ba1a8d4355c0ed3c4acf072afdd9dab0a3c73c50d44003a1cfdb9fa5d5c156fafbbd35af0664b956083cc3c4e42a9c46a599270337c023394114fe72fae18ce0effd02352e9e958afac87a291aa3bd2ee2f5f02f7fa3a4ae1ebc1869f41d56556e15aff80920eec71a82f57b755ece956f76703f2b7f7789e0a15d818a72a29ed52de93511af1b5fb7c7e8e8d7458d20d544692cd42a1b99fc9b716d571c31e48ff6f4a9bdf2dcfc0053a81d6622900b233b6970672657f0f221797275ccb7647bf9ec36c3c42b5608eccc0a03dbb2aa10cab72130d3eb911821673336a9d0effcf0d3127cf24da08ddea7b549edec87fe2d5e93510994ec7100e2839bc0318f90cde08129e009450bdf4c8a5aceca40d42a57eab64794c663f97106a4a5c0b287ffe1df0ff4aadf97d76ed808b5f72da58aab5f3bfec2d25b66531631a055ce9dd6dfeb532be91bc3df974ea44d8d45433171122f82342ba54b1e849b18eedeaae6f6835c1a059f3ffcd774601186570b7a38970712bf5d9a4b0ffc2a2156bf054c00b1b9f1aa42f2fd7c36ab816baea05f74d161e2162da71873f2bfbc44fc9528457e41dd52c4afe9bf7b582ccaf2677421667913c421b8f553e2418c2ed514649fa16937a4da57d05e7d97af308288e00b9df1388e02adce2bc5a7bb4fbc2f8fa8d3f18d097a735eb601746b2dead5e4a4a2081077dd476e6c1b66a4a0c1cf659b1fd4ac6c1cd26234f7cff851e85be7115637580094f181e7ef8889fbdaa9b5e00af5b02ba1865a853cb166bfdf76fb0f01022d18a2e313ceca22dba2f2ea7b4c994786cb966b0c5547482d88308279e9f87bded5145bb9a504317e57598231522ab61b3b86915c8ef3cea0d6bdf08bd1d57622eabe637afc465bbebbbcd7871d0b2bea8ce8532ca793775a9ac1717afedb0e4eb2201c6bc628a6eb35c0d771524386615b6a40ffb8d18bdb53f3ac276fe50efe95aaf5cdcfdf3d4650f3aa1e002813128fbaac1ba437b8cdf017e04b273ada2fec913f2c5b95e77e6aec685398f279ee21234bf6061c962246e933bb2afd54602938117dd56968b89161defbf00a9649f2ae2aaf9b8470bb4e471351c3a4f1f627a3e38cbb23a63636c26e7d9170e8361d8d4a53eed5f07d7d108fb7b24137bdd2d7d3bb2810c33d763d151125dfa54635cd43639034042f0434aa9020efd0014e8a76c9aaeb509345136f3a1815372e16668fa13e67eb585910f9186e2c1132e695186eb3686f6eacb07a20b64dd1afe914eafa41d5480d40088a37252fe2abb943da559dc520ceca1427a16ce83643c7e435fcf03aac46ed5c69dcabf93825e94d87ee2b8e5dc5cb149190414a458894fcf314f9470c5937910c5130ecf5f1c4584c6060997a69b586aa17700871702eb16b1e4005fe619f1c501a4091206c75951eb29f83fbcaccfb760de09b8a2af470e4fb7fd26ec357ecf747687c25a1816d3fa99bc988f29823a68187a4bd6bd277e16498170473630e5c06c9f4d2f559fb9645dda4e8e570d83d414145df364b697fd609b77f7c42745b31dbe9946f0d15f207db75e31879272dc4f628e5eda6f0fab18fa0aee20d7bef63439b29a9377ee4bdcf0e71b84c4871b2a6c848e1842e679633701a3185bea6e7dd025cd54462917dcf1227066733957457a014ddb9bf2eb286c301f0932c04fb657238facf04ec7a8b1e7c9410d6f8ff8cbeafd779c048e62153715fddd740db54c2da00df94e238a908cdc3dd083aac767c53f500a918d10970c5cc55547d8e41312b706abe4f942d54cdb6860dfce90d194fcea8b55b070db98d74193f20cd0c515a78f73e0b523ea5e530183e387f9436904d46c9aca028f587595e4faea84dbdb986d0c00dd6c07d657969d60679908743d7e59b6552b1a2e95c122ce6453aaed7c2f8b33f2e13ff9148e89f027359f2addcef3f4e2327056df66a84265c2cf3df256199e0f5387a766aa49227553f6a81a6127c0b36b0068e7b859f95a13560e3d396a6bf02d2ccb875440ca07992c337fccbd4d15f261387866f2ee5abc982eed0bd36b0230456a771b51df0c217db624d45091f4cefe69a69d99293895ad5e54e02709f2b4046f3ad5864c24f3fbd3f1feddcff2a7acdd6226303116a392bde879fa58f00ce95ace8dc3f2d438bda61f29302a68a18a02d0746f4347436a22c901cd56b5abeda9653181600867b50b5cfec5935866e9e644e603b5afe692d8ddee4385e7b8754297481258073512b31ac7cf128085c12a92ebd9c3151179938f39f3927da4b24a35d70a353327036b1403e7d983308b66f40defd7764ad55916eb1b0ba9acae0bbbea4b501c83aa53d449fd6febe8a705ad1ea281698c5e0d1ecdc9d11541f9256f7b30b5f31a1c3340698460ea7da4f7483f6ac54da634d6fe4c06ad8f575b1a3dba5bcd0152dbbe3514f5e2a3f68175d91cb995d1086e07c0d2db7ee5ae7459d722a6dc571436b97c268680e1bb938f6dddca081062ebe2b7786134b60530b6caac4396d7d2b6f2f021973ee6e11ec6a4fce781332862666b895135687fac53df132acc0d63c86d2c8300b5907560995ca87da282a419345d9a8388835f6c64ecbbc00991efe443635195fdd52f18a8b3ecac2577fe25a0287a132dda4262570a3b78f263088889eeca6b7dd604bdac7075b9b1ebf3edbbce4a558e1a2c5a0c332787dff0bc78a4191f149b330424a5dacb676fc97d47f78c1f87d6edd572502e2439c34127d616a365f19f16c64cbf38c4b861a6f1526b194c77f9e72a3f8401cc603fd4924a4c3e9eb57547374a87b75856f866a9f499173d4ebb939cfd4bfaed5f52bcd8e3c79a706f6288ec14bf8e31e3dee6c1c9c4b94dcd9834cfe2e13325b7c1bb643097fb84ea2a12aa30fdb331bfbfc82e983f1580fe758268939f2702dea01369b4dbac334630aa9c42d3ed31844cab59488a4a521126fcaffda62daffc7c1dc9e9b00034e3dfbbf3283c14638e43631941229daf85d21135ad98156e39d892ebf5fb73976c2bf1d88769f0024454e023869a2dd7e885bef59fe7f48ea09b5d63bda92bb8919b6c1d8e4542d5780d59131fa90bab2b637fd21b9fb890348b85d9e949bda155f7df670f9575fdec3f6eccfed594cc01a0e704dc57015b83329b79ffda6d106a8647d5af35d50d7b3815d08fc33fd8d07340f364144da394224cfc3f4d7cb7b7f0252c427c8186acf3f0e8298fae117ae6040987a5a0900e47631e57961edaaba522b9dccc3bfc92f51a90f9d685c73034b57d8d19e47fabf192fa69eef0facc0e6b598613e545f1a111b61de91ab50acff83b208ac279a6a6ab28753e02d7f41ccf582b033f398782e04be4b7512d942210c50f876ce8905955e1232676abe60e2fa6da84b8deee8bd0b22dfa8350719f6356d5337ce1545fde927f3f726a6b0f04168d7ae279c2cec11ee6df092598650d617691a85d18408edf3b557ccaaf4d0caf98bf7bdb41bc9473d40bb600bd3c376e324e6cb7bdb6d97f3efa3c4a06cdf6dc3a1309df2eeb0d57130f877d58d366e6f1cd1326e084f7422300370c36c4127da58c5ae2426039d68ab1e3885ae69cfcb5e06e369f07e601b77918fdc2e1523b7faabce8f2d6d2b4916609464a0dec64477c57d6013f90de9dfae83784f38e1efada3cd76b87297542b900de51b781d6580139d11f491467eff5184ee9558ee6a460ee14c447dbe7f3c5567a3424fafaeeccfa15e790caab1f20a548de61566930bb2de130298f43d24bef731fdcbb33253f4d9db069ef4479ebaf7b60c052567f41c7ebc2e7fb597ef8b8156cdc67b8fa0791114cfd93ad6d0e4bffe8ecbf222f82257c4f83247a58225ec5f7a75ce4e4b5ceee8a353cea124fda89c9ac50480ae016a42088a6c4d9ca86ed241f4cf2c6163fb8242cf20e08eafc72d94d65ef88bb67a2dde7c37a3d2cd549451acc423ed3aa9bd584b4f0cc5e75c8a909d2e371859ab5a8d3babaf7448df52a83569b65f629b3cb9542a9bf64d82f7b6dfed3f627712d0d8010b81475c980e38ab679c4332fb36ddd3894a0f85bd5cb49e737a8570f6efe97df5b49216385e6361b7059286c5d5705f3a2ae16377c4dd83dfefcd33ab57e77482c9c89f5a528044e01e9e872bffc5ec6e61aa2d6592b1612fbecabef37bbdd32ff48ae14bf9aeea082aa3e45abf9c772eb901e7e2490aaaa396813d1216741160770c26e331d3184828e77f8b9c8ee6d6a2951cf47fea1b5f7882205e7a13dd9f22972966145c90132c71677bee8764eb0db4f9cfe3df80102509c6ae5b55f7f8fc4a60f37e603ce40c50f628e38739b18b6ffa6cae0290c0870853b8dc578bfddf347442cf316c17818bbb35285d45fa3d5e5f27e04bb72ec4995b951f495d8d0e9d02e0ccb32e4b12e4f297ce0dba8f8aa91c0e17206dce8111b40839fdcf75a5a27221f9c8cc2f5d9fd4d2fc2babd96c6cd34a91689da7f1e6f28886ddc1b0d18249ba8542ce5f878c1ed4140b5c0edaa2be55a18134032c32fd089a4316cf35638a77846d0c7f0bc52638f3dc7e46029dc2a78abc92a9eac33295afefdaa5489d6257563a19509259c9a26bec7f4fa05f1e15e9983c2c94237c02f4d38ac427a1dc758d98e8fd1fe0f28c16e37f102dfe7a464aff957ca0792edefc95489736cecd3dcadad6ab219b52f539f3e6112440a01ab991147151cc3e15caf4b7adb1ec118bb1e2142ab22287b6f70b03e7412c3f32b3e436d4220650a57917059df03c41405a4fb4a689f6bff41823b03981c9ca1ef5be4170d4395cc6134fef68feb20c48d94b32eb2a1f242c19e469e7779007988d711a44aa5fe747e37ffc915a9e6ea9c1b5321ac19f58d17b08b6e5768af9cb47d063dff84af890cb7f19536fc0186220ffe7c78e1121ec1b07f08241c8eba8f038a4669fb252691b26ff82d12385009959751c851691994509d756d1a8e11f10d994472b3656458b49cbda175a63886aedc1d903769191e7721f995014c453fdca85287d1825016d4593d9fafc02dcb1a3e9f9e94dd1046916d9227a8b0f2d829f7f7cb9b60b659fab0f2e047d926a977ce1d65ccfce6f9d10c199eb780f0ec300096e17b4580f90837af228e6a99c6785a852c8f32949c2b78f7e25cee4dda1c7c5d6482db797df77a8a9f0a0d414dab383e5e8328b1947a44b396fbb3fccc2ad094a6585b07668fed178b861aa863a9694d44b4fb6626ea2d558815bb59cb1d8ebbc670ff1d6fa5a0b4eb0f145237c8de00785bb9397d115f3cadedc5302ce8ec9573dc8091dbef78b16714002361f32343de3bb83292aaa11b02e451ec3e6f8ef86d8831c4d49acad13e380708680bd514c02346350c2280ee4796c154a70fd5ab9f923888c1c0153e069463e9e7bee032a33022ed36bac654961ca8dd048f48b02fc7ff1b5d32ad8a3ef782ba72dae7e22fc96ccb0bae8e20adff9facb27917ee197699af57f67f9b2a93c425ed62b951b7069a3197ca5b643e8b38591fd391504b7708ee4ab62810091fcbf3f59438855b2ddb9f22b5c508c871a2e1d8e5e69903f0dbb1ec3592cdedd27ae24158442b4407a9ee655a3860eccef4edab20c718dce0f5a9444f64e4b668cd223a51ff87275bdc036066197922b74f1759b95972b1a0ee5aa36c05d5ce6e19ca631bfb4edcefb2f9d586d2f15d1c6e95eda56a31a0a3661e6735afac1a939ebdf032f77e73e97628db14bfec525d29068f69223b26f9da9a9c8891bd4518d1390f3025fd83c9da0ef2e1a2c7937ed3efa4aebfcbe449b233eddd8b2948e42f9b7bfcb864d65de13613caffc1d820eca379d92887b15c97994f688cde42bc527cc7a6528da8ffb3f3dd350cba8c826ff6ead12ebad7de0eeae07f6d8a93a4112148fe46f3330acb5a099d0a10477d542b0e9eee41e375875d56fe430e1514d62a1d4cf11e444e5dc71f30ee57c425a9b306234a5e7779f851cd5424ae4ceeac123bbc51dd8ef100fcfe4b966bf69f3bcf4868f22617f0a94f4b256cc807029a0c6a27ac0992f54d9d92fb691e78ed5f4c7275225baaa83fa7abf8ee43c4460312d115a506110f5202fe0162d572cc81a4bcfc7a815eec364566c7cf3fde57db47a16594a1cad3f8d69d3952b61359cc18b54eba53839c958e53d45e0015ee3cda8c85cbf271d2b4a1c46b1b08547681637efa603aeff13772ac1f9b9997d907525404878c86cc8954d6ee4f3978d299ceca62ec2bafb0d45494ac66e7d84c8499fe34bd9f463aa904e437470671dd7396083c56d68c1d0fd1f7055634a9127a79f6c9d492f4061dee743543353f5a025cb505e2e94b0cfcd477641d73821afba29ca71935aa6a8c7c34de268442190f20240defebaa9c51525c9728410ef0afb9bafce95c82325f48160eafad090fcdc2d45e27e0aae9b6464b7f15e0bd52d1d35252d9cfacfcb91e7abde7527669a83e9f34715f36131bd1838b147f360b1536ea427e2bb076dd6733072b9916065bb4b12686040d4f49031eb0a32b21b7286baa7bf54c48ba158e62920e26f349fbbdd667d84aeb287ffd4c643f4332912d37a80bf9f833fbf9e049545ddcd55356e858608665ef8b469caab49e373918dbe670f97ca1a8d24ced63317136eb248a3e8edaec97b89932f188a06f62baf594fbb1641604ce0ba529d833e1a0a1a85f63c7a60cd2f0ff888cd6a2c079ead148f06ad9094c59864d0f86f98af2a230236a0014f7d17b1584af29ca18cbb29d3c918d448ea555a6614bc5628ca69f9a72bf9a0711be2e3f0396db01e00b254ae94e907fcd89bba340c4c0c702e7b79bfbe1fa82c3d50008191c4f6c803e2221c445a0cb0ad5124cd99ce2336ddc909bca3f1ed532716b8b3855b7624fe63aa0691630a2a3b4a7c00601fa99cbeff6e39b3e6efe3890e140841d21165b70ca4efad19051717767a7ae116989adff375197cd0959524f0d25da11366ea8ab96cefb46e3f730cc898bd79917e203e998eb1b61309ba8d7ca8d6787c0dd7a462b4285f2acceacb670d99d39b8716a731d52302ea3a8c0016459a4c87cd9ee5b500fa419025577218b7958c7b75a65f2cabbc2a110c41838bd0bf18355fd980d7316719d7da9bf94966771b92641fd326b90c81b606da341c99f2aa296aeaec5b0c31371c162b90f9390b3ee77205d851cbf1471a299e794786acd93237d7a6321f900a0c80be9c5869311fd927c8673d6b5fe32f7f8fce8435966272e9c931c24aac53574bad3ada9a476c14cadbca7fcce7c9c64182e464c1ee6844130a1dad97f32ba66c8b16997487eac61121b9cebf297af45b291fbb1ef9282ee0799fa511cb62c80bb1576a827baf4c411e42f00eb262ef922c0ff844013eb802dc484f04751ede40ca59d8a38ae117ec700de08458859052dc98649960946cfed1e062d404e598eedb368ca3a812c75bf69cb22f9c03d957ef8bd7babb7692d861a4e78c68dfdb3144fdc73e595eafba9bdbd562edbe68af52d3725a825cad22c92af44995a7c1457dfaaa7aa1f65bb449c828c0c14175f18da9c5f7706525575b859308b2627a0ae4defcb8b63abea12639d4da8a00f4b302bc0281ba9d9b0c87c64387c43312516901b8b15d1898946fdae93b1c223f77e6be4bc1927a309d6305ad69741bdbfd5476234d52b5766b22795f73c78f739ba85861a6b2041b57bb318857be9b6e560123b631543eacee92b2aa78aa83870db28377f17adf5b0b7eed4e63e866b5121a3a553c4e0b5f8c4e5bd6f0d8c178d2838bff141c33095d167e9a97091af178756fcee47eccace7a6df03393e04aba1c72fe6b27255a305a02b95f93ad66da4efc8ad1b8a2d845fc30d1f4ab12b85b708ea658be0dba709574914c89f92067b48d207902902be96d3fa5518a2384492eea82c11d315702e6120e78fc4e9dd61496aff38f005ecd40b4fe719c90572a80fea67964e29d42fcb59bae2749db79aef9907d72ccf6b5f97e5d18f53148456edc6e8320d15782de4fb4abac74574614b3eee28bd4db19344683d559ddcd5e3f9e9b53bfd4770c5abb195428a292dae6925f1f34b7836bef406a990e9a8ba803cb71ad1900d22a2e4f5f25b57b46dcf295ec8114ae2869d5b22d333ad3557212da7161ad101491c02ce8a8b87034b1204aacceb13a564c80519c955a1457ed987f523cc007f960939967721a216ade0518ca527e317e054e23db2336d1fa0a33e1c7b58a7a754a4aec45b3af31d05ad818ece8757e20908b2ded5c2535e7ccae743712576f74e8d1828b269d14c0b6a0745ba18a6272df872404ef5cff6b4ae729ceef5738cb833e99733128aaeaadc1bd5c2e75cf8163c16df3b463f2d2cdc3fbcf0607f35ce823ed71a7725310f77ad109cf411f2269013c508256688402728676b9cbe8d27016640ae876c49b3112b9aa6a245888f42024ae6923e5a57fca591c9a59063b26172bd2db93a81067b1173f3f58aa328807d8ebd47a3beb528cc68f541fdf80a65d089f46180ff339fa4c7ac1ea922ad89405148899134a1fedb3fdf27c99188f506991750c1089cc860d3cd2ddb784fdf960dc5cee42de2aa37345abd25ff338d69cec0960a584764ac8dff3def09499fb72258cd14a01a461a640344d954a40d0b4a80131b0336556ddbe426ecb2a2b0967900aad8ff082e8e1a14f5a2ff617e136c76faa2144c3429c56c44f16f85a7e8705c4d97b4c69b83faecafa74652ca9e9d772f5a69faeaae6da71b67928db50b4fc205da7a8108ef75a17f70537aad7028ba3dd441f508fd04ef9c689a60533ac91eba39ea98f9ccb1f2a986eb9cfd4341a2a151b5dd422063a15ded4135bc140ebd03a3de2ed0bf50e39d57eaeb3538773602461b2169d8807c14f3900bc088fc9392177789f388dcc6a03b1f7258202cca694c912fca13102a264b4dc93f53fc28a7897a00d16692316dc951a80af4b2614bf58d09459f940a133d4b3ed4b6edba565fe9e6d25676327230e98dfff64729a6a1595d8615b2e2cd2798298d0f1d2893781a5066944ea92030e22e6ef2fedbf4eae19f738f16856d2c3353f681f33dca66e462327fe4507bbd4fa81b84e01944f656156c2e444742300353949767d590c05e048a05c5bfb69b8ed36754c43b8b2527f4e78b0f0ed9a0d58f87f2cc03a8316ae53e7ca94b80f9efb5e5a03325d269af119b9a80a1d69ebf4ed77037cf16a75b82e39e640f1b3d93e8569a1f3063b74d823d7c130430716f40ce46b7ca4d62d74b3dfee69a66869a31accd148987a51d2db0c66a3df924b5409bdeeb2871c391c04dc78018a1c83739592201b0b74243ee90de6e888dc6618e94f6ccda2fa5e3775991440672931c184f83ad0ff0772689abae4d49a4bd78bab772deb85df314209d2289d2d484d7b1fbba7b1354e3ce21d66e865675f33dba3600bdb168a1b4eb722d65cc5b31ec97901b5e565b29058f62c04a4314ca16688c51b933beff41c6cc3e5dfaadcbe90704fccc27255e15b02c4ae6ad701ba3e5f1cb4d324ba3ba4e7d8ad8ace67791a6964447ccfbb1076c9f486d4696ed1a3bc072ca2dab146875801577e461479ebcc0a70affdff523e5d06ddef9891c5fca36074d4882cbce7f736c86925545207078ffdcaae256984f4484c1d9d84ed553fb6e4808560891ec1cdd03de8e1d3c7b53e0aa568eb34b26ea683a04b65bb6b9b31209acbe8341374c767e08c16bccd3e2096e756045119b3bd520429804280860aa04364744d4847f56d6c8d749e3241c9e91a2244d83dc3c604b2eb74899409ecb22688286e3dd9584f5bb63a8fb7c1244349dc3bbfcaad823c6205b65fe6fe1012dbb2a55a3e6f5847f2ff9779cd6958506851c19d385c3d0f8a313c6518f8d7c0c57b7f1abf625af3c345172fdf08c543c338d8443668967fe97ca0379e67114ac4d81eb80d8c0dbff9af460fa2f05e865c637057ef508de54204704efbc4a95cf80f70215154efe332df6729e995d3e1410b72948d9586be603c43b389a17b89a56d8a1936867f1e1e967210767e30d6e26b0e18443faf72bf41870fcb5e2dca36fd05bea7c4477a7bfe5fa840517d870e8ab626ca8f3c4bb54313dd9a056570f3de1392c3c95555ce96ce8b163daf64d35295cc3c6f7dd4366785be39185c54bc681d3ef5474c153141ed17cfc826bebd45b0328eb7f02cda1111bec43a9c2cf67d4fef11884946848e777f1aa5aa177acbff1b6a282810fc421d28b5f8eb405eaea4c819034ee7c650d7ba80705d09818a402960a0b640dbcd7c79a5aa704c8ddf424ff4d33fd50eb09d6e1cd3b54694f3610f468ace426925b8075a179fa6d3d7c4f5dcc52352560ab0c491b7c1ac86bf68c2c08a96e6e1e535edc747ea2d4d3101e9edc29d209c9200183eb2477846b68030be24b8fa8c9101ab89e0cdbf10d7f8b6464983dbaf7ee874d99195538ad58837514afbe451c9dd69e7cfe9f4e88a43470e7568ed06e98cf9ffb590fe7c82d5644cae1a9bdaca23a129016b46affddf53beb7f5693ba4fdc59106666d16e8a682cf6c92cc10668b9804af0327b96f614516b626e9bc43885fba9c0b2b7123da27bfee2c2ba4e8ee46eae0d21c7d1a9ddc5784320f87c5df34311df0a5d9209562680ba7810c307a9b7ef917de4d6394fc6b0762931d236c9517516f865c043d3b100933ce9258d6588b17cd6afdef214c0a27cfb93e62997ec35a4b8bb910668b3e89293174816216936ffd4dfc29351505aad0158302f61763c19c6540fa724068066155f99ca3ad8b58668064461df1efb3099665635b7444965a0782f6eec5023492aeb7642af7a793981445a1e3fd42b73f45319a8330c6fc718e0519695824708f1867b4a15e99c855af3931edf23a67a34f4d8b0405f14334df08bb357631c641fe383e29d184c8efb8d8172c68500332365f62b49f070392ada6b03511f458850380fd93f02b2545f34c0fbc203c2a1f955004bd547364492b3ab40debc965dc87d0ebb5070dc213e46a2990610f5bf16d471ab585919a8e38688698e3319755df2afaff09919f654adceb58ee97e06395d734265607b3eb1e956b5d74ac767a81410ea304d7e2756b3c6628645a8cdbd5705106206e17f4a40252d38e8bedf00639f07f33773ce4651425eb411eb457b79daa0e25bdcd196ad9e523814bc7c5b32175c8e776d557e9fba6f7ac49de8887009cc53b115e41c459b17a1c8e12fa8985464318c21110202a075c127e14dc06262e44ce31b922b8a02022cd7cefc906e1ca29d5ddbf27b1fffa7ba646901497dc5dd077ac15519cc05d0e251faf3cf950d6dded51b9ef5d40c6300fe250ab5a51846325927048cb8460eaa1b90633a6afa225393a6140ed2dfc944bbd1b8406ecc15fa870c20d45caabf1bd94d0d4f23ab9fb72fd527c2a6832a711bfd03d96b85154c0871a8965e2c59b3ae3006fdaeae445b5aa1a1dd5768711e5cef99b482f7650ad514a5e76c5fe7c6d1bf18214a90143d1df7d5dca868f9415a39fee3da33cdb4d0aecab83d24e75f431f653d4a54fd0310f0cfc19312d6121ff8276131c4c98a155290769f062cfe024dd9766971100920ef7b5c6c6a555561b257b02c28a85d0abcf66bcd6617dd8fd45051c17b82266c83f69998b04b3d9cf003d6a93ee510b79d2840633a1132736301dcf3a89df185b74b61e3af288d2115420a912315c9566a021adb2aa462601e1815a33ba7f9743b833b193ba1e9bd7430523ce85d270e15a20c8854309fe5d04f10f44a26c2bf095fb78e2b57394c32c087cff5254195f8e8887b1431cb75a1a98909ebcea443cbafeea9f99c8e8f0937661c46045a946e6c962a0b88d858edc7929b3fd70be98dc427b5b48820fdb2ca7c6dc9502f8dd1e1cbc647d46c061675d7fa165db10273be68b41cb97c932eebdf0debb1bceddd8eebfe9e3c67589628f8cf650e92c849bbd99cdc614998658c3a651d268d5912ee5c4a36bcb2d584061dca284ac4b9ecd4b4a5b8591d6da51de4afde3e8de0d4ba0e0bfe2df3b2123fbfb5417f8e84b1389f99797cae462ce7dcdce738f907618ede6009181947eca935ec5117bcdfe1deaded575c989dc82ce3b8946466457cadb07e69b0ed4bf6637adcc79ac122437580ca2e83242437d6eda06c75af0b61fd65f428c96fe396efba4675a3c03b3d9a0a8b8d25b4caeec3eca60b56386620b3782a03db227bcace0b6fb3fcbb74a8122859a1a5f4ddcc3b6464c6842140f40a6ffe2b1dbd053fc7948f19f729a17823169e44041a6e8aefa064663e1135e026299f7d266443eb6ef453f1502a965af79d5566321d3042eab3e21587211316397cba9dee80ea9fb61b0e9720360af2ba04fa74acef8219694a0f1ef8932ec9c45adc27361395605ad55b0501029c4c435ad7676184af6ea9eacd47a810917372eaf310f359f1c4927b8409aa59e6014a68a2e51594e69d68e7966448521b3377be52f6fb01251a8289946c058ef05b5c19ed19cd28f8fea19f2846b3b6d02910b607d9c09d044fe4b64d08b3da6f097626f871d220131ee956cf198899a2663b997f4465932b85326fbff182aa85c241c750e64b28665257a9ef97af1da221065b3103801de202fb70835765731c04439177d6ed3cb1dda365d48e9e87a0e0f7fbcbb3f537cd0174d050a4743f27d091ed8c316894e48307ac87047fc23a31fba31a27356330300707a4f1eb273ec8c7e9bbc712c6d630544c8eec7070c5b85c06a93777e99d6951ab9621352b20a4386747cc368a108320c294605879b07a1972dd6091962cce07f204ecb7694ea64618d470718a07b5a3e5f293856212027fda47dba7de3794dd39ffcd61b0be971570535a59ba4c892f37faf3b3f72d4cabd1d11bb44d6962495390386005c5018f7c8fa47615f74e16bd648152a8340f7d1a25d4db77351c15c45727f6d26d255822421dbb39ca5aaf13d557ccf82efafcccc8e69274647aeac4b62b746e5fcb714e081d6f58b6aa2e463e0452d66c187e62998e62be75b667858eab2d9bfd495ec6ea0468d11413301958d01cc09ca061264c657c8333cbfdc209d27aea4ffaf59ec061b2e8c73c8d52749360be07db65a11c792167f20a7d8b886725b2edc1fe67514339fa128b13f2533ad9d6ff42450622e30a5ea0c5797b499bab012a33b9af0c919c2dcc885c20a74e41a9711a18d5aa0fafd6ad6cd581fe6920cdcda0585be1522ea09707b0204d54e6cfb177f4bb4af72f71055d3ce2191dd44f814396bfbd5c637443643151b2c767b9c631f9f75b3fafb9209f5ba5aadd6c79b6bdb47b41c757a3dfb35a7d600d89336d2eb8fb27c32342afe20cc43da0da24b00aa247c6dc586fa7edce5ea0bca2adb16d50a4864647cfabcc57682735194f02db0a227902df3d078e52fbb36eb3309d728376bd5fea56b4663e2f4630b79053506a2e7aeaa64a95395cfed4b54ffc5f802349f6746aba9a23c86b2af2aece4067ea95034f188d00b26f505966bce068d9b2913b74919fad3853fe8b3016af94392c62f22c54fa71ef029c38e1624a5d8d0f77206b11712d70199bb61527d18febc2f726ede9ca4a10bff6026c5c7e57cfe0a0f819b5ecafa1601b285f309a3cc5558785c9d83ca1decfa952a49ba9367f0d670b5064340f26afcce964686da47e8b480e06ea5cb683c0c1c0cd1fbbfd9ad7016eed5a7553c46aeb56dbc352bc2f0e07e925aa77a9bd028b7288b9b41ca54bf246695abe4d039ac1fb98c921ca155f7d81ab6fb2b140700466d1aa75109f866c1ae75f227e3b2c98211329f0cde89c38318f5050798334e16f4e4580c8ddff32b4b5bfbf977ed71747263b14fb871e7e9266684d0b2fd756f94a2424cbfed4377f0a90aae647c7eac904c3d1aebaec51aa5dbde4053c3c96e3548ec43170060bfed9041f91ba1b5bc3bedb2b2db6c249f2ec460c335c5abb2dd2c088bbe1a76d56b89b41f859e06236970726b8d55cca219c9a0071f8d7c54e70fb7ffb495abbeda83131bbccd4803fd37c52fa0801d4a2ee0d7de2d685fed90a57ec20926f16422c61ca7e28512e2193c107538015a4fb437f2bde71b7fc85036dda1aef09df2a39640e4d1065343658208d843beb6bddac7aa6d614ed89f264450da2959460e4be7a9c43052172480ca7d0ab3e9821c5474153d56ca8b65d8d67535d13a38d58f23489043701730903f43fb32a1abca8bff2d3c92156500eb361aafc16247af4d986c15990e89d5fc69e700ddc3d6005abd5011c23681963b9c252a1d3922f576ae685ef983af65a4ff088275e83d683ade6afe152e7ae914b765d5326c70406e22e3ef471e354f266e3e0198369d9fb8abd6044d4a86ff840cdde98db316ab4ba3243304c5ef19e17944e29050159a3bcdaf7f7aa841397aa969a05a6cd32194600b265702bc1bdd2d7df412a09c8d31edcacd3a7fb403cec823a38863f9e0b872749124384bcbfed7aef0b2271762fc5c962e21677fbe48dcb3c7456bc49163eb04ea3fa6a2b62c9d44db14e06e158938b11fe64bebd945172e0d80c866f710bfc60989433675a2322a341e4b2dd426ea8b9449a9a450103e691c2be7bee1177fa1c675108605c0d9b5e76164b5019a7824d9a1a95a402d2824799a3e0a978112c17b3963ce7016d2be5e67e8f24d51b9f481cdf05fda5fa4912635845f1f8ad85a3ffad9b55445f4df213b6d73509f2446deec9e5993e01cc779effa8b9df6def6eb77faa371d63d93630ddc8e959a4d6cdb7728285a6eb1398e71614cea395f613b93d748f4150170174f195eaf73d670d30ef1b3c7635751fb6b991c230e93e454cd4435c2d016f949af05fea93a877925e57fdca017083170e6cef7376611c5320bab647b919e69ea60294dbd8a754348809df9aa841c5b48b086c9cbd91b39c7e09727ec1d8a2fe527aaf5cf0fe0b6349caa2a0265ae74efad9f612146980176995df6f5b25df3b4904563920b5968c01f865039216944ba2d81ae84cdd60b99ea765b73c9614805f1a2818f2f1c4ffe45e5f4e7f982b6cb8ae6d36b38a90b5d109e794c975e5d7fcccc8aad955b8e7b1f2b18c410b28d5a8cddd959a294d89203f9841e38fac066531e1f103c1df326adeb260abd25aa01d463789cba004a0c9e9641b71a1d4cce1b11e861420a038b857a00d57ea2f4e5516e1f0a3e180a74d0fea240598433a336e80e16b52cd9514ceb36ab797e318018ed9e68538379e638c504afb1f03dd1266078bd01c3fe84cf8fbe55d3c04db623a104901aee67aec6b926254f16fab60aecfc57d4e03101e97910957296829a01cf6ac2894d2ff2b9aeaedc0f66faf839ce726dc5f623bf830769c2b5de680ca4cbfe58fb44d8a95aa260f60b053ab1eb0ef0ce12bd24e8753f0425b890e2472ff8736cef5530d83fe481959c87401b4907e4a5ef50c87f62becd45246734480408fa12b02158ad66be1f47f31342ae1d97185c7a00458982eaf46f30e2d5c15550c6425dd1a4744be070521d2b7bd897e4e688cea31a218023dbeecafb3b2b91c52a42f0d85f7edeca0dd55a8d38c497851d5b20b51863d587f9a82f9b967c7abd943fce5feaaa4b5bc73f5100601cba6b793fbefb363c70d212a511fac6e236870fb3f958d987b2bc8b1d9cd0c53fff4b0be3f5e9d171353c6552acb5efa9fbef9dc9c530bc3c2dcbe81c7a8a8f89d7831b9107c92db11fc685e77bf4332ef5550bc39674cd57fee59b2557bb5b72e34a67f67914047f29228f4054609fc84b270291668212f84f0ce9f50ed7be4914c402f45768ad197a7eb6a19e7a4a0166b78be6a62ee8acefc38aa69ec34ca3ef30672392f44bbb6517f4029d6c8f0c282810baa7eb7292f86f9f5c0ea0d69583741e40bfca3df547af929a23430059025a1e381a46e9f8f598f2197151d903de338bc14456a88ce4fdd359daae07edf477d1f694a16ebafe75662e9ef318e98473505bc84688430b7954c9b49f8dc0d07da931d5e05e7ef0af3a4a27db246a4ce8d6d43f177529e3853a167e8986f7f126d499319f1e3c15b3c256e705e6f35f3f2dcb8d79b1e1a65069172946603a20eba0a46e4474ba4730524fc2202130dae9db05531d96b3d07e94b857590a76e8f020e560cff8bf606a29007407cc7a00ed47cb5bf1b12dd77fac32cbeba20c23558605ee28d0061d6d387b64b9bc57538ae2eca734523d3d59500caac827b6bb6c186362743583162c3569f73f23da6d9d49f003af73f75f63c926f38e352e9cf5389e78050eccdb1341e7da5ba3304a86db78b19efa1fe2b74a5fc43c2a162b61826a0ea91d880b83fe303fac736d348418d691fabaf9af6511fd38957a692e201ed155dcfc1a7e8d8f99c5f807b1936e7ad5b0e48c8765570a821d2d0d60098ac90db58b8a2c821b2469485e2a72b568417188576e6d7f876a950521bcd44ef979abc3a6816496377a86b2d2e1d84634ca1d3784706167e42beb601982508905150d511a9a301149b4053badd7ac5cd1fa9f46a470657bdd83c30b1ddcb9dbad099cdaf71b18bb88096e9e6655a99deaea73275d8adc66bf3f3925d245e0b8dc21ef439093dd373ad9dc444269c46ecbde28b972251b684dceb90ecfdfb6344090445c87ea07cbefef02ff6fff3a6c5a99f2e8a10a3c6efd8c69f4709773d219301b62f5597e264916e72f271567f890c939b362b10d765888d4ebb10b21f78a31fe4a6bfbf95d2afa51edaa43b5a786b9cd1c4d154157a1c4f6bce9444d8afb97cbd127f26d134c97e034faad7a87bfe6b59a803e624edf1d748e49ebe8bbaaf197adb2ca96a746c21c15a155fa09c7785f6ee41d2aaa9915972f7dc46d55a7c11d71ca2de8ee957265f8d9d046405bddd75472bee36d55c0c959a929a338b0fae916aeed364b6706f2cf04d1dbd7604afdcb47833971bf0eb194619e6593caa8e18a76df15f7a0c650f9fdc472c608df13a220ae03b27c793377cd7247c5b07ffacc121c7dd964e16f8f843051a27eeb82fb7b64d49bad5b13a5aaf18297a8c5eccae28757d95c3d73a9873f5a01e28ff7bb68b9e2d52efe57ccdb3cad9a2221cd2be136203402013992c5e9dcbeb93c711cd914163d3c6c89469ee10db2864a2b90c65aecadbd21780b43226d99cc14f95f8325bd3a61d788edf27a914efc96a0bc6a4f3f00cd50574bc4f46b34f2545dfa9a9b3ab0df7c309e82568802956548b3ae9f92d575b74aec97f28f75b5d2a4e6c148eebe5fd953c71d64e55b8dfaa6ca18853b2d8df142341851bee4ee3fa79b08031b7fd781312b58853afdceb3c135c2b9f64d6890b5877cc24196701d6a9c54412601c4c6e3b0441e183f21ea07f4950af359efbf9e4a404ae12aa42fc03b467f99d0a6cebe930c1cb826c7aea61b458e28059925e56977dc146e0dec7f5b25276deace1638f4b88870ab62cc60143d332b407f4cf7a36438f1a61b9d31dec50de4c9ce3ecb6efda3f552d474da587a617782407aaa9a96f055b7fda4feff22e7387ab8d8e608f79c3975cb37c4810d6a8482e9b9cb7e226316cb6b5f55090ae4e73b403375e6d331f3c9e9e51bff8da735df9cb2f84ea62d8e01cac88f8ec228099bbfbb8fa396b271636335bed6f26741a36901cec38b7eda6dbb43fc962eb8cc795e07f93c38cf1ee8aa2326c82ed8429f3a71177c01c75f072634ec7ca5fe1e2e75e176e1b970f58ff591cdb40b1be4dbad9ea7cc46962177611b6ebd008bc66c5457fd2b28415fbb72d4aeb5a8fb9acb4c86e62fc8eef2744d2cdebfb9b46ff38d8b88cd85186bd5cc2c9e4832381950d7e47ae795d170bd78173fbb4301f2763e5ba95026b31bd1028a467725a4c629fc566303df16844adff7c0f0f43c64e47d5f620349fdc19523f217c63ea61ac5345802bbd91e483f05b88d0eb0afc7c523435439ad4b7235d46be6e0cb36b97fd805969f4b42d0a0985e9f826a19c75bece83c14ca5eda1aba699862787b23cb2ed6e1514a923dde71e35122327df568df0f71d6c1c4f906a39c453ee4120fffd8f424afe68f642e39023621b60186083f5f915f71d250c3377485aa683edcfc9269dc2ed1acfe5f448f4f3a5b7685e55ce1ca5552c47161a0d8b8f18154b9ebcdf8f502e1a7bfaf39461dc3561f6d7a6fd4710f63c81c9cbfd10f64f0faf30862a6c736b9bc4526595bb3ea4d48a3cc1561c6a5a93e93703667fc9d582919258b1647779e0f335f245569dd989b47cd984dfc72481135d8eb69edde0078d1bf46c81f1b193f71022f12feae8b059cd558bdbc0789ec6c7a4d74a4d8bb20adaac86f469bb8facd1e979f0a57a63ac159873d11df335b2b536304b39bb93602eaaa82e1c0bd404d1c0ea9bc4cf44f97265e2a1896f2317254f208218291cd5c230fb3cc6d40d103b09f7d65bc20bc570437e634e787f4d2af38ccbc23b5776026f20ed4c757fa6f0dbae7dbf692bb3731d55fb8abfcbfebe2d62405507861c208e47d25bd66008307a2951c0695694e9387ec0aa335644c20bb813c1d89d4380616b3d78e5ce685bc989bde0052b0ab995299044bbf2865b5940a20182c2f8910b3ec37a864a7520baea5a1701fc7dab93c25a8ed35421a5c2043522df5f0342085fd2bb602b81792b4406360f3dc57bb589d0a50693189546084801e2875387f441880eafaa50290d9d1d459fa4c76875d8e198c7ff8d4b71354bf9f44ca36cf79b475837e135e0242c71392ee6d4e48ce8ce9c37d9f2d4423dbc43e7679ab6c2bc131e0741dbf0ef37f96de81776233044ab314b9688864f69a4159333cc99790d79c460739fd450a489be3b02d33c84291d68dfe6678dbab5c85f521ddbec783e5a45762326dda6bbd0176bd66882f44c9e58f07e147d5bf4aab13172c3227d0ece3f7b3f87955796eacc81bb13f41df463f7415e0190fe804539531050cdc7b0a5b1348fd565b777794a1ba1658643821be90839098e0fe1082ffd1685375203854a9bb67d844347bba412047db231a76ed7b6b11e7e3741028314898dd9cfcc033d016b0478adacb40128b1a4c316345f12fb713692f93593ce1beedd5fdce758f824896b31c6c5d45da8e89cf4ffc41249c03e33fc9dee2558b88593619f773833d160f190faf34240eb441af8b873936a335980c9631d457af0b6087d0f371d014a274126f525f3fd6eae822f331f66c4274ee9920bf1f44cd23e7bf7ec586d84eaf0fefe9c3dced8662d64bb759b326ecdaac028fe399535d0d65475b04f814a2d24308815805f399884a5555135132d3aa2d51ce2fa93b38ba203a4699e0e4a28f50e53783b0a34219878a98d18795d27140b7b70d28fb6c356a9552a3fb5ce88114e2f3c758829f63a813e5ca9804061bff65c3bb94617f87f806c02406fafd668d083aed3403f235589029d18bc95285e9aa5785c69a1faee120c0d64c3741139a4d62fd774d3a37d52c4e1759aeb949fe36aa18c9804c400e742fc4123d9657c94b3a22188a1eba23186d67f425311b8dde38e0f88f56bfc0d7b723646d79431f0fe73c939edac167923fa5d07a7881ccb5aed1b7777ca549e85eddf920c7b0c6f221c966971ea2e2b750925bc66631d8bfc43b8c965e92739b246b1ffaaa4680ec90109173860d877edd4f753549c7cf1744056e8a2893f0104f3fcf6187a2bfe1f4b1f9a91af2597e79cc150c6665605417b4d7fa525cec2369e4c188ba2735f5a0d6dc2114dceb98fff90b5b43506a9e81e85a430ec492e5cba662b998cc0babe5282fd8d2ec5be54a07cc546905d45afe986a0d3cf63e17847d4852303a5d4c69d505a51b2e6dede74064d7877266bf352e6f91a1ea9f58582f07dafa64717135a7a62a9fa23dff2e15b2687d74100381ff0b17195b9662e9bd9df2a04a40df839144eea3de5584da945650e93b7b49310dba9eb7a429f0d08283167123fc3aec73f146c4ba7af0bd33879bae96def66a27043399ffebd4d42c7a4818de8abbff85cc6a32f028821054b62cad4807deb3a521958eb6e992bba04c76fbac839ac24bd41e28991271dc0e80bff6e55dc219900eb1303e0d055a68b2cd3b3a72b3e39b22a1671b4f534b64bebc0af3c461a10e06f8f87c98327d19fc964353ace5aade0d9d7e9c144156cf7067534f175e66518e83fadc834242469afbc5acf7e33d939f7f372d25bf4329126529efeb9d072b58434e0f337be5d61aa2ad25d3ae7ae616981fc20b8991d476408c7feacaea349d9106da60de16537374b58057cb7f3c953c2c094a6ee0fbb91128ab394edb85ded9253b54c387d5c154d7c9fd4454738c1b1f586284979ed4c3936ce89022daab30746445ecd65d2cdfe8cbf2d188cf635c909ec5e6fa31d951ab2b82a366942b5b2370a826e27cc2d67f6a1e655bd5a233a91dff8af6b5957b90960fc2396dbbcc00a317456a4d66f9d73a17feb71f37b758acc8c791818ae926c6f30af032abaf3eabf2db1f6cbd0dbbcf71b229ebc0173b57c17a338fd22895a51d86b1645bceb546bf75419e13ed0ccaf743716dede9c08d2c413b640e9b964d6ed19732b49da57d1343b48f486b735a7c31f873d1b0a167f293d176247b5fe7a5e241ff21ffa0367cb9fb8b847e78d6050fcd6bc491c6632e88cd66ff7c40f538bb978c9e9275d73b6a6629821c010b4738f761aef27a8ba9298cf5d381ed2c11e6be16a91823300de890513129bf1dbf183e0556ff10447390aa9177b19419208c60e57ba28ed1e7be5bd43f5262e808b011ce44173cb3b2ad3501ceaae67e867edf9f382551dc8b12122a6dc4243a889f5035e2b81e08bc52272594d7e9c5878230b248822d4b9bac481ed89df891c0a268853121020f7ec447d7fb2822efb5beb112f3c724d0267b3461b11224bc279f2e639b035c93f52747564c6c4edcee22abebcf9d2a3efef3a0d9c2267cc5fa1873c67ec512f4885af02ce36d6c50a0c9a44c2f69bc5bb764243a8769762d38fba7af9ec6464f1a16bba5d86d55e257b5f2a2c42d246b1c5069a2888a376b132df77a54e4dfa8ec0052032b3ff7267ee090169eb17e39242f3d38340139a9dc14c994de942ccb9f3c8517829e116cb127a972dba8b1a2c10177cddbe6013b8dbae1cb7b2085ade5951a056f323464f439871383e9bc1a6ab91ee992f8cf8d7ac32da4f4f6e4c5ff561cef161664f27479b12b8b577b72fbbc45fdc98a2e132d027afea2e5658fbbb47ebf8530f04e97f9da262e5082bce8a1fdbc00d26f7c6f1bacfb37e38315eab7df9584ec27f41b13428086ea5ca145b2dfdea74e7e60ad207bde23c1621e3e68eac415147263275827f10d2c703ba4c7b5bcfb6dd5fb37b1579928d9e9245e81ac8d494590a907a33ff66b37401f855f24d62347325ea90e68fdb442644832707daade24aef4b53255d07c9e68f5b377ec2782681923eb8deb37d676a3cd87a2c62125e2eeb2b6606117cbd506166f07375cb92f0fb1b25f5364daec0609328acacf1c1e215c7f46f35fcdb61d756f2361adb2e027bbadf7556689ce90e0059388a84a4b94c0d49b8ae151ab963471ac7161eb7f854ddc1de6c4461a6191bd00624f7c85c7a81060d1bdd2489410ff0ad8b9c65654a2dbc4f15d284deaf56029c5913a3f53e2212de9bc10610be0b3cb0d27a0083dde3cfd96cc39e804981c1d821a51d58c86baee963752b78cfe10f7d1c270b705ca4486fabad41e0dab0c7b9cf3b01df8c5ae1817178f8179bd01e63209c82a06101641ffe6d35d6d5ca2faf1f3524397036f412c193a286130d5ef894ddd538e945a8f6ae6da96a66b6d9e3cfa76fef4e8f0dc064cc2c60c4deaa7c6a2f7adb2da4d6647e7fd7f9aec69504beb99e8cb4742a16cb71919be84e19b43bff5f4d7c7ba9f11a7f2926f7737f634bb3e49f3260898e7e498760a378367c987eba8191309d35316b67435100666cb05fac17aa731cf4f6790bcb5028b3b9f7803795ef74ea27964d4fffa1491eae83d9b4e98f51cb9b4ca8e5a59aaab9fd748965e1292b6bd44550f833712f53a1e33944286eadd2b0f380b375ca13620230ce0de97babcb18c7c139850c9ba8bd84b78cb2452194277ccec26783e39cbc0d3a4a75cf3d96fe9362caa76ad010918087b3d0e8a812e2dc3a09b551ecc3a38bf9853fb09639b70a346411bb1109dff628eea9953a0c17e176fc0f6e79e3942ce5409922ff0dd3b5e2d72d859b6adc0207d4fe588d44e3529f9ddf1d8837861a7ca508350f5190622bef2748b4765c39a1bc243c4fe8d7ecc4dcaf59569300ff74cb1953d40b3a9c94ddfd96fea6b68e36b0d629d569f7824fbd5949e97ec0f6ac4c6903fbc9adb21e8c3f056440148af5dba123fce3c77e5b168cea8ab53eddeb5789425ac6a14ef367de75fd9c53d2f2b4f0decc883361d625dc80cb8923cde018face1f901fc3a38890710e8b93a0d27bbaf7a589082a85763bc3dae581d33a086d640e0a481effa9f20a8885ca7b79acdab5234afe10ef1d9f797189ff322dd568b1f9ad485d0088930b794ad0cfbd5b9705d1fcb4cc178574e1ce38eb7402acd7c9bf40516f523e4401d619e1bbb054cff8d7959cd856b251c2253366a6345d067e1a457ecf174c9ae44917ec099e1ddd6b65beafcc234638cbd4bb6d64b14481ede01393c9be0930ae52eae8deacf93180f0ea9d6a2e48fae3cb0ed4c1b08b167e43ea31fa328856fb45fc7883b20159049f97180e247a1e9e4f1f95e7088b9d93269650eb2416d7dc8a8a715b87518c40027f72981a17b1facf49c4aef8e817dd5345a53fd7073c24aa61d3c106749efb36386636214f5704c60fd15522d4d1c8ac79c5f04d3011e5570c9db19f2949a98251d12239694d43759d6c048e3aae97481d7260d135d141496d7dc4129d898925722b5a1c0859524441b8df8864338bf137c78d1ec855a9469976a7cbd01d8d484db950c00ca4568db5248480ba4de8125187bd734a6e3bb53ffed838b032734b5da367d3baf47d18eb6e1e7cb7dbcce2e67d48cb2876fe821527064af7aa516070c54fbdb5187e03552c216988a8eca9e8a3f871907767f875167a9a8146c88ffa938fb31165314edf979ca8b75cdd5def049106faf5ee752924d2df8d10453a3bcb60736db9b5fb533f63357c4289acd7562bdfb4d85526017e4b7c6a66f567051d6ce556c67359e7bea64fffc26ca44ce8dd2b0c7a33848d39322757c4e3f90fa69eb22f25564c9ffa4e142f8b8a879112f54948aba746c5ae0e7b3ad788599cbdd7537f25e13bffa0909b903f29896efce28010feb242ddae0a7ac72bb2152d0c0dfce55654cbdacb8e416d52e187506f7ef074246b74e008987cfc43a129ba9258c6e4019c9b3bb0a07b449eb7e4d52aae6469a395f9b977fa7154d3d2d26a33110560c3fa76abbd1a18dac9f15f2114ae2c5fe957d65ca0e7652db1b3df00867bb4e2036cdad4aac4e85c2806a004d9eaedfaaf99993ccc02b6d88937b57ccca210588fc7a2abbfe00bc30aaa11b3cf1da86dad44427f6ab53113ba63173681a635b90afed0af13f375358dcebd62b4f1033e6fc1037fe2a3fef080b74649bff068064a21a05abc16f2b612b746dd2c05e688f5e95f588b706a0bed828232e72df02174a1dc4f9ad4eb0ad9ef7f551cc2dc9632c8685d9de23864bc73574507db05a74364331bbbcea0a1abbb1787e914e2bf8766474d20ca3c02d4c9d126bca271abb49241597e226322a5e18d4c5e42b6bd47e9efb89e40ca0ad29ddca602811e0f9e6327a45b3b841b996463dc7699a0392f0e3115abf5c797920de5279ed20f4f063223a091cc143e61b43b0da57bbd61abe659b14a91daf6ebf6a032ec7cc6f06412ee5c2f4715193b88923e9a827d7dcbb4a4c09dcb574956180142caa3a098eca0277759567bba2d34e1e67ece928fd8fcaa2ea177488dd2885453208a9d9177bd85b93b72795dc5e2bb7a810b943af51599eb539d340f109093167ed3c6e0292673dcb92bbe445b50ef175f33b159211706930a768d6a440dbd04d04b8f0b7f0d9c67ee50dfabd2b3648ec173ecb01ead7f0cc99721fcbff058351e5aface5621189ba4c02159f1ea0dca07035fe7e99ef2b54b10aacdea9a6e7b5d3ca7f5148461fdd158a1eaa0009a1b4845b450a90fbbd89dcb87b1fe966103149fd008fe059d7c5deeb4be3f9d584c9ea459d9a5eea7322bc5dbd4764ba4cb97477f3f49104fb75ba8b112d913c6f5491402cda366c455ff65a17e4b6036f621a367f2dcc541c858dd24f5c32bb29a51a130c40466a8f40564484c65354edb6ceded354d7f497b6e46c13380298df83c0c4e059289ed2ddcd4cda4c5931eeb7c422467428a69e2abeb0df59f4e7f537bbcc61d8549d5d4642fe6d5301346e1c488fd5cac628f2f32251c2bbfa4c5ab559c8cd89aae156a29708099decc4958700368d481354292a0cb66c9dd2690c018e5cb7d9932172a4e0b21d2ba94341bc6585bed8e5f80f8635b0537417b59f3e3c0dd7bc654368005aac556a5d50923b390aaeb8eefa4bb4b61b5af1268720d46411f18576c7f48468e05c9b34b110cadfdab78df0272864868fb29f79f70e58075e4099193b7bd419464f7c67169faec8722b61b6f9d537dfe497ee542255ff90e0330018cf8d7b27eac09fe3f2e5c8d56fdedf9314d83b711638854a0b627e2deee918d7e56e256d7437b91d46f12b5e6120b1acb3cccfd0dd13b1f4813b5d46fe21d9baed242de38021f45f762104b83c3613f7cf177e077b0eb4ca28485217c73d37f0481643c053d6e6b9618a4b160eb24db6aa48d4a7c1acc4795d5cca5363b30ecca69878c832a858f948c6d662c573a661f6922f28c9c99b3ad738012e160d50475f28b7bb29a36ac1b5f7b5452c6963e14936d5cd01769d7fa60b42f979a50d4615f812ff251b431b4dab62e067260e17bbe4289fcd5c085f7b4817e772533ab7bb1f19d47fe19485f720f93accbea652b3a045ff40c5e848287c09e1452e57d9c5420a662fb965ebb1f1d99188597bea21041d94869ddf72d6e50e521b2d82ce7c87e0e598f771962d2f88a6e24593f17b37aec31ff7a4660e2e1d78ee249f738ee4b906ff987a79801ef6b174c19259f9656f701ec9ec991cd507fe3d9bd7948cc84a47865beeb0b1066cfb746ee93729a9bc48e9e6a3f90de86d33a3d362486722aade19ff0aed66a0f57aea971d9dc7b10ffda07e12a981f51e324bec5e6cd8918c7bd69ac098f8e149aac6310c36dd37d1ca96246ef770fa64294d599f3e07fff97d3cbea5c74832111592f0a82b6b6eec9e5cce208e9c860189991759b927077df50160665a9153c966ccd20162364d48c02991ecc4191d0ec00ab13d3fb198f5a615e3b23d2f554ea80e004a758bde2d7cf54a8c4bbebdaf070c359587f816ad3c2ee270b59501c8e6ac1bd6fa49378e7731df7d785a6fe05877a31ec5715791ef525897e671405f7d49c4d53ec9ad724cc0d8abad7954d07ab69904a08a841b9ab601398e47f80228cf779a33ba2afbefcdfac6f2babb6aefe168f6a1043642a609188ec5a9524036b415cf34265afc6e0cf34963b2020d7d51c927b854e94c9f7a3d36a1def8663052a84b3166270d9ce7b9251f94b8ffe642a0729fda2aaa3d2c214f981f632d67e13be75f822ea9f8eea7cea9e4e815a4157d6a2e356f3c9b17578f049793c7071807895d197e8655d890f3320e324df7d057ef1b97536cfd0824e720425cbe3a4c301d18fd867f22ce5db363b05b2a0f690d493ea57db132bf3ecaabb11c4d1808d5d7cb1f602d2c20a63ae89cc88c482a2f331ca9d89f9417287fc8e5e316622abc8785b0ac3d25084bea362bc1255544b1e5cd851a66132f9004c6bf2ca399887d9a3818610e6f66982ef3becbd56a2f5592e3f41abcb6cb55f04a3f1b335ad98dccec92ccbb5add71049ca5ce6e9973ca90ef10f1fb7fd8949978b770545dd43e40c7f75342c62d4c3485de68c5fd55c394498b14f0ca23c88ab992885d68bde8853258d9a8d1891337c1f3d239b7cf8fed3bf4f59b3adc1e02b6a340eee74922d12d96bd207819e7869805a0d07d2b54a82e6641655f37b25b10136c086be7121033e1cb25db61dbc43ba334181bd3c024e0bfd82adb0772bb3ac759c518243facfa188819d1db0b090bbf06215099a9793c42c079601cf7ed4764dd0aa81fb8c6922e22697e255f7ded89500bfe188924ffa04de0afb14e8ed98ceea47a34e226bd34cecded8eecb08537c63500398e9df55708c339bdbc169c5d3303670bcc95c6dc95d399928020ed8eee9d749d5221f2c4ccfa04a1be75adf88a17a87e7cd00e08407f0843e9b0b2076448ba751a2174028f0a377f84bc53a4e164c26dd2ffe8ad3ff6f2618a47267cf7ea36c7294c9587d94b0a2c352fccf1b1d1d8926af3e3e8434fd7c6657358742ef3d1b40b5595bb41a3ccf152cf984127561301eed9972e2c7d2c24230ce6d2d8dc33f7c02d13e45e3ffe83fa74b9b95357e3cde29a3422ebfffd913ffc0978de76e03f6fd2e02e946ca37484ba2b0b0c3199f51f703a5cd33222d1c61d0822b4cd7d5542225e04bc886ac0d5dd577d1cda509066a8b93320d5347a2a72e0498fc7a6842a99d86ee510f07e19e7d6453142a061c06098c7184533ff31d70289ac738abd5210f7a4905e3ce3c892eb0552673a3e3ca42096bee0fa81e4697a953456163f913d110f3a27f95487f2984eba43725f9c9c85c131e21bae8f99bbc11241097c3d7be0de3bfe2400e5255e6500c0a43d5f49b2ef4217d6081765beea5491c2282787115c3f38770a940f57d3ee946f0795887f8e6ec19e11c33aab39c358cd0e15266dbf3ce26db3335e3099392aff3b5628486ec28c004365718c353

So, for this challenge, the encrypted data is shown above. The point of viewing this data is to get the data with the length of 64 bytes. This will be the encrypted data, sent by the server to the beacon. It contains tasks to be executed by the beacon.


┌──(jigsaw㉿jigsaw)-[~/Desktop/scp-4.0]
└─$ python3 cs-extract-key.py -t f711c8fcc407cafd6894c33bd11e17f3167372f8340bde9b69637efe75b6d091ce20d10f95ed12bbe10e2087731095cf9d66610b7026ad87e62cc0ca7f84c486 beacon.exe_240116_202412.dmp

cs-extract-key.py is usually used to find and decode the metadata of the beacon from the process dump. This metadata is basically metadata of the beacon whenever it calls back to the Cobalt Strike server. The metadata contains information such as these.

Beacon Metadata


However, that method is only for Cobalt Strike 3.X beacons as the metadata is distinguishable from other data from the process dump. This is because the metadata will start with the sequence of bytes 00 00 BE EF. For Cobalt Strike 4.X beacons, the data is encrypted so a dictionary attack will be used by taking a sequence of 16 bytes from the process dump and attempts to decrypt the data given to it. For that reason, a data with 64 bytes is short enough to perform the dictionary attack specified with the -t switch followed by the encrypted data.


File: beacon.exe_240116_202412.dmp
Searching for AES and HMAC keys
Searching after sha256\x00 string (0x3cd720)
AES key position: 0x003d3c58
AES Key:  730e4040888c9ccb40882e33789a5cd6
HMAC key position: 0x003d6f78
HMAC Key: 5a5a7717389bf665aac5ec021f0b56e6
SHA256 raw key: 5a5a7717389bf665aac5ec021f0b56e6:730e4040888c9ccb40882e33789a5cd6
Searching for raw key

The results of using cs-extract-key.py give us the AES key and HMAC keys.


┌──(jigsaw㉿jigsaw)-[~/Desktop/scp-4.0]
└─$ python3 cs-parse-http-traffic.py -k 5a5a7717389bf665aac5ec021f0b56e6:730e4040888c9ccb40882e33789a5cd6 capture.pcapng

Which we can then use cs-parse-http-traffic.py again but now with the AES and HMAC keys specified to retrieve the decrypted data.

Decrypted Data

Right here, we can see the commands sent by the Cobalt Strike server to and from the beacon.


Suspicious PDF File

However, there is one pdf file present.


┌──(jigsaw㉿jigsaw)-[~/Desktop/scp-4.0]
└─$ python3 cs-parse-http-traffic.py -k 5a5a7717389bf665aac5ec021f0b56e6:730e4040888c9ccb40882e33789a5cd6 -e capture.pcapng

Using cs-parse-http-traffic.py with the -e switch which extracts the file, gives us the pdf file.


Flag


Opening up the pdf file give us the flag.

ICTF{sTrIK!NG_8AcK_w!TH_cOb4L7_stRIke}

Conclusion

In conclusion, was it a fun challenge to make? Yes. Will it be too hard for the participants in my university? Yes. However, the reason why I make such hard challenges are not because I want the participants to suffer (even though it’s fun to watch hehehe), but because I want them to walk away from a CTF learning new stuff. In every CTF I have ever been in, Darrshan and I have always agreed in the 3 rules of a CTF which we follow step by step and if we don’t complete the first step, we won’t go to the next step.

  1. Have fun
  2. Learn something
  3. If we’re on a streak, win the CTF

jigsaw's blog

i’m zach and I build labs and create ctf challenges


Unreleased Challenge for ICTF 2024

By jigsaw, 2024-05-12


On this page: