1、安装log4net。

  首先在VS中通过nuget安装logenet,我用的是VS2013,截屏如下:

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2sAAAIlCAIAAADE8vdvAAAgAElEQVR4nOy9e7AV1b3vS1XqpGpX7apTp27d2nXPrZp1a9e99+zsc2pnKyb7/nHrRrdHL2fefYT1BI0gaPAB7iBpXCqvHA0+IKCCRhsFFIxbWIqEAMFkCpoEE7c8jLgMbGRC1AUEFo+1WC8W69H3j9GP8fiN0T3n6jm7e87vt36raq6eo0ePMWY/Pv37jceEX35y7nRX/4FDn8NgKbHTXf0wGAwGg8HSbBNAkLC0WeJXBQwGg8FgMLOBIGGps8SvChgMBquE7dn3CQxWMwaChKXOEr/Lw2AwWCVsz75PRiCoVgSChKXOEr/Lx2iPr94Eq2FL/ASDZctAkFAtKUaC3DQzp9X1S/Yq6fcuvuHGxTu0GW5fcuPMtd6/O5Zdf8Oy7abddbltmpmbbSeNRLCSLPG7fIz2+OpNSV/jUKUEgoSVaiBIqJZUDR/k9iU3UgT5+YG1s3MyF35+YMey62dtOhBKkF4y+l/u0DlqOyzNlvhdPkYDQdawQJCwUg0ECdWS4iRIe1YuYD7OAoLcsex6vZ8yl/OciGtn52Zt2r7kxplrKb/mDcu2r50t7bV9yY1EPnq3KE20sHRYyF1467ybVnW4nw+suenmNR92day4eV67Pn3u5jUfUl99uGqSnxX/ObADa26au/N0V3/7XOIsmrM1/IEBgqxhgSBhpRoIEkqzfv/737/00ks/+tGPXnjhhV//+tdXr141p49KkD/f+d7fX3ONOU0kgtR7BO1ZMvlpfZBrZ3sIyILXm2Zy3/r56ByQ9iwQZKot5C4cgSBJ4AvkAmXHipsnrTjg70VhaECQfEr3EOMgyB13Tpi48oj+ujyycuKECRMm3LljZGTHnRPu3FHaXWDHnRMmuLvvuNNwnLBSQGaBIGGlGkGQhzYu393pf56/fOPG5cEGVZ27ya8PbZyvFZVekw339cZDhrTSJl1uhzbOD7KJWxXNvB712muvSWfO888/b4bISAT5853vTZx43bXXXmtOZs/SPrIJglw7W8I7Rn7bl9yYy822vSi2mufMtTJBzpx1I0+uLkGunZ274UbR5emSpY50YSkx/f23Y8XN3o85d96cAAf57a7LMBzvDqy5ae5OLWvevGZF8NW8OXH6ID3AE8VYzkVHHxqPrJwYDSC9HfmdR0YUgqSPLRUCiiYQJKxU0xNk5+7l8+fP33hopHP38uUbNy7n2M9EhzQfctKi4qGNxK4eOYYQpPC18i+3OZTxxDRcTcPhMApBslYVMiXrDf3+97+fP3/+woULDxw4cO7cuU8//XTp0qXz589/5513DHuFE+TPd7537bUTJ02a9J3vfMf84A/3QQYWPsDFJ0giTyqK7SdjBGnPknyTwVAbEGTKLeQuHM0HOWerxhPpRbSlsPWHqyYx+hRM74OMaBJBMs6TkfDIyokCuh1ZOZEl4bEwKuOJzEgQZKkeTUgnECSsVBMJkuObwPUY8BrvneT3KcndF6SXaEpHooc2zt94qHP38o2HKHJdvrtT2Lx8d6eUsV86LfgG5ecrc2ijwI0cWGs4MSpBKolC/K/1qZdeemn+/PkHDhzwt3z++efz589fvny5Ya8QgvTx8dZbby2bID3bu/gGjb/H1w3LFusdmX6a7XIUWzi6Gg3nWTNCOWEJW8hdeOu8m+bOY2BnJsjTXf2nuzo+dMmvY8XNOa5D5M45uZxAojkquq0SpHvEfm5HE1zyBHlk5UQGgALWCaFkFRkF3ovCf1EI0uQFhSILBAkr1cJ8kB5K7t4YsJbZBelRVySC1BMXR6vu8bQ+yCAp+0IAXf8fHfrxLkCuzIc20m7HkghSraFmdwTAFT366KPz588/f/48v5GdYIa9TATJ4+N4CTJC/JrM8PolyxZ7/sugXyNFkAcO7V18w2xbIkh1rHfYLEKwxM14C/ZBcCcZxWbgyAHfzjnuVwLnfbhq0k03+z7IjhU3M5/lpBUHOlbcTJDlCp07sxSC5LTjzgkeyRFI6IPijpVeaHviyiOBq9JH0UCEt5IERI5Bjxw5wu0LfCxdIEhYqWYkSI0PMiA0F3wYbPqpfYIM8S7yfKUgFDtI5+7l871DbDxE5MnCwDxBbtwoUJtf5vnLly+nSsEdmSNTOrTMHd8rnesZXb67czwECS+kItu258+f/9lnn/lbOjs758+f//jjj0spd+/e7f8sJoL8+7//+2uvvfY7niZOnGh+8JsIMqDGvYuXzJ7pexMPbZqZI/ZiY6vZ9u1Lbrz+hhtz/ABqmiA/V7YIBBmM175h2XZigklYWkx//+1YcfOkFauiRLEnzZk7SevGnruzfdWadi+K3T7X8z5unZcLHJMelc7dKXslNSO7SdONxabD2Uyuh1DwTMpRbj3xhfkgvf+P7LhzInyP4Vr53Pr/9Rv/j28rn1vvfwWChJVqJEF6rkct+41IIWiNby/EBxmeVtiLESTtwBNLKKIpgzvJN8ljMe935D7SSMcjoN9VVFcLmiCpdoMTUtbmzZvnz5//6KOPnjhxYmRkpLOz88knn5w/f/727dvVxNu2bQsnyFJNmMFRNAouuRAz55JkQ2euX7LXnpVzZ/O5YZntDa9xkyn9IMVs/ZSkD9LLAfNEptVC7sLh/SCVUdVb5/l9HP0AN+sH2T43l5s7b44LhTvn5MQd3Sj2zjm5eStWSUgaqWekSpC6sSw+2a288847J3rDqHfcOeHOHUdWTpy4cke0MTUSbRIEeeedencl+khSWvrEGoaPS59Yw28HQcJKNbIfpMhOev8YD0i+t9BTGBOF9IJk5dgdEjB3+0GKUWzh6Go0XKLhoJxSJ8hoBMnVUYqBk+itC4LDCSlo79695K/95JNP9vf3k7ts27Zt27Ztsc4obpjukZGckCAgQtc7KNKePUtIExDnrE2UD9LEo5QQyE6vhdyFt867aVXHhz7PSWOxWYBbchP6BMl5EN0cGCD66TnWdNPP3cn2al81iR987QbKS4liM3acOHEi4fTzSM+DRTeKzWLOHhVGmX1H6iopEaQ/RodIjkE2Bi19Yo2EjyMgSFjpFt4PkpfIi3qmY9noCTJC/FrVoY3zl+/evdv7LmAxiiD9YwgEGTIQiC+KDiGjESRRT3IXw771Kx4fbdv+8Y9/PH/+/Mcff3z79u06fPSFdbFhqbOQu3CYD5KYG1ziQjnZzjk3r/lw67xcbl47C2r7ib0ZfwRm5X2QpfeDlEPSTB7p7bjzzh0u5wUT+QS7MIbUR7GVyX8kglSmh/SxkS4WZBIIElaqGeeD5HFHP+eMBn5MTMT7/XZv3BiQJz1+hY8Wd+5ezjo08pNWUgQ5omwRCDJg4OW7O91UQh07dy8XvLHEWOz4CDLKPEP1Ib5T4+7du0vdHQQJS53p77+urzHwBRIEKdMkwz11vZmAILfO85yR3F7eVJE3rVrDPJQfkj7IsAcGSZDGKPaI6imM2A/yyMqJShxaQEaCEuF4HIdAkLBSLWRG8SAeK/NNELVm4CT1CTSOtKbgkp550e2Tubvz0MZgzMohKWCu9IPUHErn3AxSyQXjcxY7P3IjaQzVCusHKc5YRDdWPWmc+DgCgoSl0BK/y8dopfogvSRcaDliB0U6xM3nK4CpD7LwPJYtECSsVJMI0h9VHbCTh1Y+8+z2qI6gS7bF9xaaA92awThkZ0xpckaBbAkfpIlH9QVKqjsiOkG68gfEbNu2rbwcQJCw1Fnid/kYDeti17BAkLBSDetiS6p+PBlr0vBiA2LK3h0ECUudJX6Xj9FAkDUsECSsVANBQrUkECQsdZb4XT5GA0HWsECQsFINBAnVkkCQsNRZ4nf5GO3x1ZtgNWyJn2CwbBkIEqolgSBhqbPE7/IwGAxWCQNBQrUklyBhMBgMBoNV1Pbs+wQGqxmb8MtPzjkQlDIlfqOHwWAwGAxmMBAklEYlfmHAYDAYDAYzGAgSSqMSvzBgMBgMBoMZDAQJpVGJXxgwGAwGg8EMBoKE0qjELwwYDAaDwWAGA0FCaRR/jiZdFgiCIEJ//vP5Ug03NCijIs9nECSURoEgIQhKuUCQUP2oGgRZifmlYywelBWBICEISrlAkFD9CAQJZUYgSAiCUi4QJFQ/AkFCmVF0grz3G4sqatWpLwRBmRMIEqofgSChzCg6QT5w3WMgSAiCqi8QJFQ/AkFCmVHdEGTByuVyOatQ4cMkrKKdr4NaQvUmHSY+sXwtCBKqMSVGkPasXC432yYBccey63M3Lt7Bp3R1/ZK9IMi6VaYIklFgIDMpFe18Lpe3i/y+7h7iV5GOZU6dFoEgoVqUDh+ZgSChWlIyBLl9yY25G5ZtXzs7d8Oy7dJ2STcsWzwrN3Ot+y37AIKsT9UwQRYsLfgZvtIdCwQJQUnJgI86iARBQhkVebZXlCD3Lr4hl5u1yf137WzJE2nP8r2Pm2bmZtuHPrcZQe5Ydj2HmzEWD8qKMkiQEh95NOghH0M9AQCtAr+v+JVt53k+LHr/slQiN3p8VrBYVux/kTClDNh2sWxcXcQU3td8Pb1jSXXyGkEqEkeQ/PEhKNMy4yMJkSBIKKMiz/aKEeTa2blczvcjcjHrIDx94NDexTfMtg/tXXyDi5KMIDmyBEHWqTJIkBK0MfbK50W6ikyQhSKPkAGB6QnSPZZVkMtjFeQ0rJh82Qi+5fISvs3bRS7eLu9CHY4jSKr4EJRRheKjCpEgSCijIs/2ihCkPSuXm7Vs8Q3ysyWXy+VysxcvuTF3w+yZxLezZ87KzVy7aWaO81yCIOtSNUKQ7meBBsVQteC/FL7idlJdeAKvuT5HgsuCDN00HN6J/4g0GyBicOiinWdI6CUNAFJ0UubtolwkNxcL/AjVkioyFpt8y/IuOFVFO2/oIKLfr2oqWNUoAX+DqyFFb7yina9wOyc2kmb7khs5v6PJbK4fJEbS1LMySJCaKLbyT1SCDCLFfC9CPUEGx+ej2CJB8kUQDioHv4PceW9j3rYtnysDUFRj7XKR+Kxr7R4P1a8qQJDcpeJf227nE9Hn73n21fuBcgfgvgwnEjORlqGyCZKva0jSop1P4sYitnMl+A0EqSfITTOFs/vGxTsCgjxwaNNMrytkjMWDsiIQpP+/2yVS4D26HyT3n3KsyASp3ITc/GzLf4IxkORcot6hg/9IgnRrAoaEakSxE2RwwbrXki0RpOOQr23+xShfW8p+ubxl2YYLsGjn8/lYcaw8guQrU7TzIeXhjlFNmKz8sUIar6rkXF2CXDubegnK5YJ+kO7oGX5UTUCQ3GCaGIsHZUUZJEjpXdRMkP6bNQFz0oZ8Xp39J5QgleJEIEilIsIcQ+5TRfiHqLsQG5cJ0vdzgiGhWlC8BClN5lWw8nahYEkEKV9Kitzha0bl7QL9uugU7Tw7WnyXaFkEycpRzjFAkJVSCn2QFEHOctETs/nUs8ZJkLP/j4eX/renp/8v8/0t8//hR/O/9aN7v7Ho+9f+j0X/dSWzh29Y/s9//0P/30X/deXim1ZVmiCDW79CkOJXXNZSZNtIkPwQa7sUH6RQAKJUQoCMu22ZxmKrJRQ6YUJQlhUrQapI6PVD5ggySCTcTrQ+SC+9jCH6gIN39wq+Y5hCxZSlkLsrdT4H904kppOSSaIqI+5FvHiLjWdbwg04SM33TlduW25Nlfd9qpAkwOnuh+pnoWXICTGEL+QCc8ncM8UvC1UG7eGiKoUEyUuKYmMsdl1rnAT537/2Pcdxes72fPevHmBbdjy/52fP/urebyxav6D94pme3//s0O+3H/rl+t88+k+rf7/90N7Xfuc4zp5NH3z484/v+ZuFJRJkBaW50UMQlLzijmJzfRALFkmQTEFfElkkQ0hkpb+ZBODII6T4OhjAWNG2+NCIUG4xU/710x9oKORPwKJbA/4btRVkLORz41Etn8+LByYLL734hhZSgH7fcUCUUEuQZMuIv6LfCUFTYO7ln/oJxJ9GOVwJqiJB6kPYTNcv2RsSxQZB1rfGSZC3fG224zjnv7r46P/37Ny/W3LvNxZte/qXb63Yfe83Fr30wBu/3bL/7v/zkXv+ZiGDxXv+ZmHDX9zjOM7kr8+W8DFpggRAQlB6VTmC9D4RI2ncELTg7hfYxodH5cYRMjKbJyZ9XFj4l/CLyQeQOIzr5RmBa4WQh5y55M1TSut9LFh5u1iwXB+u6FwVyFusaXghFazUldDgg1Rbhs9B/NdUYP+jtpWow5Ui/jT+wydHmGFdbCiNioUgvzkh7zjO/zthhkSQezf97tb/6fu3/c/z7vrrh1j6xr+413GcKV+/u6x+kBVRCQMRIQhKQpUhSJvr6KGNYvupJFHdUSKxmrZPs44g+W6bWnxxInFSiDw3GsFGqstUgjWRHQveHmThVYKMMG49jCD9TkTjI8jQApsIkvT7giCh2lUsBNnwtXu2PLHz5OGv7vrrh3iC9Pd9bem2tBMk/I8QlFZVMIotKfAeij2ndftIo3KUXIjohtzzUAjBEi5Pidq4UKkf8LZlJuJpho/VUuUnUE6Jz3L9HEmPKT+ynH2mkZNm5bBCEqFtTQm5qLHYVuaW4X7F0AIboth0zwQQJFS7ioUgb/na7Iav3+M4zj9/84fbn/2VT5DvvvpB81/Oafn3c+/83x5MLUFCEJRyVZIgRQb0qcB3FOqj2P5Wgw9SJUh16Iq3pWjnvdUABHjlRvVYluhj41NqwIUehUPXIGTcHtVtk68n16LEsBSu8AoRhhQy8kgaLifucJqW4UfvBKOB6NYOKhtxJA0IEqoHxUWQ9/3t4tZ/f7/jOGtmvxL0g2zff89/Evo7giAhCCpVcROkDH5C3NoDSG5YBCVuTEip/SANhUJXGggECWVG5RHkPf9p4TN3rp/+H3/gE+S931h0398ufvfVff09V7b+2PNBbvyg9d/Pnfof7p/2H/6ZjbMBQUIQVKpiJ8hUCgQJOU51CBKCYlF5BDn5a7Mdx7n/m0snf/3uK/1Dkz0inPy12f2X+jc/vuPebyx68f7X+d0nf232vd9Y1PSX913pH2r4i3uqR5BlzaeQKYU9eGJsgWo3pjBCtE5V0mCIKIlLG12RCoEgofoRCBLKjMojyDn/eXHTX9w79++WzPkvS27/q/lz/ssStv2+v108/T/+4K6/brv3G4u+978/fPtfzfeNpZnznxfz6UskSCn0FO1mWw70iAdK++M2LoLUTWnETfxbXYLUVCyDBDQegSDrhSAhyHFAkFCGlKlVDaO/o2unpR3H7qlVXKUt2vlcMIiS35oQRmsGfhbiXAou/ao2Qabx5AdBQvUjECSUGYEgx3egNChOgrRsKbOinReWLaumQJCOA4J0HBAkVE8CQUKZUfYJUl2ElFzGlN9oWXwslnigqgdiW6R4rhRND5axyPFrcWtWYlVmHyPXDiNni5AKI81VpoT3le81fQCClpIbR5hujZjJgpvMl2uisOk2NEvDBW1ASPylIlSHLo/hFzHN0GH6ccv59amzV20Qdbn2iIl5adLILSheO2FNXDWBIKH6EQgSyowyR5DKw51chJScAJbbKIKbeZI3H48EhtOsVEvMRqxdGiFnFYQvlSVllRlr+RlEZKDUTyHiHyPEu8TnIxadIEj1YFKpNIUnyqCrpnb6Yrle+uqErb2r1kJXmCg/bsm/vubslSZY5gmYzkHT6EKlqDRhSwDTCRIQCBKqH4EgocwocwRJ+yDl6VvDCFJYfSHKEgjEoRXvDF8S6rPiVeMdiMSSsrJzVEeC/kTEmge8RDnaEKaQf94uCo0ktWuo41ZbeKUM2pRhBBm1OlxaqfHVWpiKbfxxy/v1ybNXKgN/hNAqkBFqYxrlNJabOg1eSBAkVD/SEiT/tIbB0mbm07q2CNJNqnFjhREkP40w7WTSMARBO0XtkrIEzRCxZK80ee0oaRoJ1MSyjzbo/RgPQfL/c2XQpwwjyMjVoQtMbdQWJg6CpL2DpRBkiXQYkoY+jeVOD0qCBASChOpHIEhYJs18WtcYQTpFO5+3LHrJqTCClNAmIkHKwcSggPSSsmpElX6Ye/9yRaFrU7TtgrRJV0c+EKuNYvtf216gn8tTU3iiDLpqhkexI1fH0TS+WgtdYcZNkNoCqGcvn5KHuNAq8Il5adLQpzHd2UN3clVHsRNk0GWAq1nB4t7EFI+v6M/24gf+t7bQxcbosyXjHhDkCgQJy6SZT+uUEKQcBqSfwV5S0c0YbHQcR9tpzIkQxQ5Koll9VfOZjAjyD2fuyeaXUdlDQ5BBem3Zg+zCPK/CPwRB8nWho5+awpNl0Kbkf1r+t9NnRVdHLLDc+OI2sjDjJ0iyAPTZyxVBHAhPVkGXmP4pSlkCWJOg+oqVIAXwC5ah9nqCuD9JIeih6l2h3oXK3TiCa9f/JF/CqsZNkLo3BagmBIKEZdLMp3UKCDJm0XFFCIJSpgpGsQvebAN+X+JgSzhBBh+l11vNa413yPEQpBu0KP3elWhHBCiyQJCwTJr5tK41gsTtFIIyongJUvU7FzzvI+2JdtOqBMlhpsYHSfXSHRdBev2mQZA1KxAkLJNmPq0f+s5TD1z3WOWsOhcnExXrhSAopaqYD1LhRC/Ur+vcIhAktzfVD9LvnGwgSLr/Brdd6cYgj7byRr3JBec7LohlReQl3QJBwjJpSV84EARBhCrmg+S4j2EY8zQGg5SUCQQ4gvReRAuWl1OJ/SCVYVvEMLXQeR8kPyjZOzzoqonX5vQLBAnLpCV94UAQBBGqmA+Sm8eArSiUzwfD2kQHpbviUECQxYKVlwgykivTJ0hi6qicVdDOviSNmCNmLOBdlERJQJDZUGUJsn2ucGbMmTsvN3dn8JX3+XRXx4qb57V39Z/u6v9w1aRghyABDCZY0hcOBEEQoZgJ0gcs0QdZEMf7ixN1qQTpqP0nC1bOsqy8bVvS0qny4XUEaZgQlBiqo/CmJocgfxBkBlQmQXae7T11ri/Ck37nnNy89q7+01vn3bSq43RX/+mt83Jzd364apL7r2sCQc7Z2n+6q//0gTU3gSBhGkv6woEgCCIUP0EyELRs3gdZ9EHRJzZhyLWRIG07n7NsO+/9uSxq7AdpmHw0ZI7PEB8kPXUoCDIbKpMgX/uXrTPvnB0BIgWClFySuVxuzlbRTzl3JwgSFsWSvnBqT+OfL6hykw+7Lo0aeqJ4bRXeEU2v8ewLVUwVJUjZr2f7NCnM5iN2WOTGYrO9LMuFT3eZApfhyhxJw03ESc7xGUaQ9NSh5KSqUNpUJkE+tmz5XbPve/ChRZ//6awx5c453pkROB19f6RvB9bclIMPElaCJX3h1J7SS5C16I4AQdasKhbFFtiKcxl67kYpKTdCWnIWiktfKUQ4HmHe2jpT+QT52LLlv9/fEQaRShS7iyBIr+/jvHYQJCyaJX3hpFxlQFd6CbIWn0plt1Ut4nRtqWIjadKpop0XnJQ1d6lCJo2LIE939YdBJO+DXON/5sPWp7s6VsydN+fmee0H1tyEKDYsmiV94aRcIMiUCwRZs6ozghRi0DV3nUIhGi9Bfnr0i8U//NHR4mlNSsIH+eGqSbmb13zopflw1aQ5W4ORNO1zJ6040H+6CwQJM1nSF04EkesCy3PnRtxCZEZnL+7OB7CUW7w6i28w2S83R0jIDMDiyhhlTD4sxmIVWuQnQi5oc2ZcVbCIh1jESYzlWev4BpCfikTTcwWItJ2PYhONpqwFLQUm5VXUTQtkK3XXnzlQDKo7goTqWOMiyDB87KcIsmPFzfNWrJrnYmJXf/uqNR8GY7EDlPQI0ssBBuMs6QsnVEXb8p7Y4uy7KiApW5T5dVXHU4grSjMdW7CdLgk12S+9UTO3cFmTD4vsptZKYjsqZwZFZINEncSYnwE5n8+r6YK2JX5ZsQDh21WCVH8R7YG4d4jwBpfrDidmhQWChOpH5RPkAz9oC8PHfo//vFj23J0eSu6cw7khA3A8sOYmf7tPkEJKGKz/dEZuuIQLSeIRcosobtZdaeI1wuHGH5mcajjnr1BB+uqIiTZC52/jqbScyYe5T3Rsl0goH9qARZoqqG0SFDNvFwuWu4luYcWNJxVAVzClrfgN1KFMB9LuS34hTJ6CeGPlBIKE6kdlEuRL6zb991savjh9yZzMm6lnXjsDx63zgvg1/9kjyPa5ObcTZJdHkIhlwyhL+sIJE7m+V0SC1D7c1dk2qPk3hENqMoyZIEX+0yXQEqSbQoeBRoJk/5dOkEQje/Ps+exYoACSXrmtAgQZeiATQep/Pj53cGQFBIKE6kdlEuQXp7tD8VGwrfNumjvvJjEe/eGqSd6qMx0r2Egawd3oei7lqX9gsPTfcEU8osK4Bdvzhum3OO78ukXbFvrVUVsESVFsdcJe8rjRCFKNmQZ8V+7kw8VgbjpjW+pyLpEg6TZxinY+nw/Qz49l6/LjflnuY6TtdBRb+EX0BwqPYhPE7dWdOpcwK1CMAkFC9aMyCRIGS9aSvnBCxU2za1l5ESKEQQymLdRACR4M9cMhhPl4yaET8nGjE6Rw8NJG0nCtIk0+rHYDdLivwgbxlEqQpjbh+IwsEPnLFu18zrLUn0S3nRpJI/8i9CkU/LIRR9IodZfPHBBkrAJBQvUjECQsk5b0hQONWwoYZplidAiLcSt1JxAkVD8CQcIyaUlfOFAZKmonH848aIEgIVdxEyTr3kA4ijVdWcX+IRBUSYEgYZm0pC8cqCxxsWMpIp5xzAJBQq4qSpDcBaTDxFIIkuzLIR5adyRhPgMAa70KBAnLpCV94UAQBBGqPEEqsKfMTiVJ20VYnhSVF+f1FAaeBccEN0IgSFgmLekLB4IgiFACBCmlptyCYbM3KVOfCkxJACYIEnJAkLCMWtIXDgRBEKFKEKQfLbasvMm/qA9yhxGkMpm/uMG49AG6adSvQJCwTFrSFw4EQRChyvgg3X+YD9Jm611yi1b6KfN2gfWDLIR5K6VjED5LI0EKKcQmEioAACAASURBVOGNrFeBIGGZtKQvHAiCIEKV80HyI2nydlEEyKK3Ars/kibqkBqql2O4D1JMCoSsU4EgYZm0pC8cCIIgQjETpNvz0fX0cW5GPoDMr3XOg2PBChsoTeOjI2GheUoBEGT9ykSQAxCUGoEgIQhKv2ImSHfiVI4grYI0BZbLiQVb7iPJeSqpfpBU/DnYxlGjj4jBt/5SoKbVpKCaFwgSyoZAkBAEpV/xEqQ3+Jqxm80A0riiKR28JghSngPIXTY9oEp6wVV+jXpq1DdUTwJBQtkQCBKCoPQrZoIsWHmrENAco8hgLXsVIrEmDVQ9gSChbAgECUFQ+hX3SBoISq9AkFA2BIKEICj9AkFC9SMQJJQNgSAhCEq/QJBQ/QgECWVDIEgIgtIvECRUPwJBQtkQCBKCoPQLBAnVjypMkLsekCeoEvXALi7lpOc+o/YP0kB1LBAkBEHpFwgSqh+VSZB9fX39/aUj5q4HVEr87LlJMlUG3Al6hFyBICEISr9AkFD9qEyCfPvtt2fPnh0FIhVADOTR5GfPTXJJ8bPnJk167rOBXQ8AHSFJIEgIgtIvECRUPyqTIFesWHHfffctWrTo3Llz5ge/C4VMnA9S2M7+8UkSBAkpKo8gx8bG+M+kKnNlQRBUjwJBQvWj8glyxYoVHR0doRAZ5oMkvn/ggQfUdFCdKy4f5NjY2Ojo6OjoaIVRUli4NjNyV77gVrygquCuwxt11YtsNgUElSUQJFQ/GhdBDgwMhEIk72vUfR4YGBD8k54Pkuo2CdWpSiVInwg/2r//0ceW7frFbn/7qKIKcKSCTcIqtNXBKYEHdeXS71E+QYoLq4EgoToSCBKqH42XIL/88stly5adOXNGlzK0HyQ9kgYECYkqzwf50f790279LrM339rKNo5wIlEy9stMoMdqUqSGY7WHpphTk6uJIEt0UkJQ7Sh2gixY0tuYfHmStxflXlOw2DXprbCdxP0IqjWNiyBD8XFgQJimJxgyw/sgP3tuUu6BXQO7Hpj0wAOTHtjFfQWChHyVRJA+Ba5c+bRPkA89/AjbODIyMjw8PDw8zCDS/xCrS5JDNe8G79+i3Q3sscBu6O53wj/8o8F9hHjfM0TL53lQY99J3CYRI/8v/yTx9jL4IP3k3tG50guZKM5WsgxUk+Ttovcl8BPKqOImSO7ykW4PoeLf5AoFS3mv86ASgspU+QTZ1tYWjo9Mux7I5SY9t4uRoiQJF3c9MOm55zxwBEFCvsojyF2/2O0T5Asv2mzjVU/DnkiCJDOMrOC+T5Ed+zZvFw0EKXsWuLzyjPNsPmfN00XAN+IfEea0BKm6OdhhiUyMBKnmw2136yXBJQRlSfFHsT0QJL2HpuskLBYAgoTGqTIJ8rXXXmtoaOju7o74+A9C1dpB1h4uch0kQZCQr5IIklEg+7xx46aHHn7khRftvr4+x3HGxsaGPB079vm77+7ZvKWdty3tbzLbsXPXZ5/9ke3FVApHBthEBY45qtQRpOIu5CJQostQzYYuiDaEHTxodATJEa/0D5GJ/OTS5cP/x39BOlMhKBuqQD/IgpXLW5Z/6YvdjB3HcdTQdHC58Rc29w8f2IagMlUmQfb09ETBR39qcH5CH+E8d6PWAVzyM/mAICFfpRLkyMgI+dXVq1eHhob2ffDBfXPub516K7OW1mktrdP8f5lNnXYbs5+88GJvby/bPTJEygRZqg+S8DdYBZUTvX5RhviWXxLJIyEdwUSQItPx/1GZ6AlSYkPuX2EPdKOEsqtYCZLrO+IU7TwXKSAIkr/6JIIUkoAgobhUJkFCUJVVBkGOjIzwwDc6Ojo0NDQ4OLhu3XqGjC0tU90Pnukgctad3ztx4mQpPSPVfpDBrZroBym493Sxb8rTyB4XtqmDlJup2A1KeeSEE6QY/padISX4IL1yyl+AIKHsK3YfpA98woa4CJJ7P4WgUgWChLKhMghyeHjY7/J45cqVwcHBwcHBt7f9rKV12ow7Zm145dUtW9qfe/4nzRxH6ghy6rTb2h56uLe3NzJEmrocikBp7BoobSRcjQXL7UCoR67AUaj1QIZEsQmPKDmsUxlMU1o/SBAklHlVjCA1Q66DCxc+SKjaAkFC2VBJBOkPsmYxax8fz507N33GzBl3zCoWT/h+yuPHjzc3tza3TGUmuSR5iGx/8y2+h6VRcp9DAbak9/1gsLZIiOo+VLBacXGqEnpByUfN23ZoP0gheYFzj1KZOGLwraSx2Oo/EJQpJeeDVF7MQJBQhQWChLKhMgiSeR9Z5HpgYKC/v/+dd37Z1Ny6fsMr/nyQjDJXr3mOJEjeKzl12m1z7/8+G6wd4crSjFqRhsLEIQw8gaD0qFIEWbTzfG9pfRQ7EEWQts1eAUGQUAwCQULZUKkEKTkg+/v7+/v71659qam59Y3NW/gEQ0NDr7/+L01NLU3Nrcx8mmxumSoFtc+cOROJIA1Yx/vgYrh9AyAhKEWKnSCV+WRpXFRFRjS8YXcgSCgGgSChbKg8grxy5YpPkL29vQsXLWlqbl23foPEl888u7qxqaWpubWxqYV9aG5p5V2SPkQePvypbpS3Lx8RtTdnP+Y0vtu32N0QgqDkVREfpHCjCCNIaq0Af2kb3ZI0QEmoDIEgoWyobIL0Q9g+Qd4+/Y5jx4750e0jR442NjY3NDYzfGzknJHMH8lD5CefHB4eHjYfPULHxHhUtQNBEBRRsRMkBKVWIEgoGxqPD3JgYKCvr6+3t/eRhYuZo/H26Xc888zq1376+tNPP9vQ2NzQ2DyloYl94FGysalF6hz5hz98cvXq1epcnBAEZU4gSKh+ZCJIGCy1Zj6t+W6OLITNCHLhoiWMCzlqbGpoaJoi2uIlSzdv3rJ585annlrhR7RbWqe2tE77+OM/gCAhCNIJBAnVj0CQsEya+bT2x2L7BDkwMKAQZFNDo4uMk6c0TmlomtLQOO+BH5w9e5bP6uzZc9aCB/1w9qFDHw8NDVXykoQgKMMCQUL1IxBkNezkVxfWbdi0ZOnStoppydKl9tp1n//pbOKVrY6ZT2t+Nh+1H2RjU3NjU3NDY3ODh4/Mvjf7Hn4VbF99fX3WggeZJ/LgwUNXrlwp93JzO7MLUvrJ04qYrNoqWGWM4ql4Xfz13yqR8ThLXlaLSfvG3oC6DKkT1pwLhnWBIKH6EQiyGrZuw6a97/1mZCTKPIJlamR09NDHh59d/Xzila2OmVtjdHR0eHjY7wqpEGRLoxfF9vFx8pSGd/fs0WXY0dHB3JAHDx4aHBwM/TmI5SPc2TNiIkhhRGWCZAmCLFU1S5AVa/SMCQQJ1Y9AkNWwJUuXDg+PjI6OVdra2toSr2x1zHxa+6sa+vP1sME0CxctafKi2H6vR4aPt0xuMOc5fcbM5pbWAwcODgwMRL6+JFwozaVjylWhyYSe3ePhocopzTATB0GWo7LapJQTNqaTO/MCQUL1IxBkNaytrW1kZLQKBoJk8lcs5FfE7uvrW7R4KZujh4PIxslTGm+Z3HDL5CnmPJcs+WFTc+v+/QeSJsiCpfIita0qAkGWKhBkjQsECdWPQJDVsLa2tuHh0SoYCJKJrT0ouSH7+/ufeXa1P204F8VuuGVyuA/ynnvnNDW3njx5crwEaVtcXFt4snOhaXI5RG+tW+JB7W3lOUFghiCuzq9yZhXYwmeWxUcxiUNwiYXy8XFV83Hztu1lGyQQGkQbRi247RIsss0nJlpNaVP3H7URjG2ufiuV3FSwsBbTlEepPp+Aam0iE7VVuV4V/PrnRL2EDMWSmUrL7cMvqi41LH/K2cUoP24GBYKE6kcgyGpYW1vb0NCIYB+smWrU6g+4lA++dULafej3q/k0nrW1tXWe7U28vlUw82k9NjbGIJJfe2ZgYICti60QpAuRJ06c0GV49uy5xqaWu++5r7e3t78/+u1eJUgeHEXmMzuJQgjS+5omOX4f4XgC2HAAolnPm0sc5GwgSN41yi2kISaQG0RuQG8vfqXxIIeibXk7BUfzvhbC/VQjRGxzYkuEgplbjP5R5LqLLaK2NpkJ2aoSVZvqJbCkm31oaaUzSCJPqk3C2zCTAkFC9SMQZDWsra3tytCwyT5YveDNP0kbi28+KFHlvg9WB5+pfNra2k52Xvjqz5dPnetLvNYVNfNp7ROkP6cPc0N2dXXNuGOWHMj2CPLxJ57QZbhmzfONTS0bN702boLkH8OS15A9RTX+l3CC1PsglXE9SlI+XzJUKiXms9YTpFTUgsYHKTWI3IAkAgpZK37Eop3PWZYY2acbwdjm6rd0ycnPYS1Gl0dT9WCT2NraSqmtypdHXy/dTxZaWn5XueS6l6RIP27mBIKE6kcgyGpYW1vb4JVhyY63Pyg7Hj0taP/T4JXhwSt/al+w+rde4gXtfxrct3rqs79Ts/Ktra3t447isZNnvzjdXdsQGXpmM4hkgWwWyx4aGhoYGNj69rbmFm1XyJdfXqdmtWPHjsam5tl333vmzJne3t6Y+kFSzOdupx7QGi9RkHF0klNy5AukcQCllSD5JYIl/18+Lzg1TViiaXP123gJ0oxJEQnS0KXBPS5ZHk29DAQZBnVGgiTLAIJMlCAPHr9up3rc83fdfWCC1o7vchznVOddwY79qx7tWHVKyqR/1aOGTA5MuPvAhJfPBwU4eFybBkq3QJDVsLa2toGBq5Id3/Lggi0n3X9/u9r/LGw//uaCBW8eP/7mgmc+YMmmsg8aa2tre+fdffs/Pnrs5Nmv/nw58YpXzkLP7LGxMR8iR0ZGGEFKvSHZvOJ8b8jJUxoWLlq8Z8+eTz/t+PTTjj179i5avKShsfm7t884fPhwT09PX19fpQiyaNtUR0JH3SaFN/mx2FwsmNsshSY1wcKinc9bFoFx0jGknH2mMR9XF8UeH0Fy27jj8kFqIpAcNEJYm8vflkiQphajfxSp7kHhbbofJJlJGEGG1Iv6ycJLa4xiK4yvbzfpc/aUXoLUgZpnKlDuelmlQ7b9wF0HHcdxnFOd1z3aeSx6GcT0QT6eju3soLgWSqlAkNWwtra2/v4hyT7fovdBbjnR339iywJ5+zPPrBbTvfm5mGdbW9v6V9945919H3cUT3ZeqOE+kaFn9pgnfkgNc0P29fW99/77s+++13dDeovTNHLTQ7JVapoaGpt/vHJVZ2dnd3c3C2FHmQ/SU2k+yCBUGCmMTEcU/W/yliX6BaW8CWZSe94Jh7fU8gUVDDuufiTNuKLY3AGC46oRWx+8iApo21z9tlQfpLHFyPIorc5/r/P4SpnQreom5IL3VL3477ifLEJpRe7jw95+chBkWnyQu17uWLXz+HU7O++S/Xxm9+HxXW6y83c92nnMcY7t7FCTSVAoSCbO/lUvCwAKgsyWQJDVsLa2tr6+IcmObX5wweYT5s99fUN9fR88s+DNY+zzr1dPfeaDvr6hXz/z4OZjcoZ9fUNtbW1Pr37xjfaf/+6jw8dOngVBkh0iGURevnz5ww//dfOW9g2vvLrhlVfXr9+wbt36lz1bt279uvUbfvmrXx09evTixYvd3d2+A7IUgoxPhuhyfMMO9I/uOEY3ZBsMSlXGx4NA5SrlBLnrZQ/yWBCZOSaJeHH/qkeNLOimcZ2UqrdShkt2iDCfJQgyWwJBVsPa2touX74i2dE3FB+jJ+uNIpXg2ffff3bq0/suX77y/tML3jgqZ3j58pW2trbHn1y1/tU33t938GjxTA0HsiOe35Ib0p8e0ofI7u7uS5cuXbhw4fz5811dXec4dXV1nT9//uLFi5cuXerp6bl8+TJbX3scqxqWLy5KrMh394wTWEzMUx4PFe284OyrI4AEQdarUkuQjB3NfRPD0zx6/K5HlY6MGoIMWPBU53UyQbrOTjeNlwAEmS2BIKthbW1tPZcHZXv/2alW+5HLgz2XB4+8seDp993tR95YYL1xvOfyYM/Rdmvqs+9d/u3T1rNPW8++x3313tML/uWokuHlwba2tmVPrlz/6ht7f7P/yOenQJCOZmYf1iGyt7e3p6enp6fn0qVLFy9evHDhAkPJ8+fPs8++97G3t9d3QA4NDVXugiTkAmJlaYSfTYVSuTzEhT7rCR8dEGTdKrUE6TiOH30W1b/qUT887W3ZKXslj+3sCFySB49LbsvSCdLNRyVIj1bpLphQqgSCrIa1tbVd6h4g7L1npk5d8Pp7W6ypz+yVvz3+urXg9SMDl7p/u8ra8sfu366ytry+im0Z2Ot9kAwECUEQlKDSTpAhHRwdR9O7UejgyAhSNzTH6yJZHkHCB5khgSCrYW1tbRcvDZD22eteqHrVbzVpfrvK2vLZpYGLf9xisQ+XBvasWvD6H4nEIEgIgqAElXaCDPVBnuq869EOtWdkGT7I8H6QB49ft7N/18vHd4EgsykQZDWsra3twsV+3t5d5XLjD17/3N245xmh0+Oq31y4+PlPLf9z/7urpq7c4+++4Kef9Ut5XrjYD4KEIAhKUGknSLMPkhGexrkoE6TvWQyNYvtSCNLtCgmCzKZAkNWwtra28+f7qmAgSAiCoASVboIM0a6Xj+9yCBejo/ogxdi3buZIWRx0Oo6z62WMpMm2QJDVsLa2tq7zfVUwEGTWRMzILX8fcQSKabT2uGXIPOS45BqJUUTVPDhW2dnK2UlzRUbKNIamjqX8oSqlUlHzG/85FnepUqbUEmSUsdhu0jAf5LGdcpg7jCCDaSYVQNTPQFnSXOVQEgJBVsPa2trOdfVWwUCQWRMI0rBjZQmSXIgx8p4ZIMj4R4PHcY7V/Bj11BIkBMUuEGQ1rK2t7c9nL1fBQJBZUxhJhBBkvI/jSjzcYyXIGLKlD1D1yc5Dyx/DbxFTpWI+KxKaV7564AqChOpHIMhqWFtb25k/X66CgSCzJhCkYUcQ5HiPAYL0BIKEoPgFgqyGLVq0+PSZ7tNneipqnacugSDTISHaF/xDL2GsrHQsrCmcEzPid+eS5e2iNgd+Y962Lc383mJuboEKlpA5Va/wNZq1D24OJgqWv4u7VSgttSw1UVkNmhCtwW3iFq8OMpcyJFvD0KR+DuLS0kKRDD+W9FtEWZLaVEFlF8Oi1dKK2fGeY2qpwkpCNx3XNpq+CGKLye2pOW48AkFC9SMQZDXshRdf+s2+/Z2nejpPdVfIvuq8uHPXnkceWYhVDVOhAI78x1rRtjiXl0RCApSIT2k/H2J36ZkZ5BA8eYVj8fupD2cVBpVns1qvYCdjBSnxRc7n834Px7xdpEtLECTv0iL9TLrW0PkgyQw1rUE3Kf8LFu28DoPMPxb5y5KKVMEI6cU6Vuock18bwktiKLyjnrPq+5iaTttisQgECdWPQJDVsGMnzjzz7Jq2CuuRRxb+8LEnnl794hvtP//dR4ePnTzbebY38bpXyJK+cELlPSjFh5niTFIIUnrsi/8qu1NPdxkcyC+Kdj6cIMVyi8SmeVprK0jK27dg5e1iwXJ9SiJJ8qVVCVJ01xJOK21raAiSzjCsNfhCGn9Bbqv5x5KJx+RgjVDBCOkl7KK2x3COiU0dqSSGwuvOWbXFuHT6FotFNUKQ3JrXEKQTCDIB6zzbe7LzwscdxXfe3bf+1TeeXv3i40+uWvbkynHa40+uenr1i+tffeOdd/d93FE82XkBBJmg2HMqeIry3iiVhEIJkt494tNdz2SCohAkWa/AT6etIC2WDceOBT/fyARp7lWnbQ09QRIZVpMgg99bbDgG51TvgwgVjJB+nAQZ8RwzE6Su7rrCm85ZscXMBBlnz8wKEiQ5yQ6bVUe3wKC0ujQ/0ePB48R0Odp8uOnEIcgTCDIZ++rPl4+dPLv/46PvvLvvjfafr3/1jVjsjfafv/Puvv0fHz128mwNh7BPZ4EgnaKdz1uW/3DinltFOx8tis1BGb17tAijgcnkEocTpFwviiqIChoaKR+gih/LjkqQctBfPZauNQxRbDXDUghynFFshcGdom1rECl6BSOk5360Cp5jxii2Wneq8L5r1mbvHWoFiBYzRrE5/7N8VpUe446XIPlJHD2GExchZKLmAHec/lWPCgS56+WOu16m17x2aZLOx9n1MggSIgSCTMZOnev74nT3sZNnP+4o/u6jw+/vO7j3N/vHae/vO/i7jw5/3FE8dvLsF6e7T53rS7yalbOkL5woEh7JfIA3b1laH6TDB1L5cRjk7t7WfORRDsane5CbgSCleokO0UgV1DUSRwORCZIInCsiW0NHkGSGJRGk0BJljaTh8vDcmsYahlcwQvqinedHFVElieMcE0ulL4mO2oK2FS8B8bpQW4xvT33hU0eQjsOtBHiq8zrdaoRRCFJaUZAUfJBQKQJBJmanzvV99efLJzsvHDt59mjxzJHPT43TjhbPHDt59mTnha/+fLm28fF0NggS4hTii6xdhcbZ06KYuwPWrSpLkAICcs7I8Ch2/6pH2Xow5BowZhKFDxKiBYJM2DrP9nae7f3qz5djMZZb4pWqgiV94UClqWjn64ZO+LqKAdNUCwQZj6pAkN7i0SJBGn2Qx3Z2UCsKKoIPEipFIEhYJi3pCweC9OLi4BnBRwcEGZfSSZC7Xj6+yx1eDR8kFJtAkLBMWtIXDgRBEKHqEORdB50So9jRJuiBDxIqRSBIWCYt6QsHgiCIUEUI8u4DE+4+cN3LxxlB7nqZcWEJPkiWhhEkP75b9kFCUCkCQcIyaUlfOBAEQYTiJUhGe4L/z3UT6id6DKQjSHFf5/xdLkGyD+fverTzmBvs9lJGGccN1Z9AkLBMWtIXDgRBEKH4fZCcju3smBDQ3gFhevDIUWydD9Lr7MgIUjjodTv7AZGQKhAkLJOW9IUDQRBEqFIEearzOmUw9bGdHcGaNDH4IP29EOOGIgkECcukJX3hQBAEEaqoDxKCUiUQJCyTlvSFA0EQRAgECdWPQJCwTFrSFw4EQRAhECRUPwJBwjJpSV84EARBhECQUP0IBAnLpCV94UAQBBECQUL1IxAkLJOW9IUDQRBECAQJ1Y9AkLBMWtIXDgRBECEQJFQ/AkHCMmlJXzgQBEGEQJBQ/QgECcukJX3hQBAEEQJBQvUjECQsk5b0hQNBEEQoboIs2vlczip4H/N20XEcxylYOW8z++wqbxeLdj4nyE0GQXELBAnLpCV94UAQBBGKmSCLBdvKuxRYLHgfC1Yul8vbhWLRcQKaLFgBQfJwCYKEKiQQJCyTlvSFA0EQRKhiUWze08h5HB0QJJSYQJCwTFrE83tsbIz/TKoyVxYEQfWoWAnSC0jn7aLHh/53wf8UQUpRbLaN3x2Cxi8QJCyTVvYZPzY2Njo6Ojo6WmGUZA4DvPxDUH2pIv0gIxCk1A9S8kGCIKFKCAQJy6SFntk+EX60f/+jjy3b9Yvd/vZRRRXgSIUghRgUyBKCalMVJUhEsaFUCQQJy6RFPL8/2r9/2q3fZfbmW1vZxhFOJErGfplR937c1iGoBlUxgnQcHwh5RnQUglRuN7jVQBUSCBKWSTOf1j4Frlz5tE+QDz38CNs4MjIyPDw8PDzMINL/EKtLkvNBejd0/z7ubmBPBRZecr8T/uHJ032CeN+zoZh5ITCFOBUEJa/KEKRl5b1YtORldGSCLPBfwgcJVVIgSFgmzXxa++S36xe7fYJ84UWbbbzqadgTSZBkhpEVECRFduzbvF00EKTsSeDyyudzuVzOsvmcJfiEICgJVYQg3Utb6NXoIqM3t4/3rmlZnM8S/SChigoECcukmU9rRoHs88aNmx56+JEXXrT7+vocxxkbGxvydOzY5+++u2fzlnbetrS/yWzHzl2fffZHthdTKRwZECQ1poa7n+sIkt/ND2S5TxPvQaDLBoKghFSxKLZ8tQfBbGV2cTEwIe0MQbEJBAnLpJlP69HR0ZGREfKrq1evDg0N7fvgg/vm3N869VZmLa3TWlqn+f8ymzrtNmY/eeHF3t5etntkiJQJslQfpDIjB+dJkMfnUF9AEJSEKkCQ/jgaqcsK0cexWCzYefEGAmyEKiYQJCyTZj6tGUGOjIzwwDc6Ojo0NDQ4OLhu3XqGjC0tU90Pnukgctad3ztx4mQpPSPVfpDBjZzoB+l+aY59U55GhpA2ABKCUqG4CRKC0isQJCyTZj6tGUEODw/7XR6vXLkyODg4ODj49raftbROm3HHrA2vvLplS/tzz/+kmeNIHUFOnXZb20MP9/b2RoZIIXatn4eD/JLsB2kVHDJWXbDcjpFwNUBQ8gJBQvUjECQsk2Y+rf1B1ixm7ePjuXPnps+YOeOOWcXiCd9Pefz48ebm1uaWqcwklyQPke1vvsX3sDRK7v0oRKUlZ2EwWFskRHUfKlituDghCEpMIEiofgSChGXSzKc1Q0PmfWSR64GBgf7+/nfe+WVTc+v6Da/480Eyyly95jmSIHmv5NRpt829//tssHaEK0uzJo00FCYOoY88BKVHIEiofgSChGXSzKe16oDs7+/v7+9fu/alpubWNzZv4RMMDQ29/vq/NDW1NDW3MvNpsrllqhTUPnPmTCSCNGCdtARZeRdupCNBEFRtgSCh+hEIEpZJM5/WPiBeuXLFJ8je3t6Fi5Y0NbeuW79B4stnnl3d2NTS1Nza2NTCPjS3tPIuSR8iDx/+VDfK25ePiFqs88PT4wO/gEUxhgaC0iEQJFQ/AkHCMmnm05onSD+E7RPk7dPvOHbsmB/dPnLkaGNjc0NjM8PHRs4ZyfyRPER+8snh4eFh89Gr1jERPSAhKG0CQUL1IxAkLJNmPq0lH+TAwEBfX19vb+8jCxczR+Pt0+945pnVr/309aeffrahsbmhsXlKQxP7wKNkY1OL1DnyD3/45OrVq9W5OCEIypxAkFD9CAQJy6SZT2u+myMLYTOCXLhoCeNCjhqbGhqapoi2eMnSzZu3bN685amnVvgR7ZbWqS2t0z7++A8gSAiCdAJBmMJngQAAIABJREFUQvUjECQsk2Y+rf2x2D5BDgwMKATZ1NDoIuPkKY1TGpqmNDTOe+AHZ8+e5bM6e/acteBBP5x96NDHQ0NDlbwkIQjKsECQUP0IBAnLpJlPa342H7UfZGNTc2NTc0Njc4OHj8y+N/sefhVsX319fdaCB5kn8uDBQ1euXAm/sIp2PsH+icke3aSinVeG/ZRU2oJVYs3cUUvpGmsU4w8UZEW1LVR1gSCh+hEIEpZJM5/Wo6Ojw8PDfldIhSBbGr0oto+Pk6c0vLtnjy7Djo4O5oY8ePDQ4OBg+IUlIYIwN3jl2Q4EaTpemVkZy1TimPjyfyClQiDIlClugixYqfpVU3FviaVNol//ZR8utltMagWChGXSzKe1v6qhP18PG0yzcNGSJi+K7fd6ZPh4y+QGc57TZ8xsbmk9cODgwMBAaRdZwcopNJmmZ0I1NW7KKfGebEoez+29YAmLCMX1w+oaytCAIMhUKHUEWbTjXPMUBFmRQ2RVIEhYJs18WvsrFvIrYvf19S1avJTN0cNBZOPkKY23TG64ZfIUc55Llvywqbl1//4DJRIkTximbfWhmiPIop2vyDMCBJlVpYwgi3Y+ny8H+ip9Oo0nf7JNSs2wQgTJFwMECYOl0synNVt7UHJD9vf3P/Psan/acC6K3XDL5HAf5D33zmlqbj158mQkgvRvI/Q9xNvK322EG2AQGPX2Zl8XrFwul7cs/pGgHoLLiouf64DE8HXByuVt21Ki73LxuCJwdEzUXSmZVeC2hR9O3wuATxMcP7RyRbodBE+LGCiWctS9DUhNxP98djGoMrc9yJYruKEB5Q1kVo58aLoWpZxdkFGpIkj2glPWbwiCNB9OJxAkCBKWejOf1mNjYwwi+bVnBgYG2LrYCkG6EHnixAldhmfPnmtsarn7nvt6e3v7+yN0ew8hSO9rmiBltPGZJkfdmojbm7CT4d5XtC3vODQIFSz/mAFGEcXjy57P59V0csn4yL5QcfJwIlnTRC5CjwFi+Z3c76h24L/1W5NsLpfZ+NZTiyn+fCL2UTga2QcZLSuueGQtSjm7IKMqSZDEa5K4PW/b4tWZt4vy7xnlnVD/DhPP26maf2jVcuJtQMoyeob8LkFTcEnUt3f/cLqXNF0xoh8iqwJBwjJp5tPaJ0h/Th/mhuzq6ppxxyw5kO0R5ONPPKHLcM2a5xubWjZuei0+gtT7IEWPW05wYvk5+PlSj3iJyYy3KeNjoEA/jtTiBWSYt4sFy92kHrdo53OWJdKqFp3lp5+cRLuRztFUOaIdKD+xvrmEId9m56sjYx/VFmUSZMSslFqUcnZBRlWMIHWvSVJPXD8ReRVEfSfUnoGxvZ1Kvjpt1TTby8uQV/SmEAgyLPwgFyPaIbIqECQskxZ6ZjOIZIFsFsseGhoaGBjY+va25hZtV8iXX16nZrVjx47GpubZd9975syZ3t7e0qLY5n6QOoI0uC25/4VwaEhaiiPpx41U0DCkE4rDsWOB7CDIDplXBqrHTpCBI0JHkJLzTm0Htm+QV6Tm8jysqSVIuhalnF2QUZUiSN1rkuYC0QRTI78ThhLkeN9OlSsttGoE0pWYoaDoTSH5IM3Z6qLY5kNkVSBIWCYt9MweGxvzIXJkZIQRpNQbks0rzveGnDylYeGixXv27Pn0045PP+3Ys2fvosVLGhqbv3v7jMOHD/f09PT19ZVIkEpIs2gHY7GDF1N+sxS31YQ1i3Y+b1nkOA4OHmwlbhqIu7/xhaJTBFhGFs8psh77HrP4sWy6ZHIj6AlS62KRykl33dMTJNf0unaQWphMVuSHX/Ouu+Dnt2lPJkevQvU0P7eyZ5lZ0ZUNO7u41oLMqiJBGl6xOHjzJUNZ6DuhmSCD/8t6OzUDH1kw/p5QVoaCojdF3ARZQ1cSCBKWSQs9s8c88UNqmBuyr6/vvfffn333vb4b0lucppGbHpKtUtPU0Nj845WrOjs7u7u7WQg78nyQ0q2Gfuf0v8lbluiPlF7eibuV2ttOPbqhzw5/GOHowhFUpNP4FjRkrG8XVjSrEEKQYq8hW3f/pbs96VyWRNGJdpC4mk7G/7ZUWurZIzn/LOJHcjOgfJnCqRSelfZc5GoRdnaBICOrelHs4AUo5BUrxAcZ8ZU1OEIsb6f6l2yxaprt5WWoKWJIU4hRbOIlzVCMqG/gGRUIEpZJCz2zeYKUOkQyiLx8+fKHH/7r5i3tG155dcMrr65fv2HduvUve7Zu3fp16zf88le/Onr06MWLF7u7u30HZDkEyW+OLy5YW2+z9an0BopxdpWnBEbScC8F5CtWGEHS74T0O0xsb6dS/pqq0dvp7rnRMqRaJaQpRB8k9b6nKUYpb+DZFAgSlkmLeH5Lbkh/ekgfIru7uy9dunThwoXz5893dXWd49TV1XX+/PmLFy9eunSpp6fn8uXLbH3tKKsamlw2/p1tnDeP9LIHFF1p/RXTWq70K26CLFEA/woKV4UsECQskxb9FCdn9mEdInt7e3t6enp6ei5dunTx4sULFy4wlDx//jz77Hsfe3t7fQfk0NCQ6XhKiLQS8gLAlTwGVA2l8ZmEs2s8qjpB8l1xtR1boDiUxqs1WYEgYZm0pC8cCIIgQgn4ILmoKPCxkgJBygJBwjJpSV84EARBhBKOYkNQFQWChGXSkr5wIAiCCIEgofoRCBKWSUv6woEgCCIEgoTqRyBIWCYt6QunFCU7l16cR3f7WyXWE6g640wzPfdhjIUPskqk+1cFfuyq/LIgSKh+BIKEZdKSvnBKkfTc0s8uXo2jjzOnZLuRZ4UgYyunccY9UuUXnlztBgRZskCQmRU9zSRkEAgSlklL+sIpV4YVDlOv0h/pcZNHVua6i6ec0lojcTVk5PUSI30Vr3TreUTfK3mBIDMrEGTJAkHCMmlJXzjlSVjPyrAtnQJBRlUs5STX8o1BIMjKCgRZLZX9u+t2rBBBhpazmidwzMcCQcIyabFdAVWQf82al2flL23hMueXhS5yXxcsb8kw0wqwXFYhi2kZv+bWCHNXxdUug+Zu4/ZQa00vHZa3bUvZg1+dTBf2V5tItxhayCHydjGsxdRjUcURVpSWG45YbppuEN1zji8AfzIoy2QXpDi44Ucho9iGrBz50HQtop+rUtmEH0t3khlrRLY9twJ7wf3aKgTZjB/aQZDVEgiyEoUpTSBIWCYttiugCgohSO9rmiBlGOHwjXDWELdAYSfDraNoW95xNOjCHYdKTOSvd3cRxypYfp0CsBKKollwQ90sbolwCGF3U4uRP4ehpaia8t/6RyIbn1jfSK2seDKI2EfhaGQfZLSsBLgjalHKuSr7INUfS3sIzTLJ4mbhsspxv39Y25SiuAkyMr6HLy3Nr5odhf5DOTsKiJtfgOnLma6r8Fl6c9C0UviO0qGJF8UIjan8YMGOyuHCX4HI9+Ey2ll9YZaPNf4FukGQsExaWWd7QgonSL0PUnTA5QS3k5+Dn6/5oczyMjlZzDcUqfhKYjV/0wOZ2p2HM++Ox+dHNqC6Ud5C/gCaQzjGFqN/jpCW0tZUbB5d47vb1UZSiiv+JzV+6JtEqA8yUlZKLUo5V7VRbCGiH3YI/ljiT0S/mOk+l6lKEGQEfDe9NfG3FZ4gw+g/lLOjJAh7ARakqQX9di1vJVopfEfp6EG9SmlMTiEv0qGvQGSLldfOmncwIcIS5/sSCBKWGRvfaV9diTdc+ZI13+zMbkvufyGAGZKWIh/54WIkSFNiPn+Dc0jdvaIE6d99SyJIpUbRAENy3qkNxbIJsCi88b2zJM0ESdeilHM1lCCjHULNU3nzyhhBhje+7q1JewVFof/QVgpLEOkFmJOuFtEIkmil8giy5MaUMgl5kTa9AtEtVl47k+9g0iWmfQuOKBAkLJNW/ilffcnXrOye4t4IeaIgoLNgae6ARTuftyxy5AX3xLHpu61XMD7IZCZIMjGRfyiKSjVV73cRXvqFNAXbu6EKLgS13PQhCrZdNLYY+XNI4n5IXatKv5emPbnh1/wzW6qsiSDFtjM/PkMIMjwrurKlnKuhBBnxEN5O8s9XAkFSfifqBVBVagjS/A4Whf7jIMgIL8CBdLVIniAjv9ByBSBepENfgbRUWkY7hxKkWtSSBYKEZdLKOdmTEnFzo6Og/jd5y5LjM0J0k7gDSmhKHj14U9U5BtWji4cQHt9KYjV/Nx3lNlN210Qtg0y1HY+4/Di6CxqZ30gdQtrd3GLEzyE0kfiFrlUlSqeT8WcKlZZ6HEqPJYv4yUN/FPfb8Ky0ZzZXi1LOVaFs2ueftqGUPOWfL7MEGeFNwPDWRL6DRaH/cRNkxBfgQJpa0G/XMh4S/4TvKB09+KVLaUxO5hfp8FcgssXKa+cwgjT7FKIJBAnLpJVzsiclrYskzrkgYwi/QTWl8p8KlVZtn6sV8UGG47ujeWsSqFsZSUMlol/qyiPIqC/AobUg3665N4ew96VIrxyF8JE0dGNqKkC8SEd4BSJarLx2pl+Y+WMZfQqRBIKEZdLKO90TEfcarMi/gsf5qE8vLUBJKa3nRFrLFZcqHMUen2oW3pM4q2q2MUsQCBKWSUv6wokmJahZuYPU8jMZKkdpJLV6OFdTRpBFrjutoftA1lWds71OGrMEgSBhmbSkLxwIgiBCKSNIIb5Zu8RTrfelumjMEgSChGXSkr5wIAiCCJHPVNUiEyQEpVcgSFgmLekLB4IgiBAIEqofgSBhmbSkLxwIgiBCIEiofgSChGXSkr5wIAiCCIEgofoRCBKWSUv6woEgCCJUmwRpmpMszmPU/FD9GhMIEpZJS/rCgSAIIgSCLP8IgEej/IHg6WknECQsk5b0hQNBEEQoboLMBFnFUMg45ucuuxi6HSva+OVknrZZzEGQsExa0hcOBEEQIRBkeQJBRhEIEgaLwZK+cCAIggjFSpDc6swuOGjWa+ZFLJEsfMcvlqxfi5nxTcFihxZoJyiDtLoyW+w5QByad4gqcJvUSlFV5svjfpbaiis/v2f4jvrGD20lYS9p4WxDo9lF848mtoWXZcFih1ALTlVBXBVbOAy1TdlRIxAkLJNmOKchCIKSUiV9kOJKegWLoo2ibXkpyAQBg/g5k7swrlCJjadCLoc8B4Mc41CHp6ug8a5p0hMgSGzNCS0XcUexMfnUoa0ktHjRzvNYaWy0yO5IsXX5UqiNp667SFWBODRZWlogSFgmLcK1BkEQVG1VkCBlyNI+3Y0OLS8XcW9lF/Vrq+CIDkHRg8bBGiulBiA1VdD6K8n00QiSO3z0HeWG5LeHtJJUWr4lwhst1N8nHUHiPGVfDZIrVVAOTZeWFggSlkkLuc4gCIKSUHUJUnm4854vDRexbIKd6V30BEkAhZCY5UwfXF+FyASp0Fd1CDJKKxkIMqzRgmMYOXJcBGk6N7hDl9LXEgQJy6RFO70hCIKqqqpGscnQpbexaOfpTnVFO5+3rDyBItwuGoIUQ+MFS5OYz18uH12FqFHsoEsiD8CaKLb6T/iOUksR+K7f0RDFNjZa0bYlqqUD06UQpHDQgm0X6Sqoh6ZLSwsECcuk6U9pCIKgxBT7fJBu2DHqSJogSpm3LFOUm4pgc7voCNI4GoPvo6f1Y9FV0Hu+6PR+KfhqcsUo2vmcZckDaSLsSLWml2FIK4ltKYykCWs0ecgPRZB+Hoo3mCRI/qB8r0257spoo5BuELxAkLBMmumkhiAISki1OaN4iUrBpDORB6dUTilohUoLBAnLpCV94UAQBBECQaYB3hIqRNHOC+Oyax0gQZCwbFrE83tsbIz/TKoyVxYEQfWoOidIFhJNnB8Tw1gu/lvz+OiAIGEZtbLP+LGxsdHR0dHRUaAkBEGxq84JEqorgSBhmbTQM9snwo/273/0sWW7frHb3z6qqGIcya9VEHe2Qsb8xLbydF5WgXsv5lUP78gQVF2BIKH6EQgSlkmLeH5/tH//tFu/y+zNt7ayjSOcSJSM7/qqLEHm5JF+IEgISlggSKh+BIKEZdLMp7VPgStXPu0T5EMPP8I2joyMDA8PDw8PM4j0P1TAJSkSJLH4KzlRhbeX9yU1V6y0k0qQZBeg1HRSgqAaFQgSqh+BIGGZNPNp7ZPfrl/s9gnyhRdttvGqp2FPJEGSGZYojiBFPyC9QBiPgPl8Xt4uZ1sIsNHgg5QWSQBBQlAFVUWCdO8psV7PugEo1BKFVZB2xefUBlC8htJMCR5J49m31KzGdywQJCyTZj6tGQWyzxs3bnro4UdeeNHu6+tzHGdsbGzI07Fjn7/77p7NW9p529L+JrMdO3d99tkf2V5MpXMkR5BqQFtcj5T7j/+CXOfKz8sHRxAkBKVCVSPIygw2BkGOUyBIECQs9WY+rUdHR0dGRsivrl69OjQ0tO+DD+6bc3/r1FuZtbROa2md5v/LbOq025j95IUXe3t72e6lQaSAfxzY+Su7Kj0ZA4IUyFJHkL7z0UYUG4LSoKoRZGUwKmUEGUha3TH1BFmyKj39UEXyB0HCMmnm05oR5MjICA98o6OjQ0NDg4OD69atZ8jY0jLV/eCZDiJn3fm9EydOltozkggy+RhpFSSc4/4rhSCJBahAkBCUmECQlREIcpwCQcJgnplPa0aQw8PDfpfHK1euDA4ODg4Ovr3tZy2t02bcMWvDK69u2dL+3PM/aeY4UkeQU6fd1vbQw729vREhkhggI8WWrUJYP0iZIHVOShFL1SPx91oQJARVVhUgSPPtRLqcGSioax1z201LbOt258Eo+Ja7S3n9ssV7m3Fd6CA7/m4X1DBvF13skQI4BYutOk3npzuesBdNoMReEdqTbCgB2JQWkw8kVlCzrzjaMqwufDGVCJiSIOQ30gkECcukmU9rf5A1i1n7+Hju3LnpM2bOuGNWsXjC91MeP368ubm1uWUqM8klyUNk+5tv8T0sDVKn2xHuA/RWZSy2+I+eIP1sQJAQlLDiJkhxcTwFsZT0fJdoPr24XZutbnefIPnD+vQhd/jmMlNxiiqxl3c+n/ez8e56Ul7eMYLNajMUbYufAYO7MZa8V7T2VBuKr5WMbdoDcShH7VtCXdTG1fwG0X4jnUCQsEya+bRmaMi8jyxyPTAw0N/f/847v2xqbl2/4RV/PkhGmavXPEcSJO+VnDrttrn3f58N1i7xKoMgqF4UM0HKnCjAhY4gORDQAII2W93uHhgpgRPvnZaftEz9LA4b1BS5YOXtYsFyydHvLU4SJE+xEf2J5e0VrT3VhuI36EmfPpB2X/ILbV3EXMMI0vwbaQSChGXSzKe16oDs7+/v7+9fu/alpubWNzZv4RMMDQ29/vq/NDW1NDW3MvNpsrllqhTUPnPmDAgSgiCdKk+QQRA6VoIMhuaFECRx1FCCDHKjGIUdnWPHglqcUgiyaOeFeHE0gqT3qgBBhh7IRJCCi1ZbF7Vc4QTJFS4yR4IgYZk082ntA+KVK1d8guzt7V24aElTc+u69Rskvnzm2dWNTS1Nza2NTS3sQ3NLK++S9CHy8OFPdaO8IQiCKh7FFvoeanxbfGc9GiB02ep256PYfCxchTPqc9G2he6DRKHz+QDN/Fh2mQTJfS9WoYy9TO1paijRt+eX3Pa6cZIHCo9iE68PMRFk2G9ECgQJy6SZT2ueIP0Qtk+Qt0+/49ixY350+8iRo42NzQ2NzQwfGzlnJPNH8hD5ySeHh4eHI11bEATVn6ozksYx+yAtZYAHgQX6kTTE7txIGt0gFaMPUh1yopSa5yeesMRxHnkRwWh+CoqYt6yoPkh6L2N7GhqKb+8gY74PpXQgroLCb6UfSSPVhQQ/ugHpBCG/ESUQJCyTZj6tJR/kwMBAX19fb2/vIwsXM0fj7dPveOaZ1a/99PWnn362obG5obF5SkMT+8CjZGNTi9Q58g9/+OTq1asRry4IgupNVVyThlRZAyIgrXTtmb52LiQw4RIIEpZJM5/WfDdHFsJmBLlw0RLGhRw1NjU0NE0RbfGSpZs3b9m8ectTT63wI9otrVNbWqd9/PEfQJAQBOkEgqwtZYYgi3a++uUBQcIyaebT2h+L7RPkwMCAQpBNDY0uMk6e0jiloWlKQ+O8B35w9uxZPquzZ89ZCx70w9mHDn08NDRUyUsSgqAMCwRZW8oMQSYiECQsk2Y+rfnZfNR+kI1NzY1NzQ2NzQ0ePjL73ux7+FWwffX19VkLHmSeyIMHD125cqUyF2NCMk8nlhaVHaGheouFV1nTxyxOub2S8BCqMSVNkBBUPYEgYZk082k9Ojo6PDzsd4VUCLKl0Yti+/g4eUrDu3v26DLs6OhgbsiDBw8NDg5Gvbzi5xBqqgVpHKXY7VqZvo1cwwIEGWGvWJVJD4bQKppu98I5GDaTSxVAveoCQUL1IxAkLJNmPq39VQ39+XrYYJqFi5Y0eVFsv9cjw8dbJjeY85w+Y2ZzS+uBAwcHBgaiXl6VIUjLErMVCVKDJUn0so5TsRJkpfZK0wEqIXFkLTfQlBuSy1dLmfBEf+rWjkCQUP0IBAnLpJlPa3/FQn5F7L6+vkWLl7I5ejiIbJw8pfGWyQ23TJ5iznPJkh82Nbfu338geYIsiD40EGTIjiDImOQXmp6BTpgpUNlmPnVrRyBIqH4EgoRl0synNVt7UHJD9vf3P/Psan/acC6K3XDL5HAf5D33zmlqbj158mR5BEnMoWaY6Mu21Cign41VEL074yRIdcIwXfe8CF9bBTK4qZ95Tk0vz6MmTWhMFoPLSm4yoT2puXX9AuRtW5ywV9qrrPqK89q5JbSD5uDXE9O3jz8HXsGtO99BIaixbqI+4nRSS6huUUT7INVvya3mU7d2VIEZxSO2UZS3LHPv2zS8Z+puYtHLFnctUtHPJ95LJbbcQJCwTJr5tB4bG2MQya89MzAwwNbFVgjShcgTJ07oMjx79lxjU8vd99zX29vb3x/ZYaA8PcXvpE5lHEwEoKOd/jV4EOv6QQoHjECQIV3zirbFzRNMryshootuWQVhWl0lfQhBksUQsxJEtSe9XESRW2vM/CuE1pef7DeolWY66Gjt43B8zGBPpmGyZciKSMFmXZmptuTnilaxmWgn4vSiTt3aUZoJMqz3LQhSV6LET1MQJAwWn5lPa58g/Tl9mBuyq6trxh2z5EC2R5CPP/GELsM1a55vbGrZuOm1MgnSfd6KPiB5wVP1oaoGC5WFDqxCfD5IpZBkWq1fTjq696+2ppr0oT5IohjmiusXb5DKVhB9kPKvwHkridcCrr6iyPUi6EOZ2kfCN/Kz2jJURdTHB11mY1vyh1MPJSRRm0s9dWtHaSbIsLzIHKo86Ct9BJmY+KaIfhpEmX4IBAmrbws9sxlEskA2i2UPDQ0NDAxsfXtbc4u2K+TLL69Ts9qxY0djU/Psu+89c+ZMb29v9Ci2cilzw1EJbvAxJSJBeg9iKy6CVAopJzMfJzpBGgnMTJB0MapDkOXVl0xsJkiyfcIIkm6ZyAQZ4YGiaWXf4akJbZO/kXzq1o5AkOMTCNIXCBIGq4yFntljY2M+RI6MjDCClHpDsnnF+d6Qk6c0LFy0eM+ePZ9+2vHppx179uxdtHhJQ2Pzd2+fcfjw4Z6enr6+vsgEyQU/iEXrldilgV2CnGjci4cgiUKKGQh9OjVRbNnLZKipJr3QbHwmMvNx35ZLkKYodiSC1NWXiz3TJTRFselfM4wg6ZbROlP9Z4nt7qyWmahvUDQqIM+3INlC+lO3dlQRgiS65AZ+Y+5E4k+2IAEfYnA3RPD0S0cRwym6QIShbFR/XCKoQRdeLJuav3R0ImVOvv68DGxLvPyU7dL7mKlXsZRbICp6Y25JqeU1p4Gcr/p7lZJbSMMSAkHCMmmhZ/aYJ35IDXND9vX1vff++7Pvvtd3Q3qL0zRy00OyVWqaGhqbf7xyVWdnZ3d3NwthR5kPkuwkZrhc5ZE0kQlSdT1xktxr4T5IqpDigVi+lqX1QVpkFmRNten9I3EHEp6OyrdlE6SQnzySJooPkqyv9rlIF8vUPiVEscmW0VQkSKu2g/5pRleR8rMTZ6D51K0dVYAgyZ6s/M/q0wN/jXDoxV3gxOuJiSClpMrbDn2ykGVTaxGhT3Ow3S8bmb9UAM27a/h7I7VdfOGkfgsyN00TcqUJa0m55aM3YAQfZMSTKkQgSFgmLfTM5glS6hDJIPLy5csffvivm7e0b3jl1Q2vvLp+/YZ169a/7Nm6devXrd/wy1/96ujRoxcvXuzu7vYdkCXMKF5fKjXaVeXoWASVFttJX/mhFKiSUWyuH4IobyvJEFSfhvIIkuhxQQUr6LLRr2TKm4uu8FwUgshfKoEcrxCykrb7/+q2l9QnhL6HFCL3g+elizuX1ICRcwtvWEIgSFgmLfTMZpLckP70kD5Ednd3X7p06cKFC+fPn+/q6jrHqaur6/z58xcvXrx06VJPT8/ly5fZ+tq1tqphbMoiQfLhWNErEGnfxMsPpU5VIkgaU6pPkBS/0WUjQwGhfZopggy5Sg0EaWS+ChJkUJewfvByehPzRWrAyLmV9v7sCgQJy6RFP8XJmX1Yh8je3t6enp6enp5Lly5dvHjxwoULDCXPnz/PPvvex97eXt8BOTQ0VOJVVifKIkEKr/Al3j/TUX4oZaoGQdL9VsUothBYJaPY+t7GgoxRbI2/jSqbCVm4MugKL8SmlfylAmii2OZodaQotvm30EaxI/eDF3eLzHxSA5ZDkOENSwgECcukRTi3IQiCqq2qECTZb1X0QVI9dOWebkSvWYIbisKYJ7LPLrmDVDa1Fvo+zUThubIZ++yKtdCUlu79rNkeQpD63MQyUb9GSEtyLR+9AaXfK3puoQ1LCAQJy6RFOrshCIKqq7gJsgzBO16KdNHbsqK6Ze6VWYEgYZm0pC8cCIIgQiDI1EvX+7m8XtHj6UudeYEgYZm0pC8cCIIgQiDIDEjX+7m8XtETNBxmAAAgAElEQVTl96XOvECQsExa0hdOFLn3lXTfyqM8bDJREQhKhVJAkBBUJYEgYZm0pC+ccGXEDxBezJgqws1k4UscGsrJnbVNVgbaE6p3gSCh+hEIEpZJS/rCCVdGelSH82FMFfGGWNJzpxmKQY8PhaB0CgQJ1Y9AkLBMWtIXTrhAkNSBuGnoHBAkVIMCQUL1IxAkLJOW9IUTIi4CaxVcPCpYOX6KWikwW7ByebvgbueDuOJKWEJ/bY7tuMlgxYlzlQCwVBgO3YrCgrRURSLmSco7kH6CYxAkVANKGUHqrqwUXlZl95dJqC7jf7cWX6jjy7d6AkHCMmlJXzjhktcL4HnL8u4PAfhx+MUgTV5fgFj2nv8yn8+LWKmsecAv+SDDn2kaColTI+RJSlx1S152TOwHKeSUwkcdBGkFgixXNUWQwgIvCiu6/4IgYbBELOkLJ1wSQUp3OMULyd81qM/ksvcB/uXtYsFyN+nWXWVHopadtSwD/wk+zUh5kuLTeAwJHyRUcwJBlqvECbLEAphJT/hWHkeo7KpbcjDtAkHCMmlJXzjh0hIkv3Qq7WLUECS9cKrIjgVbckWKKZXCuKXJU6/CSkWi5kmKaARuYA0IEqoRgSDLVW0RpOBfLFg5yxKWZZT2BEHCYFW0pC+ccGkJUg5vRyNIzbL3RTufzweeQD+WTUScaVajuidqKxIxT07BbVROIy7eCoKEakRxEyTXyVjo4qF2Pg7royx3vCYWj+au9NBu2byUHHRdvW1DPrqikiWUjh62EHZ4CbkdlfYkO6MbmoOrTlBAsR8PH7yRDi00VMpvfiBIWCYt6QsnXPoodnDryltWVB+kQ96URfKTe9UYnihCYbhbPHHHEt+Io+TJSU+QqjNWc2MGQUJZUiUIUsAwuvNxtD7KQsdrbQfrCN2yeal9qPVdvYN8VPgyFFUtoVSA4BBUI0Qsoc4RKDSLpsUJ8bu5b+l+k8oHVO7DpoZKkUCQsExa0hcOBEEQocr4INV/tZENUzKFaugO1lFeaH1pgq7Grt5qGFdfVLqEUgmkkXlKDpFKKHoN1YNK+YRGm91a8r19xGy0BGluqBQJBAnLpCV94UAQBBFKDUFq+z3LBEkgyvgIMryrd4kEGQJRBoLUdCKnSygSZOgg6YgF4+oq/w+ChMESsaQvHAiCIEIViWLLsxg4Cm+Z+ihTuwuRX6WDdSkEKeRQsEVfnaart5YgNUUluoCLBdBEsbkejRFKKIeSqWYRCxhQOs15bASNUCT+fxAkDJaIJX3hQBAEEaqID9JSh5eoPQL1fZSJ3QuWyELi1yURJJ8D3/kyl9N29db7IImiarqACxUPG0kTqYTi8D7yoPzoGtsKJUi+TyPxP/cbcocGQcJgFbakLxwIgiBCFY5iQ1CKBIKEZdKSvnAgCIIIgSCh+hEIEpZJS/rCgSAIIgSChOpHIEhYJi3pCweCIIhQytakgaAKCgQJy6QlfeFAEAQRAkFC9SMQJCyTlvSFA0EQRAgECdWPQJCwTFrSFw4EQRAhECRUPwJBwjJpSV84EARBhOImyJStCx+6UnOCSzkHh9YNP0pZYwbKXIFdgSBhmbSkLxwIgiBCqSNIfgW/8QsEWRFlrsCuQJCwTFrSFw4EQRChlBFk0c7n8+UwXegsQmmeZmj8QFbl2oEgYbAqWtIXDgRBEKFUESRbFE+zFmHoriDImItV+uFAkDBYBexbLzmT1g83vHK1+dUhGAwGS9YaXrma3zD87ZcqSpCaRZ+D7dxizU6wqDJHkAWLpckF6z9LOXt7CP8HclEnNIH3UbucNUtXoJbBpqup5iZvCQ6ty5xuTAWv1drpWp7eK6S1iXYZZ4ETEwgSlkmbtH540vrhb7/kTFwLg8FgCdu31zo3rR/5pw1XK0aQBYtHh4KV47bzIOIlCnhKJMgcR1lsc0GkThnHBMmUpk8Q4sVjGMWRkrmaam6mLYbMlSahC8pv1LU8LzJDsrWLtuUlDLIaf4GTEQgSlklreOUq8BEGg6XHrnvJaX51qFIEKYeiPYyQtnv/SgQkeMVUF6UoJQNO0QnSzVfnL5N211RHojG5quIWbdn4TLjM5CpriqctEic6Q6q1/SwEb+P4C5yMQJCwTFrzq0OJPzBgMBiMt+oSpEIpQTIOUYToq4YgCR4ZP0EG/1PAE50g+f/V3LgtJRFkCIKZCZKKexMZUq1Nu4nHX+BkBIKEZdIiEuR1JVriTyAYDJZdqyBBqrFUroseFcUWsjD5IMW4bMGKCIjhUWy7IO8jpRPLbaymmhu1RYhi05mroX+/ynQ99S3Pi8wwhNe5go2/wMkIBAnLpIUSJCNCe//Yv513HMc5ddl5/fDY9a+MXbdWNXAkDAaLwSpJkI52PEfgcBRH0nBZGAmSHvPibgsdKKNPQA6TEdJZZAq6muQwE00oWJc515jGYT5K7SKMpCEyJFub+7UsK8YCJyIQJCyTZiZIBoKMHXn923nn+lfGrls7et3a0VCUHNez5G3nS8dxHOexpB9pMFgidtOKjxoWb2hcaDc88mJtWONCu2Hxhv/25PuGWleAIEtUWsOdilI0HAQqWyBIWCYtlCDt/WPsFP9o//5HH1u26xe72b87jvoEyRvNkeU/QeMgyOmHHcdxnB5nern7vv428dVjX7oX/75fOxPXOq/3eDeDL00VcRzny8Pyt+S+fv6O3wK/1uYAq0m7acVHDY9v+se9X/zlobGvH3Rqw/7y0Nj//cG5Kava88sKuoonQZBFOy84KbMBkCDImhAIEpZJCyVI5oD8aP/+abd+l9mbb21lJ/237JHA1o5+i0DJcUNkHAS5jxW3LIJkGGcgyMfEcjoOTZABIzqO40HnROO+BEF61QFB1ok1LN7wj3u/+P7JkVO9Q+f7asRO9Q796MuRb/1rd8Oil3QVT8YHycU3M4KPDgiyNgSChGXSwgjSdUCuXPm0T5APPfwI2/jdt0a+ZQ/fsGH47u0jK/eN2P86bH80Yn80Yu8f9WyMmfXO2K1vlfUQVQhyH3fVPaYkc76Ume+xLx2nx/nSCQhyH/tM+fP8zNlGgeEULhQIki8GSZDeUZhTk0BAZV8if6+QIMg6scaF9l8eGvvq8pVzvbVmXz/oNDzyoq7iyUexIaiKAkHCMmmhBHm613EcZ9cvdvsE+cKLNjvpb2u/+u7nV69evTrsaWRkZGRkZNTT2NjY2NiYf5GcuuzY+8dK80eKBLlPufB0212C/LXjOM6+X3vU6Cfucb4My2Tfr+MkSN8YQQo+SM2+/NH59CDI+rGGR178dweds71Xas/+HQgSgjyBIGGZtDCCHN1x1EXAjRs3PfTwIy+8aPf19TmO82X32JCnY8c+f/fdPZu3tPO2pf1NZjt27vrssz+yvRzH+bfzzj+9HpkjeYJkXkMPBBlgfXlY3s5AkBHkPsdlMpkgvQQsuPz6214mXwYH5d2Q4VFsvrQGgnxb8IYSX+mj2H4ZQJD1Y4wg/3z5Su0ZCBKCfIEgYZm0UIK8fsMIc0PyGhpxrl69OjQ0tO+DD+6bc3/r1FuZtbROa2md5v/LbOq025j95IUXe3t7Hce5POR8Z0M0iOQIUor/+v9K233m4wfBqD7I6VRiQV8KCdSylUyQXtyc7tOp35cdyHdDgiDrxxhBnrk8WJp9vPyb1yz/IDzlp//jmpk/dT9vu+2a5R98vPybE/wtlTUQJAT5AkHCMmmhBPkte+QfXxnZ+W9BMPrfukaHhoYGBwfXrVvPkLGlZar7wTMdRM6683snTpwcGxs7cKpkghTchBxXufDnbfddjNLgFcfLx0CQKpnFRZBSIbU15RLsU2rqVxAEWSfGCPJU90ApdviH10zg9c3HD782I/j31vaBU+0zJ4i6tX3brdc8ta974FT3tlsnzHzNy23f49dOmLHtVPe2Wydc+8OD3FEOPvXNa57a1z3w2owJ33z8cIklHDjVPVB1guTng4xDwQLN2VF1ykwfJfXTI3GTrueF6ScNE3HGViMQJCyTZibIb60d/fbakW/Zw9+2r/6DffXe7Vdv3HDlZNfg4ODg29t+1tI6bcYdsza88uqWLe3PPf+TZo4jdQQ5ddptbQ893NvbOzY29sO9Y+EP0Sj9IN8WOjV+6QemuXxCfZBq5o9xCRwnvB+kXLYvOSr9tfRdAL6MBdV9deWZCIKsJ2ME2dk9EN02zZhwa/tAZ/fAbx+/ln3o7B7YNOPapQfljZ3dh5deM3MT8dmzg0/93TVP/bZ7oLN7260T3ByUrw4vvUb8KpqBIBMQCNIgiiBNA91BkDBYCEHaI99eO/LttYwgh/4v+8rtWwYHBwfPnTs3fcbMGXfMKhZPjI6OsgE0x48fb25ubW6ZykxySfIQ2f7mW6Ojo++dKJkgJ+rGYnMDq18vlyAlEpWn6ak6QfI+1MfEuoAg68QYQX51qb8M+82ya29tdz9vnH7t0gP+xk+WXjMhRNc89ZtL/RunT/ByePvWCW4Orh146u+ueeo37HP7zAnT3y61eJknyEop9tl5EpzuR1rScJy8VeGKUAWsGvaCIGGZtEgEaV/9B0aQLw6++LuB/v7+d975ZVNz6/oNr4x4Gh4evnr16uo1z5EEyXslp067be7932eDteN/6Jr7GsZqutl2Km0gyPoxRpBfXOyPbq9OJ3BwyfRrl+zv/+Ji//vLrp22xUu8ZeaE6W97O36y5JqZrwpZfbLkGnevLy6+PW2C/7n/i4v9X+x/6u+ueep99XNkA0Fq9P+3d25fchx1nq8H5ux/0S/zMAy+rLwU2AyzL3POnNnNGUvqq2yQbKAwF9vYOpPcZFmexfb4gIfCwAzuFJZkM4xmWh6P2HO87cEuCywQ2FiyjWWziDYlg+Cs0bXV6rsuXfuQmZG/iPhF5KWyqjKrvt/zfejKioyIjMyq+vQvbiDIJLl1QCBIGE5rO0GSLuzVG7yVD3jLjWOLi4uLO3d+e3Rs4t+m9gl29Cdl7937r6Oj46NjE74FTY6Nb1I6td95550cCVKJ4XUHsJQ9abph7EkzYB7eNvlHR1q/+MOFDH7mS9eN7g3+nvzQdZ//aXTwmS9pQcgPPRWk+elDV/3Xh575w4Vf/OGp0cotk0FuT41WghwCR8mUlEn9R0d6SJCm3ZnFcWVfbO54xDMN1z+uLkVuyo1I3aOZVExN75fXcP23KE3ZaiJnqKRsBKW7jSghV397n3TDFY3oHw1KUa5Fqhu7TfcQc0Xib0vLpLsW89bhQ8qdpUU6jvw46I2Z7QEIBYKES+nEBLniE+RPm4vz8/P3bN8xOjaxa/cegY8rKyvLy8uPfP0bI6Pjo2MTI6Pj/h9j4xM0JCkg8ujRNy5fvpzXDy0lyO7xHAx32D5B/uy3s2l85O5rtzzy29mndgSY+Kc7jjxy03V3vzD7s9/OPrXjuvVPRH+Il+LIIzdVgiMvPPin1z74VJDnk+srQQ6BpXeP3H2t/G4C944g5R0LI/4hJOSTXZDIcFwCiDBFNDbOlBtV03PDg1FyU6TNh00LY5lqQpIqKaOa6oXT6BtTJZrQcRyRk+M1yXtKDJJvJeZe8Fdnapkk1xJ7x0kiUk7UCjIyu41cHoBIIEi4lE5BkJPLN0wuvXg8IsjNW26dmZnx52UvLS398pfHRkbGhkfGfHwcIcFIPx5JIfL1149eunSp57/QMFxk+wT54m/OpfHhu67dUv/NuSfvvW7948HB+qbr7vrhuRejg/vWyyHI9Y+fe/HxLX967XWVTfvCfPatr2ypR3lWRG4v/ubci49vqVz74JNMyqTuGUGqHZMk4kSPi5em40bYCmN/7Fma1CiklSCj45YYpFITI0E6hF61v+XYnDEk2mo1XMdrNtyAHB2vaWK+BK0k0qcmyLhrSXXHWYKUHggFc9t6AHyBIOFSOlUM8obJpZ82F+bn57fdc68faNy85dZHHvnGd/9l79e+9vXhkbHhkbGNw6P+HxQlR0bHlcGRP//56xcvXuz5LzQMF9k+Qf7k+Nk0PvyZazZ/9fjUjQIPN019ddO6z2zfXKlUKpV1n/lBlHhq+7ob9xz+zDWVG/ec/ckPHnj3NQ9MHT/7k+NTN17zwNTxqRtJ4qnt6yqVzV8NTpy6sVJ59/bDQT4/eODd0VtJXSSCtP7kd44gaWQqnpO6TpAxAwD9/Ak7NvQCMxCkwqAdIkjrPeIJMjiNqw4IEh5UJyFIMY3mhslFnyDv2b7D50JCjaPDw6MbZd+7476pqX1TU/u+/OWHRY/2+MSm8YmbXnvt5yBIGLbbJ8gfN88k98MTPjZuflg6uO7OA0rKl++8xk+57s4DZ368e3OlsvnO7evevf3lH+/eXJmY8rP6m916zpVKpfLu7S9HWYXpU7lAvdj23upEvdg6tyXoxCTnNT0nfQySwGfuBKn28PLrITqOI+Jxoi87BUGa7gV/dVkJMu0dNxBkq+k5jus69J619wAQgSDhUjrJXGyfIK+fXL5hcvHF40saQY4OjwTIuGHjyMbh0Y3DI3dv/duTJ0/ST8jJk6fcz35OdGe/+uprq6u2omEY9gny4K9Pt+mvTKy74/no5d571lUq6+54/vTee9b99a7Te+9ZV5n4tzBlpVKp/PWu0wd/ffrg8/f/yTX3743J/Gd3XCNlntBFnEkT9SjLUx/Y4zEAYc6txZXnuhLmWbqNtZPJuXxNogxTECTTv85Wn1RaRyt6LYZWMtwL7upMLZPgWkx3PDrM3lkmksiNDs38AEQCQcKldIrVfCaXb5hcojNpRkbHRkbHhkfGhkN89P3x2z4pdsGmWlhYcD/7OT8S+corr66srGT+ZT1k2CemJ85WmUO9WAkovj77WyfIpuHdmJZESuz95RfMw9sm33Wk9cO3TvXK3922rjL+r5aFI788XvmTbS9lyPld3SbIlDJ1O8Z376bJDSqVst9G9GLDfenYPWne5116/06/I3tFmUkzMjo+EvZiC3zcsHH4+QMHTJ+TN9980w9DvvLKq8vLy7G/oPef0LII92vJzBx756y7C2aCjx4Q5P7WiVyX9QFBFpUg1w786mT/+V1H1gpGkE3PYSbmmo9nyw0qrUy96MbUKR4AECRcSsfuix1Mpplcff/kyg2Tyy8eX1pYWLhn+47RsBdbjHr08XH9hmH7B2vLLR8ZG584cuSVpaWlzD/w2Qlyf+vEXOtErrjQE4LcO9c6MZeFIE1cqNenSwSZn9upMHs7et4CG7c9+l+OrH3/2B8afefiEaTUb6tN3jVMSc6QG1RC0WWCkirNAwCChEvpWIL0O7Lf5118/+TK9ZPLL729vLCwsP3e+/w1eghEjmzYOLJ+w/D6DRvtH5UdO/5udGzi8OEjPSHILUdbJ4627j+RJxl0nyDFVYAg86pwMQly+N7d/+2H/+/2o3PP/fKdfvJ9b8z+8UsLw9t2mi68973YENRFgSDhUjqeIHdeeZ8XhCGv91Yav1peXFx85OvfEMuGk17s4fUb4mOQn/zU7aNjE2+//Xa7BHk0zPGEdDw4ZkCrvXOtvftb7z0YbY0tQEGcG0ED2SmbkoRSSrbKHIrd7Jsc33uUVHh/68Rca8tOiSBpHWhxelUDkcuX6rM/CtCamiU67mfCtRJNc4jGSg9qRZMSt4hmZPHacDvUNqQboFtbtSXfgvuzZtg5/4+//8GN/7Dv3T+ZfdeRtX7yH780/z+9//yb+582XTgIEhoogSDhUjqOINfeF0BksLfh5EsrS0tL/r7YGkEGEHn8+HHT5+TkyVMjo+Of+OSn5+fnFxcXk/+U6gQZsBoZRUdjgXz06KBEAzRxS+R/MPp774mQdchBfVvqbJU5xGYoF0SBTNRc5KYQZMI6xMQgZYLkm4UeN7SSem5YeSb6K0rcHzO6gC1ISkAuzdKqpuPZMuy0nQcbw9t2Dm+b7C/v/Jv7n37fTuO+piBIaKAEgoRL6ViCJGHIi++fXP3wkyvLy8unT5++5daPqh3ZIUH+/UMPmT4n3/zmP42Mjn/nn787Pz//3C/bIkjKRkFYUZYe+aPIRf9WoIq+VKNieggta2UOGTIMSleOhy+3HI3CnGoMMlkdUhEk2yx6DnrsUElziECtCl6kRD/IZxkSYA9SRoUmbFVySgxBmk+EO2EQJDRQAkHCpXQcQQYQWfU7sndeut5b/e3Z1aWlpf/Y/72xceNQyMce26V/SJ5++umR0bHbPvGpd955Z35+/n818hkHyXZMmzJRZEMlOtlZUE5ygkxQGRNBMjmEL/3YniRtcrq9DjkTJNtK2rn+wE2Kv5G10KN/jSpHGgriLy1hq4rjmQiy5/PH+9gdJsgeLq5D98TLWod2ziVZ8KuE93LaT+alktJNcSmgQJBwKZ2MINfElJr3T666z6wuL0ujIf11xeloyA0bh+/Zfu+BAwfeeOPNN95488CBH2y/d8fwyNiHN99y9OjRubm5108sfMDLlSDlbt/7T2hAoPU8ivR0fR8/yqWwXXRQ6Vw+mrUyll5s0s/O9mILx8QgDXVI14utN4uSg6GV1FL2t07MtQ6x1EV6sffKwyjV28cVRG3rdCatajqeLUO4EwZB2lR+gtS23R7idqpOnll7BBm/ZUzHBYKES+nEBLn2vgAiL13vrf7La6tLS0sLCws/fOGF2z7xKRGGDDenGSHLQ/q71IwOj4z9w1frv//978+fP/+Hs/Mbv7v4AS9+PUjhJARpn2lx/wk1ACaO7J1rHSILT0Yj/MKA34kTJOhFSrk/a2WUK+KnaJAcpJk0pP52gmTrEHQEJ5xJY2gWJTapt5KOgPefMFAXKTFa/pNbsJO/HcTKpbU5kyZ5hnDu7gBBmnbY67Iy40661Qi7m1tmKa3RE4IMdmdMX3CebQiChEtpO0G+lxCkPyAy3KImmFKzsLBw4cKFl1762dS+J/c8/sSex5/YvXvPrl27Hwu9a9fuXbv3PPvcc8eOHTt37tz58+df+83clqmFD3hLN0ymIMiOugRj2sof9Mq29hA8mAZBagJBJswknfxdCDMVDIKEB96xBPleEokUK/v4W9R86nvBAuMXLlw4f/787Ozs2bNnz5w5c/r06VNEp0+fPnPmzLlz535/cvbRH8/95a4Lfza5eMPk0g1e9l0N83UxCXLvnBQhKzd+xc2zhmHqvAmS9JqKPZo9l/Sfqsl4nmC2ivYxIjox7jjtxWb26Za3shYnyvU3nDskHYwukLsWQ/WUvZ71HOwt4LguDebFcxlHkKnvS4Idz6Pj2o7njteUampqOqUOyhPVrkCQcCmdmCDpvOxgZZ/rvZUPeMsbv7v42afnH/3x3OShuUd/PPutH5179ODZRw+e/dYLZ771wplHD5791sGzDz9/7tNPnf/go3MfnJz/s8kgAHm9F190d1xMgqR90KXGR79vuogtDBfVnY9BhoARjfxryGShh5eanhu+33Dp+RIfxhzXCVLf8s5YEMd5MrGR49oFqq3BVE/OWcshWQsQFosL0ekEmeG+iExsrUF5l3I64WVR64R1QAwSHngnIUgYhuFuuou92CQMJYsNLWkxOAUjTHghXmoEaQjU2Qoynsu+EV6gsTXIS5ap5BziWkCcmKRz2dKLnfy+hJmYWkM5Hr40PBDJ6wCChAfeIEgYhovm3hCkvTuSj151gCBjC7IRJBszy4kgE7VAkDoZXiUjyIRd4abW4AmSkLDU7528DiBIeOANgoRhuGjuAUFKfZ2thst1loYnNT1H6sOVukjtx/lebFExLxylyRYU34sdvEhEkEz17AQZW7Eoues6NKmJARMQZOx9sfRiR63B9mKzBSevAwgSHniDIGEYLpo7sR5kEHRyZEajgMVME2EyGApmjBCMcLUJM8bj3EyaKGM6slApiNQ/4Uya2BikXr2YXmxzC8jNJaFcuwQZe18SzKQhFZdm0jAFp6gDeaLaFQgSLqWLT5CHrNvcKSmzzfZNXgTcE2e+s3BJXZ5dDU2BqDwDVKVTD1dLilchKweChEtpEGSqIuCeGAQ5aAZBlliFu/Sm50hByuIBJAgSLqcHliCVDetAkDk68+pIMTsudr2eBV3maQAMgiyp/F7kwl046YMuID62QJBwSQ2CTFUEnLZtczkRBDloLg9BQlAOAkHCpXQ5CPJo+Dk7IR0PjpG9oemmzCKBDgHRBsdzrS1piqA2lRIdT7xBM932Wj2d29v6UKu192Bw/NDB1nsPMk1hT8BenV5zvtHkLcKVv5W25VspwYlK0TF7iBsak3rLUelEtTitnfX6sI9cbDvDGQyChAZKIEi4lC4FQQZUt791IgwW0qihCBRRgmwJvDhI/iZWYpAJi1ByYEuRjisbEpJkh2TopARJT997IoQh+dwgvY8spPLJE+hXpxSt3AXmKjgQVJqLb6UEJyql32+phrkxI3PbKkr15NrZFKimj5y9neFsBkFCAyUQJFxKl4Ig6S/33v1RpEfIp4pDBhAx8Z8JDixFmHJ4r8xh0fGDKs0E7yrHD6oxSFqQEjxTKsz+HZPAcHXGTlvTVSQjSKaVshFk+sZUMmnJwxWU4vR2jhKYHzn7jYCzGQQJDZRAkHApXVaCNCBCngTJFWHK4b1pCJLJ30SQ+1snBLwaIogZCZK7ulQEuXd/IQjS3pjsXWuFDRIVZ2hniSANjxwIshMuHkF2fmaMbd1Es9KuTZOtlE7UpHv5JtlfsccCQcKldCkJUu61vP9ExFVRP3I4nNEPLMX2YicsQsmBLUXBILXjlQyqM/ViswBKi2iXIA1XZ5k4wl8F6fQ3tQDfSglOVErne7HjGjPy/tZeDWpZQDTVx/TIJWzn+0+E7WAYVgFTgyCTCgSZKAcQJAx3wCUlSNP8kuiH/0T04WR/rYMuSzGTJlkR1KZSdAziJ3+Q/PWZNLQUXydO5BeDNFydfeoxexWi55dWj7atqZViT1SKjplJY2hM6vtFCploRT1j6mOa0gSC7IAHkWtn2fkAACAASURBVCCzqTjrY+dZE9MWlMnPUmpWxFtHBYKES+niE2QGd2cRljxLSdBpXlL3YEGc/m3MwTEIMqlAkPxZSs2KeOuo6GMsDIKEi24QZK9K2TtnmK/dX+7avRiExhwcd4Agfbxo6DtVG7ZdjlI6XlOiEz+9uoU1e66yC7OSJ1dBS40i0d2fh+z5q1nxe2rTejZc/6VaT7bypprIl6Vei2H3av1dsYl5WB9tU2pxTDlLyTC2aNMt65JAkHApDYLsWSmkV7SPiadLMcjBaMzBcYcIcogGtgQDuiEuRAf1ve9C8pLeMZ4bFtP0nCGJzJpybmoFdcjTRfOn1eHy17OKjljqSfnYP8pW3lQTtjip/jL06herxCD1+rAtHxuDNBVtaoruCQQJl9J9SZAwDJfaHYtB8i+ZeJbKEE3PGXJdBndizhUv5WgdEymT2c5IMeny17Ki+Mfmo8IiyUbJ3JiDUl0taiklY7HP1Isd1kckkqKJcQRpKjrRhXRWIEi4lAZBwjBcNHePIGnIyURX4XtDjuOoNBZ3LiU8O5eo/OMDknZOlvxJVpkJUs88BXiRCjAYZw9dcvVhWz4LQXJVAkHCcEKDIGEYLpo71YstdVWqVEFS0G7NhkfJi2YTf67aO0z6fM1xt6bnNZRDVGny17NK1Iutx/zYyifo/GWuRetKto8JjSNa0vLpe7GZpkMvNgwnNggShuGiuVMxSFefSBP1hTqu68ggYegh9Xtm3Ub8ufK0DPsEGVICN9+HiM5pictfzYpeB19PQ68xW3lTTdjKcqcZrjAsTe0sF/XhW56cpVQhbiaN6ZZ1SyBIuJQGQcIwXDR3vhe7WyrOajt2laWeXRB6sWE4oUGQMAwXzWUmyKbnxExQLobKUs8uqPdNAYKES2kQJAzDRXOZCVLq8C00lpWlnl1Qr5sCBAmX0iBIGIaL5uLtSQNBHRQIEi6lR564+L5v9/4HA4Zh2HcVBAkNmECQcCn913su/eXuy1VAJAzDBXB1Z+svdl9Zv+ciCBIaHIEg4VL6+p1rN+65OPbEKgzDcBG8fs/FD3x7DQQJDY5AkHAp3esPDgRBECMQZFkV7V6dX0pG3KI7bWWYpcC8BIKES+nOfBwgCILaEgiyrAJBphcIEi6lO/NxgCAIakudJ8jY9X26uQh5jxY8L7G6vvA3CBKGFXfm4wBBENSWQJCQVSBIGO61O/NxgCAIaku5E6S8sTPZH1ndadknOS2BtAm0DxINd8jxGsGJbiNKQkjDcJZHU6pl2TfQZvJkTtBLYdrDbTTcNi9QLzqC4bg6JE/JlCOdou36Ta5OahbTcfby5cfAVLM8BIKES+nOfBwgCILaUs4EycT46KGm54Zw0HB1HpEDUOI4wS+fNNTzzGdFKSOA1QiMlb7tHlt5thT18glBZbtArmjp8q11yJJSagf1FJkgJZyOOW68/O5sdwiChEvphM/32toa/ZtVZz5ZEAQNovKOQfoERBFApRItykUSyKGooSh26BCA0v6OP6vpORpBMlWVr8MUUdRDdGop6hnR5We7QLZoI0DbCdJeW71NuFPUGKRekuE4e/lKU6MXG4YVZ37i19bWrly5cuXKlQKgJP3vuKtFdrnQ7ot2cbWbTWHbSq0dG2uQDjY9x3o5Tc+JazYlAMSVY8wlTEN+uWUVtaVTqTPjIP02Y8N+tN05gmRuRQKCjDmLJUi9qoazSUKt8ukJMsMFskV3hCD1NsmbIFlqBUHCsMWxT7YgwpcPH/7S/Q9OP/Of4vgVTR3gSPG/IRssID0gXfzZVP7njuOFMDn3vS/9w6/9I8xyjHyckoh6utswMIacLzsmiLyV5VtTbhPpBiXAK13SpeX5Na61mac0mdbJFl5CewRpeGibzWaQufnWhWkc13Wkvrm+AEeh3HuxPWkkXEuCCQIHpCnVuCDp0NS5h/079iyOIJmqUtE8G54cKiOVT0mQ2S6QLboTBMm0STxBSoMfY46bLl9OC4KEYeqEz/fLhw/fdPOHff/7U//hH7xMxKJkHp8sDm+iH9fe/GYqP/4xmBXVVgM/FYq0rhT1CkUCORxWPIK0nJg6T75/LR+JnwgfET3RmnIg0n/X1W+PaDbm1qlp4pLIjB1ep2gu/Rcs+P2L/b+jnMo9BsnPqqCt6zef6zrKnYgYT8kgQSdvzFkRLdGyLB9JOU86tk+pfFqCzHaBXNGdiUFqbZIgBunq7Wg6zl4+LdXxPMQgYVi2/bEWFPjVr35NEOQXvrjNP3j58uVLly5dunTJh0jxR64hSf8H1KFdfv5PqaOSk0x04psgRCwSRaI/uco/4foXqHpMiYZ59CX3dR+U73J1jK7IJQQp/3pJeepV1AmS/c2xh2nV2ogIr0x79Nu0Se6O1wzfYUA4wisNtAJgU2hY+ZLWw64Nj5auNL31dhu+/6VzFBG81J8J9eGRqEFGCOP/G8rbUhvwkdcmnTYQVJsWBoKEIDZ8azneY4Eg4VLa/lgL8pt+5j8FQT466fkHL4a6FIolSDbDxPJ/cF03+pklPXgMOckUIAjSB04+EiT+b+a4QUuZkiAFTMiUpnOReiFmggyX1yD1ZmOQyhAevn7au/pV8/HRqImCtjU0kY0gGxIvsUMDjRFL63003242zGoJlsrV948G3ceuq8YqkhCkckX6fz8RHA6pWQaN1mz4+TcQgwRBQrxAkDDcedsfa58C/b+/851//sIXtz066S0sLLRarbW1tdVQMzNvPf/8gal9T1Lve/LffT/9f6Z/8Yv/65/lKw1HaswkDRPTCFInJakjKkygv9JJxZQyVS82eU8mCYlYuZAnSwNylyYNsTKnZyJI6arJC5pBBEg0tR494zFJZy0KTUoV2YO2u8PebrXaakaO11T7+0P4jCBUNA9FN/kSExEkrZMt6sqIG0mLGCQIEtIFgoThztv+WF+5cuXy5cvsWxcvXlxdXT30k598+vY7Jzbd7Ht84qbxiZvES9+bbvqQ7289Ojk/P++fnhgixS9z8Hsejn3mCZIBDg7cuH5T8rtNgIbtYU1OkAwM8N3mbNRTz1MHUo8nab4i8QQpX3X0ihlQKaJzape23iZmgowifTwrsoilH1crynK61v6i/JAgCWlKBOk45KEjiQm7mbFPLzaMLnv8xakd8BFrSg0qeuoRgwRBQiUXCBIupe2PtU+Qly9fpsB35cqV1dXV5eXlXbt2+8g4Pr4p+CO0CSI/+rGPHz/+dpqRkRFvRD2mKiuqAMT8XBsGIKpgJX6MReiJS5mYIFmsCFiR69a0c55alDbyOzeClGCPgBkPO+0RZEBJHguQ0UVS8PYMgwL0/yFMAKpcgj0G2Ww0PHeIDmUVuKlEY5PFIFv01pmmDKjjL/Us5eCjpTe+pAJBQoMjECRcStsfa58gL126JIY8rqysLC8vLy8v7//e/x6fuOmWWz+65/En9u178h//6VtjhCNNBLnppg99/gtfnJ+fTwyR5Jc55DHD+D/rOEgGElWk044ZUvIEqWIOk844HlCphCUOx8XvTNeuY5qBIKX6M1E7dhwkKdFIkEpLSq2nHHAcrofZcMPUmDHNLuZ26y0QH4MkuQTDb9mS1TtmwTmlkQ1gT1NJmQXZeyR6G+JkJ6eLdlkgSGhwBIKES2n7Yy0mWft91gIfT506teWWj9xy60ebzeMiTvnrX/96bGxibHyTbyUkSSHyyX9/io6wtErHEvIzz8be6A8v3zuq9R4rxxhEY6gkek1mOZBSzHOptZCXKSRKM+IIUlQwP4Ikr8PRp0zMM5Yg5TYx3CCl7S3oo/1fYLw7+u1mR5zKWdtjkK2w11jO0hIqthCk9G8QM2NGrjN91qOTBCyKPmzHbXju0JDjeq6dXUskECQ0OAJBwqW0/bH20dCPPvo910tLS4uLi9///rOjYxO79zwu1oP0KfMb3/xHliBpVHLTTR+64867/Mna3flwQgVXgr7mzkmPQbYoREdw3DZBSrSvp4940IDT0bjMoaEh12s2PCeYzdMgwFnQmQLpVRSCbOQR1uVnOOWSdfLiylYE2z7x5XasVTspECRcStsfaz0Aubi4uLi4uHPnt0fHJv5tah9NsLq6unfvv46Ojo+OTfgWNDk2vknp1H7nnXdAkFCr1eoxQEJFFQgy7+LKVgQIEgQJF9z2x1oA4srKiiDI+fn5e7bvGB2b2LV7j8KXj3z9GyOj46NjEyOj4/4fY+MTNCQpIPLo0TdMs7yhwZFxCCk08OorgoxEY8TtZ903EWdW2doHBAnD3bL9saYEKbqwBUFu3nLrzMyM6N3+5S+PjYyMDY+M+fg4QoKRfjySQuTrrx+9dOlSdz6cUGEVPwISGlSBIFPm1n8CQYIg4WLb/lgrMcilpaWFhYX5+flt99zrBxo3b7n1kUe+8d1/2fu1r319eGRseGRs4/Co/wdFyZHRcWVw5M9//vrFixe78+GEIKh06gBBRiFvecV5PQwuT93iptZZ+6TJuFn/aEB6JNtgjVuyqxW/gACdIqb8reRGFCWWitCm1oUHmczFX2KCnPwyRRHmJQK0BcmYFlXaR2JmtghTqxZaIEi4lLY/1nSYo9+F7RPkPdt3+FxIqHF0eHh0o+x7d9w3NbVvamrfl7/8sOjRHp/YND5x02uv/RwECUGQSXkTpL5gpnwkoj5p3hRJRINbTPCPMpXjOGIRLBnRlBgkBaNo2SymVjbI065Vwru4IqyZk5bQl1qNKUJaH4EhyKbnykvkqwm4nOVyuSLY+hRdIEi4lLY/1mIutiDIpaUljSBHh0cCZNywcWTj8OjG4ZG7t/7tyZMnaVYnT55yP/s50Z396quvra6udvIjCUFQiZUzQep9m+qRkE2U4+KltgKpyiZRBo7XbLgBOSrcY+rFDlOaapWdIGOLSJi5/DJVEeaOZWsUkstZlGssgjur8AJBwqW0/bGmq/no4yBHRsdGRseGR8aGQ3z0/fHbPkl3wRZaWFhwP/s5PxL5yiuvrqys5PPh6/Y/mtxCj+VSmyOFivmffRCGaHiO8kNv7B8zXEHDjbm3ys8S+yuV6CdUPtNnDlupcY9cLE+0jFcn7qm+UjuPSx1XLwjSSj/xnxo/B8KOjfAGt0WQCoP2C0HSuCF/HSBIECRcbNsf6ytXrly6dEkMhdQIcnwk7MUW+Lhh4/DzBw6YMnzzzTf9MOQrr7y6vLyc4JNlWuqFLF/dXaBJNnY9bsXA2HP1DreUl8gvc541Ny3rbCPcbVDXVnWkcVLKgDayDrdF4QXF31+lBI7s5PXJgy0bdaaVmbF9gmwZby2Jr+kiq5s7nudSlujhv0md6MUWDe+FsCz1F5NuUFP3KCFxntwcxxHdzqIvOwVBmmpFPnTkyyUTQepNkSjzNASZpBebnGf4urQSpO02gSBhuCu2P9ZiV0OxXo8/meae7TtGw15sMerRx8f1G4bteW655SNj4xNHjryytLSU4JPV9Jyh6IuYHu1FXKSlfe/xP7H0lyS1mp4z5LpJu4EsNTGelIUg2SKS4XRLGpvkv8z71glStBFkMgKzEqb0fjjCTUkV/GyFNQlbWx3r1fQcMuKfK84OvS67B6Wh3q1Ww3Vc1yHwEvSN6pE5t6Hl24NPWv4zaaKr0qdiDEn3hs4z8WQgYVKrRUhErn1VkO8uE+vwtRKFO67L5aZUw4J3TFNwmbdDkLQI00wakoJcEZGdIE1FgCBhuFu2P9Zix0K6I/bCwsL2e+/z1+ghEDmyYePI+g3D6zdstOe5Y8ffjY5NHD58JDlBup4CKuFvb1EJMuzNyoaQfrZyoK/cBMmPk89JEu1YerH928FDWdwdpfEpklZ0WYpkPhc4XjOKcmmKfrPJqU3PdRzHcaXbImUuo7H0igkWquHNoSHHazSb4pW/E7lEUoIH3IZat178DBdlNR+ofbXZ6VGQIjopECRcStsfa3/vQSUMubi4+MjXvyGWDSe92MPrN8THID/5qdtHxybefvvtFATZkL8f/BdS/w4TVCD/sZIu77j/7+3xCTt/kMyYwUBaEaRuUsHh9dB4hnr9tGRSKVvXt1x3Y27hedLyHHIR0T0RB13Xwrsxgw7122G7a0YmHoqhVAL0zSaNKdHQj+PI/BkVL24EJUgS1FPebDaM/YtRH1x0LU3P9TzXcV0JIZMSpI6Q9Ey5e3ZIjgVHBwKI7OMYJNQ90SdSftTLVET3BIKES2n7Y722tuZDJN17Zmlpyd8XWyPIACKPHz9uyvDkyVMjo+Of+OSn5+fnFxeTfN3TAVxy3wpDkPr3iP9TaPiiEXkyoSdDyiQxSHZMN5NWrpt+gZQhjePEjRcgJ1WGcNkXKCFdzlEkVOmH0/q55MKkythioWwj63dNr6Sckec4Q67nuWyvcDgyS9yLhuswYESm0IqyGIJUMpZ/x8QgMPEvgFKNILk0SI4U3fAoQiYmSC2gqQUNTR3iWlsiBgnlIvL0d+rp6UIR3RIIEi6l7Y+1IEixpo8fhjx9+vQtt35U7cgOCfLvH3rIlOE3v/lPI6Pj3/nn76YmSMEyAid0gmRIRQYONYHMTErAjk8ZT5D0VIXh5C860zAjbaQPjcFqJKANDuJqYgoK8rmxA4niCFLKVA2I8V/wxkbW7lpMQKzhBRNAoukN3AA/x3XNwwb5KHNMDFJ5VydIyseUIBsegdXwmOvHdy1XboE/qTp6c7MjT9XCaC1imrzzAkFCgyMQJFxKxz7ZPkT6Hdl+X/bq6urS0tJ/7P/e2LhxKORjj+3Ss3r66adHRsdu+8Sn3nnnnfn5+VS92K1W1Lmq/lC2RZAq0jEQJaeMI0j9V1+JFYnf4yQEGTKkq3Gz5TL1y7UQJJNbNoIMknJVMSCksZHtd02/eJcMOtXbX+SpcS2B3+hPvnmjfwR0gpQZsEUJUqsHqUbElFKQ1FSZmH7r6NINtM7Um2YSHJbwvzfBx0AgSGhwBIKES+nYJ3ttbU1A5OXLl32CVEZD+uuK09GQGzYO37P93gMHDrzxxptvvPHmgQM/2H7vjuGRsQ9vvuXo0aNzc3MLCwupCVIZ7GboxRZve0xwTus2DXPwlDGIppQmghS9vVJ3MakSUwQd50hfqAzWlKZbKv3R2ilRv7OpF5sO/mNzy0iQ4chA2jxRlE0J8YrG4hqZuWtaJUkTeyr5tBj40dCwQWZva6FC0lIhlTWVmTM6XhEWjItBiiMNV539Y5m5ygyZUK6ICU6q19Xgl+sJZwHRQHIzmLEWU25nBIKEBkcgSLiUjn2y10LRKTV+GHJhYeGHL7xw2yc+JcKQ4eY0I2R5SH+XmtHhkbF/+Gr997///fnz5/0u7OTrQdI4CTM6Tuv1JT+jekSMnbpBjvJ9iHxELGI70sfOlEd6yklmTc9ftUctQq+zDGAktCWdI9dEpNK6Z2MXKGEJUimCXAMJe0lISAgyScPbWoC7ZFkxBMmPDGTyMq8z1NDncpuYNHEMkvC2VDQXdrUQZEOeIaMPmIiyGAqmPaltGRJj+H8QDY9iHCQEdVYgSLiUjn2yKUEqAyJ9iLxw4cJLL/1sat+Tex5/Ys/jT+zevWfXrt2Phd61a/eu3Xuefe65Y8eOnTt37vz58yIAmYwg+1h813OpFdfh3NGSXeP6iPKcaZHINDjTIMpWLTniqOAtC6dhsQQTY6Kk2vlapkGe7FMUwT337xG9Vr/hHLKbStSU4h+xrj+pBSNIW1NDnGJbTP2Pq8PK98sp5686ECRcSid8vpUwpFgeUkDk+fPnZ2dnz549e+bMmdOnT58iOn369JkzZ86dOzc7Ozs3N3fhwgV/f+3cdjUsq/qOIPvugqAeqlAEiUdbSO3csCSLH3UBggwEgoRL6eSPOLuyjz8gcn5+fm5ubm5ubnZ29ty5c2fPnvVR8syZM/7fIvo4Pz8vApCrq6u5ff5Kqb76VZLHqEJQuyoUQfYuuN59xX8vxa5H0UrUYl0gSGUYfcJ7aLqobLklEggSLqVz+wRAEATlJxBkjwSCBEHCcDLn9gmAIAjKT3kTpP/zz44JpbPMmmpiae9yfcUoZfpXI9xISZpk7y/1pI6+NU1i87SUTA31I4psp5i34yJpzIAU0pMxsTY0mC2aJUgmJb+mRHjUPMtOqZ7UttokRHHMdFHJcou/L7xAkHApnfwRhyAI6po6QZDcFlDq4grRSlv8CgzaElRk2Qd1T1Q61UpdHKIZbT8kVUbfDkou0VjnlpyAgTqm2szZuccgTS2mEySfki7XJnZyCvKPqay2GJzatuxdSBiDZO+U/b4YBYKES+mkDzgEQVAX1ZkYpPZSm3svAlv05z9CA7X3UoJOOa7JLs4kna/Fz7iFtPT+Ur7OcgL9FL7a+tJPeROkrWiZIE0po3tFFwygeG6K95n6naUFqrS7kLYXm9wp+30xCwQJl9IJn28IgqBuqnsEaVg5MzFB6svStuIJkq7xSoNsCQnSziaJCFKlRsNeWfbssxGkgL9YghRVktmxoSxRSutPFcd8/F1ogyCzjo0EQcKldKanHYIgqLPqSC92+PtPXpChda0Ws8lTcNzcJ6sBiHoG+7dCYRaClGrob7XF1pmKP4WptmGvrOBcZVMA5toy9WJHaBnXi02KcZyofqIvm6s/VQrmI3chK0HG3xejQJBwKZ34CYcgCOqeOhKDZLaAYudiWAiyZZ1Jw57B/h2V6riuLQYppZUQWLsS5XKV9/mZNA2tSaK16DmCVNaDjBLL5SdosaQzaUQxLNfq9WdqK+a+qG3L3gXjRcXlluC+GASChEvpFM84BEFQt9ThXmwIKpBAkHAp3esPDgRBECMQJDQ4AkHCpXSvPzgQBEGMQJDQ4AgECZfSvf7gQBAEMcqbICGouAJBwqV0rz84EARBjECQ0OAIBAmX0r3+4EAQBDECQUKDIxAkXEr3+oMDQRDECAQJDY5AkHAp3esPDgRBEKPyEWTqLUmCxQPl+T10ccQ8ZFgVvMBqY2uX0goECZfSvf7gQBAEMep7gjRMDi8oQXZxKjsIEgQJl8S9/uBAEAQx6nuCNCTPmyBzkbKNdkcKYDcM7I56v9ITCBIupXv5oYEgCDIIBFkcdb5OIEgQJFxC9/JDA0EQZFDuBKltWexzA7uvcnSQ3dzZsOMzs5OyliYohBxS0CXBJtHRccfzXG6PaHI8oqOG6x83XoKSG205etSyLXjDZRpBe0u9EyRDseV0WE92B2+6C7Wh0NiLFVkrpfdGIEi4lO7R5wWCIMimnAmSCTP5IEMiX5S0mspppoMy7jEIIh8mZ8TFIE0n0kKbniMSGY5LBEnh2X/blBtbJUut5MaUpLzV9NzwfPl0eie4eurtbynUeLGmyiMGCcOp3csPDQRBkEF5xyD9UBPlI4UbwpdyVDGKi7EHldicjl/qQSUkaCZI04mmQk3H+QLDsGKSS6AhSOPlWCDMCO8kEGjqxSb11NvfVmiCi01U+S4JBAmX0r380EAQBBnUmXGQPrqobCXeYhDNV5KDSQkyihmmJEgr83WOIGkM0ng5iQmSBjqjdxIQJN+93iZBxla+SwJBwqV0Lz80EARBBuXei+2RvtqoD1TqwdW7iVsNN+FBSxew3HMavkjdi23vrU7Ui61BVdJLoEFItlaJCZJkRto8jiD59k9JkFkq3yWBIOFSupcfGgiCIINyj0FqU2aanjPkutxEGq2T1XiQzu7gp6FIiYZ4lFISx82kiWoiF8oejyFIc26GOlln0jAXz8Z6g/Jc16E3gxkcwNZTQt40BGlsUlJ6bwSChEvpHn1eIAiCbOr8aj69jzzlINPSN9mWxDGd1fH1IAddIEi4lO71BweCIIgRCNKgpuewM6NNx7PlxqQrY2OVRSBIuJTu9QcHgiCIEQjSKNKfq80t5o5nyw3qokCQcCnd6w8OBEEQo84TJAQVRSBIuJTu9QcHgiCIEQgSGhyBIOFSutcfHAiCIEYgSGhwBIKES+lef3AgCIIYgSChwREIEi6le/3BgSAIYpQ3QcprGravaLfl4uXWbnF5txUUJxAkXEr3+oMDQRDEqC8J0rhKIwhysAWChEvpXn9wIAiCGBWdIDOqFGtzF6StBkggSLiU7vUHB4IgiFGfEmSBKmJWCarYZwJBwqV0rz84EARBjDpJkIb9pqPjyg7R3HFlv2nP1RblNuTGRiHJ6ubs/tvyhdAFwP0zG67/mq6SLq2YLp+lJlPKA0F2WyBIuJTu9QcHgiCIUccIUt67r+EOkeMSVQWJDMclggxTROMLTbm1eD4TucVslKNvPOgDIEeNcg213WvCGrvhG1JTgCC7KhAkXEr3+oMDQRDEqFMEqU5mCWFKOS5emo4rMUglwGg6i6ahUnjUNM2FmYkjIydLkPpZ+klSFBIE2W2BIOFSutcfHAiCIEZdJEgr8+VPkNYYJHnNcGTuBEnDo9IVgSC7KhAkXEr3+oMDQRDEqHu92Pbe6kS92PogR3MvNttPTZDO44YxkquIRit60ThImg8BQqaDvuHRcZCk7nJ6wZfFnzneDwJBwqV0rz84EARBjHowkybqzdXmvsTOpNGnyZhyYwN8hAOjyrFxwCjbaOilHr0cGhpyXJebLqOMtiS1jNKDILstECRcSvf6gwNBEMQob4JMKdPa38Y1wRPmVor1IKFuCwQJl9K9/uBAEAQx6jpBNj1HClKSWCJ7PEtu2fgT6nuBIOFSutcfHAiCIEY9iEGSOcnadG3ueLbcIEiTkSCff/EYDBfKIEgIggquHvdiQ1AXBYKES2MQJARBBRcIEhocGQmy1xWDIFUgSAiCCi4QJDQ4AkFCpREIEoKgggsECQ2OQJBQaQSChCCo4AJBQoMjECRUGoEgIQgquECQ0OAIBAmVRiBICIIKLhAkNDgCQUKlEQgSgqCCCwQJDY5AkFBpBIKEIKjgAkFCgyMQJFQagSAhCCq4QJDQ4AgECZVGIEgIggouECQ0OAJBQqURCBKCoIILBAkNidH7DQAAGaNJREFUjkCQUGkEgoQgqOACQUKDo4wEOVOvVmrTCcuYqVcrptQz9WqlUq1P16sVWVz66VqlWp/hC5muxVRopl6lJysvlazkvKZrlYpW8nTNWJckhcjvzdSrXO3F4RmtfbirtbRB19qZbZaw+uGZfibMRRmfk1arBYKEIKjwAkFCg6NMBMn+9IdSAWKmXq3U6hpxylChEFSEKdM1c0mksHiiVUpgkE1clZ8puUgDZVlpjanpTL1akaAxfKFdZJgzJUipNANxMujX7XYOCFJuA52+g1wU3jRcVigQJARBBRcIEhocZSDI6ZqOBCYRaOICW4IkbGSTINZp5J+obPkYBzg6Y5pozCylriKPIAQ4Q44G76lMFjaTVOVa3USQ9ioRRO1CO5O6VOszARwSWNTijtX6tFQfW8i21QJBQhBUeIEgocFRaoL0QcCAEvLvv9p7TWNwOknwLGYrLi4wFjFrFOryIUUKfYUvaJUiwrM0Aqt4yqzWZ1rTtUq1Wq3W67UgNlmbbjFsTslPzYYPTlqr0/F2lpo6+HOmXq3Wp6XGJBmxd8IkECQEQQUXCBIaHGUbB0lja+JHXx3YJ+iEviFBkg8sMcPqoi7dmaggOZNqtcohD42wUYKs1ZRAnBqDnA65jgUpEz4b4MoUr1WajsmBdEAbe7HlNyR8i7LrWjtHVbCxqGjZ2rSxyqxAkBAEFVwgSGhwlJYg40NslWq9XlNjj2pkzYeHerVaqdXrtXqd4Q3/FMJ+0zVpnKLITIkpRqUZRvkFgTHCVyaC5Hq3Zayi16R0gcdAph+QDWKCFCVFmpl6zWfd6ZoKvQpBiiAgd+3dbGfR1LUaQ4MCLqvVaoDFJM+4LuwWCBKCoMILBAkNjjLFICU0Y+lHkoENpuv1etB3SmaOKCl9ejLSKj8PJCYGqbwb14st06Y/K8hcF78q1ap+yTodVlmk88ufDjp/Y3qxxejCEATFKEoCkF1q5xmKw6Yah8grMaffgR47EBMECUFQwQWChAZHWQhS666OGZLHEuRMvVafodMsNIZiZrdIaCT9yS8hE80k0QlSZG6IQTKzT8jAvpgYpKEXN+rWr02bRgKEZdVpqNTYix1NfRYI6Uctoxy72M62pg5rUPeHgSoTehJNzgJBQhBUcIEgocFRRoI0Bqu44XY8cjEkoafUkIVyHTt9g1ZPRBJ5rJHLVN6JqsbQW/yFM6xFcLCmgKihxzyeIOObo6vtrCbxQ6La+ppcv3fMOM1WqwWChCCo8CoSQTbcIcdrdibvfNX0nPyr2nCH3Ea+WZZVTc/pSFtkm0nDKm0vdkuP3CkpmRP5zk7zJF5mjjHPSnJZfFzQcjmpYpDmbCwEyeXFtgZzH7rVzmqSsNrG3KdrFTKrPI4iQZAQBBVcnSHIpucMpUcAECQI0leBCVLAkoku4gjSENSTp4+IRGxW5gWxw8kbagySnBFE8/g5zTEEGdVdjbJZx0HqrRLWRzrNHoOciVaUNElaq6fj7SzmfKsXo2Y6XavUprl56va1RkGQEAQVXB0hyKbnOI7MACYmoMcLTpCdwppQ3SfIzFfU6aYoMEFCUHcEgoQgqODqBEE2PcfxmjIQgSBjBYLseP4gSKg0AkFCEFRwdYAgfYCkQNhwh0JJiKgcb7hDjueFxyKCiJKxgNn0nCHlHOZQwx1yvEZw3G1EuZI8LQXJVY0Ip81slSLENZPiJJQSxx3PM/E2dy5FsuBvpfH9o9HBIHX8icbSgzdN98LTG0rIUJkUjckLBAmVRiBICIIKrvwJUgJH8SufMAYZwkI00DAuE+ZY03PDMxruUIR6Q1GWUkGEBW21JQels9rMljZclGeER/IlSIxsADjmXAYEmaMS4yU90Vy6n9J0L9Qb3ZLOYiuTojF5gSCh0ggECUFQwZU7QdIfefJ32l5sEsiUZYgOqoe1yJehXuLv+IJMBNlmtvRC3IaSDS1MOc72+ZvOTUaQzKiDVARpGIZgvRfhjdbOYCqTojF5gSCh0ggECUFQwZU3QWo/8jFRqwQEmQgTfEpxvKYcnkuFejEFZSXIpJhjIUguq6QEKdqkFwQZfy9SEmR7A2VBkFBpBIKEIKjgYn9T7bZ9odGOVul1VoKUc2y4TN+ypwCOEvlMiHqxBWUjyPhsaVsZerHJcNLUvdj+C9JZTNpE68XWX8SfqJYu7qYXDm213gsjQXI1S96YvLIRpLxWjb5idKvVMi+TnbP8DaZj9zPJtTxt8R7tbYuUzbGTNU2CXaONK0wmrw85hd2H0rAlDcnGUlzshcY+JyBICIIKrnwJUgVIBSFNfcNDZCaNDhbMVAytUOnt6ATHdROjXnxBUVVTECSXLQ9gCWbSkCtLN5OGnErahDZ+03OGXJeZuxJ3IttGUuzZei/MMUiuMrH3yK4sBCn/0k/XKtVaTSMhsWM2xxSJic8/mV3Am27A3D2CTM585AS+ekzDSAnNay9SHiPYmIQyY5srfJ/ueB7VKNy9J829lIFUPpnfqtEkECQEQQVXzjFIKIlyWbcn57WPOr1ATyGUgSB9jogWqRYrdKvrbOtbvYTvJWawmXq1Uq1yWaTh0BxFLjPRhRjis9rS2RywURnpUCXIabrXYPL6MO9KrEnAL9olkm4to+3IE8GmqbzpGq1uAiQFQUIQVHCBILuvpudkYjV6nj7ruf1KgSA1hZs61+ozajhLcMN0rVKrR7umUORMFigjpVUrtbqCajP1arVej0GuDikdQRp4bbpWqVSrpu5eQ7jOQFlqovAdtsfZwo9817V8lOTp/xkyq0r4MzP0vwi1DkFqLeSIGCQEQWUXCLJMIn24ea+9DoJkFHSt+khYrdeVntZqtRoNiAt2C6RxKnsITFdAaVKEzn8h9ZKLLKOeXxEC8wsl++kxXagEw5is6OaAVprT616pVqPtB9V3uYYwAbYhC6kCymbeanpzfUjPtaZgj0K6OaSxGeLGXIp7QHKTY6ggSAiCSi0QJDQ4ytCLPVOvJ2DAcOdmbZdka8cmk0ulNk2DZ+SISpD6pspKHExOIPJkgomGlClikEEOBKQraiCV1EsnP/soyAhrDeMgNRqLq08SBfte12r6mYaQpxQrlRo0yiX5jCsQJARBBRf9KX3oKztNBkFCfaDUBBmRDWFDFWtyk6A0bYKHTpDMUEIZ8tQE9Ew5lmhMmZAgI0qWQbEizYCxEmSKFuIIUh6ZGFef2Anb1VqNDD1lkrMNYbkudcRlEI4EQUIQVGopv6ax+AiChMqrLHOxIymRJ4It0zW/p1nvgk4FSITSpmsVOvoxH4Kkr8m8b3PKBARpBEW12rEEaQQ7UjnjTJowApywPoZGUa7MEO40kLT5ZrODJEGQEASVXfoPqh0fQZBQeZWJIIPQY23aRJABYKivZ+p0EN6MfWHFVnAigVKa3NCLLd6uR+MgpXqr4ylbtFteikoyKeMJUj0YS0WEE7nMmEV7ZDCzrOYTznVOUR/pfwCtQlLBYjiq+Q6aCDIa3YrVfCAI6iuxv6kWfOw1Qba3EA6/C3On1fa6O/lW25YbO58ml8WHCqG0BCmPYjT0YoeYpSBCSDjhDO1gOSAbNUhAps6Z0WfSREE7edBkJH4mjdQ1H5dSnSsdtwqP5fo0KDZkJ+qi52WOGbJF2+rDTbCRSlTRVY2HJquaxONKEBgECUFQqWWaLmPCRxBkeoEgi6JO9WKLA+bRcklikKWXCePMoweDqJ7cdCQEqnZkm8cwcvhmpjT9vwF13GlFqhgNxcrFcTxOi1GPqtxvFAgSgqCCq2xzsctCM6bdGpOflS1BmwJBQlAxBIKEIKjgAkF2RiDIIgoECZVGIEgIggqu3AmS27jYsMszOYNukxy+YM8KaYaijrJLdSOogduI8giyVFJ68rumQvmyLFs0k0zEft9hWVFa9XzlLKWF3IYlgVrzMAFbc4kSo7Mcr8lcXtCIbkPp/M55T8UuCQQJlUYgSAiCCq6cCZKJYcn77zVcBiIjHBHnm86KJcjwNB+N/MMMPDVc6d3oHKbQeA6zNwRbVtNzw5KiqzNkGh02lSo1a3QZMTXXt0YM35PeCducUGNJw5IgSKg0AkFCEFRw5R2D9MFNDupJkGLqJ5VDYMazEsQgm3KebP7Su03PcbymuVALrSaaksKVJRJJkcmsBKnUXLy0EyQTR2x6zpDrKpQvcFGcUFKABEFC5REIEoKggqsz4yB9NDJhGd8F63jN6D3jWV0mSLVrV0M4cqVaC9gIsuk5TN96IQhyyHEcNbuoZ9u/TeUESBAkVB6BICEI6j/Ze7E9FVi0rmE2bNf0HMd1Hcp87FmUIAmA5UKQpkLZspgrVa7HSpDkGKl/Lr3YBE4NNadhVFFJjzYQqZMUcVRvU8mUiSCZZbOVlWPs2+Txi7wYFxacqVcrFbLbii0fa0bMSjJaScoChYYVceTD+nKNM/VqtV7nt7au1mdm6jV2TXDlmu3q72WQOIEgIQjqP9m/0KKpGRHp2GfS+JKYxXyWFA8LpoC4bj4xSHNVubLYK1Wuh8ykUcuKerBpnuQsJS9rAqk2jucpeCqXogYmTd3oYiSp1Getj50skbIQpLJyYK0u005GsjFsShjlqCxlGOGgvpKhSmwit1iATLB/i1gQ3XzF8egZ1T7tTtipd87uH4EgIQjqP+ELrejq5ETpck7CDpSeIKdrfjxQ2mRP3TwvXjHYF3EZ3RrRSJAJyjYWGO14LR+Tw4B0Be+4vfhMFZLgL1iNnQ02xmzTA4LEFy4EQf0ifKEVXZ2jvPIOgWy1WhkIUmxDE/4xXZP2vk4t67Z8lOCMvdg+sPGEGBeAjCKf0f46YZBR2gSa2Rhb1FLOONoMUI1TMpcaHdI3kVbhsr127gOBICEI6j/hC63o6gxB0vWRSqocerE5YEuhmN2Q5a2jTUnExtgzdK8/us9etVrlakojmZQgazUl4Bltwm0nSLpXo8gySBPAH+mcJ9jIEmR0SBQDggRBQhDUR8IXGlRStTsXW+InCkFmzFRokEtIsqlXq5VavV5j56WEUVDBftM1dZNmUS9aORr5Y0dTBqAnquqfHMyPqdZnTBNdqvV6rTYdZmogyJZcMNN4ai1bIMhWCwQJQVA/Cl9oUEmVhSAt84TTs40ORJStpuv1etBHLcKMzAnVWs08dZmfbxMTg1Te9d+crslhwzC1aRxkPEGaODscIgmCpAJBDpjMm5x1/GwxDzNrFxNdnS59qbaVlaG+E77QoJIqA0HyYJNR0zUuKCmmKdfqM4TieF7VqkAQVPqTAS9pdrROkCJzS2+zlSBljk0fg2RQGAQJghwQEQRMD3INV9oYONX5Tc8hy4tkYcim56iLCCdRm6Otdu3alflcqIfCFxpUUmUgSPss6lQ8OVOvckv4CKir12c01GJWYzQFMbm5z1HBgkLVmTPs8pbZCFJLqhAkOTmmF5s/Skdd9r9AkIMonyPbGm3Ob9qRSJmYzi8vw6ltEuTQ0BAgsoyyfqGVfLJuR5T8g5J4t0CyVHjZFPyrbb7ODq4X1MY4yOlapaLMOEkVkWRmpQTZKoMYrQTJYBa/mA4bgyTptXGQhhxTEKQqeWSlAtzm+lkzkTG0vwWCHETlQJDZ95zN8tVr2tEtWXFtdNu3/DMfeeSR9KdCvRQIMqXKQJC0C6WTbJrg+SgQQZKe1dp0i/TyUvRKstaj3H1NO2xZejOMvZQJViRiWcxcq6DSWgySnKGSniEz0d+u9asr2eirC8URpBQ2VQ4OBkCCIAdSbRNkRgrMyHH8Hh1Zckl/svi9evHFF7OVC/VEIMiU6gBB5itlnxl9e6Bci+LawrQJZM7CvthQaQSCHES1R5BZBzKS09N89+b3tZ3lbMQgSyoQZEoVnCC5b502v4mshRWEIB/6yk7fIEioiAJBDqLaIMg8vrRTfflKHVftTebOSJBf+tKXMhUH9VIJCJLdMpru3Nw0HzRth+14DRJrD1NZs4pd4UAvS4qnkxd65uRKpZ2oyec4+Fg0XD+FWhH22kmXgOV6lc4Dz9IaUuX4NmDeFUdj8zflzdxHw7gXcjhdc6WWEn0EQULFFQhywCQtbmP8zeLVxrCmaCp2W4Oj0jNgwyVBgwzlAh9LqliCHKLhJGaUhMAf/cGRj0inD0VII/GeOf+YeKihrCgnWk+98tKV0oo4jkPgqxnUWAVUU4Mku17pwtnMh+i3QnqClO5RssonaNukMcgMJSaS3oUNgoQKKhDkgKkNglRPTYdj7S1EGVUhNQSSMEcpZ4VCmZSmFzt8qX04RLBJenLUIyzDcX+z+QdHzTEye1kyRGmZy1caXajjNf3FucSiCgr92CusAzH3txGduWlx9s+2kSDTVj5J26btxU5cYjJhHCRUGoEgIQjqP2UkSP03PxFB6hxjIEgjU/j/YWlvG8sK3lFfx1+pzI4N9nz72ge9IMiYcZDJKy+fbm1b7YQEBJnHv6kgSKg0AkFCENR/iu/FljpQo85WMqpRP9jwwliT1PvJgAf7N5d/0/NIReJ7WiVucV2HlqJXXs0zWJc/7GQWfdk8EhkbJA+CNPViG4a5qP3c0j1MXvlEbZuRIONLTCQQJFQagSAhCOo/xccgXW4iDTvYIjpIJ80MaQljCZLPv8FVhIgtq6UwlCFzjUrpSRKrsUjE5pkXQdLMyUway0Bp43qQySufqG1NwcQgP3VwQ6oS4wWChEojECQEQf0nfKGVTDl1AfeBQJBQaQSChCCo/4QvtMKLLNCgdCgPtkCQUGkEgoQgqP+EL7QSiPT5Ah+FQJBQaQSChCCo/4QvNKikMhLk8y8eg2EYhmEYhuGEBkHCMAzDMAzD6QyChGEYhmEYhtMZBAnDMAzDMAync+XZ109d/d8/BMMwDMMwDMMJXXn29VNX//mHYBiGYRiGYTihfYK8GYZhGIZhGIYTuvLs66eu+vObYRiGYRiGYTihQZAwDMMwDMNwOoMgYRiGYRiG4XQGQcIwDMMwDMPpDIKEYRiGYRiG0xkECcMwDMMwDKczCBKGYRiGYRhOZxAkDMMwDMMwnM4gSBiGYRiGYTidQZAwDMMwDMNwOvsEeRMMwzAMwzAMJ3QKgvyLGz/ysdvuuOvurX2ju+7e+rHb7virkY/1/DbAMAzDMNw3HgRkqjz7+qmrPnhTrP/ixo985Stf+e1vf7u2ttbqF62trZ06dcrzPGe0lqQRYBiGYRiG7R4QZEpKkB+77Y7f/OY3q6urF/pLKysrs7Ozn779rp4/cDAMwzAM94EHBJmSEuRdd2+9cuXKXD9qbW1t69atPX/gYBiGYRjuAw8IMiUlyK1bt66trZ3vR4EgYRiGYRjOywOCTCkI8sqVK72ueUd05coVECQMwzAMw7l4QJApHUHO5qcnt1S2POn/eeTB6ypE4WH1uKzrHjySU01AkDAMwzAM5+XckWl2dvbJLSr4EI6anfWZacuTswZ4oinbUUaCvHz58rk8dfjB66578DD949y5c/u2VLbsixL4f4s/xLv7togz2tbly5dBkDAMwzAM5+IOINO5c+fO7dtSqYTws29LheEgylDxh7OIIlPl2ddPveeDN8Xab46zndDU5sq6Bw5HLzZPBX8ffmCdOQYZndKu/OZI0ggwDMMwDMN2541MVhzyqenwA+sEPfma2ixAiaJVm6LI5BPkplhv3br10qVLZ3LS1Obgqs9Mba5UNk9F77wcNNO6B16WT3n5gXU0XY66dOnS1q1bkzQCDMMwDMOw3fkik6qpzRoihZAU0JVKmFObK3kRFEWm3hDkmTPxSPiyFbkDAM1DIEgYhmEYhvNyzwiSJiKxuN4T5MrKyu9y1I/uu/bm7/zudz+671qVDK+970dhou/cTF78Ljpaufk7uVVkZWUFBAnDMAzDcC7OF5kYTlJ083dCphJnXHvffRFA5UhNFJlSEOTi4uJbOaqx7ZrxXdIfwYtK9OqtXeOG5iJp2tXi4iIIEoZhGIbhXJw/MkVqbLuGYyCCUrvGK+O73npr1/g12xrSkTxEkSkFQS4sLMzkqOe2XT3+2Mxj4+OPzTy37eqrtz03MzPz2HjF/yPUY+Py6/BoZfyx3CqysLAAgoRhGIZhOBfnj0yhntt2dSVkJ/WN8cf89wNuIgCVIzVRZEpBkPPz88dy1LNfvLpSqYztpK+u/uKzcqKdY4YYZHheDpqfnwdBwjAMwzCci/NHJl87xwQn7RyTQejZL149tpO8f+zYzjHxt5q4DVFkqjz7+qn3/NmmWG/duvXChQu/zFE7x67+wvf9PyqVSqVy9Re+MOazIZdIOVVO1Z4uXLiwdevWJI0AwzAMwzBsd/7I5KOSjD7Soe9/4Wrxbhh8Iwc4lsokikwpCPL8+fO/yFnPfP6qSqUyOkmPTY5WKpXK6Oc/f1XMyNHKVZ9/Jo9KnD9/HgQJwzAMw3AuzheZJkc1UtLffObzV+lJfKDKj5d+ISNTCoKcnZ19sx81OzsLgoRhGIZhOBcPCDKlIMizZ88e7UedPXsWBAnDMAzDcC4eEGRKSpB333336dOnX+9HnTlzBgQJwzAMw3AuHhBk8glyIta1T9xx5MiRt9566+f9pV/96lczMzO333lXkkaAYRiGYRi2e0CQKSlB/tXGjz788MNvvPHGH/pLx44d+/a3v71x08d7/sDBMAzDMNwHHhBkSkqQ7/mzCWf0Y7ffedfW/tLtd961cdPHr/rgpp4/cDAMwzAM94cHAZlSECQMwzAMwzAMvwcECcMwDMMwDKc1CBKGYRiGYRhOZxAkDMMwDMMwnM7/HxzuBPXswmpbAAAAAElFTkSuQmCC" alt="" />

