ManualResetEvent使用
1.定义
MSDN定义:
通知一个或多个正在等待的线程已发生事件。此类不能被继承。
详细说明:
ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。当一个线程开始一个活动(此活动必须完成后,其他线程才能开始)时,它调用 Reset 以将 ManualResetEvent 置于非终止状态,此线程可被视为控制 ManualResetEvent。调用 ManualResetEvent 上的 WaitOne 的线程将阻止,并等待信号。当控制线程完成活动时,它调用 Set 以发出等待线程可以继续进行的信号。并释放所有等待线程。一旦它被终止,ManualResetEvent 将保持终止状态(即对 WaitOne 的调用的线程将立即返回,并不阻塞),直到它被手动重置。可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。
2.使用说明
2.1初始化一个ManualResetEvent对象,例如:
ManualResetEvent manual = new ManualResetEvent(true);//初始化时设置对象为终止状态,在使用等待之前要用Reset()改变对象为非终止状态 ManualResetEvent manual = new ManualResetEvent(false);//初始化时为非终止状态
2.2设置超时等待
第一种:永远等待下去直到收到继续进行的信号为止。
manual.WaitOne()//永远等待直到收到继续信号为止
第二种:设置等待的超时时间,超时以后WaitOne返回一直未False,未超时返回true
manual.WaitOne(new TimeSpan(,,));//设置等待超时的时间,
2.3ManualResetEvent类的结构以及主要方法和属性的说明
类常用方法说明:
名称 |
说明 |
Close() |
释放由当前 WaitHandle 占用的所有资源。 |
WaitAll(WaitHandle[]) |
等待指定数组中的所有元素都收到信号。 |
WaitAll(WaitHandle[], Int32) |
等待指定数组中的所有元素接收信号,同时使用 Int32 值指定时间间隔。 |
WaitAll(WaitHandle[], Int32, Boolean) |
等待指定数组中的所有元素收到信号,使用 Int32 值指定时间间隔,并指定是否在等待之前退出同步域。 |
WaitAll(WaitHandle[], TimeSpan) |
等待指定数组中的所有元素接收信号,同时使用 TimeSpan 值指定时间间隔。 |
WaitAll(WaitHandle[], TimeSpan, Boolean) |
等待指定数组中的所有元素收到信号,使用 TimeSpan 值指定时间间隔,并指定是否在等待之前退出同步域。 |
WaitAny(WaitHandle[]) |
等待指定数组中的任一元素收到信号。 |
WaitAny(WaitHandle[], Int32) |
等待指定数组中的任意元素接收信号,同时使用 32 位有符号整数指定时间间隔。 |
WaitAny(WaitHandle[], Int32, Boolean) |
等待指定数组中的任一元素收到信号,使用 32 位带符号整数指定时间间隔并指定是否在等待之前退出同步域。 |
WaitAny(WaitHandle[], TimeSpan) |
等待指定数组中的任意元素接收信号,同时使用 TimeSpan 指定时间间隔。 |
WaitAny(WaitHandle[], TimeSpan, Boolean) |
等待指定数组中的任一元素收到信号,使用 TimeSpan 指定时间间隔并指定是否在等待之前退出同步域。 |
WaitOne() |
阻止当前线程,直到当前 WaitHandle 收到信号。 |
WaitOne(Int32) |
阻止当前线程,直到当前 WaitHandle 收到信号,同时使用 32 位带符号整数指定时间间隔(以毫秒为单位)。 |
WaitOne(Int32, Boolean) |
阻止当前线程,直到当前的 WaitHandle 收到信号为止,同时使用 32 位带符号整数指定时间间隔,并指定是否在等待之前退出同步域。 |
WaitOne(TimeSpan) |
阻止当前线程,直到当前实例收到信号,同时使用 TimeSpan 指定时间间隔。 |
WaitOne(TimeSpan, Boolean) |
阻止当前线程,直到当前实例收到信号为止,同时使用 TimeSpan 指定时间间隔,并指定是否在等待之前退出同步域。 |
3.示例代码说明
static void trmain()
{
Thread tr = Thread.CurrentThread;
Console.WriteLine("thread:wait for an event"); isTimeout = manual.WaitOne(new TimeSpan(,,));
Console.WriteLine("thread : go an event "); } private static bool isTimeout;
private static Stopwatch watch;
private static System.Threading.Timer timer;
static ManualResetEvent manual = new ManualResetEvent(true); public static void Main()
{
watch = new Stopwatch(); Timeout timeout = new Timeout();
watch.Start();
manual.Reset();
timer = new System.Threading.Timer((obj)=> { Console.WriteLine(string.Format("运行时间:{0}秒 当前等待结果:{1}", watch.Elapsed.TotalSeconds.ToString("F2"),isTimeout)); }, null, , ); Thread thread = new Thread(new ThreadStart(trmain));
thread.Name = "线程名称"; thread.Start();
System.Threading.Thread.Sleep();
manual.Set(); Console.WriteLine("*************************************"); Console.Read();
watch.Stop();
timer.Dispose(); }
测试结果截图:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqEAAAGTCAIAAACXmlwyAAAgAElEQVR4nMy8aZAb55mgmfVvN3Zjd3YmZjeie3pmerqtdnS3NZLdsiS7x5JIiiySUpESbdqSLMkt2/Qhy7Jli6QkijclXnWxWMW6cRXu+6zCfSSABJCZODMT930fiaOKRR2eiN0fmUCBpKSVe7q9i3iiIvEhgcx8kZHP+75fogAb3vojwFp2vGXHWw685cBJkCCdBOmMtpwx0h0j3XESipOeBOlNkL5k25dsw6kOkuqg6Y4/0/WnKTpout2H3CHV3iHdRtOdPt0+PTTTQzO9oZHPBqHpwOkOnOrAqY4v1fElO74U/RROd5B0B051h/HR9FdOdrwJivYAT6LtSZCeBOlJtKH7id+FO952x9ruGOmMkc4oDUi0QKLlIJp2oklF0k5QIW3SYE0r1rBiDQvWsEQalkh/AWtasKYlQtEwhxvmcMMUbpjCDWOoYRgQrBuGnuqDO2z0WR8QuAtdoKHzN3T+ug6ta2lqw2iQ6g5oVYPWaJABdQo1UlOjNTVaUyE1JVxTwFW5tyrzVqWeihgqi9xlPljiOYprtjzbmmdacgxzbsWUXTFll025ZVN+2ZxfMRdWrSWGrcx0VFhgle2scZy1NVd9zV1fcze4w0DNu7n71c9d7V+eNXdjzVXnOGtssMZyVBn28qq1tGIpLpsLy+bCsqWwYimuWIvUQbHBKsdZ47j6h/M/vgOfedT/r/zrh+VPEVtzYdlSXLEUGbYS075zwnBc9TVXfc3duPec+R+JyZd4I++L8VA0eNAO/M/D0+R7moIB3tYwwgG+ltDXFHqboiHEvj5wSwy3JDApgUkJQkqHkCGkDCVlKClHSTnakiMtBdpSoKQcJRUoqfCTSj+p9JMqP6nyk+oAqQ62NQNCbW2orQ11dKGOLtzRhTvr4c56uL0ebm/QdPThjj7S0Uc6hkjHgHWNFHjXiHdNfczEXdR6nzxz9Edl8jaeJ4chPo8CSRTI6L20hym1bp/9YLzV++ie8VihfeTosf/7Cx9Hjh7Dc008exfFRm/qB4eKHk/41nTk1jR2axq7NR2bn47NTyfnp1Pz09n56dz8dGF+ujQ/VZmfqs5P1eYnKYa3eOTosem3jt8z0l9zqjI/VZqfKs5P5eanc/PTmfnp1MJ0YmE6tjAdnZ/G5qex+enI/HTWbHru8Ufq3Y/v8bWdaNW7HwP3i9xKgTXvx4Y1bZSKiJaDaIHRljNKumKkK9aC4iSUID2JtjdBwsk2nGqj6bY/0wlku8FsN5jthrIdmkw7mGkHM2QwQwYo0n0yZCDTDmTagUwnkOkE++8NZrvBXC+U6wU/h0B2QDeQ6fozHX9mkCV0kFQHSXWQdAfNdPw01Gr0Xwo000UzHSTTQdJ9Uh041abylc+ncz/eZMeb7HgSHU+i7YmTUJx0x0lXrOWKtpzRlpNogju0+uwMOvCGHWvYsYYdb9rxhh1v2nA6u7LhLRvetGFNG5UKRIYINyxhWv+DBVOkaRpKCGhCDePnQCcHFMG6PkBR27ib9UBtnV6u92ms7yzTrAfq6/661l/ToDU1UlXAVbmvIoXKIndJ4Czy7HmOLc+y5hiW3Kopu2LKrpizK+b8irmwYi0wrCWmvcIGqxxXbc1V57obPKjB8zT5nibf0+J7W3xvS+AlBT6Kdn+BFHgpBpfCnXWEA+B/IXxtoa8toPCSPE+LEhLbWWM5KgxbmfYQJXhLcbV/UGuuOhdq8CD6WIZ28kvvp2+w9cFRt/jeFt9D0fwcBqFr9QN116bv2vq/YKD+9WJrLqxYCv3YlllglUoHue4GFWH6nBmcMMOHPAja4KV7vgL4rmgM3jJ4132nYnv4vaJ78O0ghEkhTAp9A1oCX0voa4l85BDUCD0oRtpipC1GOhIKlF6QIh0p0pEg7QHSYdC2DG3L/Z0BisAOykBHGegqA10lvdxRBtpKf1vpJ1UBUhVoqwJtdaCjDnY0oa423NWGe7pwTxfurUd665HeOtbbiPQ2Ij09RtHVY1091jNgPQPWpTDiXSPeMxE9E7FpJjbNxKYlummJ0Vj72OKbtviWLb5V73367Pf/KV/voYkamqj57ye5Q+DLka123zt/tUZuBZM1mhTNl3E8Eish0RISLVLA0WKq1Lp2eG8WdPiuXkSuXkSvXvRfvRi6fjF8/SJ2/SJx/UL8+oXE+IX0+IXM+IX8+IXi+IXC+PnS+PnS+PnJN357j9SHlyff+E1p/Fxx/Fxh/EJ+/EJm/EJm/EJq/ELi+oXY9QvE9QvY9Yvh6xdD1y4Frl3yX7uEXL2U1Gmf/caD9zvehrc2P/oD0Df6gL7RIw2KgT+s4YY10hho3kE0wSjpirXcMdIdIz1x0psgfQkSSZJIqu1PtwOZTjDbCee6kXwXo+lguU4kS0ayZDjbCmea4UwznG6G0s0gTSuYJkMZMpRth7OdcL4byfcosHwPy29i+U2ssIkVNiPD5Dcj+V54QK4XzHaD2U4w0wmkO/50m4Lan2C2E8p2Q9luONcbEOpD5ROBbCeQ6fjTHX+6Q7UWkFQbSZE0yTaSpJ62kUGj4u7GwyBLgFMdX7LtTZCeOAnFWu5Y0xVrOqMNJ9FwRhvOaNMVbbpiTVes6Y61+jRd0aYz2qRedcaaVKfEFSOdVIoQbTmjVCrQdNBJQMOONWxYw4bVbfRC04bT35SN5jMaM/2v/r58LtK0RppmOlGo04TqplDNFKoZQzVTsG4K1U2hujlU76/T6NOkiTRN4YYx3NCHGhuBug6ta5GqGq4qfBUZVBa7inywwLXnOLYsy5JlmDOrpsyKObdizq1YCgxrgWkvsRwVjrPGdde5UIPnafA9TYG3KfBSV0OSuoaKkY4Y7Q7RESMdEdIRIf0LK9Kh1pGgPYl/wOa/EDufKUa7Qrgj8JE8T4tSEdNeWbEWB4KningWWF1z1XkQdSCk0Efv5GA/79vVe3b43pfEaFfcP94dYdAWbw7R2gmdjxwEh97uzqa7n7/pPzF/TGwtxVUbdcJUue46XRxTRfDwCYO0d44X6YiRzrCDxUhHjHxe/HsS6gSj33K3oYdOM/FnB3DnqdTfk6I9CRVqtCNBO2K0I0bbYqQtRjtitDMYlKB9c6MdKdqR+rtSf1fm78kCPVmgJw8OsymnBv1dGUWgKwt05YGuIthTBHvK0KYytKkaEN5UhTfVA0Kb6nBPHe6pQz11sKsKdpSBtirQVgXb6mBHE+powl1tpKeLbK5jmxv41ga+pce39MSWntgyEFsGYssY3TJSC/imkdg0ED0j3jMSPSPRMxGbpuimObZliW1Z47et8du2BMU2hT2xbU9u25PbjuS2I7ld3/zD2A9ey1a7vliFAv5CkGHin0260nn33JVqawuNV+4iURko9sjRY/cwGPdieQ+W90RyUCQHhXPucC6eb1x9ZlfaZoEunoYunvZePA1fPI1+cDrwwangB6ewD94nPnw/9uH7icvvpy6/n738fu7y+7nL7xf6TLz+6/tziyNHj028/uvC5VOFy6dyl0/lLp/KXj6VunwqdflU7PKp2IeniA9PYR+cCn5wKvDB+/6LZ5CLZ3wXz3gunomplAcf+rta92Na4vgOmx/9Afisi/vA69SVvUZhCdcskbo1UrdjDTvecBAtV7TlipFQjPTESV+C9CVJJEWi6bY/3QlkOqFcJ5LvYoUeXuwRhW602CUKHSLfxnMknmvi2QaWbWCZRiTdCA+TaYYzrUiWxHIdPN/FC1280COKm0Rxkyh9BjhFcRMvbuKU/vPdcK4bptsG7WC/T0DnDblOZJB2FHpYYRMr9CgihV443w3nuqFcN5TtBLOdQLodSJP+NOlPkejd+CnS7UCmE8jutCv6WQKNP91BUm04SXoTLU+8CcUa7mjDhdeceM0drbujDXe04Y41oVjTE29646Q33vLGW5540xNvQvGmJ97yJFr0BEGchGha7ljTHW26o01XtOGKNpx4H6L/N9p0ElSWQOUEpCu6M2UwDEjToqFmE+jsoWnvdxSsWN0aqe0QrlkjdVukbqP6DVhzZ7phh5YNb1mxpiXSNIUahmB9I1DXoTUNXFV6yxJ3Uegs8B25NXuWbc0yzRmGObNqyq6a86uWAsNaZNpLHLCy5qpxoToPqvM9Db6nIfA2BN6m0NcU+loimBQjbQnalfp70kBP6u9J/V2Jv3/dpIuethjtSPxdaaAnC2zKgluy4JY8dPuPRRG+rQhvfxY768iCWxJ/T4R0Bb42z9PiuOosR4VqKa9YiqtWutBkO6tcd0PgbdGiHewk2pX46WMZ2lWKz9yrLXlwSxbclAV6Un+XOmQRTFJtW4G3KfA2BJ6GwNPge+p8T13wWdEbbJd2T2BTFty8J0Sfc+B/Ar5sbFesxVVrkTHkeD5U5w+fM76WECZF9PF2JP4u5Uv6PIHbYrgtRgYvUXHYuj/U0kBPgnbFSFsMk/1Qt/rBHH7vpiy4Jd/5+u4muEUr2d+T+btStCv1dyR+ausdqZ92+c4g2qGcLQ/05MFNRXBTEdpShraU4f7f8JYyvKkI9RTBnjzQkwe6ih16yuCmMryljmypI7fVkduayG0Ndls7AKeebmkjm5rwpibcVYe6qmBbFSCVgZYqQKppzXd1kd46trmB39YT2/rotiG6bRwQu22K3jZGKdNvGvBNyu5Gol++R7cssdvW+LYtsW1L3rEl7zhSdxypjwaAFOmPnOmPGlt/GPvBjzOVjocoeYmyN/rZ+L4ccKwMx8qpcvudc5crrU3q6TBHjh7rdrvdbvfI0WNwtARHS75oyUcUh8dd4awrlHUGM2AgAwbSYCAdzdaujH4nZTY6T590nj7hPn3Cc/qE7+wJ5Oxx9Ozx0NnjkXPHiXPHY+dPJM6fSJ8/kblwInP+RO788QHjv/jVYBPUVsZ/8Xr2/NvZ88ez549nzh9Pnz+eOn88fv54/Pxx/Pxx/NzxyLnjobPH0bPHkbPH4dMnvaffgU6/4zrzDiGXHvjaV2vdj+6v1jbv/AEY1OvDhfvkjVt/FL4ECSdJJNVG++VyKNuJ5Dt4oUsUe9FiL1rsRAvtaIGM5ltEroFn63imimWqWLoSSVXCNNVQqhpK1cPpRiTTxHIknm8ThS5R6EaLvWixpzgzApx2RekPvAui2COKPbzYwwrdSK4TzrVD2osAcFGUbvlTTYpgphXKkuFsO5JrY7k2lu/ghW6fHl7oYYVuJN8N53YyA3+qhSabSLIBJxtwogEnGnB85y+SbKKplj9NBjLtYLY93CSgGgmBTMefaSNJ0pdoemMNKFpz4VUnXnFEyo5w2RGpgFjFiVddeNUdrUOxBiV4b7zZp0WTIIf03/LEW1Cs6Y423NG6m6i78LoLr1F5gwuvufC6i6i7iAal/6H2ADnARdO6i2h/KiHackZbINEE8QaINxx43YHVHFjoyl7gqbmQLVwdYI/UHFjdgdUdeN2BN0CiQU839DMGB2V6rGmJNM2hhjFY3wjUtGhNDVfknpLEXRCAeZ49x7FmmZYMw5xdNWcZlhzDmmfYiix7ieOsrLlqXHeN667x3FWeu8JzV3hQlQ/V+J66wNsUwS0x2pb6u9JAj7osStGOBG2LEVIEt0S+psjXEiOkBO1IAz1ZcFMe2lKEbivC28q7oYzSZ1sR3lZGKO4osTsq7KPP4Y4Su6OM3FFG7igi2/LwbSmtog7fS665GyywumorDQS/aisx7RWOs8aDGgJvSwSTA8QIla90pP10RL6zt5+5Y/0dDm3Jg5tSf1eCtEVwS+htCDx1vqfGh6pUxLiuMtdV5jrLXFeZ66rw3FU+VBN46kIqekj7ru1SGw3f/hLH/q/Nl40tJfi+48scZ4XrrvLoE6ZKHzJ9tlBpTf94/R0JZWtfU+Rr9lPGjtS/EwfF0LkhD23JAj0p2hEjLZGvSYcaqvHpYJLie8IYur1DeIjQljy4KQv2ZIGuzN+Voh0p2m+zo20prfmO1N+Rom0JSg/KAl15sKcIbipCm8rwlip8WxW5rQrfphyvCm8qacd35YEOjb+jCHSVwZ4qtKkOb6kjt9XYbS22rcV30OHbOuy2FtvSYJvaSE8T6qqDbaW/pUAaCqSuQBtKf1MVaKmDbW24q+s73kA7/o4pdscY2zbSgt80EpsGvGfAunqsY8C7A0zRTbqIT2zbknfstOPvOFIfgekdnJmPXJmPG1v//dALP/YRBZ7Bfw98g/8Xvzl3f8E9zC9/c05o9AtNAaEpIOrjDmd/+ptTRLYmGhqkOHL0WK1Wq9VqR44eExn9QqNfaEQFBmR4nKVyM1UuhgJkyB2rMseKzG7y4O/95b/1M1e4ex4X7H5cuOcxyZ7H5U8/rnz6Me2+xzb2PWra903b6Dcd+x9173/Ud+BR5MCj6IFH0f2Povu/SXHpuecGm6C2cum555DRR/p8Exn9pnf0EWj0EdfoI/bRR8z7HjHufWRj76PavY+pnn5c9vS3JE9/S/T0t0R7vu26dvlb/+5/qXU+umvqNtKwRBqbd/4A3D9qDtcnb9yKxHOfx8/fmR7+O3nj1lAF3w5k2qFsJ5zrYHnnyRGg/7ikKLZjBTKab0ZzlpMjwAltBU+XsFQJS5Yk740A+9mWZCWcrISSFcvKGACMzftaRL5NFDpR/QcjwOFFf09xdgQ444qW+mov3QWt+UIXy7XDWTKovQgAF4Sppj/VQJN1f7IeTDdDmVY4S1LZA17oEIUOUexSaQT93nw3nGuHsmQw0wqkm2iyAcfr60tjwH6uLlbzxmreaNUbq3ljNV+8BsfrSKKJplqBDBnMtkPZTijXDee64Ryl+U4w2/anSSTZ8sUpwVdArOwIFa3BAoU9VHRESiBWcRFVKFr3xpveRNObaPr6f32JFpxowckWnCThZMuXaPlUF/shPc+O1txEzU3UXIT514NInzC7ifD4KLBrAYOiTSjWguIU5BCtu9jJA/pEWy6qE0DUQbwO4jUHFrq6F3hqLuSIVBzhiiNScUSqDqzqwGogXgPxOtU8oBKFAU6iCeJNB960YU1LpGEK1fXBug6tquGKwluSuosiZ14A5rj2LNuaYVkyTEuWac0xrXmmrciyl9hgec1Z4boqa84SByxyHHmOI89xFNbA4pqzxHVV+FBN6G2IEcqRLTHcFPkaQm9dQEuuwoeqAm9dBLckaFvq78qoSih8Wxm+rRy+7Ia3FKE+4dsDyamwOyr8IzX+sZr4WDOEmvhYjX+sxj9S4QMbbSvCw+UmyXU32GCVYSut9AXPsJWYjgrHWeVBdYG32S+4GwJPXeCtC30NEUxlJG2JvyMNdGVUDzZECWNLEd6i93zg+NCWPLQpC3QlKCnyNQWeGt9d4bnKXGdpDSxwHHm2PceyZZnWDNOaYVkzLFuWZcux7fk1sMTrR0/ka4lhUoL04xPaUoS3Kbur8Y80xMca4pM/IX9kbOn8qbhqLTFsJZajxAHLXGeF6yqvgSWOo8i25zmOwpqzxHNXBZ660NcUwdTxkhKEClqd767yqVe91FfQlvq7suDm4GSgzhB5cFPq74jhltBbF0BUnIscR4EDFrmuMh+qCX1N6uuT+vvf3YDQgC15v/UiRdsShKRuiKPyDLGvKUZaEqQlQVrU+UwhQVoSlOybvqsI9ZShTWV4Uxmi1a4IduX+jszflqGkFGn1IaUoKfN3FIGuKtRThTfV4S11eEuNbWmw20NsaSObmkhPHe6qg20F2pLBdam3LPWWpd6qzFeTwXUF2lQFWppQu1/Nb23gdJdeT2zq8Z4e7+mx7kaksx4m10MtXai5HmpR6CNtA9YxET1zbNMS37LGb9sS27bktj15x568Y0/dcaTugKk7lOOdlONf/IkXL3A20LUNdG3DP4C74f8y0+eDhGCAM5T5yZvv4ZmqwOAXGPwCAyowonwjyjegR44eKxaLxWLx/nRhML4iB1fkjmWpfVFiWxBbF8QWvTv8zl/8b8jKIvs7X1/7b1/nfudhwXceFn/nYel3HlY9+bD2qYcMT/1Xy+6HrHseAvc85NnzkG/Pw8ieh+E9D8G7H4J3P3Tp0Njg8wePI0ePXRwb8+16kMK760H3rgedux507HrQsutBw1MPbjz5oPbJh1RPfl32na+Ln/iG8Il/4D/xD/wn/sF5+eLj/+Z/qnU+GkyqmkP0BOvmnT8Ag9lWS6ROCd4cqk3euOVD0C/J5I1bQ0V8O5jphLLtCCwaBYB9rHi02IsVezH9ByOnHbFCK5ZvRLM1x+qzwHsGPFXEksVIshhWnRkBTosSxVCiFEqWxO+NAABwQtcg8mS00AbZh4FnxGCpF+sTLXajxe5nVvN4oRPJtUMZMqC5AAAXBKk6mqwhiRqarAVS9VC6Ec60sFwLz5NEvh0tdKLFDvVpfcd3wtl2KEP6U5Tga55o1UOY3gSenXCU3XjJjZfceBkiKm6i4olWffE6kmz4U61gph3KUskN5fhOMNsJZtr+NAknmp5YzYVXFHPPAHtZkkDOiGaMSMaEZi2BHGV6J1ZxEzVPrOGLN33xpi/RhONN+C7Bk3CS9CXtv90vWI83PTFsYpTSedVNhMb3PTtur7rwitvB3QUAb8prbsV5YJSniTU8Mar0J4e5S/OxPoMMgNZ80xVtuIi6E6858RpIOz7oiFR2wKogVnXiNSdRd0UbrmiTyg8GuYIr2gKJph1v2LAG5XhDsLbhr2qRstJbkkEFsTMvcOR49izHmmFbMiwr5fgC01Zg2YpsR5FDX6lzTGuGYU6umpMMc4phSTMtGZYty3EUuM4SH6oKPDU+VOG7yzxXiess9g2XZdtza84iz10ReOpUTS9FOztzmQFqarMrC9Dd0UEeMChnVfhHaspz0U800U+00U800U80Aw/RtSbVWN6SBjYl/q4I6Qx7aHXH8WWmo8xxVrnuGt9TF3jqPHeV6yqtgQUOWOhnLQPZ0MIY1HaywNC+hTblVCEY6EhQUuRr8KEq11mkvW7NMC1phjm5YowvG2JLG8TSBr60QSzpo0v66IoxzjCnWbYcJSdaft6mGCYl/o4suKkI31ZhdyjBa6OfaKOf/qn4o2M7KOJpx9tLbEdpDSxxHAW2jTpnUgxzimWlTpVyv41RE3rrQk+N765wwSLblmPbcoMVqFNFgrZlga48uDmY85b5O2K4KfTUeK7SmiPPtmWZlvSqKbFqSjKtGY6jQJle4G2IfDvfHf0Nom0pOlSdIySVj4q8daGnJoCqfHeFD1UEUFUAVYVQTQjVBJ6qAKrSg56a0FsX+RpDvm/LKFBSipJShJTATbG3IfbWRJ6qyFMVeWpCT03krYl9DSnSkqGk3N/u32fXVYa6KpqeKtRVBTuqYFsVJBX+lsxXE3tKQmde4MwJXHmRuyCCihJPWearKdCGKtDShEhtqK0Nt3Xhznqkowu3dSFSG2ppg01NoK5GqyqkooIrKqSiRqtqtKYN1NdDzY1Iy4C1jXjXRPTM0U1LbNMa37T277OzJ7YcyW1H6g6Y/qix9d8PvfATD17g6P1rej/3bo4cPdb+wseRo8f4hsAOxgDfGHCGsj/9zSkiUxMYAwJjQGD0Dzhy9FjmCx9Hjh5bVThX5CDl+EVJ3/H/8X9HVhY53/mHtf/2De4TXxc88XXxk1+XPPmw8qmHtU89rN/9sOXph21Pf9259+vQ3m/49n4D3vt1eO/X4acfvnTo0PBG71m+eGjMu/u/evf8V8+eh1x7HnLueci++yHz7of0ux5af/IhzZMPK5/6huzJb4ifekT01COCJx/hP/FN15WLj/8f/3O1fccUqpmC1R1Ctc07nwKmUG1Y++ZQ3RSsTt64BXzpx8Dx/r7jw7nY3DPAPlacmoaPlbrxYideJAeOJ7ycUeCZeaiAJQuRRCHsYu4FgN8rC6FEMZgwvD3yzN4DAHDKSuRb0UJs4RkAOO2kBU/ZvdAZ1vMAotjFC51IlgxlWgHNBQA4z0/W0UQNSVTRRDWQqoWoWYBsE8+1qATiLs0Xuli+E8qSdAUfq3mIshsruiJFxnEAeFsPhgs0kQIYKbqwkoeo+OJ1f6oZSLeCGfIux2fIQJpEkk1vrO4mKmCkJLv5DPA0Q4CkN7zJdU9iw5cyIGkTmrUE8vZwyYVXPNG6N97wJZq+RBNONOFEC0lSkEiKhJMtONHyJVreRNMba2gWxoBRrhqvuO8iOD4K7JoPuwnzmwDwG0XDE296Bg3/BOlNkJ5Ey5OgG/4DwVOpwJD4m+5o0000XETdRTs+eG0fsGsu6IiUKUCsQuHEay6Curdg5wMpXNEWSDTsWN0WqVsjdXOo1nd8ReUtyaGCxFUQgnm+PbdmzXKsWbY1x7LmWbYCi9K8Pc+yF1i2HMOSXjHGlzaIxXV8kdLVRnTZEFsxJRiWNMuWZduzLFuGZU0zLSmGObFqiq8YYsv66LIhtmpODi7xfPoKTv+aSAQ36T6tryH0NoTeIbn6O7JATxHaUka21fjHA8HTKiIGEtpWhKliuif1d8VoR4R0hHCb722tuevDjmdQdby9PGhOcF1ljiPPsmZWzclVU4JhTjGtGZYty7bnOWCR6yxRfQjKSfcU+lK0LUFJCUKKkZbIV+e7K2tggWXLMC2pVVNioPYFXeSWJjSn8s8q0Vmlf1bpn1UFbqlDC+v4siFOyY9Nl7kVgacugltSf1ce2qKSGw3xsTb6qS72r452wD8ntsVVa3HVVmLYikxbkW0v0IK3pFeNiSV9dGkjumJMUGkN21Gg+kBUIsi2ZRmm1Io+tqyPrVLrWLNs6lSh6nKYFCN00S+GmwKoygULbFuGaU6sGGJLG/i8NjyvjSxtECvGBMOSYdlzHLDAdZX57qoAqgmo7+4uBk2mMtdZ4oFFrqOwZs9zqDzDnuM48mtgfg3Mr9FdK2qkwHUWea4Sz13mQxWBpyry1ETemtBTFUJVIVQVuCt8V4kHFrlgfs2R5w4ACzxnke8uC6GKyFMVe2tib4pYmRMAACAASURBVE0C1yVwXYI0ZEhDhjT7NORIQwbXRVBJ4MxxbWmuNcm1pbj2NM+e4YNZoSsvhkpSb0Xuq8rhmgKpKdC6Eq0p4KoCrih8ZbmvJPcUpO6cxJUVuzJSV1bqzsmgvMJTVPnKaqSqDdR1wcZ6qKkPtwwR0hAhDVjbiLdNeNtEdC2xni2+ZU9uN7b+MPbCjz1YgbsR5OqDXEOQawjyDEG+Mcg3Bo8cPVb6wseRo8eEptA9OMPZn/72NJFriOiRoNAUFBoDQmPgyNFjiS98HDl6jKF0r8pdKzJwWepYlNoXxVa9O3LyL/8twlpd2/v42r5Hefse5e97VDz6qGz/o6r9j2oOPKY/8Ljl4LfsB78NPvttaOzb3kPfhg99Cx77Fjz2+PAWjxw9duH55+4Z8Rz8pvfgo56Dj7kOPgYeeMx24DHT6GOG0cfWRx/TjD6m3P+4fP/jsv3fEo1+W7j/2/z933ZPXH783/2v1fYdY6Bi8JcN/pLBXzL4y8ZAZfPOp4AxWDEFq6ZQtX9vXdUYqPyxjvclW0iK9KfbQapRD4v2AYfnkS5R7MaKvXipGy91EsV2vGB/ZwQ4qatFM8H5A8C+ZYR2fAKZ2w/sXUJCiWJIdWZkP8eqOTdygGfPk7GC450R4KS+Gy91FWdHgNNgtNB2sA4DB4ULp/szAadBSvBEwXliZHjXzguSNTRRRVXndsZOWfFsk9i4CAAXFQUyRvUJgEuKYpcodKzMw8ABgTGFTe/vr7+XKQ9m7aL3AeDUSiBjDWRsgazNyHiy//ruxRD/XQA4IDCmSaqUF78PAKccAY9wT3+dp24FVt/e2YV/HAc17piO8+5g5HVxEcQqmoUxYD9/6h1q7NC0u8Xvr7JnhaDa9XCy5Us0vTFsYhTYPR+CiCpEVCCCdjyEm98EgDflVYiosd8BgHes9Lx+ouVNtNbe6W9v5CInjk2MArsX+W9SI/sF2ridXgYOTYItKNaEog31/NhwQHfdCoJYBYyUwUgZxCpOzPTG4CNPWqFYk/MO9eEtKI5PjALAqEBBNByY5ZeD1X5v3vBXtEhZ5SvJoaLYlReCOb49t2ajHc+25dm2AtOWZ9ryTFuOac0yacHj85rQLXVgjiY4pw7Oa8MLOowS/+I6tqCLzGtDtzTBOXVgVuW/qURnlf5bmvDiOr5siK+aUkxLhm3PrYFFrrPEBYtrNAWOg+5scxx5uq/rbYhgkhKeCvtIQ3w87Hg1/pEK21aEb8uDm9JAV4J2RAgphFvUL6D43hbP0+S4qJ94lYYkVGLaqVqzyAGLbHuOYU4t66PzuvAtTWheG1lYxxc3iCV9bMWYWDUlGZY0i7Z+ju3Ic8AC10XJuCbw1vvOqPLd5TUwz7JmVk2JZUN0SU8sbuALOmxeG5pT+Wfk8LTEMyV2T4ndU2JoSgxNS703FegtTXhxnaDDYs2y7QWusyzw1MUIKQtuKsLbKuyOhvhYG/tUF/vDvz590//zYjtIoWxFlr3AsecpeS/rYws6bEGLLa4Ty/rYijG5akpRlT3TnGKYEssb0QVtZE4ZmFMGbqlD89SaBrrPsUb1OVwVvrvCh6o8V3nNkWdZUqvG2PIGttAP74wcnlUFbmnDC+v4EpV3mlP9mZEd2LYc207DsmWZ1jTTnGKYkqvGxKohvqKPrehjK4bYiiG+arwPU4JhTjItKaY1zbKm2bYM255l27McW5Zjo+a50ixzimlKMkzxVWOcMcAUZ5qTLEuKbctw7FmuPct15Lhgjgfmec48z1UQuIoCd0kIlUWeithTFXvKAmeea09zLAmWKcY2xdjmGNsc45gTa9Yk15biOdICMCMAs0JnVuTMiVxZkTMjBNNCR0pgT/JtcZ41yjUTXBPOs0T51pjAFhc5kmJnWurOyT15pbeg8hXVcEmNlLVoReuv6PxVnb+6HqwbIi0T3rHEevXNT8d+8JoPL/GNYZ4xwjNFBKaIwIQJTJjAjL3+u4tfPB//q99dFJkxCnEfdyT/s7fORLON/khEZI6IzWGhKXT87PQXf+Dv359gqbxMpYehgFYUrmW5c0nqMEL4ib/+P1Eei394D//wLuHhXaLDu6SHn5IdflJ9+Kn17z6lP/qk5egu+/d3u17YDb2w2/viHviFPfALu30/2H3x+0cHH37h6Peg7z1x4ej3hkc833vSc/RJ6OiTzqNPOr/3pO3Ik5YjTxi/++TGkSd1z+9SH96tfG6P/Lm9suf3Sp7fJzqyD5qZ/Pa//zcVclvvL20gxXW4sA4XNpCiHi31tj8FDP6yaUjzpmDVGCgPHE/NcAxf5e95CuzU8QPHt8PrH4wAl+TFXrTYjZVox8cHjl+vRTMVQnt2ZD/LlixgiUI4UbAsPQPsZ5kTRdPSM8A7xoiHOwqMzcNkVH9pBLikKHZixa7izAhw2kHkSQfzEAAA+5hENN+O6i+NAIcXkE60AJ4cAYD3HViODGXwmQO04/2qcwDw7Iy7GkzVwmnLcQDYx8CJnO0kAJzUk7ECsfgMAADASX0HL8TmDgJPr+D65TFglKvBS2A4bwtkLWjajEAf7AF+zksa4YQRdn+wB3jihscWyILhAkRUYCdvDwD8TtMKZMigT/Q0cHjGg0/vB3YvYZ5ozYWX7aGC2Z8VTB8Adi+tuWMqJ6FkngCAd2ah+IYvaeSfAoDTjEhJszAGAMDuJQxONHnvAgAA7FnGkSSpXz4EABf5yRacaMH9+fjfKOpQtAYRVfcQ7BMAMMpVE1V3tAY5eLuBC2u04/HJ/QCwX6ijbtyLNaFYZGIUAIBDE2ADilnfpNTubHni+MQoMPKODYo11QtjADA27qi58JpTdg4AgF23Ak6sTIOb3gBGfi2ruoiam7C8CYy8qWhSb9+9SECKC8DIRVa0AeKW14GR1yVVS7hqCpp+DowcE1S0cLlfx9/neGuebc+zbAWGNce05piWzKopuayPLmjDcyr/TQU8I4dnZL4bfWZkgxHvtNQzJYGmxO5JkWtC6JwQgBNC17TEMyNHZpWBW5rwgg5f2oiuGOKrxsQKTXzFEF82xJb1Uao3sGpOMW05DljkuatCuCUNdJWRbXW/Y08VmirsjiK8JQv0JGhHBLcE3gYPqnHdVa67xoVqXKi+5q6znVWmo7xqLQ3fFMawFZm2AtOWY1mzDHNyaYO4pQ7OyOFpqeeGzHdDDs8o0JtK/5wqSFtfhy2u0232FWN81ZxiWrNsR55DZSdOqh7tC14fXVzHF3SReW14XhOaUwVm5PC0BJoQguN8+3W+/TrPcZ3nGBc4p8SeGTkyqwrOa7FFqsy1ZNj2AtddEfqaUn9XHr6tjNxR41Qd/6dwvDb2qTb66T83trTjWfYi217g2KkCPbm8EV3QRObV4XkNFUmiD76owxY04Tmlf0YKT4mgSaF7Wuy9IYVn5OhdYTGnmZYMy5qlxMwwJVf00UVdZF4dmFUgN6SeSZFrQuSaknhuyOCbSv+cOnhLE17QYYsbxFKfnWV9dEkfXdoghlLSyLwmfEsdmlMFb1GoKULz6tC8po82vKCLLOgii+v44jq+tIEv6aNLeoLqbC2tY4s6bFEbWdCE5zWheU2QYkEdXNCEFrXhJV1kaR1b3sCX9cSqgVg1RBnGGMMUZ5gSLHOSbU2v2bJcR57vLPKdBa49w7EkWaYY00Aw9DhDj61uYKsbGGMDY+gxph5jGjCmAWcZCbaJYJsIthFjGTG2IczUh5gbQYbOv6pFV7UoQxdgbQTZhjDHiPHMBN8aE9oTIkdSAqYkzrTUlZa5M3J3Vg5lFVBO5S1o0Mp6sGGIkLXeJ9995ZeecFZsiQothMgSFVmjYmtsgGQI6X3IbJ+BBy//7Hfn4vlWfyQqsxIyKyGx4GJzRGQMCw1BgT6ww0aAvxHgrfspuFqUo0E5Gpil9jFVHoYSMntj7331PwQkfPHLh8Q/HJO89KzspWdVLz+jeuUZ3avP6n/0rOmfDtleO+w89pz72HPwsUPwzw6jPzsc+Nkh/7Ex/0/H0J8+i/7kGeTHB+EfH4RfOwC/dsD32gHfawfg1w7APz4I//ig78cHPT8+CP34IPjas+Brz1r/acz86pjx1bH1V8fWXz2sefWw5tXnFC8/r3jlecVr3/euLnzn//r3FXJ7Aymsw3mtN6v1Ztfh3AZS6G1/Ahj8JWOgbAzQmh92/EDn1MLw33sdn7jf8Yfn0fsdT8byzWi2TmSqeNp4YgQ4ri5GEsVwohh2sfcCp0VxdHY/8Ht1GUuH5w8CJzdIkHUYOO2IFTuxYmfgeDvzEHBQYMu1iDxJ5B0nR4CTG9SteZfk+TaWa0WyzaDmPACcFyZrwncB4F1zMFkNpWuRdM3OGAMO8h25huI0AJy2xxDhKHBRob8EnAbxvONt4NAM1ERc3N0AAADPXDFmTUhK74tveGO8iVFg1wIXim5AMd7kfqq4lgVzLqzkjdX47wLAuzZ/umVcOQS8Z0cSzfWlMQAAgH1seahg9ucMcJo3uR/YtchyRRUOfOpX90Tx4FVrWT0/Buznr8cbvngTVl0AgAs8ql3vFu4BDk27B+36pi+OTYwC1G13EEGbXj3/LACcY9O+r0HRyMQosHsJ98abXqdgN3Bo0jkQfAOKRsZHgd0LEeonfOyTtNc98ZZ28RCwX6CJYdQKLoK6aT90bR+waz7oxCtOvOLEKpT1hx+7Fwko3oJAwS4AAIBD42DTRdRB6b2rfedGQAOXlN7iwPE8e3bI8Tm2re94S5ZhTq8aE1QRP6tAZmTeG1LP9JDIxwXgON9xnWe/xrNd5VqvrlmucMxXOObLbNNltukKx3yNaxvng5Mi95TEe0MG31T451TBOXVoThWkmFUFZpX+mwr/TQU6qwzMa7FFfWzFnGY5CjyoJkJIeWhrMD9NTRgrI9vy4CYlIb6nznVV2GCR7SiyQeq3AFWOs8oCK0x7edVaHLovrMiwFhiWHMOcYZhTy4bovCY0I/NNCJ3X+fbrfMe4ABwXOCeE7kkxNC3x3pD6ZuTIjBy9qfDPKv1z6tC8DlvUR1eMiVVzimFJs2wZapKCYU4uG2LDgr+lCc6q/DMy35TYPc53XOfarnFt17jWq2vWazz7hNA1JfHckCOzyuAtTWRxPbpsSDAs2TWwJPA0JGhHTk9SfPSndfw/N7Z390jWHEWOLc80p1b0sQUtNq8OzavD8+rwwKZzSv+sAp2RwVMiaILvvLZmu8qxXeM6rvOdEwL3pMhzQwrfVPjn1KF5Lbawji9tRJcNcTrC2vAtlX9WAVOCH+c7rvMdE0LnpMg9JfFMy3w35PBNBUpNi1DzIzeHoJ8q0Bk5MiOHb8jgG1LftMQ7LfFOiT1TEs80jffGAKlvRuajGgY35chNBUp/vtJ/U4HOKpBZOXJTBt+UwTNS3wz9Fu8NqXdG6p2Rem/KfLNyeFaBzCnQOSU6p/LPqfy3VP55dXBeE1rQhpfWsRVDjGVOrtmya/Ysx5pim+NMQ5Shx1c3sBVdeFkXWtIEFtX+RTUyr0IWlPCCGllUI0sadEmNLqmRJTW8pIYXld5FpWdBDs3L3QtyaFHpWVb5VtTIqgZl6ALsjRDHEOYaI1wTxjNjfAsusOICa1RoiwntMQmYlHtyaqSkC9arnY9fef2EE41pobQCTCmcKYUzrXSmlc6MahjXDur70LjvAonVXz9+KVXqaqkRV0rtTKmdKRWYUDhicmtUasGlZmwYSR+xCRMbIyJDRGgIC/RB3kaAq0PtaOq9B/8qopQrX39V+cuXVb98WfnLH2pff2n99ZcMr79k/vUPHb992fXWq963XvG9/Yr/+KuB4z8KnPhR6PiroeOvBN9+Ofj2y4Hf/zDwu5f8b72I3o3/rRf9b72I/u4l+HcvwW+9BP32Jeg3L7re/CH45sv2N182v/Gy6fVXNn71qv6NH2l/9Zrujdf0x9908/hjD/xlhdxeh/M6b1bjyWg9GZ03uw7n7nK8ceB4/72Ov6eOv2d88sYtX6J1l+Nz4IkRYB8rThS70WIvVupRjo8VyFi+SVA/nEuXpe+NAO8aIslSOFEMJ9DZ/cDvVYa3R86Ik5VIumZnHALetyvOjJzc6NzjeBvjEHCAb6NvnXOcHAFObHQIyvGFNpZrRTKNkOY8AJwTp6ri9wDgXRP18zwsXbWvjgEHeY5sg1i/AAAXFpiHgNN2ouA4AVySblwCDggMyQYcr0J42WFhPgEAAPDOrJvQunC14ta3gb1nFJjaiWvdhA6K8af2AwAAvK2HiKpPeR4ALvCTtrcA4LfqpjdWc+MVMFKU3TwIAADwW43Ok+CMjwJPLTBAQk45/tcKLZTY8KWMaNYaLDgiZc38GLCfr4s3vPGmT0k7Hk624IHjE6SPmpKPN71O/i5gbMJRg4gqRFXw+7hqSvA45fi6ZnEMGOVr4y1P3/H0NHy04SbC1/cBuxfC1J35rBN0s33geHWMSgLCLqLmxKtOPHhtH7DrVtCJVZxYxYlVnbJzwMh5NlFzE3Uo2qBn9+MtKEb1/A+Ngw0nUXdIzgEjZxeDJVOwbAiU9f6SDilpfEWlpyiDCuLPdLw1z7TlGdYcw5KhHb+Oz2uCswrkhsxLCX5C6BznO67xbFfXLJfZpg9Zxg+Yhg8Y+kuMjUurFOuXVtcvMfQfMo2X2eara7ZrPMc43zkhdE+KPFNiz5TYMyWCJkXQpMg9IXRPCF3jAteECLohR2bV4YWN6Io5zQFLAl9TFtxU9m+w1xCfqPGPFOHbskBPjJACb4PrrnLAErXDTHuB5SixwQobrLAcZaqZvGIprg40b8mvmjMrptSKMb64js0q0SkxdI1ro/KSKxzLFY7lyprtGtd+nU/53jUpck+KoEkxNC31zijQWXVwXoctbkSXDfFVU5JpTVN3fi3rowvr2Lw2Mq8N39KEbmmCcyr/jNw3JYYmBOB1np1Kg65xbVQpPymCpqW+GTk6qwpRac2qOc12FPlQXfz/ieP7kyB/dGxpx5eZ9jLbUeaAZS5YXnMUWJbMqiGxtI5TpfwtVWhOGZhV+GdkyA2Jd0oMTQhc13mOqxzrZZb5Q6bpMst8hWO9uma7xnWMC1yTImha4rshQ6ik8JaGShGo/ACZkfmmJdDA8eMCkNL8pBiaknimJd5pqXda6p2WeKck/ZNNDFFMiqFJkXtS5J4QuiaErnGBc1zgHOeD1yl44DjfMU4nfOCEwDkhcE4IB2eCe1IEDT5qSgxNidyTIveU0D0ldE0KXJMC5yT1FoFzQgBOCJxTQueUyDUtdk+LoWkRRM3aTIvdNyTQDan3hsx3U4HOa0IreoJhTrItKZY5yTLFmcYYU4+vrmPLutCi2j+vQm8pfLNS6KbENSN23pS6ZqXuORk0J4VmZe45qXtW6pyTgHMScFbsuCl23BQ55qTOWzLXghxaVHiWVL5VDczQokydn7XuZ6372et+9kaAow+u6UNrhhDPjIkcCTmUU6OVZG370k3O2SszaKJp8pfX4ZLOV1yHi+twiWJjAHIX+vsw9AmlyTffvZKpbvVHinq4uOHLb3hzWiijdqXUYEIFximUNAklmFCBCSWYUDoSCltcbovJbFGq9HeHc2ce+Sq+rl0/8YbuxOsbx3+uP/Fz44mfm9/5ue2dn4Pv/dLz/uvw6V/5z74RPP9G5MIbkQu/Ji78ijj/OnH+l/i5X+Bnf4Gd/XnkzM8ip4+F7yZCceZngTM/C5z5Ofr+z+H3f+F79xfQe7+A3nsdfPd18J3XbSd/ZX7nDfOpt+wXT6GsVc6NuTM/+H6F3Nb58lpvVuPJaDxp7ZDjy8ZAxRioDup4w32Ov6eC/wLHB9LtYKYdznWszMPA4L76En1ffZTysa6Op2uRVCXi5uwDzoiTpVCiFEqUxO+O7N3/LLCfY05WIuk6rrs4cvDQKNWHL3aiVK/+fQc+cHz2bscXwJMjwD4mgeeaWAabOwAAwFlxqhzWnAUA4Li6FEmVsZTxBADsWw0RmRqRtZwAAAAATmy0iDwxfxAAAODpFRxN1nWL58ZtJVsga9xY/kdg9IwCUzgiMlto/HXgW5dNMrvl9K/mWCCug2LC6QPA00wVXvbEIpOjwO79Y8B+vi5Wd+HBK2+zJf6sAU5zqfIdJBhX9wFPzTMcuNyBKxgnAAA4xknq4YzJwHzybb0Dq6jnx4BRvjbW8MQaXsUFgOq0J1pel2A3cGjS1fKqLu5ewqlanPMOVcfX3USNErwKr7jwap+am6i7o9Y3gUMTYBOK4ROjALBfoIk13dEG68R5Fh6+tg/YNR+mfltPOZ76hzzqxTFgVKCONlTzY8DIeSZec+JVUHoWoOfjTW8AI7+WVp24+dcAMHLS4iIa7mhkfPQiO9Zyx/DxUWD3Aq5eGANGLjDwmj1i+iUAjPzeYAyUDX7/hafPzsIlta+o6DteQDmeuufOkmNZcixrnmnNMyxDjqfqeCUyI/NSs8u047nWKxzzh0wDpfaLq+sXVnQUFykGmmeZr7AtVznWa1z7NZ7jOs9xjee4xrVf49qvrtmurNmucKyXOZarXPu4CJqWo7OayKIhwbTneZ66NNBTRLb7pfxneqjItOW+wEMrlsKqpbBqLaxa8iumzIoxuayPLegiNxXIpMh1dc16mW38kGWiuMw2X+FYrq7ZrvMc1HV/nA+O88EJoWtK4r0hR2ZVwVvayOIGsWKMMyypgeMX1/F5qo7Xhm9pQnPqwE0FckPqnRK7J4WuSSGlCtoWU2LPtNQ7s/Np0RVTiu0o8KHa/88c/4Wx3WnUl5n2MhusrDkrPFeF6yxxbDmqlF/SUZoPzSkDN+XIDYl3SgRNCJzXuY6ra7YrbMuHTBPteLZloPnrPHBc4JoQQlNi7w0ZPKOgOz035chNam5I6pkSQ5Mi16TINSlyT1K3O0igKYmHRgxNiqAJEZ0+0i6/y+j985BnH5yKV9dsV9es/d2gcjI7DZVPUMnf3YzzneN8cJwHjvMcd8F3jPMdEwJwQgBOCsAJvmOc5xjn0p9GvTQlhm4qkHlteNkQY5gSDFOCZUqwTHGmMbq6gS3rwouawLwSnpN7b0pc00JwWmifFjqmhY4ZMTgjBmdE4IzYMSNyzIjsM0LbDaF9RmCbEdpuisFZifOW1D1PaV7pXVHBqxp4RQ2vamgYGpihhRlahK0P8CyE2JlSeAvOOBlKlA6/9NNTH0xBwXimfidZ3U7VtlO1OwPSX45MfYeT5yc7tz+ln9a207XtdO12urqVLG8myr14kboxfJjugFixGyt0YoVONN8mciSea+HZ5uV/fLCIYRGFCJMLcRmfkPMJOS8q58Xl/KRKkFKL8jphYV1UWhdX1sWVdUl1XVLRiSs6UVkrLGuEJY2gqOYXVbzC3RQp1Pyiml9Q8/NqXlbFy6p4GRU/qRQm5cKkXBRTiOJKcVyrcsskq9cnnvn7rwZjOW+8sY4UdL6c1pPVejI6X24DLvS2PwHoLj09H181BSsDx39m1T6sfGqBcjycJFHqv8Fk2qFsO5LrYIh4dKcVLXYU2rSPtfVIuhZOVcLJwOwB4PeqcihRCiXKIdXZEQDYuxwMpaqRTB3P2k6OAMBBkaPQiRa6tONPg3i+bWceBg4KbdQ/ydlxfIfQXxrccnf8vXMAcFacKoWTRevyM4Md2bfix9NlPF3BM1X5+wAAXJBlm3iOtDMPA1SjPlH3RM2DW8n+8bpdbg9LrSGxJSBceAt44saSJShdGdxBd+CyMefEylC0Rs+mL0bcRNUeLpkF7/fXGX1fTkhtEals7lsAAADAt685lK7Y2sTgvr4zK+EyiFdVC2PAKF8Ta0CxBqS4AAAXOLGmp1+FTzhbnniLM7hvDrjAjjbc0bpLfv6eL+ip+ZALr7mIuivaYJ8Edi3i7r59qceuhYiz73jqp3HME8DISQv1+zf14hgwyldFGy4icm3fIHDnfrUXeGouBEZMbwAjb0hrIF5z2nhP0S+P/FrR38SoQBVtuqKRa/sAYB9XHqlazJwn+qsdE5R0COX4gtSdFzvzAkeWa8tQv51jWrJMS45pzTMox1uzDEuGQc/HR+j5eJlvWuqZEkMTQud1vuMq10rV8R8yDR8wDZcY+ksM/QcDmIYPWcbLfXHSl841+9U1+9U12xWO9QrHcplt/pBl/oBp+oBp/JBtvsZ3Tkp8M6rg/EaUYc1xoZrE31VEtpV9x1P9ZFmwJ0HbQl+T76mtuSpsR5FlL7AdJQ5Y5tzXT6YdbymsWHK04w2xRR02q/RPSzzX+fara5Yraxa6judYr1LVNh+kfDDOB6/zHeMC56TYMy2DbyoDcxrK8Qnqh+/Uz+SWNojFdWxBhy3oIvPUHfXqwKzSf1OOzMjhGdl9yOGbCrQ/BdCv4z31fq/+Tz8f/8fHduB4e5nlqHDACtdV5btrfHeVCxbZ1hzTlFo1xJfWiQVt5JYqOCtHb0h9VIv+Os9Ba5Vjvdo/Ma5zqbsWqHraSRX0UxLvDRk1aYLeVKCzCnRWgd5UIDcVCNVCpxvp/afUnSLTUu+UxDMppjU/zLDshyp4WvZ909so8V/jDuw+KO5B6nMmha5JobuPa0LgopQ/ye8jcE4KnZNC55TINSl0TvAd4zzb9TXrNY7lKsd6dc16jWsbF4DTUu+cOri0Qawa4wxTgmlOss0ptimxo3m1n6rjb4id00LHtAicETtpJM4ZsfOmGJwRO26KqL+Om2JwTuKck7rnZdCC3LOo9C6r4BU1sqpBVtTwitq3ovIuqzwrKu+KyrOs8jJ0yJopInQkZJ6cCq3aiWai3J1iKY/9/tyhF35y6MWfHH7xJ4df/Onn8dyLP33upc/l+Zd++vxLPz3y0o93ePG1Iy++9vyLrz3/wj8994N/eu4HPzr8/VcPH32lz6sDDtG8Mnb0lbHvvTL2vZef/e4Pn/3uD5858tKPHvjzQ3/154f+6s8O/dWfHf7rPzv8lT9//iv/4fkHEVBEgwAAIABJREFU/uLI3/zFd7/6H7/7t//5e3/7X47+3X85+vd//f2v/fWLX/vKiw8+8MKDD7zw4N+8+ODfvPDg37xAP33gha898MLXHvj+1x74wdfuevr9rz1w9Gtf+d7ff+W7f/fXR/72r57/27987m//8vBX//Ohv/lPzz7wn575yl888/+w9+bvsSxnmWDNHzLMAL3AgGFo427A0E0vY/A0jLsbrpse29BgQwOGGQZsjG26wcu1773n3OUsko72XSrtUkmqfd/3fd+3rFWlXTrSOZLO/BBZqVRlZlRkqnSPuDfe5330pCIjvu+LiHq+tzIrM+If/89f/rl/+u4XPx/P101hQuEh5J4S+Ele5irI3UWFp3Rw8kJEe6K+Bt6uo2s8Ct5/POBI7lCP3fky4Hb9XqiwT65zV9yPFveixd1ovhXJ7YSzjWCmFkhVAsmKevg3RZ+dVifL/iThT1b8yYo/VQ2kqsFMPZzbieRb0eJutLgfLbVZ3I8UdsP53XB+N5LfjRT3wFI2EWC/uBsptCK5ZjhbC2UqoVQ5lCqGUoVgMh9K5kPJfDhVCKeK4VQpnC6HM5VwthrO1sO5Zji3E8q3wGvxrkTNFq2YgiWNJyuzJzZMkRV9YEnrX1B755XzXxKJfm/Qt6wNrBlCEnNU7khpvHljqGyJVi1r3xGJvjMVrZnCFa2vqHBlt6yJdVN0xRBe0gUXNIEFTWBZF1oxRtbNsU1bUurIKNx5ja+kDxDGUNV0/QZavc2GLda0xZu2BH0pmx1qLVtLtGGO1s2RmilSM4WrpnDVFCbfWTeFa2awLs3690Si701Sq9NEm+ZowxypmyI1U7hmIlewqZkidVOUXMeGXAc32jBF6qZI3RSuGcNVY7BqDFaMoaohVDWGqsZwzRiumSJ1U6RhioL6TXN7xx1y051Iwxiu64NVbbCi8VdUvorCW5G5iS1X+fqBO3N+3pib1eemtNlJTXZCkxtva/yErjChu/lc/XZgAIjWOvgt0/kBuF8qNj2cNzwgf5In+YAieRlEXhM/pLJqO8W3ZV795rjyh5OaB/Om95cdjzf8z2SxcV2uU+OpZ+4C4LmwXfJnY2t1xlIhHw2ztp8La2+PNqotjZEyXxjT5MbU6TFVckQRe7YdfLruebRsf28RZH8y9b+/YP1gyQZ+mv0A3NpdsLy/aH204nyy7umT+Aek4WFFfEyTBu8CTOqz45r0qCoxcuOprsigLDwoDQ1uh55tBwfbJH+w3/T3S3z91J1/VXJcl5sxE2JHc8W3T74iH31Nz9whj+1Yh8abq3PWutjeENvr85bKrKk0rc9PajPjquSIPDa0HRrY9Petex6vOD9YslHq+B44WLR9QN0Gb/+I0xZ415M1z9MNX5/EN7DpBw/BPdsODm6HwKNwFOlj20f+7u56vOJ8tOIk796vXN/Gp9i+7reTN/DF5nfF5vfE4CNhfW/B+h64Ib9oBRE+WrI/WraD392frDqvueJ8suJ8DLjsfAK44nyy4ny64nyybP9gyfKe2PhwVvdgRvdgRvfOtO7tad2DOeMHy/a+De+gLDKmSoyrU1O69Iw+O6PPTGlTk6r4uDI6KgsOb/mfSdz9a/anK7anq/b+NXv/mmNg3dG/5uhfsw+s2vrXbP2r9oE128Ca7dmafXDDOSRxDUvcI5uesS3vmNQ3IfNPyPwTUu/4tmd00zm66RyROEYkjuEN++iWa0oZFOuTy9a8xF2RBXacuePC7ovG0UXj6KJxfNnk4A6dJ5xsMbhzcrFzfLFz/LJ59LJ5+KJxeN44uME6xf2zGuDe8+ru88ruaWX3hGidEK2j0s5hsbFfqLfy9R2KhXqr2NgrNQ+InSOidVxpnVRaJ9Xd00rrpLJzTDSPyo3DUv2gWNsvVHcL1Va+wsJCdbfNVr7aKlSvS4q1vWJ9v9Q4LDePiJ3jys6xM9FQegmlt6L0EgoPofCUFJ6SwksofcTByQuRJlBrL4NT0wRran9NwLtz9sQOdSlP+1V+L1wAq83vRwp7kcJuON8K5XaC2UYgXfMnK74E4UuovvY//cYTE+GNE94E4UtUfEDm02Cxmt1IYS9SpC86ux8u7Ifbi9GCrW4ihf1wYS9S2I0UdsP5nXCuEcpWg2kimCoGk4VgIheMZ4PxbDABmAsm8sFUMZgqgwV0g9l6MNsMZHf82R1PqgF+SjcGSmpPVmpLrBsjy7rAosYvVnnnFO6+7/870Z8sLGoDK/rQhikmtadUnrwhSJgi6j8Xif71QMAUrugDZaU7t21LrRmjS7rQgjY4r/LPKrxzSt+CNrisj6ybE1u2tMyZU3mK2gChD1aM4SoQVEsULDsDVpermyN1C7V1DX0JOWqh2XDNGK4aQhV98JoGcgW6ujHSMEXCD35N9OerTVOEpDHSMIYbxnDdEK4ZwjVDuA4I1qM1RhrGaINWp64P1fTBqj5Q0QEGK7pgRR+s6kM1PdmwYYw0wBL3bTbA1nnUa/Eqf0Xhq8g9FamnsuUiJNcL4OTm9LlpXXZCkxlXZ67XstUVJ/SFSUNhqv1+/JgqOaKIDsnC7QeSgwNbgX6Jr2/D82TN/WT1+uKJRjvt2NlOtc5HK85Hyw6Q5d8Tmx/OGx/M6t+e1v5wUv3WtPah2Pz+iuuJJPBMHme5jo+dg9v1G6ETUoq8e0tusA1MU+xozjua8/bmnK0B3u8i11sFGq8rjmmL49r8uBas3ZsaUcQGpeGBTX+fhHyEivZEla9fAqTC83TNDXr3dN3Tt+kf2A4NymOj6tSkPj9rLs9ZiBlTccqQn9BlxjVp8Lb9aJtgkZYxdWpc0yZ4gV4RG5JFhuTREWV8VJ0a12anjMU5W3XR1Vr1H26ETsAbgx/q+/GxF3zHtkPjZyy1OVtjwbGz6NxZsNfF1uqchZg1lab0uQlNekyZGJFHB7dDA5v+p+ve9nW5t2/d27fh69/w9UuoMacei/M83fD2Sfz9m+A1h8iQPDqiAG+4JcfUYEUm8D5eahyMvAq8oxElH4HcCvZvBsCrnv2b/v7NAIP+/k0/w6/ryZr7SfsJOxq9fRteEOqAxA+evR/can+BI5+rDzzbCpLcDA5uBQCfSXx9a67HS7b3wXsWc/oHs/p3ZvQP542PVhz9Ev+wPDqmTk3qstOG/JypNG8uzZnyM4YseApvXBUdkYeGtwODm76hbd/wtm942z+87RuW+oe3fcNb3uFt7/C2b2TLN7LtG932jUn9Y7LAhCI0qQxPKiPTquiMOjajjk6pQpNy/4TMO77tGdtyjUqcwxL72JZrShkS65PLtsKGuyoN7CijB/rUqSl7bs69MOdfWPIvrYWXtjbthZf2IkkHjc7iS2fpmq6bdJdfussXrvKFu/TSVXrhLJ47C+eO3HNb9sSaObKkjyzpQ0vq0JI6NKcOTYkDY2LfGN/XR3d1kZY2vKMONlWBhtJfU/gqci+x7S5InJk1W3zZEl40BRbNgSVzcMkcXLaE1+zxTWdm21OQectyX1npqyh9FaWXkLlLUkduy5bZMCfXjLFlXXhJE1y8+Sr/oia4pAkuaUNL2tCSNrikDS5qgoua4JI2uKwNLevCK/rouikhsaS37DmpsyBzAzmvqPxVlb+q8lWUvgr5gJ2/enj6QqS93i6M3IFG7a/wXa/eGm/aEzuO5I4z1XKnWp50y5cBi+Hshagd5wp7YJXZYKbpT9d9yZo3WfUmKt4E4UkQ3gThTVS8iaovWfWlakDjQ/ndcH4vXNgPXy8pfxC+3sXuJvN74fxeON8K5RrBTDWYJoLJYjCZDyRygXgmEEsHYplAPBOIZwKJXCBZCCTLgTQRSNcC6bo/0wRL1riSTXu8bolUDcGyypOT2lPrpuiKPrykDYrV/jmVd07lW9AElnShFUNkw5yQOjIqb34E3Ln/a40hVDWEqhp/We7MbViTS4aIWBOcUwVmlb4puXda4RNrQiuG2LolueXIyF15la+sDVZJpQw3jKRsNww0ATZGGiawyx+5EW1789kIWU0XrOmCVW2gog1UdMGqLljVBcHOMWDDmM6tYsDGdLpwncaGjtytrmEINw3hZnvzuoYuVNcFa9pgTRuoamjUBqraYE0XpNo29e2th8GBLtzUhRvaUF0TqKv8NYWvKvdUpZ7KpovYcJZXbeVlS1FsygOBn9Rkx9WZMVVmTJ0d1eTGtEDji1OG0rSpPG0qTRkKk7rsuJYUsDE1+drbiDI+3M6n7ctW8k41ePoMLFFyg1vU89W+p+ueJ6uuR8uO9xet74rND2YND+ZM7y/ZH6976b/HL3v3wfKu7Xv157RFWo7B0qTL5CItuwuuXbGzNW9vzljqk+31VmmP1oO1fYpThmJ78b70qCo5ooy3+xIblseGFbERRWxEESdfh9sOgleqyHfoFfFRdWpCn5sxl8Hi8/O2CrleHljnzpAn38kGL9aD1X9Npeu1Xwz5yfYacBO6LLnqjrUidjSpG/XkAn8f3jp34L1EfmNLe3GO1Ph5e3PR2VpytRadO4uO5oK9LrZV58zlGWORVHpVckQRJ9+gk0WH5bFhRXxEEQfKPapMjCrjI/LYsCw6KA2DN+7IOsrEmDo1rslM6rJTenJpmhlzadZcnjWXZsylGVNxxlScNuSn9LkJXWZcmx5Tp0ZVSfBM/ogyMaJMjKoYVIK3NxMjiviwIjZEfjkIg4807X0/kuAdvBFFfFQZH1MmxlTJcXWqzSTgmIoieMM+PqaKjyhiQ9vBgQ3vkxXHo/ZrKQ/FpvcWrU/XPQPboVFVclKXnTYW5szlBVt10U4urTNvKc6Z8jP67LQ2NaFOjKvj4+r4pDo+qY5PqBOTGnAQm1DFJtUx8q16dXxam5jRJmd1qTl9et6QFhszC8aM2JCZ1yVmNdFpVXhKEZiQ+cal3tEt15jUO62OiA2pFXtR4qlJAzuq6IEudWrMnBuz5+bcC0vuhSX/0pJ/aaXxWu/bdDAlv/jSWewUexep8S+chXNH4cyRe27LndqyJ7bsiS1zYs0cW9JH5uShKXFgiO/ro3u6yO4NjfdX5b6K1FPaduclzvSaPbFqi6/Z4mv2+Jo9vuFIbrqy256C3FdW+CsKf0Xpr6r8VaWvIveUpa7CtiO3ZctILKl1U3zVEF3VR1b0kRV9FHDVEFs1xNaMJFcNsVVDdNUQXTXE1ozxNVN8w5yUWGkC7ykrfRW1vwY2BaUIrt5vrFdPKb06UFP5KyofofSWFZ6Swl2SuwpyV0HhLio8RZW3rPERGn9FF6wZwuStWrCIqT3RtCd3nO21Vz3p6/1pArm9INgFLtPyppveVN2dqLrjVXe84orTNwiquhNVd6LmTTV85AKxoDl9K1hyQfib3Avk9vy5XX9mx5+u+1NVX6LkTRS88Zw3lvFGU55I0htJeaMpbzTtiWY8sZwnXvQkyp5ExZOsuVMNd6rpSjbt8YY1WjeGq7pAWeHOb9tTa+b4sj66qAuLNcFZlX9OFRBrg4u68IohtmZObNkzCndB4yd04I50gND4CYWntGnPrhgT85rwjDI4pfBPyLxjUs+EzDejDi3oYqvmlMSe3XYW5J6y2l/VBOtaGjXBmiZALkaoCVTbd1ka2mBDQ9tTQBOoq/216+9uXgI8Pgk+Typ/TeWvq6nlC4N1TbCuDjbUwbo6WFcFWKgm2VAHGuBY5a+r/DWlv6rwVRXeisJL0FhR+KpKf1XlpxkJNkgGGqBE4a8rfDWZtyb1VLbcVYmzsu4gVm3lJWtxwVyYNeSnddlJbXZckxlVpUdU6RF1dlSTGwUabyhNGqn16olpU4lcqYaiAazHnp/U5yZ1WbAq+4Q2Mw6oSTM5pkmDi9pRVfttcvKqzvN4xfn+ku39JfvjNU/fZvCZLDaizkyZSvOOxrLvYD14vBECS7iDBdWfS8KnEtpKq+SmZN59+lps1xp//Yo8tQ4/MWshZszlGVNp2li82Z38pD4PFlidJL8EJMBXmRFlYlSdGtNkyDf4bVWwAPuCE+yPUp0D69VbiBlzedZCzFmvN6ER2+sLjjq5mL8VfCcozYA1dK2VOVtN7GgsuVsrNzr7Ya5XT20EwGdsaesETxorM5b6vL2994x7d8kNxL65AAbHQsyYStPGwqQ+P6HNTmgzE7rspA6sTlOYMhSmDYVpA1ieITehy45rM+D9+AlddkKXA8vkzZhKs2aC3ArBXltwNNqs0zdKmLWUZ8yl6etdA8DqN+CjC9ZcIglct2c/Bz7DE1rKL41UJCAYsPWAsThrLM2aSrPG0oyxOGMsgq8aM6bijLE4YwTr5eWnDflJXWZMFR+WhZ9t+vvXPU/X3OC1vcdr7v6t4LAiPq7LThtLsxZCbK8tOZvLrp1lZ2PJWV901BZslQVred5SnDXlZ42FOWNhzlQgF9Ix5edM+Tljbt6UmzPl5kz5eVNebMqLzQWxpbhoLS1aS8vW0rK9vGIvr9hKS5ac2Jie1yVnNdEZdWRSERyX+ScVwVldfMGUXXWUJZ66LLirjB5qk6eG9Lkhc27MnJMX9LkXpN7nXljyL6xt2vIvbPmXtnyn5NsLLx2ANL13Fl+0ee4snJMyn39uzz235U7t2VNb9sSaObGkjkxJVo2vK/01ha8q8xFST2nbXdh0ZTedmU1ndsuV3XJlt9w5qacIBF4VqKkCNZUfsKrwVuTustRV3Hbkt+y5TVtGYklvmJMbFsAUoMSapjElsaQklpTESpZv2jLb11fwZaWvovLX1AH67t4ktUGwJ024qQ03tR3iEQDiQSl9WeEpKz1llbes8hNqX0UbrGmDNX24bog0TRHy51hLrNneJnWn/Qv9riez583uejN73uyuJ9PypFvuVNOVaDjB/i7Rij1asUcJe5SwRyuOWNURqzrjNVei4U41qZ1qvVnA/Tb3vNk9D8XMniez197cvelO1t2JijtWdkULrmjeGc46wylnKOUMpRzhlDOcdoQzjnDOESk6oiVHjLDHqvZ43Z5o2OJNS7RhDNf0waraRyjchS17ds2SXDbGl/QxsS4yrw3Pa8MLuuiSPrZsTKyZUxJ7VuosKnwEuEOi8BIKD7HtLK1Zs4uGxKw6MqkIjMsDYzL/yLZvTOqfVoXndfElU2rNmttwFLfcZbm3qvDVrumtyr0VmYeQuQmZm5B6KjJPVe6tyX01OVmnDo5l3prUU5V6KlI3se0mtt3ElpvYdhNSNyF1V6TuqtRTk3lrMm9N5qtJ6fTepIdGlsLqtruy5a5suYhOuoltd2XbXe1sS+O2p7rlrm66qhJnZcNZWbMTKzZi0VISm4rkdnOa7Jg6O6LKDCvTQ8rMsCo7os6NagpjuuKEvjxlIvedo7YRA6LFYGXOWpmzkAvEgm3WZsxlFprKMyawxlxxklxvnHyzfGAr+HTD93TDN7AdHpTHR1TpcX1+2lwRO5rL3gOwxepG6ERCbsVGLaVObYF6tOo/BBuj0XVo7OZ1fHtvtOqctUbuf2oD28QB3uyUpTJrJqaNZKjgmntCn580FKZN5VlrFagytc/eAtgMjdx6ri6218WOBrULS3vnHlL2xI4GcNqutrPoai179lZ9h2uB4/XXue8cv7G93tPPCPb0ay44W2Bv+GVyL3Zyc7kFR4PUYEtl1gz24qvMtffio7G9Xx/5sSFrzloqc2CjATCq1O7G1C7G7ha14SHYlU5sr83bqI9uh5dOtvcJbH+GLaRTGtthWCp0gwv2+jVt9QWwhu41yXXvZ82lKUNuXJMcUUSHpOHB7dDAVrBfEhjYCg0r4uOazLSxNGepim31RWdj2d1aaS+ZvOJuLbt2ltqr6y/aq4sOkksOsDY+WCiX5DKgs7birK266oDr7vq6p77uqq84iGVbcdGcExvTc7rkrDY+rY7OaOJiY2bZWlhzVTe9TWlwVxk91CROdKkzfepMnz4zpM+NGZImwOy5KXtuzp6bs+cWwNy5JXdubdOWO7flr2kHLJzbC+cOivlzR/7Mnj+z55/bc6TM27KnpMaT1/G72khLE2prfKCu9NeAzMt9hMxblnqKgDJvSeYtybxluY9Q+qvKQO3GdZS/pvRXld6K3FOWu0tSV0nqKkgd+e0OOvPbzrzUWZA6C1JnXurMSx15qSNPHjvzMmdB5irKPeX2LfqaGvzg3rm9XFMbat68jg81aLvW1MhrxPYPCUovofQRSl9F7auo/RVNoKYJUneDG4Yw+EW2YYo0wLbl1njTFt+xJ1qOZAvsPOsETO44Eg17rAHWaLNFq9ZIxRKuWMIVS6RijVRt0aotWrPFGvZE05HccSbJnemdqV0WJnedyd32SuxgJ9aGPV6zxyq2aNkWLtrCeVsoaw1krIG0JZC2BDKWQMYSzFqCeXOoYAmXzOGyOVI1R6pm8ifkui5Y1QSqSm9Z5i5uOfLr1syqObVsSi4aEguG+II+tmhILhmTK6bUqiWzYctvOYtST1nmIaQe8OZ3ecNeWDFnxPrktDo6qQiPyYNjssCINDAqC04qo7PaxIIxvWzOrdoKG47ylrOyRYpoZctJbDqJTWd5w1HecJQ2HKUNR3nDWd5wliVOQuKqbLoqEldV4qxInBWJk9hwljcc5XVHed1eXreX1u2ldXt5w17ecBAbDmLDWdlwgr8Cue4g1h3EuqO8Zi+v2cprtvKqrURxzV5es5fJOhyO1h2VNTuxaieWbcSSpbxoKYnNpTljcUZfmNTmxjXZUVV6RJkeUqQG5alBeWpQkRlS5oZJmS8BObyWeVIRARs0tgtJ1azNUbR2sDpnrc5aq7OWyrSpTP7Yr8mMqpJD8tgzaeSZNDIkj4+oUqOa3IShOG2uzNsbi+69ZbAveHtb9xv0Ha74Dld8bRFy7s47dmatjSlzbcJAjGqLI5rCiKYwoimOaotjutKEgZg2VWdBd8gNzptt0nZ8Bx2xVmfMxLSxRF7fGwpTxuKUsTxtrsxZa2C/1EX37qKrtQj2Mqebom0Vv+jaXXSRUkRWptw5muLrHeX3lj379A3syX3QPywKGtviqLY4qi2N68uTJvJSfsHZWnC1OrvsbIodTbG9MW+rg48H+DiBMReDneYd1+NPfn7IzxK5Ib3Y0VxwUKNK3TC4lvnOubj+iFIumgwy5t1G+wrIymuDzYU2Fx3NRdq/C47mgqOxYG+I7XWxrTbX3tQAfK9t/y4QHZLHR9XpSX1hxlSeozZ0cLeW3btgof5lz+4ykHlyf4fGorOxBOgiD5ad9aU2l131FVdjxQWWwd9Z9eysX7Ox6qyt2Ikla2nBnBcbs/OG9KwuOadPL5hzy/bymqsq8Ta3Ay1ZeF8ZPVLFjjWJE0AdYPJEnzzRJ0/1yVOwc52RRlOapBkwc2rOnFratAJmAZ9bs89t1zy1Zk9tmRNr5sSSOTGnjkzJQ0N8Xxfd04ZbmtCOOgQu4snr+LbGV+S+isxLyLyE3EvIfYTcRyh8FYW/qvTXOu+V+msqf03pqyq9FYWXkHvKcndZ5i7J3ODt/5LMVZK5S3I6PWXwhQBUowoVnrLSW7kWePJ+bUMTamiYe8ve2I2OuptPF3iSRFvpK2pfRR2ogjv+2mBNE6xpQzVdsK4L1fThmiFE/pZsijTM0YYl1rSADU7iTWu8YY01LOC57nDVFK6C7csMIcIQJG7uZlYzR643QSc3NIvvWMinz0iaKUbB5uUNU6ROmg2WDIGCwV8w+HMGX0bfps6b0fmyOl9O5yvofEWtv6T1E5pARROoqgNkl+VeQuYubzoLG/b8mjW7Ys4sGdOLhvSiIbVgSC4aUovG9KIxs2zOrFpza7bChqO44Sht2Etr9uKarbhiyS8YMrPaxKQqOiYPj8pDI7LQsDQ0IguNK6JT6visLj1vyCyYckvmwoq1tGotrViLy4CWwqKlsGjOLxrzC8b8oqmwaAYlhUVLcdFSXLIWl6zFRUuRLDQXFsyFBVNhwVhYMBUWTAXQZMFcWAANLcVOmlm4wEVTQQxoBMzPtyk2kqcWTMAdS3OxqThvKs6binPGwqyhMKMvTOtyk9rcmDozqkwPK1KD8uQzWXJAmujfTvRJEwPS1IA8NajIDCpzI5r8mK44YShPGitTpsq0uTpjqc62t5MHj1jPWutzNNJO1WattVlLlcbarKU6Q9FcmTaVJw3FCX1hXJsbVaeHlclBeXxQHh9SJEdUmVFNblxfnDQSM5bqnL0hduyInS2gHAuuXRpbC87WgrMldrbEjp05e3PWWp82k6upj2qLQ6rcoDI7pMwNqXJDqtywOj+mLU4Yyu0e1WattVlbfY5OqiM345zQ5Sf0hQlDcdJQAjI/a63N2Rrz9ua8vTFna9CNzFrBQWPODiq06Wi265OO2k2AFDWve8rS2Q+ZvMY2P0L7Xjhrrc+SnSL7O0+NDxheS436LM1Zb46/jRr/Gu3DQ37kaKMKhuua1NjemI7rj2Wd6Yh93lFJN3hj9m98GwDfbi3VWQsxZSxO6HJj5CMgyWFlYkgRH1YmRzXZcX1+yliaMYO7GnWxvXH9LcFx89hOsb7Q/gFowVFfpHHJWW9rf3PZ2Vx2NVYAnfVlR3XRRixaiwvmwrwpN2/Izukzc4bsgrmwZCutOCrr7rrE29zyt7aDe7LQvjy0Lw/tK8IHYAdbZeRAGTlQRQ9U0UM1YOxQHTvUxA7BdnaAOsD2vnbU7naG5JHxJk2pNpNHpuSRMXloTBwYEgf62J6OunwPNpT+uvL6hmtV7q3KvRXAa40HJb6qwlcFP2UqwbW7v6r0VZX+mtJXVfgqCi8gIQdK7ynLPQTFmz+JEgryUXnAsgJcvntJXVb5qip/tf0DfP2aQdresirwDJ6vcq3oXvLCXeFtG+0koSAv6wmqlcpHqPyE2keo/YTaT2j8hDZQ1QWqumBVH6rqQ1XwPJo+WNUHq7pAReuvaP2E1k9o/WWNr6TxlTT+sgY09BNaf0Xrr4DmNNZIBqo68NgXyYrGT1Ltr6jHna2YAAAgAElEQVT9ZZW3pPIUVJ68yp1TubJKZ0bpTCucaYUzIyf/ZuXOnNyZk7sKMldB5ipK3SWpq7ztLG05SpuO4oa9sGbNrVhyy6bMojG9YEiLDal5XXJOn5zXp+b1KbE+JTakF4yZRWNu0URywZgTG7Nz+vSMJjGhio8poiPSyBB4eWkrOLgdGpZGxhSxcVViUp2cUqemtZlZfXZWn53VZWd0mWltZlqbnlKnp9SpSVVyQpWcVKcmNakpTXpSk57SZKY0mSktyUlNZlKTnlSnJ9XpiTYn1ekJdWpCnZ7QkJzUZK6pZuEEjOlxQFV6XJViY7uCOj2uTrMaAc3HVOlRZWpEmRpWJIfkyWeyxMB2rG8z+nQz8kQSeSyJPN6IPJJEn2xGn27Gnm7F+6RJIPbDqtyIJj+qLYAH8cb1RbC92IS+NGFgUN+VwEJxXFcY0+ZHNblRdXZYBW4kJAaksQFp7JksMahIDinTw6rs6PX3DAJwykSAZVhoJNpny+P60piuOKotDKvzQ8rsM3m6X5rs2070SZP90mS/NDkgA53Kjmry7R6VJgzlm6SF2o5zRJ0ZUWVG1Nn2Iwv5MV1hXF8EC7heN6QPhYG0PGkoTxpvsqOyoUSrRkwaiSmyp8zOfsgUMLbkbz3j7REA/Z2kD1HHp4L5QYJ8llhGlYyQGtvJjuno9FJmmXEen+EOg0xr5esIDaVJfWlSX5zQFyd0hTEN+XV2SJEYlCcG5fFnsvigPDGkTI2oM6Pa3LiuMKFvf4k0lqeNBMUpIzFtKk+bQDnJGSP4/YvkLKCZmKNoIeYtxLyFEFsIsYWYN5fnzaU5U2HOmJ815Gb02WldelqbntFl5gy5eVNhwVJcspWX7ZUVB9jdrr7hrks8dYm3seltbHqbm97mlq+5DehvSv1Nqb8p8+/IAjvyNhVBksr2BneqNtXha2rCLU2kpYm0tJGWNrKrDbe0kZY2vKMJ72jCO+pgQ+mvK3w1ua8q91ZlnoqM/CWUkLnLUjbKAD0ERXn7L41lmYesKSebgMv0Mp3tK3jA9gU9jddCTJN8JU3NAQ9OXohkzgKTN34MoH4PaBP8YLDtLEhdBakLVCtInQWpKy8DPxiAd/BdBYWrCJ7UU3iKSoruosJdULgKClde7uSmqyB3F+TuInjijyIw3hkqCMyRB88ybNlzm/bspi29aUtLrCmJNSmxJDYsCfB0w7o5sW5OrpmTa+bUmiW9Zk6vmjOr5syKObNiyiwbwVV7SqxPzmsTc9r4jCY+o45Pq2LTquiUKjqlik2qolOqWJvxaVV8ShWfUsUnlLEJZWxMER2Rhoe2QwObgQFJoH/D37/hf7ru71v39W8EBjaDA1uhwe3w4HZ4SBoZkkWHpJEhaQSUPNsKD2wChgY2Q+2D8MAWyWftg3a1a/bT2HlW0sl+nuy7ZqjNcF/3VqE+SahvI/R0I/R0I/RkPfh4PfhoLfjBauC9Ff97y753l33vLvkeLvkeLnkfLnsfLvneXfa/txJ4fzX4wXro0Ub4yWb06VasbzvWtx3vlyYGZBSTHEwgUZrol8b7t2N9W9Gnm5GnkvCTjdDj9eDj9eDjjdATSfjJZuTpVrRvO9YvjQN3z+QUUzSShQPy5IAs2S9N9G3Hn27FnmxGH0siH6yH3l8LvrcafB9wLfjBWujRRviJBHQq3i8FneLoBRUkiHMr2ge4HQOBcbTt5DNAKn54TXkHU6+PPMf2xgeG+rSQzTk+J/Ch6/jYdB0rcnghI3w7osTM0uqZLPFMmhgAn6XNyFNJ+Olm6IkEMPhEEnq6GenbjvZLYwOy+DNZclCeHJSnhm5yUEFySJGkc1hJMTUCqEqPqNKjbY6p02Pguz55wZAaUybGlIkxZZzcbU8eG1PGxlWJCXVySpOa1qVn9Jk5fXbOmCMf3zPlF8x5cEdzyVJcshSXrcUVQFux/dMhyXV7acNRBr9ySpxlibO86Sxvuso3HyQiKXUTUg8h9VSknorMQ0iBNrsJqae87Sptu0pbzuKmo7DpKEjs+U1bXmLLS+w5iS23actt2vMSe15iz2/e5BadDpKkNnXQzvgxnpsdKtxWZ1IBWXVc5iocnJyLNsxJCNeZNN3gGsnEuimxbkqsmZLgAOgo9cSgxHzNDXNyw5zYaDdZNyXWTIk1I/l33ZhYN7b/pU61uWpMrBquuQKoT6zoE8v6xLIebEwUW9RFF3XRRV1kURdZ0IYXNGGxJjyvDs+rQ3PqEPg7qwrNqsLtv+EZZXhGGZ5ShCcVoUl5aEIWHJcFx6SB0W3/yJZ/ZMs/tOkbkviGNn2DEt8ziffZhvfZhnegzf51b/+ap2/N83TV/WTV/XjZ9cGS8/1Fx7uL9nfF9odi28N528N5+0Ox7aHY/u6C491Fx7sLjvcWne8uOt9bcD5ccD5ccDxcsD8U2x/O2x/M2x7M2R7M2R7M2x7M2R/M2x7M2x/Mg1Ntzl3zHU7amHx79kPlW23+cMYK+OaM9c1py5tTlu9PWb43ZfrelOm7k6bvTpq+N2n+3pT5+1OW709b35yx/mDW9sM5+1vzjrfnnW+Lne8suB4suB4sunvGBdc7C653FpzviJ1vzzvenre/NWd/a87+1rz97XnH2/OOt8XOd0i/PAy+LXa+Pe98a97xwzn7D2Ztb85Y35y2vjlD8gczth/O2t+aoxuHdMpFBgkqix3tA+c7C3cwIPeZvR/bjxtdDxddDxacDxYc74gd74jt74jtb4vtb8/b3xbb3xE73llwPlh0PVh0P1x0P1zyvMvKZc97N+h9b9n7/so1PwBc9X6w6n206nu06nu05nvc5pN139M135N135M179M1z5M179M175M1z9M1z9M1b/+Gb2DD90ziB2/8D28Hh6WhEWloRBYelYVHZWDvu8i4PDKhiEwoIpPK6KQyOqWKTqui0+rYjDo2o47NauKzmvicNj6njc9r42JdAnBBn1jQJxb1iUVDcqnNZWNy2ZgCXDGlVkypVRpXjMkVQ3LFkFgG1MeX9PFlOg3xFQav5cnYSbqQXasbgx0Ke4MMOYbL94Y5uXd0JlpUBwCpd/CD6Wqi0GAyDmGeznqbN0oShWabNJt5HozdYD2Wr0dznIxk65FsLZKtRTK18DWrofQNBimmKoFUJZCqkMvtASbAQj3g9X3CGyc88bInXvbEyp5Y2R0ru2MlQFe05IqWnICRkjNSckSKjnDRTrJgDxdsIZL20PUxndZQwRrMC6OlKwOvizlLIGfxkzS3aSKZpfH6rDmQM4OGnR0p9IhcA8X0iO63Y8DJXnTQEshZAijGEea0lwNyz9nbsf24sfsHyRos3GCInbR8VbSFirbwDdo7GCk62OiMFJ20A2eUzJ+uaMlN5tWyO172xAlAbzsD+xKEL0n4khUfuShqxU/m7WogVQ2maPk8XQuma6EMyXCWZIRirk6xQzti3LICzsLJpoA8CVVbVnUOpqvXq+jQuHt4KpqUWCcl1okNkt5Y4Z1HQ5/+tTeE8zNvfPozv/3pz9zCwkeGn2EjjzH8GAwjdGR+GfDX/wHy1974ZY4u/wPu1D0hHtt/YPz8LRp+yLwZAPcn7b7xnUdD3liB0nEg65MS687+sWhgXjUwr6QYiOc/9au/ib6QLQYGBgYGBkavcHZ2ViqVqtVqq9Xao2F/fx/8pXBwcHB4eNhoNH7+V38jEM/3zyspAkFvtA5E746s0+kJpX7mFz/zuvuIgYGBgYHxcYQAjf+ZX/g/PKHUuyNrHaw190Q/eDpP8c2ncw5//Cc/+auvu48YGBgYGBgfRwjQ+J/85L90+GLffzLz5tNZOquNlujv35ug0+aJ/JOf/fTr7iMGBgYGBsbHEQI0/h//zC/Z3OG/ezj6dw9H/+7dMYpEbUf03x+M/i2NFnf4xz/xi1y+9W3cdSfv2lFPjH9oo4GBgYGB8TGBAI3/sZ/65xZX8FtvPaP47bcGv/3WIFFtir799jCdFlfwx3/6F4AnVvX60FTtw9d4Xu4oC1jmP+bdx8DAwOghBGj8//qTP29y+P/m+303+GZfudoQfevt4Wu+NWxxhX7sp39BxC1dr1Hj7/S6ma9lLO0AeBwwMDAweggujT86Ojo5OTk6OmLR+J/4pMnh++vvPfnr7z2ls1xpiL719gidFlfox376F/UMUO5Zr1/p1VjrQwQbUt5V4yH/8vIL6S8XuKrB7UMa8rKDaARuh7UjvPwKGDcMDAwMDAhYNf7w8PDk5OQTn/gEXeYpjf9ffuKfGe2+r3/38de/+/ivaSxX6qJvPxj99oPRb71D0uIO//gnfkmEoGEiDqnoWoHVIPyYCxDp4lvIS6LgmgePja8c9mp87uIYMQwMDAwMDEQwNR4I/I/8yI986lOf+sIXvkDJPKvGf52h8eN0WtzhH/+ZT4uESrL+prTrGeiw01EuWMM6/HLZZ+0Furuu9btqITNOuP2ejA+6Hb71EcPAwMDAwEBEh8YDgf/RH/3Rz372s9/85jcfPnz4gx/8AMg8l8ZTSl+u1EX//d0Jin/7cMLiifyjn/1lUY8uu29jhNm2Q3hE3BovIDC+WtXV7G20UNj4IAYpwGav+oWBgYGBAUeHxp+cnLzxxhvf+MY3RkdHV1dXZTKZTqeTSqUnJycdGv+17zzqkPlypS76u/enAf/H+1P/4/0pqzf6T37uX4o49FLEUx74ahXcoL4NVheCA4PYgYBXf9HNwu107RffeCBBIvrlO24YGBgYGBCwXsczcfM6/pNGu+9r33n8te88/vp3n1AsVeqi7zya/Xsa7b7YP22vc8elAcx0zyoYHU303ILNtIkuG1yVu9rv2ruuTtH7C6nf1QVXH3sVKnr8XK34dg0DAwMDgwsC3p2jazxd6UuVuuj7fQt0OvyJ/+1T//Z19xEDAwMDA+PjiJ5oPJD5UqUuemtwheIPB1ecwdRP/8JnXncfMTAwMDAwPo7olcZ/7TuPS5W66N0xybtjkodjkoejkoejEnc487Of/uzr7iMGBgYGBsbHET3W+EfTsg+mpCQnpd5I9p/9yr+/TXy9+l2W9afinlj+cNDz+BF/fUcvRy+EVIDXF+YCAwMD42MLgRpv49D4p3PKp3PKJ7PKJzOKxzMKXyz3yX/1m8AT11Nj8GesOh7OQmkCt4Nu/P6IB2s8fMODN++JnDNHr+uQ8uoUejBcId23mcXAwMC4UwjW+L/6+0csGt83r+6bVz+dUz2ZVT6ZVfhi+Z//1d+knN1SluA14Rmcrzzw8n5HENCjrga5mqNrPDwYVhe3NM7XCOspSN8xMDAwPqo4OztzuVzLy8uDNzE0NAT+UlhcXPR6vXSN75B5cB2vejqnfDKreDyreDwj90Vzn/xXv0E545VbBVdGUUQU4/dHCViDp/8VYAqu9+iAh8flghkAl3HWyOHxcLmABIOBgYHxkcTZ2dny8nK5XD5tA7wQ32q1ms1Wo9Gs1xuVSjWfL/j9wZWVFbAnDVgDh8a2xj+elj+aln0wLftgSvr+5LY3kv05Qb/Hs0oRSn0RTWMgGgARGFabEL9cAsOrPtwOq3TxHaKOysKaC3CEGAa8FWReII64PgOIXRbQkK8LDAwMjDvF2dnZwMAApe6Hh0f7Bwd7e/ulEpHPFzPZfDKZCQTDJrMtFIr09feRGs91r/79ia33J7bem9h8d1zycGzDHU7/7Kd/vcMlr8yLno7hTSDCgHLM5VTP0GkB9eHlzPHR39R4lFBZg+laATI1rCVwoITBNXe8ImE9JWy4OoYdsSF6TQwMDIw7BdB4ajG7/f2D3d29nZ1WJpNPJNLRWCIUitodboPB4vcHrzWea527B6MbD0Y23hlef2d4/e3hNVcw9Ylf+IywBE0/21U5umZwiJYgKgGzC0wB6Nod1vpd7bBGxUu0IAPIFTncKYpHeAWqDnpUzMEX0AWu2Lg88hpn1lYYGBgYrwuUxh8fHx8cHAKBr9ebiWQ6EokHAmGPJ2CzufR6s88XIDX+J3/eZPdR28Z/o81ypSF6a3D1rcFVsADOD54tO4PJn/oX/45yBknZTHAlSniCRmyFkv1Z0z1TZjq8s3cGWh9uh0tmeqsiiAKJ7h2lAlcd9HlHccEKSGWuIJmTAjfFFQlKOQYGBkZPIEDjf+yn/rnZEfibN/vp/OYPBsrVhuitwZW3nq388NnyDweWfzCw5AxwajzXMb0EPdd3VUFmbqUfs6ZadJWi/sKbcNWH26EH1rWbgsE6Bcxh4RpbdNCbc0XOGswtO8VrZuk1mcEzK8ALOzre9RgDAwOjVxCg8f/oE79ocQe//c7Qt98Z+tt3hikStabo7eG1NlffHlp13VzLFiJLrCmYK6vCC1FMoWT/rjm3I/t3TdNc9SF2qBJIF3qiDXxn5DZOmb2DgLUCVyteHUQMlbXLcL/MQkg1xPgxMDAwBECAxv/Ez/2KzRv5zvtTgN/9gGSlviN6d3yL5MTWu+Nbnkj2f//l67Vsu+b0juBYs17XQtZjZs7ldUwPm6sERWZY60PsUBW4uoAuDJBh7zr4zGHk5ZfvKZRPAqSka09Ze806Dlwjo4dOOmshs5yrGgYGBkavIEDjf/pf/FtXMPnWsyU63362VG3sivrm1H3zGrASTt+8xh8vfupff45yBlcIlDyOUojSiqs+xA6XKsD/RakPKYf0qOspXuASqo5ecIWkRwOXU8js8AoYUrNjSFmrMYPkCpseObwCpH5XOxgYGBi3BF3jj49Pjo/BVvGH1Wq9XK4Ui+VcrhgKReka/8lf+fe+aO7xlKyD9daBaGzdMrZuHduwjm1YxzdskXTl07/2BuWMbxZjrc9VCNESZitmCma2RVQaLr/wQlYZ4IqfK5IeqgLc6W1CggTJ5QJinBofREd6moh2jYfLHasveiR046xT2fVD0sOpxMDAwKBA1/jT0+ef/qVf+vIf/MHffOMbgI8++GB9bS2VytI1/pc+81vhVHl01TS2ZqZzZ+9INCf3zCt980rfvMovVvnjhca/+dyXgCeu1AwBPGtzFaK0Qgnj/qRd9HHooQthGs88dXuN51LHrn4h9u/P5GJgYGDcHTo0/o/+8A8nJyY22tBoNE6ns0Pj/83/9cV4oSFW+cUq/4I6QHH38FS0Zoism2IbpviGOSGxJDPE7q+/8WUR9LqZ9bqHqsn8l292Zm0FNyLM0d0Brl6IFrqC1SlzKLoODnUKvWZX46wlXF2AdIdpgSs2DAwMjI8ABNyr/+znv5Kp7G3ZMx3cPz4TbdtSMkdW5szKXDm5u5CvHfzG//3HgoNDydR3ZOdeZX+4evXWBavTrpXRzXY9i2icb1T3akIxMDAwPhwIuFf/uS99tdg81gSrN1k7PH0hUrhyKk9R5S2qfSWNv1xsHH3uS1+9TXy9Ss29+rrwutDz+FGac9VB12a+36Xu7jsBBgYGxscQAu7V/9bv/wWx+9yc2AO0tHl0diFSe/Maf0njL2kDhC5IFJvH//F3/wx46rjfy3WjtQMdl7AoTeB20I3fH/FgjYdvePDmPZFz5uh1HVJenUIPhiuk+zazGBgYGHcKAffqP/+Vv6zsndkzh/bMEaAje+TIHh2fXYo0/qLWX9L6S9pAWRcgio0jSuNFt5YleE14BucrD7y83xEE9KirQa7m6BoPD4bVxS2N8zXCegrSdwwMDIyPKgTcq//8V/6ysncOdL3NY2fu+Pj8UqQLlPTBsj5Q1gXKOn+p2Dj6D1/6U8oZr9wquDKKIqIYvz9KwBo8/a8AU3C9Rwc8PC4XzAC4jLNGDo+HywUkGAwMDIyPJDo0/rvf+c762pq2DZvNFggEOjT+jS//RWX3zJbat6X3bekDe/rAkTkkr+P1gTKp8f6S1l8s1g//wxf/REBYrFKEUl9E0xiIBkAEhtUmxC+XwHStzBUDvHcihojyUixmqzsSPLhZLu9crSDzAnHE9RlA7LKAhnxdYGBgYNwpBNyr/0//9c+J1ok53rTEm5ZE05rYsSZbtuTe8dmFyBAiDEFCHyjr/SWtr1isH3zuC53P1fPKvOjpGN4EIgwox1xO9QydRq/PWs48Zo6PnnGhLEBReMkVszJrCRwoYUDGBz0S1lPChotratBbYWBgYLxGCFjL9nNf/JNS40gfJAxBwhCqGMI1Y6RujjWOnr8UGcMVY7hiCBL6QEnnBxr/34QlaPrZrsrRNYNDtARRCZhdYApA1+5ANAxShzUqXqIFGUCUqWE6RfEIr0DVQY+KOfgCusAVG5dHXuPM2goDAwPjdUGAxv/G73wlX9tXeXJqb07jy2v9BV2gbAhVjp6/EJmiNVOkSsl8sXH4uS/8N8oZJGUzwZUo4QkasRVK9mdN90yZ6fDO3pmb9XnV4ZKZ3qoIokCiexfQU3hbAf3VcwNSmStI5tTDTXFFglKOgYGB0RMI0Pj/843fz1V3Fc6U0plWOtMqd1bjzev8xcPTFyJLrG6J1c2RmilcNQaJUuOIfq+eVTZE3AKDnuu7qiAzt9KPWVMtukpRf+FNEGWGqxVXj3oiDxC/9Ki4xhYd9OZckbMGc8tO8ZpZek3BU8b6L8oxBgYGRq8gQOM/+9u/lyNaMltCZk/K7UmlK63yZDW+wuHpC5E13rDGm5ZY3RKtmyO1cvOY/swdRJZYUzBXVoUXophCyf5dc25H9ueVppmVudSi4y8zvJ5oA98ZuY3TDiN6KFgrcLXi1UHEUFm7DPeLPrno8WNgYGAIgCCN/6+5SktmT8gdSbkzqXQCjc8fnp6LrPGmLbFjjTetsaY11iRaJ//pd6/Xueua0zuCY816XQtZj5k5l9cxPWyuEl5pmtUUa7WOv6yn0D0KG3zmMPLyy/cUyicBUtK1p6y9Zh0HrpHRQyedtZBZzlUNAwMDo1cQdq8+X91VuNJKV1rlSqs9WY2vfa/elmzaUy17qmVPtuzJVmX39Ld+788pZ3CFQMnjKIUorbjqQ+xwqQL8X64KiMeQHnU9xQtcQtXRC66Q9GjgcgqZHV4BQ2rS/3JVYwbJFTbrfHG14jvvGBgYGL0CpfFHR0f7+wc7O61Go1mr1WOxZCgU9fmCLpfXYnVodUb6M3eF2r7Gm9N481pfXusv6oMlQ4g4On0hsqVajvQeoDO9X919/tu///9SzvhmMdb6XIUQLWG2YqZgZltEpeHyCy+EBMCqGVzeu0aICLjT24QECZLLBcQ4NT6IjvQ0Ee0aD5c7Vl/0SOjGWaey64ekh1OJgYGBQQFo/PHxMRD4er1RrdYJohoKRXy+gMvttdmcRpNVozVcvzv3hT8uNg/1wbIhRBhChDFcMUWq5mj96PlLkT3Vcqb3nJl9Z/bAlT2s7Z298eW/AJ64UjME8KzNVYjSCiWM+5N20cehhy6EaTzz1O01nksdu/qF2L8/k4uBgYFxdzg7OxOLxeVy+eDgYHd3b2dnp9ncaTSamUw2mUwnkql4PBGNxsPhqMPhmp2dbTQa//F3v1reOTbH6uZY3RKvW+JNa3zHlmgdn12IHOk9Z+bAlT1wZQ/ducPa/tnnv/yXIuh1M+t1D1WT+S/f7MzaCm5EmKO7A1y9EC10BatT5lB0HRzqFHrNrsZZS7i6AOkO0wJXbBgYGBgfAZydndlsNrFY3NffB+fs7KxKpWo0Gr/1+/9PZffUnty1p3ZtqV17as+e2nOk947PLkTOzD4QeFf20J09qu2ff/4rfyk4OJRMfUd27lX2h6tXb12wOu1aGd1s17OIxvlGda8mFAMDA+PDwdnZWalUqlarrVZrj4b9/X3wl8LBwcHh4WGj0fjtP/iL6t6ZI7MP2L4xf3BydiFyZg6c2QNn9tCVO3Tnbqvxot6l5l59XXhd6Hn8KM256qBrM9/vUnf3nQADAwPjYwgBGv/Gl/+/6v4ZkHJAV+7QlTs6Ob8UuTLti3iGxnfc7+W60dqBjktYlCZwO+jG7494sMbDNzx4857IOXP0ug4pr06hB8MV0n2bWQwMDIw7hSCN/8va/pk7d0jjkQdovDt35M4DHrvzx7WD889/5a8oZ7eUJXhNeAbnKw+8vN8RBPSoq0Gu5ugaDw+G1cUtjfM1wnoK0ncMDAyMjyoEaPznv/JXtYNzIOIeioXjk/NLkTd/7C0ce4vH3uKJt3haP3jxn//wa5QzXrlVcGUURUQxfn+UgDV4+l8BpuB6jw54eFwumAFwGWeNHB4PlwtIMBgYGBgfSQjQ+P/8h1+rH7zwFU8p+oun/uLp6fmlyFc88Zee+0vP/eXn/vLzxuHL3/mjrwsIi1WKUOqLaBoD0QCIwLDaRPfetSaXL1aVYrWvvymivBSL2eqOBA9ulss7VyvIvEAccX0G0D9UfBvydYGBgYFxpxCg8b/zR19vHL70l8/85bNA6SxQJnn64koUJM6CxHmAOA8S50HivHn08r/88Tc6XPLKvOjpGN4EIgwox3DXwmpS/9LLmcfM8dHf1Hj0UDuCQYmWa2pYS+BACYNr7nhFwnpK2HBxTQ16KwwMDIzXCAEa/1/++BvNo5fBynmwch4kzkPEeahyHqqcn764EoUr5+HqizZf7hxffOFP/kZYgqaf7aocXTM4REsQlYDZha4CxoyB2SPWckjw6F1mDb7rSCI6RfEIr0DVQY+Ka/B5dYErNi6PvMaZtRUGBgbG64IAjf/Cn/xN8/giXH1JMVJ7Gam9fP7iShSpvYjUXkZrF5HaRbR2sXNy+YU//SblDJKymeBKlPAEjdgKJfuzpntWIeGb+uGyhCgzvVURRIFE945SgasO+ryjuGAFpDJXkB0D0tUUVyQo5RgYGBg9gRCN/9Nv7pxcRusX0fpFDLBxEWtcPH95JYrVX4J/Yo3LWOOydXL5xa9+i3LGKhsiboFBz/VdVZCZW+nHrKkWMe2iJ2iqJvUXoijM8Jhh84qza2xcfulRcY0tOujNuSJnDeaWnRIwsyK0745cQ8f6L8oxBgYGRq8gQGFPzY8AACAASURBVOO/+NVvtU4uY43L+E0+f/lKFG9cxBsX8eYl4O7J1ZfYNB6exCHVUApRTKFkf8Sci56dO9QCogQdMbAqInyU+ILvjNzGaYcRPRSsFbha8eogYqisXYb7ZRZCqiHGj4GBgSEAAjT+S1/91u7JVaLZybbGNy/jzat48yrRvGqdXn3pzzo1Hp7Q6WDNel0LWY+ZOZfXMT1spmvE7NxhgeuYGSf9L+spXt4FDD5zGHn55XsK5ZMAKenaU9Zes44D18jooRPHWsgs56qGgYGB0SsI0fg/+9bu6VVi5waTO1dnQOMTzUtK9nfZNF7EkdxR8jhKIUorrvoQO6waIOqW0CE5nfqXSzPgw9X1FC9w9aujF1wh6dHA5RQyO7wChtSk/+Wqxgyy64x3rQCp39UOBgYGxi1xG41P3uTZy1eiROMisXOZbJKnuTQeEaz1uQohWsJsxUzBzLZdo4VrGLyQmd8h8XNF0kNVgDu9TUiQILlcQIxT44PoiD7IXePhcsfqix5J16nkMgVxgYGBgXF7CNb4JKvGJ5sXyeZlskkW0TWeKzVDAM/aXIUorVDCuD9pF30ceuhCmMYzT91e47nUsatfiP37M7kYGBgYdwfhGt8imWqzrfE7l0DgUzSNZ2ZYLtCDY/2Xb3ZmbQU3IszR3QGuXogWuoLVKXMoug4OdQq9ZlfjrCVcXYB0h2mBKzYMDAyMjwAEa3xq51rd062rNKXxqZ1LcC7d6rxXzxcomfqO7Nyr7A9Xr966YHXatTK62a5nEY3zjepeTSgGBgbGhwPBGp9udfLs5StRaucivXOZBvrP+D1eAHqVmnv1deF1oefxozTnqoOuzXy/S93ddwIMDAyMjyF6oPG7JM8uXonSOxfp1iV1bo/xezx1zHWjtQMdl7AoTeB20I3fH/FgjYdvePDmPZFz5uh1HVJenUIPhiuk+zazGBgYGHcKYRq/R9P4TOsqs3uVYWp8pnW197z3z9Vz1YRncL7ywMv7HUFAj7oa5GqOrvHwYFhd3NI4XyOspyB9x8DAwPioQqDGPyd1nU5S4zOtywxQ/pvX8SKeuVVwZRRFRDF+f5SANXj6XwGm4HqPDnh4XC6YAXAZZ40cHg+XC0gwGBgYGB9JCL6O7xD4LND4TOsy07rMtq6yu1fZ3c7reHSwShFKfRFNYyAaABEYVpvo3uHVIL5YVYrVvv6miPJSLGarOxI8uFku71ytIPMCccT1GRA8X10b8nWBgYGBcacQfB0PRJzOc6Dx2d1LqmifTeN5ZV70dAxvAhEGlGO461vWpJczj5njo2dcKAtQFF5yxazMWgIHShiQ8UGPhPWUsOHimhr0VhgYGBivEcI0fp/S+L2r7N5Vbu8qt3d1fvFKlG1d5nYvc7tXub2rXFvjhSVo+tmuytE1g0O0BFEJmF3oKmDMGLrW7DpK6F1mmoWDl1MUj/AKVB30qLgGn1cXuGLj8shrnFlbYWBgYLwuCNb43N4N5oHG53Yvc7uX+d2r3O5Vfq/zOh6SspngSpTwBI3YCiX7s6Z7ViHpYepHl5neqgiiQKJ7F9BTeFsB/dVzA1KZK8iOAelqiisSlHIMDAyMnkCwxuf32ty/yu9fFfavzi9eifK7l/m9S+rcwRmnxnMd00vQc31XFWTmVvoxa6pFTLvoCRouMyjlXbspGBC/9Ki4xhYd9OZckbMGc8tOCZhZEdp3R66hY/0X5RgDAwOjVxCm8QdnpK7TeX7xSlTYvSzsXxb2yCIujYcncUg1lEIUUyjZHzHnCsvOiJpB10KuLvREG/jOyG2cMpUeAtYKXK14dRAxVNYuw/0yCyHVEOPHwMDAEADBGg9EvEjx4Or84pWouHdZ3L+kSlk1Hp7Q6WDNel0LWY+ZOZfXMT1spmsB2ZmrVUc5NWKs8TALu3oUNvjMYeTll+8plE8CpKRrT1l7zToOXCPT4QtSAVLOVQ0DAwOjVxCs8UDXiwdXpTZRNV7EkdxR8jhKIUorrvoQO6waIOqW0LlyOuIxpEddT/ECV786esEVkh4NXE4hs8MrYEhN+l+uaswgu8541wqQ+l3tYGBgYNwSt9H40v61wFMaf1Hcu6R4cHaJ94/naoJSDo+kh6rAKlSIZ9HtILqAGKeGCNERXUS7xsPljtUXPRK6cdaPhLB5x8DAwLglhGo8uFy/LNF4fvFKVNq/oBcd0jSeKzVDgC54XRWCmVuFeX8t4CX8vXIhTOOZp26v8Vzq2NUvxP79mVwMDAyMu4MwjT88u9bx8gHJF0Djy/uX5XYppfHMDMsFenCs//LNzqyt4EaEObo7wNUL0UJXsDplDkXXwaFOodfsapy1hKsLkO4wLXDFhoGBgfERgGCNp6S9fHBJHFwSQOPL+xfl/UuiXXp48149X6Bk6juyc6+yP1y9euuC1WnXyuhmu55FNM43qns1oRgYGBgfDgRrPHFwg5XDyxcXr0TEwQW99Oh2Gi/qXWru1deF14Wex4/SnKsOujbz/S51d98JMDAwMD6GEKbxR2eXxMFl5eCycnjNFxevRJWDC3rREeP3eOqY60ZrBzouYVGawO2gG78/4sEaD9/w4M17IufM0es6pLw6hR4MV0j3bWYxMDAw7hSCNR6IeJXGFxevRNWDC3rR8R08V89VE57B+coDL+93BAE96mqQqzm6xsODYXVxS+N8jbCegvQdAwMD46MKYRp/fHZD3atHl7WjyxeXr0TVm7J/G40XXBlFEVGM3x8lYA2e/leAKbjeowMeHpcLZgBcxlkjh8fD5QISDAYGBsZHEsI1/oiUdoovL1+JaoeXtcProuNzgb/Hs0oRSn0RTWMgGgARGFabEL+s6oJSnysGeO9EDBHlpVjMVnckeHCzXN65WkHmBeKI6zMgbLJQGvJ1gYGBgXGnEKjx59c6Xgc8BhpP/X90WT+6PGHTeF6ZFz0dw5tAhAHlmMspXat41af/y2WHa3z0NzUeJVTWYFCi5Zoa1hI4UMLgmjtekbCeEjZcXFOD3goDAwPjNUKYxp+cX0t7/fiycXzZABrfOLpsHF9RPDn/6O8fzzyGdIfZI0gdeFS8RAsygChTw3SK4hFegaqDHhVz8AV0gSs2Lo+8xpm1FQYGBsbrglCNJ0W8eXJNSuMvyb/HndfxkJTNBFeihCdoxFYo2Z813XPFjJLWqTpwWUKUmd6qCKJAontHHw3EtgL6q+cGpDJXkB0D0tUUVyQo5RgYGBg9geDr+Eb78r3ZJqnxTVoRROO5jukl6Lm+qwoycyv9mDXVoqddxBxNVaP+sobB2oo5IKzdFAyIX3pUXGOLDnpzrshZg7llp24zs1xTI+KYetaZRT/GwMDA6BUEazxdypvHl82Ty5eXr0QdpVwaD0/ikGoohSimULI/Ys5Fz84daoEoDx1/meH1RBv4zshtnHYY0UPBWoGrFa8OIobK2mW4X2YhpBpi/BgYGBgCcCuNP7ncoZHU+B0aT1+waDw8odPBmvW6FrIeM3Mur2N62MxCZjys6LCAIg/UiHF1QYB3AYPPHEZefvmeQvkkQEq69pS116zj0HWOulaAlHNVw8DAwOgVhGn86Ysb6n6t8TvHN4pYNV7EkdxR8jhKIUorrvoQO1yqwDxGqU//l8sOfLi6nuIFLqHq6AVXSHo0cDmFzA6vgCE16X+5qnFNImtNxAqQ+l3tYGBgYNwSt9T4Fo3XGk8VcWk8IljrcxVCtITZipmCmW27RgvXMHghqwwgBo8eITpYhQrxLLodRBcQ49QQITrS00S0azxc7lh90SOhG2ed4q4fkh5OJQYGBgYFwRpPV/fW6WXr9PLl5StR66bs0zWeKzVDgC54XRWCmVuFeX8t4CX8vXIhTOOZp26v8Vzq2NUvxP79mVwMDAyMu8OtNP6U5O7p5e7p5QVE45kZlgv04Fj/5ZudWVvBjQhzdHeAqxeiha5gdcociq6DQ51Cr9nVOGsJVxcg3WFa4IoNAwMD4yOAW2r8Lo2kxu9e8+r5iyu8f/ztAVev3rpgddq1MrrZrmcRjfON6l5NKAYGBsaHA2Ea//zF1e5pJy8uX4k6im6p8aLepeZefV14Xeh5/CjNueqgazPf71J3950AAwMD42OIW2r83unV7vOrvedXe8+vLhjr3F3R34/vuN/LdaO1Ax2XsChN4HbQjd8f8WCNh2948OY9kXPm6HUdUl6dQg+GK6T7NrMYGBgYd4pbrHMHlrMl1bxxfPXy8pXIR7z0Vy/8lUt/9dJfvWocX+H94wVDQI+6GuRqjq7x8GBYXdzSOF8jrKcgfcfAwMD4qEKYxjeOr/y1q0DtKlC7CrZ5+vKVSJN+ocm81GYutNkLXfayuI/3j+8BWIOn/xVgCq736ICHx+WCGQCXcdbI4fFwuYAEg4GBgfGRhDCNL+5danOX2tylLnepy13qc5eG/OXR+SuROvVCnX6pTl+oMxea9GVhD+8fz16ZqwlrOat08R2ijsrCmgtwhBgGvBVkXiCOuD4DiF0W0JCvCwwMDIw7hTCNL+xdajKXmuylJnupzV5qs5e67OXh+SuRKnmt8WoOjeeVedHTMbwJRBhQjrmc0rWKV31IhQ6bzPHRMy6UBSgKL7liVmYtgQMlDK654xUJ6ylhw8V3ivnWxMDAwLhTCNZ4daZT5g/PXolUyReq9Et1+kKVvtZ4YQmafrarcnTN4BAtQVQCZhf4CgC8DuIooXeZyzh8JBGdoniEV6DqoEfFHHwBXeCKjcsjr3FmbYWBgYHxunAbje+Q+cOzVyIl0PjUDY2nnEFSNhNciRKeoBFboWR/1nTPFTNKWkdpji4zvVURRIFE937L0RBgkMsFKyCVuYLsGJCuprgiQSnHwMDA6Al6oPGZDo1PvVQhaDzXMb0EPdd3VUFmbqUfs6Za9LSLmKMhjugxc8kAM2y+ccJjQ4mWa2zRQW/OFTlrMLfs1G1mljllHRXghVzzy3WMgYGB0SvcUuPpl/KkxivbGq/i1nh4EodUQylEMYWS/RFzrrDszMzvXbWQqws90Qa+M3Ibp8zeQcBagasVrw4ihsraZbhfZiGkGmL8GBgYGAIgWONVmU6ZPzx7JVImSI1Xcms8PKHTwZr1uhayHjNzLq9jetjMQmY8XcHVsKOcGjHWeJiFXT0KG3zmMPLyy/cUyicBUtK1p6y9Zh0HrpHp8AWpACnnqoaBgYHRKwjX+HSnzB+evRIpEi+UqZdKqMaLOJI7Sh5HKURpxVUfYodLFZjHwuqz1oH0qOspXuASqo5ecIWkRwOXU8js8AoYUpP+l6sa1ySy1kSsAKnf1Q4GBgbGLXFLjafLPKnxCkrjU5d56DN3XcFan6sQoiXMVswUzGzbNVq4hsELu/YCEjx6hOhgFSrEs+h2EF1AjFODg+iILqJd4+Fyx+qLHgndOOtHouuHpIdTiYGBgUFBmMbngcbflPmbGp+6UN7UeK7UDAE8a3MVorRCCeP+pF30ceihC2Eazzx1e43nUseufiH278/kYmBgYNwdBGu8Mn0t89caLwcan+zUeGaG5QI9ONZ/+WZn1lZwI8Ic3R3g6oVooStYnTKHouvgUKfQa3Y1zlrC1QVId5gWuGLDwMDA+AigBxrflvm2xidfKpMXCsZ1vACgZOo7snOvsj9cvXrrgtVp18roZrueRTTON6p7NaEYGBgYHw5uo/H0S3kVXeMVPdJ4Ue9Sc6++Lrwu9Dx+lOZcddC1me93qbv7ToCBgYHxMcQtNZ4u8100vuN+L9eN1g50XMKiNIHbQTd+f8SDNR6+4cGb90TOmaPXdUh5dQo9GK6Q7tvMYmBgYNwpeqbx6cuDs1ciefyFvK3xirt5rp6rJjyD85UHXt7vCAJ61NUgV3N0jYcHw+rilsb5GmE9Bek7BgYGxkcVgjVeke6U+YOzVyJZ7zRecGUURUQxfn+UgDV4+l8BpuB6jw54eFwumAFwGWeNHB4PlwtIMBgYGBgfSfRE45VMjZezaTw6WKUIpb6IpjEQDYAIDKtNiF9WdUGpz9qEtZxVuvgOUUdlYc0FOEIMA94KMi8QR1yfAWGThdKQrwsMDAyMO8VtNL5D5q81Xg7VeF6ZFz0dw5v8/+2dQZIsu5FdY6HaQe+g96Xm5yx3IWtywB3QTDMN1DINvpREwd0vLhARmXjxzjFaGgpwuF8AabiZ/xUrhDE47apo61VT8emUbh+q/XmFL8oLjjJlVzE47dE4Mqqzm1KSDq1t1+wRz0YCANzKSY//a/T4v7Qe/88nPz8+joq1HJlhdOWcXfKXnIof7qRZ1KmoA94xvqpqu6aWUGmrKk7tczoLAOBbLHr8P//l8X8tPf5v/8/j38XElR2pLkp9QZuznNs/ve4rzc61/o6JUrshkfllu+wUpkH61f3dMOcurPdVI4Irkd2GDFNVSpx+AIBLWPf4v5/z+Krd9vh3/dAF493attOr1rx2/Tv6HfZ+7RqHtIdqRZfYQ3oEcVuqvfVpp1fKUzEnF7Vwsof32bHauvRHpw0AcBWXePxf3x7/H2+P/5vyeH2JizCn00nl3P5Td65zR3du0TWGXlgt4RJvmD2RM0Xj6gRpQDVraoGm1HTJum7sFGGmfgCABU55/E+bbzz+P5XH6wu9Jb31hp1pO965U+1Wdqx+FJd4GtNKGtrDe8eqJfjGILZ9uPlxG6fqzg457wTRM1xpuup0H4ZnNAwQ/VUYAMBVnPX4v897/FFc7s497nQ6s6p4kadyhdh24tMpMadY0XBoikpJt4pK0sujKipOZ0qwiGxfq7DqENNIM0DED/MAAJzkBo//z395/D/k79wNSeOrTuElcVa8guNc02mEgVWeMZwi1Dr9C6RizFE/j1lCJH9vjlmoNdGhnqqcPtw24BXQqUQJAIDzrHn8P1qP/3vr8f/jXx7/x0+Pr65mgb61q05nliNjn2vX34cLS6x5fBw67/GVOw7rivz7HC4AwH0se/wff+9t/ofH/+Wnx8cbtqIVl/44ezuns3SStUL3od3LzDAkLRq3Yrg57yE/cpg87amWIJYTM1TaAAAewBmP72z+Xx7/l+Dxazg39U15trr9tXtdWyItOgz20w5HzeSzqrY6UACAz3DS4/+41eOP667mqz4ufIvL9TvTqxjfm2c/S933mQAA4Dfkeo//j8Lju//eW/2H1o7uK6wzRefxk+9jHqmeWXl6+iV2HndvuKVTi/LFVJJ2O1kAgFs57/F/tB7/32uPP07bko7UN/isPUxVv4mFFQ0TVtN9j9di0hInk88mSYfE2gEAnsolHv/HHR6/HOw4opN8HydIxbevC6m03/toeVWJKKBKnirXeqoSQgwAwCO5yuP/cDzeJ7UiJ/5oPEZ4gDCYNKeom7rLMDg1pCpPal2zW9QFr01fKGTK0LPEuYhC1XvAXPLCxNkSAAC38gWPn7p5/etYTxHG4LSroq1XTcU7Q9X+vMIX5QVHmbKrVNtQ7fBwY57q7KaUpENr2zV7xLORAAC38gmPX7ug29GhcwxvcOElphMMvWp4rVcxw7mpqinTEhvoHE0s6lTUAe8YX1UnaW0Jlbaq4tQ+p7MAAL7FR7/Hiys7Ul2U+oI2Zzm3f3rdV5qda11oE3Mrm7nWRUyD9Ksv70Y1d2G9rxoRXInsNmSYqlLi9AMAXMLXPL5qtz3+XT90wXi3tu30qjWvXf+OFoXEXd/2D5e5jKjbqqr21qedXilPxZxc1MLJHt5nx2rr0h+dNgDAVXzH4/UlLsKcTieVc/tP3bmzd7R517deWC3hEm+YPZEzRaPTC9KAatbUAk2p6ZJ13dgpwkz9AAALfMHj9YXekt56w860He/cqXYrO1Y/iktc0JlH2j6aHUv1xM5hxbXNj9s4VXd2yHkniJ7hStNVp/tQ7cyrOC/RGfurMACAq9jle3zaaYYdhSGJWVW8yFO5QmzPxou2WNFwaIrKqLpVVJJeHlVRcTpTgkVk+1qFVYeYRpoBIn6YBwDgJN/8nbshaXzVKbwkzopXcJxrOo0wsMoz/H6t5EJXSPWbo34es4RI/t4is1BrokM9VTl9uG3AK6BT6XMHADjJ5zy+upoFvuENHSLerWvVv8KU8V9VYs3j49B5j6/ccVhX5N/ncAEA7uNDHh9v2IpWXPrj7O2cztJJ1grdh3YvM8OQtGjciuHmvIf8yGHytKdaglhOzFBpAwB4AJv+Lds/cW7qm/Jsdftr97q2RFp0GOynHY6ayWdVbXWgAACfYWuPBwAAgGXweAAAgGeCxwMAADwTPB4AAOCZ4PEAAADPBI8HAAB4Jp/7/8en/wcw2rRp39cGgN+cj/6duzetAvrpp/++fgD4nfmEx78A4ON8+24BgO/D93j66X9yPwD8zvDv8bRpP7YNAL85/F49AADAM8HjAQAAngkeDwAA8EzweAAAgGeCxwMAADwTPB4AAOCZ4PEAAADPBI8HAAB4Jng8AADAM/mmx7/+P3cv8mOFAAAA9uGjf68+lv+Y9eLxV8E2AgD8Knzh79W3bOjxfOkXsDMAAL8Q33m27Lv8+8f4UI3Y3w51TuP03+HxldTlotViz+eJ7dm6r4AjCQAAvsUW3+Mrj3QC0oS6fRVOrdm6Z/LM6lnQf8c2AgDATWzh8VW7s/ZXoMvT9c965CwLHqlTndRf7c9wk/26d2wjAADcxNYeL4Jnk/jm1BneMPJ83TvyzOZ34k0ZAACwCZ/2eOEZQ/uZ9cJZj2wjZ4Ov8uY78nQ6z9R9/+hvEQAAfIuP/n/nKuNpfzwKQ+qmdENtZ8z5AVtyPHU4vdMpvHaYp9o6J17XnVoXAAB8Ef7O3ToLHgwAAPAx8PhTzH5fBwAA+Bh4PAAAwDPZ3eOv+n6c/lP0JZk/w+X6zX/d9/v9ThGg49dKAAD8tnzn79W/MlJ93T94O1N0Hj/5PuaR6pmVp6dfYudx94ZbOrUoX0wlabeTBQC4lY9+jz9pSzpS3+Cz9jBV/SYWVjRMWE33PV6LSUucTD6bJB0SawcAeCr7evxysOOITvJ9nCAV374upNJ+76PlVSWigCp5qlzrqUoIMQAAj2TTf49PrciJPxqPER4gDCbN6Qhw4rUhVUlS65rdoi54bfpCIVOGniXORRSq3gP+m2phFgDAPnzB46duXv861lOEMTjtYXXHA7qY9sd0erU/r/BFecF+TLXV0hy1w8ONeaqzm1KSDi1s13uf44YDAPwSfPrZsl15fW92FiicY3iDCy8xnUAsQdtYFxmzDeemqqZMS2ygczSxqFNRBxw/TdRR1UlaW0KlTSRx1gIAsCHf/Pd4fXVWd6u+oM1Zzu0fp6Su8/J8Ogabc7vRl+2yU5gG6Vf3d8Ocu7DeV40IHuqszq5qH+HEAQA+w9c8vmq3Pf5dP3TBeE237fQKnnIp5/pujaH7UXhA5yhR3iW2Iep2y4zxrxna6ZXyVMzJRU2dbJek2pwjnM4rez9UbQCAu/mOx+tLXLvXsNNJ5dz+w7tYeNgw/gg+0cZ0GlJH1Ls0y+yJnCnaJUm3MW7UsHO4+ctq083xz3FKJwDAhXzB4/WF3pLehsPOtP0qDNJsHz+v9VTA8O7uMgy94Wh2rFqCbxhi24ebH7dxqu7skPNOED3DlaarFvuw0Fm1AQA+yS7f49NOM+woDEnMquJFnsoD2lEdX/0ovEGsaDg0ReVY3SoqSS+Pqqg4nSnBIrJ9rcIqkQudThsA4G72/Rs4VXzVKbwkznoFr41zfbXV9ChG1PLFLygckjqWOernMUuI5O8tMgu15jrUIyqah9UpbIuK8wUAuIlP/7362Rt2odOZ5cjY5zqeMv6rSqx5fBw67/GpOw4lRWOuhgAAnsqHPL76GhRpxaU/zt7O6SydZK3QfWj3MjMMSYvGrRhuznvIjxwmT3uqJYjlxAyVNgCAB7Dp37L9E+emvinPVre/dq9rS6RFh8F+2uGomXxW1VYHCgDwGbb2+OPm3ym7JPNnuFy/M72K8b159rPUfZ8JAAB+Q3h+fJl8H/NI9czK09MvsfO4e8MtnVqUL6aStNvJAgDcyq/3e/VVpL7BZ+1hqvpNLKxomLCa7nu8FpOWOJl8Nkk6JNYOAPBU9vX45WDHEZ3k+zhBKr59XUil/d5Hy6tKRAFV8lS51lOVEGIAAB7Jpv8en1qRE380HiM8QBhMmtMRMIwXYnyvOoKJzuqsGtei01bVq1niXESh6j1gLnltFgDAPvD8eKs9rO54gFhjV/cl/zH79dPjp6T6U/TRpD0aR4bYH19JOrSwXe0p+LMAAPaB58e7TiCWoG2sixz2x7BU1ZRpiQ10jiYWdSrqgOOniTqq4i4tLKHSJpI4awEA2BCeH+86QeU6rVEly8iCp8Lij6m8k5gG6Vc/sxv+uTslUkTwUGcb2Y5W7U7J7CoAAJbh+fG9E+hCXZLqThfx+q4fOkqUd4ltVN7Wqa321qedLjZh2DO7qKmT7ZJUm3OE03ll74eqDQBwN7s8d853r2Gnk8q5/Yd3sfCwIdo5Og2pI+pdmmX2RM4U7ZKk29jup9mpJS0LFifVKukiY9vUCQBwITw/3mofP6/1VMDU3R3jxQ60r+mQX3Ft8+M2TtWdHXLeCaJnuNJ01WIfFjqrNgDAJ9nle3zaaYYdhSGJWVW8yFN5QDuq4/W9n/akStKYk1SO1a2ikvTyqIqK05kSLCLb1yqsErnQ6bQBAO5m37+BU8VXncJL4qxXsN4411dbTY9itOFpl/L7F9CWqUf9PGYJkfy9S2ah1lyHekTF6g2jFbZFqykAAPfB8+Pnqn8Ffx8uLLHm8XHovMen7jiUFI25GgIAeCo8P96d8kW0e5kZhqRF41YMN+c95EcOk6c91RLEcmKGShsAwAPY9G/Z/olzU9+UZ6vbX7vXtSXSosNgP+1w1Ew+q2qrAwUA+Axbe/xx8++UXZL5M1yu35lexfjePPtZ6r7PBAAAvyE8P75Mvo95pHpm5enp4LLMPQAAFEdJREFUl9h53L3hlk4tyhdTSdrtZAEAbuXX+736KlLf4LP2MFX9JhZWNExYTfc9XotJS5xMPpskHRJrBwB4Kvt6/HKw44hO8n2cIBXfvi6k0n7vo+VVJaKAKnmqXOupSggxAACPZNN/j0+tyIk/Go8RHiAMJs1ZFRUG40yp8givOoKJTjlWnHWT4em0VfVqljgXUah6D5hLXpsFALAPPD/ealdFZ/31FT5bDPvj/rx+erwjNRXjqK2OJu3RODKqs5tSkg4tbFd3OgubDADwXXh+vOsEcQnCulI6wa156LSpqinTEhvoHE0s6lTUAcdPE3VUxV1aWEKlTSRx1gIAsCE8P951gph89vZ/xw+liiov22WnMA3Sr+4EVDH+uTslUkTwUGcb2Y5W7WN04gAAN8Hz43sn0IW6JFN3d2sMR2FyQ0eJ8i6xjUpJt7pqb33a6ZXyVMzJRU2dbJdEHFN3Ou0Ch20AgLvZ5blzvnsNO51Uzu1/3gnSmNQSqiStF1ZLuMQzZk/kTNHo9II0oJo1tUBfbbo58RzbyNg2dQIAXAjPj7fax89rPRUwvLu7DN0UsQPtazrkILZ9uPlxG6fqzg457wTRM1xpumqxDwudVRsA4JPs8j0+7TTDjsKQxKwqXuSpXCG2nfjhj8dou4ZDU1SO1a2ikvTyqIqK05kSLCLb1yqsErnQ6bQBAO5m37+BU8VXncJL4qxXMNc413Qa7Q2xbjVF3P6z/Quk+s1RP49ZQiR/75JZqDXXoR5RsXrDaIVt0WoKAMB98Pz4uepfwd+HC0useXwcOu/xqTsOJUVjroYAAJ4Kz493p3wR7V5mhiFp0bgVw815D/mRw+RpT7UEsZyYodIGAPAANv1btn/i3NQ35dnq9tfudW2JtOgw2E87HDWTz6ra6kABAD7D1h5/3Pw7ZZdk/gyX63emVzG+N89+lrrvMwEAwG8Iz48vk+9jHqmeWXl6+iV2HndvuKVTi/LFVJJ2O1kAgFv59X6vvorUN/isPUxVv4mFFQ0TVtN9j9di0hInk88mSYfE2gEAnsq+Hr8c7Diik3wfJ0jFt68LqbTf+2h5VYkooEqeKtd6qhJCDADAI9n03+NTK3Lij8ZjhAcIg0lzVkWFwUzF6ySpdc1uURe8Nn2hkClDzxLnIgpV7wFzyWuzAAD2gefHW+2q6Ky/Vtpaz+vacX9e4Yvygv2Yq6uOJu3RODLE/vhK0qGF7Xrvc9xwAIBfAp4f7zpBXIKwrpQqvluI3iV/ybGEZqqoU1EHHD9N1FEVN39hCZU2kcRZCwDAhvD8eNcJYvLZ219oezXemdaNqq41HtMg/epOQBXjn7tTIkUED3W2kdXZpW+V2TcMAMBJeH587wS6UJdk6u4W8c5QtaJLbCM9giip2lufdnqlPBVzclFV20lSbc4RTqdd4LANAHA3uzx3znevYaeTyrn9zzvBbHzsbL2wWsIlnjF7ImeKRqcXpAHVrKkF+mqrk2qVdJGxbeoEALgQnh9vtY+f13oqYOruFs4Rdbav6ZBfcW3z4zZO1Z0dct4Jome40nTVYh8WOqs2AMAn2eV7fNpphh2FIYlZVbzIU7lCbJ+JT0UKh7jKPCrH6lZRSXp5VEXF6UwJFpHtaxVWiVzodNoAAHez79/AqeKrTuElcdYrWG+cazqN9oZYV/dXVab6F0j1m6N+HrOESP7eJbNQa65DPaJi9YbRCtui+ogBAO6A58fPVf8K/j5cWGLN4+PQeY9P3XEoKRpzNQQA8FR4frw75Yto9zIzDEmLxq0Ybs57yI8cJk97qiWI5cQMlTYAgAew6d+y/RPnpr4pz1a3v3ava0ukRYfBftrhqJl8VtVWBwoA8Bm29vjj5t8puyTzZ7hcvzO9ivG9efaz1H2fCQAAfkN4fnyZfB/zSPXMytPTL7HzuHvDLZ1alC+mkrTbyQIA3Mqv93v1VaS+wWftYar6TSysaJiwmu57vBaTljiZfDZJOiTWDgDwVPb1+OVgxxGd5Ps4QSq+fV1Ipf3eR8urSkQBVfJUudZTlRBiAAAeyab/Hp9akRN/NB4jPEAYTJpTl47uMgyOtUSe1Lpmt6gLXpu+UMiUoWeJcxGFqvfA2mHdtFEAAPfB8+OttqjrX/1d8PvHtj+24/68fnq8KTWKcdRWR5P2aBwZ1dlNKUmHFrarO52FTQYA+C48P951grgEYV0pneDWPLp+Id5fcip+uJNmUaeiDjh+mqijKm7+whIqbSKJsxYAgA3h+fGuE8Tks7f/O76T2uZJjS1Vda3xmAbpV3cCqhj/3J0SKSJ4qNM5u/StIpYMAHAHPD++dwJdqEsydXe3xnBklpCm6hwlyrvENtIjiJKqvfVpp1fKUzEnF1W1nSTV5hzhdF4/D1S3AQDuZpfnzvnuNex0Ujm3//Aunr27O6uLU9Ke7jXKu8QzZk/kTNEuyUuSBlSzphboq003J55jGxnbpk4AgAvh+fFW+/h5rbc9sV3RZYhT0p7uNR1yENs+3Py4jVN1Z4ecd4LoGa40XbXYh4XOqg0A8El2+R6fdpphR2FIYlYVL/JUrhDbTvzwx2O0XcOhKSrH6lZRSXp5VEXF6UwJFpHtaxVWiVzodNoAAHez79/AqeKrTuElcdYrmGucazqN9oZYt6olbv/Z/gVS/eaon8csIZK/d8ks1JrrUI+oWL1htMK2qD5iAIA74Pnxc9W/gr8PF5ZY8/g4dN7jU3ccSorGXA0BADwVnh/vTvki2r3MDEPSonErhpvzHvIjh8nTnmoJYjkxQ6UNAOABbPq3bP/EualvyrPV7a/d69oSadFhsJ92OGomn1W11YECAHyGrT3+uPl3yi7J/Bku1+9Mr2J8b579LHXfZwIAgN8Qnh9fJt/HPFI9s/L09EvsPO7ecEunFuWLqSTtdrIAALfy6/1efRWpb/BZe5iqfhMLKxomrKb7Hq/FpCVOJp9Nkg6JtQMAPJV9PX452HFEJ/k+TpCKb18XUmm/99HyqhJRQJU8Va71VCWEGACAR7Lpv8enVuTEH43HCA8QBpPm1KWju8zGC6OKSl4/TXTKseKsmwxPp62qV7PEuYhC1Xtg9mRnjxgAYBN4frzVFnVnLTa18K7uS/5j9uunx5tSY1FHanU01SqmDjfmqc5uSkk6tLBd7Sn4swAA9oHnx7tOEJcgrCuliu8WEsNSVVOmJTbQOZpY1KmoA46fJuqoipu/sIRKm0jirAUAYEN4frzrBDH57O0vtEW3q2a9bJedwjRIv7oTUMX45+6USBHBQ51tZDtatY/iZAEA7obnx/dOoAt1SabublGoXW9lD9WKLrGN9Aii2mpvfdrplfJUzMlFVW0nSbU5RziddoHDNgDA3ezy3DnfvYadTirn9h/exbN3t773K6voXqO8Szxj9kTOFI2rE6QB1aypBfpq082J59Ud3Cs736FOAIAL4fnxVvv4ea23PbFdMfSAdKh77eT5hiG2fbj5cRun6s4OOe8E0TNcabpqsQ8LnVUbAOCT7PI9Pu00w47CkMSsKl7kqVwhtmfjqzC9XcOhKSrH6lZRSXp5VEXF6UwJFpHdlqZhlciFTvOsAQBuZd+/gVPFV53CS+KsV/DUONd0Gu0Nse6wP01VVR8qNNFFz0gSIqsSIvl7f8xCrbkO9YiK1RtGK2yLVlMAAO6D58fPVf8K/j5cWGLN4+PQeY9P3XEoKRpzNQQA8FR4frw75Yto9zIzDEmLxq0Ybs57yI8cJk97qiWI5cQMlTYAgAew6d+y/RPnpr4pz1a3v3ava0ukRYfBftrhqJl8VtVWBwoA8Bm29vjj5t8puyTzZ7hcvzO9ivG9efaz1H2fCQAAfkN4fnyZfB/zSPXMytPTL7HzuHvDLZ1alC+mkrTbyQIA3Mqv93v1VaS+wWftYar6TSysaJiwmu57vBaTljiZfDZJOiTWDgDwVPb1+OVgxxGd5Ps4QSq+fV1Ipf3eR8urSkQBVfJUudZTlRBiAAAeyab/Hp9akRN/NB4jPEAYTJqzKqo9xlGrNaTxr58mOuVYcdZNhqfTVtWrWeJcRKHqPeAf08IsAIB94PnxVrsq+gqfFUZKk7AqT7U/r58e70hNZTg6q6NJezSOjOrsppSkQwvb1Z6CPwsAYB94frzrBHEJ+sdUQ7oP3ULSgNieMi2xgWnFYVGnog44fpqooyru9sISKm0iibMWAIAN4fnxrhOI5FrwMOzdky4h/pjKO4lpkH51J6CK8c/dKZEigoc628h2tGofxckCANwNz4/vnUAXqvCv78ozjmbVqbwoe0GnUJXq7Lal2lufdnqlPBVzclHXnmx7Il07zqraAAB3s8tz53z3GnY6qZzb37+Lpy7uGNxZYOWF1RIu8YzZEzlTNK5OkAZUs6YW6KtNNyeeV3dwXdvUCQBwITw/3mofP6/12B8lVcT4LnPX7l47eX5pse3DzY/bOFV3dsh5J4ie4UrTVYt9WOis2gAAn2SX7/Fppxl2FIYkZlXxIs+UB0zFp2ZzjLZrODRFpbNbRSXp5VEVFaczJVhEdluahvnnO+x02gAAd7Pv38Cp4qtO4SVx1it4apxrqhUVY0JRS+ivlFzoFrroGUlCZFVCJH/vj1moNdehHlGxOiytsC1aTQEAuA+eHz9X/Sv4+3BhiTWPj0PnPT51x6GkaMzVEADAU+H58e6UL6Ldy8wwJC0at2K4Oe8hP3KYPO2pliCWEzNU2gAAHsCmf8v2T5yb+qY8W93+2r2uLZEWHQb7aYejZvJZVVsdKADAZ9ja44+bf6fsksyf4XL9zvQqxvfm2c9S930mAAD4DeH58WXyfcwj1TMrT0+/xM7j7g23dGpRvphK0m4nCwBwK7/e79VXkfoGn7WHqeo3sbCiYcJquu/xWkxa4mTy2STpkFg7AMBT2dfjl4MdR3SS7+MEqfj2dSGV9nsfLa8qEQVUyVPlWk9VQogBAHgkm/57fGpFTvzReIzwAGEwac6qqPYYPatKpVd3BBOdcqw46ybD02mr6tUscS6iUPUeMJe8NgsAYB94frzVroq+wmeFqSmxM7bj/rzCF+UF+zGlVkdTrWLqcGOe6uymlKRDC9v13ue44QAAvwQ8P951grgE/WOqQXiYiElVTZmW2EDnaGJRp6IOOH6aqKMq7vbCEiptIomzFgCADeH58a4TiORasB+QxnQ9L9tlpzAN0q++sFI9d2G96ecA8Q4xPb6NbEerdqdkdhUAAMvw/PjeCXShCuf6Nm2mmhVlL+gU2hy11d76tNMr5amYk4u69mTbE+nacVbVBgC4m12eO+e717DTSeXc/v5dbF7c+q6vvKR7jfIu8YzZEzlTNDq9IA2oZk0t0Febbk6n5KjPd0onAMCF8Px4q338vNZjf5SUikw9QCR571iqJ3YOq69tftzGqbqzQ847QfQMV5quWuzDQmfVBgD4JLt8j087zbCjMCQxq4oXeaY8II13PKBrixUNh6ao1tWtopL08qiKitOZEiwi29cqzD/fYafTBgC4m33/Bk4VX3UKL4mz2h+ruaZaUTEOVYW0fu1el6CLnpEkRFYlRPL3/piFWnMd6hEVq/PSCtui1RQAgPvg+fFz1b+Cvw8Xlljz+Dh03uNTdxxKisZcDQEAPBWeH+9O+SLavcwMQ9KicSuGm/Me8iOHydOeagliOTFDpQ0A4AFs+rds/8S5qW/Ks9Xtr93r2hJp0WGwn3Y4aiafVbXVgQIAfIatPR4AAACWweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmeDwAAMAzweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmX/b41+s1Narjq4DhrOXMemhWzLJ4AACAyIc8fsoF9ejUlFdDjNT4dYerawPweAAA+Ayf+x7fGt4ZW3U8XuQcZhOG/U7YNdJala8PPxB05fy1AAAAtHzB41scwz7sjwW+YVcxIn5o4TqgXYtOOFwUAACAw3f+PV67dez3v/vqAFFdf4ZIMzvxrf74muocLgoAAMDhF/idu8r/oheaHr+A/szRdeqPCMOPC7EnJgQAABjyCY+Phmd62JRnL3j8lIzUp7UBD5c8pdYJAAAAePPlf4/XvI1waMbDMGHeaV3RGVPpeNHWRePq0okAAAAp3/F480utsOS0LWwyxf8oEIde2aeKqq74fKB14u4AALDM1zy+0xE/AcQwnWGY1ol3kkdtw88E1WsaP8wPAADgsO/3+DilGhKdQ4+vEMnfHiwmRrVxaOjiVTYAAACHHb/HV53pd1ydxHRHJ2z2A4c5t4offvgQH0d0zpviAQBgNz7t8eJLcBTnd1ZD+tPA1MeOTr9ZxSnUxYu6w2ABHg8A8LvxUY9/G4ZpxlWYdu5h2jRP2u46hc13yTt3HH6YcD7lYLcAADDF9/9bvfhmLL4uC0d81XRzh58VtE6nhIgU8VUnNg8AAD5f+1u24sfYmX7NvcQCtfV+i0rD14UBAMAvxJf/li0AAADcBB4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmeDwAAMAzweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmeDwAAMAzweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmeDwAAMAzweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmeDwAAMAzweMBAACeCR4PAADwTPB4AACAZ4LHAwAAPBM8HgAA4Jng8QAAAM8EjwcAAHgmKx7/b//+j3/+1x9/6/+HxwMAAGzEgsf/t3/793/887/+8rf+f3g8AADARpzw+P/d/e9//q//838BlTYMKVOCJ7cAAAAASUVORK5CYII=" alt="" />
ManualResetEvent使用的更多相关文章
- C#各种同步方法 lock, Monitor,Mutex, Semaphore, Interlocked, ReaderWriterLock,AutoResetEvent, ManualResetEvent
看下组织结构: System.Object System.MarshalByRefObject System.Threading.WaitHandle System.Threading.Mutex S ...
- ManualResetEvent知识总结
一. 用法概述 Manual发音:英[ˈmænjuəl] 直译,手动重置事件 开发者的可以手动对线程间的交互进行手动控制. 二.构造函数 构造函数,如果为 true,则将初始状态设置为终止:如果为 f ...
- AutoResetEvent ManualResetEvent WaitOne使用注意事项
公司还用这些老家伙没办法,用了几次这俩.每次用都要重新翻一下A片. 好好的A片楞是翻译成了禅经.把这东西弄成个玄学.微软也是吃枣药丸.参考了@风中灵药的blog.写的牛逼. 还有一些公司用到的风中灵药 ...
- 多线程中的锁系统(三)-WaitHandle、AutoResetEvent、ManualResetEvent
本章主要介绍下基于内核模式构造的线程同步方式,事件,信号量. 阅读目录: 理论 WaitHandle AutoResetEvent ManualResetEvent 总结 理论 Windows的线程同 ...
- C#线程同步手动重置事件——ManualResetEvent
和AutoResetEvent类的区别是,Manual一旦set后不会自动reset,会放行所有waitone的线程,而autoresetevent每一次set之后只会放行一个waitone的线程,然 ...
- C#多线程同步事件及等待句柄AutoResetEvent 和 ManualResetEvent
最近捣鼓了一下多线程的同步问题,发现其实C#关于多线程同步事件处理还是很灵活,这里主要写一下,自己测试的一些代码,涉及到了AutoResetEvent 和 ManualResetEvent,当然还有也 ...
- 多线程间通信之AutoResetEvent和ManualResetEvent的原理分析
AutoResetEvent 允许线程通过发信号互相通信. 通常,当线程需要独占访问资源时使用该类. 线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号. 如果 AutoRe ...
- C# ManualResetEvent和AutoResetEvent 使用笔记
一.两者区别 1.ManualResetEvent 调用一次Set()后将允许恢复所有被阻塞线程.需手动在调用WaitOne()之后调用Reset()重置信号量状态为非终止,然后再次调用WaitOne ...
- ManualResetEvent详解
原文来自:http://www.cnblogs.com/tianzhiliang/archive/2011/03/04/1970726.html 1. 源码下载: 下载地址:http://files. ...
- 个人对AutoResetEvent和ManualResetEvent的理解(转载)
仅个人见解,不对之处请指正,谢谢. 一.作用 AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne.Set和Reset. 这三个方 ...
随机推荐
- 2016.11.14 MIT challenge之课程总览
Degree Chartshttp://catalog.mit.edu/degree-charts/computer-science-engineering-course-6-3/ MIT Chall ...
- div下拉框(待改善)
不说话,直接上代码,其中函数dealchose()没有实现,各位就不必纠结了 <%@ page language="java" import="java.util. ...
- [转载]UDP丢包率提升
UDP丢包及无序问题 转载自:http://hi.baidu.com/gamedot/item/96cb9bf1a717eb14d6ff8cd5 最近在做一个项目,在这之前,做了个验证程序. 发现客户 ...
- 【电子签章】HTML格式合同转化成PDF文件
代码地址如下:http://www.demodashi.com/demo/12476.html 一.主要思路 通过itextpdf 生成想要的pdf 文件 通过itextpdf 中 XMLWorker ...
- shell脚本实现定时重启进程
##############################Deploy crontab for yechang ad*******eta restart ###################### ...
- 应用程序之Xib自定义Cell
效果展示 结构分析 代码实现 一.效果展示 二.结构分析 1⃣️首先我们让我们的控制器不再继承UIViewController,而是继承UITableViewController.这样就直接遵守了de ...
- ubuntu 下开源安装
常用开源库安装: 0.安装g++: sudo apt-get install g++ 1.首先不可或缺的就是编译器与基本的函式库: sudo apt-get install build-essenti ...
- Scrapy教程
Scrapy教程 原文地址https://doc.scrapy.org/en/latest/intro/tutorial.html 此教程我们假设你已经装好了Scrapy,如果没有请查看安装指南.. ...
- Docker入门系列3:使用
入门 首先强烈建议玩一遍官方的入门教程,Interactive commandline tutorial,下面是答案: 查看版本:docker version 搜索Image:docker searc ...
- 20-ab压力测试及nginx性能统计模块
一:找到apache ab模块. ab -c 1000 -n 50000 http://127.0.0.1/index.html 查看信息: 超过1024个线程 出现错误,说打开文件太多了.cket: ...