Dot Net Perls
Top 37 C# Example Pages

[".sw.ryssyrh.j+/CST~~}T~~YF477]CCEP474+CP476476sCE.BP6.CCP66*XS}T~~}T~~","Overload."," Overloaded methods improve code clarity. When designing complex programs, code changes and some branches become unnecessary.","Overload, notes."," We add overloaded methods to eliminate complexity and enhance performance. Overloads can differ based on arguments.","First example."," Overloaded methods are separate in the compiled program. A method receiving a string parameter is separate from one receiving no parameter or an int. ","Note: ","The methods are stored at different locations within the metadata. We have a method group with a single name.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Based on:"," .NET 4.6\n\n","C# program that has overloaded methods","\n\nclass Program\n{\n static void Main()\n {\n MethodA();\n MethodA(","\"\"",");\n }\n\n static void ","MethodA","()\n {\n }\n\n static void ","MethodA","(string a)\n {\n }\n}","Example 2."," Next we look at one situation where you can apply overloaded methods. This is a simple way of improving code readability and performance. Here's some code that is problematic. ","Example: ","The code writes the word Popular to the screen if the string argument is empty.","And: ","Otherwise, it writes the category name. But this code is inefficient and confusing. We can entirely avoid the string.Empty argument.","string.Empty ","string-empty","C# program that has no overloaded methods","\n\nusing System;\n\nclass Program\n{\n public static void Main()\n {\n ShowString(string.Empty);\n ShowString(","\"Category\"",");\n }\n\n static void ","ShowString","(string value)\n {\n if (value == string.Empty)\n {\n Console.WriteLine(","\"Popular\"",");\n }\n else\n {\n Console.WriteLine(value);\n }\n }\n}","Example 3."," The code above has an unnecessary branch, but this is not optimized out. The code calls into ShowString, but we know that the string is never empty at that call site. ","Note: ","Removing branches increases performance. Processors use branch prediction, but this is not ideal.","C# program that implements overloaded method","\n\nusing System;\n\nclass Program\n{\n public static void Main()\n {\n ShowString();\n ShowString(","\"Category\"",");\n }\n\n static void ","ShowString","()\n {","\n // Send default argument to overload.\n ","ShowString(","\"Popular\"",");\n }\n\n static void ","ShowString","(string value)\n {","\n // We don't need an if check here, which makes\n // ... calling this method directly faster.\n ","Console.WriteLine(value);\n }\n}","Notes, above example."," There is an overload with no parameters, and one with a string parameter. Overloaded methods always have different parameters. ","Note: ","Look at what happens when ShowString is called the second time. It goes directly from the call site to the Console.WriteLine part.","Console.WriteLine ","console","Internals."," Here we look into the intermediate language to see what the overloaded methods become when first compiled. Let's look inside the ShowString method that has the if-statement. ","IL ","il","Compiled method that does not use overloading: IL","\n\n.method private hidebysig static void ShowString(string 'value') cil managed\n{","\n // Code size 31 (0x1f)\n ",".maxstack 8\n IL_0000: ldarg.0\n IL_0001: ldsfld string [mscorlib]System.String::Empty\n IL_0006: call bool [mscorlib]System.String::op_Equality(string,\n string)\n IL_000b: brfalse.s IL_0018\n IL_000d: ldstr \"Popular\"\n IL_0012: call void [mscorlib]System.Console::WriteLine(string)\n IL_0017: ret\n IL_0018: ldarg.0\n IL_0019: call void [mscorlib]System.Console::WriteLine(string)\n IL_001e: ret\n}","Internals, continued."," The if chain in ShowString uses an op_Equality. None of this is compiled out and it also isn't optimized away during JIT compilation. ","Next: ","We show how the overloaded methods are called in the second example. The methods are separate.","And: ","The compiler can easily tell the difference between overloads with different parameters.","Compiled methods that use overloading: IL","\n\n.method public hidebysig specialname rtspecialname\n instance void .ctor() cil managed\n{","\n // Code size 22 (0x16)\n ",".maxstack 8\n IL_0000: ldarg.0\n IL_0001: call instance void [mscorlib]System.Object::.ctor()\n IL_0006: call void OverloadA::ShowString()\n IL_000b: ldstr \"Category\"\n IL_0010: call void OverloadA::ShowString(string)\n IL_0015: ret\n}\n\n.method private hidebysig static void ShowString() cil managed\n{","\n // Code size 11 (0xb)\n ",".maxstack 8\n IL_0000: ldstr \"Popular\"\n IL_0005: call void OverloadA::ShowString(string)\n IL_000a: ret\n}","Final notes."," The ShowString method doesn't need any if-else chain at all. It simply does what it is told, without any checking. The code will be more efficient.","A summary."," It is possible to refactor code to use method overloading. The overloads are easily inferred by the compiler. You can streamline code. ","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"]