2、修改web.config

  configSections节点下新增

<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>

  configuration节点下新增

<!--日志的配置开始-->
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="SysAppender"/>
</root> <logger name="WebLogger">
<!--配置日志的级别,低于此级别的就不写到日志里面去-->
<level value="DEBUG"/>
</logger> <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="logs/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------错误信息开始-------------------------- " />
<param name="Footer" value=" ----------------------错误信息结束-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<!--日志的格式-->
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>
<!--日志的配置结束-->

3、LogHelper类(需引用log4net.dll)

public class LogHelper
{
public static void Log(string msg)
{
ILog log = LogManager.GetLogger("log4netlogger");
log.Error(msg);
}
}

4、继承HandleErrorAttribute的类,加入log4net的处理语句。

public class CustomExceptionFileAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
//处理错误消息,将其跳转到一个页面
LogHelper.Log(filterContext.Exception.ToString());
//页面跳转到错误页面
//filterContext.HttpContext.Response.Redirect("/Error.html");
}
}

5、修改App_Start/FilterConfig.cs文件

public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//filters.Add(new HandleErrorAttribute());
filters.Add(new CustomExceptionFileAttribute());
}
}

6、Global.asax.cs中加载log4net的配置信息。

protected void Application_Start()
{
//log4net.Config.XmlConfigurator.Configure();
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
}

  其中log4net.Config.XmlConfigurator.Configure();是网上找的代码,实际测试不能生成日志。

MVC 5 下,应用log4net收集异常信息的更多相关文章

  1. ASP.NET MVC显示异常信息

    开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的f ...

  2. 收集统计信息让SQL走正确的执行计划

    数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELE ...

  3. 使用SpringSecurity3用户验证(异常信息,验证码)

    1. 自定义user-service后,封装自定义异常信息返回 通常情况下,抛UsernameNotFoundException异常信息是捕捉不了,跟踪源码后发现 try { user = retri ...

  4. 爱上MVC~业务层刻意抛出异常,全局异常的捕获它并按格式返回

    回到目录 对于业务层的程序的致命错误,我们一直的做法就是直接抛出指定的异常,让程序去终断,这种做法是对的,因为如果一个业务出现了致命的阻塞的问题,就没有必要再向上一层一层的返回了,但这时有个问题,直接 ...

  5. Log4Net在MVC下的配置以及运用线程队列记录异常信息

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  6. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  7. JAVA IO流的简单总结+收集日志异常信息

    1.字节流: IuputStream 所有字节输出流的超类 . 抽象类 ---- FileInputStream ---- BufferedInputStream:提供数据的读取效率,拓展方法(内部维 ...

  8. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  9. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

随机推荐

  1. 单点登录CAS使用记(三):实现自定义验证用户登录

    问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验 ...

  2. linux初识-01简介

    什么是linux: Linux是一个自由的,免费的,源码开发的操作系统Linux的特点: 开放性.多用户,多任务,具有丰富的网络功能 可靠的系统安全 良好的可移植性 良好的用户界面(命令界面和图形界面 ...

  3. css画小米、遨游logo

    狠简单的2个Logo,用纯css写出来,觉得挺好玩的. <!DOCTYPE html> <html> <head> <meta charset="u ...

  4. IIS下图片防盗连设置详解

    小站只有100个IIS,盗链后经常是连主页都打不开,就想着弄个图片防盗链,在网上找了一下资料,正则表达式的写法啊,ISAPI_REWRITE基本配置啊等等,找来啃了一天终于发现有三个方法实现. 第一. ...

  5. WebSQL实例记录

    <table id="content"> </table> <br> <input type="button" id= ...

  6. JS中typeof与instanceof的区别 (2010-05-26 10:47:40

    JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...

  7. Sicily 1931. 卡片游戏

    题目地址:1931. 卡片游戏 思路: 纯属数据结构中队列的应用,可以练练手. 具体代码如下: #include <iostream> #include <queue> usi ...

  8. Gridview中的数据导出到excel中

    protected void btnExport_Click(object sender, EventArgs e)    {                   //导出全部数据,取消分页      ...

  9. MCS-51单片机存储器结构

    MCS-51的存储器可分为四类:  程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之.那么设 ...

  10. 如何判断一个C++对象是否在堆上(通过GetProcessHeaps取得所有堆,然后与对象地址比较即可),附许多精彩评论

    在帖子如何判断一个C++对象是否在堆栈上 中, 又有人提出如何判断一个C++对象是否在堆上. 其实我们可以参照那个帖子的方法类似实现,我们知道堆就是Heap,在windows上我们可以通过GetPro ...