%iVBORw0KG;)NSUhEUg?ARg?ACHCAM?AD6F7ac?ABgFBMVEX::93c3+6rH71Of83dr70u795K/819r82sT82+b94MHtIe31mOvuM+nydO/3q9T3ru/818TvPNH70tn0isX5v+rwUfH5w9jyd9j939LxWNX5wvryYbn3p7L5vbz95dL6zsb946Xp4Mf06c/z4c307NDz5tJHRULp5Na2qK7Zv9HSxYzJr8Ph1JanlZqyla8?ABjYVvSx6796vH84fHo3aTkx+Ls2rf+7ariydfrzOrv4J3v5arm1tqzpIX+8snGt3j82vsmJSL+7MCHg3z96crt0ev95ez36ab94vv+7+5CPzn02PH04Ob96uPp5+P08u305b/u1eD08O713Oj27LL96uzX0sX96Pj+9Ln+8ar08/P948n97fj96Njz7uf96Pv+6aj84uX6zvX84tr069v82Oz10az97Nb+8Nf+9f7+9fn:fj:vv/+/v+99:++j+8f3++P7+7f7/+Nr/+/L:P7/+fj/+uD+8Pj+9NP/+NT+9dn+8uX+89r+9eq2A0ny?AaCUlEQVR4AdzZS27bMBSFYW0nk6KBF6BBZ16A0QQIkGlFSqKefsXR1nujgClNH8rkFe2q/W3YE0384VADK/Guv2N5IVG5xOW4hF9MlZpePvlcJt0tC6ZnVtc1czJBJX8pBgcKbgUnOys51jmSuNuC5TlfBNcbbY2Kr3rV7mBHnMJ1+S29/ES8TABPsT0vMgxK5nd0YUaLuWyE2S0cxm1RgK0w2sKKpcAwXAqgEhGmXTSMC4Xin6Dlw/BZxo96oszR/wxDJFMsmU:NMzUXLgkQEcIF0xZLhIGuzhZMmYEI4BNrVpiIZtyaTDuUwRR+AndOczQlpS24cNIGRcmYC7ZvISZDaNtdro2GIa6LQyeSzY7YWXBaBuKDSOjwfSeLlmExGUjzFtJWThMGCo+DHLxYKmyCpVV?Zlw2gbJgyFYWa7hLBUV+PBUOzFUPNhZsylCmgSJsMw/MVQcWGwSxBK01TOgmEOfBiJYWa6BLI0ziqr/f1g5CwYeH+5Mhc/Euyz/wjAvE/DHBgwFB8G/iPlzdIE9QmjAzCxF0PFhJneC0Txr9obncGcTqfyorcDxYfRm+G4gOKxgPZnmTBfncnYtdSxVZ1CyV5S7MdQ46X0lrrObNupAbYWa9RL82L0qmscrWHiPU0PVEpfZukTLoU9tQqX5DgAQyWygw2l0elPHzZ2m81m9Qnz00oDGWhE6IAZxPsP/FOfcZjr+ah2oFblYc+b5NglzE6RyDB2MhqACrV69ejaYva/UtQhdcOgEAzltxjq4fH744OGkRDGZqEGoDINg3RWm9ViYb795sXedts2gj?+3X2wF2SEilRB5rUWbEl+SQ4iJsETYC2QCm5N7aL3uTV+8+u15JCRpLroD+i4dJGLvJhZlaITwnufgRzj+y42FSxIBia42NgkDJM9Sj9rzC3UBmEPV+tqmW+VbkgJZbXwyAEM+McNntg+lnaeCVMFO2BWR0FM4DLyUng91bFbRXNN7DsgQHLG2ESJbs1xNl0w9l3MJdp6r1ylDqet/wxTHEMDBpmcXKHumL+4KIE8wSYsguy7VIJMy2nCoarpOZibJgqjVLD6796lDxvD0xxBEzPD8yeCVYL3++xwmQbpsoFqXaxMNP92YbZcrGZKfnu40/YMR1vsgemOGaUeguGhpErs22Kxa7MU6ULUskyHidSyqSOf/15kvA6l5LTC15xlDEOMZejEZ0NTFdJw9HFrxmfYd8wxTgP+5dhKBrDUIjTy0YYhqZtwmjiCeFZDHOcCLEF04k8z4ueX5ai/TaYu8BHsGcIhl1c9AJHcxCmzPJFsmTEtQRGojVUJOoUibWMY63j6TnTmjOJOqLOYWo2hgtXkoOEGxhJMI0sTemTnjZQCEZg02RCZJmRaePpeSgbGEhFkSe8Zxgv2gdTHIKBDOv5vro7WYWAKbp4MUv46eAofc+CSHYFBa45qvWJSWA6Ao/7OXhQpTnHio+RLkgwRKaCqvbxj/5wmKbichimp6dDeylBxmt++?c4yJwxkt7CyaiKsQxMMhBGKRLZcVAgnu7p4qLwtI8/RhmXmJBEs1hAQZGDABAGB4o5w4j13qKSMujkjH.YJ0Z7XaWKla7T1gcBUNbU7RNpQsvWw2YeGBIssmJCIcjM1Ph0EsDP4EUBkE3bWhQR6+VdHM5yUWROrEwmhUSa1iNWJqmJakas+OSisLqpRMxnbZKAmYT/1hIw2tC4gyckEL9ZvNpoFpm7Yhn+3lu+xEUcfBdLzOPhjkAMzL+wprGDQFQt9tLtZwsTA2uy7zkgui9WwDg2JhWjnXCKPd6+bJ9k1Ly7EJVwo79wts0DwWJnQwluj0FA+CEdnEtg0yefaxLLSN8YksTORN3gjjflBgC/fMerk+883NDRqCKcvMkQqXK63HBGMbRMscgUCeE46LbaSW656xzQ1noMFBqq6FEWljaBPaU2hhsox03Ab2NjBCdMgDdfM95n4fTHEIBjEwFwMaI4Rm6jbwg/V1NcycUmIxMPW6nZ485yhITD7Snl+g8pf9zOvI2M0TKkMBDO3e4XOwW1BJCjAYog2Mt4GBiGc8xPL5to4I5n4fTHEY5vERMC4LM1GBz9ZnA9CUYOYmZZd6nemrutm9uesS3M4jIJEOAp4Rjva3GxjJyGZGHXNjdADTSMXQBkTuARhYNKlmqPBpb8HsXEoRgP7562/IvAXmEXmBucCGOfODhVpf9zBQuJkqZSpc6gA4z0eSLHKmZdyKmY6JR9MLNs2Lkda81codjOI39Supr+jiVrzLk0/D3x0MiNJGozG8NDCwEO12c5LR1xhhd6+DEVEn8jBQnaVtGIKBzB6Y4jAMUjzYfjHff1lYrNe32DR+8PnhhabcMdssCGcaBiNjITmd7XIBFsJxkhYGvwMZNo39WwqRV2NE0unmEzaK2IwSaOBjYNpE;fAw95NiNu90ED1lnaiAHMPmPv/DvO4AxPQILFrwJz5veuBHzzsyDiYKhek1TrP3W7ZztfW153383PbODd1yk2SoCIYpisapV+GW2m4Ay3fSbvp0iYiBwOajqlU7AoGjJOphEGOg0EK5PbMJ5I1Q+s8Ya7w488PG5h3VqbKBclt7O49mFjJ3+q7GSNTwFSl/2tzE3tzI4DZzdKDi4WBShnm8XUw66JAl6zpw3r+YI0d3PMR9fS0wKr50+SdSQ3/jfLeZmpScrG793C4VvVypv/SXkevaUNRHMdpmkbS/8AnIcNRuyk3gY7uxbQx3QaOsbfgkI4NGxQGyUNays0h/dd3ftdQUz3tkKVf5D74on449964mM9lmFpmyGPza3jBq5GZTZouZ9hMqHzIBBmGEUdGgDHd3eamW/Qz/j5gk2Ck/MFNnidKTQP+jKqqVqvV0nT97RotGtm23XUv+YelXz/wifIpbXQp57ofXdf9vdXn3hwJMNa6dxfo7LzOmjX/GHw5n5l+hFmxHbuU93AR2oL5U3d3X5YFt0ZljKmKsKlyfnfMSJ7WIZpwFjcxWY5zzK/HnG7qcqfvuVN3U/pMdleotwCMRGPV4aAdWo/x0EjNqBTaGyavXVCOBtNAqfimKDyl/KKgUnPGBl2Z+MsfP8lOJYfDZ2GetKgDjEQzseTOudeFQbUMOmGRuChipYKCZYgaNDUMtwuT7gUj0HTnjf4DRrcGg7INTTD1T/qYmwJ5cRTFXi1zJcoAZkeFS4+QALPTBkageRYGvToMZHCY5+g2j5WKvD5cIsVFA60hs1zKMNsmdUebRJhmgNnqnzBIgNFtwoBmXY7GkfI9308Kn1WCmJU0aJayjC27GBgBx5YDzK5N7yUYJMDoNmAg06RBD1nZHykMTcJrQoFSY4IMrm0Dg0QYeIgwDZpOpyPDSDK9ufMCDBJgdBswAk2elbpMfDXGnR0TjQBD9EavZBlbYgGMEG.BCO1L0zYHkxDhojMxFCouaAPmIC8CCvR1E8qyIBGhDkUYIQ663Zgjg8O9oQRaMIKLrodmJqGAGNoKAxBU5Kn1MjzlZoSGZ/4rSRjv+giw6BdGInGcZw9YVBLMKChdRVVGc3CmmagTAkRnoqZSZoZ+y83d/jbtnHGcby0JIuOjjrqeNRRFEUrSZdgb4rG6+sOTDwESt5vaVEbTqhOltKks4wpSFzZ:p+D09nihHDyUYzNPuiPdF5USAfPHyYEHa1y01h0AYM2oBBVTDoM8IgA3N5+esHgtE0BzQvB3DBcwq75mB5uVo0+0bGvtM0LtvDKCZzmhwml7EjERsYqgIGlcEcc46zEgbf9XW2IjkbzaphEMH8kNPcv4fbCC6P7+FPNz8vl5cPaGaO9/cLMLUbwXAn4OtDo6SqWyinGQrB9Yrf1d0MBlumx/lpDrN67fD+xTrMu1FiYGZJOttmYigj89tvf8JNhG8aefzt8yV6fvgAMgSjZcphGhUw0uHF+ylw6oAp0HBu5zBUKYypCKNper2LIgwk0lFxZJL5V6YE15+EgcLl1MDkNPfpgU0DcwiXn7FsvtEjUwHTqIBhBRfIeE5QhMk3DWBMN4IxW6YI8z49KsAkCZGYmTmpgvmAHXL5Qb/nePJEy6B7jw4OD6EDmH98ix5+vTYyvN1uswY0fMZYyvBF2iAYH5dtt9FIGWv7rr5GvgialGJBEDDVVDx0As64NeRcqo6UMruiOynmMp4MpIy1zO4ATQaDHOblJKZfymUMzKnV8/YvaGyaF8dNqz7Db/f1izR9cXT0Pr+VkpPF+cnJzIxMBQwCzF9XMKB5YmjuP6enE2CwjTE8h2Zk7I4Mmc+cNmSY40CljZNgXKfruk7LbfjdVot12zgzmVCoJmKO5CDhGYwEjB1HQtC/wopDvWIkPgAVRZlMHEWDeCCjNZiBHEwmOCBThGnybMUcK+X1vOZQ9d8B5ihN4ZLDvE5ORuejJNEySX8LmB83aS6/f0wTc4BnNh1fGxgZKdxJzGEYGfikNYg4PgYj42EthhM8ONvZtevIJlIOy06OM3BUs27ZliWEHFpcWFYnEMrKZAaZiMQ5wQmROIoJ5qWGmdApZRGGmnJ+gaZKTTE4Xh8cWDEJzryj5Agg58moGkbLIILZwT87O6ChzKo5PFjew4b5eUkP7hVMHA2agPGdbgbj1lDXgUPX8Q1G2uo29DWdDveAwQGDFKbHcwSuADMUUcfShSLbNIHoZDDEI6NszwyiiYExSYnjI5hT7l2gY5WtYK:+i1WzMbufQuQRZIsMph0Gxi8VM0CS05zuaQ/8P15ee9xPjEyimn5+o4Dkbbj48QHa7g0MG67hbPh0gmqFlG1HM/zCMaRvJmlnEDDxEJqFhAFFuqIiJbvIIr12JBMFO1kMFrm7gTJwSZMjzcvUI/v4/yg0l8Ac7Sxe9+snkc459gx1TBTDUMylJFB08sDDMzBwUM8n8zyjaJODoOx0TBugznYKV0sZXM/6bkBUkAwtGMcJ2R6eLiG4YJbOq6JlJAEI6OJ1tE3lIYhmbtYzFi+Mt6E8bgeFX6K829qRDBJ+jpXod17tIKh8yx/Kr0lmLwCzI9wWZdBgEHYNOghDQzJDKMwe1xjQPBUwpGNhpM2gJOmDV0bo5KmNDeEJD0to1joOIFeMRomEMNrGL76IJ;MmOT3VYaBsGFdswEp4H5wcAoPr1AXOEAzMkvKE1x5L1P3hPMXO+Yk9HZNhNjRqZgM6UefPPo0fd4Wuu/LQ2jCDC1WkDLl+FArhPo28nUauVzg7OpZRB3HJyh42kYISydIZJCAWaoVwxO7bOjZbCHZawfTbv0UZwYvXtXm8ZSZ/QNLv2Pd+87wGBUznAuiOfNxhs8QtFdIsBAJu+jW4peUVO7FMbc3msqEeI3J4XyUEgfTASE1GB6kFC75eJkLd5BMqAT29a2hyK0KUuJwMAIYVZwr17nDsc7YS5CvACtB0Idm1TI6W8nQXB6Op32lAeP5ZXuKfOv8Cpyz331L+T79P/ZO++P3qw3SlYDQ7t3lsy2hIFMKY1pByp6tDt7KgjpbggF44qHgmc8Ttv1WbcLCw0TtpjrXsOIwbATyzC27ViIQTzgWDEGBkQijhVWcAbDHKnUGN4h54EQx2swgfIUDwIM4BQf48upgfknc59+9+yq4X4HlyvfPz+fL0766fnZydy4vE1Gs/l8NhrNv0Kj5KsqGFQOsymzuwq/u64IyEWJgIVCSOVRKsi2a8PAgKQl3Jrbkh00CASScadj21KIUA5tS+YTEwgRKYtrGOU4AjPjBZBRIshh9lkYhuoUJLI5VUFQn15PzDOXMX955euJqfn9dL6YJ2manC8MzFlyfpIk+AW9es9KYFAlTIkM5sV0N/ZXG0MwnN51vuvX1vOzL7vhsEMNY6ggGzfT0EbWespcAKbeVGMTF/w477TpnaL68RRxNjUwaPn37AMq1LP5YgGRmRkX6i2+WMzBgmbJOc6bw6CX13uYTrjkMNZecwXDceY0tdJcISGTZ5ussgCDxtdJ0RyvwayaIi+o5zAmA/PvBfrk9z8vzuCyLQwquEAmrxwmEEpfVMAgHokylyoYkuEKqxf24xIYyCjcTbeEwfrF4q2GocpgIINKVDRMnTS4ENzIVMHgJroNTCBQCJdSmGO+P92EQVvALOY4fg+Y3U0YyL?8aapAmY9e/uJof88Lsph0K1hUCmMrgSmKFM5MZDZrAJma5ccxlSQ+QPBEEUJDLoFjL3eHxKmIJPDbCWjYdDNYGz0ZcKgG8GgbWFs9OXClMjsUOUwum1gYHB7mP/18i3I/FoOA5lPP5XKaPb2toepXr7jLwCm5Kn00zoMymGo/0cYVAKDKmGQgSn2ZcKgbWFQEeZVvSTAlHdzmHIXlLuUw8Dlc8GUvX2gqmF0vxfM+MuBQQWY8fimMB0uO7eHUWFYJ5dtYWpP57eHQSUwqAwGFWDQjWDiMOK2LanBf4MZ53EJF8TD0LsBzNUrP51/VphchirAoC1hrDs2F9JGw4EIeacKpmf1xnl1EWiYMVfH28Ogv/RHt4dBOczWMjkM2hImhgsFoNW84FsDylh6vZ/WYbjgZRtGu1TvmLQ/f1MBs/lDFiV9MDClMi83uvuTK6XkNPIe57zO6e1DBlOjVxE+ntMuD5SPa5dg7nSiqAMJJEWMc5WSaKhJOhzXnL6zijPzukHxUEiOWfE4ZyqDUQxf74Omp5Q69fDFsoDyqtZovLoimFH/qAym/MdyFvixnJKurv7Dyv28Nm5EARwvGFHU96OPbGdiNH/Gzr3MoQjvwUejS0rQgKFeNu06Wxf/932PsSxv5NXqsF/oaBKyh3z6xjnEmb9:1Z/3OmXtReHxHXfCxEyIukHmngW8SB1Lm93aACcvQFa3zekbFZD73Qt/Qbo8OHh0faPzRrtq/t+DR6RgWPbOiESrdUnZfubMmZXicfdhw9OtyiCLDdXBH8MLmWR+J/eP7AJz6evm7qMnW5+XXnbv+Uys2l/baf9uabQxoiEMUYh3ttKOcYArJ9BwJgSgeieAVNKK/B1qQKqhxBQ0QS8fp0jttW7GBk3GoCtCXy5byUR2YMp65VX4kVvZAweXw+HxDxeZ38I4XA6HfLGGAaYhZcCTi80K5deDL9gGitHePyTrrHHBlutfDNIEjVvDw+5YMRY2fdreylUdUmAB5dBC6Cqa0/7fiiOMCrddVYm2wTCJy17Pp/PgbOOScc43vSf8fl4fDm+aAZjPjfNwvw0C7NQZt24AkO6MuWoMUn53+4YzEtMZ6Ry45TUb7Z2ftSrv1YJooA3GAEpMEK2YQoFxisMcqcwicMV5oByHGFS+PyjYOZnZqRpmv79FYZ8W2BcvLzdQWIZEl33ZW4A+ktKNG7FXHqDQcArCwMxe7AD1TGEAoNkMETdCOP5oxY4X2GeMRytAhPC8UfAfCkwU5np0Lxrmq3BCLHq2KJ52itOiEMMtnfAumZo+ksAtT1qXBlINAhT4ytM7UGUBG1VCehKTMnOE5nLOXg8n5MXgxHeXE9SwlAGxmA+Sz79OBiTmR0as/nZYPQnBJKYjpRjha19Ig4BjHPjYN2X3IVI1OehwCBwP06M7VqFYcjKUQ0vMRvyuqYLDPpwVp1gMIwf78NsZLME5tN3Yb7MzYw1yjTNSmEq4mgYTl2ip2xIHLW92JBwmRt3AzMCrBv9D1Bh9h6cQXmbpJVcYBKAecgAE0g3T0+ekrokz935LD6pS2IZYT4jvr7YL+0NJsiCk7QUxprCTKbm12YddxX7SseGCZ0TJpub2gNLQO9jxALjAZ2LYYB5bPRjy3wegVy/Z5BygBpxSNwikARkgBCCwtgHWYXI55CehJQkMSd9iWFvMJkx5eKiBZT0nIIozPPMwCyFsQxmVqZ0lSFPrC67PbF4Iqxaq2IA8BKvMAhgx+tygBCumYbzQOB1p63Y/iXWbW0b7HT1oUteH7LpdEPEOi3iNTSXznuD6ZhZrjCHjKg2h5eXYwjHZTCf5mH++TKRmaPZ5rzfWY7w9vqHrgqFKF6qquLj+ntlVz7faiu3aouu67ScuuFhbfJTKefN19clp3KUjqXD8+uLdsz2s3oZzKfZo2QwJjM7NKONvviWhGQ3ZDDtTSPP6oFX92Da+3WTnobu3T4+ugwvva9hkctymOnMlO1E5grDVO3G3pfat/XvGnDLYRa7lL5yMZgs6XhaCqN9/yhNZ2bYvZHZlosDW0ck+wnMxKffbt1qO6n9RrMsU5jjW5hXXRbDWAtgRplZGoWxhDW5DzPWtcVhIcx2t9BlhPm/uXvJWRsIoijMntiFBww98wZ4+I87CgRQlK1HFORiW6dwyamWchBCTD91M7K4YxerAoxodJXsPaP5BX/z68Nsd0GZ9tEUplt2UQzDLoKxFmDg0NiHmKYwyoNRizCtmsJ0votCl/6U.M0LyDREIy1CkYYCNN9ZFEjl1UwVgRGMko0FsNYmTDMIheGkcv5xC4EYwVgAjQGQ3WgswKmU76LGrnUgwEaNaK5CcbvH2CAxXe5oEtFGMnAsWEY0mlWw4AKughGLgCzWQ9zv6PMjdNj6rFcmB3VxFg0rEguYRh15H78/Dbti9K0ze/Du6tqrvO6Z03LbakWUKxhoB+Xp8vZOLxyN+N5XpSDUbeMcERQlXdJGiTTT3psC18mHSb5Ltj1b8sU9hKKYha5JMIogjEa4xnHMGrBBvqOg4H6unhaVK6LEkycJrQ1ykAjoiHUHpqzlFQYJRj/PikfRg0psQq7QJuU?ZPjWwC473pKKrUd1EGgzJME142zjRhlzow6tRzxmJ?GPFZp2TWeq7CObowPCxKbMWYVT945LmokfRPBiwKdRnGGiPBkMERS71YUBGiaZ3YFQCzP/iIhimOY5thFM+FoahWKsAS20XwVgIIxnrdcGKX/5VclhKRRfBMA1esEuvCgNB?OhBatknJc/0DAueEe04l8)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AIw?ABpCAM?ADflzs9)VFBMVEX::2+fju9PHy9/X0+Pbx9vTo8Ozj7ejZ5uDP4tmwz8Dd6uTL3dTV49x8sJe208Wuzr/P39drpoq61chopIecw7CSvahgn4F1rJFjoYOAsppyqo9IgRfD?ACtElEQVR4Xu3XyVKEMBSF4cxh7Hn2/d9TrtE+VUhTaJrcLPIvLGXjJyegiq/0ZfPIoIBRt2sOBYzLCePzwZiA+bgwtvnBaNES5iylYUlrLbffGGnlF+YiteJKNyPMWUjNkh0wu18YprTNCCM1PwZpZfLBmJwwumAKpmAKpmCSVzAFUzAF47oQvlgCcEMrYtxfMBboVTBtTpguG4wfDCoXjCXQNMb3g6/3Iwo1Bvlq3/Wti8aIfdfVwFCghtw8BnP3Jhbj.EMLMjNYhSAdSyGFO43Zk+KvuoJs39iTLhQDT0xNSm86wM7DiPCww0MoA6fvD7A6ueOtKSPxVSkGGPa502vCTuD8T9YQ8xYDDHUGENr+Oc362cw9LNYQRHGRmJoJz/GYBwoxxgcLmepeEwYov4/pkPxmDCEeRNGxGIsTTJ/ZtJhaPbqH08T2AqAaAzt5Be+ZwxhzOjR7u3bMEG16A2MWSqBlx6qojHYff53E2YhJy68GVMBA820RVjAoXkTBqz5v2eQaseXXRU2da7831QwBbNmUjapMPK4na1pds0lFcadrgtKhTlkhPH5YIxoCXM/ve5wSIXRAbNTbjLvvFKXK3VOgJEVYRqpJ7PWmPPTsjJG2m+MsFMpZRUsqTBbIScyRmhYEmJeBEsSTAvMjCUl5jhv4cfAwo+BhR8DSzKMUMBMWh4yIeblTE2wWJEQo19gtsGihGC+M7A4wYyBZaPA4JsJG/HfGVj4McfReeF66cGygYURc8RG3BicF34Mzgs/BueFGwOLEvwYbMSPgYUbsx2dF14MLPyYY4eNuDH3xwGW5BhkFDmw0SLMppls20S0o84nWJZhEgQLP+bmxTLMx/qWUy8WYjbX+7pdb5VYlFau7uq12g8NH71YilHGGLlKhpJieUZbtWbWavGH5MqJuEqfDRAN8iKPPjs)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AL4?AB2CAM?ABBEdl2)MFBMVEX::/9/f46Ojz8vLr6ur9/f35+Pjo5eUEBARpaWnFxcXToqLry8vjs7PKcnLV@AjnvbX?AKRklEQVR4XtSaYY/zNgyDDZCS0va2/f9/u9VWCKG+tElueK/1l9ZI4dBnitYDXPvfxrV98rgst88Vf70sy6f++eN2Wf4bfWIggQ/zzXK5LJf7xBn3Qf8c9bjcIq1vDHpzRHT9DhLWPmAM6yPYmj4xTuIDrMRluat0DNdYhDVEwAwR/v7JM6yvcdfMgE7is1LfI1prOokPkF9T3xioWykP3jKTsCzFIc6gaYZgeRD+5tY3hHIfwFAs9bkVEv4+iXqTfAMjYDmJiMCqHiRSvmekwt+rcsF65ZoXHyHoa00wAPYdvMmlFXLHg7kZkPrGcF0LrTmAPgUA+03rL11hEW8y/JCKoCmEoGAqfRL6RuxX2uXLEAqb4zLCmw0PIag7uQYr3NF9hSyI37A+azV6hOmL6QLOD4KE6Y7QKTlV038cVRz5csKr59mQpmLkxxi1p9BDz6LGr6AKySHMgxiXgA+9RJ6IgWjqqhnpFdBrNWD8EPanUAWRqAL4mJKROvJgAv5wHXuw+YNXDEFovb3HQJ5HlbVyrQS9g0EJs/SW1Zr1hiArn4l5RkkbuFN/LMuPUKVcSRukxQDQTBtIXxGO2iV19SoKD9prcsNtyYsfctxRVMmo2SIti5AszaOrKz1qqXNok8/JDddef0mr+t1hVFHiT6SlfRX5iOgG0sM+RGeo8rE6yb+/NZdMP7E2zqCK5E2@T1SbAwIBgQ1nm+WaxBh96fQJqdxu1wxrI/Vaco4wg6git4/k5aRKO4w1jZCXxgsyQQgAtPlsNnzGqAyK9G1H1WQ75eoGVWMI1LppX+AnGVaKHM41chReyyQJ4t+keMQqtiDkWZUIRmEtSmvVMEZm/nuXfKvDylRzGo7UUU1X0lrG1XkNcNqdE59NjTTl630ewBUt8lwCM7HJvHiLJHWS1SBnJTqpo5PnlIsvUg/k08f5SuSJlQRJE6k9QpVGEGs6mzut7POvVsz7JkFVH4SWRdtUCGDgM+oMpPWblTRM8nXbvU7Bp9Yf8ZVH9GlQ9Hp5XLwgSr60URau1HFYM1sZkyqm4UjsJV+oYRQ+SWCuNTDdbswHewyOgGbT343qoi09ILVrAZUG2/TqqV4DXek/BGgUMEhjZvPyNAWat3ZXlSppKWS5vhhhBLgWfo5JX7Kbk8YxWwBQ0rP46gnvxdVZtIyyAgsbcY2raZLc7jV2geJXGiqPwaROeNkq6TlR1FlJi21Gc7gs74FCapSrSoaC6jwjAESmDvc7N9FWgdQZZu0NKU9QxUHFCjlZKNXLHQrajW16i6rmHBdpLUTVbZJS7CCV6iiLbAbRLGPLKo0jRPWlbLWkw+jyi1+AFXOkpZQpZCWOTBWtTXR68E89MYMGOTT0v3ker4HVc6SllBlJi1kYwuhN+RHAUgniamt7nWs9fw1qpwlLaHKTFqKrop7Dm9e88Nj3JxVf04QhPkgILMnqHKatJT6u0gLgTxSyU+p6oyKDIuQE7TeBqqcJC2l/kvS0oM5UjVJ9ZRTpE7rAdhAlZ+Q1nUHaWn/NZPm1Y3BNsn3CCY9aRRUOUlaQpV9pOVaXpk0gZBivAKgHMSyXkGVk6QlVDlEWsokvaNaILzkD7CWqX3X7stJPyCt22HSMkGBrpbJArYaGOr2t/LjLGnJ+udIq5jFp/rjiE3qGt3qec+TllDlHGlZPpGTSv2hno5Ub8fHGdISqpwmLTmpvlE69cUjXGGzOQ6Slqx/irT++vubIXX1GFYr7fmvgAO@VRJh33Fw/j6+tJnmYwquH2j/p+wWT5KP6Va2hzHSevaH/PfYs1gSY4cBKIlaWwdgMf:+3GTIdxd1kUJffObl7xgaCL50w0xn3pcUBvr1Lk2Q/9iG0IN5vMMFedtIIrjt8V82jQTjLsa5+DSL/cWfjp4Ms91UnrKaZAuymYHxM/FwT9fTD5Ge4s1i5uEBuKpFWp4+2eFPmYhp0Lzoyk9RlV4vw3nszZd0mR2+3bzynouQCRtCKqhEuKS8Y3SbF2T4Yew9E/NzeS1lNUeXnzPb5NMc5SzjwGLH6UhzNaRpWPSD+7Ssh3ktPbPUE7Fptr6MPDZ1Hl+CsNFprHWbfB02G5Kc6MpFVElTd3Etpx0twBzzEW4IG44xVR5c2d7PAGeAwbU1;0JJHlX3JkhFn2W3wCDan86ckTGgeVfblzAX53gGPfpwy+0fYmyqq1Kp3UhbtswGelz/2jRQalN+LKvtmwP8ET9sAjz8fAxdJK4sqai6vTFQ1iS0SEVOdowYPxx3wqLOUHIcuN/c4kspnVFEH7Ah1c9Zy0dkeMwXQdlK0Na8sg16YfVsUfBxHUplzCvjTzqkALqYa3amqmrkDgLfjmIBHPdSdh46QoQtrs0Ezw36klaGA/f5ou4Bbxoqp5lDZsI5fgkfQDRwYmlcEpP9eegW3ypMvZprTHxaAHHs4SCoKoE/zUpDa1FYwN/Qyq8CeD8kqTZD+NC8FvWFqKxsm6FU/imz5EM9TQ3+e16y6j2EMvOVy+jV4bNuHRCWfV3PsjissbRgk/dTgcXqCqahk81L8liuswDPxzBfFLu77ELieVwNtpaTeXMVO/eSZoM4GTo9KPq/ElyfQc2YBnryf/g54clA7ettWQcmmPKs4ZzHSbDDxMjUYuoSJ2kOqOoMaZf5zxuWRpDtnvQceZ67mJLzI3c3QCjw9BU/9nzQpeLgEz1gQroPpl0w@tYfM9XWsh8L2csqhuXZwJllaoAVVyeu4/Ukq2qPmYK31AfbXlYx9Ao84xI8XcWRxFoBiKieQK2qC3Q6+tDcO5I4M98UiMpCKgDYmqsmQQnRcc+c7J83oaXZQJGonKXi0djFr6NmDmBj/0iC3mRxnlXy1ACi7d7PrAJoZU5C++DZzyrY2PhKu8DcPJLsbe5Iskpe2VoywytzEop+Sgla3Ezzyh7iHK0YsX/edHqJgxoUvvWZGpbV9sFT46AGheL9DiRy8Nhfbe7E65tpXgk5df9QmJPihrsLHkHvgqI5WK/aLxhRg8f8JLTAwU1QNAHE9Eb7s2w/+qnN/tzLKvmxZQoA7mbar9pXrMB+eiTxeVZLwTPxonJSU4v5SE/IkxwuMf1UBp4wAYneAc/LhzSmqjjJgSlDigCA7J83KxzUoPhljOe48upBF8jSSuqL8gXfyCqpZXiWfAkko8vAKwcQ/dQbV2SVvBJS7GGM3SH99ju0wiA5l1mlrzduP6tA6su7fqnnniFvH5J+iutsnlXySuLea8cWjV1O17D33lUUyyvbr38KlRVT5L96V0m2Ztcu51iHxBwvtJ9Vdo2t4a3KNoam/eyDB1pe2Y6kzNOLzzZ45hZ4OuSVzc1V0Pp4Bu1731WishdJDewFcvKvvqvsZ5WdSKrOKzIGaAqe739XkVP7LqYZ+bs5+IkYujKk/QXHrJQ/6LLQvKqE1AHAJU75X1JVEwdcF5sGYvog+/z1D9Hrfsg3l4WKSmioCYnclqwexlkuOo7/TW2qqsQpH0RMLxpqqiIAuNj5Cv0PJGHeo8tm4Og)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AMs?ADhCAM?ABRErFR)MFBMVEX::8+fr:P304+325/D69Pj26vH57/SjD2a7VY7Ogqz74OzYpsDjzNbivM/y2OTrIiD8?ADWUlEQVR4XuzczWrDMBBFYS3v/Eh+/7ctpQ3BGQo4RIpTn1ndnflWPpDgJskiwiT9ORURXucWkb+zR4zfmRHbbbaHk2S9d5O0n9pPr3P0nnVm77fnemuSfA/wOveWvFtGtYxnLFYAhy35bYl5Vy193rVmNk0iPVrMpkmk1iIWWnq/oAWL+UKL+VSLtNAivd+CJXOhxf0/vStPa8Fi0ySmYqFh3mTBQsPQMFjSL9swNAwNQ8PQMFjcF1qchsHy0nMa5tnDQsPMtRgNs8CCxfNjG4aGweK20OJGw2ChYWiYM1mwJA1Dw9AwNMwVLFjMFlrMaBgsNAwNcxYLDWM0zCELFhpm2xY2zBg0zAUtORZaMmkYLK88u27D0DBYaBgaBsugYWgYGoaGuYIFi69umNFXvl9oGBrmFUfDYKFhaBgsNMzy9wsNcznLR3cyDYPFVlpMNAwWGubIf+BzasPQMFjO+3slDSNlROjnfD+tTNtPL1P3WS2Ssvd+e8Juls/DH/xofLXU+fwX/KulAuq02zz4Bf8vdukgBYIYhILo33QoG03uf9sRIX2CARLwAX9tgfqf1lprrbXWWluxKY1IQzl6cpaKhrvHo9MZm5KTfAERgKk4ZZ3fYgYYKIWBxQR8GMwvxUjj+BYPMIGSJpheyDVMSQN4FYDrbNOjWty/w2Ukge88QjIwHa9aNoNFIiC+F1vVwmUtLzhY7fO1xJUtTnpr7UtlStz3Y4vkUavyADYccJ3OSWgjrdpQ0aRgz20tBtSiLYz0Vsr9RoRu0VprrbXWWvu1W3crCEJBFIXb8/v+bxxKJGphDXQYbc/VRjjAd+XS+UxEcjfjxdw+BJBHM6YxwGLzhYj4MvPdVN0+BJAfzCEW+erCnhZ8dWHtLCJFCzDAYlG0WLSzqBUtaie3ZBYtme0spkWL6QUstNCSWbREtrOIFC1AC0v/hmHDRBYtwYbpY3EvWpwN08tCCy1Rbpj4u4ahhQ2T5YbJCzQMG8ZbWdgwtNBiUbQYG+YXRwtQtMAHWNKLDZNsmD4W4CINw4ahhZZoa2HDsGHa/V+83DDeqGHYMN0sbBhaaKEFYMOc3+J+yYZxNsxPLWoGEdh08/T9lGWuHwKP78dziEV1Aqjq+ynLXD8Eng+P5u0OPSdCoM89JxE)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AIw?AB4BAM?ADS7QcC)GFBMVEX::0ctuZsLL4pOe8y8z4oej4qunCz9FAYxXH)f0lEQVR42u3XwQ1AQBQG4YcGvAgFbCSudCCiAQcFuGhB+xJHm/+wsnGaKeC7j7mstldl@nvoi1m+lUUrDFRFTOziRYYGBgYGBgYGBgYGBiYj4yfoiNmhksUcr0mEdFT4bIkpjtFacxoogkGBgYGBgYGBgYGBgbmB6bdRZ7pNW8Oq3ex+r2t+Q)BJRU5Er@ggg==$/9j/2wCE?YEBQYFBAYGBQYHBwYIChAKCg@ChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSgBBwcHCggKEwoKEygaFhooKC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KP/BABEIAMkAyAMAIgABEQECEQH/xABq?E?gMBAQE)))?QIDBAUGBwgQ?EDAgMCBwkLCAkFAQ)ABAgMEEQUSIRMxBhQiMkFRYRUjcYGRobHB0QcWJCVSU2JykqOyM0JUVXOC4fA0NUNFZIOUosMIJ0Rj0oT/2gAMAw?AQAC?A/AP1S)))))))ACkvMUxuamRN5mciO0K7JvaDE9iqpdvNKS/mkZ1R2W3YTzyULtem4lEBOVAC5IAII)))?Iu?Bc?Eg?AC6daA03orUTTr1VLkKpCm5cGKDp06EMoRSTFZ2d3JuWjRddC4JKIyy3?Bc))g)))EOXQrmcWcmhWy9SAF03EGvXSLHCmVek5stU/5x32jXlqGxrZTBJO2NbKdnUqiIeamrpfnpPtKazq2o/SJftqab8UZuyr5jUdiTE6PQewjtqWPF8aqv0mf7anqcJlfNh0L5eU+y3XrsqoZ6WubUOVlrGWmrGzuyoljbABvG6))Q)AC)AQCASCCmdQDICrXEkg5uNybOlb9dPQp5fEa/ZQPfpyUO7wxk2WGR/tk/C48PNUnmMXrNlPl7EPN4rVbKfL2IejdhFbk2ndCj2dudsl3eHMY6igraOPay7OeG3KfDfkp1q1ejwKprNk/wC18D/8FH6jo8CJXcSrIv7GGoyR/Ruxrlt2XXzm8sEDnpHlsqpe/wDPhNvYwucjMtlVLmsxyOamWy31RUPV4J/VkP734lPEU8je/MbzI55Y2/VbI5E8yHtcBX4pg/e/EpTDP6Q5nUi+krh35dzepF9JvgA7x2w)?AC?AQAQAQSACLkXBIIBFwLmNUMhVBcBhYq0C5B5zh+vxND+3T8Lj5xXPl4pLsc20y/m7/F2n1PhRh8uJYa2KnttGSI/fboVPWeP97GKfov3jPaeOxqlnkrNpGxXJZOi6aHksYpZ31W0YxVSydF9xlbj3BnuG3CdrX8U2SRf0GozZU3a7MmLhDR0eH8T4PU1R09+qGOY1t97uXZzl8XjQ1/eziv6L94z2l28HcU/RvvG+0zcer3JpBZeuyl+N13RDZeuympA/ZRNZdd3jVete0+gcGHfEdN+9+JTxvcHEv0f7xvtPaYHA+iwuCnltnYi+dVX1mzgsM7J3OlaqJbp8KGxhEMzZnOkaqadPhOmCuZLE5u09Nc9ESCMydYFwS)?QoIUgC4AKqpIBAuVu.RcEXBJFkBBFwCCblSFUhTicLZpOIQQRPlj4zMkTnxSKxzeS52ipqnNt4zy1RRzcWbB3QxTJmzZuPTZvG5HXVOy56/H1dsqXK1OVNZ2l7Jldr6DkyRHIr9pn5LlTxnIr8+dMqqnjPOVNHUTRxM7pYt3pMvIxCZqr9ZUddV7VLSQVEtQybuhifJtza2VrVt1tR1l9Z5HhZw9qKfFe5nB2hZVVGfZ7R6K7M/dZrUtfw38RoYV7oWI0uK8R4T4ayDlI17o2uY6O/SrVVbp4LeMwMo6v5S+C5rNpKq2bMvl1PoTY5+NcY49iGe/N43Jk+zmt5j1XBaSq7i0/HpttPd7dpe6uRHuRt+2yJftOFkTKjmqmW10VOk7XBaJsODxNY9H98l3dsjlt4r2N7DXvzrmuuhtUDnZlzLfQ7+bkl22sphbzTK3cdVd51FJcACpBkABlLgg?EBSFKqALkXK3KqRcsQqkKpW+pUZi5NylyxUsigAhSACjrllKPMblKqc/F9rs6fJf8ry/Bld67HMqk7xLkvmyL5bHTxhrnMpsrk5MvK13plcc97jQqV5SHNql5aHxP3N4IvfzSbZE5smT62VfVc2/depGS8LoMiJ/RGZvDnf6j0eNcCpe6S1uC1DYX58+Ryq3I7raqCi4G1lZiHG8dq2yapnyuVzn26L6WQ20njzbXN0bjNto1dtL9B6Lg1G73t4ZtL5uLs/ClvMel4OMjbhUeyVcueTVevaOv57mkrWtajWomW1kTqOjweydy49k1WtzydPTndfz3MFGt5Hfz0mvS/lHfz0nUS+UnMjV5zvKLckhUXNmtfSx1LnSQsnMVWuXVN6qCrW96W6gsikmyACxYgAgEKtgUuQ6TsMD5/o+cixidK1u9TNcg81WcKGw1UkLKVX5HK3NtOlPEIuE2f8A8T7z+Bm4nNvynFXhFh+dWbTVNNy+w9IR0nIixpPmP9/8DZZiGv5P/d/Awugem9DdjxKmkTku8ynQLGtDUbRyNy+c2DC5FTRTfjka9LtUkAFTKQpR5cpJbM3wKUduKqc/E4XTxR5EXNE/Pl05XJVLb+05UjarZq7ikme/Mzsv6bHae92Vzr9Niki8pmn82NSWJHbzUmia/VTgubWbNruJSZr8zOy/h51jLs63KzJQyv0+Wzk9i8o7FjZg5vjKR0rFU120zFU4E0Fe13e6CWTT5bE9LjtYPTyQYfEyaNscmrnNZ0KqqvrN5pc3oaZkZtRU7Y9UIy6Ftn9JSxKG2iGyiFHRJ8p1uoFwWJBAIUAKVJUoqixRxjkNSU23mrKTY0Zk0PB4gz4fU/tHeky4bSy1cjmwq3kp+ctjJiLPhc/13eknA1VuLQ6rrmv28lTuK5dldOhPUfLGQN46jHporreVVOnFhlV/6/tL7C7XSQSZJky+s2aqGXj8E23SOJicrXnanOxiuilqI2QvR2RFv1ami3NIqJv9R6WZsVGxzku1UVES6oubwdJ3aCTvrf56DpnmcJqPhMevX6Dv8vr85oVDMrrHpcKqklhunWbAuarJF2iaqZ8xr2Oo2VHIWMcq8pvJXp16i1yr+gjLfQtmuYFa3MvId9lbFLudI3kOtrdcqp0GxlXTUhqd8KLCnWQrUUxIxepTYhYuXd0mTKZWlmM1KtjsGliv5wsZ0Qy3LEoVaWLEooABJJBVyhzjBNJuLI25ZGl8xXMYdqUc8vkCsMj3aGB7zHJKakk6GRsZTYZjh4inwmb66+krgyRNrtrNK2PZovOVEvfT1la13fpPrKc6ZTqtZmYfLsQ+CVO1y3yqq28anU4TugmSKWGoje/m5WuTdqtziRPMbytzNHFkZlvc8zW1q1NQs+XKq9X8Tv4FN8Yw69foU9ftUbE3VM3gPD8F02mN07dfzr/ZU90tM3rccbEWokqeA99wUfJLRucnylTzIYYnd9NnMYVibHd913dJh4z9Hzmha56Rr9klnm3mDug0uM/R85sxu5KeAlEspkjmRy6Gdr003hn5VA1qdRlYxt9xOhuMchcv0EWLEIhkQqouWJshYWKs6SwBJNr?Ak1ZXHn+EeP4dg3F+6VTsNtmychzs1rdSL1nbnPknu4c7BP8/8A4zq4ZTNqahsTty39B2sHo2VdUyF+5b7vAqnrYeGvB/8AWX3En/ybbeFOByJ/WX3D/YfGsD4P4xilLxnD6J00OZW89vR4VN9uF4nTYrFhs1K9lbIiZIsycpNdy3t0eY7UmE0qOVrZNU7UPQzYDQo5Wtk1Tel00t4j6q/G8Kk5ld90/wBhjbV01Sr+LVG0ytzcxU08Z412C4tRQOmq6R0cbE5Ts7fUp0ODj/hM/wCxd6UNB9LGxqujdfyHLloIGMV8Tr27UX0Hduxy8prfIbMMMHzMX2ENCNVudClNZ+44VRRwv5zEXxJ7DYp6OldVW4rB4FjTq8BuLh9DsXO4pTcq39k3TzGGOOTaK5l/KbcUU1ty+U1HuX5XnNF1BTfNt+y3/wCS2GUsEO0dDDFG6yJyWIhhrsapqSqfTyMmzstzUTpS/X2nQpI3MzZkPH8I0+O6j938KFYY2zSKj9dDh4/VPw2na+lREu625Lbl6NDqyY9Sva7vc+75Ke0wwYnDdeRJu6k9prYbg0lZTJMyVjdV8KGyuDvhic/axuRqal3xwN5N9Tk082KTo2ZzUta97Ju8pMlfG63If5E9p14OY3wHn9loejibohrSta2x2KB0kmbP2GdhmaY2GYxHWYhZCSELAzh?.A.?AaMx8h93f+4v8/8A4z7K9h8e/wCoD+4f/wBH/GdzAl+Gxp4fQp6Tg06+IxJ4fwqZPcIqp5u6lK+RdhCkb2M+SrlddfMe44ZYPJimGxV+ESfGdHeWmkZbl6at8fpPJe4LhUkOG12J7RmyqXNiydPIve/2jqcFcTl4P8LKvgvitSyTjDnVVG/5OdVcsevlTtv1mxiCKtdLJAurLLbrS3K/j2G1iiK7Ep5qZUzR2W3WlrP8nT1oq9Rl90iqmpsJo+Wvfn5ZPpaX1PP8EF2tVP8AsHelDr+7M7ZYZh37dfwqcH3NJNvitSz/?rvxNKwM+L1k8PpQrTx/FSy26/Sh6uOLXcdGmj3GRlP2G3FCcx0lzgvkuZIGm7GY42aGww1Xrc1nKWaeL4Qp8d1H7v4UPbHDxJPh8vi9CGWkfkeq9h5zhFT8Yp2tvblJ6FK8E2/B5/rJ6Cjka6BeIRysh12mZdNydptUtXJFHkszyGxxp72q3K3yB986utvMNOyNKaOHNq1F6NdddFvp29Zxcuh6BrDWOkYpdbHQw+LJm16ijWl0JJMJ0kaEJAJL))AFT5T7uuE4hiXcTubQVVXs9vn4vC6TL+T6k0v6j6uDboqt1HO2dqXVPZY3sOrnUFQ2oal1bfRe1LdB+Ufetwh/UWK/6OT2Fvevwh/UWK/6OT2H6tB3/AH1TfNJ5T0/v2n+Zb5XH5Zh4N8IP1Fiv+kk9h9B9yTCsTpceq+6GHVlLFxR3LngczlZ2dKpv3n2UpIalXj8lVE6LZpr2qaVbwnlrIXQuiRMyWvdTQbCZmRFy5xLnmrkNYZGkFiikKDVmoIppnSZn+VPYbZIRyt1QwyxMlSz0uhpNw6L5T/KnsMnEo/lPNkE53dZRKWFNzUNfijPpeU2ACFVekyNjazmpYWABBc))):2Q==%iVBORw0KG;)NSUhEUg?AL4?ABBCAM?ABYbu5j)MFBMVEX:/+1wv+jqv9siv/p6:W3f8zZv9gb:19v9NK/8zAP999:S:8z:8zzP+z6P/0gInF?ABg0lEQVR4XtXXy1ICURAD0H7c96D+/9/KQqkhlEKD0iTrWZzKYtJXbou2s+jvn1Q55f2mfAMOb6Ec5D6+c/ObcvOdm98qN9+5+a1w842b3wo33/6Dv2H22g3zCL+PKF/uSKDsGL8pN9+5+U25+c7Nb5Wb74R8h+ki41eYLja+Qf1k/AL1k/HF4XIg4ytMFxl/X7/z8aF+Ov6A6bqR:FTnswXa2B96LmyPZtfoH4yvsDlwMaHy4GLj/Xz8RXqJ+PD5UDGh+ni448O08XEh+lSrtUVnC6qm+ey/krGx+li4+N0sfHh7Cfj43Sx8bF+Mj5OFxkf67c8frF+jJUovzRIBr/4+kovMb5YPr/OdcrUGL9k8FG/Tw3xxbP55/o1R4hfk/m6IBbii+fyJ/JnjK+5/HWRGuJLfzG+xvh6lX89f8m3GH90ar7Ya/FrkF8y+XNhRpAvlsi3+H8fUxP5A+svYb54Hl8Uy4/zNZEvCvo4XzyRLzrhXg7zNZMvw/o6ptsQpvDnE+wJyVGQ5SG7)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AKo?ABdCAM)CPw0R)MFBMVEX::h:Tn:by:vc:Ls:j27vzu3vrcvPT5:3lzPfixvbQnfH59P38+f7m7/cPuDyh?ACwUlEQVR4Xu3ZC7KbMAxAUST5+4Hsf7clbRkRFIfi2I+44S5AORhsmMmQiRCUUqD98.TXUrJBTOcnwe1hBLq0lKcCgHeE+k5mvPb5RiNtSHEGOasGV/+BqlVsJlk07qChSWNsIR/upt/gycbXBK5YMe8lAPwUsqNB52o5h6l+m9kBXNnUfxGCjhwk7jiQ1BQakNlqRW6XSpuqUAMiGKEPbID8tKbS8epQ;oFrVkWbV6IQ0pHaeSkAKIPVXwtAIPlVKXSqhaUnljhSSzjaV5Kkop0gJwpVQpZSq59EFUlDNZGlMxVU71CyCWUemV9JZKqXpLxRXVZmaUbykiV0z1ciwfVibJBGzv6llKczZDc3N7KwJiLDFALkHYpz6T0nKnnjGjHVffLsHlq.XlbMFxyrJ+0RyIBcmYTLWzVQZyk3FxeObCpgqJ7qSZ59DsQLc5I7e/uGVdCqTcpqpy1wuHDxTaSsl8UCJiQfyyIe/yMRlSceCzxTU8ro5NxTkichnAJOx1v7rnQJ5+zknFvXMNlJ8AIhD+tTkk5rfVfFUqZcvac581P0nSc0fAOZsKkv7og6vqOP5VJbqd6ioRDzaHfuO5C6qCOpS19Ja1IvK43QfVKxJvag8TfdBxU+j6jl8jKlOtqG6XKb+KwDu5a47lWd/kIo1qF6ETL3dM+vciVSZVpA/X+KHUdV3Uy/q2vpfU+HnqNgXVVWmQksqWw9QtQh5UowxPOY2ohgymSLqiV9W+1T/4VRVjcrWjqjYkgqNqBcV36SytScq1qZeVOiBKl99F1X3QcUq1LX1u6nQJXV4k8rWFtSLCg2oa2kVqmpD1d9MZWt9KnREZWldKvRAVW2o0BsV+6LqelTVg;Nqf4bqP5JuEhvt/3/razZNjaiKhnv/1SUy1FVF9SLChd17supF1W1OAEuqmpDhS+nqmLqLwrW+B/boDYK)AElFTkSuQmCC$/9j/2wBD?cHBw@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.n/wQARCABSAJgDACI?RE?hEA/8QAUw?AQUBAQE)))?AECAwUGBAcIE?CAgECAgUKBAUF))AgEDEQQSBRMGISIxQjIzQVFSYWJxcpIUI7LSc4GCorORocHh4v/a?wD?AB?I?D8A+k?QUUjstSpZex0rWPEzYj/AHKW3pDpYdaqc2s04z5CeVj09r+wy/SHiv4m3lVN+VXuhZjxz4n/AGFJouu+v61/UXum4Us1cy7dmV3bO77i/wBNwhZq5t27Mru2d33HsQDWnrCCiKDA8BBRB)?B?UB?Dl1utq0lTW2/0rHe8+qDzvW8b1upZtrvXX7CM0R/P2jd8T4emtqhJna6ddbejr8qJIZp0XDtI6stcLsaGllWXunb/cWektorWJ5TXXs23b7MfCWuiuopWJ5TXXs+3b7MfCZfo9xS+NUlL2O9dk7drM07Z8M/cehHnvRrTLbq2tloiKu1C7utpnqXC/CeghxWE5+EjHYXft9YcXhPxGEjE7F37fWKAgFYVQkmT6S62+pEorjalsZZ473+A1cnNqNLVqOXzU38t9y+puz3SdOmtSu1Xdd0L4f0nVpbUrtWx13Qva2+/wnkt2mtqhHtSViyNyTPijdjI7Refr+tf1Gp6XRHMoxGIirq+5jLaLz9f1r+o1VF03afmTGNyt2VNbRfN+m5sxjcrdlT112xIisMvkhRzJQuVMhC5U7sjjnVyaJGTBFMDgEyGRo3AomRstAxnHRA6IJJYZLELORS46EHwh07zIcS4PqdXfbbDoq96QzNlsL6Mbi312vTTV7265mcKvtFLqekaTW0Uo+9oxltvZz8ix0lWoWd9K9/Z3N3FloqdQs8yle/sbm7ig4VY9Wtq2TMTzFiflLYaD1Xcee8B0DWXxqXjCVzlc+J/D9pvUkdxZla2IjvVNrN7x/GGVrViOuVTaze8nAQCoKUUbgeJgMhkw3S7zlH8Nv8jGW0Xn6/rX9Rqel3naP4bf5GMhVZNbq8d6ysx/I1vD4zo64j0qxseHRnRVxHpVv1HsN6nBnrKjg/FtRr9Q8WzEKtbTCKuIzuX+oubFxJn2paluW+3MLu7PvM81L0NyrNuYVW7PvJEc6Fcr4kkVyNkI2TJ37ys4nxRNFVme1Y3m0/5+k6IcoOI8KnU3pbzJlZlYeJ8ER6iTT1VzZHNnCR2vq+Ek01NU2Rzpwkdpvi+Ey2r4lq9S0u7vt9Cx1IvyUuuj2vtl2odpZZhpWJ8Mx6jt4r+G0+japa0WX2rXG1c9TZ37vKKzo9p53vdMYWI2x85Llnrs0tk8pa4jsp+4uWeqzSWTFS1xDbU/ca+XmRmZCIHwkyU3VBTdUFXr+HRq4jLyjLGI9MHFpuj1STE2PNnwwuINNsJIQkjV2qmxbGiCWNbaqbFsaI+EhrrhIhVWFVeqIjuU6kgFQm2nGzZOF3yKAoERAOKfjept0+jayp5Rt6rujvxO4uDm1ekr1VcVW52b1acdW7HoJKWVbK2eMpDKzL7iShlWytnjKQysy9/UeSO1+pfLS9jt6Z3TLFzpOjWruxLryln02dU/Z5R6DptFp9NGKakr+KFy/wB89o6S1u4w2NtNa1x7Td/2lvdxp8baK1rjws3XP2lJw7g1WhmXV3ssZNsz3RifUp2WKdswRMpWzc7tLvO6Z8RWTe7vL2NumfEVzKN64Ot0IGQlhokmhokj3SQ33rUjWPOFWM/9E8qZDj2rmbIoWezX5X1/+Tq01POshfR5TfI69NRzrISO7ym+RBEXcT1OfDH+iJBoq9XpaJr01U7myq4j1y2MyxQ6TitWlohKa99rdbu3dn1bY8KkPDtPffq67YreVixWaYVsLG7JY3U7obf+VTUv5S7sbp9pizup3Q2/8qmpfyl3Y3T7THoCITqg5UJdpnWYzTOMhB+0dgXAzJFLDRwCjRuRAFAQQ))QbMDxBRckMqRsh04E2joYfDHHKGTu6P3anU22NMV1tY/X3y0bvQsG32jdp006p6ZmUnEyu3cdVGrspmZScTK7dxQ6XgOkpxlOa3x932F4lcLEQqwqx3RC4gkhR2CO297Jy7M31ENuossnLszfUIOAUgIMiCgAgg)))))gCgAo0BwCgIAo)CC)))H/9k=$/9j/2wCE?YEBQYFBAYGBQYHBwYIChAKCg@ChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSgBBwcHCggKEwoKEygaFhooKC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KC;KP/BABEIAEoA0gMAIgABEQECEQH/xABd?ACAwEBAQE)))?QIDBAUHBggQ?AEBAMEBgYHBgcB)?ABAgMEBRESEyFRBiIxQQcUMmFxgRUjUlORsSQzNUKh0eEWF2KSwcIlJzaChLKz8f/a?wD?AB?I?D8A/U4AqgqAIMAiZhX?Bw8hVcB5W6fiMinju5BkkwjMa7gXDHjn3Axz7hKwFRsuIFxDH1g9CB1g9CBhqANlwLshj6wrQgsdVOBAw1AqNVwLhjx1aEDHPuE8MFRsuBcMeOfcDHPuBYYBtuBcMPWD7gFEK0IGGYiY23C6uQ5xOq0IbU3WlkXAI004hHUWVF2gz59wuLgQgYaaiYAgCImGFzAEfE?wBADAIVBUFAUCAEowqgUQQYBTEHun4jnuq3zHQebNZHmXEc99pWKrMhY2ImI3AuEcM9SBhnqQuoEC8O4V2HqQsQg68SEjDFiUnoHh5dovCovJG4WfIQU0WuQgCgzrSrQxXcNREVFJ5U5jIaD1IWcQB3AuELT1IFp6kGAO7MNKsxBBevTw4kOglKa9lPwCUEJwZFvDZblxEIcizyIaaZDKs8xKgz2nxqNJcCFbhFXkLE8CETMBEGAMAiGEEfESETSdQwBVAC09Q?E?ABiK+QiJL5DkbQTtqTNM3tLeefM0ttp1KnPzISIhWfEdOmZjDEuNpibL03q4JrmY4+FtLNu241K4f+Decp4:Av2OgLVdYdiX3/fKXveX61FiSIjzMQUnUx2bBC0cT0VO5b9mxyYtn3MR/Q/1IWS2fG/MCl8whFQsZT2rkiYrNB8jHSEkiS0hJSCojUxqQorSDWW6KUpMSqqnEQFhKOgidqK60pQhRloLbQYeYkRiJmZiqhaEChaELsPxBh+ILggmUIuTulxGy1PskKmUdnxGm0QUGmoSaaENOQz2i7QQMWpMwzpoQkICYiJhg?IT))AgCIBKhAoQYBXzIecdM7htwkt8Xf7R6VaPNemts1wUtt1d/tFzHbIRMuY83ke2k0lDhdWjHMP3ajuT8DHosk6QoiaWw6Jcl2OX2LF0JR+B/mPC30KxT8R910T/AOq5fn98/wDqY3OtpoaqCPEeq+i59M/tKOKDZ9zDF8z/AFMc5cqh5TtdK2YUl76DUpS1do6nmPQrSHyE5NCtvZSlJlutHdnmWZ8RivBaY7i21eyfwAhs/ZP4DpWkC0QvEcMeUyZ2abVzKN/xtctwXPVwzfa+Zf1H0swg46VbIzPrMc7FRCUqWl7NNpULLj4/EZNo5RslMFvxPpGH;3O5xp9PaLVJ8T8Mxi2YiZjNejWb9aNx9SErQ0pXaVRJHTvoLtNMhId/YRbsXspAPvKW44sl7yjP21FxHF6OYqIi5FNXX3nXFoWdqlKPLd5GNWwG0Eqg9jYZuLjmGXofEvbWsru2oyoXHhoMvRW0v8AZSaurSdji12+SAKyJXiCg+c2CnM2XP4JcwjH3oKJechk4jqlbxJTr3rSNHSNNpp6di/RkY8xDQLbeJhuKTvKPu5734DLKodbfR4uZMJ9fATTHT/KgvmL4tKo7Yedzl1B3x8clSdbEqyL8TLyFuV9fIFB29tZhGwfR3KIuFiXmolzBucQs7lVaMzrz4jX0dTOM6jN4ecxC34iCViXuLNW5byry5+YwbeJ/wAspD/x/wDxUOfto89JJgtcO2akTaXIZ/3bpGf8pfiKyK5NveYKDHsrOJ0/tjK+uR0T1WMudwsVVtty00pXVA+x6RY2N65JZXLIl6Gfi3t5bSzSdtSLly5+Q4z8B6O2/wBlYX3MEhHnVyv4iraiaxX7z2nYKXvzH0e0XqWa1zI88iOlDXpyDPeUWXIMdzo+i45ucTuUTOLeinYZZYa3VmrdIzKuZ890xzZsU1m3SRGSqEnMXAMJaS56tavYSdLSUWoySKbRf70ExMbLIiW9fbw8N2vslQyqRVqaQpvKoqa9K8czBTF6XOYKVYzVeBNoyyMvmFr4AHTlsVN5DtrDSOYTJyYwsW1211uTW7PiZkdU68BOVT53ZuezeWz6LddZQ2cRDOvLNSlJIq2kZ8zLlqRjBsHAqhdv5mxOX3YuYw6TwH3VGdyeFc65mnvyzF/TVAsuwctibPX4pt3fw0rT4/ML75I7g+Q7PRyuYzCGipvMoh/6S4eAypw7EprmZFw45F4D7IVQkO1.rUPDoJDTSSQnyFozLVcdRI?AEQ)YADFNpXCTaFOHjmcRH4p7yMbQAI9ADxzazoxfavflJnEte7++X5j5/Ylv0JtLCxEalbbbKjv3T0PkP0GONMYKFdnUIt2GYWsyPeU2Rnl3jSmIPsqEaDknGTvaH7PbOWS/wB+4XrFeBfl8R15Js/BSn1jSVOxSu0+4e93+A7AQp+QY?AIAHBid@DEvYr0uavr7SklXwI6DtQsOz.6GIZpDTKC3UJIWADuM+YBwYjY+QRERjuyxrEr901JI/IjoOw1Cw7MIUKyyhuHttw0ZFTyFwAXGfEwDnQMkl0DAOwUNCp6q6o1LbUZrJRmRFzM9A4iTS+IlpS9yFR1Ot2EiqM615U5jo?Ac6NkkvjZcxAxUPfCMW4aL1FbaVCzI6nkLYiWwUTgdYhmncD6u9N1nDXwIbAgZgGGJlEDEzNiYPM/TGU2tuXK3ePKtOYlByiBhI+IjYdj6VEfWOXqO7OvM6F5DYJAzAMEdKIGOjIaKimL4iGP1S71JtzryPPPUCJRAomy5ngfTlptU7erQi4VpwIuQ3gAGOeuTQHpZMzwPpyS+tvUWVKcK0PLuDm8ogZu023MWMbDVcnfUn5GQ3g)AC)?P/9k=!