{"id":10131,"date":"2025-12-16T14:10:51","date_gmt":"2025-12-16T13:10:51","guid":{"rendered":"https:\/\/www.ps.tf.fau.de\/?page_id=10131"},"modified":"2026-02-27T11:25:43","modified_gmt":"2026-02-27T10:25:43","slug":"forschungsprojekte","status":"publish","type":"page","link":"https:\/\/www.ps.tf.fau.de\/en\/forschung\/forschungsprojekte\/","title":{"rendered":"Research Projects"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Ongoing Research Projects<\/h2>\n\n\n\n<h3 class=\"wp-block-fau-elemental-fau-meta-headline\" id=\"headline-99e2aaed-df88-44f2-a1ac-a050561344ce\">Automatic Testing of Compilers<\/h3>\n\n\n<div class=\"cris-projects\"><\/p>\n<h4>AutoCompTest &#8211; Automatic Testing of Compilers<\/h4>\n<p><strong>Project leaders:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/>\n<strong>Project members:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Patrick Kreutzer<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/heineken\">Tobias Heineken<\/a><\/span><br \/>\n<\/div>\n\n\n<div class=\"wp-block-rrze-elements-cta is-style-darkmode\"><div class=\"rrze-elements-cta has-image \"><div class=\"cta-content\"><span class=\"cta-title\">AutoCompTest<\/span><span class=\"cta-subtitle\">Automatic Testing of Compilers<\/span><\/div><div class=\"cta-image\"><img loading=\"lazy\" src=\"https:\/\/www.ps.tf.fau.de\/files\/2020\/03\/AutoCompTest_small_image.png\" class=\"wp-image-183\" alt=\"\" decoding=\"async\" \/><\/div><div class=\"cta-button-container\"><a href=\"https:\/\/www.ps.tf.fau.de\/en\/forschung\/forschungsprojekte\/autocomptest\/\" class=\"btn cta-button\">About the Project<svg class=\"icon icon-solid-arrow-right fa fa-\" aria-hidden=\"true\"><use href=\"#solid-arrow-right\"><\/use><\/svg><\/a><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-fau-elemental-fau-meta-headline\" id=\"headline-99e2aaed-df88-44f2-a1ac-a050561344ce\">OpenMP for reconfigurable heterogenous architectures<\/h2>\n\n\n<div class=\"cris-projects\"><\/p>\n<h4>ORKA &#8211; OpenMP for reconfigurable heterogenous architectures<\/h4>\n<p><strong>Project leaders:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/>\n<strong>Project members:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mayer\">Florian Mayer<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/brandner\">Julian Brandner<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/rotsching\">Lukas Rotsching<\/a><\/span><br \/>\n<\/div>\n\n\n<div class=\"wp-block-rrze-elements-cta is-style-darkmode\"><div class=\"rrze-elements-cta has-image \"><div class=\"cta-content\"><span class=\"cta-title\">ORKA<\/span><span class=\"cta-subtitle\">OpenMP for reconfigurable heterogenous architectures<\/span><\/div><div class=\"cta-image\"><img loading=\"lazy\" src=\"https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/ORKAHPCLogo-transparent-all-whitefinallycanvas.png\" class=\"wp-image-10800\" alt=\"\" decoding=\"async\" srcset=\"https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/ORKAHPCLogo-transparent-all-whitefinallycanvas.png 200w, https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/ORKAHPCLogo-transparent-all-whitefinallycanvas-150x150.png 150w\" \/><\/div><div class=\"cta-button-container\"><a href=\"https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/orka\/\" class=\"btn cta-button\">About the Project<svg class=\"icon icon-solid-arrow-right fa fa-\" aria-hidden=\"true\"><use href=\"#solid-arrow-right\"><\/use><\/svg><\/a><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-fau-elemental-fau-meta-headline\" id=\"headline-8f6de9be-c475-4931-b3f1-e71f852bff3d\">Software Watermarking<\/h2>\n\n\n<div class=\"cris-projects\"><\/p>\n<h4>SoftWater &#8211; Software Watermarking<\/h4>\n<p><strong>Project leaders:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/>\n<strong>Project members:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/schwarzbeck\">David Schwarzbeck<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/novac\">Daniela Novac<\/a><\/span><br \/>\n<\/div>\n\n\n<div class=\"wp-block-rrze-elements-cta \"><div class=\"rrze-elements-cta has-image \"><div class=\"cta-content\"><span class=\"cta-title\">SoftWater<\/span><span class=\"cta-subtitle\">Software Watermarking<\/span><\/div><div class=\"cta-image\"><img loading=\"lazy\" src=\"https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/softwater_negative-e1770806982498.png\" class=\"wp-image-10773\" alt=\"\" decoding=\"async\" \/><\/div><div class=\"cta-button-container\"><a href=\"https:\/\/www.ps.tf.fau.de\/en\/forschung\/forschungsprojekte\/softwater\/\" class=\"btn cta-button\">About the Project<svg class=\"icon icon-solid-arrow-right fa fa-\" aria-hidden=\"true\"><use href=\"#solid-arrow-right\"><\/use><\/svg><\/a><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-fau-elemental-fau-meta-headline\" id=\"headline-8f6de9be-c475-4931-b3f1-e71f852bff3d\">Automatic grading of Java and Scala homework assignments<\/h2>\n\n\n<div class=\"cris-projects\"><\/p>\n<h4>AuDoscore\/ScExFuSS &#8211; Automatic grading of Java and Scala homework assignments<\/h4>\n<p><strong>Project leaders:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span><br \/>\n<strong>Project members:<strong> <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span><br \/>\n<\/div>\n\n\n<div class=\"wp-block-rrze-elements-cta \"><div class=\"rrze-elements-cta has-image \"><div class=\"cta-content\"><span class=\"cta-title\">AuDoscore\/ScExFuSS<\/span><span class=\"cta-subtitle\">Automatic grading of Java and Scala homework assignments<\/span><\/div><div class=\"cta-image\"><img loading=\"lazy\" src=\"https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau.png\" class=\"wp-image-10847\" alt=\"\" decoding=\"async\" srcset=\"https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau.png 1134w, https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau-300x300.png 300w, https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau-1024x1024.png 1024w, https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau-150x150.png 150w, https:\/\/www.ps.tf.fau.de\/files\/2026\/02\/AuDoscore_ScExFuSS_Logo_on_FAUblau-768x768.png 768w\" \/><\/div><div class=\"cta-button-container\"><a href=\"https:\/\/www.ps.tf.fau.de\/en\/forschung\/forschungsprojekte\/audoscore-scexfuss\/\" class=\"btn cta-button\">About the Project<svg class=\"icon icon-solid-arrow-right fa fa-\" aria-hidden=\"true\"><use href=\"#solid-arrow-right\"><\/use><\/svg><\/a><\/div><\/div><\/div>\n\n\n<h2 class=\"wp-block-fau-elemental-fau-meta-headline\" id=\"headline-593bdaba-6aa3-494b-823a-6dd8b446a625\">Completed Research Projects<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Completed Research Projects<\/h2>\n\n\n<div class=\"wp-block-rrze-elements-collapsibles \"><div class=\"accordion\">\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"anacore\" data-href=\"#anacore\" type=\"button\" aria-expanded=\"false\" aria-controls=\"anacore-section\" id=\"anacore\">AnaCoRe &#8211; Analyse von Code-Repositories<\/button><\/h2><div id=\"anacore-section\" class=\"accordion-body \" aria-labelledby=\"anacore\" role=\"region\" name=\"anacore\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/AnaCoRe_small_image.png\" alt=\"Analyse von Code-Repositories\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH6gQVBjkE5CimOAAASWBJREFUeNrtnXecHVd5939n Zm6\/e\/du11aterVkWbJsucm94BhhUwy2KQ5xwJAESAIJAV4IJAQIEOATQo1jsI1tjAu2sZHcZEuW ZPXedrVN0vZye52Z8\/4x7czs3Lt3VyvtSr7PfmZn5sy5U7\/zzHOe85xzgKIUpShFKUpRilKUohSl KEUpSlGKUpSiFKUoRSlKUYpSlKIUpShFKUpRzmshU30C01TOh\/tCp\/oEpqOcDw9uKq+dm6T9FCqF QCpP0n4uSHk3AJ3vGrkC8+faB8HkA03zbCskTR7H7y84uRCBznVNXJ58ZAL5tPWzDTTNsQyY4S00 H\/LkO+\/lQgDa7hq4HNvtwCWWud1v2Xk+wHOl5ZKxtC4LuN081zY70AuB\/LwH\/HwEeiIAs\/DmSiOW 7bnSYLMvO809luTSxFYtTW22seuyTb6x0uzO4YIA\/HwBOh\/EubSoFd5c6\/m22WnmXMcdKw2whylX 2lggazBb4Wa3Ic96oRre7tynrUxnoK3nls8UKARYa5oVXILcoNuBb2eijOe+5ivQ2WlhFkI5x7I2 STnyFwq89fysgE9buKcj0LlAzqWBc8HKYTS8nE0eLY3H2C+Bddl6vnaFxFwaWlvPpaHtoM2VZl2W bX4jWX4r59gfcqwD5wHY0wXoQiDOpTGtQHI5Jj7PNuv2XC8Ge2zA\/qsw1v21AziXzWuFWII9pBJG w8xO+bbb7TfXst05213XlMlUA50PZDstbIVNg5jHaDB5y7KWT8BogK3L7MvBLtu9WLmAttPgY9ms VtPBqkUlmCFkQbUuSzZ5ZEua9Tc0zzq1mWA5f2CKwZ4qoMdyn+UyIcaCULBZ520mzmYbZ1knsH8h SAETez2sjW1np441sVo4F4gyAJFZt1sWYQ+6xGyz0+rWl2haa+1zCfRY2lhLs9q1XI65HbACk2Zd 5gE4cuS3Am6F22qOjPp6cBxHFi1aVO7xehwUMmmorw8KgiAQwsPr8bgjkXBKBpBOJjN9fb1hAAiF oumOjo4R9dpzaUErXLmA1KAVYYbUbm63LNnsyw7ssTS3di2snDOwzxXQuTRyLm1sB5YGnR20Gqja 3MmsC5ZlIcd+HOzxAoGA65Zbb5m1fNmyxrq6GdXBYLDE5fK4HQ6HwPEcx\/Ec4QlHQAjhCFHOngKU UlBQZVmbW9IoZbdTZEUR2WwW2axIs5kMzWTSNJ3JSslkQoxF46lQeDjS3dPTf\/xYa+f+ffu70ul0 BqO1MDuxaVmb7Vq6ZJnb\/Z49jmSznMvuBqbAFDnbQBcKci4bl4WWnRw55k512Tqxv9Mhd3lcrns+ fM+CK65YM7++vqEmEPD7nU6X8vIQAJQqT4FSFUotjQXVLm18QFMgTxp7DCCbzSKZSNBoLEbD4Uh2 ZHgodrq7t\/fggQPH9u8\/cEIUxTTMgGpz7SXQ0rQpAzPgGcvvrLCzQGvbc5kj5xzsswW0nXlhNSus JoUVZhN8MGB1woCTBZjd7mTWBQCOqqoq\/+f\/\/nOrVq1cNb+ivDIoCLwDoESWqQkiBV7YpE0PoEen KecLUEQiUYRDYXloeDDb09M3fPTosaM7d+zcH4\/HozAA1uDWJhZsds6+BOxv7b4EVu2dy1PCylkB +2wAnUsrs14CTSNbbVxW22oa12lZZsF1WdL1ad371s36xMc\/flnTzJm1HrfbLcsSJ0myCTIgF7zn J9DsPpRFGcPDIxgaHJKHhocTHe3tp3bv2burrbWtA2ag0zBDbp2s0FshzwW21fUInGVtPZlAF2Je sBrZzoa1aluXZdnFpLmZZWdTc1Pwq1\/5yppVKy9dEAiU+DOZDCfJUg543x1Aj06jCEci6O3ppf39 A\/HW1hNtO3fs3DwwMDDEQJ22TBmYgU\/DbKpYTRZWe9v5vM8q2JMFdD6tzMJsLcyxpoPAAMpCq627 rfN1d66b9aUvfum6hvq6mkxW5LOZjAqqBaIi0MZxmWNJsoTenl6c7u4RT3Z1de\/Zs29zS0tLGwNz Sp3SljQW7jRG2+V23hMr2GcF6skA2gpzLv8xq4l5FUpNI7Oa18Osu9XJo4F80003NX7t\/33txlnN s+ozmTSXzWbNYBWBLhhoNk2WZfR09+D06R65t7e3b+\/+fW8eOXTkuAXspAVwbdmquVm4rX5xO8\/I pEF9pkDbwWynla0a2YXRZoSHmWsQewB46uvrgz\/7xc9uWX3ppfPTqbSQSqdt4C0CfSZAs\/uVZRnd 3d3o6OgUT548ffTNjW++Eo1GQyrQ2pSyTCzkGtgZmL0kGtwayKyNPSlQnwnQduGU1lo8q7uMNSc0 DWwF2Kstf\/wTH1\/wz\/\/0TzeWl5dXxGJxIstSHniLQE8W0Oy9iYQjaGltpYODg+EjR45t3LVz134A CQvcCRVmbZ01RzS4WZegnbYGA\/aEoZ4o0HYw23kuWP8wa0ZopoVXXfcxIPt+8pMfX3P33XevkWXZ GU8kdMi0B1QE+twBraVlxSxajrWg6\/Tp9GB\/\/\/YN6199E0BchVkDXJvbaW47\/7amrTVX3xlDzU8C zLk0suZC07Svl5mXMFOpNn33u9+99vHHf3fvokWLZycSCT6bzU7kmqaVTEpJZxoIRzhUVVViVnOz 4HK5Z86cOXNNY0ND4MSJtj5KKeux0liwizsH7JWolkah17lOTNmOF2g7mFkzg4VZ08i65lWnAMwg B3\/6s5\/e\/Nijj31kyZIlcxWQxbP+gIoyMSGEoLKiHDNnNvKUoqGxsXFNU3OTr7WltRf28TB2gVv5 5IygHg\/QdoHsVr8yCzNrE\/vVKQBGI99xxx0LX3v9lU9esuKS+ZFIhBelIsjnixCOoLq6GnX1M\/hY JN40f+GCy3iOD\/X19SUwOgQ3VyNjLc36IaNM2rigngjQuSpJNJg1V5sXikb2w2JelFWUVW14Zf09 f\/e3f3ddKpV2pVKpc\/s0csmFYh+cQ3E4HGhsaoTX43EkksmLVq1aOa+rs6srnU4DuSMUgdEgW5ft QB9TCgXaCrN2olab2QqzBrSumb\/61X+54rnn\/nh\/RXllRSgUIrJcSEdARZnuUuL3o3l2M7q7ewJ1 dXWX19XVZtvbO4ZgNkuB0bY0q43BbJuQ6VEI0HYNT7VPitUdp5kZrGYuBRAEEHzhT89\/8JN\/+clr QqEwSaaSU\/0MijLJwvMcmpqaIAg86enpnXfVNVfNPXTwUIuqtKxQ5tPCbNq4oB4P0Pk0swYzq5l1 mJctW9q0d9\/ezy5auLhpaGgIkiRN8a0vytmUsrIgamfU4ODBQ6WXXbb60mgs0hkaCdvZlTTHBMu8 YNNjLKDz2c1jaeYAgOCt77l1wSuvvPopt8vtHh4eHs+5FeU8Fo\/Hg4b6ehw6csRRX9+wyhfwDfac 7omom1l45RxpLNAFa+lCgLazm9nIONbPbDIz7r33noueePzxj0uixIdCoam+x0U5x+JyudDYVI+2 E+2ktDS4tKq6KtTV2TWC0drXWmNo1dZAgYVEUsA2u2g5NpDIAwVkHxRbuRRA8Av\/8IXLv\/ed770\/ m82SkdDI+GrsbGsF7dImuaZQP8bk1RQatW32NYWZeBiRwVMID55EbLgXmWQMYiaNTCoBKZsBJzgh uP0QBBccHj\/8FXUIVNTBX1kHQXCes5rC0Wnm+5Wv1jIei2P9+tcgOHiaSqb++Nprr78NYARAGEAE QBRADOaqc7aFDduOUQPeVoQxgLfroyKXZ0PzNZfcfOvN8773ne\/dRSkl4XB4rJfqXSXRoZPoa9uL \/rZ9GOjcj2R0BCpL45oAAn95HapnL0XNrKWYMXspnL6Sqb48W\/H6vLjq6jV44\/U3idfnXbd8+fLh ffv2HUTutovsnIMBM4cx+sceS0NbtTMb7umFYWZolSXl5RXlNe1tbV\/y+0ucQ0NDEEXxDDTlhaGh 48M96DiwAZ17X0Vs+PSEAC4E8MqmhZi94lrMXHY5BJdXv19TraG1YxxvacWunXtQO2NG9tVXX\/uv wcHBU1A09QgUTR2DERuiRe2xsR9W+3qU5LKhc3k2WKBZr4YGdfDI0SOfr6mu8YfDYVwIsRgTFUop eo6\/jV0v\/hD7X\/k5+tv3IpOMjhPS8RwPiIcGcfLIThze\/BLC\/adRUjEDbn\/pVN8KXcrLyzA4MITe vj7+iivWLN2ze88O2DfhsjbfsnaXkFMRkzzpVs+GFmykaWctLkPzM1c++tgjd917z31XptNpjIyM 6A\/23aShZVnCyUOv4+imxxDuby8YXt5fCVf1HAj+SnBOHzinB5zTCzERgZhOQEonkB7qQaL3BMRk fBT4ubR2\/YJLcNF1d6Jy5twp19CUUsSiMbz08gbIsozGxsZ3Hn3k0acADMJsU2tRfFqUntZQYEwt PZYNrcFt1xaQtaG9zc3NlXff\/eE1ABCPxyf2Cp\/nMnTqIPa89EOEek\/k1bCcywffrNXwzVkD35zV cFfPA+cpYR6R+cfaS6NJJtyH2MljCB\/bipHDWxDtOAgqSzZQU3Qd3oXOQ7vQvGwNLr3jPnhLy6f0 Hvn9fjTPmom2E+2IhMOr6+rq3uzu7mbjq11QIBagaG3NQpBRgKcjXyiftRCoeTY02zkARTOXA6jc um3Lpy+\/bM28bDaL4eHhSdKU54eGTsfDOPjaz9Cx9yXIMrXXloIbgSU3I7jy\/fDPuwaEF0zPhgIg lK0NNh4fC7R6Fmqa8k9MRjCw42X0vP0Mwsd25DwHwenBips\/gIVX3gyO46dEQ4MC4UgEL7+8AQAw b\/7ctl\/\/8n\/\/B4qWHgIQguL1iKuAs+0WtYJjTm+HnQ1tBZrVymx8swdqBUogEKj48Y9+fCfHcSQe j0MU3z1Rc4Ode7D50c9jsGufrVZ2BOtQfcs\/ovGen6DskjvhrJoFQpSwBgICjii3myMEHAGUTpgI CCFKnAEBOKJsV9IICCgIIQBViOccLpTMXIraqz+IGVfeBRAgdvIYZMtzkEQRp47tR0\/rYdTPXwaH 2zMl98zlcqK7pxepZAqiKAa7T3dvy2QyWuNba\/8fdo1rx1UotOtDQ+voxVrN7QcQ+OUvf3H7ihWX NANANBrV38gLWSiVcXTzb7D7he8gm06M2u4oa0DN7V9D3Qd\/AG\/zSnCCS725CsQEDMQgivYgxkSI 0n2TDrmabuxDSyd6GgA4fKUoX7YWdWs\/DMJziHYcGgV2bGQIrTs3ITijAYHKGef2vqnzZCKJgYFB pNNpsnr1KueB\/QePInfLFmvBMKfpkQtoaxCS1ezQqrkDAAI\/+vF\/vT9YGvTIsoxYLHZOb9BUiJRN YdtTX0H77ucVs4M1LTgHKq79LOrv+Rk8jStAOF69qRq0BIRj5iDgOU7VHkSHl7dqa7X7PA1sAiaN I8ZDIwQUAO\/yonzJlZhxxTok+k8i3t1mOk8xm0Hb7q3geAdmzF5wzu+hKIno6joJAKitrfXv2rV7 K8ytyK1AF1S5kq9QaA3KtjNBBACOGTUzggDeFaZGJhnBlie+iKFTB0dtczdcjNoP\/QjOqrmMGWyY DtA0q7KowwuiQEZUzwSxNKVQTVQAik1KCIGswanZ1ByBTAkopeABUEIgUwpPVQMu+Ydfon\/nqzjw yy8jHR5S8qtlgB0vPolEJITL1917Tu9jScCoBBocGirF6H4I2aZc+eKoTTLWSKl2nY6zXcw6Zs+e XepyuTnlJl3YpkYqNohNv30Qw6fNMBNCUHblA5j56Wfhqpqrp3uH3gEvZ1StqmhizYzgiKGxeSga mecAjiNqHqKbHzwBeELAcepcy0\/U\/GpeXtuvqtE5QnRTpHrVjbjiuy+ifPFlo67r4Fvr8cZjPwc9 h7HpLqdTXx4eGuZmzZpVAXP3xmyrF2vLF\/3WW\/fLjZUBozU06\/3g1l67tlbLeCEDnUnF8PbvvoDw QIcpnXN4UHvPr1B9+9dBeId6wwh4ApR2PYEZOz8NAZICJ6CaG5wCJgOtBrmgga1Dr0wa1MY29WWw vhwcwHOEgR16wdNdVoPVX3sUs+94wHxxFGjZtQVvPfV\/5\/AZGqhRSjFr9qw65G5oW7Dky2zVzLY9 IlVXVfn1nXHjOvZ5I5KYxjtPfRGR\/hMADDuUuEtRd\/\/v4F98m57XgAxwRY7D270elbv+ARyoAhsL MKONBcLp2tXQyprWNjSvYnMTXTNrmlt\/OaB8MTgoml8rgOrfa47Hwvv+GYvv\/zoo4fRSFgAcfedN 7Hjp6XNyT621yH6frwT2gzlZnRR5Q0hzEWhntwA2UGclUX+leX4ivSJMb6GUYucfv4HBrn2mdD5Q g8YHnoVn5mrmphnwcITCEW0BAPi6\/oCyg99SQSU6qFZgTctaPgZsTfvqZoqqrdll7WUg7Dqn7g+G N2TWbR\/DJX\/7A73QqlwssOfV53F4yxtn\/b5anQc8LwD5B2oybnMeqMejUm019uDAYMY4KV53I10o cmL74+g+utGUxrlLUP\/RR+CqMbwDiplBdE3qjJ8CEQ13nv\/YL1By+CdmEwPEgJyDbksLugbmDC1s spFZLa\/l4eBMnNLNDF4ZXMDQ0Lp9TnWo669+Ly7+7Hf1Z6Zp67effRSDpzrP6n0dGQmZ7ynPpZF\/ rJqCZKI2gn7QwaHBrCwbTapcLtdZvRHnUka6D+PQ6z8zu+V4N+ru\/Q1ctUtMN4NnXGscIXBGjuvb eafyTPwHvwPvid+qpgOna1tTQZGFlzE1tMKgVjDkCae\/AJyqjUsP\/QcCLb82FTR1Da1izHFEdwcC QOPaO7HwI18wuQ0kUcSG3\/wU6eTZa\/fZ29unL\/t8PnA8l0L+PjwKArsQoMcyP5DJ6Eoabrf7rN2E cyliJontz3wFsmS29arf9324mw1PgQYb4aB7FjgOcMSO6XmW\/GUFHD7lVvt3\/QvcXc\/qGlbgtIKe 4gXhGQ0sEECQohBiLSrYnFJoVCHmOcPjQQiBED6GwIFvwdfxJFPTyNY4MlAz1zT\/\/Z9F07V3mq4z NNiPTU8\/clbubTKZQn\/\/gL4+b77uGcplXuSCfJRM1OQwSSpjvMkul+uCsKWPbvo1EuEeU1pg5b0o WX6Xvm4AApOXgQOFM6IA7Qzw8Dc4sPjj5RBcBKAyvNs+B1fPq2pegJczcERa4Dj9MpyH\/wfud\/4R 3lfvgvfp5fD9fj5cXS8YpgjhRrnoOBAIVIQQawcoRXD3P8Pb+4rh7TC5ATVNb4Z6+V9\/E4GGuaZC 4vFdW3Cq5fCk39sTJ9pM3pTlFy8HpTSXRj4nJofpgMlkwnSCPp9v0m\/CuZTIQBtOvPOEKc1ZvRCV t3+LuXhiLn6rhTgCqvRYGVaA9tYodVe+OgcW3FcOzkFA5Czcm\/8K3tc\/Au\/zl8H75Cy4X7garo2f gHPPNyG0PgaubytIqh\/UMwPS4gdHezxUb4dSUOQgxE4Asvo1oSKC2x6Ea3CbameboVbO13ghAIB3 eXDpP\/wEvMP8hX3rmUchTWKFWTqTwfHjrfq6wAu4\/HK9YF2QFs4nk+Jnk6mMRNIIGfV4PHA4HEaG 88w9ve\/P\/wlZFg3bGRwq130fRDAetgIu1e1XQigDtgw+ojw0b7VRGVs6y4kFHy4D4QEipsB1vwES 7QRkc7cObLmarvgnJT5a08xQTQ1Nu2vmR\/g4swOASGmUv\/2XcIX261Ab8SMWc0RlKNA0Hws\/8Bnl uGqU33BfD\/ZuXD9p9\/bAvoMml92aKy5HIBCYtP1PmuM4Go+YtHRpaanh8TiPHB8DHbsw0LnLlBZY eS\/cDZfo64qdrIFh\/GmwCLEuEEnphsJTbY4uKFvgwty7guDdBL46ByqXedB4nR\/zPhjEsk9XYsXn q\/RCJMoXg8y9W69s4QnHuPEYvzQAQS2EEg6Ye2epUvATYyjb9DE4Y60M1BRE+y1nvJiazH\/fA\/A3 zjFOmAK7N76MbPrMu2vr6+1HW1u7vs7zPO68a92kPr9CAvwLEkkSEYtHUeJX3jZBEFBaWqq0XMmp oaef6j66+f9M65ynDOU3fllf18M3oUW5aaGdAKEUrt7X4Tn0Iz2\/r8Yx6hhVyz2oWm4futn2Qhhi Wrkv3KXfAHhBqcTh1HAzWcGPAyBzFJQqcR2CarO7ygRUX+IFFYETL4TBZYZR9ta9GLr2GVBvvRo3 QiFTCmeqB3y0Dc5YO4REB5yxNjjjHQh8YDEe+uEJ\/ZxS8TgObtmIFdfdMuH7Go\/HsWXrO3rsCQDc dtutqK6pntTnN2lAA0A0Hobb7YFDUB6i2+2G3+9HNBqd1JM+WzLSfQj97dsBGG664JoHwHuDenAQ AVUDi4yQT0JFeLqeg+\/o\/0AIGYUoTiDwVBV+ixMDIvp2KL5r0nA9uIbrwBxYicrhiNqwQInRoQSA DHCaza5+EWpWe5FNyuh6JQo+2YOKzfciWX8b+Gg7+Fg7HLF2\/SvCiuQMIrn2W6ha1Ie+Izt1\/Ha\/ 8WdcdNV14AUnxiuiKOKtt96G2oEjAKC2dgbW3XXHpD\/DSQWaUoqhkQFUV8zQq8FLSkogiiKSZ9Gn OVnSut1cECSuEpSuvt9YB2HCNyk4KQPv6T+i5PCPwEfb9Hy8i6D6Ei\/qr\/aBdxVub3Wuj4LKADge jsu+ocQ\/q5F1WogZBWUi3dWvhJwGIh0AjEIoADSs9UNMyujeHAcfbYP\/6E\/HPIf+uX8DSQhg4Qce RN+3PqmnJ6IRtO7bhQUr14zrnkqShM2btyIUCutpbrcbn\/27z8DlnPw6i0kFWrkAEcOhQVSWG5+S srIy8Dw\/rTW1mEmg+9ibprTSVR8F5zFaTRNClYJZOoTS1ofga30IXGZY3+4s4VC7xocZq33g3eMr OITbMxg5qmhMYf49EMoXq1soOEL0UFGqVsLokFOARE+AUsUT4bXY7M23BCAlKfp2JUB4wB0U4Krg 4a0U4K4U4PBzaHkqBDlLkfE1Y7jxPgBA7SVrEZy1GCNth9WzAI7s2DIuoEVRxMY3N6Gvr19P4wiH v\/7UX6G+ru6sPMdJBxoA0pkUQpFhBANGg8xAIABCCCKR8BnsOZ+cmT1+6vBrEDPmr0jJJR\/RlwkI CM2i\/MC\/w9\/2iKla21XGo2GtH1UXe8AJ4y8BUwp0vKx2++bwwbXqy+C07lVgFKwpJZAIBaiykSOA GOkCPfhjfV9WoEGA2etKUXeND+6gAGKpIuhcH4WcVe5d\/6J\/AniHbubMvvFD2PnLb+hWz8mWI4iF huEvLRvzmlLpFN54\/S0MD48Yp0IIPvih92PZ8ovO6Fnlk7MWHhdPxDCiBpNrUlJSgvLyimkZlXfy 4J\/1ZUoBZ8MqOCqN0j4hFIR3IDbnY0jW3ayU0lTJxmQkB0XImYm9VNmYjESv4soSalbD6a9Rfcyq n5mJERFUkwfDByFu\/DSkP1wO2vacco4c4K4craMIB3gqRsOcDkno2aq4W5PlqxCrucXkM2y66i\/A Me5XSimO7dkx5vUMDQ1jw59fGwXzBz50F2646fqz+hzPKlmJZBxDIwMmd57H40F1dTWczvEXLs6W SNkUBrv2mtJKln\/AtK4VAiX\/bIQu\/xkGb30dqcY7FBs3S9G9OY5d3+9H54YopNT4wHaWcLrXQzr9 JuSRIxDUihqB48BxRkgq7Xkb6T\/fjfRz10M68QxARYAAwfkuLPnLinF9IbpeiUIWKUAIBpd+xWjS pX4VXIEg6i65Vs9PKdB59GDO\/VFKcfTYMWxY\/xqiTDQdx3G472P34Prrrzvrz\/KsmByspNJJDI0M oDxYAU4NVRQEAdVV1QiHQ4hEpt6uHuraB0nMmNK882\/WlzWYtZgIQgik0oWIXvUrZIb2wLv\/2xB6 N0HKUJx+K4a+nQnUX+VD7RofOEdhgDVcV4KBfUlQWUZq9w\/huvl\/QYjWvYGMdPufkNjzY4j9u43z 4oDKZR7UX+WDd4ajoONoEjudxcB+xcSK1\/8FMsEVIFTzSRsvZO2qa9G17RU95XRbC0QxC14wo5NI JPD21m3o6e41pft8Pnz8\/vuwZMkSnAs560ADik3dN9iL8tIKuFxKbRshBMFgGbxeH0ZGhpFKpc\/w KBOX\/s6dpnVHxWwIpbXQHyylRkNAJUGvTJEqVyJ+w9Nw9r4J577\/AD+4G2JCRueGKAb2p3Dx31QW dA7uch5Vyz3o35NEpvU50Eu\/BK60GaljTyC++78hhozqYt6peFHqrvLBFZxY3EzHyxGl3wzeiZHF X1J865SCULWhrfpVnXGRuRAoiVn0drShfu58AMqos0ePtWDvnn2jgvabZjbiE\/d\/DJWVhd2DyZBz ZszKsoTBkX5EoiFTutPpRE3NDFRWVk5ZUNMQE7xPKeBuvtK0nRDjQ8wusVHEYt1apG99GdnrfgMa UGzv5EBWccMVKPVr\/SCc0kVCfOd\/gucd4DkHqGz+eriCPIJznROGOdEnItKh7DNZdxskX5NyjQSj zA5\/TSN8NQ16hzcUwOl25eXq7e3DCy+8hB3bd5pgJoTgqquuxN\/87WdQXn5ue2o656WzaDyCgaFe ZLLmh+Tz+VBfX4\/y8opzDnZkoN207mpcpS+zrbY1c8NYhlHtDaU7Adr0HtAlajyEBGSio4ffCLWk 0fVqFEOHU0iPGNs9lQIqlym2dLL1OdDwCZQsuRf1H9uJ8rXfA+etAQAk+kUceXQEB345hHBbBuMV b7UAf71a+dX7JjgxpkPMXqsmlQtWmHxI3Z3teO21jVi\/\/hWTfxkAautq8enPPIB1d94xJQrqnJgc VslkMxgY6oXX40NpSZnu9eAIh0AggJKSEkSjEYyMjEA8y+OxZJIRpBMjpjQn03KbMFrLrKWZvjEY 2DkCoKRR\/306JMFVajzYkaMpHHs8BFkyEBE8HPx1DvjqHHCXK4+EyhIiO76P6lt\/Cco7Ebj4AXiX fhSx\/Q8juvOHkJIDiHZlcOihIZTMdGLmTSUINBdY0CZA43V+HHl0BFw2hMCJ\/8PwvM8qEOtWFhOX Uz\/b+C0FTrafQIlQatql2+3G9TdciyuvumJKw4en1H+WSMbRN9iNeCJmquMnhCAQKEVTUxMqKyvP qkckOmhoZ+0ZCmWzTWlsQ2hWU6m9vilwUyWWA5QCvgY9TzpkvJBDh1I4+viICWYAEJMyQifSOL0p hpOvG4Xk+PGnIYdadbedQ\/CgdMWDqPnoDpSs+kcQhxKmG+3M4OD\/DuHE84X7+MsWuOGrU7R0Scuv wYsJJnbTHCvtrjKuhwIQU4YPnuM4rLjkYvzd5z6LNVdcPuVN8KbcISzLMkKRYfQN9CCWMHcjRgiH 0kApGhub0NjYiECgdNJvWCJsLpVznnLw3qBxDjAer\/WB6yGY6opukvgb9G+2BvTggSSOPzkCKgGE dyH4nsdQ8f4NKLv2+\/Av+ShcVRcplRqMUFnCyPbvg+cAQY204zjA4Q6i9PKvoPqju+G56FMgvBOg wMiRcRSsVS0NQNHS7Q\/rF0iIEhIci0bR19cH2Vdm8n1QWQIVRSxctACffvAB3PHe2+HzT48Y+Ckx OexEkkSEIyNKxJ4vAK\/HZ4LX5XKhuroaFRUViMaiiEaiSCTOvNtea790HAMzAB1M40wM7WVti6aD L3hAXBWgqUGkQxIG9yfR8ocQqKxsK33PY\/A0Xa80s2pYbXRbIIvIhk8g1bsX6f69SPbtQbT1RVSF WiAE5yvV3mpvoBwBBG8VSq\/+D3CuIOI7v4tsTIIs0lG+6GS\/iHRIgrfWAWeJocPKF7rhq3Ug3pNF oPXXGJn5MSQzHGKJBBLJNCRZqWwXvGq8MvNh+cg9H8CsefOnXeukaQO0JpIkIhQZRiQWhtfjhc9b AoE3TpPneQRLgwiWBiFJEuLxGCKRCGLx2IQ6SREz5peCc\/pH5SGM4UxMc1Y7M14CAsDfCKQGMXwk hf6dCcXz5\/AicPuTcDVcbQQ5MW0IieCEu2IRvJWLwJF7QADIsggpm1QqJmUldJXqsRxEiS8JNAFQ rJ1MWIK7wrhfsdNZHH54GGJScbc4Szj46hy6zV59iQftf8qCy4yAO\/gzhKrvg2RxzQhur2mdAnA5 x+f3Plcy7YDWRJYlRGMRhCMhuJxu+H0l8Hp9JuuO53kEAqUIBEqRFbOIRqKIxWJIJhMF97OnxW\/o trIFaHOLTTIqjV1ntTj8DcDgHmRjChzE4YX\/tifgqLtKPZARQ826BbWGr5ze6FYAz5dAlCk4QiFT Ak4NktK64eQDRiE0FTKAjp3K4tDDw5BSBqCZqIzMsTRGjo02T+p6fodTle+HRFz6tbjcLpSVNpjG gwAF0tNlfHaLTFugWUmlk0gk4+A5Hl6PDz5fCTyWvo0FXkAgEIDP54Msy0gmk0gkE0glU0inU5Bl e28JpdbmT8YnlJgRtQiBnTWvR8D5DciIMwDfe34PR+1ljO3NuseYDh21rgdU7U85CklWGhFQGE29 jIYGgOA3e1UAINKZwdHfDkNKK60DUov\/HhmZgBs5CGfkKJzJTlid5A4xhLr+p3Gq\/mNwutxweT2K SaG+dOwXUJKmZ8ec5wXQmoiSiFBkBMOhIQi8AJ+vBIGSADyWTyKgVNjwPA+vxwtJlpDNZJFOp5HO pCFmRUiSCEopBKf5xaCZidjlBtqUqmBqrjtXEO7b\/wC+ekXO3+qAWwqbvKqFZa3xLdVya7GjyjLv rwM4HpAlZEISIh0ZHPntMKSMAnNoydcRrVsHSaYQaykkmULOxuGMHocrdhTu6FF4E8fhSbahaeAJ ZJc+CFHwKsemFGIqASqbRxtwT1Fn6WPJeQU0K1kxi+GRQQwND4AjHLxeHzxuL7werx4zogkBAc\/z cLlcEAQBkixBlmSIogiXx9xAU54Q0MyxtGhPXwOoKwjXe\/4AvmoFIKUhZ+PgvTmqgTX7QV+neQfk o5RCFEVkRAkZUQRxV4MmejB8NI3ut+M6zJGL\/g2J2ttH+x4FP8TKSyHPWIOMw4kIxwFSGkL0GDgp CqhAA0BWbQDNduvr8hSBPmsiSiLCkRBGQsrYLg6HE16PDy6nCw6Hc5RxoNvChMDlKTH1jCQlFT8w Ve1cGbJSOFM\/8UaIsok+fV3zQHBli8Df\/keQiqVKuiwi+uQV8F\/7X\/DMvl1vVa0F7WvjmFAZkAhA iTI2iSxT5QsjyciKMrKShExWQlaWIckUWUmGKFNQXx2Q6EG8R62CJjziy\/8dqdr3ADIFIRwcDg4O jgfPC6AcB5mqXeNTQKIA5VxIlS6DrJ2cKtlEdFS0uctVBPqcSTqdQiqVhCzLkGUZPC\/A6XDC6XBC 4B0QBKOE7vZXmH4rRftAxQzAOyBTGTyUjsPV3shBlb5iwEGEpJoFEgcIhEAmitdBIBwkTwN4QkGz WVBCwMEJmhpC5OX7kJr\/Efiv\/BYEZwA8oWokHzX1msQRCqgdmMtUMRMkShV4obwgFLw+YA+89QCU 1uqUE5Be9QPQhtvg4TgQwoMSDpIsQ6KApO5TyaxVEBFLpZEh0b7TpnvE8Tw8\/tHeoOkgFyTQVhHF LDKZtKrxVK8DCATBAeIxB89QKiE70glHpVL9zVoCmtbW0rU5lajSkkTtOUmECJ4QBX6i9KbPEwCC D8hGkTn+OEZ6NsN\/9X\/BXX+FGrhPIGu98VPNPJb1z7xEKcR4P2ItTyPV+iz8tz4FyntBOAKeEyCX NEECAM4B\/pqfw91wC0RVw4sUkGQZWt02oebzZ+cw1dkqEjnVxmwFKqtrRoWPTheZnmd1loVS9TMu ZiELXnCCC1LWcGMl+46BK2s2fkCUXlq0Qpq+H4tmsw4doW3TGrbCoQANADR6ErGXPwRx6QPwX\/pl SIJLB5lTh5NQmBaRPPk6YkceR7LrNUDOwtmwFk5\/OQQopoIkU9DSRsicA9zaX4A23qwX4igMRO0h pjk1s7YldLrNdG1VdQ2YrvKuBNosBJ5gPaL9xqA66e6D8Cy4SdHoAHgi69qWVzUup9vRFDzh1FEh tfxktH0MAA7lM+0K8hDjMqSsjOSBXyB76g0Er\/9vuKqX6318ZEOtiB\/5HWJHfw8p0W86Y\/fMm\/TK FVkbm7F0HoTrH4Zct9YykJF1zEJjXR+bkdmmCQv28IkjpuNX1J6dBq6TIUWgAQSq5yHab3xWkx1b EcQXABg1gFC7zTKetAYq0cE1Nivmh0kDEqID7akWMOv2AFr\/EEL0ZBbiyHEMPns7SlZ+AYKvFvGj v0OmN3fbPUfTTZBlteMZ9aUj1ZfpnwiZGulGhQg1XizLOnueuiZWGzVkk3EMnjhgOn7T7HlT\/chy ypQHJ00HKW9cblpPn9oDmlFiPKzazA4QY13JI+uakOqjVcmU6kDLGQpPhYClD1Si6cYScDwB5Cyi O76HkY1fMGAmQKDZibnvD8JXqxRkheBcwD9T7UWJQgYxHUMr7Mlq+y2qXoT2woGqvhpKQLXPjiZE jR1kukzsPfAOZFE0BggkBLMWnZvmVBORooYGUNZkBhpSFqmObXDPu26ULawAQixQE30APY5QdZmo hS+qeD8oQAQFaEnt6otwQMO1fpQtcKHlDyEk+pTaN2eAR\/UKD6ov8cBdIUBMyDjxbAgAIDTdrAzY p3o9JBVkfRA\/3QzRALc3N2xfSu3F1ZYJcHrPZr26GwCqG5rgLw1O9SPLKUWgAbh8FfCWNSI2dFJ\/ 4NF9z8E9T2mlrHW9pT94wkCuub0ImDwG4MoO1D7w1PhlKW2uMvHVOrDswUr0bInDN8OB0rkutpcE jBxP67XUfOMNkGXVlaeZFox2plR5mfTuwqhsgK2evwyLXa1fI2CYThSQZHRsesl0rnOWnL0+NSZD iiaHKjULrjGtx49sgJxSPRIwF\/JkNVUh1Yh+M8wMDTI1XfNyCBrQo6MCOYGg\/ho\/gvPNMAPQA4mI MwCuapWumSmjoakOM3TgDZCJ2lGNArP2hQFUuGFoZbZw2L1nE5KhQdO5LLvsiql+VHmlCLQqtQuv M8VfUzGF2CFFO436TNt9yqFpSKbWD0a6LMmgmRAAe6BzCZWBkVYFaL7+WkjEoQArGzDrL5BMdbjZ AiOrvamu1Snj91btaWVN19Ktrz3LfIWAipoZaJgzf6ofVV4pAq2KJ1iHQM1CU1p4y6\/Vyg2a2\/6k BhBK17bUNFEK0EwUwqYHQDqe1\/ddaGvwSGcGkhrLzDXcqGpnxWaWZPZrQCGB6CaHLDP2tFZYZQut YF5GbYKRHu09ifYtfzady\/Ir1055E6uxpAg0I3UX3WKyLTP9rYgd2aBs1J+jVnNCLIUtBgrd00GA 4UNw\/fk94E4pveC7y3lc9KmKUWZFLhk5ZsQdy946teoauobVNLOkVpOzJojmtmPNHw1ww\/esflEI o8lBcfDpX4IyDZQ5nseKK9dO9SMaU4pAMzJj4bVwB6pMaSMbf8p8os1gyKptbEzEBI\/Q\/iS8r90J LtYJAChb6Mbyz1TqLrhCJDjPsKnFzZ+HlBxQYjFkCllWawphtqdlmZpsad0upmbAjZdQeyEVN158 oBsnXntGPwcKYNmaqxCsrCr4vKdKikAzwvECZq68y5SW7j6I6J6nlBVNOeufbDKq8EdBATkF\/+4v w7fjiyBSCoQDGq\/3Y+G9ZeDd47vlwTkuzLxFDXGNn4K88QHIYlYNVlLNDnk0zJIGqgxVk1OLJ8SY tCAoDe6dD\/0HpGxG\/9oQjsPVt62b6sdT2DOc6hOYblK\/9GY4vebuYgfXfwdSYkQ3JVgtzVrUMqXg oh0IvvY+uNt+B0Bpw7f4\/go0Xl+CiZqfdVf6UHWxEq5J+ncAO\/8VIgwTQbenWZg12xqMnQ0GZsZM Yguz3Xs3o3PLn01V34tXXjatq7tZKQJtEU5wYt4195tjpGMjGHz5O0bFCiweDFUzurvXo\/KNO+AI G7EPgptDuDWNcFtG6elzgjJnXane2xHX8htwrU8Y9rRsBluHWVa9MTJRTRDjZQQM+1lWTQ4xncD2 X3zTdFyH04UbPvCRcZ3rlD6\/qT6B6SgzFq5FWeMyU1p411OI7H3O4gIzvBuQMuBjXciUrwDljeD3 xICIU2\/GcOihIez49z4c\/s0wujfHlf6gx8E35yBYeG8ZHH7lkTl2fRWkf6faAIDaFhR1mx9mU4PC 8Izo1eYAdvzim4j2dBimFYArb1+HYMW562zxTKVYU5hDFl73ALY+8gVQpjFo3x+\/Bnf9cjirZuk1 hDKgBCJxToTmPoDw3L8CL2XhCe2Eu38TXANvwxE6BFAZUpYi1JJGqEXxKzffFkDdlaM7aMnGZST6 lDaPkA2\/tZShKJvvQv\/uJCBl4N7yaWRufAGSuxqADFk2Kk8kUN2NKFHNlmZ80LKmmZW47bY3nsWJ 15WCoGZIVdTU4bIbb5vqRzEuKQKdQ3wVjZhz5X1oeethPU1Ox3H6sQfR+KknIHhKAaq0UIFstMYG ASTegUTFGqQqr1BaomRH4B7YBlf\/JjgH3gYfPwkAGNiXHAU0lYHDDw8bTanyCEn1w7vlUwivfRyU uMzaWFYaDLAws7a1Zj7JlGKoZT92\/uJfTdF4vEPAHfd\/atoG8ueSMzE5qGV+wUnTJXegavZqkz2d 6j2Okw99EmImofpsDTgkVfNRi69YdASRqL8NoYu\/jYGb30R8wd8AAOLdWSQHzd0BnN4UKwhmTRzD e+Hb8w29wkWWFVtZyguzYUtHervw5rcfRDatji+jPs1r33c3ZjQ1n7N7TQgxR7NOkKvxvH7WA17w QgjB4ps\/i1BfG1IRI6Yh2bUH3b\/7PBru\/SngcEBp1qSOTqXeHkIUqDlq9Dig9aMRb7wLvmP\/DQAY 3JdE4w0lAFR7+w1lKAepdD7iF\/8bqDr2tsyXKMNfcA5QTum2QRL8oIRTC35qnAk1fMpU9VHLJq+H Yl9TCsQGerDxX+9HyjIWzrzlK7Himhum+vYDWiyVsTymFKqh7d6cdwXcgtuPFe\/7FzjcZtMgevg1 dD50P7KJGGTdH031z7zmUZBkqmtLbVvGOxOZMiVkdWBfUq+1a3surI55wiF68beRrliFTGApMoGl yPpmIutpguiqhSgEkHUEIIFTq7+1ltuGi06rHqdWzazCHD7Vite\/eg\/i\/UYDWAqAdziw9q4PT9Xt zsVUwVq7EKDzHkD9VFzQ4qtoxLI7vgTOMopqvHUrOn\/1UWRiQ4ztygbbawUxNdZCVmxkCTLiDcoo qqlhCbHTWfRuiyPSqXReHpv7SSTLV0CkVJ8kZi7BMC10eFlzgzF59JhpaC49YODYHrz21XuRGOxR HqIKu89fghUrV+P1J\/4PsjSOoQcmQZSIcVgnViZFQ+faiR4mUOiBzncJ1i\/C0ts+B8IJJps60bUf rf+1DrH23ZBBdIAMbWmArMUwyzIQrb0d2jhrp96KoesVJVRV9DUhsuBzBrDspNcMahpYNoEsU1nx RevRf1Bteqpr5paXH8ObX\/84MrGwiRqn04mlF69E7cxmeJ1ObHzqN+f2BhMTyCxX4+IrH9DUsswe iEINISCEnNtXeQqlcvZKLH\/vF8Grdq0m2VAPTvz0I+h79ReQJcnkQZD0zz9rdgBZRyUSlcqAPMOH U2pPRwRDy74FkXMbUXUm7SwbaTKjkWUNZMNelmQVfvW46XgUW37wOez+329BFDOmjpR4QUB900xI YhbxSBhzF1+EUM9p7Hvr1XN2b1UNrdXGs7wBo1nMKbmApnkmSZ2UA2odXbxLpHzmMlzy\/q\/A6Skx b5Al9PzpP3HsR+9HtGMfJJnRjqw5oGlXCkTrzIO3RxvvRqLiCv23ujaWoQcj6ev6y2IU\/GQdZEDW QvdloGf7G3jlH+7AqW3rR18QVbrGTSUTiEcjiEUjiEcjWLb6CuzbuAGdR3KPSziZIomiOc7Lnj02 3VbGUyi0HkQGIIfD4enZr+pZlJKa2bjkg1+Hv6pp1LbkqUNo+dHdOPn0N5GODuo1cZIlQEiGjEjN zZB5RduL7hr0L\/ySrtFFWTbNWXhHh5CqILNpMsVI+1G8+c1P4O3vfQaJwV7ba+E4IJ1KqjCHEYuE EY9GkEomsPLKa\/HKY7\/GYPeps35PQ5FwAuq7CTPU4zJrrUDbGeLWT4CmoUUAYmtra2g8B7xQxBOs wcoPfQP1y2+y9Huh9G09sOkRHPjGWrQ\/\/jUkh7vVz78au6xq0SznQ7xaabfYt+TrEAW\/4SkBCzDV C3jKC6FCzmhxNqJupO0I3vnhF\/D6l+7EwMFtxkkzVdoU5pGuErEo4qp21qCmsoyLL7sSz\/\/qx0jF Y4XdmAlKW2tbCNav\/2gFapVR3OXzQ1vdc6yNo0Pd09MXC4XCsWCwtATvMuF4AfOuuReltfNxfOOj SMWMQXsoBWg2g4EtT2LgnWdQuuQ6VK6+E8ElV4Nwgt6F7vCMOyATAeGqG5QaR0DvR88sRLV7mVbZ erUOkI6EcHrLyzj51vMYOr5H91ywwn6r7SL\/YpEwOJ4Hz\/PKnONREizDrDnz8cz\/\/AD3\/OP\/A3cW BnCKxmKJtra2MIAsDGWpMWZnfuSUsSpWtB9rOzVpZ\/UEsi0tLZ2XXrpq6aRf6XkiVXNXIVi\/CG3b nsWpfW+AWtpXUTGLkb0bMLxnA3hfGYJLrkXp\/MsRWHgZaMXVSJStMEJRCbHVRUTtjRQw\/MmxU8cx eOAd9O\/fgoEDWyBZCnsA22TMXsWZ81IFasLpYBOOQ+WMOkTDIWz43UO4\/ROfnvT713q8pRMqS+qk AT2mzWyVQmoKrdpZ09DawdNvvbnp6LsZaADgXR7MveYjqF54Bdq3\/RFD7Qdsx3wRYyMY2PYs+rc+ C0oBV2Uj3DWz4amZDW9NM3h\/EA5PCXi3H4TjIWXSENMJiMko0kO9iHW3I9bdgejJFqQjI6ZGrOxj 1x4aLzggA8hkC6tOl0QR8WgEnKqlOU4Be86ipdi7bTO2v\/onrLnlvZN67zZv3nIEQBpmmFkNXTDY JE86p04CAKc6uQD41CkAIAigwuv11u7Zv\/NffD7fpHYarPUWap3bpU23vNGBU+jatQF9x3aAUnmU nT1pE8xzrSKHd7rQfPGlWHjF9YgMD+H1R34xrmEk3B4vSoJlKA2WoyRYhkCwDB6fH9vffBW3fPQB LFp5GTiOU8yTCc55nkc2k02vXrXm28PDw90ABgGEAUQAxADEVdAz6mQ1Q0ZJrjG5iGXS4OaZyaFO zmw2yy9etDC4YOGCmZMJtAa1dW6XNt3yOjx+VM5ejuqFl0Fw+ZCKh5FNxvPCObEbxMwIQWXzXCy6 +iasuuNDqJu\/FILTBV9pGbylQZw6VrgLThQVjU44oozUxXHgBQENzXPwxnO\/x9yLVsAfVEYB1raP d85xHF599fXtv3\/yqT0wIE6oE6uxCzZBxgKaXSZqfhZsQZ2ce\/btG7r3vntWOxyOSR3vazpBOpG8 vMONQO1s1C29GmVNi+D0lgKUIpOIglpc+OPRzFCfqsPtQdXshZi18gpcfNsHMOfSqxCcUQ+ON1uT ZTPqQCUZ\/V1tKFSymYw6sKgBocvlRnVdPV5\/7kksu3ItXG7PhIHOZDKpv7r\/r38XiUSGAEShAJ2E oZU1s5Y1PbRLt5V8QFMYbj1NS2tzVlMLAPhoJEoCpaW49NJVCyZEbg6ZjpBONK\/DG0Bp3RxULViF uuVrEayfB39NI9yBcghOt9LZHagSOceobN7hgODywlNShrKGZtTMW4qGi1ZjwVU3Y+mN70X9khUo q2uCw2WuwbRKTfMcREeGEOrvKfj+ZzNpcDwHToWacAQ+fwAejwfvvPYyVlx9g25GjBfo3z78yPoX XnjxIMwmRhJACoaZYdXOecu2ZIx01tQQoJgYLgBuAF4AfgAlUGzpMo7jKl788\/OfXHbRRZPS3+p0 s4snM++Y1y5LEDMZBdJJ7NxFFkW8+tufY+BUR8G\/4QUBgdIyBMrKEQiWoURd7jh+BL7ySnzob\/5x 3Db08WMtJ+64fd2vZVkeBDACIARDS2smRwqjvR55tXS+cW3tzA4NcNb80KGnlHKvrH+1Y9373rvE X+L3YhJkumvdM8mbTwjhwAuOSYUZULokaFiwFCePHkAmmSjoN1SWIUuSqqEVbc0RghkNTThxcB+y YgbNC5YUrJmHBodGPnrvJx6ORCKDsLedNXMjF8jjNjkAw+yws6VZ84OFnIvH43TXzt2n1r3vvcsn w56eDuBNBdBnUwSHA7Wz56Pz4G5IBY64K0kSqCzrZgdRC3X1zXOw7ZU\/oaK2AdX1jWMCnc1ms3\/\/ +S\/+5uCBgyeheDRiMIBOITfQhbjSxwQ619zOC6Iv9\/T0ZPp6+wbXXrt2seAQzmh08+kA3oUGNAC4 vD5UNc5C+8HdpkE184nm+WAh1Twfrz7zOBZcvBKBsoqcQGez2ey\/\/9t3nnzpTy8dhmFiRKHYzRrQ LMwizCCPeaJjwZZLSwP5QcehQ4cjrS2tp6+\/8fpFTufERzqfDuBdiEADgD9YDl9pGU4eLdydl9Pz UVuH9X94DJesvQFuj3cU0JlMJv31r33j8Weffm4\/FM2swayZGmxB0M6zURDUhQCda55LQ2tCW1pa Y\/v27D154003LHS73RMKApgO4F2oQBNCUFHXACpL6OscjzsvDcIZsGqeD7+\/BJtffgGXXnczBEHQ gY7HE4l\/+tKXH9mw\/pUjUGxm1quRz9TQtHNeu5mVQswBVktrcyvg7DJ7YNrVdTL25sZNLVdetaax rKwsMObRLDIdwLuQgSaEoG7uQkSHBzHS113wb0Uxa6ogIYSgtLwSsdAIWg7uw8Vq17unTp7u\/vzf ff63O7bvbIdiZkRg9jlrbjprHIed7XzGJgdgb24UIvrbNTAwkHrs0ccPz2ye6VywcEE9GUcnw9MB vAsdaI7j0LRoKbrbWhAPjxT2XHJ4PmoamnDi0H6kU0naMxLd8+kHPvNET09vL8xuOa0QaOdzthYE gQK1M1AY0MBoW5pN16\/RkldblwFQSZKkl\/70cufg4ODgZatXz3K5XAWZINMBvHcD0DwvYPZFF6P9 4F6kC3Tn5fJ8NMyag81\/fh7PPPXM66GUeBzm+AxWMycxuhBoreIeVzcG4\/FA2BUQrcKCrJ2MKfR0 \/779Q088\/uT+mU2N7jlz59SOpa2nA3jvBqAJIXC63Gicvxite7ZDEguLzrPzfHA8j6bZ80i0t2N+ PJPZmhRxGuYCoFUz57KbxwUzMH6gtZ3n0tjadmpZNjUKSCaT2Rde+FPbwUMHO5YtW1ZbVlaWs3HA dADv3QI0x3HwlgRQ2zwXLXu2j4o1ySXZjNL9gl5IJAROpwv1zbOFyKnWZeGM\/FJGwjDMBUAt+Mjq b2ahHreM10dcCNQsxKyWZqGWAGTbTrRHfvPwbw8QwkXnzJ1d4\/P5RgUjTAfw3k1AE0JQWlkFX2kZ 2g\/uLXhf2UzG8HxwHAhH4PX5UVkzwxc\/fWLhkIhnZRlxmH3NhcA8rps1kUoPq8nBwg3LnDXsWZhF dZtIKc1u2bK1539\/9dDudCYTmT9\/fjUbVz0dwHu3Ac1xHGoamyFlM+hpby14f7k8Hy6XawYd6a7q TeIFmEFmK080mGEzL1gmWotn1c52ULOFwlwNbfULk2U5s\/2d7b3\/99DDe2RKo80zZ5b7S\/ze6QDe uxFoQghmLroIQz2nMNxbmDvP5PnQwCYENfWNyKZTi5zJoWhfEltgLgBaYR633czKmVRLs94MFmYw 6ezEll7ZT4ypfaIkSZmtW7Z2\/+qXv9595MjRztLSgFBbO6Oc4zgOmP6QXkhAcxyHuctXouvoIcRC hbnzdM+Hanbono\/mOYgM9l\/tFWN7+1I4itHNqybcWxIrZxRngdEamj0Zq5aG5SK0N5QFWgRjX7W2 tI48+\/RzR194\/sUDbrcrW11TXer1et3TGdILCehoNBra8c7O7W\/vPLDeLcXncgTuQvZr9XwQQsAL AhpnzSUDpzpvK3Fk\/tSfQA9Gu+aAM4AZGF9FSSH7MAUpwRxmKlgmB5R2ilqMtdZmUYu31pY96rob gPvqq69sWHfnuiWXXb56UUVFRZDS6RPjPJ6800EMH7QRq5xMJGNt7R0tO3fsPLz17W0nZFlOAkiW O1E2K4AvEeV5FCT+QCkCQTWGWm2fKMkSNm148WQynVmzbwi9mESYgckB2rofaysXFmy9hQuY5ltQ oBagAKwBzkLuVpfd7PJNN90w8\/Y7\/mLJ0mVL5lRXVZVPNaTnK9CxWHyks73jxPYduw7t2bWnE0Zw vWne4MeSGW58DQV+2QkhoxraBoLliISGse31DVsHS3B9RwfSavZJ+WxN9ji3Y2lr2+ZbMIB2MJMG twa1k5nclnTX7Nmzy667fu3slasumbV4yeJZfr\/fVwTaXtLpTKqnu\/tUZ0dn+57de493dp4chOEb 1oKE2GVtPTu\/FLcGHPjnQo+ltXYpCZahtKxcae0SLENXWwsO79nxyM5BfGwyr+1sDNycT1tbGwWw UGsTq7FZDa7NWROFBV5fFgTBec01VzVeunpV85y5c+saZzbUBkoCJe9WoOPxRKy\/r7+nu6fn9PFj LZ0H9x\/skmVZhxQGtNYpa1nOAsguK8MXnXzhIDqdLpOG1kyQg7veQWfr8S\/vGsJ3Jutaz9ZI5Nb9 ckxaLrBzmSQOGFrcCbP9nQt4p2XdMWtWc\/DyKy5vXLRwYUPTzMYZFRUV5T6\/z3ehAZ1MJhOhUHi4 v2+gp6uz89ThQ0dP9fb2jsDcM1HGMs\/mWGcL6mzhXb6kEj\/ngFsLPS+tnw8Wal9JAO9sfIUOD\/R+ eMcAfj8Z13+2gLbbP2dJMzXdghlsrRBpV5jUtLgVeBZ2dhKYuZPJy1dXV\/uWXrS4Zs7cOdV1dfWV NTVVlcGyYMDr9ZbwPM9PV6BlWZYS8UQsGo2FhwaHhgYG+wdPn+7pbz\/R1jc8HIpB8R5pHbNY4bQC K+VZF2GuL9Arxio8cDb78EcCrCz0vL0+PwKM2REoK4fT6cKmDS8mU7HoNdsHsXMygTubMhbYVo2t wW0HOQu2prlZO9xqk\/MY\/VLY7ce03tTUVNLYWF82o3ZGaUVFeaCsvCLo83m9brfL7XS63E6Xw+Vy uVwOh8MFgDtToCmlcjabTadTaVUyqXQ6lUokU4nwyEg4FApHBgaHwr29vSN9PX0RmGtdrX0OshUX rEvUVJllyccCLVm2ae5WrYZXAiDPLUV10IGNABoKBSGX52Pzhhd7kM5cunUIpwvd11ignQvJB7ad nc16R+wgt7PBWTCFHGkcRsPMplmPYX3RwJ5rWVmZO1gW9HA8x0MGSktL3ABACeH8Pq8LUIaTiEej aQoqy1RGNBxPAYBEJSkSjqTCoXAS5tgXYHR\/ydY+39gwAiuIdr5+Kc\/c7gWRbeam\/ptXBLGQF\/Am gNKCALDxfJSUliEWDmHrG+t3UifW7upGYfGrYwB2LqVQsK3+bGvvTXY2uFWj26Wxc+t26345mynX ORLLNeUTa7N82WZZtpkkm2Ur6FbIrXDn2mZ3jFw96+s1eysrcQsBnkOBwwTm8nycbG\/F4d3bn9ox iLsxQTfemdYUnqmw1efUZj3fQ7Y+AOsnl\/28Wkvy7HraMqVs5lr3VMkcUwLmWN+4Jc06xZl53CZ\/ 3GZ\/SUtawnJ8LcY4xZwzu57PJWdnhljvpTUaTq8F7kmgpdaHMCmwkKjHfFj6uauua0AmnV7iSw9l uxPYNFGgpoPYeUXYdKu9bae5uRxptp3i5MjP5\/g9Zzm29RzArBdyb1ntY41hsOvg2y7mQcoxZ19y a9yM3e\/lHGl28TjsuVsLAnRVBX4Cgr8t9KGbPB9qb0yM5+MjOwbwZKH7KuSmT5WcCdy5ILQzE6zw WpfH2j8wGmjkOFdW7AJwrECzy3SMZclmWYL9ly3XyzFhiNmVDwJ8eyWeAVBwB9J2ng+Xy4231r+Q TEaja3cMYUeh+8p1w6eTjBduLW0sGHOtj5XfOlnPYaJiDZmkeaaxIJQLzG\/3ZbCeA3turOS0b5dU we+h2ATg4kIvfjI9H9Md6Hznavd5zwe4tmxdtxbocqXlOwbyLOcSmmfZTkNal+Ux0qz9WRQKMDCG Jh5LVlSijgfeQYHuPM3zYe0QMhYO4Z2NG3ZJDnpNoZ6PqS4UTlSshcd8Bcpcn1zWXszlDrNzZ1ld YfnSxzNlLfOxjpfL9WZ1u9ldr\/WFAUa\/ABMOFupNIFrnw0YA90KpxBpTRDGrd9mrhJ1yKC0rh8vj rRs4eXpBdxJ\/KGQ\/5yvQrLBx2PkAH8uOtDY+yOUWy5WWq2JjrDxj+YPFPMfO5yfOZZIgT\/qkBWp3 J9Bb58M+AB9GAeZYXs9HJr3YmxqSehJ4a6z9XAhAWyUf4Gw6u2wFHbCHI18lhzxGnnx5pQLyWlt4 WHsWylWgA3Jr5bPa0qA7gZY6L6IAbikkvyRJBtTMUBj1zbMRGhy4Nkhjx7oTyNsR34UItJ3Yaetc oOcqiMk267legPFO1i+DnOfY4wH3rGjf8Uh3AtvqfKgCsLqQ\/JIoApTqZofW2qVp9jzSfbLj9io+ 80p3Mnch8d0CdC7JB7oVeBSQ92xMrBQC9pSAm0+uTGB9yIsVAAoariSbNfr50JpxORxONDTPcZzq PPEX9Q7pydNJROx++24HOp8UormnCu5pB20+OQzQWV68KALvIcCMQn6j9fPB2tNurw+VNXUlJztP XFsbxKM9UYzq3qkIdFHOiZxMINPswQsSwd1EGeNyTMnl+fB4fbX9XacWdifxlPU3RaCLcs7kVBLR Bg82geBeKKG9ecXq+dDArqqtR+eJ44tnuMTT3QnsZn9zJrVbRSnKuGXHEHbIwN1QCsFjSiaTRiwS RiwaQTwWQSwSRk9XBzLpFEBwzJq\/qKGLcs6lJ4Hj9V4kANxcSH6r5+NkRyvSqeShnYP4MizliSLQ RZkS6U5gS50XdSiwCZfm+UgnEwgPDwEE93cncNya73yK5SjKBSbXAkKsCi+B4qZC8mtdiVNKf75z EA\/a5Sna0EWZMtkIiFTEBwEcKiS\/2q3aRr8fX8iVp6ihizLlcvkMNIsitgGoyZePAK+nebx3fx\/i ufIUNXRRply29aKDUqyD0mzMTigBfuAbxC35YAaKGroo00hWVuGDhOIJmBXtDk7G57YPY2sh+ygC XZRpJSsr8M+E4AFQbJQ5PLx7YGKNZYtSlKIUpShFKUpRilKUohSlKEUpSlGKUpSiFKUoRSlKUYpS lKIUpShFKUpRijL18v8B5ToQXd3FtbMAAAAYdEVYdEF1dGhvcgBqZWFuX3ZpY3Rvcl9iYWxpbjvF oZEAAABYdEVYdENvcHlyaWdodABDQzAgUHVibGljIERvbWFpbiBEZWRpY2F0aW9uIGh0dHA6Ly9j cmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC\/G4735AAAAIXRFWHRDcmVh dGlvbiBUaW1lADIwMDktMTEtMDlUMTA6NDg6MTA\/\/R6qAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2 LTA0LTIxVDA2OjU3OjA0KzAwOjAwKnB8MwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wNC0yMVQw Njo1NzowNCswMDowMFstxI8AAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAA UXRFWHRTb3VyY2UAaHR0cHM6Ly9vcGVuY2xpcGFydC5vcmcvZGV0YWlsLzI4MTI3L2RhdGFiYXNl XzEtYnktamVhbl92aWN0b3JfYmFsaW4tMjgxMjcCDda7AAAAGHRFWHRUaXRsZQBEYXRhQmFzZSAo MSBCbG9jaykEo42RAAAAAElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Analysis of Code Repositories<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Georg Dotzler<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Marius Kamp<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Patrick Kreutzer<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2010<br \/><strong>End date: <\/strong>31.12.2023<br \/><strong>Acronym: <\/strong>AnaCoRe<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/AnaCoRe\/\">https:\/\/www2.cs.fau.de\/research\/AnaCoRe\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\">Software developers often modify their projects in a similar or repetitive way. The reasons for these changes include the adoption of a changed interface to a library, the correction of mistakes in functionally similar components, or the parallelization of sequential parts of a program. If developers have to perform the necessary changes on their own, the modifications can easily introduce errors, for example due to a missed change location. Therefore, an automatic technique is desireable that identifies similar changes and uses this knowledge to support developers with further modifications.<br \/><br \/>Extraction of Code-Changes<br \/>In 2017, we developed a new code recommendation tool called ARES (Accurate REcommendation System). It creates more accurate recommendation compared to previous tools as its algorithms take care of code movements during pattern and recommendation creation. The foundation of ARES lies in the comparison of two versions of the same program. It extracts the changes between the two versions and creates patterns based on the changed methods. ARES uses these patterns to suggest similar changes for the source code of different programs automatically.<br \/>The extraction of code changes is based on trees. In 2016 we developed (and visibly published) a new tree-based algorithm (MTDIFF) that improves the accuracy of the change extraction.<br \/><br \/>Symbolic Execution of Code-Fragments<br \/>In 2014 we developed a new symbolic code execution engine called SYFEX to determine the behavioral similarity of two code fragments. In this way we aim to improve the quality of the recommendations. Depending on the number and the generality of the patterns in the database, it is possible that without the new engine SIFE generates some unfitting recommendations. To present only the fitting recommendations to the developers, we compare the summary of the semantics\/behavior of the recommendation with summary of the semantics\/behavior of the database pattern. If both differ too severely, our tool drops the recommendation from the results. The distinctive features of SYFEX are its applicability to isolated code fragments and its automatic configuration that does not require any human interaction.<br \/><div>In 2015 SYFEX was refined and applied to code fragments from the repositories of different software projects. In 2016 we investigated to which extend SYFEX can be used to gauge the semantic similarity of submissions for a programming contest. In 2017 and 2018 we optimized the implementation of SYFEX. We also began collecting a data set of semantically similar methods from open source repositories. We published this data set in 2019.<\/div><div>Techniques for symbolic execution use algorithms to check the satisfiability of logical\/mathematical expressions in order to detect valid execution paths in a program. Usually, these algorithms account for a large part of the total runtime of a symbolic execution. To accelerate this satisfiability check, we experimented with a technique to replace complicated expressions with simpler equivalent expressions. These simpler expressions are obtained by using program synthesis. In the year 2020, we extended this program synthesis with a novel technique that can quickly detect whether a fixed set of operations can be used to construct an expression that is equivalent to the complicated expression. We published this approach in 2021 and were able to show that the technique can reduce the runtime of common program synthesizers by 33% on average. We subsequently extended this technique to other classes of program synthesis problems. In 2022, we performed a comprehensive evaluation of these extensions. This evaluation showed that these extensions similarly improve the runtime of program synthesizers on a larger class of program synthesis problems. We completed the work on unrealizability detectors for bit vector program synthesis in 2023 and described it in detail in a Dissertation.<\/div><br \/>Detection of Semantically Similar Code Fragments<br \/>SYFEX computes the semantic similarity of two code fragments. Therefore, it allows to identify pairs or groups of semantically similar code fragments (semantic clones). However, the high runtime of SYFEX (and similar tools) limit their applicability to larger software projects. In 2016, we started the development of a technique to accelerate the detection of semantically similar code fragments. The technique is based on so-called base comparators that compare two code fragments using a single criterion (e.g., the number of used control structures or the structure of the control flow graph) and that have a low runtime. These base comparators can be combined to form a hierarchy of comparators. To compute the semantic similarity of two code fragments as accurately as possible, we use genetic programming to search for hierarchies that approximate the similarity values as reported by SYFEX for a number of pairs of code fragments. A prototype implementation confirmed that the method is capable of detecting pairs of semantically similar code fragments.<br \/><div>We further improved the implementation of this approach in 2017 and 2018. Additionally, we focused on evaluating the approach with pairs of methods from software repositories and from programming exercises. Moreover, we created a data set of semantically similar methods from open-source software repositories that we published in 2019.<br \/><\/div><div>Techniques for symbolic execution rely on algorithms to detect the satisfiability of logic\/mathematic expressions. These are used to detect whether an execution path in a program is feasible. The algorithms often use a large amount of the total computation time. To improve the speed of this satisfiability check, in the years 2019 and 2020 we experimented with a technique to replace complicated expressions with simpler expressions that have the same meaning. These simpler expressions result from the application of program synthesis. In 2020 we augmented the program synthesis with a novel approach to detect beforehand if some operations can form an expression with the same meaning as a more complicated expression.<\/div><br \/>Semantic Code Search<br \/>The functionality that has to be implemented during the development of a software product is often already available as part of program libraries. It is often advisable to reuse such an implementation instead of rewriting it, for example to reduce the effort for developing and testing the code.<br \/>To reuse an implementation that fits the purpose, developers have to find it first. To this end developers already use code search engines on a regular basis. State-of-the-art search engines work on a syntactic level, i.e., the user specifies some keywords or names of variables and methods that should be searched for. However, current approaches do not consider the semantics of the code that the user seeks. As a consequence, relevant but syntactically different implementations often remain undetected (\"false negatives\") or the results include syntactically similar but semantically irrelevant implementations (\"false positives\"). The search for code fragments on a semantic level is the subject of current research.<br \/>In 2017 we began the development of a new method for semantic code search. The user specifies the desired functionality in terms of input\/output examples. A function synthesis algorithm from the literature is then used to create a method that implements the specified functionality as accurately as possible. Using our approach to detect similar code fragments, this synthesized method is then compared to the methods of program libraries to find semantically similar implementations. These implementations are then presented as search results to the user. A first evaluation of our prototypical implementation shows the feasibility and practicability of the approach.<br \/><br \/>Clustering of Similar Code-Changes<br \/>To create generalized change patterns, it is necessary that the set of extracted code changes is split into subsets of changes that are similar to each other. In 2015 this detection of similar code changes was improved and resulted in a new tool, called C3. We developed and evaluated different metrics for a pairwise similarity comparison of the extracted code changes. Subsequently, we evaluated different clustering algorithms known from the literature and implemented new heuristics to automatically choose the respective parameters to replace the previous naive approach for the detection of similar code changes. This clearly improved the results compared to the previous approach, i.e., C3's new techniques detect more groups of similar changes that can be processed by SIFE to generate recommendations.<br \/>The aim of the second improvement is to automatically refine the resulting groups of similar code changes. For this purpose we evaluated several machine learning algorithms for outlier detection to remove those code changes that have been spuriously assigned to a group.<br \/>In 2016 we implemented a new similarity metric for the comparison of two code changes that essentially considers the textual difference between the changes (as generated, for example, by the Unix tool 'diff'). We published both a paper on C3 and the dataset (consisting of groups of similar changes) that we generated for the evaluation of our tool under an open-source license, see https:\/\/github.com\/FAU-Inf2\/cthree . This dataset can be used as a reference or as input data for future research.\u00a0 In addition, we prototypically extended C3 by techniques for an incremental similarity computation and clustering. This allows us to reuse results from previous runs and to only perform the absolutely necessary work whenever new code changes are added to a software archive.<br \/><\/p><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Kamp M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Kreutzer P.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/219342529?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">SeSaMe: A Data Set of Semantically Similar Java Methods<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">16th International Conference on Mining Software Repositories (MSR 2019)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Montr\u00e9al, QC, Kanada<\/span><\/span>, <span itemprop=\"startDate\" content=\"2019-05-26\">26.05.2019<\/span> - <span itemprop=\"endDate\" content=\"2019-05-27\">27.05.2019<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 16th International Conference on Mining Software Repositories (MSR 2019)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Piscataway, NJ, USA<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/MSR.2019.00079' target='blank' itemprop=\"sameAs\">10.1109\/MSR.2019.00079<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/-\/raw\/master\/MSR19.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/-\/raw\/master\/MSR19.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/219342529.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Dotzler G.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/236626868?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Learning Code Transformations from Repositories<\/a><\/strong><\/span> (Dissertation, <span itemprop=\"datePublished\">2018<\/span>)<br \/>DOI: <a href='https:\/\/doi.org\/10.25593\/978-3-96147-142-3' target='blank' itemprop=\"sameAs\">10.25593\/978-3-96147-142-3<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/236626868.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Dotzler G.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Kamp M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Kreutzer P.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/123130524?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">More Accurate Recommendations for Method-Level Changes<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC\/FSE2017)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Paderborn<\/span><\/span>, <span itemprop=\"startDate\" content=\"2017-09-04\">04.09.2017<\/span> - <span itemprop=\"endDate\" content=\"2017-09-08\">08.09.2017<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of 2017 11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC\/FSE2017)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">New York, NY, USA<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2017<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/3106237.3106276' target='blank' itemprop=\"sameAs\">10.1145\/3106237.3106276<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/ESECFSE17.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/ESECFSE17.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/123130524.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Dotzler G.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/124115904?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Move-Optimized Source Code Tree Differencing<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">31st International Conference on Automated Software Engineering (ASE 2016)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Singapore<\/span><\/span>, <span itemprop=\"startDate\" content=\"2016-09-03\">03.09.2016<\/span> - <span itemprop=\"endDate\" content=\"2016-09-09\">09.09.2016<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 31st International Conference on Automated Software Engineering (ASE 2016)<\/span> <span itemprop=\"datePublished\">2016<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/2970276.2970315' target='blank' itemprop=\"sameAs\">10.1145\/2970276.2970315<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/124115904.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Kreutzer P.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Dotzler G.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Ring M.<\/span>, <span class=\"author\" itemprop=\"author\">Eskofier B.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/122925044?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Automatic clustering of code changes<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">13th International Conference on Mining Software Repositories (MSR 2016)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Austin, TX, USA<\/span><\/span>, <span itemprop=\"startDate\" content=\"2016-05-14\">14.05.2016<\/span> - <span itemprop=\"endDate\" content=\"2016-05-15\">15.05.2016<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 13th International Conference on Mining Software Repositories (MSR'16)<\/span> <span itemprop=\"datePublished\">2016<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/2901739.2901749' target='blank' itemprop=\"sameAs\">10.1145\/2901739.2901749<\/a><br \/>URL: <a href='http:\/\/dl.acm.org\/citation.cfm?id=2901749' target='blank' itemprop=\"url\">http:\/\/dl.acm.org\/citation.cfm?id=2901749<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/122925044.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Dotzler G.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Veldema R.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/118551224?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Annotation Support for Generic Patches<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">International Workshop on Recommendation Systems for Software Engineering<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Zurich, Switzerland<\/span><\/span>, <span itemprop=\"startDate\" content=\"2012-06-04\">04.06.2012<\/span> - <span itemprop=\"endDate\" content=\"2012-06-04\">04.06.2012<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the Third International Workshop on Recommendation Systems for Software Engineering (RSSE 12)<\/span> <span itemprop=\"datePublished\">2012<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/RSSE.2012.6233400' target='blank' itemprop=\"sameAs\">10.1109\/RSSE.2012.6233400<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/DVP12.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/DVP12.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/118551224.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kreutzer\">Kreutzer P.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/114462304?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Evaluierung von Verfahren zur Detektion von Gruppen \u00e4hnlicher Quelltext-\u00c4nderungen<\/a><\/strong><\/span> (Master thesis, <span itemprop=\"datePublished\">2015<\/span>)<br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/114462304.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Kamp M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/124234484?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Entwicklung eines Werkzeugs zum Vergleich von Code-Fragmenten durch symbolische Ausf\u00fchrung<\/a><\/strong><\/span> (Master thesis, <span itemprop=\"datePublished\">2014<\/span>)<br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/124234484.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Kamp M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/108486004?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Entwicklung eines Werkzeugs zur Extraktion von Mustern aus Software-Archiven zur Quellcode-Optimierung<\/a><\/strong><\/span> (Bachelor thesis, <span itemprop=\"datePublished\">2012<\/span>)<br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/108486004.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Kamp M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/243563715?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Approximate Bit Dependency Analysis to Identify Program Synthesis Problems as Infeasible<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'2021)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Copenhagen<\/span><\/span>, <span itemprop=\"startDate\" content=\"2021-01-17\">17.01.2021<\/span> - <span itemprop=\"endDate\" content=\"2021-01-19\">19.01.2021<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Fritz Henglein, Sharon Shoham, Yakir Vizel (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Verification, Model Checking, and Abstract Interpretation (VMCAI 2021)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Cham<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2021<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1007\/978-3-030-67067-2_16' target='blank' itemprop=\"sameAs\">10.1007\/978-3-030-67067-2_16<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/vmcai2021.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/vmcai2021.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/243563715.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"auderace-automatische-erkennung-von-wettlaufsituationen\" data-href=\"#auderace-automatische-erkennung-von-wettlaufsituationen\" type=\"button\" aria-expanded=\"false\" aria-controls=\"auderace-automatische-erkennung-von-wettlaufsituationen-section\" id=\"auderace-automatische-erkennung-von-wettlaufsituationen\">AuDeRace &#8211; Automatische Erkennung von Wettlaufsituationen<\/button><\/h2><div id=\"auderace-automatische-erkennung-von-wettlaufsituationen-section\" class=\"accordion-body \" aria-labelledby=\"auderace-automatische-erkennung-von-wettlaufsituationen\" role=\"region\" name=\"auderace-automatische-erkennung-von-wettlaufsituationen\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/AuDeRace_small_image.png\" alt=\"Automatische Erkennung von Wettlaufsituationen\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAABfGlDQ1BpY2MAACiRfZE9SMNAHMVf U6UqFYd2EFHIUJ0s+IU4ahWKUKHUCq06mFz6BU0akhQXR8G14ODHYtXBxVlXB1dBEPwAcXJ0UnSR Ev+XFFrEeHDcj3f3HnfvAKFeZqrZMQaommWk4jExk10VA6\/wYwjdGEdIYqY+l0wm4Dm+7uHj612U Z3mf+3P0KjmTAT6ReJbphkW8QTy9aemc94nDrCgpxOfEowZdkPiR67LLb5wLDgs8M2ykU\/PEYWKx 0MZyG7OioRJPEUcUVaN8IeOywnmLs1qusuY9+QuDOW1lmes0BxHHIpaQhAgZVZRQhoUorRopJlK0 H\/PwDzj+JLlkcpXAyLGAClRIjh\/8D353a+YnJ9ykYAzofLHtj2EgsAs0arb9fWzbjRPA\/wxcaS1\/ pQ7MfJJea2mRI6BvG7i4bmnyHnC5A\/Q\/6ZIhOZKfppDPA+9n9E1ZIHQL9Ky5vTX3cfoApKmrxA1w cAiMFCh73ePdXe29\/Xum2d8PeqRyqhg6MNwAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADq YAAAOpgAABdwnLpRPAAAAAZiS0dEAFYAnwAibT8\/PQAAAAlwSFlzAAAuIwAALiMBeKU\/dgAAAAd0 SU1FB+oEFQY5O1JOiwUAAEw2SURBVHja7V1neBzVuX6\/MzPbV6tqy7LccMOYYlpMCYQeWqiBSwk9 1IBpoZOAAwRIcBJaKJcSCMEkJJQEQnIJLUDoxRiMK26Si2S17TvlfPfHrOTd1ZZZSbYM2fd5eLBm z5w5c+adM9\/5KjEzvimYRgR3bfVeAIKb4XKrP+3omr8pL1BLhLG11XsCCG2G+1nzaUfXp5vhOpsU YrgH8N+EwFPfp6fX\/N9wD+MbjQqhNxPoD0cgxvL6H7zxQGXONyEqk7u5INQxAH6igw8Y7qF8k1Eh 9GYAPXEoAFwBQANwKf3he8M9pG8sKoTeHFA8owGcnf7ruxDaDsM9pG8qKoTexKAnjwCAGwB4eg8B uI4e2n64h\/aNRIXQmxqkTgdwRs7R78M\/aefhHto3ERVCb0KMeOo4AvArAGrOTwTg9jr79wqGEBVC b0K0s3UMgIMK\/Lx\/J1tHDvcYv2moEHoTQcw9JgTgrhLNfiPmHuMf7rF+k1Ah9CYAPbwz2BY1mko0 HcfAbHpk5nAP+RuDCqGHGmsMwDfuUABnOjzjEnhHz8Q3x6VmWFEh9BBDvPE\/IwA8XMYpCoDfi6cq osdQoELoIYR77rGCgd8DaCzz1MkM3Dn9zz8Y7lv42qNC6CECPbwrdPD1KKzVKIWzFhjxk4f7Pr7u qBB6CEAzCfCNOQy2RXAweIDmHrNt7x9x+39yuO\/v64QKoYcClxy9DYAnMfj59AN4Tsw9phYAUvax CqHLQIXQgwTNPaYRwIsAqoaoy4kMPK3MPcY13Pf2dUSF0IOAmHtMEMALAMYPcdf7SeAB9cWTK6bx MqEOvov\/Tpi71nkYeBbApnIyOt3sibfA4BegVXjtFJUVeiBo9qmrj9vmTgD7b+IrXb\/2ZzNPhV6x ujhFhdDlotmnrpi10zVhn7r75rhc20j\/+Wuv3\/UgyAqpnaBC6DIgJwS1FbN2uqbHp+22GS9LbWOC F66\/Yud9KqQujQqhHcLYsc67+IIZN25mMtsgKOvGhy5ff8XO+8CqkLoYKoR2AGO\/puplp0y\/NeVV ZwzbIAhi3YTQ5Wuu2\/XgikxdGBVCl0D8+EnNi46YPCflUiYP91gAiPbm4IXrZs88CuZwD2XLRIXQ hcBA1wXb7\/jVt5vnWKpw6my0OZZOWj\/Kf3bLzbudAqqo83JRIXQ+WMC667915OppdbMtQYESrSWA 12GnKTh\/EFeNAzgGwEv2CIqjo957wvJb9piFBo8y3NO1JaFC6ByY29V6vvrFnlesH+U\/hwl5yaJY 3O1OWX8HcBYBo77lrt6XT3zmIWBQgkCklpTnzhgx\/VCyI10uAPAyAL3QCeEq13eXXLHrT80d67zD PW9bCiqWwgxET5oybvWuo67WNTEWAMCwNFO2K4Zs9aTMlb6e1DL\/8p4lvue+aoXFQ559lAA8sv9N eARoA3AfEd03fe+Je4f3Gb13vME3PeHTpiXcyiQW1BcMEPepuyw7ZfrtYxtXzPa+tKpjuOdwuFEh dC8UopTPFRq1sPN+JWVElNZ42P\/22k6O6BLK8Mmq6ucdqdrPOz6uBT4GAEggftSExsT4qrGpKnez 4VUbk5rSuHbfcZc0aupvfX\/9au1wT+VwokLoXljMdQ99\/lnmIQawGckc95IovakUgO+vy9f5gHUA 3s8Yvy3N\/5f7fVQIPbQYTFygpQxGa6EQUNkeVjaFQ4z\/7uVxC0CF0FsOklM8tcM9hq89KoTecmC+ 3PL4cI\/ha48KoYcW2nAP4L8dFUIPLTyDODcFGRvu8X\/tUSH0lgOj4nA0eFQIXcE3ChVCDxzKECfM MEq7JFVQChVCDxyUpwpvKc+8Ykj2pkqqYOCoELqCbxQqhN5yYBV2FK3AKSqE3nIQx0fDPYSvPyqE HloMRg9dwRCgQuihxWAshYz\/evf8weMb5T66EBgTisQuUAS5673eF72Cvk7O7jF+t5KeYLD4xhBa 0zQFwD96DGMbAOgxzAMmVgUv\/VqRenM5nxKJSEof53Fp7RoQHe7bHkp8Y0QO0zSnAdim929LymBL NHYxNq+P8mCutVmW56QlGxZ2h+\/8Khq7Z2FXz+96DHObwfe65eBrTWgiQm1tLRHRNAAX5v4eN83t 2lL6wZtxSIMxrGxyzyQJcq2IxmanLGsrAJDM3s5U6rDNNjubAV9LQtfX1xMRbQPgpq6urgUAFgA4 CYCR23Z9PHFmirl+uMfsAJt8hV4Ti5+QsqxxmceSpjXVIvrGaGe+NoQmIgghRhDRJR0dHR8D+ALA ZQA+A3CMEKIBwEz0lSaxIZl9LdHYj4Z7\/MONqGVN6NT1Y3OP61I2LuzqeWhpOHoFEe2vqqpKX+OM TFs8oT0ejyCifQE8zcyrAfwCdsTzKUTUCOB\/mPlZy7JSO9bXzhvh8\/4ut4+oYX5rQ0rfe7jvpQQ2 mScHEymtscTFzJylBFCF6JxSU312vcf9hAR2BPCyZVmtAO4nom+7XC7xdSP3Fkno9GrsJaJzUqnU PACvABgD4HIAzQAOYeYnpJSRXgchIoKUcnSjx\/2CV1W\/yO1zXSJ5nsFDVtin\/5gf2gkYnGFlk\/na rYsnjkyaZm6ySR7l897jJawd6XH\/Y0pV4PKRLtdMAPfDrrX4pmEYSwD8lIiavy7E3qIInSZyFYBr mXk5gEsB\/AnAFAC7MfM9zNyWx8sNO9RWVwGYRoBsDvjuJKIs0cOSMtQai5+9yQavBoEtUA2akDyq PZnqV6K2yuV6vdalvZdxiBoDPt8OdTW3eDyeSQC+Aztn32UAVgB4loj29fl8WzSztwhC33HHHRBC BABcnybyLQBGALiSmW9i5qX5SNyLGfW1PgC7Ik0onxCtI7yefhGnPbq+X5dh7jTc91sAyU3QJ7VE YxcxszvzoCpEZ7Pfd3+e9n4w77J1wE\/M\/G8AZxFRE4BTAfgAvJxIJD4iohNVVd0i4yeHndCqqqpX XHHFecy8FMBNAHpj+QnAk0RUlIA71te6wLwrgKyHVu\/1\/EtVxIbc9mtj8QutnLZbCIY8AKstmToo bpo75BzmUT7vPRoVNKhUs7R23HnUSGJmSCnjzPwkgO8CGAegHcCTlmUtIKLTVVXdor5Kw0ZoIgIR 7WtZ1scA7gMwMk+zAIC\/ElFzvj52bKhTmHkXpDMWMaB0GeZOy6OxKxZ0dj9uWrKfus6QcuSaWOLU IbiF7ExHpAJbUO4inVHblkydmXs85HK9liNq5MMIS9e3222rCX0H0l\/IrQDskz40CcCjlmXNI6Ij 6+vrtwhRZLMT+v7774cQog7A47A3e9uVOGU0gBfSIkkfdh41kljKHUFUHbPk+NWx+JkLusOPropE bwrrxj65n9lMdKVSR0RMa8ogbyVbBlJcgP1ZHihSBY4PaLPYEo2db0nZz9CTtKyJ6xLJI3VQNYrr vpuTPd1TesPMiGgy7LqMuRVutwHwXEdHx6tEtP1wbx436+cifbNHwd5Jjyzj1B2Y+Y+qqh5pmqZJ RJhSW7NXTyJ5crdh7J8yrYnljIMB0RqLz5oaqrqEwFtKrHUh9\/6yDS4durFnxDD2yPdbyrLGrU9Y 57QlU2f6VfWTarfrXzVu1\/uCOd\/1J+1UV5Oa19UThV3+ua7IZfcB8BGAe4QQP5FSDouPyGYjtBDC D+BOAGdiYD4Ph1qWdTcRvUpEZyzp6j6ImQf8iU9Z1oS1icSxTV7PHzfXHGwOmEBgXTxRspIAM6tR w9g1ahi7ro0nokFVfbPG43qlStO+RMYGnIl2UImuMZmd1JhRAVzCzEcR0bkA\/q\/YZn5TYLMQmoi2 BvAXZDgPDRDnAThvqCZpQzJ1YrXb9bZPiJbNMQ8lYAy+C6A1Gj\/LlLKmnHMsKQPdun5It64f4lKU NSFNfbXW633NI2jdikj0YlPKckvZjYddWuO3QogrpZSJzTOFm1iGTm\/8vgfgPQyezNKlKEMapMTM Wms0PgsDq76T\/ZBIAYZYhk6\/uI4\/3d2GuUO3rh84mDnRLaupPZn6waKu7ocW9oTvD+vGfgPsSgC4 kJnfI6Kt29vbBzOssi66SZCWly8D8BwwaAvdslpVPXZaKHh9yKW9PJTjjJvm9PXJ5CFlnmaBqDXP 8aHXchC1wE5lXhQS5F4TT1yEoXOXpZRpjRmCfrYD8MGIESOO2xwbxk1C6EAgQADmAPglBjfBEsCv tvL7dh9TFYgBEOOCgXt8qvrZIPrsh7Zk8oyUdOyRxwA+\/WRD51B\/RvNqM+Z1dMVgexMWxZp4\/GTD skYN5YB8qvJZjcf9IhENduMcAPBHADelubHJMOSEdrvdIhaLPQzgIgAnAjgDGFCA\/pcA9tyhrua6 oNu1LdLxesRsTqgK3OJSlLLlXp+qflHv8TylCBHOPC4l+1pi8QscSh5fzOvsXr8Jnkpe5yRmxrzO 7lUAlhU6MWJakzuTqaOGcjABTftgUqjq+rE+728nVQUv9KnqYAskEYDrY7HYk4qibDLD1pAS2u12 C13XH4Ltm3wkbD+MxwAcDKDLYTcmgFuFEDvNqK\/9ELbhJKtsmQpExwX8N6pC9JTqTBEiUut2PT+p uur8yVWBK0f7PL8f7fPOyW0XNYyZG1L6XiW6W7rTQd9dlX9TSumhDT2YGe5Q9SIA\/cQcBtTWWPxi 7i\/uSCIaUKYPj6IsHR\/w30bMFgD4FLF6clXg6ia\/79e5i0EZMAH8FsCRUsoX01qvIceQEZqIoOv6 XbDJfDQzv8TMSP\/3GoA9AHxVopvPAOwO4Nod6ut0lnJnFJC\/fYpY2xzw31zooflU9csmn3fONjWh U8f4fQ\/6hVjV+1uNS\/sw5HK9knvOulj8PAMIFhhbq6++YfEjc58qNANAzotXJoqqbt77ajmEps0H kGXOX5tIHpOyrAmZx4jImBiqmrV9bfWxYwKB2QFN\/QAO5HAAUIVoH18VnK1Qf9+SBrfrX1NDVefm m7sSiMBe4H4E24S+MzP\/SwgRGsR85cWQEDot7F8HW612CjO\/lNuGmRcS0e4A3snThQFgthBiV2b+ cNexY0iaxvYorshHSFUWNPl9d\/bdDIl4tcv14sRQ1YWTqwI\/bvC4Xy1gMMDogO9BVYisr4bFXN0a jf8wT\/MNQtPm\/2fR4iGd\/ByU1GZ8vK5NkhAfAwgDQFzy6A3J1Im57erdrrkBRSwHs6x1qe9PDAZu nFoTOqvO7f6TUuSrJogS44OB2W5CZ6E2GiE8PuD71bhg4FqXoqxxcF+tAPZesGDB39OL25sADgQw lZn\/NtQr9aAJnSbzCbAdiy4H8HShtlLKNiLaH7Yo0ouPAOwM4EbLsnQigh6NTIVdTbUoDOZQT0rf t\/fvUX7vXeMCvt8GFLG81LkaEG30ee\/LPd6j6\/t3G+aOGYfCJMTHH69rG+JkowPDJ+0dJog+BFGy NRqbxcxZpmi3oiwb5ff9Ofc8D1Fbs9\/72DY1odNG+313eFV1UebvRCSbA\/7b\/Q7mDgCqNXXe1FDw R3Ue9x+LbBo\/g+32++m0adP6DjLzh7BX6hlpC\/CQee4NxQq9PYCHATwI4M5SRg9mTgBYmHHob8Fg 8HNmBhFhh9rqCbCdYIqix7S2X9QTuSdqGLv0Hlsbi18cTQeAOkGdS3s7qGm5XwxaE49fKEFuAAkQ ffBJe4fTXf5mMYvN6+hKftndMz1umttmDZzIag747+yVffNBMBv1btdrU6oCl20VCl7iUZUlAKAJ 0epP\/9spBKA3+7yPT6wKXuxWlFxNzD+I6NvMnHfzzswfADgawIGWZd25\/\/77D8ncDIrQ6c\/FnwB8 LoS4uBSZM3w5rs84fGMkEnlUURTXDrXVowBsXawPBpTWePLklZHoLZaUWWWjJLN3ZSR2g86ohUOM DvjvE0RZEdeGJRtXR2MnEtH7n27oTDnpp1ZxEwZnWCnH96FZt+TN\/cbgdj0XUMSyMvpRU5YcBwC6 ZY1Z3BO5p9swZ5Q7cL8iVkwNBX+sCupdHNYQ0dFSykix85j5FQDnAjj\/1VdfPW8o9NQDJjQRgZnv gC0anGRZlpMHPx22l13udU8D88sG854oordOMdcvDUd\/viGZPImZ847dlLL+q3Dkp04jmV2EriqX 693c4926fvSnHV3TnPQBAKa9OG9y78VJkyYBwL3I2SxrirJ2lM\/7B6f9JCQ3rgxHf5IpslhS1qyK RG9qTSRP4TKMRAwoq2OJC03Ju6cPNTHzLQ4J+jsAdwH4DWzRc1AYzAPYD\/bbdQWK6Ej7LiRENWz3 w7xaBMm897Jw9NcJKRvz\/d6pG99a0hO+O\/czmw8py5q8Mhy9gkvcX7dhzlgcjvymO5XK971TATyk KMoWFZmxbNmy4wEckXt8lM9zr1LYBTULBrN\/ZSR6o8XcT8vAgNiQSJ6wJBy9NcUoaWyyQJ6vIrGf dqVSh+b8dCmAk0uRmpkhhLgCwDwATwohBvOVGxih0w\/5HgBveTyeB0uJGpqmKcz8BICiHlspy2pe 1hP5VcSSfWIHE2mrY4mzV0djP7UkOzahRwxjt9Z48sx8v0UtOWFpOPqzlZHoLcnirqc7SCl\/vJl8 fEsmmhFC1MJezXLBHYnUkTEpx5fqgwF1ZTR+bcoqbtZOmOb0Jd0993Tq5sxCbXRG7ZKe8C8y9zEZ INj7qh1Xr15ddEyWZekATgYwmplvHsx8l03oW265BVLK8wFMBTArkUgUZTMRwTTN2QAcZeixmEPL w5Gfd+jGXgkpRy3uDt\/RmUodhQGY0DuSyaPbUnrfdZOSG1ZE45d+FY7cFTNNp5+3n6bvtSgMW+QY jGGlqBYlLeL9Cvn9yClmmrsu6w7fvSIavyTFXFDduSoW\/1HMMGY4GZDFHFwdjf5kdSx+DhNlfami pjV+SU\/4Vymr6ILgA\/DMuHHj6lAaS2HvrWZhEKIHleuKKYTwM\/NXAL6oqanZv7Ozs2AH6TftGAB\/ RvmEZEGUksyDyupDRFaT3\/fLlGlO7EjpR+aquRziDbfbvV8ymSxIOvfcY4UOXg+U\/kwXwLZ84jNf 5Pth1apVGDdu3IEA\/ulkHokoVetyPd\/o9z2tgvtM6msSyePaE8nTBzI4j6IsGRsM\/MIraE23Yc5o icaus5idigcvq6p6qGEYRbVFmqYppmm+DyBRX1+\/V3t7e9lao7II\/fTTT+P444+\/DLbjEWCHUF0I YGG+fohoOmxDStDxRbLB2HIKwp8H4IFC8zUEhJ7IJz6T15KaXkTmA5hQToeKED31btfckV7PS50p ffeWWPwqDGI+hRDxak17uUvXD8tNWuMAdwC4woEmbG\/Y6ROOYebnyh1jWYRWVVW1LGsZgLEZh1MA 7iCin0sp+1YDIUQ1M7+PEnJzIYTcrteCmvZuayx++QBXVfsGAakqot2wZDkhX\/nQA2A6M+dzGx0K Qo\/lE5\/pJ2ymv3K\/gr3JGhA0RVlrSlk3mHkcIpwI4KlCnBNC1DDzz2ErG+b5\/f6dotFoWat0WTK0 ZVmHI5vMgJ0S4Dpm\/pyIDiciuFwuhZn\/gAGS2aUoa5r9vnvrXNpb44OBa5w4IeWDQhQZEwzMnhyq ukQTYrB5okMA7h0\/fvwguykbu8KWKwcMw7JGDQWZicgMuV2vD6KLhwHkplVAY2MjiOgHzLwQ9peQ AMyIxWLfLfcCjgmdXinOLNJkAoC\/AXjWMIzfADjUQbf5rmM0+323q+mIkCpVWTghGLjcpSit5fTj UZTFk6qrZtVo6ocaEJ5QFbhBEWKwgZtHrly58rh8P0j7IQzGL6Gfyi2tTXoIgwwc8KjqsjHBwM2K oIF6ykEIERvr990w3u\/7ZZXL9cYAu\/EBeDYd9d8b0TR1\/fr1rwD4PezkQpmYVa7GoxxC18DOeVYK RyFPrmanGOnzPhpUlaVZs6CItZNDwcu9qvq5kz5q3K4XplRXXekhaus95hWidYzfdzMRDTZ27y4h RKGYvQHLp5TjM57O1XclbNeCAYOI1o4L+GbXauo7k0JVs7yqsrDcPlQh2iYGAz+udmmfAsCYgO8e TRnwF28CMz+VTkvxM9j+HoXCvA5Cf4mgKBwTmpkPQXkZh8p25glo2vsj3a6\/5vtNBSKTQsHrqzTt 9YI3Q5QY7ff9cqzfdx8x9yNuSFPnj\/J578LgfC4amfmOs8\/edGny0tgawE8G2UeMmQ\/3CPEGAHiI 2ieHqq6qdbued9qBR1GWTK6uusynbHS\/VYH4GL\/\/9kEsDgek9yI\/Qf88H5lQYDu+OYYjQqeX\/XLk mVWwzdx\/d3qCKkTH2IDv1yhCNsFsTAj672jweubm\/uZWlFUTQ8HL6kvIeA1u110AboYzWADyxTCe 8Y+\/P7Q\/IspQJgrvI4fX6xUAHlTHbD2YyA4LwA+Y+eNtv7PvKth6XhCzOcbve7A54L9VEBUNI6ty ud6dVBW82pUnOCOoKktGeD2PDmJ8To1kx5cjdjgi9IgRI4CNKaCc4FfMvLCuru7wkKadror+OeYy kXZd\/KVGjmQ8bvJ6nmjy+37T67YY1NR\/Tw5VXebLcOIvgGUnXXr5qqqqqhsAPFmi7QsAZhx99NEH pf+dNeQzTx35J0Be0jcoMGEQZd0UUJ9DfTKZPFcdPXmvkVc8nHXfZXZ5FewAZTzxzDMINIxYDKDP 863Opb01MRS8xK0oK\/KdXOt2Pz8+4Lsln6N\/Lxo97r8GtJJpxbLgUkRLUNP+U8YpM+DAlbgXjgjd 1tbWDOeyTJiIHgGADRs28Pig\/52tq6vOrXO7\/1LIb7bO7X4qpCplxax5VbXP1dGQ3CBL7+JbvbV1 i668\/nr09PSwEOJMAG\/lafcu7Jf3e8z8+TPPPAMA5yPtVN+Lfffy1QK4FhEanT5EGIKobyJqBtFt tbPuxdrR01A7s69EzBwABwCO6s0+2NjYOCdTPfbWwkVQXO75sJMtAgB8QrRMDlVdFnJpr2ZcX470 eh4Y4\/c+SKXFRh4b8P+m1IIFAIIo1eBxPz61OnRhc8D\/2zLCwxQA+zps61iGnuG0QwB\/ynEbFAqQ bPZ7H5lYFbwoN9jSp6qfN\/n6ixBFZ5FIaY3FLu1V7icta9rScGRO3LJGFzhlg9Bcn72zZONeM+0d +H1sdNtcAuC4QCCwBzO\/kUmGtE\/v1b1\/N42qwc47xgDbYHSf2TVo2w8TgL322gsAflt76YNVbZN3 hSSCsvN3AWAZEd3AzK8EAoFdYetzCzmEvawoyoVr1\/bfs320dh2nI166e48p4FSz33+fS1HWAkC1 S\/tXo9fzVziERgiPCfp\/QUQFfbADmvrBpOqqC5p83j8KZsNF6PIrwrE4CqBUrGcfnBK6nCQxhYLu 4FfEqsmh4NVNft8cRYhuAAi4XR9QmZ\/TdfHE0UnTmpR5TLesUV9FYnN6+nvjpSNO1mddQwjhhe08 05vQcL7L5XomEonkHYvb7X4AwJsA8NOrQggG+hQo31NV\/HCQ6fcTBPBbb711wqgzb\/lebM9j+n5I TdqZAZzXa7SKRCKc1hJMg62fbsvo50siOs40zYKbtU\/aOywQfYi0M1SS0bA0HPmlnk6B0K0b+8Ql l5WPo0pRvqh3u\/uJcKoQ7c0B\/80Tg4EbvUTrMn8LKsoDZVziW07laKeEnuSwXVwI8WbRFsxocLte 9avKFwDQFoufsSQcvTWWdjQveQEpm9uTqZPz\/WZJGVwZid28QTd6P1F5I06EEPXM\/Cqy3TCP0XX9 tkITl\/bjOAdQkocd3E9yujN84DszHM5RXuh3vV3nO\/WG33QccjZStPGxJMdNj+Ov8X5zalmWwcx3 p9Os9ZIlDAdy\/KcbOnUQfRCxrDFLbQej8RsfD7tao7FZpVxvc9Hk8\/zJq6oLAdt\/ps7j\/svW1VXn 1bm0fDGkGOH3zYftMuoEk4UQjjbITgftxFsKAD6WUpaUjSSRGjU3RkbETXO7ZeHI3S2xxJkWCjvm M0At0fjFxaxednqv2OWt8cTxkvnD3IgTItqKmd8GkC9f2xUAzimyGix8+fnxdzc39bPx+Dxa+G+H uAe8TvOovX7+q+ThF4zUc9yvdRJ+mKkj8p20\/fbbg5lvBdDrQz6Tmd8moqI+H0SEeR1d+3\/VE7kj N+on\/Ty2WZ90Xr\/QAAKrYvHzkpadonhsMHBjs8\/7iFK6KoFT9WFASumIg04JPRfOSiYsduIbEjHM raXkLKsaMysdqdSxC7t77u\/Qjd3zndeWTH0vYTqqfEobkqnT5nf13KkoduLmtFVqFwBvw67ZUgj3 AjggH6k5UkUH7Lts33wSkibiIx+YuQC7qAOIpRWHuTfMPOIHUi34np5Lz2RrzogI8+fP\/zFsv4dM TAHwHyLaKd89jBkzBrCTAD2LIoVC2xPJ05KSS\/m\/UHtK329Rd\/iBrpR+WG8UUcownGZw+ncZs+RI KeGU0H8monGwN0YrirTrdtJZJKXvWug3U8qGlmjs+mWR2I1J5r7olYTkxrZE8rQyJgAAzpBSvpSO ljkYwGvYuJoVggrb3TXrxamuDlFPj3o2gF0KnTimaimemrkIOypOSU2AehrgOkY1RFHntf1A1Gcx zHDLvb1A+0YAbwA4OJPUmqYpLS0tv4EdJFBUIyOZvS2x2IUoYP2MWXLcknD01jWx+OWWlNWZv0Ut axc4gyPLb+\/0OmnkiNDpWhttzHy7oiiT05P5FvovVU4Sh3DUgXN91DB2Xdwdvm9NPHmCJOFqicYu GqBv9H7M\/DFsPxOnpYtDsKsGjBBC1BLRrJ13UD8D3CU3MhNrFuLp3ZyQugbQrgHU78CJizOAK+mZ Ljz88MOA7bD0exR\/fgEAfwVwRrq6mM80zb8AuNjpxMUMc6f2lJ5llrZAnpZ44oxl4chdcdPMW30h bpjbp6PmiyIQCLSVaGKl72Hfurq6P5fqDxiAg3\/fifabvytst8bvw96MbADwbQCLevudUVezNTLS EqSAuoVdPY+B2bGuS1VEt2llrwKbCasANAAwP\/p3k9xpxhrHmX5W9UzGGe9Nw6t67kLIgNgN0E4E qKykrBaA7XBMTQx2euJSX5pM3Ao7uYvTlbMPihDRKaHgeS6irg7d2H1dPHGuKWVDqfPGBQM\/qdbU j4s0mddCypqOjo58b34EwKMA7gawtByODpjQANDW1obGxsaatKtob0paE7bq7jYAX+xQWz0VQF+Y TlsieeDaRPKSAV90YPgMwFqUZ77vvZd7WxfhvaZReAJl7vzbY2Nx5Qfb4XfRXtnYb4sY6k7ldgUA 0MzUy\/L4xpHWIB2WykVA0z4EwFHD2NXpOTUu1\/NjA74HizSZN6+zexJsZ\/5eLAdwNxE9wsw9A+Hm oNIYjBw58kBm\/hwbyQzYMugPYJPohfZEcrfMrJ4x5\/JV9gS53S+pQpT6ROWDCeCHiqIcDuB\/yzhv GYA9OUq3NI3CHQOZqwb\/Kty757v4+cg4IA4E3LcA6i4D6cq+EdV9YPUPfjIQMncP6IJpRA1jl3LI DKSfcwFtkQRpKyKxs7Axg5YJ4CxFUaYsXbr011LKAZEZGODMapqmwE799Q8UtrMLAIetSSR\/t6g7 fGd7St\/XIvLETGtGudcjIrPJ73t06+rQ+XUe99Nl5iueA+AD0zTN2tracwFcg9Im3deJaFcOqx9B 8h9Qhi9BLnxaB67a5T94bloTNBpoJJoNBqAfcCrcjePLOe0pIpoEe\/UrG4IoKYjKrkOuW9bohJWd ksIE\/Gvjye9\/2d3zSI9hzMZG\/2cVwM8sy9o\/nXdkwBhIkGxVuhCjYz1lLxQhIpaUZT\/VgKZ+PDEY 6HOljEs5pjUaPz9PUclcLCSinTJrfKRl\/\/+BneAk3ybzVSI63OrmBBF+CeDHA5\/ebCzquhmXfX46 \/p7q1VgSBuLJWvvpK2bnz77vJKbvVo\/Hc30ikZBEtC\/sGFDHe5egpr3T5Pc9uD6eOL5b18utcoBG r\/e+kV733xKSR21IJI\/o1vWDJHOxDK0SwK+FENdYljUg19SyCE1EjbBX5VJEGlI0+rz3jvS4c23\/ tCGl770+kTy7QJEcCWAvZu7n2ZUm9bdh62IzYwDXENE0q5vDRDgbtmm8bPQkGxHyrMv7W9Q4GA8v OBmXtMYAXg24L0O5H0oCG\/jTnPf5qVv2LNDEBHABgP\/tfb7pe74HdkrbotCEWD\/K772\/RtPeB4Au 3dhlVTQ2u9x58KjKYo3EhqhhzmSUVbHsTQDHMfP6cq\/pmNBENAa2Hnc0bEG+Nf3vPeDAt5WITLei LNeY14JISTFP0C3Lyaect66tPtWN\/CleTcC3JhY\/pTulH5aTvuo3AC4tdH\/pBzwZdv293thHBnAi h5GAXbUrdxXsga0OK\/pwLnn7ELQkVexfF8dWVXE0+hMIuJKocsWhKSZAjLdbx+OsRd\/Fes2RFq1\/ 9Dvz57jq4BVY+v7hOW3DAI5DnpJqQogAM89D4WSYep3H\/UyT3\/cnwdxnYWUh1C86u+daUg4qq1GZ WAng0FtuuWXBtdde6\/gkR6Ho6ZX5NdgeaXsDWNObLZSIvMx8OIDvwQ6lyfJ40xSltd7t+kutx\/O2 Cs6M6aOwaW2zLp44K2GaBRO5eFV1USEyp28gPtbve6DG437pq57IKbBfsASA24u9rOnxL4Gda++m 3jHdPnvUQ8BaJWdu1gO4H6C7AP4s9x5z0egycWeXB39pqUKxd50UR\/VC2wAca18f0zMeyrbVF\/1G 67l4j0yhZTVsUXB+vnuXUkaJ6IfIL3r8SyG6qNnnHYucFAUkpelTxEcRKR17vRGRNYg6kgaAagBv XnfddQdblvXBT37iLHin5LcuHfv1EoDlQogjmHlN72SlDS4JZn4awKlCiInIMWeaUo6Mm9Y2umVV 53TNVaryxZSqwOVjAoGf+QrECwZUJa9zSy6CirIEdvUAC3Ym\/Q+IqFTlpZEAruz94+c3jMYlF8YC 6fPDsAvdHA2IsT3duJGZO7HREaggGr3O9qxMjvaan8K03lJsF96zYa9cAIDuMVtPrT7nF71\/JgHs wczzS3x1X4Nt3u\/FWgAnVlVVHbT9iIZFKCBj50tomQtNiLZ6j3vupOrQhdtWh47Ztq72uLEB\/09q 3a7nSwQ5d8AOorgWwHeIqCYtEbwP4P9++tOf7pr2Sy+Joiu01+slZv49gHGwK7kWFNQ1TROGYTwB ewXvAzOrPbp+QI+u71fl0t5p8Hr\/FFBEZhAs17rU92pdgfdiksdvSCSO7k7pB\/T+GHC7S1aAysCZ 2CgONMNWC\/2TiC4CsCTzQaeJfhPSSXAuOHkifjhdwT\/\/peDDj+tlPN4547afdS9Xqu1zQr1b2Qh1 lhqEV3XopCRGOGn1KR9XBwAm1r73kPru1Mcsyzy+rnvdox11zZq5z8k48sM2PP\/xHR7YxpOCYVHp e94RwLfSh94kosOllGEA2KlxZMG3P+R2fdQai0vkWQTdirK83uv5Y53b9Z+s3NQszRqX9nHIpc3f kNJXr48nfphj7b0NwOOapi0yDEPmvoiKohwlpXwewEvHHnvsXsz8ZanJKkjo9M3\/GHYU98mw3+S8 cLlcwjCMR2FbDAs+vrBu7BnWjT38mvZxg8f9dEjb6OzPREpMT20dNbI1FyvCkZ+HXNrr9V7Ps34h VhbqXDJrAPKVk\/gubJ347UKI26SUvU5WM5CRlmHtxzo8Moj167z42WuLBICDfnkX5zN1l6wgWed2 EowhAXKUk2aji+WomTCPhkFEyQ4ibcrBP8TOdfvCrY2GMmkHWEvn3SKEeDpfnW0hRBXsKOsfYeNz n0gl4gp7oQERt6qsSpkbXU3divJVg9c9t87tfiddTCfrHAvwtiWSB3em9KPN\/N5yxxLRHF3X86pR LctKCSGOSeeR\/psQYqaUsqPYOIuJHDvADiZ9DMCThT5joVCI0mQ+1cnEAKCYYey8IhK9bXE4ekeH buy9Ppk69MuungfXxhMX5ZpVmVnrTukHLu0O37s0ErupSzd2yqew79KN76CwvtgD4IZ0MpxD0h5n c5CxudsxKMAAjmtUcf8+WwOFo3RKVvNytELTeDhwdwCArAif9EJz2o5j9sOeayciOK8dqmnBu34l AIxi5qsyxawbbrgBRHR8enW7GNmLWJOU8ohSA7BA7nWJ5FEp0+rzeFOF6Bzl9\/1vncv1H+SQwwCC axLJk77s7nmkLZH8oVnY9XNyus5KQVWelDJOREcAUJj5SbfbXVRMzrtCpw0nDwFYQkQ\/kjK\/HSIj TZVTMmchYZrTWqKm06TiFDOMnWKGsdP6RHJlrdv1bL3X87qw0xVwV0aW0SKYCODvLS0tbwPIUnlN DtrkIjBOGKVg2pHTx0RO3RnBx\/uF8JWMn\/NqDlSoNBEOVMIpAWTVQjl8r5M07gjs1aRNA1n2s1VY hcvyIm0QvBzA\/xLRKtiBGfeieD6Vi4joL\/kWLAOoaosnDu\/Sje9ZUmbtbk0pa1eEI7f6VPXzBq\/3 yWpNmZdiNLTF40d168bBZTiS7cbMczVNO9YwjLwrgZSynYiOB\/CWruuXE9EvCy2w\/QidkSFpGoBd pZR58xan210A4BKHA88LTVE6TCkDzOw4ZD9lWePWxhOXtCdTp9W4tBcCHs\/nMQeJ0DPQT387PqCh 18hBYMzw4TA2k\/eHT9p2VtWTn2fKECVX6CrNgcghmp2Mc4lkOwEN0UU4Z7vJk5ow80EoqM60dbIh MKKuCZ3xtYC9ob0DdvXZq5DfeJSJvWFrT\/oyn8aZR7fHEkeFDeOAUsHHcdPcdmUk8vM1qtphWlb1 ADUbR5qmeTcRXVBkQ\/sB7NTGP4PtgbcoX6N+yzcReQHMhq0COo6ITiKinYUQvsMOO6y3DWD7b\/x6 AIPv7UMf4fU+vE111elTqqvOcytKObVBAACWlFXtydQpy7t7bkf5WYvuhR0xodf4XBjrzfsczgX4 jfBJ08d9tPEzXpLQmupAy0GONoTzcGwNzt3+ruA5202+Gbb4kScCmhESWT71xwG4AaXJjPS8nT9m zBjMa2vfe1kk+tMlXT0PdOv6oQ4i6ftgmGbdINR0gB1Zf20hrRQzQ1GUObArDN8bCoXyNuxnWCGi WQDuzNPWhB1C\/w5sl8r\/wQATfLsUpWVMwHdrICMnhCRyrwhHL40YRkldp0tRVo3yeR8IuV1frI5E z+tK6QeXOicHSSJqZOYeIhpxx54Trzx7jOvyIsqubgAXk1B\/H7zvs8Ng+1YXxPrYODS+ulORV4wB 1y8AUdwLc6Rh3HTkzXM3wK4BWfQNWJmah38ufgSwXzgNzn2\/ATvy\/UvY7sBlw6Uoa0Z5PXfHTWv6 hlTqf9jeoA8EDFs6+F0ejRSEEJqU8jTYTmaHMXO\/yPEsQrpcLoHCmS5VADPT\/wEDSPUFAH5N\/Xh8 MHCbmlOCQTCntqoK3L4mFl\/dbheT7EcHQZSsd7ufbPR7nydmE1JirN93t0dRFq9LJC8oI2fx33vd E9da3OY\/ZdvuEvbSagCPsTRPMJaMeEqbXNzpz6+Vqi4hAFFd8NeGVAozlixH82vzr4HDRaPWPXo5 gKuFEH+VUv4adhZPpwgA2JWAlxo8npWduv59U0pHKhi\/pn0yLuC\/TSNEq13aZyG3651V0dhVumWV lZMuDYJN1ogQ4nVmng5bObED7PIg07GxWu9sn8\/3Ujwez3p0lPMmHAjg\/xxefCbs\/GsnAtgfDqKN Qy7t7XHBwO3F6ugBQIdufKc1Fr8kMxg26NLeafL7HvAQ5VWb9Rjm1BWR6JVw5vj+fWb+CwBETtkJ bKU+gdPcI26W7uOiwjVzLciVX7QwLD9cLxXZh9FEwH1d1iGFGdu2tWPCwq9Q\/59lEMmyA24XqV5l 63vf+xGIaB\/YBhSnkABuGh8M3BTS1AMskH9tPH5iZ0o\/qtgiUeN2v5BOSJM1WIvZsyoWvzSsG98u 9ybKxAFplV4f+mTo9LL+A4cdvX3eeee9z8yPAziEiEbD3iC+iZyb60XQpb3rhMwA4FXV5QpRND0u fUww8LOtAv6bC5EZAEKa+hnsT2ZulIREdg3AHiHEi71\/sJXaFuUk0kmRSD0RRPSmSdA\/aQKs\/lok IgujRJE1n8YDADyWhRnr2nD4e5\/gB\/c\/g5n3\/gMjXl08EDIDwFQzYfvGeDyeN5Cn0H0BhGGH1N1Y 4\/NJAFDAyWaf99FJoeCFPlX9rN\/wAavR57tvrN97H+V53gpRckLAf1udx+3MvLcREnY9eKcecxfm ytx9T0NRFBW2P4YTPHbffXZV4bT5u52Z74O9Y54AOx3AJ+kBwqMoS8cF\/L9wQuYew5z2VTjyCzMd Xs\/MrqRpOnJ62MklWmDvhHv1ZjqAfUOhUFV6bH8F8OTnn3+eBID2PUrmvC4IbhNI3l+N6E1ToH\/U BNY3LmSCTEwrEv3tNapx6Nsf4uQ7\/ohv\/fYfaPr7fLjXxYai+MbBAJAu5PQnB+0XA9jtzDPPfD6f dsEnxOrJoeC1TX7fHZl10eu9nt+P9LheKNE3N\/u8D9d7vaXGYcD+mvwItkV6IpwrGw4jyrZOUYZ7 4Z7In+stF3EiapJSFs2qr6qqZlnWKgCNXlVdMDkUvLoUobsNc9dV0dg1eVR4PDrgn1Pv0gp+RiOW NfarnshR6B9m9QIRnS6l7Oh9m3vvOXzSdD9sbU6hfM+OQTUM18ExuHbaAKqK4\/TXDsdjsQJSmHYZ IKZjWlc3mlvXoWb5GgSWtkPtTAHKoFj9N32DecSjay4DEX0LduxhO4BHYFt6L4VNGgB4l4gOkVJ2 9568U+NIkoZ+EPJ4E66OJ87vTKYOB+yiRGP8vttqXLZ7aSmsjMYu6taNvo07EZmC6E1LyieJ6Dlm 3pAj+o6FvVI70Zqcy8x9br6Z8tF3HE7ac8xcskSEZVk\/QFqeTZjmNq3R+OnNfu\/Dhdq3p\/T91sYT lxRQ\/dCaWPxijfztIS3biSku5ej1scQpYcP4NvKvcYcz8wdEdCAz96kGiQg9J25zOoaAzADAXYTU HwLQX\/bBc1QY3oIiBwNUBxDhy9oafFlbA2w3DZASY+IJjIxGocUSaGxd\/1LDK4s8KCNRIYCDXPVq CEDP2LFj31+1atWBRPSfjz76KL7LLru4pJTfwkZC78LMdxDRbACrizk0rU+mDu8lMwAws3t1LH69 wd67R7hdL6MEmgKBx3q6uvdjZleN2\/33UX7f713gNz\/p6CokFq2CvZdzElRwGBH11cpUgT75eaaD kwHg4VI+1B6PRyAn0qMjlTraq6lf1Lm0fl5b6xKpo9cnEmehmKKLWVsdi1+vBf2X+xSlNcVcuz6e OKlbNw5yoP+cAOBlIjoGwKdEVL1NU90Zcag\/9aGcaC5ISNzu\/n7sYmbykdsC\/BLCK0HVOpTqOMif BBSG7+0dCnYByvMOCYHVAT9WB+xoFpo4\/rGzX1lUbiUEN2xX00dWrlwJAP8C+tx\/n4Yd1NALFcBZ sD0UfyuEuG3HkQ39\/CS6dGOX9YlEbjIbMLOyNha\/2JKyepTX83SxQa2ORn\/Uu8FPWtY4DRwuxqC0 a+\/DcEbo76TFZRNIy9AzZ84EbBe+UvqmFaqqlqyvkUqlDkf\/BI+0Jp64NLf0cUs8ecb6ROKHcCBB WlIGV0RjN7bEE2cu6g4\/1JXSDylDmT8Bth59DTOvv2RK7a98MKsdntsLgRQ96\/7uyjbPwSvg3nc1 3N9qhbbdWqhjOkDBBCAYYKC6kD8HNTny4dh32QoT2QR0OEI+a+rY7RWgL1vUbgA+LNKXF8DlzLz0 k3Vt11sb1WKIWXJCSyx+NXNBnx9qSyRPXx1PnIMCz299MvW9SIa2I2Ga08OWVdLdQQjxAhy4GQAI WZbVxzUBAO+++y4AnElEDbDt\/r8BkK8WR8Q0zRnFfIzTv12Z7zcpZWBVNHa1BDQQKSujsUs6ksli Hnr9YFiyqSOZOrYcU3nmPAEIf2+k6+pjG7WOAZwPuHk\/ZGtN8qK60KaQmuHg3ZXjX\/5o91KN8oJp j6AycjERXQc7IPgNlAhISCPEwM++7A4\/uj6Z+l4SaFwRid5YIgYQANCZTB25Ihr7MRNlqfgiljV5 fSJ5Vm779njiuFJ9SilTsFPQOUGfQajvzctw1n8ZwKUjR46cBmA8bJPkc7CtZdvBtqn\/HxHtU4DY eyGPr0QvkqY1uSUWP\/+rSPTabt040OGA+1Dtdr9KRAMx6rwG4HAo6vQn9ptUpVK\/BJRfpu+tOAT2 gYO63P6ChC6d0YqA9Wpr9PCSDe2N0++zjjCwlXfnIIDLAPwcxWuY9IMlZfW6eOK8xV09Dzo1rgBA j27ssywcucFMvwAm4F8diV2dz2oYNcxvrTfMooaXtFhbTEOyBHYimsOIqI\/4olBn69atAzOvZOb7 ARwthBgJm6izYfsI\/APAO0R0RCAQIKD46pyJrpT+3Yhu7FaqXS5G+nyPjvN759S53X90eArD9tfY ZcqUKfsx84s9x08ZC9tpJxOPwHZ6d9LvnpCipDudEIUIXTLpELbt7PJCUMn64gCeIIHTYTsj9aFG bfIdO\/GqGbAjXJymrM2euAH4ZcQMc6dl4eitBhBaFYldbOSIl5mzsC4SPSfvD3bashoi+j7s2t99 3cOu2TMLwORgMDgVwCxm\/ntWwVeHNwfLsnRm\/g8zzwawd3qj8SSA38Zisc+I6GTYBoqy0xs4gBzl 897b6HH9GQCafJ65vbmIi+Bt2CQ9ipk\/WrRoERLnHwwAv8VGOXEpgEPUqtFnVT35RRTOrGtBq72q ZEFRd6HcdlRaqTLmq1XVDsbBAJ64\/9NZ8sH5F18B4DRs\/HL463xNp4fNVQ\/5fL4dYZeyeL2cCW\/0 +x6odrmcWo37kLSsyYt7wvdHDGPPEk1PJqI+l0NVVVUiOhHAy+lo77mwcwzeBmD\/tL75MGa+m5mX hsNhzqecGFCimbR40p1OuD0NthHlCdgxYENam5sA2eTzzhmRkcaAAGtMwHdHgSpOMQDnezyevZn5 w8ybNnpWnwHb+LAOttvrtlVPfvEP3\/29z43mw4E3ndXqK\/kpduVV2zFA1cXvlxkNH38FB3jPSsol gP08Fs5vexzAztgoNs368Y7PBmKxGDPzK\/X19fvB3h+VzPhZ5dLeGul2\/W1cwHdnk983RzivhwIA MC1ZMgsAbFeJy9Ib1\/0sy\/oStvjUAeAYIqoFsDszX8PMr0opk04yFAw4FVgvpJSRqVOnngr7TXLk ZeVX1c\/8quqk+A0afd47Gzzu13OPe4VY2+jz3pdzeDHsDcL9iUQia4kMnzR9K9hWwfMAbDVn7oI7 q578IisZOltJA3bRoKKwVnhKfo49Sj4thyxJ6GmdXXC3RuAAf3ho8SV9f7zBN+OBz2YtAmF32E7+ LmQUQG1vb2dmfllRlB1hi1x5832rQrQ3+\/13I21+bnC7Xh0X8F8niBwNqkycDTuK5mXYpvptAZzA zC9IKSObNbddJhYuXIja2tprUbpUGgCgzut5ujnov6dUnbx6j\/tPIzzufxX6vcHjfiXossuKaYqY Bzv64csCE7HOfEufbb6pi9TcBYnZedqE\/rgUcGAttT4v\/d768m4KGwAqvkcbv3w1HMCEncO6H\/5G lvVvP1bO8+JhADXnbn9XVi4N0zRNAL+ALY7lim1ydMD3a42ytThVmrpgvE3qkpthwE494aQdbC+\/ 3wC4W1XV\/Zl54WCShwJDRGgA6OjoYCI6F\/bOuyBcitJS49I+8RC1FSvc6FGVxU1+3xPF+kpK2ZAw rakeRVk4uSp4zbQi4kLVk1\/EwTAA\/FZpnnR\/59gphdR+JQktWxRwtLg2S6E8D4YaUcqaW\/+JI3Hj NWlyVjoFIsK03e8aF\/IqzwL4c4\/A0rPnHHlV04zafnnp7HhWnk9EM2GnqLD7AB6qLvDlDGrqsrEB \/02l8gpqQqybGApe58kou1cCdwO4pFD4VbkYMkIDdiITAKejiK90SNNe69XJjPC4X\/Kq6he5bYhI H+P3\/6qY7wcDyqpI7GpBFN+qKnCj5iyhYO\/9ngvmdzvHTN52ZX\/V4yfIU0g+e4CAtb64\/zzl03JQ M4o5kk3p7IKnxdGX\/en\/XXBxeq4uwrTd72rYerc7fwF7xT0q3WbtLgeOww2PF3aglFKGhRBHYuOX dT6K7IFCmjp\/hMf9SJFxcZPfd4\/CnKh3u5wkKH9dVdVLB7sqZ2JICQ0As2bNehO2JiH\/pLhdfbnm CJDNAd9duTWjGzzuP\/gUUfTbuzaRPC5pWVuNDfhu0ZzLd5ksnAHgw2DzpNmdYydvXG7ZisCOxysK q7V4dFP++KDiGo4Jq9c4uQcDwHNEB2Ha7neN23q3yXNgfxWvQHbIVcn8IYBdTUtRlNMAvMDATQkp i2a\/afR6nvdrdhH7XFS7Xf\/qTXJe63a9m+mhlwdhAKcN1crciyEn9J133gkiugYZGX56oQjR7VfV rPLFPiFa6j3uvtqGLkVpbfR5ny12jQTzqA3J1AkjPO7H\/AVK+xZAdc7fbgA\/BWNh55jJP+gcN0Wp mv1nwA4zKwprRXFZ2JVvU0jFCznVfV76ViThgzf8+PbWux3+N9g5rC9D\/nCrVMnO0jBN00yrzFpW R2NXcQm5qMnvvS9X9FCE6Gry+x5C+l0mwAyqytuF+nCr6jXMXKqUddkYckIDfaLHucj5vnqEWA7u \/yke5fX+2aUoqwCgSlVeLeVmujYaP90lxOqRPq\/jiqdpFKrqNBbA7yF5fuf+R58CWdoYYS0ovjHM v0IX1mY1x+IILM5vjbcI6FaB5W7gfS\/2IOAZAIdjCEox90JKGRVEJyQtOX5dInl0sbY+IVpCmpoV KdLo896v5bgEBNzuvPJ4QNM+2DoULPfZOcImITQAHHroof9ETloqVVHyPjECm7Ue94sAYDIX1fHG pBwbMcw9R3o9jxFzuSbwUsU9pwF43PxQnyPXW4BRJNljpwCHCyfjpH6bQgaKJDyfuMbe40kCEgrQ qQGr3MB8L\/C2D\/jMDaxWAd25lr9ssm9fV7Ogzu1+ckMydYLOXFQ+avB5n0F6wQpo2vv1ble\/zbRf VZYiZ1ETRLHmgO9uDKXgnNn\/pugUAF588UUQ0aXIKAMncmTlTBim1QAAPYb53U6jsFm8I5H8nlsR y2rcrg\/LGc8\/7fkraeEDAKQQkIstmO8ZsJaYkN2yf6ARAdYGf8EuPEquMsAqSOjqlasRfutTfOgD 3vIBH3iAz13AChXoGvgTKqsiEQCQomKU3\/usQhRZH08WdSDyCmWNoihxALIp4H8QefjpVtUeQZQl +oz0ef\/XTTQwxzAH2GSEBuxddFMgcBXSdDBMs2AVqXjapZCZRUs0fk2HYfYLOJBEWo9ufKfW7XoB Zb7guzSMA2zFvXMwwOsk5HwT5nu6Te4OC6zb15Zt5Tj8eQu6jYabmzCtPYFaOaQPxLFjUSYEs17n cT\/drevfNQumQiCsTSROsSzLT0TsUpS8AR8kpQHmvjfbr2kfj3C7CtoVhgKblNAA0OBSFzR4PXMB QGceT\/2\/xSAhkFNvWm2NRH+8LiNKAgC6U\/oODGh1Xo+TULHsa3jdjXDmRpkfVprcCyxY7xowPzGQ el0DJxxmTqAGFDKk7rChA4GYha2SwMw4sLUB1MhB+xAM+F4bvJ5XAFgbEsl9+t8HUUsicU57Ink8 YDsxRVKpvIVRpBBuEGkAIIgSzX7fXRhIDY4ysMkJDQCjfN4\/+lT1c92yRsUs2S8HVtKS1RLIEkgZ EOvjifNb4onTe3fdMcPY0asqCxVmRxkzc1C2d18\/MOyFdpyAMlGBcGmgArmg+5OxBoUo2ti6sfKC xsAIHdguAeyWALbTgQkmUF2+w+xW0lpb9kmAnSOlStPeCBtmdmpkgFZF4xd0JJJHZh5PGGZeUS5h mA0y7bc+wut5xCOoZObWwWKzEJqY5ZiA7w6FKNaRSPbLcmSxDBYqxNmRTB23qCfy64hpTY5bcpqb xIoBDsNpzGTvzCQRINAIghgvIKarUGZqUHd2QRmngqoErGWqrYLIA5+WQ3RqRKHFqXpxS97jmgRq DGBMCqgqn9BTFbWkJ29BhNyud5OWNc0k8sMeubIiEru8K5U6NLetzjLv1yCi6zsAgE9VPxvp9byE zYDNQmgA8AjR3uT33dWt64cmZY4mQyhFv9spy5q4PBKdk7KsSYJKR4vkomPEeKDcops++oe6o2Yp UzWIMSpErQC5KXuRNQEZdphxq8CGsDaVQmBx8UijlLA1HGVi2233\/NaApRa\/y7UEACK6vg0TaSui sWvDhpE3YFc3rTwKdkKPbhwoiFLNAf9dm0qrkYvNRmgAqHVpb4dcrn+1xGIXg2jjtS2zpHsiMyvp \/8rOm0ZubSLsLE\/OEeX9IEtHpshOh1ljKf9+eGJ7B8gq\/qxbXQMSPGtNi8eXf5oNF7gbzGZnInXQ snD0xnCxgAyifvrLTl3fLWGaUxs8nse9ggYm+wwAm5XQANDs9z5kMQfWxBMn9U2eqnUTkSMTqMFw lIc2B8ei\/D1WlewpXVNRdjqNcMqv4mtYUzxPXlIArQM3nwxm30AAEDXNPWKGMaNYQ86xBxhAaG08 8SOvqn4x0uvZJAaUQtjshBaAMT4QuKUzpR+yPpE8HAA0llFVCEcbhrhlbSdBjlfpjroxAHDCQMbK bbJ0NGunUy1H\/pU89FXxxWud5nh1zqc6G3BuuRSjBjlBr4WQ6VYqAW15T+Q6ZnaNDfjnEMo2fg0K m53QAOAWtGFswH9zWzJ15rpk6lgGyK+IT52ca0kZ6Eil9nF6LfJ5tkf\/3HX\/hm0+Lgpul2CjOJ3k OofvFvWXtf2GgcDSwjYG3bnsnIJdzi63qM6+RLc4naosRHV9GjM74odbEfZbSaSsjMavSFrWtCa\/ b45HUNmFMweLYSE0AFSpypdNPu+ctnjitFXR+Pkhj+c\/Ts9tSyRPNRilSyw\/8CBgR0VkrrSvAzgU dlXV4mCAu4ovMNKRPMDIF3w9ubMLZBTuv4zV+YHV3eYC2LkJM\/2kp229W7B0mHmeAXeldMcR+R5V XQqAVkZil4Z1fc8RPu\/DtQ7ThA01ho3QAFDndr3dFPDf3aXrh7bHE\/+jFrA45cKUsnZVNHZlKa+w zpt\/WYXs+i9zQXRI7eolMSjKG3BQ0J3bShB6jZKXdYbMnFrOayVsaC\/s4WmS49U5CeDW6JeX4ct3 Zi2DnW0oc9kvu0Z31JKTo4bhKPk5ATLkdn26Mhr\/Ubeu71vvdj\/V6HE\/5+zUocewEhoA6l3ay81+ 361Jy5pkWlbI6XlRw9hpRSR2GRe\/h7Nh+zQYAK4gr+fk2lWLkwDw3MpFErk5LfKAOxmcKrJOGgBH +zsp6VlpdiVy7EYAgKrWwtuGdq1AXuL+eHhd2Oxblb98Z9ansPPh9QrnR9g5Z5yBAdEai50Ph9zw adq89kTy8G5dP6Te4\/7DaL+35JymMWSegpkYdkIDQJ3b9Z8JVcHLXYrSUs55YcPYZ3kkejVT\/01i 59gpHtjZNhcA2OOFlqV31Cye38fMM2216BMlL0IAd5dYpeOl5GgN+aY6uDh\/UVoJx6uzAeAXXV9c lnXwy3dmzQewO+xCQAdsvdtIR45KqmViTSJ5fNK0HKs4E5a1dUcydWyT33fXaJ\/XUUzppsQWQWgA CChi+dRQ1UV1bvfTVMQrLxcRw9xzWTgyW2fO3nUxHw\/gHhDtWLt6yYen5tHrU1VgCRxkSyoldnCk lJOSB6DsqW6Kx6F15Lfgd2tA0tkH+Q+RpMzrJP\/lO7NWwt4o\/h1AyVqERIQPO7qO3pBIllWiTyHq mRAMXNXgdv2znPM2FbYYQtuDYb3Z7\/3dlFDw3GqX6x\/kMB9EzDB3WNITuetLuzKqfZBormf1kttq Vy0u2EfNF58AwFOl+ucu7vOwy\/t7rP\/XU2YpCLzI\/cI2dYdBBbpsdbY6SwBzWj65pGCDL9+ZFfa6 xTEokYsjPWeHMvMf4JwTssbt\/tvUUNWFQVVxGuW9yTGgKlabGh4h1o8L+O42gMc6Esl9w4b5nYRp TkaRyTal3Ap2To1jiOhNtgtyOsGfYafSKpKBEuAeCWrIL\/bJSP9pTFkZbamX0BsZXNPZnbevuOLY B\/qfusklk8Z8\/PqFAPBpwVuzyXwWgPvgLK8KBzTto0af93d+RSzfxM5zZWOLJHQvNCDc6PU83+jF czpQG9aN7eKGMT1hySm6ZY3NU620HnbSkvNCodBjPT09JWe75pjDV3U988J7KGFV404JFCA0x0ox sL\/KLtCWX8PR5vyJ\/HrZBxcPan6FED7Y5R\/OKdWWiFJVmvZmvdf9t4CiLB3UhTchtmhCZ4BcQFe9 S\/s3XNq\/AQBCEQnTaEhJHqWb5siUaYU6dV2HXTXggnA4vAMRlQyRpzt\/DTzzwvMoReh2tgsN5+E0 h\/sfNLJEjpyFjwi+1f0NKhY5FjcWCEGvOGqZ757tVXlPAA8DKJgUUhWix6co84Ju13vVLu09FRiI 2+5mxdeF0P0hLekVYr1XYD1U2116ZKf+xgI7+zsA4PXXX3fa27MAbi3aggGOSlCo\/2rM8f7HZJbV PGeFNkx414T7ndOlOlbV3ffF2xcNyKQshAgCuB3AD2HL4T2wjTGtANbUuVzk0dQWv6Yt8yrKGrDc smSKEvj6EroIyvZU1NTFMMwlKBFzyOEChI72F7+z3buzV\/Ct4nGIhNVPal\/v7GnEADw+0LlJa5Bm A\/gJgAQz9yXo2XHkiOyiQZvXDWNIsEVpOYYLHcsXMjJSYhWC3JD\/ReHuPCTPJDR5kbl5qotG+5E5 JYAOZ0\/jqSWdRthRyzywLCsppVwvpeyQUsbTacE2l7vyJkeF0AAm2w+zdERFhPM6K3FU9CNowio8 tf6e\/jEKTp32ADxkLrp82OZqS0eF0BvxJgqkmO0DARzNs5Ll2Spl+3Jkwx\/uT+i1zgj9ZdCnlEz3 +9+MCqHT4IQeg12osni7SH+5ko3+MnTULOyq4OvOJnRCAaLOLIOPv\/\/Kj4Z7qrZoVAidRt2GlQDw asmGXXlWaEa\/lEYFV2giqG3ZToVdztx0JBxYNf\/bUSF0NkrWYOQeBswcUjOAnKB1M1Ntx3H0CdnM 8HZkhyo6NKb8x7B4xXBP0JaOCqGz8REc5IbmRGmNQLYeeqOYohgGRHSjVT4lgLAzcePppe8PzjL4 34AKoTNhmFHYSb+LguOlCd2lZ8oRG3eNzYYJkdpoPulxLm6UDBmroELoLLy59ivAycYwWprQnUYm UzeuyEoymaXic6iu+9C0uCxf8f9WVAidgSNtk3nJrKbFS6\/biGTpoZPoFTtChgGkTfOSHBtT\/rqk Im44QoXQ\/VE6TW+Es50uBABXtjrPyEwRxjH0nuDTN67WMcWx78aLwz0pXxdUCJ0LwjIA8RJtsuMM FWSJEQxCh5k5tXGgtyhBBqHDzmZ\/rabSgMob\/zeiQuhcGFYCdu2SosgkNHmzRRDJGlZmEdpArxxN 5sYkjt3ONoQvf\/bmRd8MR4vNgAqhc5Bctxywg0tLNMwgdFBmBW5IVvCBmamLE2mxA\/CY9kotyXFk ipP64xWkUSF0DppsR6WSMXKZumiqyZafmVUgy1IokOvwkRBFijlmdAU7y1MFDlEhdH6UDjHKJHQw WyKIGQH0i7Vj29zttuwVOuZM3FhjSXZUWrYCGxVC50dJEnFsI2FFMFtXETe8\/UNuObs2aNTZzL99 w6X7DPdcfK1QIXR+lEwRlqFaBmqyCW1aeYKn2U5qbgp7ynuczfz7J5+ww3DPxdcKFULnA6EbTlR3 aSclEcguPxE18uSM5lYABIsIFgExZ\/4bZZWuq6BC6PywVXelw5zSPBYhJ4ReBcCCrgjozjaEEiUS xFTQHxVC54O9em4o2a53hQ5lO+jp+Zz7eT3ACViq6jTN1zopeZMVqPymokLoPOCEAQAlKwqwBYAA Cmar5LpS+RIQCVuOdruQdDbrny9+v81Rwwo2okLoPKjrWg0A3SUbSoaokSBvdvq8sFHAhU6uRcyl OV2hFzMPLPv+fzMqhC6M0uXjLEBM7V94M6oXIvQKhN1uJJ3lg9ti021tyagQujCSJVswIJr754Rs SRbIecifQfe4EFUcLdGrnDSqIBsVQhdGvGQLCShN\/SO2OvQCZkBegxYRRlwrPe0EVBz6B4AKoQuj tKsyA8rI7IBXyQoWJwvZtQVgLgEcpIvbRkftcE\/A1xH\/D3cJ5RAkEXT\/AAAu4mVYSWZJSSoACAAA AAkAAAEEAAEAAAC0AAAAAQEEAAEAAAC0AAAAAgEDAAMAAAB6AAAAGgEFAAEAAACAAAAAGwEFAAEA AACIAAAAKAEDAAEAAAADAAAAMQECAA0AAACQAAAAMgECABQAAACeAAAAaYcEAAEAAACyAAAAxAAA AAgACAAIAHYAAAABAAAAdgAAAAEAAABHSU1QIDIuMTAuMTgAADIwMjA6MDM6MzAgMTE6Mzk6NTEA AQABoAMAAQAAAAEAAAAAAAAACAAAAQQAAQAAAAABAAABAQQAAQAAAAABAAACAQMAAwAAACoBAAAD AQMAAQAAAAYAAAAGAQMAAQAAAAYAAAAVAQMAAQAAAAMAAAABAgQAAQAAADABAAACAgQAAQAAALEt AAAAAAAACAAIAAgA\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL DBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL\/2wBDAQkJCQwLDBgN DRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL\/ wAARCAEAAQADASIAAhEBAxEB\/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL\/8QAtRAA AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY GRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP0 9fb3+Pn6\/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL\/8QAtREAAgECBAQDBAcFBAQA AQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2 Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOk paanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6\/9oADAMB AAIRAxEAPwD3+iiigAooooAKKKKACiiigAr4t8Sf8jXrP\/X\/AHH\/AKMavtKvi3xJ\/wAjXrP\/AF\/3 H\/oxqmRtR3ZmUUUVBuFFFFAH2\/a\/8ecH\/XNf5Ul5dw2FnNd3DFYYVLuQM4A9hS2v\/HnB\/wBc1\/lX AfEzXlS3i0i3kBdzvmKsQVA6A+oOT+VXKXKrnlYquqFJ1H0LHgbxfda1qd3bahInmuA8KIpwAM7h 3wOn513tfOunX0um6jb3kRbdDIr4DEbgDnBx2OK+gNOv4NTsIru3kWRJFzleme4\/OopyurM4Moxb rU3CbvJHzf8AHb\/kpH\/bhD\/6E9eaV6X8dv8AkpH\/AG4Q\/wDoT15pTlufRU\/hQUUUUigr6n+DH\/JL tM\/35v8A0a1fLFfU\/wAGP+SXaZ\/vzf8Ao1qqO5lW+E76iiirOcKKKKACiiigAooooAKKKKACiiig AooooAKKKKACvi3xJ\/yNes\/9f9x\/6MavtKvi3xJ\/yNes\/wDX\/cf+jGqZG1HdmZRRRUG4UUVNa2st 5cLDEpZiew6e9IUpKKu9j6517xVaeHNIhDMsl5JEpig3YJHTcfQdefwrxa6uHu7ua5lx5k0jSPgc ZJyf51c1jW7zXLlJ7wrlECIiDAQAdB396zqznLmZ8DmOOeJqWj8K2\/zCu1+HviT+zNQGmTCNba6c nzGbbsfHH1zgDHvXFUAkEEHBFJOzucmHryoVFUj0Ifjt\/wAlI\/7cIf8A0J680rr\/ABpFd6hPBqMs ks7RwrAxbHyov3egz3OSa5Ctea+p+gYLEwxFFVIBRRRTOoK+p\/gx\/wAku0z\/AH5v\/RrV8sV9T\/Bj \/kl2mf783\/o1qqO5lW+E76iiirOcKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvi3xJ\/yNes \/wDX\/cf+jGr7Sr4t8Sf8jXrP\/X\/cf+jGqZG1HdmZRRTotnmp5mdm4bseneoN3oT2VjPfziKFc+pP QV3Gl6VDpsOEGZCBuf1rHh17TtOtxHaW5b17E+54qOfxdIy\/uLdVb1c5\/wAKzd2fOY+GPxr9nCHL Dza19TrKK9Q13wlpGk+DL28trcmcxRkPIdxUllzj0615fUyi4uzPnMXhJ4WSjN6tXCiitrwnp8Gq eJbSzulLQyFtwHspP9KS1MKVN1JqC3bsYjKrqVYAg9Qa43XNCa0Zri2XMB6rnJU\/4V23xJng8I+M zpdnAWtfsscuGbLbmLA8+nArnIfFNnMhE8bR54x97I\/KqtKLPewmFzDAz54R5o9UnucdRWjqx055 fMsXPzH5k2EAVnVonc+spT9pBSs15MK+p\/gx\/wAku0z\/AH5v\/RrV8sV9T\/Bj\/kl2mf783\/o1quO5 Nb4TvqKKKs5wooooAKKKKACiiigAooooAKKKKACiiigAooooAK+LfEn\/ACNes\/8AX\/cf+jGr7Sr4 t8Sf8jXrP\/X\/AHH\/AKMapkbUd2ZlFFFQbhRRRQB9e+Mf+Sf3f\/XGL\/0Ja8Tr2zxh\/wAk\/u\/+uMX\/ AKEteJ1FX4j4nPf48fT9WFdF4Ek2eNdNXAO9nGfT5GNc7W94IOPHGke8kn\/op6y6r1X5nnYL\/eaf qvzOa+O3\/JSf+3CH\/wBCevNa9K+O3\/JSf+3CH\/0J681rplufolP4UFFFFIsK+p\/gx\/yS7TP9+b\/0 a1fLFfU\/wY\/5Jdpn+\/N\/6NaqjuZVvhO+oooqznCiiigAooooAKKKKACiiigAooooAKKKKACisrWv Eui+HYUm1fUoLON32K0jdWxnH5CvKtY+PyNqjWXhbQLnVjE0glcg4YKQA6bNxKn1IHUetAHsl1cx WVnPdTtthhjaRyBnCgZPH0FfE+sapbX\/AIj1K4gYtDPdzSRsQRuVnJBwenBr0dPDnxW8aN\/aGvap daZpzWZdrl5Fjj8sAnDRREHJBOcrnsa8hv7T7DeSwpMk8aOVSZPuuAeGGex60mrlxk46o0KKgtpv NjwfvDrU9ZnSndXCiiigZ9e+MP8Akn93\/wBcYv8A0Ja8Tr2bxrdQweBJIpZArzpGkYP8RBU4\/IGv Gair8R8Tnj\/fx9P1YV1fw90g6h4rtrwTCMafumKbc79ysmM54+9nv0rlK7\/4Vf8AIYv\/APr3H\/oQ qYfEjjyxJ4uF\/wCtDzn47f8AJSf+3CH\/ANCevNa9K+O3\/JSf+3CH\/wBCevNa2luff0\/hQUUVFPKI oye\/akW3ZXH713bdwz6Zr6p+DH\/JLtM\/35v\/AEa1fIkIkkmDLyeuTXrvgb41v4P0mx0S90bzbGF3 Mk8UmZCGYtwpwOpx1q0rM55y5on05RXGeEfih4a8ZKEsrlre7Jb\/AES5wsm1f4uCRjn1rswQRkci qMgooooAKKKKACiiigAooooAKKKyvEfiPTfC2jT6pqlwIbeIDsSWJIAAAyTyR9KAL93d29haS3d3 PHBbwqXklkYKqgdyT0FeGeO\/j\/HA0+m+F7dJi0YH9oPIcIxJ3AKBzxjDBup9q85+IHxZ1nxyv2Mh LPTI5WZIYchpByF8w5OSATwOOfpXn9AFvU9TvNZ1KfUNQuJLi6mOXkkYknAwOT6AAfhX0H8EvGfh u\/MemTaTpWmeIFiMSXFvbpG11GMcZAB3cAkZOdpP0+catWsdwjiaF3ideVdW2kfQ0DSb2PePit8X Y7hJdC8PXSNbMgE99DLnfnqiY7Yxk5OckYrwi5uY5EKhc+hqqQQcHIIpKViuaysiSGUxSBh07itV WDKCOhrGxVyymwfLY9elKSKpSs7MvUUVa03T7jVtTtdOtFDXNzIsUSswALE4HJqDoPpj4lf8ivpf \/XZf\/RZry6vVPiahTwzpqMMMs6g\/98GvK6zqfEfB5z\/vT9EFd\/8ACr\/kMX\/\/AF7j\/wBCFcBXf\/Cr \/kMX\/wD17j\/0IUofEjLK\/wDe4fP8mec\/Hb\/kpP8A24Q\/+hPXmtez\/tAaEItW03XIY7lzPE0Fw+3M UYQjZyBwTvbqeccdDXjFbS3PvqfwgTgZNZdxN5smf4R0qxeTYHlqeT1qjVRXUzqy6I0LQxLHgMNx 61p6feCwv4bo2ttdeU2fJuohJG3H8Sng1zlTR3MsfAOR6GhxCNRWs0emeONH+HsHgjT9S0GdbXWJ wrtYpdG4Zc4yr5Py4GecckYqHwl8b\/E\/hxkhvX\/tez3bmS4kIkxtwFV+doBAPQ9\/WvOJzI77pFx6 cVFVIye59n+CPiRoXjmEJYzCO\/SFZJrRz8yEj5tucFgDxuAxyPWuwr4Ft7q4tJPMtp5YXIxujcqc emRX0P8ADj46xXv2PRvFHyXjuIo71U+R8gBd+OjFs8gBRx0oEe50UisrqGUhlIyCDkEUtABRRRQA UUUUAUdZ1WDQ9FvdVuldoLOB55FjALFVBJAyQM8etfPWkvqXxy8fiXU4rqLw1Z8+TG+EXGSA3qzc gkcgEDPQ1o\/F\/wAQXXjTxfp\/gPQpwpEjJc7pMRyS5G0Nxkbdp\/76r2Xwf4YtvCPhm00i3WEtEg86 aOIR+dJgAuQM8nA7npQBwPij4DeFbvQ5l0K2Om6gnzxytcSOjYB+VtxbAyQcgZ4r5bAycV9G\/Gn4 qWlvp914V0Z7e6uJw0N9KDuWJcEFBg\/fz78YIIr5yoA63VfCtt4esLeG\/uWbXHfzJbWJlaOCMqCF c9fMyc4GRgjmsyqNrdBVEb8AdDSz3nVY\/wDvqoabZ0QlGMRL0R5BB+fvRBaK6h2bI9BVMnJyamt5 zC\/P3T1FOzsZqScrtGisMargKMVnTxmCXjp1BrQeeNF3Fhz0qhcXJm42gAUo3LqctjSsFlv3jhgj aSZztCKMkmvpn4XfDGPwvaLqerRI+rTKpCE7hbjrgf7XIyeenBr5l8L+Ibnwr4kstZtUR5bZy2xx kMCCCPyJr7R8Na\/a+J\/DtlrFoU8u5iVyiyB\/LYjJQkdweDVJWIlUbVjmfip\/yArL\/r5\/9lavJ69Z +Kn\/ACAbP\/r5\/wDZTXk1c9T4j4zOf96fogrv\/hV\/yGL\/AP69x\/6EK4Cu\/wDhV\/yGL\/8A69x\/6EKU PiRllf8AvcPn+TPStS02z1fT5rC\/gWe2mUo6N3BGOCOQfcc18n\/EzwongXxK1jHOJbeeIXFvySwU krhuOuVPrxivrDU9StdH0u61G9kMdtbRNLKwGSFUZPA68CvjX4heL5PGvi651T94tsAI7aN2zsQd ug6kk\/jXS1c+2jJx2OaRWuJvryTVt7KMj5PlNR2csaAhuGPc1dyMZzx61LbNYRi1qZkttJFkkAj1 FTWcAb943PoKZdXHmHYv3R+tQxStE2VP4VWrRHuqRquiuMMMiqU1my\/NHyPSrMNwkw44b0ptxcrE Nq4LfyqFdGsuVq7KEcMk0qxRRvJIxwEUZJPsK908Nfs7yXmg\/addv5bTUJAWiggYEJwMByVPOc5w SMV4lYaleaXqMWoWNw8F3C2+OVOqn1FfYnw38c2vjfw1FcC4hbUoVVbyFPlKPgHIU87T0B6HB54N aHMef+A\/HGr+CtdTwN42WUgMy2l+z7xjqMk8lSM4PUZUYFe4ggjIORXmnxl8A\/8ACYeHBfWpl\/tL TVd4Y44y5mUjmMDIwSQpzzjHTms\/4G+PV8Q6CPD90kMN3pUEUcWHAM0YBUEL1yoUZP8AtDpQB63R RRQAVk+J9Zi8PeGdQ1adJHitYS7LHjce3GfrWtXkf7RF5cWvgC0WCeWJZ79YpRG5UOnlyHa2OoyB wfQUAfM82qX0+pyak91IL2SQyNOh2tuPU5GMfhXo\/hv46+JNB0A6XNFFqDLkQ3M7EPGu0ADgfNgg nJyea8trpvAHhh\/F3jPT9KHlGJpBLOsjld0SkFwCBnJXOP5igDn7y7nv764vLqTzLi4kaWV8AbmY 5JwOOpqGu4+JPg208K+M7zTNOkdrdQsiK\/8ACGGdue+M45rixCxlEZGCTSuPlY+2g81sn7o6064t TGdyjK\/yq\/GgjQKKcRkYNTzam6pK1jFqWGB5m4HHc0soiW4wB8gPNaMRQoNmNvtTbM4Qu9ShcWxi AIJK1Xr2H4dfCubxnbT3uoMbfS2jZIpVPztJnGVHTAwc59uDXl+vaWui67eaal3BdrbyFBNA25G\/ HA5HQ+4NNbCmknoZ1ewfATxnHoviG40W\/udlpqAQQmRmISUE4VR0G7fyf9mpvBPwD1LV4Y7\/AMQT pZ2ksJeKGNi0u7PG4YwARk8Enp71w1h4OvrX4jx+G7hke4t7lUmeBztAyMkHAPcVNScacHOWyJSu 7H0t8UznQbIjp9p\/9lNeT16T8QJ93hmwgbJeOcAknOfkNebVwUMVTxVNVqb0Z8jncXHFtPsgrv8A 4Vf8hi\/\/AOvcf+hCuArY0LxZF4SjvrgwvPdXMXk20SttDSZzye3AJzg9K6KavJJHPljSxUG\/P8mZ \/wAePiF9svE8MaPeyrFAZF1EKoCu+QAmSM8YbOODuHWvDK7zWPBmpXiWBh82+1i7kImLSFnlkbB6 see\/JrL8W\/D7xD4LcHV7VRbs4jjuYnzHI2M4GcH16gdK7qtKVKXLPc+vw+Ip14c9N3X+Ry9TwiaR GVG4xyKn0bSL3XtXttL0+Lzbq4bbGmcdsk\/gAT+FfTEfwVsx8OIdFd4TrMKtKl2FwPNbBKlgMlMj GSMgdqyZvHfU+WmUqcEYNJXRa9oVzo+qXOm6hEIru3ba4\/DIP0IIP41hwwiSUpuGB+tCZUoNPQSC F5G+XgDvTZUaOQq3X1rVVFRdqjAqK5gEqZH3h0qebU0dL3TMrf8AB3im98I+I7TUrW4mjiWVPtKR 4PmxZ+ZcHjJGQD2z1FYGMHFWYbNn5b5RVt2MVFvY+i\/FP7Q2lWSLD4etGv5ztZpJQViClSSP724H A6Y614z4X8eahovj6LxNdzySSSyD7aYo0DSxkjcoGABnA6Yrk5F2SMvoabQI+\/Y3EkSSAYDKDj60 6uN+FerprHw60mX7f9suYohFcu0u91kHOGJ5zgjr6iuyoAK88+MPg3VvG3haz0\/SBCZ4r1Z286TY NoR16+uWFeh02SRIY2kkYKijJY9AKAPhnxD4Y1jwtqD2er2M1uwdkSRo2Ecu3GSjEAMORyPUV6X+ z1baV\/wlN9f310kF3bxolqryhA5k3KwwfvHp0o+LHxek168k0jw\/Iq6WiSQzTNFG\/wBp3YGVJBKr gHBBBO72FeQRSyQSpLE7RyIwZHQ4Kkcgg9jQB618bP8Akpl5\/wBcIf8A0AV5TdvunP8As8VZk1e7 u5jLfXE11KRgyyyF3PpyTmqDEsxJ6mpS1NJSXKkizDeMmFfketTT3SiLKMCW\/Ss+rNvbCaNiSQe1 DS3CMpPRFap7S7ezuY5lSOQIwby5BlWwehHpTJYXiPzDj1pba3lu7qG2gTfNM4jjXIGWJwBz71W5 GqZ6X4n+NWraz4cj0DTrO10+weyjt7gRRkHIXa6p8xAjI4AIyB3ry+vXdc+BOr6V4It9XgZ59TSM y3tkuCUBwcJjqVGc8nJHFeRsrIxVgVYHBBGCDQI9j+DnxWg8Lwy6N4hvVi0eONntmELu6yFwSo25 +U5c8jr37V61YPo\/ifWD4utLeXzHhFtDNKpXfECWDKCAQDuz+Arxn4U\/DRNcEXiDV1zp6s3kQhv9 cwOMnHIAIb0OQO1fQEcaRRhI1CoBgADAFfE8SZzBxeDovX7T\/T\/M68PSfxsr6jZR6jYS2shIWQYy Prn+leVatpNxpN20Mynbk7Hxwwr1+qV\/YWmpwNBcBWHqDyDXh5Nm0sFJwkrwe\/l5nJmuVwxsbp2m tn+h48qljhRk1bhsYllWd1BlUYB9K3tU8OSaPl4wZIP745I+tZdftWTYbDTgsRCam326H51iqdbD zdOonFliwvZdOvobuEKZIm3KGGRn3p3xb+L5srRNE8PSL59xEGuLnH3FJIKAdmOB1B4NVa828f6E 8V2dVhUmOTAl9j0z\/IV05rQ54KolqvyPU4fxfs6royektvX\/AIJyuj6ve6Dq9tqmnS+Vd27bo3xn tgj8QSPxr6D8L\/tC6bNol0\/iWIQanCpaJLWJtlx1wq\/e2ngDLHHNfN1dVb\/D\/W5vBN54qe3eKxg2 eUCuWmUkhmAHICjBJIwQcivnj7Ej8b+NtS8ba7Lf3r7YQStvABgRJ6f1PPUmuaRijBh1FJSqrMcK MmgZrRyrJGHyAO\/tVea8C8R8n1qtJHJCoDHg9hUNSoo1lUexbs2DzsWwWPOav1kwvslVu2eauyXk acL8xpSWo6cko6la8BFwT2IFV6fJI0rlmr6C+Bt54Jv1EP8AZMNr4htoAsksjlhcIeCygsRngE8D G4YqkYyd3c6P4AaVqOk+CL6HUrG5s5ZNQaREuImjZlMcYyAwHHB59q9XpBjAx07YpaYgr51+IXj3 UvHfi5fAmgJNFZG68i4kjJ3z7R+8yvHyr8\/HOdoNejfGjxM3hz4f3Itrxra\/vGWG3KpksMjeM4IH ybuv4c189+B\/iXf+BRctZaZp9zPcvukublXaXHHy5DDjIz9SaAPfofg34E0nw1Lb6hZxvGsaSXN9 NIUbKD5mDZzGDySAQK+ZPFq6Inim\/Tw7u\/slXAt9zEnAUZ5PJ+bNdj8Q\/jBqXjSyttPtVaysREPt UajBml4zzk\/KMcDjqc5rzSgCWGVY2+ZAw96uD7NOuAFB\/I1ndauQ2RYZkJGegFSzSDe1ivMiI+Ef dV21ljESoGAI9aqTW7Qt6r2NRKrMcKCT7U7XQJuMtjYYAqQwBHvVfR9Wk0LXINTt7e2nltnLJHcx +ZGTggEr7ZyPQgGozHcRQn5sjHI9Kpd6UUOo720PqTwB8cdL8Rq1pr5ttJvIo1PmyTgRTnGGIyAF Oei5J9+K8I1SXT\/FXxJupYbWOxsbi54ht8MoAwCRgD72Cfxrkq9M8O\/D3XNEubHWNVt1t4Jo90cb OPMGQfvJ1X8RUV58lOUisLS9tWjT7s9g8BanYTah\/wAIpp9i1rDZ2zTBzwGG5c4GO5fPWu4u7MWo U7y24ntjFeRWd3Np94l3bPsmTow9PSvQNJ8UvrsJju0ijuY2z+7yFYHpjJJzxXxOPweCWDqVFH95 ve7fVXPaxWX1aEueDvD8jTrzHxHc3Nlr9wIJ5Itx3fI2OpNenV5h4zXb4ik90U1w8MWeJlF9V+p8 txE3HCqUXZpmd\/a+pTYie+uGRjgqXODU46Vn2wzOPzrQ6c1+w5BQjToylFWuz8\/xFSdSSUm3+Jr+ HNFXXtTa0acwgRl9wXd0I4\/WsHxeNK0rWpvDtxdR3TtGC4QbvLz0Dj+FuM49CDUb+KL3Qblm0uaE SywSRNIVJaPOMMvbIweoIrmr69udTv5b68lM1zKQXkIALYGO30rurVKvtXytcvY+pyvI4VsNGdZO Mr3vs\/IqeBdF8JD4gSad4ncNZSJ\/ohZyi+buBUMc4xjI54PSvorxn4p8N+CvC1xBeR2bRrbGKDSv lUTLt2iMJg\/Ieh4IA7Yr5U1\/T7ya7N1a208qxRmSV4kLCNRj5iR0HuawLi8ubtg1zcTTMOhkcsR+ dfPV48lRpH0Eo8rsXrSCLXvFcFuiC0hv75UVIwCIVd8YHToD7dK6nxx4Ng8DeJG0mG7e6AiSTzXT aee2MmuDR2R1dGKspyGBwQa6HxD4q1DxLdQXdxBEjw20dsDGG5CLgE5J5rF7FQdnczr1QYck8g8V SiheY\/L09aazs5yxJNOhWRnHl5zQlZA5KUrlsWcSLmRs\/pVSURhv3ZJFPuEmU5kJI9agoQTa2SOg 8HeE7jxlryaVa3lpbSsu4faZNpcAjIQYO5sZOPQGvWta\/Z5uNJ0qa\/0HWp7rUrceZFC0QjL45wCC fm9Pf0rwq2uZ7O5jubaVopo23I6nBBr6P8CfHrR5tEWDxddta6hAqqZ1gd1uOvzYQHB4BPAHPFMg 2PhN8R11+2bQdamWDXrWRohFI\/zTBRkkZ6kYbIGcBc16nXx5428Y6XqPxFXxT4ejvI5lmSWQXBAR 2TCjaFwQpVRkHnk9K+qvCniC28UeGbHWLWRZEuIxvKoygOOHADc4DAj8KAPnX9oXVvtnjyCxhvWl gtrNBJAJCUjm3Pn5egbaV59MV5HX2N4s+E3hjxdezaheWzx6hJF5YmicqN3OGZRjccnv1wBXlOr\/ ALN2q29uj6RrlvezFwGjngMAC4PO4M2TnHGO\/WgC\/wDAfwVZ6p4a1i91nTFltr4fZ4ZGb78eGWQD ByDnvwfStbxn8EvBFhptxq6Xdxo1tbQcqJt6M+flJMmTySowDXP6HcfEf4RK1jdaR\/aegwr9onaB WdIk+YsFfgKe5yDWZ8VPi9a+MfDdlpWlJPAs22a9UtxkEnyjkDOCFbI4oA8ktCgm+f8ACtMkAZPS sWppLl5IwhPA6+9S1c1hUUVYkubnzMov3e5pbOVVOwjBPQ1UqaC3aZvRR3ptKxKlJyuX5Z0iHzHn 0FZjsGcsBgE9KWVGjkKt1qfTtNvdWv4rHT7WW6upc7IYl3M2AScD6AmhKwTm5aM7DwV4f8KavJYX Gra1b2SwTMNRtr6XyxMh+55JXk8Z3ZI5xivWNa15PEd\/9ugL\/ZdoSAOoBCD1xnvk\/jXn9t8Hr3TL G01DxBcpbvOFeOxWMszLjLBzkbGGRxg13um6He38LG0t28iINmQghBgZIz64\/nXmZhU5rUYas97J aHs08TU0Wy\/r8CjU1qtw04+zb\/MHI2HBqGtzwmwXWxk9Y2A\/SvCxFT2dKU7Xsj6GtPkpuVr2NbTN T1lNqXFm8y\/3gQCK5vxr82sLKUZC0YyrdRxXpdeeePRjU4D6qf6V5eRYiNXH3jBRunsfn3E041cE 5KKWq2ObtVLM2Dg46+lQXlhf3DfLdjb6Elf5CrdmPkY+pq1X7RltFfVI363Z+fYfH1cLUvTS+aT\/ AOCcdd2slnN5UuN2M8GoKs6hKZr6Vt24BiFPtTLS2kvb2C0ix5k8ixpuOBljgZ\/Om7I\/TaDm6UXU 3tqdH4CNvca\/JpN5bCe01W2ktJlMhTCn5uo5\/hx1HWvNdc8Aa74Z0+S71yGKx+YLDFJKrPOc87Qp P3eCc46966rUtPu9Kv57G6jeC5gfBBBB4PDDPY9Qe4rmfFHhrxIofxDqG\/ULe5Cyy6hH8yBm42uR wHHGR24rysdHVVFszGutVJGDo39lf2tAdb+1\/wBnAkzfZFUyng4wGIHXGeema6zxhbeG7fVYE8Ls G05rWJj+8LnzCPm3ZJwc9QDgVwtSwSSI+I+p7V57V0ZwlZkt4sSsNow3fFS2cke3YBhv51ScMHO\/ O73pASDkdaLaD57SvY2GUMCCMisyWELP5akc\/pUy3p8ogj5x0qpuO7dnnrSimiqkoux6v4F+CF94 r0+w1m51K2h0q4Lh1iZvPAUsvAK7eo9elY\/xT+HP\/CA6rapaPcT6bcRfJcTlcmQE7lwPQbT07161 8KfiH4Y0j4W20OpavbW1zYmXzoJHAkbMjMNinl+COgPpXE\/Ez4iaV8RxFomk6PeXF5FcYsLhJD+8 LEZ\/d4zkgYx2qjJ76HjdfQX7OXiVGTUPDUrXTzAG7hycxRxgqrAc5BLPnAGOted6J8G\/GutSyx\/2 W1h5YB3X4aINnspwcmvZfhP8I7\/wPqr61qWpQyXMts9s1rFGSq5dSGEmeeEHG0dfbkEeuUUUUAIy hlKsAQeoNfNPxs+GUGgSN4l0gMtlO4W4twOIWPG4H0J2jHJyTX0vVXUtPg1XTbixuY0kimQoQ6Bh 7HB9Dz+FAHwV1NXJrXFurKPmUc1s+NvCc3g3xbdaTNJHIiNviZCT+7blc5A5xjPvVTrxUydjWnFN O5kwxGWQL271qIoRQqjgVSglSOdwRgE9auSOEjL+gpSLppJXIJkE8oQD7v3jX1N8GfD2k2XgPS9W t7GJNQuYnWa4A+ZwJGAz+Qr5fhTZGM\/ePJNfWnwj\/wCSW6H\/ANc5P\/Rr04k1Fpc574tLJa3unXEU 8gadJFZeCBt24I\/76\/lW34O8ZaNqlrHo32b7E6w48s\/6t+DkKck9PXHWue+L19FNqen2ShvNt43d sjjD7cf+gmvN68+dT2daTifY4TLoY3Lacal01ez+bt66HY6pCtvqt3EibI1mYIP9nJxj2xTtJnNv qts4OB5ig\/TNc5Hq0\/Hns82Bjc7EnHbk1dh1GFiCH2MDxnivIr0XJSVtGejLDTUOSWuh7CDkA+tc D4\/H+nWp\/wBlv6V3FnMtxZxSqchl61xHxA\/4+7P\/AHW\/pXzXDyccwUX2Z+bcQK2Bmn3X5nO2oxD9 TRez\/Z7OSXuBxT4BiFPpWR4hndY44QuQTu4P+fWv3mivZ4WK8kfA5ZQVfGxi9k7v5GFXU+AtT0rR fEP9p6peJCkEbeXEY2YysVIwMAgEcda49pm6YxUZYsck1hKlzxcX1P0Ori42aid146+In\/CWQraW 1gtvapKkyySAeaSFIIbBIx836CvUvhxosun+Frdpbrz7S7giuI4HUfumYEt25zkdc9K+cq+pvBv\/ ACJOh\/8AXjD\/AOgCuDGwjSpKEdrnNTnJ3TZ5V8SPgZbXsV9rfhrzhqDuJWsSyiNhjDbM4wf4uSe\/ qK8AtoHgnmimjaOeNijI4wykdQQehzX3hXyz8c7WG0+I0stvCke63jdwihdxOSScdST3ryXsdEPi POp4BMn+0OhrMZSrFT1FbIORkVRmWOS8VQev3qmLNasU9URrbE27SHr1FV62do27ccYxWZDCZZsd geaaZE4Wskeh\/Cz4W3fjXUEvr6OWDQ4SS03A85gfuLnt1ycEcEZzX1JpOgaToVmtppmnwW0CsWVE XgE9SM1yvwaAX4V6OAMAGf8A9HPXeVRm1Z2CiiigQUUUUAFFFFAHy38cYxJ8SbxT\/wA8If8A0AV5 1GxK7G++Otej\/Gz\/AJKZef8AXCH\/ANAFecSxlvmQ4cdKze50xXupoyn++31qRZm2iMn5c02UMJDu XBplaHPszar6v+EhA+FmiEnAEcnP\/bV6+R7a4Ei7WPzD9a+nPCOsrofwK0y581UmaKRIQ38TGV+P yBrO\/Lds6lB1pRhDduxx\/jfVX1bxXeSlomSFzDE0XRkUnBzk5PNc7XUeEvBl34jvsSpLb2SANJKR gkHoFz1zzz04rC1Own0vUriyuI2jkifBViCcdR046Yry5qT999T9Fw1WhF\/VacruCQljFHNOUkz0 yK1ktYY+VjGfWsOCQxTK47GuhBBAI6GuOtdMeI5k99D0Xw7L5miW\/OSoIP51y\/xA\/wCPmy\/3X\/8A Za3PB8pfS5FP8MpA+mBWH8QD\/pVn\/uv\/AOy187lcOTOGvX8j804ojy4aqvNfmjBQYRR7VzOsymTU ZFzlUwB+QrpmYJGWPRRmuNnfzLiR853MT+tfuVbSMYnynCtG9WpWfRW+8hkICGqtSTNlselR1nFW R9BiqnPPToFfRnwoup7vwHam4laQxyPEhb+FF4A+gFeew\/CS9ufBcGpxNKursDI1pIylSmTt2kdy Np5Pc1e+C+pvaa1qOi3C3IkmjWREY\/JFsJ3ZUngneOg5xz2rgxcoVqT5HflZFNOMtep7VXzH8dAG +IsgPQ2kX9a+nK+XPj1cIvxBl2sCfssQ4PQ814sjrpuzuzyw3R8gRqMHGCahjP71T70ynw4Eqk9B RYV22rmnNJsjOPvHgCkgi8qPHc8mmxxs7ebJ1\/hHpU9R5HSld3Pqr4N\/8ks0j6z\/APo567uuE+Df \/JLNI+s\/\/o567urWxzS+JhRRRTJCiiigAooooA+XfjZ\/yUy8\/wCuEP8A6AK88r0P42f8lMvP+uEP \/oArzys3udcPhQx4kkGGUGqz2I6o2PYirlFJNoHBPczjaTIcjGfY1638MvEWo2M2iaB4k0qW+0W+ kkm08yfNsKhgxC8hlznjjBJPavNa+rvhIqn4XaGSoJEcnOP+mr1S10ZnJOnaUHZnaRRRwQpDDGsc aKFREGAoHQAdhXk\/xZ0cQ31tq0axokyiFwq4ZnG47j68YH4V63XHfEvSv7R8KPMizPNauskaRDO7 JCnIwTgAk8elRXjzU2duT4h0cbCTe7s\/meGVu2EnmWq+o4rCrS0qTl0PsRXiVleJ+hYiN4XPQ\/Bj \/ubhP9rP8qy\/H3N7Zj\/Zb+lXvBbfv7pf9kH9aoePDnUbUeit\/SvDy+P\/AAt\/L9D8z4v0oVPl+aOd v5BFYTsf7uPz4rjmO1Sa6jW326a6\/wB4j+dcnO3AFftFbWdj5\/h5eyy+VTq2\/wDIgJyc11Xw\/wDD TeJPFFvE6E2luwlnYxh1wOQrA9mxiuVr3j4PeG5NL0ObVrjest+V8tdwK+UBlTgcg5LdT2HFcuLq +zpNrc7ILmkekIixoqIoVFACqowAPQVlx+GtKh8QvrsVsI794zG7pwGB6kjoT79a1qK+fUmtjqPH \/iN8bdN0O2u9L8PyJd6uknlO\/Plw8ZLAjhiPu4yMH6Yr5mnmuL67muZ3ea4mdpJJGOWdickk+pJr 7Sm+HPg24mkmm8N6dJLIxd3aEEsSckmvn34vaPp2h+OWs9LsobS2FvGwihXauTnJxUt2KhHmdjzF LOVjyNo96uQ2yRc4y3qamoqHJs6I00gooopFn1V8G\/8AklmkfWf\/ANHPXd1wnwb\/AOSWaR9Z\/wD0 c9d3Wi2OSXxMKKKKZIUUUUAFFFFAHy78bP8Akpl5\/wBcIf8A0AV55Xofxs\/5KZef9cIf\/QBXnlZv c64fCgooopFBX1h8I\/8Akluh\/wDXOT\/0a9fJ9fWHwj\/5Jbof\/XOT\/wBGvVRMq2x2tQ3kTT2NxCmN 0kbKM+pGKmoqzBOzuj5hvLZ7K9ntZCDJBI0bFehKnBx+VSae+y7X34rR8XafPp3irUYrjZukmaZd pz8rksPxwax4W2zxt6MDXh1I7o\/Vac\/a0VK97o9K8Gf8fdz\/ALg\/nWd46bOrQr6L\/hWn4LX97cv6 qBWL44fdr5X+7GteFl\/\/ACOJPtH\/ACPzHjKVqMl3aOY8QHFtCPVjXLSHLmum8RN+4h\/E1yx5Oa\/Y 5azbPCy73cvpRXm\/xZYsrK51G9hs7SIy3EzbY0BALH05r6w02wt9L023sbWPy4IECIm4nA+p5rwD 4S6fBf8AjiMzhibaFriPBx84KgZ9uTX0TXj5jUvNQ7HfRWlwooorzTYK+ZPjn\/yUZ\/8Ar1i\/rX03 XzJ8c\/8Akoz\/APXrF\/WplsaUviPNaKKKg6QooooA+qvg3\/ySzSPrP\/6Oeu7rhPg3\/wAks0j6z\/8A o567utFsckviYUUUUyQooooAKKKKAPl342f8lMvP+uEP\/oArzyvQ\/jZ\/yUy8\/wCuEP8A6AK88rN7 nXD4UFFFFIoK+sPhH\/yS3Q\/+ucn\/AKNevk+vrD4R\/wDJLdD\/AOucn\/o16qJlW2O1oooqznPC\/ib\/ AMjvc\/8AXKP\/ANBFcfXpXxfijS\/0yRY1V3jk3sBgtgrjJ715rXkV1aoz9Lyipz4Gm\/K33aHqvglc 2U0nq2P0Fcz4xbd4hl9lArsfB8PlaBE3\/PQ7\/wCn9K4bxNJ5mv3R\/uuV\/ImvncofPmdaS6Kx+Z8Y zTg1\/e\/I57xC2bO3PrXN1v66+bG3HcOR+lYFfr1CfPTUu6PHy+XNhYLt\/mz2L4GwRMmsTlAZUaJV buAQ2R+gr2CuD+EUEUfgSCZIkWWWWTe4UBnwxxk98V3leFipc1aTPXgrRQUUUVzlBXzJ8c\/+SjP\/ ANesX9a+m6+ZPjn\/AMlGf\/r1i\/rUy2NKXxHmtFFFQdIUUUUAfVXwb\/5JZpH1n\/8ARz13dcJ8G\/8A klmkfWf\/ANHPXd1otjkl8TCiiimSf\/\/ZAAsr2l4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjYtMDQt MjFUMDY6NTc6NTkrMDA6MDADRxOXAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI2LTA0LTIxVDA2OjU3 OjU5KzAwOjAwchqrKwAAABp0RVh0ZXhpZjpCaXRzUGVyU2FtcGxlADgsIDgsIDgS7T4nAAAAEXRF WHRleGlmOkNvbG9yU3BhY2UAMQ+bAkkAAAAhdEVYdGV4aWY6RGF0ZVRpbWUAMjAyMDowMzozMCAx MTozOTo1MeMmUnQAAAATdEVYdGV4aWY6RXhpZk9mZnNldAAxNzjc1lZ+AAAAFHRFWHRleGlmOklt YWdlTGVuZ3RoADE4MLVAow0AAAATdEVYdGV4aWY6SW1hZ2VXaWR0aAAxODBmPLOAAAAAGnRFWHRl eGlmOlNvZnR3YXJlAEdJTVAgMi4xMC4xOCPmXTMAAAAkdEVYdGV4aWY6dGh1bWJuYWlsOkJpdHNQ ZXJTYW1wbGUAOCwgOCwgOCAb9FMAAAAcdEVYdGV4aWY6dGh1bWJuYWlsOkNvbXByZXNzaW9uADb5 ZXBXAAAAHnRFWHRleGlmOnRodW1ibmFpbDpJbWFnZUxlbmd0aAAyNTZQcDADAAAAHXRFWHRleGlm OnRodW1ibmFpbDpJbWFnZVdpZHRoADI1NogG+hQAAAAodEVYdGV4aWY6dGh1bWJuYWlsOkpQRUdJ bnRlcmNoYW5nZUZvcm1hdAAzMDSsR89oAAAAMHRFWHRleGlmOnRodW1ibmFpbDpKUEVHSW50ZXJj aGFuZ2VGb3JtYXRMZW5ndGgAMTE2OTdg2ceVAAAAKnRFWHRleGlmOnRodW1ibmFpbDpQaG90b21l dHJpY0ludGVycHJldGF0aW9uADYSFYoaAAAAIHRFWHRleGlmOnRodW1ibmFpbDpTYW1wbGVzUGVy UGl4ZWwAM+HXzVoAAAAbdEVYdGljYzpjb3B5cmlnaHQAUHVibGljIERvbWFpbraRMVsAAAAidEVY dGljYzpkZXNjcmlwdGlvbgBHSU1QIGJ1aWx0LWluIHNSR0JMZ0ETAAAAFXRFWHRpY2M6bWFudWZh Y3R1cmVyAEdJTVBMnpDKAAAADnRFWHRpY2M6bW9kZWwAc1JHQltgSUMAAAAASUVORK5CYII= \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Automatic Detection of Race-Conditions<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/baer\">Michael Baer<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2016<br \/><strong>End date: <\/strong>30.09.2021<br \/><strong>Acronym: <\/strong>AuDeRace<br \/><strong>URL: <\/strong><a href=\"http:\/\/www2.informatik.uni-erlangen.de\/research\/AuDeRace\/\">http:\/\/www2.informatik.uni-erlangen.de\/research\/AuDeRace\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\">Large software projects with hundreds of developers are difficult to review and often contain many bugs. Automatic tests are a well established technique to test sequential and deterministic software. They test the whole project (system test) or each module by itself (unit test). However, recent software contains more and more parallelism. This introduces several new bug patterns, like deadlocks and concurrent memory accesses, that are harder or even impossible to be detected reliably using conventional test methods. Whether the faulty behavior actually shows at runtime depends on the concrete scheduling of the threads which is indeterministic and varies between individual executions depending on the underlaying system. Due to this unpredictable behavior such bugs do not necessarily manifest in an arbitrary test run or may never arise in the testing environment at all. As a result, conventional tests are not well suited for modern, concurrent software.<br \/>With the project AuDeRace, we develop methods to efficiently and reliably detect concurrent bugs while keeping the additional effort for developers as low as possible. In an initial approach we define a testing framework that allows the specification of a scheduling plan to regain deterministic execution. However, a major problem still remains: The developer has to identify and implement well suited test cases that cover the potential fault in the program and execute them in a special deterministic way in order to trigger the failure. Especially in the context of concurrency, it is difficult to visualize the behavior of a program and identify the problematic parts. To overcome this, the critical parts shall automatically be narrowed down before even writing dedicated test cases. Existing approaches and tools for this purpose generate too many false positives or the analysis is very time consuming, making their application to real world code prohibitive. The goal of this project is to generate less false positives and increase the analysis speed by combining existing static and dynamic analysis. This allows for the efficient use in not only small example codes but also large and complex software projects.<br \/><br \/>In 2016 existing approaches were studied regarding their usability as a starting basis for our project. The most promising method uses model checking and predefined assertions to construct thread schedules that trigger the faulty behavior. However, the approach is currently infeasible for larger projects because only very small codes could be analyzed in reasonable time. Therefore, we focused on automatically detecting and removing statements that are unrelated to the parallelism respectively to the potentially faulty code parts in order to decrease the execution time of the preliminary static analysis.<br \/><br \/>In 2017 the work on automatically reducing programs to speed up furher analysis was continued. Furthermore, we evaluated whether the concept of mutation testing can be applied to parallel software as well. The results indicate that this extension is indeed possible to rate tests qualitativly. However, to complete the analysis for larger programs in reasonable time, a few heuristics need to be applied during the process.<br \/><br \/>In 2018 the focus moved to a deterministic execution of test cases. A concept to reproduce results during the execution was developed: In addition to the test case, a schedule specifies the dynamic behaviour of the threads. Instrumenting the code at previously marked positions and other relevant byte code instructions allows a separate control thread to enforce the schedule. When modifying the source code, the marked positions in the code need to be updated as well to keep them consistent with the test cases. A merging technique similar to the ones used in version control systems shall be used to automatically update the positions.<br \/><br \/><div>Up to 2019, this project was a contribution of the Chair of Computer Science 2 (Programming Systems) to the IZ ESI (Embedded Systems Initiative, http:\/\/www.esi.fau.de\/ ). In this context, several improvements for the quality of concurrent software were analyzed. The take-away result was that different approaches are applicable and required, but they also often suffer from long analysis times.<\/div><div><br \/><\/div><div>Beyond the ESI project, we improved the usefulness of mutation testing by developing a tool for equivalence detection and test case generation. A submitted paper got accepted.<\/div><div><br \/><\/div><div>In 2020, we studied and evaluated approaches to detect external race conditions. Whereas in classic race conditions, several threads of the analyzed software fail to work together properly, in external race conditions, software interacts with independent, unknown components. Examples are other programs, the operating system, or even malicious code written by attackers who interferes with the analyzed software.<\/div><div><br \/><\/div><div>In 2021, we developed a system to statically detect race conditions when using external resources. A common pattern is to check properties of files and later access the files again, assuming the previously determined properties still hold. However, if the file is modified in the meantime, numerous problems can occur (time-of-check to time-of-use). Besides unexpected result, attackers can even modify the file to enforce malicious behavior and compromise the system. With our approach, such vulnerable codes can be detected in the software.<br \/><\/div><\/p><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/baer\">Baer M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Oster N.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/233530924?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">MutantDistiller: Using Symbolic Execution for Automatic Detection of Equivalent Mutants and Generation of Mutant Killing Tests<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">15th International Workshop on Mutation Analysis (Mutation 2020)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Porto<\/span><\/span>, <span itemprop=\"startDate\" content=\"2020-10-24\">24.10.2020<\/span> - <span itemprop=\"endDate\" content=\"2020-10-24\">24.10.2020<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">2020 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW)<\/span> <span itemprop=\"datePublished\">2020<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/ICSTW50294.2020.00055' target='blank' itemprop=\"sameAs\">10.1109\/ICSTW50294.2020.00055<\/a><br \/>URL: <a href='https:\/\/mutation-workshop.github.io\/2020\/' target='blank' itemprop=\"url\">https:\/\/mutation-workshop.github.io\/2020\/<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/233530924.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/baer\">Baer M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/118601824?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Verbesserung von Mutationstests mit Hilfe der symbolischen Ausf\u00fchrung<\/a><\/strong><\/span> (Master thesis, <span itemprop=\"datePublished\">2015<\/span>)<br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/118601824.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"autoparr\" data-href=\"#autoparr\" type=\"button\" aria-expanded=\"false\" aria-controls=\"autoparr-section\" id=\"autoparr\">AutoParR &#8211; Automatische Code-Parallelisierung zur Laufzeit<\/button><\/h2><div id=\"autoparr-section\" class=\"accordion-body \" aria-labelledby=\"autoparr\" role=\"region\" name=\"autoparr\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td>&nbsp;<\/td><td><div class=\"cris-projects\"><h3>Automatic Code Parallelization at Runtime<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/daniel-brinkers\">Daniel Brinkers<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2011<br \/><strong>End date: <\/strong>30.04.2016<br \/><strong>Acronym: <\/strong>AutoParR<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Our automatic parallelization efforts are currently focused on dynamic parallelization. While a program is running, it is analyzed to find loops where parallelization can help performance. Our current idea is to run long-running loops three times. The first two runs analyze the memory accesses of the loop and can both run in parallel. The first run stores in a shared data structure for every memory address in which loop iteration a write access happens. We do not need any synchronization for this data structure, only the guarantee that one value is written to memory, when two concurrent writes happen. In the second pass we check for every memory access, if it has a dependency to one of the stored write accesses. A write access is part of any data-dependency, so we can find all types of data dependencies. If we do not find any, the loop is actually run in parallel. If we find dependencies, the loop is executed sequentially. We can execute the analyses in parallel to a modified sequential execution of the first loop iterations.<br \/><br \/>In 2014 we enhanced the analysis so that a loop can start running while the remainder of the loop is analyzed to see if it can be run in parallel. To allow the sequential loop to execute while the tail of the loop is analyzed we needed to instrument the sequential loop slightly. The result is that the loop runs only slightly slower if the loop cannot be parallelized, but if the loop is found to be parallelizable, speedup is near to linear.<br \/><br \/>Finally, we also created a new language that uses the above library for run-time parallelization. Any loops that the programmer marked as candidates for run-time parallelization are analyzed for constructs that the library cannot yet handle. If the loop is clean, code is generated that uses the library's macros.<br \/><br \/>The project is a contribution of the Chair of Computer Science 2 (Programming Systems) to the IZ ESI (Embedded Systems Initiative, http:\/\/www.esi-anwendungszentrum.de\/)<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"dfd\" data-href=\"#dfd\" type=\"button\" aria-expanded=\"false\" aria-controls=\"dfd-section\" id=\"dfd\">DfD &#8211; Design for Diagnosability<\/button><\/h2><div id=\"dfd-section\" class=\"accordion-body \" aria-labelledby=\"dfd\" role=\"region\" name=\"dfd\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/DfD_small_image.png\" alt=\"Design for Diagnosability\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Design for Diagnosability<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/lautenschlager\">Florian Lautenschlager<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/adersberger\">Josef Adersberger<\/a><\/span><br \/><strong>Start date: <\/strong>15.05.2013<br \/><strong>End date: <\/strong>31.07.2016<br \/><strong>Extension Date: <\/strong>30.09.2018<br \/><strong>Acronym: <\/strong>DfD<br \/><strong>Funding source: <\/strong>Bayerisches Staatsministerium f\u00fcr Wirtschaft und Medien, Energie und Technologie (StMWIVT) (ab 10\/2013)<br \/><strong>URL: <\/strong><a href=\"http:\/\/www2.informatik.uni-erlangen.de\/research\/DfD\/\">http:\/\/www2.informatik.uni-erlangen.de\/research\/DfD\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\">Many software systems behave obtrusively during the test phase or even in normal operation. The diagnosis and the therapy of such runtime anomalies is often time consuming and complex, up to being impossible. There are several possible consequences for using the software system: long response times, inexplicable behaviors, and crashes. The longer the consequences remain unresolved, the higher is the accumulated economic damage.<br \/>\"Design for Diagnosability\" is a tool chain targeted towards increasing the diagnosability of software systems. By using the tool chain that consists of modeling languages, components, and tools, runtime anomalies can easily be identified and solved, ideally already while developing the software system. Our cooperation partner QAware GmbH provides a tool called Software EKG that enables developers to explore runtime metrics of software systems by visualizing them as time series.<br \/>The research project Design for Diagnosability enhances the eco-system of the existing Software EKG. The Software-Blackbox measures technical and functional runtime values of a software system in a minimally intrusive way. We store the measured values as time series in a newly developed time series database, called Chronix. Chronix is an extremely efficient storage of time series that optimizes disk space as well as response times. Chronix is an open source project (www.chronix.io) and is free to use for everyone.<br \/>The newly developed Time-Series-API analyzes these values, e.g., by means of an outlier detection mechanism. The Time-Series-API provides multiple additional building blocks to implement further strategies for identifying runtime anomalies.<br \/>The mentioned tools in combination with the existing Software EKG will become the so-called Dynamic Analysis Workbench. This tool enables developers to diagnose, explain, and fix any occurring runtime anomalies both quickly and reliably. It will provide diagnosis plans to localize and identify the root causes of runtime anomalies. The full tool chain aims at increasing the quality of software systems, particularly with respect to the metrics mean-time-to-repair and mean-time-between-defects.<br \/><br \/>Before we have successfully completed the project in July 2016, we have made the following contributions:<br \/><ul><li>We have linked Chronix and a framework for distributed data processing so that our anomaly analyses now scale to huge sets of time series data.<\/li><li>We extended Chronix with additional components. Among them are, for example, a more efficient storage model, some adapters for more time series databases, additional server-side analysis functions, and some new time series types.<\/li><li>We have published our benchmark for time series databases.<\/li><li>We have investigated and implemented an approach to link application-level calls, e.g., a login of a user, down to the resulting calls on the OS level.<br \/><\/li><\/ul><br \/>Although funding expired in 2016, we made further contributions in 2017:<br \/><ul><li>We presented Chronix at the FAST conference in Santa Clara, CA in February 2017.<\/li><li>We have equipped Chronix with interfaces to attach time series databases that are used in the industry.<\/li><li>We have developed an approach that determines the ideal cluster configuration (w.r.t. processing time and costs) for a given analysis (specific function and set of time series).<\/li><li>We have expanded Spark, a framework for distributed processing of large-scale data, so that it now can make use of GPUs in distributed time series analyses. We presented the results at the Apache Big Data Conference in Miami, Florida, in May 2017.<br \/><\/li><\/ul><br \/>We continued to make further contributions to the research project in 2018:<br \/><ul><li>We have published a paper at PROFES 2018 that describes techniques and insights on how runtime data in a large software project can be offered to all project participants at the development stage to improve their collaboration.<\/li><li>We have maintained the Chronix Open Source project and stabilized it further (updating versions, fixing bugs, etc.).<br \/><\/li><\/ul><\/p><h3>External Partners: <\/h3><ul><li>QAware GmbH<\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"eaafls\" data-href=\"#eaafls\" type=\"button\" aria-expanded=\"false\" aria-controls=\"eaafls-section\" id=\"eaafls\">EAAFLS &#8211; Entwicklung adaptiver Algorithmen in funkbasierten Lokalisierungssystemen<\/button><\/h2><div id=\"eaafls-section\" class=\"accordion-body \" aria-labelledby=\"eaafls\" role=\"region\" name=\"eaafls\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/EAAFLS_small_image.png\" alt=\"Entwicklung adaptiver Algorithmen in funkbasierten Lokalisierungssystemen\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Adaptive Algorithms for RF-based Locating Systems<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Christopher Mutschler<\/a><\/span><br \/><strong>Start date: <\/strong>15.05.2016<br \/><strong>End date: <\/strong>31.03.2017<br \/><strong>Acronym: <\/strong>EAAFLS<br \/><strong>Funding source: <\/strong>Industrie<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/EAAFLS\/\">https:\/\/www2.cs.fau.de\/research\/EAAFLS\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>The goal of this project is the development of adaptive algorithms for radio-based realtime locating systems. In the scope of this project we cover three essential topics:<br \/><br \/><strong>Automatic configuration of event detectors.<\/strong> In previous research projects we built the basics for the analysis of noisy sensor data streams. However, event<br \/>detectors still need to be parameterized carefully to yield satisfying results. This work package explores the possibilities of an automatic configuration of the event detectors on existing sensor and event data streams.<br \/>In 2016 we investigated concepts to extract optimal configurations from available sensor data streams. For soccer sport scientists manually annotated matches and scenes (e.g. player A kicks the ball with his\/her left foot at time t). These manually annotated scenes may later by used to optimize the hierarchy of event detectors.<br \/><br \/><strong>Evaluation of machine learning techniques for locating applications.<\/strong> In previous research projects we already developed machine learning algorithms for radio-based locating systems (e.g., evolutionary algorithms to estimate antenna positions and orientations). This work package investigates further approaches that use machine learning to enhance the performance of realtime locating systems.<br \/>In 2016 we evaluated concepts to replace parts of the position estimation algorithms by machine learning algorithms. Up to now a signal processing chain (analog\/digital conversion, time of arrival estimation, Kalman filtering, motion estimation) uses the raw sensor data to calculate a position. This often results in high installation and configuration costs for the setup of locating systems in the application environment.<br \/><br \/><strong>Evaluation of vision-based techniques to support radio-based realtime locating.<\/strong><br \/>Radio-based locating systems have strengths if objects are occluded as microwaves may pass through the occluding objects. However, metallic surfaces in the environment pose challenges as they reflect RF-signals. Hence, the RF-signal that a transmitter emits arrives at the antennas over multiple paths. It is then often difficult to extract the directly received parts of the signal at the antenna and hence it is a challenge to properly estimate the distance between the antenna and the emitter. In this work package we investigate vision-based locating techniques that may help RF-based systems in calculating positions.<br \/>In 2016 we developed two systems: CNNLok may be used by objects carrying a camera (self-localization), i.e., inside-out tracking, whereas InfraLok uses cameras installed in the environment to track objects with infrared light. CNNLok uses a convolutional neural network (CNN) that is trained on several camera images taken in the environment (at known places). At runtime the CNN receives a camera image and calculates the position of the camera. InfraLok detects infrared LEDs using a multi-camera system and calculated the position of objects in space.<\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"erladef\" data-href=\"#erladef\" type=\"button\" aria-expanded=\"false\" aria-controls=\"erladef-section\" id=\"erladef\">ErLaDeF &#8211; Embedded Realtime Language Development Framework<\/button><\/h2><div id=\"erladef-section\" class=\"accordion-body \" aria-labelledby=\"erladef\" role=\"region\" name=\"erladef\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td>&nbsp;<\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAABQWAAAUFgGrzPGEAAAAB3RJTUUH6gQUBzIibK\/3XAAAJLxJREFUeNrt3XmAXFWZ9\/HP req9O+nO0tkICWGVgJiwyU42EhBxYRtFRyTouMzoK0pAHR3jjOMCjDqio6OGuI2iCAhIkk4CCYQl sm+yJUAICSHp9Jb0ku6qrvv+cavoTmhCJ+lOx\/J+\/+D2vfecc885RX516rnP8xxiYmJiYmJiYmJi YmJiYmJiYmJiYmJiYmJiYmJiYmJiYmL2FYKB7kC+sqzsXcdCZ2HBNBDohCDtQZjefOvdA93HfCQx 0B2IielLCga6A39rLDPrYEgPK\/88FNS1fBemqlndvVzHoNIr4MXpx1wA7YPLwNtuXvEX0OyE7uWX mj4MMkMq5kBhQ\/tPonYXrRnoMf8tESt0TF4RK3Qvqak+9waoH1l1GtQedUg1TFjyUDGodSksM6UA UqlUKzSOHwnahlWCRLpzG\/zVBUVwhBs6IKwsnw3rTj7ychj0Su3FULP+3Edg1uabzh7oOfhbIFbo mLwiVujekslsgjVTjx4Gr006JIADlj74Hlg04vxnoaW0sAKaxo8qgq1jhoPO4kLZekdCx+pXX4RF bec3g46OYbDq7BOSUFbbNAqOv\/bG+DPaBWKFjskr4n\/9We4zbT9oLS89HGa03L60+\/3SpuZbYcLS hy+A1yZHa+jlX589HDqLCiMpfgvL\/pMfmjGs+3kQhqCgtR2ki4vAQYseqIPS+i3ze2rnHlOPgIyi ejhNzYaBnsN9gVihY\/KKv\/s3hctMGQsd1UNWQPvgikoYtKHuI5AqLZoFLSOHXgiPfOzsEbCtqqJf +1W8pQUc\/bPbN0LFhs2\/h5L65nnQPGZYDSRT6VYoqq0\/HaZavm6g53QgiRU6Jq\/4u1fopVXvXQ33 X3b+QdBaXQWOv\/amOnjllCPL4ZUTjywZyH7uf89TbXDwogdaYOXnzx8OyfYUOPmq69fBjKZb9x\/I fg40sULH5BV\/9wp9Z+U5F0LzsMprYeXnLxgBqbIBFeS3JJHuBMf++JY6qHpp44\/hjMY\/fXWg+zaQ xAodk1f83duhpzXd9gdYHLz3CihuavmbUOjiLa2g8qUNr8EZjbf+XStzjlihY\/KKvxuFXmZKBQQF xZNhSrpmBdxRefanYO0JEw+G5tHDetXeqMci9+f973myT\/v5zHmn6U0\/2oYOAutOfvtYWHqPf4IZ Tbf+NBpv5LdN+zqYavm2\/pvdfYdYoWPyir8bhU4NGfxlaB4z4jNQs\/Hcl2Fb1gfj2XNPrdyV9so3 NaBLqfuKF2Ydt0vln3vfKZUw8okX5sLigvdfCC1lJcdAcUvbD0G9v4s1dqzQMXlF3it0aG4Cagqf \/BCsvOy8Cija2nYEXrfEZwqSu9Ru\/UH7bVcvZxded8JEsPbUo3arv1vHVu9S+Uwy0qS\/fPa80VDY 1j6aLj\/sqV\/52YejefBv2eGGfT\/L+w6xQsfkFXn\/pvA+s4ZCS1XJI7DpyAllsOrsE6qhZeSQPWp\/ 9MPPg2N+cut21x\/+5HvAhmMO3avjLWpuA+NWPNEMBy55uBVKG1snwymWvLpXO7SXiRU6Jq\/Ie4Xe kRXJGZfA82ef+F149n2nVPVFuwcsfwy8\/TdL0LW2XnnZBaDusL3jBHfI7X\/ZCofdcvd\/QSad\/g6x HTom5m+SvLdy7Mi2weVjoP6gMVV92e6aKZNAcVMUaXLobfeB4394E7hvzgdB07gR\/Tq+xgNGDIJU WXkIM7bc8nehzDlihY7JK\/JeoZeaPhKSOtthW1HhDGgaN7Jfnvfce09GV0zg+LseB+\/8\/h\/BvV+6 CLRkI2P6mty40qWFkVPIluh6zh4fmJvplwfvI8QKHZNX5L1CB4NKn4aGcSO3QbqkqBjaK8v79blP fugMULw18lse9cgqcMJ3bwD3ZJW6fXDf9qNjUJTltHVIxdvh9qIPrIVl9Q+Wgha79iryb4xYoWPy irxX6Nbhldvg\/i9cOGZvPjdMRCb+l6YdjS6FLqttBMOffhmsz\/p+9DX3X\/HB7cwpp\/3Hr6LMSi\/t zVnY+8QKHZNX5L1Cl9ZtKYPjfvSnDdBRUVoIj188a3h\/Prcou3aePO\/27a6vOyly8usvZc5x2C33 NkGyI3IDLG5s3reDJPuIWKFj8op9VqGXmXkkJKWLoFOUn3mKKa\/Se3tq6ZaWSVD98DOd0D5i6B+g oK1jOKRLi\/q037lsokf\/7M+gpCFK\/7wl6+f8xIfP6Nd5K2yNXgyOu\/eJF6Fsc\/OnIS3cLb+dnLdi WnoUJATNcIqla\/t1ILtJrNAxecVeU+hcPuO2oYMvhkyQmASz6m6e2VP51NCyGlh79KFFMOSFVwtg +fp7PwM6\/KY3zz3ZnS93P1\/c+b4VULl244n0vRfcYbfcC6qzVox0SfQN8NCn3gs6iwr7bY6h8uWN IAyDGjjF0pW7087iYed+EzZXlf0TbB1bnYbhT62pBXXe3r38MlOqIDW0qibqgDugsKH1VzDV4mf7 deBZYoWOySv6XaHvcsYh0FI96F548kNnDIaxK\/+6Ge6pm3oYnGLZc3T5HCwof7Ydnrpo+hg47OYV DVD5yqYeIy4Wjjj3N5DMOBSKNjf9M0xxx4Pdy5U0tqyCIS++2gx1h+3fJ4meRzz5Ijjk9vu3u\/74 R8\/EnkfG9Jaq7LhKGptX9HQ\/99skNbT8xxAGid\/CrLobf9y9XEFblM\/jxfNPGwLr33l4AqZ\/6af1 PbWbTBacDKtPf8dEaDpg9HEw6boFn4b7mk4cDSe5v60\/xx8rdExe0e8Kfbolq2CRcxugduL4Sggy maEw7Nm1S2BB+T+k4M+Fq0pg4+TDtrObZrJ7j2yrKv8uLEmdcz2UNLUvgcay0qmw8tPvHQOT5i1Y Aneuf\/e\/Qbq44F9gw4FjKqP2D+kTJ4qyzU3g6J9n7c3ZmOoXZxwDXj32sP6e4u2oP3T\/ImiaMOqn UNPw\/leiCQz\/DE0jh3wOnrxo+nA47oc37Q\/LnLkQlAbvzs7XxyGZ3VcRZVB\/yP7V8Ofii16BRGd6 G3RsbRsEG99xcAVsGxJ98aVKClfBSU09K3NuX8eplqf7YvyxQsfkFXscU3hHyVnTQEHij5AJfRDO aLm9BpaVzJoBqbLS+XDvFy8aC63Ds4mKclkietmTgm0doPrpNRkY8+Bzm+Dl044aBnWH7V8Ip8\/9 5QaoWFd\/PLTsN+Q+WPYfs\/eHgraondw\/6dzuU70ll4fj5G\/\/FlSteQ00HBS5jNx3RRShksub0d8E mZxZPprInC\/J1K\/8fB2UvVr\/AaiddPCN8MBnzx0JE5Y+3AQjn3ixFdadOHE4bHr7gYXQUVHauw7s 8DlWrt0EjvvhzauhsHHrx2BaesldUFP5njmQCFwBhdvaz4Up22pW9O6BPRMrdExesdsKvWT4uRfB 1uGV34dHP352NZx01e9fhUSm8yWonTj+bfDMeacPYxf+xe8mg17dDE685vdPw6DG1InQNLz0Kmic MOpDMGzVus2wdcSQcrjvixftkp\/wjlHeORoOjBS6fXDZbvX\/lZOPBK9NPqR3FbLKeMq3\/28zFDdF Gx5unHRQNYx66PlfQnn9pi9Ae8WQp+HOb34s2v2rnz+PnE\/L4TfdXQcjnlqzCrZVVUyAlZ+\/YCQc d+3NtVBR2\/hJOKPu5pt253mxQsfkFbtt5QhSnZ0QFhUE0JGNvFj5hQvGQBCGY+i\/2LkcI56KHHxH P\/Qcuuy+j3ziPYfBO+YvfAzKNjV9PNuvadBRUToUKl6rvx3GL3\/sAnh5yqReSVayI9Xj9SEv7lli ovpDxu5S+Ql3PtIKZRsbbocwmXwPjHro2YehqL5lPrQOG\/EwPHbxrFHZ8e\/x3PeGXATN4xefOQxK 67YMo+sNao7CtvY0JLa0rtmT58UKHZNX7LGV486Kd\/83PPu+Uz4JL02b3Lfua2\/W8eyv+qlfuQ5d Ge3vv\/wftitX0rAVHPPT2+rg+bNPrITGA0cXwKnf+PUGSLanWuHuuR89CNoH7XwNnGu3fFNjn44r t09ibjxvRml9FM596jd+8wJ0lhQWwT1fvGh\/GH\/XE1th7Mq\/tsFf\/t95I6BlxN55Y9lbDrvlnhY4 eNFDX4Ip7Quv3ZP2YoWOySvecg39BxckodrW\/WGqRWtgmTMPgLbBZRfC2pOP3CvKnGP83U+gK5P+ o5e+q8dy24ZESnfvlRdtt2nJ+DsfbYFEOtMKHRWlg6GzsHc\/K3Lt5o57mzCIvlw7C5LRj5fOyN+5 4rX6DDx\/zomDuh\/3VV448\/hyGP3w81fCveum3UqXl+QdBTOnQWW6bgUc6+HUztqLFTomr3jLNfSS qnM+B+mSkq9DIp1aCEEYvB3uu\/wfJrL3vMly1oXpX\/oZaJgwGjz4L+\/fpfozrvzf9dF4MmWw\/Osf HQKp0siFZPL8BfXwwqx3DoH6g0YPaKbWoS9uCGH0X57eAk\/\/w7RKKN8YOb+d8p3rI\/NKmCmGmu\/9 yzC6ImgO+9M9IJHqE5eJPSf7DbPq7BNAYVs7OPHq65+DRBi2QPOwykNh0KaGr8GMxlu\/u7NmY4WO ySvedMG4wFnFkC4quhyW\/\/slg2Ho6vUXQJhMdLL3lDnHgUseBkXZnVSfPffUXaqfixhZd8LEchh3 1xPfgRO+d8NnIVVWUgiDXt74z1C15rVPwKuTDzkGnrlgSiW7vifLrpJT0iNuWN4AIx9d\/SgkOzqX Qklz2xUw+JXaVgi2dXwT1p1yxL\/T5ctR1BTNU8VrkZLn9kHckYk3LAdPXzClX8eVY\/zdUc6\/Qeuj N7u5yKEHPnveIdn5TdDl8zPlK\/M+D\/c58ce8uV91rNAxecWbKnS59Dho7+wsgHErnmiDtae8vRQy hQV79R9DYUvklnvQogfQld8it9vTrvJcNnP\/qEdXfQIKm9v+BAVtHedDIqMWZm6+eTosu+\/sL0Bh W8eX4bHZZw3tz\/Ee\/6M\/bYbK1eu\/AjNaF\/wv3GXGZKhavf7DUFy35buQGjr4imhcp\/bYr1RpMWge 1XO3E+nMTu\/3NW9m598ytjpBV\/T64Tfe3QCJzsgalTa4Kls0VuiY\/OdNFToXafJQ3TkHwsQ\/3v0L aK8cdD5sOPrgvfqr\/5Dbo+DlZHZtmcvDvLvk\/J+f+MiZo6F4S8vHoGnciEI4\/tqbvwA2WgapkqJJ sO6kI6ro8oee+pV59dBZVNgKW8ZWF0Lt4eOGwLpT3l4EQbb8uHufSsHQ519pgMHrN6cgU5gshru\/ 8pHhsP7YQwfB4LUbIy\/AaCmstTpS4qc\/MG0iVD+z9tvQOG5EMXvio7FvbV9Y\/fTLnTD+7sf\/D6a2 LfxMb+rFCh2TV7zla7Fj3dYKNRXn7g91h+63V5W5tD7ymZiw7FGwZuok0DZ0cJ+0XztxfDFdviG5 SItke+qE7Qp2ZiZB9dMvb4HyTU1RbGQq\/VN416Ybvwz3rpt6aFRuza9h88QDjqMr9vCwm+9ZAMmt HZfDFDUvwOIR594I1X9d836oeK1hG4SJ4KxsD74BiTA8HWqPOAC8NvmQfs3RtyNBJtR9voLO6JjY 4bzr\/vblc+UK2jt2\/rkcPj4JqfLSd+JNVsxvJFbomLziDQqdi8JNKBoNw1VuhJdKC\/ZKhMOO5DIR 5WLzVp19Yr8858Srf18LZXVbboai5rbfd79\/RuMtR8HyJW1nR\/NQfhmUN7T8mO57aEf5RRaVnp+m K4N\/7ld7qqywDWZsvW31dvPesOUqeMevakZCWX3zt+CUzpMWRCVuAYlMOA+mfHX+2VB32Nj94LHZ 79qj7bUKm6P+nfC9P\/Z4P5cZL2ffDhPR5xFmP5cdzzOvn+9QPnvMzYfDe+5Pqjx6Y9tRXjoG7t08 bTx0FiQPhvZ0+BCcYWlT93qxQsfkFW9Q6PTg8k\/BtmFV\/wEtqchPeO2pR\/XvpiQ7MOjVOjD2\/qfA 8+echP77hgiTyRQkNzd9GU53R133+68rcPviKK1ouz\/vtD3BPDj6p7eti+oH0S5Uqc4beyo\/NZXN QVdrB\/PN4u3Ozqj\/01ehxsxvQ\/nQxuf6Yvw5RVx52fn9Mr87cvDCv\/Sq3OpZx1XB2PufWgmdpcWD Ydhzr3wdNLmqe\/lYoWPyijcodFhUdAA89cHplVB\/8H6VA9Gxt90cpWfoKI8U+cWZx\/br81pGVBZC 9dPJA7KX6na\/Nc7aeMO87J\/z9qSdN6OIyOpUXdm\/TiUDzPoTDi\/vfszlP6las+HAnsrHCh2TV\/Rg hw4GwyF\/vr8eUuUlaXj2faeMoCvmrb8Y\/myUGH7Uo9GuUc++P\/Km29XMRrvK1jHVFdBeVfIDWFR0 3iZIdGS+DzMbb76rXzvwFiwzJQoHLys7G6Q6D4eWEUP75kdF1j855z+di4gZaHJegpPn3b4RktvS AQTpnt9sxgodk1e8QaErNm\/4LBRubv1PkOg8E+oOGXstvDxlUr9mLH09512WnJdYf7Nm2uRS2Djp oJNg6PPrwMSbso67DKhCp4dUfhjWnXjEt6DhwChSZ\/Nh4\/qk\/TArbbk3gTn78UAz5IVXMzBo7cYv Qm2q6tdwoZs7eyofK3RMXvEGte0WCbAG7smc8RBUbMw6VdCvISo5hd66X+SiUP1MtFfJmmmT+3Ui cnk2ipqj4SfTkVQVbW3dJ3Z7Kt7SvAa2jhqaho1HHRR9dmHfeMm9vmbuo\/b6ivJN0TZihalwNVzo hs6dlY8VOiaveMv1cErqNSh\/raF9b3Zs0xETwPgV0RI2562V8wXoa4752Z9fhdL6LQsgEzoCkqlU 715p9TNhZ\/AcvO1P99TCobfdVwttQwaNZtezp76BnJXj9TzT+4Z5u2xT1uuwIPv\/6lsErccKHZNX 9ORtVwIdQ4eshJbBZSPg1Xce3jcOyL2k9sgDwEGLo02shrwQpZ3Y1eycb0UuurqoqaUOZm6++eN7 c5y95XRLI4fwemO6X68JznsCku2paugs3r19EMPXFXrfWkOvmXFslPEqCH4PS54rT0HQ0PwOmLGD z02s0DF5xRsUeorl7bCo6PwquOvfPjJ6IDpWl1XizqKoi7k80H2t0MNWRfbmZDq9cCDGuackOlJR pMsza4+E1yYdtHsG5MT2bwoHnGw3GseNSMIj\/3TOCJj2lXmvwJkNk6OkhtGGtV3DGOh+x8T0JW9Q 6Jzfb00mcw9MvOGukTDq8dX1dMXgPXnRjGG9f8yuk8lmAa0\/JMqoU\/3XNejy7egrgkyYgjBInAvL Kt69FqY0\/\/l\/us\/HvsZdZhwOHUFwEpS\/VtcS3Tlot3bGfd0OvY+soY\/8\/R0NMObB57ZA\/cFjBkGQ zjwKgbmZnurFCh2TV7ypHbpiU+O\/wgF3P74E2loy18OI1AtLoXz6MafQ\/7ntNmWtHUf8YRm63uT1 VeTKpiMnFMKyb8w+GKZ87RffgDuap18flbhjj\/yi+5qHHFMITYNK74cHPnNutCPBAaP2qN0w2DfW 0Lk3tiMfXb0Gzmi45WhY\/uD04yDU+crO6scKHZNXvKlC5zKoa\/HL7tfvqZ36MTjq\/5beBfdn95nr L2qzbwyFkUJXP70GrD\/+8N1qL2dnPfGaKMo7XVKUgTVTJ43M3l\/CG+2b+wq5DPY1xeMWQiLdeSFM WPpwKwxbtb4NHv7EOdWQKYze+A3NWnOO++HNPbabi+GcPC\/aszyT7N83hbmdFzYfPn6760dcf+dm KGls\/UT361Pc8WBv2o0VOiav2GXf5lRx6QQo3dy0V172bx0TGVNye5lUP7UGu6\/QR\/zujkaoeK3+ W1Da2LoCBq\/d+AMYVL\/lsr0xrj2laHPDZXDcD248HYJkwX9DRpiBI66\/88vw1EXTq+DuuRejK5PR QJNbs6dLt49ESnakQkgNKjkbwnoP0XtrU6zQMXlFrxV6hZnvhKZRVb+Fe6\/84BBIdkS+ECWN0a\/T \/toHL2ftGPnEi7tVf9Sjq9ph1OOrl8AZjbd8b7sC9U7ql473E1Mtj8Kfm7f37cix9JHkidBw8H7v gvXHv23vhP7sIuUbo7V0bmeFBz57fjUc85Nbo50j2s+OXhG33P7L3rQXK3RMXtFrhd6g8iGoam59 BoauXv9OOPTWezdD+eamzfDcOSdNgDVTJ5f1tu3esO6EKGP\/sGysXy4\/c2\/3OskEQQhBaChdOfym Wr6PbAvVx6Q7H4UhL66fwr6n0Pv95ZltcPiNdz0NYTJRDc+ee\/pYGPrS+lUwoqXsd7vSbqzQMXnF LntmrXTWYNhaVbgcCjrS\/wa1reULYcjQ1P9A7WHjzoPHLj1rGP0XabIjJVEImiN\/f2cdbDrigGJY e+pRFXDk9Xe2wdj7n\/o6TN96+3f2Ssf2EisKZs2AugNH\/xHuu\/IDlTB4XW0Gxi97rAGef89Jw2Bb 1W65fuw2R14f+WiMenT1bVBUW38pJBTtD6mqkp9DUWPqA3CahbW70n6s0DF5xS7boU+wcAtodHSP Bep9ApY8874pUNjaPgzSJZG9MZfhfXcjK3Ykt5Y+9JZ7m2DsA0+vhYKGlk9C1ar110LFpobDYfTD zz8A6a2pH\/bz3A4I6XT7SiivbXwCDlz80NEw\/u7HG6BkU9OnYMRTL30bNhwXbRD43DknDabrc9pT ctavRDo6psqi7KYjH3thGyRqt3yW7X7DRNaMRtP35LmxQsfkFX2eBWlJ1XtmwysnTxxNl1fcsT++ tRaq1mzYAO2DyobBxnccPBjWnnbUINhWGaWhzu39XFYbJWgvrY++GEo3N7XBK9n9EnN2zHErnlwJ Z2y59czu\/bmvYdp7YOx9f\/0ozGiY\/C3e3J\/2b52pljdD2DB3CnQuffi7ULgtvQCmdi6OEk5vjvJb 37n8Xf8NLcOrPgVrpkwqhDEPP9cJ6ZKiJLQNjd7Utg2JQktzb\/gKtkV7pey\/4sl22O\/BZxugeEsU o5kuLRoGd33to6Pgrx+YNgKO\/O0dP8r248N9Of5YoWPyij5X6MKO8EnY74Fn10EinRkDlVllnlV7 0zvgodpzyqLr93wagkzmq\/Dce08eDKf++682QyKTuQWKmrc9CUE6fSCkyks+DetOPKIA0uXFR8KC LdEe5e+ysB1Ocud60CDK1ZfdqyTfef0bqM7ndlYuVV58Gmw49tBoj\/MNkdfd23+zNMpHEoa3Q2dx 0eGQ7Og4E+785seG0\/Ve4G233nMjFLYE\/wKnur0BFlW\/\/5dRe0vOh+qnXloHRW3tv+iPcccKHZNX 9LlCT2m9LfJbbTURlt19VrRpRxCs6V4ut\/\/hnSVnt0JrddWg7vfDZKIeZm3848e6X19m1sFw8IKV H4EDlzzcAolU+kUo0pYzn+zVTE9\/q4RBsBGO\/8FN62FbVcVQSG7b9j8wtWPx\/4FsZsNFI85bColU 53RozkYspcpLy2Bay40N3dsvrm24Esbe\/\/TtMLVtwQ30X6xmrNAxecWAJwFeWvneGdBZXPB1CKmM jsEzcNamP17QU73lpp8K7ZKPwCyLWwZ6LH\/LLDOlAoJk0VSo6Cy+g65v0hw11ed+E8JkFCUfdIZb IcOv4azaG38wkOOIFTomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm JiZmH2DAI1ZiYnpFGAYwZ37N5Og0MR6CXIRTIE0csRKTZwRXzKv5HYSBvtn4T\/A4XD175tf2xgCu uK7mSxDyzugYLIRrZs\/8373x\/H4b1\/xF\/whhGJy3s3IhKQjYAmGgDoIweBQSBcG98J2PnLF2oMe0 O1z5qyXjINOZuSE74OPfpGiUM2+gOxwT05cUhIFzsn+X902TYR+108unCU+I\/greA4Hw1b35\/P4b VzAx++d7d1Zuxx9BQdjVAmTS0dawV8yvWRFdCOfCVZeeuWygx9gbMp2Z72aHk1Pmv2ZH97vsBLwA iTBeQ8fkIT1kTgq\/BmEQ3r1bLSbUD\/Sg8pFA+Gj0R\/LT3a+HQZiEsDOzHwRB4gAIhROjei6CMHRa VD+4Ay6\/ruarcM3sWf850GPrkaxVw\/zF79ruMpdm+\/2XnqrFCh2TV7xRocNojXLN7LOWD3TnYroI BVvg6kvOWLkr9ebMX\/yfEIaZayEQzIqOvgFzrqtZDVfPnvX7gR5jdz7305pRoDDIWd9S8HJF00M7 qxcrdExe0efZR9+KOdctOppua7rQKrjmY2feDpf\/cuFREGSSU6NjZMXI2cmvnj3rfQMxURf84Q9J OKBl8EkQcAZkMtGaVZAZAUFgQ1QjsQrCdPg7uObjs14aiH5ffcnMVXDZH+57PxQ0b306e+uA7PGb MHfushuj49Re7dv4md8sGAylHcn3Q8g7ovEHh0bzEr4czUvwBCgIfwPXfGRWy87aK25PzIZEItpP MuzKURrA+K2DPwOXz1u0Xf1kInkHsULH5Bl7XaHDIDEFAuF\/RefBTTBn3qJom6TO4PpsyYLo\/utV B3RPlAnNlbdByFnZIwheN\/xmO7qDHThI+le4\/LrFn2fg3mB+78KT2uDyeVE\/giC8KXvrQGgev+2U 7PnynbUz57rFp4MOv4xGGY7vfj\/MSmrw+ueWPU+Fn4\/qL\/ogXD37zEe61ytPBUOhMwi+F7XzhkcX RO0G39MDnWH4SWKFjskz9rpC70ggPDb6IzgHQsGvozvRmqtAcg2kw8w7BrKfYSCbJzn8EYRh9M2S LEisho6S8lpINDdOiMZV8JHs+D6fPf4ILv\/lwvvhmovPemIgxlGRKFwILWHHdl8tQRiclj1f3lO9 y+ctPDE7\/jtzU5I9\/DeEmeDnoCjabzCZCg+GTODKaP6CD2brLYDP\/GbBoXDth9+1BUrKt74KLS1V k7PlxkTNR3u8yO3IEAQn9NS\/wkTiFWKFjskz3qjQQfB1mHNdzWd2q8UguAquvmTmgl7WGJc9fgOu mT3zq29S7sUBnCdXf3TmBdnxvdXeIDkrwhdhzryaxqieaH\/EdOLr2fvvH4hxzL1k6jaYc11Nzucl +4YxGNdT+Zx1J2hO\/E\/2UgJC\/h9cM\/vMN8vY\/3j2eBFccd3i6I2m8EIo6Uj8a\/b+lTD3wgs7sueP wRfnL2yEzi7NDeHqS2Y+trPxxQodk1f0tIY+Yk8aDDPhr3exylYIwm1XDfRk7JS3VuYeyYTp30Ei KPhW1I5JAz0UCIUvRd0J9ov6GUV+7Mi4rZUzd+j3OrjmkpnXgtm9fF72G0rowuhK5B0pq9B9RazQ MXlFTwo9BwTB0t1psDOT2aXIiIDn4apL37t1oCejN3xu\/rIqKJS6OHvpbSCMdswlEW2GnbWgB0Fk RehmV90f\/ul\/HyqEn37i2NTAjCTYbl\/IgI6eSiWC7Pi6Sq6GK36x9J1g\/pJePS0jXRI953UNPZCu NfoNF17Y2RejihU6Jq\/owdsuWltdPXvWY3ujA6Fw\/UBPQm+4Yl7NhyATdvwke6li+xJBKwRB2ARh GHREx66RZknCsJLGrJJHMYADwEHbdz9seJNyh2x\/Gk6JxhXevysPC96onUUwtm3YqOx5n\/x\/ECt0 TF4x4G8KQ4leeXcNFFf8bMnhEAaZn0NAcfb45eh6ej5cfcnZr\/VUf+6PllVAS2nHPvEb4Yp5i8dA KNz+GyZMPNbLJu6CIAyv74v+VDYnmvpyfLFCx+QVA67Q+zqZgvAsCEIlEIq8zK6ePetbvanfVpae IFtxXyAUfnHHIUIy6OzRqhUIn47qve4+1wlXXXrmT+yDxAodk1fECv0WBGF4WPfzRBDukp091JmN Wh7YNIJX\/HzR8RAGPr3DrRvh25ectabH\/gdZn4ycb50oP8ac+beP4s1\/OwwUsULH5BWxQr81r3Q\/ CQUfhrlz587NHnuMpJkzf\/EhEIbhlwei05f9fNFQKEwGX4364Z+zt5Ldx5VOFly2s3auvuTMFXD5 dYtq6IoaFxb8DObOX3YBXV58b0XuDemgorqD4L8umfVsX447VuiYvKIHf+jElTDnupp\/3J0Gg1Ab XHXprA\/uTv0+4Kxs\/\/+0O5VDwStwzeyZn4EwmbkVgs7E17IFJkDzuBMWwJx5i34LkokXQCaMIjvC 8CsQBJF\/7+tR7rvP2+Dy62p+0f1ikFXcIIj8ysMw8pGQ9XMOwzcs3ldCUvJDcPXF03v1hq4giGL2 OsPgseyld0NL2PFXmDN\/8Q+i\/mStItk3pYFMtj\/BpGj66j6Yvf\/nbDu99NfrHbFCx+QVPeW2O25P GswEmgd4TAfscNwlAuEz3c9zsX9z5i3+XFQgvCYql11LBqJjZgdDcyhKHBFui\/x\/g5IteziukdHj XNzTzR6ipOshCIKsz0XndfBS+dZb2HXvtpwV5LJf3nEEJDs7c4p8brYD34+G3TUB0X\/fYN1pjPqV zdXXx8QKHZNXFAjCbJ6JMLmnjUEyU7BT34xEOv0HyBQEj0AyCGr35HlhJvjX7IO\/tyftvN4ePWb2 ufrSmVHU9s9qFkCiIJufIwwOhED4PGSSmZVQ8dJfnoK5X\/taCJf\/YtHU7u0Vv1S0Ux+GMO2noCBT s7NyQZBMQSKMct+FmbAOrrp0Zr\/kyf5e15r7PPjCdQsmZvtxVNQPR0JGkM2jEXlTBjwLjR3DlvPW fuAlSl6D5mBblEFL0KtvlFihY2JiYmJiYmJiYmJiYmJiYmJi9jn+P9gTJ5LKz\/vOAAAAJXRFWHRk YXRlOmNyZWF0ZQAyMDI2LTA0LTIwVDA3OjUwOjM0KzAwOjAwNd0ovQAAACV0RVh0ZGF0ZTptb2Rp ZnkAMjAyNi0wNC0yMFQwNzo1MDozNCswMDowMESAkAEAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtz Y2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Embedded Realtime Language Development Framework<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Thorsten Bla\u00df<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/krainz\">Jakob Krainz<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/daniel-brinkers\">Daniel Brinkers<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2012<br \/><strong>End date: <\/strong>30.11.2014<br \/><strong>Acronym: <\/strong>ErLaDeF<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>ErLaDeF is our test-bed for new programming language and compiler techniques. Our main focus is on building infrastructure for easier (hard + soft) real-time embedded parallel systems programming.<br \/>We focus on hard real-time embedded systems as they are about to go massively parallel in the near future.<br \/>Real-time and embedded systems also have hard constraints on resource usage. For example, a task should complete in a fixed amount of time, have guaranteed upper-limits on the amount of memory used, etc. We are developing different ways to manage this concurrency using a combination of strategies: simpler language features, automatic parallelization, libraries of parallel programming patterns, deep compiler analysis, model checking, and making compiler analysis fast enough for interactive use.<br \/><br \/>Runtime Parallelization of Programs<br \/><br \/>Our automatic parallelization efforts are currently focused on dynamic parallelization. While a program is running, it is analyzed to find loops where parallelization can help performance. Our current idea is to run long-running loops three times. The first two runs analyze the memory accesses of the loop and can both run in parallel. The first run stores in a shared data structure for every memory address in which loop iteration a write access happens. We do not need any synchronization for this data structure, only the guarantee that one value is written to memory, when two concurrent writes happen. In the second pass we check for every memory access, if it has a dependency to one of the stored write accesses. A write access is part of any data-dependency, so we can find all types of data dependencies. If we do not find any, the loop is actually run in parallel. If we find dependencies, the loop is executed sequentially. We can execute the analyses in parallel to a modified sequential execution of the first loop iterations.<\/p><p>In 2013 we have explored alternatives to polymorphism and inheritance that may be easier to analyze. We have also examined alternative thread synchronization methods, for example transactional memory, implicit synchronization, remote procedure calls, etc.<\/p><p>In 2014 we enhanced the analysis so that a loop can start running while the remainder of the loop is analyzed to see if it can be run in parallel. To allow the sequential loop to execute while the tail of the loop is analyzed we needed to instrument the sequential loop slightly. The result is that the loop runs only slightly slower if the loop cannot be parallelized, but if the loop is found to be parallelizable, speedup is near to linear.<\/p><p>Finally, we also created a new language that uses the above library for run-time parallelization. Any loops that the programmer marked as candidates for run-time parallelization are analyzed for constructs that the library cannot yet handle. If the loop is clean, code is generated that uses the library's macros.<br \/><\/p><p>Design Patterns for Parallel Programming<\/p><p>A library of parallel programming patterns allows a programmer to select well known parallelization and inter-core communication strategies from a well-debugged library. We are performing research into what (communication) patterns actually exist and when they can be applied. We have collected over 30 different patterns for parallel communication. In 2013 we investigated mechanisms to automatically determine the fitting implementation for a given software and hardware environment. We also added a set of distributed channels where cores can send data from one local memory to another. The<br \/>distributed channels allow the library to be used to program modern Network-on-Chip (NoC) processors.<\/p><p>Script based language for embedded systems (Pylon)<br \/><br \/>Pylon is a language that is close to scripting languages (but is statically typed). A large part of the complexity that a programmer would normally take care of when creating an application, is moved to the compiler (i.e., type inference). The programmer does not have to think about types at all. By analyzing the expressions in the program, types are inferred (duck typing). The language is also implicitly parallel, the programmer does not need to have expert knowledge to parallelize an application. The compiler automatically decides what to run in parallel. Finally, the language is kept simple so that learning the language remains easy for novice programmers. For example, we kept the number of keywords small.<br \/>Any language constructs that make analyzing the program hard for a compiler has been omitted (pointer arithmetic, inheritance, etc.). Any removed features have been replaced by simpler variants that can be easily analyzed. The current focus of this project lies in supporting the programmer in designing the code. The previous programming language research results have been absorbed in the Pylon project. For example, the prior research results on alternatives to polymorphism and inheritance have been added to the Pylon project. This allows us to report errors at compile time where other languages can only find them at run-time.<br \/><\/p><p>Interactive Program Analysis<\/p><p>To ensure that program design errors are caught early in the development cycle, it is necessary to find bugs while editing. This requires that any program analysis works at interactive speeds. We are following two approaches to this. The first approach centers around algorithmic changes to program analysis problems. Making analysis problems lazy means that only those parts of a program should be examined that are pertinent to the question that is currently asked by the compiler. For example, if the compiler needs to know which functions access a certain object, it should not examine unrelated functions, classes, or packages. Making program analysis incremental means that a small change in the program should only require small work for the (re-)analysis. To achieve that, a program is split recursively into parts. Then, for each of the parts, it<br \/>is calculated which effect it would have during an execution of the program. For each part, a symbolic representation of its effects are saved. These representations can then for one be used to find the errors that occur when two of the parts interact (concurrently or non-concurrently). Also, we can deduce the effects that a bigger part of the program has during it\u2019s execution by combining the effects of the smaller parts the bigger part consists of. This enables incremental analysis, because changes in one place do not cause the whole program to be reanalyzed, as the symbolic representations of the effects of unchanged parts of the program stay unchanged as well.<br \/><\/p><p>In 2013 our key focuses were twofold: Firstly, we developed data structures that can both precisely and efficiently describe the effects of a part of a program. Secondly, we developed both efficient and precise algorithms to create and use these data structures. <br \/><\/p><p>In 2014 we expanded and modified this analysis framework in order to support big code bases, to analyze them and keep the analysis results for later use.\u00a0 This enables us to precisely analyze programs that use libraries, by first analyzing the library, and then using the library{'}s analysis result to get precise analysis results for our program.<br \/><br \/>Our second approach to bring compiler analysis to interactive speed is to make the analysis itself parallel. In 2013 we continued to develop data-parallel formulations of basic compiler analyses. We have started to implement a generic data-parallel predicate propagation framework. Its data-parallel forms are then portably executable on many different multi-core architectures.<\/p><p>Object-oriented languages offer the possibility to dynamically allcoate objects. The memory required for this is allocated at run-tie. However, in contrast to desktop systems, embedded systems typically have very little memory. If the 'new' operator is used often in an embedded system (that are now starting to be programmed with higher-level languages such as Java and C++ that include 'new'), memory can be exhausted at run-time causing an embedded system to crash.<\/p><p>In 2014, we created an analysis to find this problem at compile-time and report this to the developer.<br \/>To detect memory exhaustion at compile-time, the analysis determines the live-time of references to objects. If there are no more references to an object, the object can be removed from memory. Normally, such reference counting schemes are performed at run-time, we, however, perform reference counting at compile-time in an interactive fashion. The result is that memory management errors can be found at compile-time instead of at run-time. Additionally, the static reference counting increases a program{'}s performance as the reference counts do not have to be manipulated at run-time.<\/p><p>If it is statically determined that an object can be removed, the developer needs to insert a 'delete' statement. With explicit memory management, we are now able to statically determine a program's worst-case memory requirements. The whole analysis outlined above is integrated into Pylon and a predicate propagation framework previously reported on. Note that the analysis is language independent, however, and can be applied to other languages as well (Java, C++, etc.). However, we can in that case no guarantee that reference counts are correctly computed as we require Pylon{'}s analyzability for this.<br \/><\/p><p>The ErLaDeF project is a contribution of the Chair of Computer Science 2 (Programming Systems) to the IZ ESI (Embedded Systems Initiative, http:\/\/www.esi-anwendungszentrum.de\/)<\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"esadeps\" data-href=\"#esadeps\" type=\"button\" aria-expanded=\"false\" aria-controls=\"esadeps-section\" id=\"esadeps\">ESADEPS &#8211; Effiziente Software-Architekturen f\u00fcr verteilte Ereignisverarbeitungssysteme<\/button><\/h2><div id=\"esadeps-section\" class=\"accordion-body \" aria-labelledby=\"esadeps\" role=\"region\" name=\"esadeps\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/ESADEPS_small_image.png\" alt=\"Effiziente Software-Architekturen f\u00fcr verteilte Ereignisverarbeitungssysteme\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAIAAACyr5FlAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJTUUH6gQUCBAQCJanwQAAO9tJREFUeNrtfXecW1eZ9jm3 6qprpNH0ak+Le4lrEtvEKaSSAAklsJSFwMJmNwtZ+sLSP2C\/ANllKVkgkCxfIISEACHEqS6x49ge d3uap89oJI361W3nvN8fmtFIGmlm7MQZe6znJ3ukc8+t57nvOedtBwMAKqKIfGDm+wKKuHBRJEcR BVEkRxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVR JEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEFUSTH7CCUJpI6pXBWLpUAQCklhM735Z87uPm+gIsADMZ9 I5FBX8xhFZ12U6XHarMIhSoDQDyijvUmYqMQHFQD5PQdH92GMZ7vmzinG5\/vC7gIgDFuri3BGI2F 5I6+8d6RyAyVI6H4b751sH8v6jsSP32899ALfX09QxepF3dRcswOADjeE1A0kvopK\/oMlVVN7e3t CfpDQCkAiKzlmd++9pHPVF6MwqMoOWZH70ikfzSa\/plUjBkkAcswDIeJYSCEMMYcK\/QeDncc770Y hUeRHLMgLmunzoynvjMMXtniZVlMaMGWZljMMBhNigmGYQTO8pf\/3UcImflEmmIceHbguScOUHqh jGGL3cpMoBSOdvmNyRlHa7272mtzWMUZdmEYhuEwoijFD4wwz\/L+M8ldT50uqywRLayn0mp1mBh2 6rUEgP5ToZ69yfg4PXC4W9XU69+xgWHm\/70tkmMmjAYTgXAy9b3UZW6ocmCM7ZZZyIEZhChCaEK6 YMyUOEr9Jzj\/ySgAaPqwaKfVbbaWteUujzUWUo69FIwPc2P+4MjIEIv5vU\/1I4Dr37lx3vlRJEdB EAqd\/RMdCscySxd5mNkGlQAQ8asumzs6SSmEEMZI1\/Su7g6EMcMwLMvyQT4wJB\/YMdC4zCNonnhE 6x\/ojEYjABQAEKCnH923fGNjVU35\/A5ji+QoiNFAPJrQUt\/rKuxWszBzfaBwZOfw6DFcUVqnymc0 XZ3cgBBCFChCiBCk60hRkhhjjuMGTyQYJun3+3RdnzwGjcnj1UslZ4ltvh9AkRwFAADpGQrHMg1V zpnrE4Ps\/VO\/vxN8vtHx0DglBCEECLIPmfVdVY2xsVFKaYo+qc1JLZHEgVvedYfZbJ732W+RHPmR SOrByETXUOW1SuJMDwoAdj\/VPXKcjPpG4rFYAU7A9J+EGFP1EBhEj8qBrXcsa2isn3dmoCI5CsE3 nki\/6DVl9hlqAkD7zt6e1+LB8UAyKU+WTWxEWb9h8l96M0z+AQBIqFFbJX3LdZtFUSyS4wIFAIyN p5oZWSTeaRPT5X2nA4YKLIdZjmE5BrNIU7VDz\/oikXgyKQNAXkKgLL5MESLjhEgnakINfejvtrvd 7vl+ABMokiMPCIVQVEl9L3VO9f26pj\/1PwerS5vYKS0FAEKqbCTi8Ym5xmQ5moUQE1thsjKDWYlz IINnGOZCEBuoSI68kBU9rQP1OKV0+VCfPzaunho\/nm48jDHGyDAMSkmqjS128dr3rGDYydYF9Nzv jgZ9sZbVVcs31SKEDI1Ew8lTB4cGOgNT9EAIISzy0nNPHFh3xYoLhBzzr4a7AJGewSKErJPWeQDo PjaKMTYMQ9c1TVM1TVXVpKIkDUNPiQ0AcJaal2yoCYzEBroCA12Bge6AktQAYNHSsop610BXIOiL lZRZP\/zFq2+7ez1mUgdOeYoAw7BDneGBvgvFiluUHHmQtrtyLCMJE48IALqODifVOIMYBrMzjCuB woEXu8P+BJrsNQAQIIiMy7v\/cir1u6HN+8HPXz3aF9r9l5Ppw2CEeUZq33eqtr56vp8BQkXJkRea PmEkYxnMTnYQANC03kXM\/nDCr+gyoQbkAE38n6pMJ4QJnRqlTtQAhKDnhO\/Qzp5125tSPwHR1I4M w\/R2jBQlx4ULXZ+wtPHc1NiQYZjNW9fWN1Xs33304Iu9cpiXBCvHCikLbHpcCYAwg1ZsrpfjKkIo OBrrOjqCUhsQZE5nzpzwrbqyUTBxalKfGqhiPDwQIITMu2EFFcmRFzBlM5saGGKMRVFsaGgoKytb uW5oz3PtR3cPcppD5M0TFtgJNQZghCvqnZpqIIQYBnUeGUZTw05I90GaZiCEGBZTlGWjl2MKIYTn +fl+DEVy5AM7+dbm+G1gjDHGFoulubmpsrKitrH9mf\/pBACMM2atAJTCX359IORPTCk5EGSIjolC m0sydJJMqpkTYAZjC1P69G9e3XbLKkeJtWh4u+DgcUoCzwgcK5nyvL4pithstrqGagqn0squ9F80 RYLMgSpCCDKFxGVra3pOjBKDZipEWJZnEHfk5eGTr46su3bxpmsukyym+aJIkRx5UOW1VaFZjKIY Y5fbQbEGIKbH9TDZJQECADpZmKE7B0AIiRK\/5eal9S3eH3\/lL1PVJlmlaZqua7zK73qy47XnOje+ tXnj9mWCOA+9zKVLDgCQFf3McGRRtWtmu1ohWKxmR6ko+wnLYYQmJASllGHx+z69jRgTU54\/\/vLV vo4xSqGqwf3Jb9zE8ayjxCzH1Ye+91xfx9g0pSqatNmqmqapKv\/Ez1+R9ej1t2558+XHJUoOVTM6 +kP9o1FKgWfZlvqSczgIz\/P1SzyHn\/MxLJsqAQRDvcFfffd5hsVp5ad\/JAIAO\/98rPvECAIwdBIZ T4wNRQydZBIifYS0eY4CaLLijwyVVW+el6d0yZEDAEYC8WPdAXUy1KDfF11c48wwl8wVLMuu2tS8 7689HMszLJvqGAydHH+tf7phNuiLBn3RjKvI2jppZ8kapiCEdKKZbKiuoWZentWlRQ6D0BM9gb6R aGahJHCaQaWzJwfGuLGptqLJEjyjiowpVZhtLsly8MnZmm3HB0qJSmSWZRDCKd0JRogivfGySqvV Oi+P6xIih6oZr50cHY8o6RK7RWhrcHtc5lmdQwvBYrEsX9N8IDCsqlrmbHZy+0y9RrapFpJagpjG 125fRgxqGIToxDAIIdLlm5bxPD8vE5ZLhRyKZrx6bCQSn\/DrZDBaXONaXOOaoTchmkZ8o1O\/7Q7B 4cg9rKz2tsdZlgNQsyRBlvxAacVoQWcOQ4lrwb\/75LWbrlyPMaaUpuKwAUCSpOJU9jxCN8hrx6eY IfLsqtYyj3Omhw4AI3tfER76ubu8HCGkKcrxEs+az38xcxcAePaxg8kokWUZgBby\/ipEiHRlg2hR JXDlzW2brlxvtVoxxjm2lSI5zhcAoP30WCg2wQyziVu3tNI2mys5QihyuJ05c8bwjyGEE4oSdZbo ui4IUzv2dgyf3OuLx+NpV9DCvUb6WiYrTooTQvWoGlyzve4d77kpxQw0f2zIwQInBwB0DYRHg4nU T5PAblhWaZFmZwalNHn8mAWhuJzECBEAxjcSHh0pralNtZxhkL8+ckhVNEVVpnoNAAI6pZRl0qOE gg7GANQALUlCV93Sdss7r3O73RcIJ9JY4OSIJbSOycAklsWXL6mYCzMQQkospnd3pS2uGCELwNjR o6U1tQghANj1zKHBnqCqqBQIQggBoojoJKnhCMOyVBFFTmIYdqK9c3ocBAghRZORNXbXR69Zu261 3W6\/EMywOVjI5ACAo91+Omk8W7qo1GkzzXHHcFeXqGqI5yctrohn2OjRo+iGG1M\/vbXWcaUfZEkU JIQQAU3Ww9Vttutvv8lslva+1H7q0GDYp4icNGXWpwzDMOnBKgA0NFVdcdWmC8TXfDoWMjl8wUR6 4lrmttSUnUUMWeRwu8Ay6RbDGHMYq6dOEkI4jsMYL25p\/MCn3vqL7\/1ZSVLEGIxVueHdqzdeebnX 62UYpnFRg9\/vH+gb6u0aHBsOJWXN1xfVI6LIi2hSlAACjNB8TVPnggVLDgDo6A+lvrMMXtI4px4d ALTBAX3PHvfxY0GWQxnzUYZhKuPx+M8fZFettqxazfP8qjXL0afRr374p4Yl3htu31pfX5+edtps NpvNVldXt26DpiiKruvHD59+6LvPsizLMiyaHKeqM+aBQQhRCuPRpKZTg1AA4DmGYxmeY0wCJwoc xud36LpgyTEeVdJz19oK+6xDDQBQ+nr1Pz5p6uoUAIxIWBJFTZvyNOYYxomR8Oo+vv1Q5LHfMTfd bN98xao1y73fdNvtdqfTmRlSkPrCcRzHcZIkIYTMG817Vh3taQ+JggkjDAgAgWGQmT0CAWD\/8RGD 5KnDsYxF4m1mwe2UPE5JErk3nCgLlhzpSFcG44ZKZ+o7Jcbogw\/avaXcilVCbQ1mJx4oEBL8\/WPS 8zsYVR0LheRkklKKspsNAMZDoVA4LAiCzWbjHvzp2J7dzr\/\/aH19PUIIYwyUagG\/frg9cfKE8La3 O6qrM+elFovlxjuvvL\/9Udbg2ElDnabNIjlYluE41siImkzDIDQSVyNxdXAshhCySnxFqbXaa7NI b1g\/tTDJQSiMBiamr6UuySLxKKXXeuEF+Y9PlNTVsS++kHQ4UFMzXrKUrW8IP\/QL88HXxqOxhCzT mZ17AZKqqqgqz\/O2pDzS1em67zMmQSSH21F3J+\/ziYQEensHA+Mrv\/yVHC\/DlrbFyzfVHd01YmJF hAFzlMwmORBCJoFVVGNi0lO4bjypd\/aHOvtDJQ5TY5WzrMTCMK+XIvgCcXR+YxEIy68cGU59X91a VuW1IYS0RPzUx+8WfT4KIAqCxWKxOhyCJKmEKIFAOBJRdf2szsJgLEmSubS0xO0mmiaHQvFoNJlM 6oYhY1z57e9Url6TyQ9K6emTnd\/69C94gSkpt1Q1eFavX7rpyvUcN9MrGpc1SiGl5gcAg1DDoAlF j8taTNYjcTXtK58Ju0VYXOOq8FhfD0UWJjlO9QY7+0MIIQaj7evrRYEDgK6Hfqn\/5hFKSPoFxBjz PC9JpoQsG7pxDifCGNvtdl3XFVWlk1m\/ACGKUKyhccOPfswJWWMdRVH27zsoWcTSUo\/D4TCbza9z tkIIjSY0f0geCSaik2OsNFx209JFHof1HKfKC7NbSQ9FLZIgChxCiFI6EAwmE3Ipz5kwRpNimmia kjHqPGsAhCK5aUl1AL+qDUejl4XDrtLSzIYRRXHj5nUY45TK6\/UPDliWcdlNLrupqdYVjqsDo9Fh f1w3JlwPQ1FlV\/tgfYWjtcHNnb1PwsIkR2wyntE+mdwNY9x0x52vRaOjzz3r5TjTeQpWBtAAxjSt v7pm\/af\/1ep05mxPJfSZw2HgoS5f3ONKKUXi4cT7bbiixDnDNWOMXTaTy2Zqri05MxzuG4mmKAKA zgxHgpHk6tYy24zZzKZjAZKDAijaRB9hMU3cIMMwVVVVzEfvfs1kGvnzU2UcJ01TV2OGMTU0YIad LAClr49qGmezCeUVCCGqqiQeM8bHC\/XEKqU+VRtsaLzqM59tbm095y7DMIzHTw4LLZJklgBgoMu\/ 0kMqSpxz2dckcm0NnoZK58kzwdREBiEUTWi72oeWN5Wmhl9zxAIkh66T9DhKFKZukGGYioqK9R\/8 0H6LdfixR8sBpGz5YW5ta37gv\/RgEE1kAoXuL34h2dVZ\/sEPuW+40QhHMMcxJlOys2Popz9OnDyZ dVYABWBUVUdaL9v26fsWNzW9nsFEMC6PEwyDYYaJAoCh0q6wfN3ZHMEkcitbvJWl1qNd\/qRqIIQM Qg+d9mk6qa90zPHCFiA5aEYkEps9VmcYxuv1bnj3u\/chSDz6G4Hns6QHxyKAU\/9wtx6aUK2CYSCE EMfFjxzp\/NxnMMvypd6qD\/\/94u\/8x6l7Ppns6U7vCgCKbgSbWq757OcaGhtTKvZzu34A6AvFdFZI BSNghDDDdYRlADirY2KMy9wWp93Ufso3FpIRQgDoWHdA1UlLXclcDnXBWQLfAGTc9XT5zzCM2+2u q6uTMEaT4c6TH4QQIrqe\/kwGQyOgQHTdUJTkQH\/PN76mDA9VfuCDmfsCQhxGFaWe18mMFLojSczz E6NmjBmW6ZMNwziX+ZTIs5cvqVhc40yXdPaHugZCc5mlLkByZA7LRwLxg6d8kew5HsZYGRjAE9av rA+a9NzKLUSQ\/kl0PbjjWdvKVYjnM6thjBNnzqACcxAA6I7Ig7HkrK0CAN0xBU8MiQAhQJgZ0VEi qcy6r0Hp3pEwyU6QzTC4td69dJEnXXK6d7xvNIpmw4LqViiFkUA8kJEg1h+S17SV5ySkBgA5GESp WLOc\/I8Yr\/jf\/5dqg9DOl7u+9Q00yY9MzakyOsparYjjacY0GBDSo9G8MdAA8MpY7D\/9GKnqp6rU 1WW5vT4AyAY5kSDdgEYQGqit4rojMOFJgjCDPU0N31e5mpBWQekqM1uRT0ee0PQf9ET3G9Iav+\/e Vo9FmLoMjHFqqHG0y5+61GNdfrPIe0vMMzzPBUUOjJHTJo5HFY7FBgGM0cqWsnK3JacaAOiyzE6y YaocIQRw9BMfNyIRhBBRlKyUkZknMpnAMCgxcirosjxd+FOAx\/rCv1ekqKpSwnx9CD6UDNxU70m1 LgU4Elb2GKiDZYEXkgpNxPVEguNF02TmWoQZBgTr8XE4Y8GSJP4pCSWR5JU83mjl7CKX8jkdk7Vv nkkMsNZ4PLpXtHzuWPALzQ5vRpwtxriuwk4oPdETRAgBoMMdvitW1cwQ7bfAyIEtkrBscWlLXUn\/ aFTk2arS\/IHqYBINgJTFZaoQIYSQOj6uh8azKqeUnhk1Lc3NyuAg0bRMOU8AwJSrSACAR0\/0P6JY NSOelGWEgJqkn4bEgeToR1u87RH1KRX5RFNSI+MBWU6M69nHTCMei8VjMYQQw7CiSfTZpAG76bG4 sYVN3uqV+mLK\/T4IIlMkECCGoWtqhyD+44snHrpmmSROqWgxxo1Vzrisp6ySikbaT\/vWL60spGJf UORIQ+DZxTWuQlsxxqzNrlJKs8f\/6bCznMaB7EADU1WV99rrBh55OGftC4NSZLVN9\/Zr4ozA0Xa2 vJoRRISwkkwCIX\/FlkMnQ+BxxWJaqDegKLOPJ1KghCQTcjIhh\/ys2WL5q8u6q1+L6WxUM+KRYGq0 QTQtONS\/TB1m0NLp9750sScua+NRBSEUCCf7RqMNlY6851qY5JgV1oaGKKVS1sxmovldGzeReDxV Em5v16MRhBDvcrmv2oIFwdK4qOKmm8NHjgz+7rdZ1ADQKAjVNdMVoEtqK7ef6P1bPCo63alhpqap lBLW6UicCSjJiRHS2U5vCDFi0YiciFusVkppIh4HAJwyzslxwdf3kZvXC0IeLxaWYVY0e3ceGkwt FdLRG6xwW0z5OpdLkRwYYxvH2S0WMIxMMZEcHY2eOF5xy9smC0Dx+7VIOHrqpGVxU\/V77qKaqvhG O773ncDOlyFbbABCgsB7RQFPO5fJZPrg2pZXdhxLmsysZE5VMHQ9GAii1231JIYRDYcRxlPZ6wxD G\/d\/sN7VUFswwtZqFlobSo51BRBCmkFP9QZXNHun978L0yo7AwBgaMez4z\/+kRqPJ2T5Dbx5juNM JhO7cfPyz3yWE7MGH7qu\/\/zl\/Q\/6QHR7Mcue6xnmdH96JFQ6dPrBd13jzbb55YAC7Dk8lMrFizHa srp2+pKXC1DPMQMA4MzjjwX\/+7\/kaDQmyyRXCfa6Ppquy8mksWfXoa\/8mybLmeflOO62Fc2ljIEo QQDn7wMGoZr6rqX17pJZdKAMxq11JZOPBXUN5lGLXULkAEo7f\/1Q5KFfxqOReDKZikR9Y6HrekKW ycEDh7\/8JSWapWV6IaCQmmbOlMqHDOfpg1nWUlb1jG5LGmTWB+J2Smk9x\/BYXFZyJ+GXCjkA4OQv fxH97aPxeFxOKhSAInQ+PjohCVnWDrfv\/9xnVDll0YDDvtAvRg1d14muI6DnU3hQwzD6Wct393WS 2RYSTM1sU98pwIAvV2d6qZCDENIbDHaOjsaTybTEoAAEQAUwzlWKpHYnCGXurxMyFAod6O9XNA0A Epr+Hyf8GmI0VU1nwT6foITQF2P4+c6BWQeUboeUDhse9sdpdvbES4UcDMO03HJrzFUiGwYB0BFK IhRFaJTSPkAhw9AAKDo7cWIAhHS9lxAfw8QYVmEYHSGCkELIqKa1vu\/9ktmMEHrkxOAgCLqmnmeZ kTHyAEpZ9gfHhqPyLKYchsG1FROrySSSejimZG5lv\/KVr8x3w71JMFutIUoDr75qcFwAQdBmV9uW OK9\/a83Nt4yNjWljYxye8N2b9VCAQAMUMoxBi3XRJz5pW78hLJgimi4nkxQhxSDqipXXfvRum802 Fkt868SYhhmYbV3ZNxwy5vjo+JqasplHpiLP9o1EUgwSeLbUNWVtuVT0HKn8wytuuHGwvT0mSRWr Vle3tJR6vU6nk+f5usWL9z7865HndriBmgBmFqcUIQUgoOlyc8uVH\/v4ijVrWJaNbXtLMBgc7T0z evhwtKNj\/Yc\/7HK5EEK\/PT2cYAQgs4cgnI9b\/l1\/6M7lssNqmaGaZOLsVjEcUxFCwUgSMrTGl5ae wzAMn8\/HcZzNZhNFMa3qppSOjY0dfWVPzxN\/wF1ddowEABYgx3KqY6wjFDGMiNNVcd31G26+pbau LhUGnZ6tyLIci8U8Ho8kSXFFvfNvxyK8Gc3HMwYERFHuq5fevrptZuFxum+8o28cIcRgvH1DvchP aGIuLXJk3ux0o3kymRweHu5ubx\/a\/6ry2n53NCyyU5JVp3SUELp8Zdnata0bN9U1NKTyJqSPE5DV MwpBqdz4CCGMjg37f9YTxuw8iWdA1NCbcfITm5fjDNOaSPRlHnvm7ftD8t6jE2E+65ZWlJVMSJpL pVtJYWbvbUmSGhsbq6qqwps37\/7pT5Qn\/sAzUzJWp1QvK7\/1i1\/yer1mszkntgAAHj\/atdvhdXtL 0mYSUlZpGlFVRUVzgJljncKU8lSlEFR0hJDbxIsMRgjpFMZVg5zNy4wZTBY3\/T9mKvEEIaT3hb2\/ e9sVmWYXm1lgGJyaqsRl7RIlx8xIJTU3mUzl5eWNmzcfePwxE3BpfyyN0JKly2prawt5AXaOx08P q6beYKYRjcx5tPHxtrIba1wamVBO9MTUj+\/uFhjml1ctMrEMocCzTEwjfx4I\/bJjTJtNhzEJZqA\/ MNgfTP82DF2L66Pj4dpyb7pQFFiRZ1N+yHF5KuzvzSDH2Oj4s0\/uTsrqhi0rlq5uehPO+HqQGkBU tl2212QyCOFYFiFEAZLEWLxqNcuyeZlBCOmJJYHjNHVOcmI6zCyz3x\/\/t9f6Jg4ICAEwGESG+e7h oZdGIjyDN5TZ7l1a1WATP7+\/b26cAz37egCAcEL3WLCmrDTTD0gSuRQ5Ekk9PSY97+TwDQe\/8emf mTkXx7KHdv\/+jo9cveW6y8\/3SV8nMMY2p9NU32B0drAMRggblCYwrl9RcGm+pKYPyTpjJQhjhM9N ewQUQMlRewMghDRCFYMoCD07EAopxg82Na71WPZPxqSc1SkQMViG6RqPbs3ekDbZq9qUEv28K8H+ 9uRuC+eSRDPPiaXOyqd+89L5PuMbAlEU7U3NOqUEYYKQDkDcHk9FRaH6iqZdjqLiaC8OB7CSgIwl AecMhPKXoswNr\/mjgwltg9d2lqpcHZQEjQT0ga5qf3e5kNvupskAH51Mubydd8khx5NsxnBdkV9H YOqbCIZhKlav7vvLnzjMIIQog+wtrTOsL19is\/7bjVcNDA2\/0t2\/zx\/sNjhkKyEmCzqLBZdgY7n9 6RuWpX58bl\/3oUA8tTxLSik+UQnQUEIpNXHpkllACZLjJDLuUiKr7PyW5bVtDfXl5WU5tdK3lalB f8PIcbhn\/Md\/OU0IfPi6pnUtnvRDXHfV8qP7\/uhxViCEZCW2fP2FPuaYfFi4afMV8le\/QVIOwxjX LVo0w9JaLMt6PB63293a3PS2UKh3aPg\/D53p4EWO4+bu4nUkEL\/\/yEDqe39MQWnJAVm+iyaWGVf0 OToKUULlsdHPNtnXtS33er0Wi2XuYTVvDDlUnfzwjyeDURUh9MM\/nvzJP260ShPPcdX6trd9IPzn R3dqirFi\/eL3ffyWvEcgFBAAw+ALJHsaxthTWrrl2mvT475CQ9HMXTDGZrNZkiSv17toJNERhzk2 IUIIAcR10hWWcwpTf9LH4RjcYJN2j4TnemSgVFNv3nqlzWZLXeGsN57+\/saQg1BIjXURQqpGNCNL 4m2\/aeP2mzbOsPvhnvGf\/OV0QjVu3VB726baC4QfDMPk9cGcFalQehPPAiUI6FkpGad1FhOpItLl b2sokzhmx8D4HLsVAMoiKgjCzHlO01kbWAanZ+JvDDkkgb19c91vXjwDADetr3FZz+KZJlXj+0+c CMU1hNCvn+9uq3W0ZcTuXbwoEXkgGlCYI9UBwCGwK90TUfBJQk6HEim51eqyqISKLLOuzPHWOs\/9 7X3D8eScDooQEFIyh1xy6mR6IIFPr7T+BpEDY\/z2zXWbL\/MaBKo95rN69Q0KyuS6OABIVqbmcpRC YCwU8IU8XqenzHUB5vidARU2CYwwAjpHx\/LOsLzIYf6XVXWpn\/6kdt\/u0zohR4Ox9WWO9WUOndKu sPyxF46fCMbnfhlADDeH2dkcV9MzWJMw1Xu+YQNSjHHFtNg6AIiOjva\/tj82NsYJQunixVUrVwmS lFnHJvHv3db4q+e6dUI3X+Zd0TgRbxIORn\/xwB+6jo1wDG9QvaGt7IP33OYudb5RF3y+0eh2UKUH zBbEzMmj+JFTQ4+cGppefs+LJ17PZVBdr3dIM79XhNBEckIxmulmXJAcAPDKSf+f9w9WuKT3b19k z15mgFIYCkWGQtESi9TgLeHzEVMOhV5+4IejO1+ys6zAsgDQoxuq1brmw3+\/5IYbccbl3rS+ZkNb qaKRyhJzKvpK0\/Tvf\/VhNcSWOitTRA72J+\/\/8q++8L27JfNM6WmAGAjl7YwxYgpKVwCgkD+GHSOM MXu2wyCMca3H5URGghB2\/gQeUEqU5PJFJTOTI6ka6TGH1TwHcgz4E\/c\/cUI36PG+sE7ovbctSW8a i8a\/8cfnDwfiWDRRXa+TmPuuv2JZTZaCKDY29uS9\/+QIjddbLOknaxdFCrT9+\/eP9\/Ve+Q+fzHzi HntWVvL9O49GfKrTNhUYbhKkSCi55\/mDVxce2wLA8J5fldCdoteZI8xpIJKs+pi1YW3eZjaIvuPY NxY3miWTKeeI3f2Ry2s+JYmWs+WHRZJaHeJ+XWNYbr5G2GAYJBpat3jZzNUysxDYM1JDFSTHSCiZ ZlO\/P5HWtyc1\/d7\/\/XPA4rbWlKa2+nXtvt8\/9+P33lBfOuHqTg3jma\/9e0k4bBFz33IG42qrpf8P fzjd3NJ6zbWFzn7icLdFsk973LbTx3uvnnHiwy26pvvhR1q8J3inOZMfOBojXV\/Tyh8Wzfbpe7EM V8pu+evu7zS2lEoZrw6l4E+O7+t4eMvSj54tOTiO21pXtvfoCCeIaJ6EB1GVRTypq6yY+eJTqV0Q QgLPpnUQaAb1+dI6Z22pBSHEYHTdmqr00f965PQoNvHmKecilhfAXf7QrgPpkp49e7RTpzJTAGQC Y1xpMb\/28\/8hhfN+FrAq4Zknhhhjt7eC2fwvvoEoHfKjsQDyB1MfrGp2rS+287\/zHhljvGTxxlLm qv6+sVGffywQTH0C4+MYo0H1b70jh8\/W8QVjvLSm0iwIQOkbGR4z9w+hDEBrdaUoztQREwrppBUl DlNmUHVBclhM\/Dc+sPpfbl\/yzQ+suW51Zbr84JlBweHMqcxJ5qPDU3bhzheec5tmuiCWYXDA7zt1 slCFxW11spI7JpeVeENz9cxNwrJs3cqtozW3JGQjpzkZBlm7fxvpfnV6M6cs9VtXfkALOZVpO3Im uq\/\/x0klPnd+AMDpQOR7ZxKOmgaOF94cv+LcD8bmEk+7tfoXR84YpKBSJBJTlEkdVakza6Y5k7iz SfxVS8taa7IyjQBCeedmmY8t0tcnzDZ3klh2vK+v0NZN21ZKTqzpU87Qmq5yZv2qa9fOfNiUjrJy +z\/0GWWGQnP880SO0Je\/qSXjeXcs9ZRtaPxwOKDpaspmll6fDVHJt7fjkbkz44Ve35eO+IZlLRwM EF2fH3JQqiTlhCw\/OiR\/dfeJhJrfqpWRJB7l5HLJJUcsmnjikR0\/\/+Hjr+05RvPJ8JV1lVo0nFNI lOSyCvfU05lD9ioGY1K4mkkS7\/m395pLqT80EokHA+ER0aX\/05fvstrMqad\/smffY3\/7v3\/d9fNo YjxnX4yxt7wKX\/EpXwzASPEDpz4YI6feFynQuTAMs6z5inLuqkRUoyRX6gwoz5wZbp9VeBBKHznW \/\/2ucCAaj4ZClBjnL75t9g+ApiqJWGxPSP\/n54+NRHKFn6qT9BpnHpc5J5FLVmhCIp785n0\/6z0e io7p+3ceVfVk2\/LGnJtv9JbsOHAkwQjspBWK6jrxDX7x5i0uy4QCo+eVPZzfP\/MULqyoi265xVVd OBLcZt589aolaxoWL618y01rb75zq8M1oT3ceeD3T+\/7ITX5xiKn9h58dnnTttRySZn8kEqq+gaG HJEOXsyaiGKMmcDJhHuN6ModpqXU3h7roiOdL7ImleMzNMkIMRwaHDvdXHY1xxU0vwHAi6fPfOdA b1LTU0tGZm5709yMIftclBJN08eT2pETJ25e0ZJ5130jEV9wYjTa1uDOyWKb1X57nj+kRrHVbBd4 scRe9sKfDsRjcs6JTTx\/\/7tvXExi0YEzsn80PjzgCI185\/arG0qnloOv37g5PKNDFAAkRbFy2fKZ b5Jl2Yam6rWblja21LDc5DIUurLryG\/Lq22iibM6TII9uffwUzk7YoytVmv51Z\/oNcqIkiU8EEIm jtKXv2Wo8vQzYozLvJXr6j8cDRiGlpU6DiMMkm\/v6d\/MLDyWlDpsgf74eABSMdOUIkNHSoLGQkRT gJ7\/iCbDINEQoyawriFKEQUEYCjyeM\/p6ypsmRevG6RnMJz6Lomc15Wrw8wiRzwq86yQfkxEp7qW R\/KXO20PvO\/WX9311q+9ZdV\/3bbl1x99x8q6yswKbddeKzuceuEwnkAy2fb2d4iWmeIpCoEQg1A1 7U7NC2wiGZleDWNcVlkDG\/\/JFwMwILdz0c6Edv60UOeyovXKUnZzIqpRghDgyQ9iGNQb\/3PfyPEZ +OF2Oj+yppnEwqBrSE2ieIiM9FYE+pYkx4zIOBganFdmUGLEwtJIz9KkTwoMMtFxRksiQ9fj0eWC ft2GtZnasN7hSNpwkXf95axuRTKLLzyzTxKtGGNVS3pqzFffuD6vcg1j7DRLtW6n126dXoEVBE9L y4Gnn7YxTE7nAgBhVYXm1rd8+j7mnDJVcCx\/ZvBETB0VRA4oBEbiW9e+3+OsnF6TYRjJXdXfe8Ye 6+aFrCXJMcZ47LjsvVx0lk\/vXHieL7HUH+54gRM1NttpiuHQwOjJ5or8nUvKJl7lsh8+3TUSDLmi Yxsl8v5l9XddsebqZS1n+vr7EyrD8+fqRzgbgBrxqOAf+Np1G96xac36UqtLjSrhYCQW0yOhr92w eVF9XbqxZEVvPz2WGlaaTdzyJu\/0zGBZ5HC4bO4y+6EDh8fHg5WLHB\/51DstNvNcrywbNm9ZxarV R\/btS0bCPMuyGANCcV0fkmX3tquv\/9K\/8aY5LdSYtwEW1a7q6enq7e+RI\/jadXevaNmSV8mTamZa sni0\/W8uRmZZJiUAUh+OpbEzh8Wlt7LTmhljbDFbqWLp9u0RJZbJfKUAUS4eCar15asKnVQQhAar 2MRpH9y86vqNly9paS4tLXU4HCvKXSc7uoYTGuZ59PqXyskGUEJiEX5s4AtbV1y9aYPb7a4oL1ve WLeprny107Sy1LZt3Zp0xm0AaD\/ti04uH3BZo8dlz9Mc5zeoieh650svnnllT8IfYHi+dPHi1muu LV28+PydcTp0XT\/10mOuPV+tdPEMx0zNwzGigPyLP+Ddfs\/0ZgaARCLxu+e\/LpsO2Z0izmpKrCZg e\/O3asvzR5IBACEklZA007+GEDIwOPSdP72wK0ZZewkWxDeKH0AMIxY2B4a+fN2GLesvT69DmGpc wzAopYIgpAsHfbH2jrHUvm6ntKFAQsGFH\/EGANFopON\/P9scedluy87tilFC5+ltD1mr2\/Lyo3+w 53e7P2UvVyULn6Pd4ZTad2z4D54\/O28gSqnP5\/v1C3se7fZThweLJsSwZ50rbuoSEQKgWtIIjzeT 6H03bFm1bGmhVWoBICZrdosYjil7Dg8RCgghlsVXrqoptHj7QoiyB4ABvxxL6rZ8eX1Tcp6ULB5t \/5uTUVgWT01QAfEMjQ+eFJfeMn0AhDG2Wux6wnTGv1eQ2Jx3y8ARJYZrSpfNYLbQCT3YFRz0J4YC 8lBAJhRcVtFqtS6pqWjkSHd\/f1jREMudu+XF0GkszI0N3F5l\/fTbrmttbk6Lh7w43DHGsfhwx5im T8yx2xrc5W5rofoXPTkA4KEd3d9\/4sTTrw0xGF9W68zLD7PV4dfNRvdLNgEzDE6LAYyQqPrHVc5c tybvjm5n9ZkzXQkyxGf7U2GMxmKnyy1rrWZXofYgFDqHokmNqDpVdWoROY\/DlFLV11VWbKz2DA8P 9Rgsw56FE3LW8Ykhhnzfu379rduuLCsrm9lzGGMcCMknz4yn7akVHutljZ4ZdrmYfKvyIhTX\/vzq ICAEgH63q0\/V8xsReJ6vX3fjaOlVEdmgJGv6xyKQ2v8nNnw6r83FZrVtW\/X3SsisyDrNNqExgv7S yQcMcnbLBqLJfBCNjY3usgqMmQl1CKVACKhJxtAwMRAh2R8DGzrWFKrrqcqIUoywIUhLWludTues \/s8o21fDYRVXNJcyM+5y0ZND4BlJnOgRbCaOLTAJwBjbHQ7v9nv6NFdSJUCzFFwWRk3+9as03\/Kt GOOaqobVdXdFg5quUQpTegoEKIF79h7\/3TmM21IN2ROOIzQVskQ1VfcNlYZHpPERITzGRQNsLMhG AnzYJwaG7YEBKTBkKDJMJqlCCKkMNxyKzPGkmeb4yxo9PDeLKuGi71YEjq1yW7pHow6L8ImbWyvd BefeGGOzzTGmmYzul60CZjLeGoyQpPrHkpy1IU\/nwjCMx1HdfaYzQYYEgcUoQ22KkS96qtK2Lm\/n Qij0jyXSzHFYBI9jasao6foPXj6ksnzqQoBSLRq6wky\/eMOV2+q8l3ssG9zmy12mK8psW6tKbmqu vn1F82Vu+47OASyaMDPhBkwJWemS2mqrZhUbCCGBZ0WBFXgWAQpFlbIS88yrAi6EKPt1LZ61zW48 h8UWBUFoWH\/Tyc6XbbHdbgvHZJunze0PRlu2OqpbcvbCGNtstm2rP\/zYrvt4QTNJfOb8ghWM547+ 4F1Xfe9sZy6BSDSoEZ5PBckioiRNkcDH7rphyZIlCCFKaSoZZmoyzDAMwzAN8fjV3YPPhRMCwyIm pbRlT47453hGgWcXVbtQat0IY\/bIhou+W5m4jTmE66CUYtflKrvmnn7Vkci0ywMCABurxp7+iqHn MW0zDFNXvWhV3Xui45quEaAT6eWAIgCQcdeeo789286lYzTAMpihBqIUiKFHxt\/ZWt3WtJhhGJZl eZ4XRdFkMomiKAgCx3EMw1it1ru3rrckY0RTgVJMdAZItz9E55qRYeo5CDwr8LN0KwuEHHMHxri6 sYVe\/tHRGFGNnByN4Ike9+18KG8z8zy\/YcUNTmalHNdyMlNiBh33\/W400HtW3kAeSdhm1p0RH46N o2S8TI+9d\/uVaf1VXjAM01Rf+67Lao1EFMXCyDe4KDF2VaXrPCmrLvoxx9kCY8yyrOSp7e08YVMG RBYjhKeW4kJIHWgni68x2VzTdxQEwWGqPdL9AmciDIthckeEEGZo70DH8sbrMi1NM4w5MMYlNuvl jTUbq0oqQCfR0B2r2zasXD7rpINl2TqX7dTJE+ts7IfWL3nv1g2XL7uskOLrdWIhjDnOFhhju93W 6CAeTjJ0Pd14gFAkaRwLcZfpyJlvR4ZhrA6xtErCnGoQknZ\/oxQiQYWPEV3XZw0fSoPnea\/X6\/F4 2pqb3xaNWiyWuaw2ijEuLyv7zvvfLoqi1WpNreBxngJIL0VyAEDktcfK4icMw8j0dlMMGAhr7KZ7 PeX5PVUNou\/p\/Bkj6LpmZAhySMaN8Ch719UfOdvY2gkxJkmSJKE5tzHLsmVlZXOvf864FMkhj\/UK +\/8bCMl0u6UAwbgx6Fy\/ZfsdeVMtAMDBjqfCxknD0DMpZWh03J9cW\/\/hpsWt59Za5xAx9eY8qAly DAflJ17pd1mF2zbVmYTzuiDIPIMYevyZb5TQhKZnLd8XTdJTYb71Hz5rt9vzPv1AeKB96DeUISSD UkAhHtEktW3b5lvPU8c\/j+AQQknV+PLDh\/wRFSEUiKj\/eGvbfF\/V+QIABPf91uE\/oBE9c0E\/1YCh sMZv+ueGpvxvv0H05448AGxS1\/TMoykJEhymd23\/mMvlWmDMQKmpbO9YPMUMhND+zgBduEb8xFgf u+9HlBKDUAoo9TEIBONGj7R87VvvyjskBIADp\/8UNk7qmjGl3qDI0CDkT66ouaOtZenFlQFgjmAQ QtUei1Wa6F9aaxzMgnsDUiDEiD37HTON63qWfiOm0NNhdskdX3A6nXnf\/nDMd2jgEUKIQchUOBmh 8YjGxhtueMudJpNp4YkNlOpWbBL\/hTuX\/3Znr8sq\/N32N9VN600DAIQOPmUd2a0ZRk6HMhzV+I3\/ 2HTZ8rwNTCnZcfg\/KZZTlEqXKwkjOEzu2n5PSYl7QTIDpQekbbXOL793ZfZDoYZhsCw794n7hQwl NEp33g+U5sxQxmWjT1p29Y3vz+smAwBHunf4EgcJMSAjsbRh0HBAWV33niVtyxdkh5JCnhtTFOXb 3\/728uXLvV7vsmXLvv71ryeTc00ydGGCEjL+12+Z9HBmh0IBYgrtjHCXvfPzqeUvpiMcG9vT8SCl hBgkbYahBBIRjVcar9t6x8za7osduXoOVVVvv\/32p59+OvUzEol86Utfeumll5566inTufqLn1cQ CrpBeY4p5MkBAMFDf5L6XtRIlspLM2AkqgsbP9m0ZGXm4gdpUEp2HPovguNGtspLlUnYB+\/d\/kmP x7OAmYGmk+PXv\/51mhlp7Nix48EHH\/zkJz8531ebBQrw4pHRx3f3BaKqxy6+fXPd1uXl01srGRrV nv+eKV+HMmhZtu2td+XVTwDA4c4dw9H9hGZRyjAgHFRW1b17SduKhdHhzoDcbuXxxx\/PW69Q+Txi x6HhB548ORiQFY0MBuQfPnnyxSOjOXUoJf4\/f1MywqlxaPoTV2hPjG+57V\/dbk+BGcrYrlM\/pTDR oUz0RBQSUY1X6q\/dcscM2YwXDHIlRyyWP916IpF4cy4IADpHA88cPd3hG9cJ9drMW1obr2ptyEk7 phn0sV19mQoZQOjRl3uvWlqWDusDAP+BP5l6X9RobocyGtXZtR9qWb4m73CSUvq3\/Q8QHDcyZygA SpJExuDOt\/yD1+td8MxA08mxZs2aXbt2Ta+3atWqzJ8AMBo409F7ICaPS6K1sXp5bUUbW3hJIkrh eM\/I\/mO9mk7aGso3rmgQ+DyVdUJ+\/Nzex4\/38u5SzuRCCPeq+s4X25tfPfrvt28vd9jSNWXFGI\/l xmqPhpKaQaVJcigRf3LHdyWgmV5PABCSjSHLkm03fSCvfgIA2jueHUp1KCSrQ4mMq8tq3rli6ZoF 36GkkNtC99xzz8MPPxwMBjMLHQ7Hvffem\/4Zl0OPPXt\/f+CA1SHwPEsI7D31G7tQ9\/bt\/1LpXTT9 HJpu\/J9fPPviUZ9ocSGG+f2egbq\/vPb1T9xY7s5KzwUA\/\/m33U\/1Bs01Dek2Y1iWK6\/qTSb+6ZE\/ \/fQDtznME4NiSWRtEp9KbZuGyyrw3KTYoHT0qW+Z9bCW9fajuEb7EkLrBz9T6vWifIjGgztP\/Iwi QjJWtwCAREwT1Pq3bnuXxXLWyeMuUuQK1cbGxieffLKpaSp9fUNDwxNPPNHSMuFZmUhGfvLYpyL0 eGWdw+6UJItgtYtl1XbW7v\/5H\/91yNc5\/Rw\/f\/KVnaejVk+NYLYJJovFVT6iWP\/9J08b2WH4xwZH n+oYkkrzLHXJS5ZxyfnLl\/enS0SeveHyXMP6LRtqUh6zAOA7+DTf\/aymG5RCWlOuEvDFDG7t+1pW rM07QwGAp\/c9YKCorpHJAABEKShJEgvgG6\/8eHl5xSXCDJRXz7F58+b29vbnn3\/+4YcffvbZZ48c ObJ169b01ief\/xFrjVhsuSm\/BBNXUsE+9uz3cuI4FFV\/aleHZM8a9\/GiuXNUPdY1klnzjwdPCO6C fblgczxzul\/Rp6IHbttU+55tjTaJR5OZbm\/ZUDtx0mgw\/sy3EVCDTHn0EQph2Rg0Na296YOF9BPt p3f0h\/boup650r2h00hQuazyphXL1l4iHUoK+UcJZrN527Zt08sjsUDn8K7KenvevQSRC9Phrv5D rQ3r0oWjwahKOT6nJTDmTJaewcDKlqm3v8MfYh0FV7vBGMuYGw1H0wktOZa548r6m9dVJxTDYuLS KYsAYPAPXzfr45qeqSmHhAa9MbalcIcSiQefP\/IjQMTI6lBQIq6zSvUNb3nPpdOhpHB2qt+ewSOS daaYO5tD7Oo\/lFliNgkIyPT1H4ASi5TlN0VmW18AMDKmuVlLIudxmDKZMXpgokMhdMq5XCNoLKbD ijuWrNmY108TAJ5+5QEDx3SdZLqkq0kjMkbeuvnuyso5xYYsJJydJ5isRDl+Jj6xHJNIRjNLSl3W Rq80oussN0UFAGD02Oq22syaVXZL0DDYAp52AMATw2u3pn\/2jSWsEpeT+lhNhCN\/+y4ioBsYoaku IK5oA3zjNe\/4eCH9xLGunT1jOw0j5eWfXhAUR0NyS\/kN69ZsnvsaNgsGZ0cOq9lp6DOFSBgGtVgd mSUY43vfu+2f73+Kd1ZzvIgQopQkgoN337yy1JUV333dsub9Lx02l1XmPTJRlcsr3XZpggqjoWTn UJRj8dpmj20yyg8AOl\/6fVdEJLQ2Z3edh9bb7i0vz99tGYb+4t4nZL9nuoRz4Mbbrv+Q1Wq91JiB zpYcDVXLki8Z4IFCTyoWVppXrM4pbGssf+DTt\/74sZ1HzwwaFNWVmu99\/6ata5tzql3V2rjk4InT 8ZhgteVsooTQsaG733dT6ud4TD3eHwGEdALt3eOXN3vSro2VG24zt26bHsfBcZzX6y3k+I8x847t 9+VV9JlMprKyskuQGegckrc8+tfvDCf22hx5jHCqYpCo5xN3\/jCvNgwAUqMAjmUL5TwKJeR\/ffTp bo2R3N7UsgoAoMdjTGjs32\/esn5xLUIooej7O4KZi0E5zPyaJjfHMrPeywyrJpzbjjNDM+jOY770 WKq21NJa4ziH48wXzpocSTX+34\/+E2MNW+1Zs1lV0cOj6CO3\/YfXPSXSh4Ly73f18Ry+86qGkuzZ bzjm\/+MLPxoYO2oxua\/Z8IElizdOPlDy1METfzna0ROKG4BKJf6KRdXv3bS6zGFFCGk6ebUjIKu5 eQpLHaYVja4LzYftkiMHQiipxh9\/9gedI7snNaQ0EdXcluY7rrsvM6ufopF\/\/smro6EkQqi5yv5\/ PjQVwK4b2gO\/+QRvD0kWgRA62h9\/\/w3fbqhaOvupNSOpktFQcjAwlUW0pdpuk3ibxKfVoxcILnZy nEvciiRa33Pj50PR0Y7eAzE5ZBItjVXLK72LcmRvKK6OTabj7xyOEgrc5PJhg76OJB2xW+wIIZZl POXSwRM75kIOSeAkgUtqJJMcFhNXYhNn3ffNByE0c37+RicQPO84x6AmjHGJo2LDiptmqON1mFpr nCf6wwihzZd5M51xRF6ihKbXcCGE8txZtK4lO0V3IKK6bRdizEgw2zRoFi8y7ep5jHhjWeaL717+ 0tFRnmO2LM1ywyn31Ne4144FDjtckqoaUT\/evPXWuR\/ZKnE8x6RtrcPjck2pxWK6sKL3dIP2+rKW Z3BZL0TxNgPmLdWkbqi7Dv6hd\/i4VXJuXXdnqav6rHY\/ORAe8Gf1LCsbS8ziWS\/Gdp6g6eRoXzi1 CnMKLquwtuki81O\/WPOQKhrZc3LMyPC3YBlc6ZY8dpMwr8NSg9BQXBsKyjmp6y5vcrsuyIHRDLhY yYEQGgwkTvTPNVfa\/KKm1NJabb+4xAa6qDP7VLnN9WXW13+c841Sh6m56uJjBrqoJQdCCACGgnLH UNQgF+JdMBjVeq2LK2wX3SQ2hYubHCkoGun1xVMOpPN9LRPgWOyxmxrLrRbTRWzLXQjkSIEQGleM pEbm\/Y5MAms1XXDq2nPAwiFHEW84Lnp2F3H+UCRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEF USRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBVEk RxEFUSRHEQVRJEcRBVEkRxEFUSRHEQVRJEcRBfH\/Ab14roJLxN5fAAAAJXRFWHRkYXRlOmNyZWF0 ZQAyMDI2LTA0LTIwVDA4OjE2OjE2KzAwOjAwetDoGQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0w NC0yMFQwODoxNjoxNiswMDowMAuNUKUAAAAASUVORK5CYII= \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Efficient Software Architectures for Distributed Event Processing Systems<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Christopher Mutschler<\/a><\/span><br \/><strong>Start date: <\/strong>15.11.2010<br \/><strong>End date: <\/strong>31.12.2015<br \/><strong>Acronym: <\/strong>ESADEPS<br \/><strong>Funding source: <\/strong>Fraunhofer-Gesellschaft<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Localization Systems (also known as Realtime Location Systems, or RTLS) become more and more popular in industry sectors such as logistics, automation, and many more. These systems provide valuable information about whereabouts of objects at runtime. Therefore, processes can be traced, analyzed, and optimized. Besides the research activities at the core of localization systems (like resilience and interference-free location technologies or methods for highly accurate positioning), algorithms and techniques emerge that identify meaningful information for further processing steps. Our research focuses on automatic configuration methods for RTLSs as well as on the generation of dynamic motion models and techniques for event processing on position streams at runtime.<br \/><br \/>In 2011, we investigated whether events can be predicted after analyzing and learning event streams from the localization system at runtime. As a result, we are able to deduce models that represent the information buried in the event stream to predict future events.<br \/><br \/>We developed several methods and techniques in 2012 that process and detect events with low latency. Events (composite, complex) can be detected by means of a hierarchical aggregation of sub-events that themselves are detected by (several) event detectors processing sub-information in the event stream. This greatly reduces the complexity of the detection components and renders them fully maintainable. They even can use parallel or distributed cluster architectures more efficiently so that important events can be detected within a few milliseconds.<br \/><br \/>In 2013 we further minimized detection latency in distributed event-based systems: first, a new migration technique modifies and optimizes the allocation of software components in a networked environment at runtime to minimize networking overhead and detection latencies. Second, a speculative event processing technique uses conservative buffering techniques to exploit available system resources. We also created and published a representative data set (consisting of realtime position data and event streams) and a corresponding task description.<br \/><br \/>In 2014 we investigated fundamental approaches zu handle uncertainties (both w.r.t. the definition of event detectors and to the events). We implemented a promising prototype of an event-based system that is no longer deterministic but instead evaluates several possible system states in parallel to achieve a detection with a much higher robustness and correctness. The domain expert can parameterize the event detectors by attaching probabilities or probability functions to the generated events.<br \/><br \/>In 2015 we improved, optimized and published our approach. Furthermore we started to investigate approaches to learn optimal parameter sets for the event detectors. Thus, a manual adjustment and tuning of parameters (like thresholds) becomes unnecessary.<br \/><br \/>The project is a contribution of the Programming Systems Group to the IZ ESI http:\/\/www.esi.uni-erlangen.de\/<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"gifzumints\" data-href=\"#gifzumints\" type=\"button\" aria-expanded=\"false\" aria-controls=\"gifzumints-section\" id=\"gifzumints\">GIFzuMINTS &#8211; Grundlagen der Informatik als Fundament eines zukunftsorientierten MINT-Studiums<\/button><\/h2><div id=\"gifzumints-section\" class=\"accordion-body \" aria-labelledby=\"gifzumints\" role=\"region\" name=\"gifzumints\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/GIFzuMINTS_small_image.png\" alt=\"Grundlagen der Informatik als Fundament eines zukunftsorientierten MINT-Studiums\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Computer Science basics as an essential building block of modern STEM field curricula<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Marc Berges<\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/novac\">Daniela Novac<\/a><\/span><br \/><strong>Start date: <\/strong>01.10.2016<br \/><strong>End date: <\/strong>30.09.2019<br \/><strong>Acronym: <\/strong>GIFzuMINTS<br \/><strong>Funding source: <\/strong>Bayerisches Staatsministerium f\u00fcr Bildung und Kultus, Wissenschaft und Kunst (ab 10\/2013)<br \/><strong>URL: <\/strong><a href=\"https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/#gifzumints\">https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/#gifzumints<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>The increasing digitalization of all areas of science and life render competencies in the foundations of computer science essential for all tech students and more. For the success of their academic studies, often their courses, especially the introductory ones, are problematic hurdles that may lead to a dropout.<br \/>For this reason, this project expands the support that students get while they are still at school, while transitioning from school to university, and during the introductory phase. To address the study orientation phase when future STEM students are still at school, we (a) use our regional and national contacts to provide support for seminars and we (b) offer advanced training for teachers as they act as multipliers when future students choose their degrees. To address the transition from school to university, we focus on the fact that freshmen show up with different previous knowledge. We offer revision courses to bring the students onto the same page, i.e., to make their knowledge more homogeneous. In the introductory phase, special intensification exercises and tutoring that take heterogeneity into account strive to lower the dropout rates.<br \/>In 2018, one focus was to evaluate the effectiveness of our measures: the increased range of exercise groups, the more extensive support from the tutors, the correlation between exercise attendence and dropout rate, the effects of participation in the revision courses on the performance in the exercises and in the exam, etc.<br \/>In order to attract and qualify teachers as multipliers, we expanded the range of advanced training courses for teachers: we demonstrated innovative approaches, examples and content for teaching so that the participants can pass on to their students what they have learned themselves.<br \/>To quantitatively and qualitatively improve the W seminar papers written in computer science at school we compiled a 24-page brochure and sent it to schools in surrounding counties. This brochure supports teachers in the design and implementation of W seminars in IT by providing subject suggestions, tips, and a checklist for students.<br \/>The GIFzuMINTS project ended in 2019 with a special highlight: On May 20, 2019, the Bavarian Minister of State for Science and Art, Bernd Sibler, and the deputy general manager of vbw bayme vbm, Dr. Christof Prechtl, visited us in a status meeting. Minister Bernd Sibler was impressed: \"The concept of the FAU is perfectly tailored to the requirements of a degree in computer science. The young students are supported from the very beginning immediately after finishing school. That is exactly our concern, which we pursue with MINTerAKTIV: We want every student to receive the support she\/he needs to successfully complete his\/her academic studies.\"<br \/>By the end of the project, the measures developed and implemented were thoroughly evaluated and established as permanent offers. The revision course on computer science was transformed into a continuous virtual offer for self-study and updated to the latest state of the art. The course for talented students that prepares them to participate in international programming competitions was expanded and set up as a formal module of the curriculum. In order to ensure that the measures sustain, we applied for subsequent funding, which has already been approved as CS4MINTS.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"gratra\" data-href=\"#gratra\" type=\"button\" aria-expanded=\"false\" aria-controls=\"gratra-section\" id=\"gratra\">GraTra &#8211; Graphen und Graphtransformationen<\/button><\/h2><div id=\"gratra-section\" class=\"accordion-body \" aria-labelledby=\"gratra\" role=\"region\" name=\"gratra\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/GraTra_small_image.png\" alt=\"Graphen und Graphtransformationen\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAQAAACXxM65AAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA\/4ePzL8AAAAJcEhZ cwAACxIAAAsSAdLdfvwAAAAHdElNRQfqBBQIADR+V1FBAAAF3UlEQVR42u3dfUxVZQDH8a+YipmK hIqiYb6FxkYznYrpCiubWvmWFdHKynyZMeeqrWlDzXKuUjcdLWP24mulOVCnW76UI7HhWw2EJBVM RMj3NJEV9seRgYnsXu5zn3OYv8\/GADnnOc9z993duWf3HkFERERERERERERERERERERERERERERE REREREREREREJJgauT2BYDkfBkXRcKkl\/H3njV9XQ53v1xpB32wYlAlNK4I7nxC3H5DbxR1uT8CE \/BjIioefB8KBPnC0K7QL833\/uIOQlwi98oI3RxVtSYN9js6Pga+fh7WJcKR74OOFn4HMAdD99+DM V0Vb0uCK3tcX3kuBLSOcswaTYvIgqx+0uGx+3irakgZz1lHSAaYvgfgx5kuukt8LFrwDzDI\/toq2 pEE8R3\/5Mry1EM63Cf6xml6FnBjoUmh2XBVtiaefo8tDYVIaTHzB3jErmsHSZGCG2XFVtCWefY4u 6QDjNkB2f\/vHbnUBCjvBXZfMjamiLfHkc3ROLMRvgeJO7hz\/YmvYPBJYa25MFW2J54rOHAwJ6XbO meuSPhoV3RB56qwjfRS8uBrKm7s9Ewg7B2Xh5sZT0ZZ4pui012FaKlQ2dnsm1XJ7Qo8CM2OpaEs8 cdYxdzZMTXF7Fjf7NQ5Q0Q2Lq0X\/2xiSl8K8yW4\/DLUra29uLBVtiWtFX2kOz66GjFFuPwS3dlbn 0Q2PK0WfawPD0+GnwW4vv26VBjNU0ZZYL7o4ChK2Qm6s20u3S0VbYrXoomhI2AHHurq9bPtUtCXW ij7SDYZuh+PRbi\/ZHSraEitF\/3afU\/PJKLeX6x4VbUnQi86JhaHbzF4Ja4hUtCVBLTr3fnh0J5yJ cHuZ7lPRlgSt6LJ2MGiTaq6ioi0JStHlofD4Bijq4vbyvENFWxKUoicuhz3xbi\/NW1S0JcaLLugB aw7DrDmwOgmOdnN7id6goi0xXnSPAmA2pE30Zs3tTzn3W7oaave4KtqSoJx1ZDwN4z9xe2nVOhbD 6PUwZr1zR7CZ8+Hjt+3OQUVbYrzo3YPgiTXuv3M\/6gSM+q664pBKWHT9b2cXOJ8wuBBmbz4q2hKj RR\/qDY9kuPepqrZlkLjSqXjgbqfgRbVsF34W5n8EKfPszU1FW2Ks6L9awoANcM7ge4r9teBNSFoB H\/qwbfJiSJ0GpZF25qaiLTFW9JRlUNCzfvu2LYMeh+Ge4849Mlpccu5vlznE9zFan4ex6yDJx+1b XIbU9507j9mgoi0xUvSnU+CN53zfvulVSNjuvFobsQnalUHx\/7aZO9u\/oh84AM2v+Dfv15bB4hlQ eK+JR6FuKtqSgIsuiobYhb5tO+QHePUzp+JWFyHD4EKii\/zfp2kFrEyBV74yOJFbUNGWBFz0B+\/W fW23SQU88w0kL4I++2FbkBYSdaJ++yWucq7k1faZmpBKc\/NT0ZYEXPTmkTf\/W6Nr0D\/LueYwfi10 PAlf+Dmuv5\/xq+9nAkMqYeNMGJt+89\/uPhPoo1PjOOaGkroEXPTIjbAqCcLOQ69DMHwzjFnnvMrb BUyv57hl7fzbPpD7\/D+ZAYOznP\/1oqbOxwN9dKqpaEs8c0+lmk50gof2+PeZl\/AzsC8Ooop936em Hx+Gx3ZW\/96sHEramrs\/qYq2xHNFH+kGCbugpKP\/+3Y5BpNT4aXP63fGMGIrfD\/M+XnqElicbG5d KtoSzxUdlwt5vQMbI\/QKjPsW5syCzn\/4vt\/+PjBwr3M9PL+7c1XRFBVtiaeK\/iUO+h00N17En7Bj CMTk+77PpDQYsBsmLDe7NhVtiaeKXpUEE1aYHXPYFtg43O2VqWhrPFX03n6w8SnnvRanrn+VRkJp e\/inSf3HLYxyriC6SUVb4om77Vbpmw1k1\/630xHVhZ+KdF45lnSo\/r3qe23vEN3\/IKCibw+eKrou EaeB00BO3duVh95YeGkktC91e\/YqWkRERERERERERERERERERERERERERERERERERERERG5j\/wEq A0nVv55vtQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNC0yMFQwODowMDo1MiswMDowMMZFbXcA AAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDQtMjBUMDg6MDA6NTIrMDA6MDC3GNXLAAAAAElFTkSu QmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Graphs and Graph Transformations<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Start date: <\/strong>01.10.2004<br \/><strong>End date: <\/strong>31.12.2014<br \/><strong>Acronym: <\/strong>GraTra<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p><\/p><p>Graphs are often used as an intuitive aid for the clarification of complex matters. Examples of outside computer science include, e.g., chemistry where molecules are modeled in a graphical way. In computer science, data or control flow charts are often used as well as entity relationship charts or Petri-nets to visualize software or hardware architectures. Graph grammars and graph transformations combine ideas from the fields of graph theory, algebra, logic, and category theory, to formally describe changes in graphs.<br \/><br \/>Category theory is an attractive tool for the description of different structures in a uniform way, e.g., the different models for asynchronous processes: Petri-Nets are based on standard labeled graphs, state charts use hierarchical graphs, parallel logic programming can be interpreted in a graph-theoretical way using so-called jungles, and the actor systems can be visualized as graphs, whose labeling alphabet is a set of term graphs.<br \/><br \/>Lately, we have concentrated our attention on a theoretical aspect.<br \/><br \/>Our work on graph transformation is based on notions borrowed from category theory. The so-called double-pushout approach represents a production by two morphisms starting at a common interface graph. One pushout glues the left-hand side of the production into the context, the other does with the right-hand side. Effectively constructing a derivation step, however, requires finding a pushout complement on the left-hand side. Some people consider this disadvantageous. In 1984, Raoult has proposed to model graph rewriting by a single pushout; Loewe has extensively studied this approach, but the discussion was mainly restricted to injective morphisms. Under this assumption, the approaches are equivalent. Some relevant applications such as term graph rewriting, however, lead to non-injective morphisms. We have examined these cases in detail, and we could show that the equivalence also holds for non-injective cases as long as the handle satisfies some reasonable conditions.<br \/><\/p><p><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"holoware\" data-href=\"#holoware\" type=\"button\" aria-expanded=\"false\" aria-controls=\"holoware-section\" id=\"holoware\">Holoware &#8211; Kooperative Exploration und Analyse von Software in einer Virtual Reality \/ Augmented Reality Appliance<\/button><\/h2><div id=\"holoware-section\" class=\"accordion-body \" aria-labelledby=\"holoware\" role=\"region\" name=\"holoware\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/Holoware_small_image.png\" alt=\"Holoware - Kooperative Exploration und Analyse von Software in einer Virtual Reality \/ Augmented Reality Appliance\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE\/YAAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAtFBMVEUAAAA\/rd1Ard5Ard8\/ reA\/rd8\/q95AreBBq+FArd4\/rt5ArN9Ard9VqtVArt9Ard9Ard9JtttArd4\/rd9Ard5ArN9Ard87 sdhBrt4A\/\/9Ard8\/rd9Ard9ArN5ArN5ArN5Brd8\/rN8\/rd5AreBAruBArd8\/rt5ArOBAreAAgP9B rN5Ard5Art5AruBCr94\/rd9An98+ruA\/rd9JpNtArd9ArOBBruBAreBBrOBCruBArd\/\/\/\/9cuAVI AAAAOnRSTlMANcT8QfU980O0VbayBmj+3Adk\/YywiA0vAYD57lyUbJZpXYNbumWLmwJW+4RrNsUI KbEO+LNSk5pCpboWtwAAAAFiS0dEOzkO9GwAAAAJcEhZcwAAIr8AACK\/AQFPv0gAAAAHdElNRQfq BBUFKCJnur6MAAAEgklEQVR42tXd2VbbMBAGYEGgLSUh0IUtoaxpSxf20Nbv\/2A9OSTGlmVrpFk9 V2An8OU\/0tiRA3aOrtbWB0VLDdbXCH8RYW1sFh21uaHtC9Wbt0Vnbb7TFjarO2ebWcdytph1PGd7 WZfmrff12rarLs3DUX3Hzni5Y9ecuhzP23v1HR8+Lnd8Gn02Nq4BZueMqUFmY2qg2ZQabDakTjCb USeZjagTzSbUyWYD6gyzujrLrKzONKuqs82KaoRZTY0yK6mRZhV1\/Jx\/33vGwaH36kZD4XcFyeaj 40kxPVFVJ4+Noy+LjeNTTy05QjLNqupss6IaYVZTp8\/Bs6JS43NPLTEbUTkrZZ2f82ColXV+zoML d6mTNcrsdNRIs4oabVZQI+bgVbltX3Y2kpgr6h0BNZFZVI04Ds6O6nvE1Khj95mOGnm+oaJu7XVf V73um2f2zje+X9f3C3Q+xBwcaGWdn\/Pg4sdPnawxZud01Dizjhpr1lDjzfJqCrO0msYsq6YyS6rp zHJqSrOUmtYso6Y2S6jpzfxqDjO3msfMq+Yyc6r5zHxqsrWCYF2xvJdpNZ9TmHnU3GYONb+ZXi1h plbLmGnVUmZKNWd\/9qu1X\/9aqX976nC\/ljRTqWXNNGppM4Va3oxXa5ix6pu2XndF3eu8H5\/f+W7c bYv5bspqxqhv3eTli13P7O6Xj3hgMiPUE1eEA3WPTyEcoTlHPX\/ZXqIb6uMAj9ScoX720Y2L238a TYKkb1QrtYc00VE1uTlZHUBH1AzmVHUI3almMSeqg+gONZM5TV1Hz6OHvxlp36hWQg+po59hF7o5 zClqDw28PM9hTlD7aJCaxwxXN9AANZcZrG6iaRbskOhudQCtp341d6tDaC111dypDqJ11HVzlzqM 1lCX5ll0Ns7D6PaPYTbPVGmqPIz\/vY4e0YsWtLS6Ygach7ShZdU1M1QdQEuqPTNQHULLqRtmmDqI luohwYN3ufHSe\/S+j55zXILLMr9ufnpsU68Wa1guHGaZnXtYbr\/3njBa\/sONSeuyGLs6emI3vfPM r8tiN6wXaRHmsTfZqwuQlaVe75Wx9pBA33ip+FLvv8W3GmqsWUONN8urKczSahqzrJrKzP3xlGrF ex38D46k1JRmKTWtWUZNbZZQ05v51Rzmfn7Ejbdf0\/VnOTWfmU\/NaeZS85p51NxmDjW\/mV4tYaZW y5hp1VJmSrWcmU4taaZSy5pp1NJmCrW8Ga\/WMGPVOmacWsvcz38rgMlaK2dc1lo5o9VK5hz1TN2c ruZaK+BU2zCn\/cGRFXNK59M7puSrLZmhaltmmNqaGTIbh2bmYErW1nKGZW0tZ3DWpnIGZm0s50VF szaXM0Bt0twxQk6mxeTY3tiIqPcOD7yHmjF3jBC\/jIyNJLUpM1BtzAxSmzMD1AbNUbVJc0Rt1Nyp NmvuUBs2t6pNm1vUxs1BtXlzQN0Dc0PdC7On7om5pu6NufKuYHU\/UgPn\/AnqVeTenWG3DJr7efNd 4G2OzYznVfXxhtKAW3eby3lRfbxJuuDt6P8D6KKop\/7BemYAAAAldEVYdGRhdGU6Y3JlYXRlADIw MjYtMDQtMjFUMDU6NDA6MzQrMDA6MDA6Z9OnAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI2LTA0LTIx VDA1OjQwOjM0KzAwOjAwSzprGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoA AAAASUVORK5CYII= \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Cooperative Exploration and Analysis of Software in a Virtual\/Augmented Reality Appliance<\/h3><p class=\"project-type\">(Third Party Funds Group &ndash; Sub project)<\/p><p class=\"project-details\"><strong>Overall project: <\/strong>Cooperative Exploration and Analysis of Software in a Virtual\/Augmented Reality Appliance<br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/lautenschlager\">Florian Lautenschlager<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/fjung\">Florian Jung<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Veronika Dashuber<\/a><\/span><br \/><strong>Start date: <\/strong>01.09.2018<br \/><strong>End date: <\/strong>31.08.2020<br \/><strong>Extension Date: <\/strong>31.12.2022<br \/><strong>Acronym: <\/strong>Holoware<br \/><strong>Funding source: <\/strong>Bundesministerium f\u00fcr Wirtschaft und Energie (BMWE)<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/Holoware\/\">https:\/\/www2.cs.fau.de\/research\/Holoware\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><div>Understanding software has a large share in the programming efforts of a software systems, up to 30% in development projects and up to 80% in maintenance projects. Therefore, an efficient and effective way for comprehending software is necessary in a modern software engineering workplace. Three-dimensional software visualization already boosts comprehension and efficiency, so utilization of the latest virtual reality techniques seems natural. Within the scope of the Holoware project, we create an environment to cooperatively explore and analyze a software project using virtual\/augmented reality techniques as well as artificial intelligence algorithms. The software project in question is being visualized in said virtual reality, such that multiple participants can simultaneously explore and analyze the software. They can cooperate by communicating about their findings. Different participants benefit from different perspectives on the software, which is augmented by domain specific additional information. This provides them with intuitive access to the structure and behaviour of the software. Various use cases are possible, for example the cooperative analysis of a run time anomaly in a team of domain experts. The domain experts can see the same static structure, augmented with domain specific and detailed information. In the VR environment, they can share their findings and cooperate using their different expertise. <br \/><\/div><div><br \/><\/div><div>In addition, the static and dynamic properties of the software system are analyzed. Static properties include source code, static call relationships or metrics such as LoC, cyclomatic complexity, etc. Dynamic properties can be grouped into logs, traces, runtime metrics, or configurations that are read in at runtime. The challenge lies in aggregating, analyzing, and correlating this wealth of information. An anomaly and significance detection is developed that automatically detects both structural and runtime anomalies. In addition, a prediction system is set up to make statements about component health. This makes it possible, for example, to predict which components are at risk of failing in the near future. Previously, the log entries were added to the traces, creating a detailed picture of the dynamic call relationships. These dynamic relationships are mapped to the static call graph because they describe calls that do not result from the static analysis (for example, REST calls across several distributed components). <br \/><\/div><div><br \/><\/div><div>In 2018, the following significant contributions have been made:\u00a0 <br \/><\/div><ul><li>Development of a functional VR visualization prototype for demonstration and research purposes. <\/li><li>Mapping between dynamic run time data and static structure (required by later analysis and visualization tasks). <\/li><li>First draft and implementation of the trace anomaly detection by an unsupervised learning procedure. Evaluation and further improvements will follow in the coming months.\u00a0 <\/li><\/ul><div><br \/><\/div><div>In 2019 we achieved the following improvements:\u00a0 <br \/><\/div><ul><li>Extension of the prototype to display dynamic software behaviour. <\/li><li>Cooperative (remote-)usability of the visualization prototype. <\/li><li>Interpretation of commit messages for anomaly detection. <\/li><li>Clustering system calls according to use cases.\u00a0 <\/li><\/ul><div><br \/><\/div><div>Our paper \"Towards Collaborative and Dynamic Software Visualization in VR\" has been accepted for publication at the International Conference on Computer Graphics Theory and Applications (VISIGRAPP) 2020. It presents the efficiency of our prototype at increasing the software understanding process.\u00a0 In 2020, our paper \"A Layered Software City for Dependency Visualization\" was accepted at the International Conference on Computer Graphics Theory and Applications (VISIGRAPP) 2021 and later received the \"Best Paper Award\". We demonstrated that our Layered Layout for Software Cities simplifies the analysis of software architecture and outperforms the standard layout by far. We successfully concluded the research project with a final prototype and the resulting publications.\u00a0 <br \/><\/div><div><br \/><\/div><div>In 2021, after the end of the official project funding we were asked to submit an extended version of the award paper (\" Static And Dynamic Dependency Visualization In A Layered Software City\") for review to a journal. Here we present a night view of the city that shows dynamic dependencies as arcs. We thus addressed a central, yet remaining issue: the visualization of dynamic dependencies. In the paper \"Trace Visualization within the Software. City Metaphor: A Controlled Experiment on Program Comprehension\" at the IEEE Working Conference on Software Visualization (VISSOFT), we displayed dynamic dependencies within the Software City by means of light intensities and were able to show that this representation is more helpful than drawing all dependencies. Also for this paper, we were invited to submit an extended journal article \"Trace Visualization within the Software City Metaphor: Controlled Experiments on Program Comprehension\" for review. This article demonstrates an extended visualization of dynamic dependencies and color arcs based on HTTP status codes.\u00a0 <br \/><\/div><div><br \/>In 2022, both journal papers were accepted: \"Static And Dynamic Dependency Visualization in a Layered Software City\" is published in Springer Nature Computer Science Journal and \"Trace Visualization within the Software City Metaphor: Controlled Experiments on Program Comprehension\" was accepted for the Information and Software Technology Journal. For the finalization of Holoware, all extensions were combined into one single visualization. For this purpose, different views were applied, allowing the user to switch between them: in the day view, the software architecture can be analyzed in the novel Holoware layered layout, and in the night view, dynamic dependencies are displayed. As part of a master thesis, Holoware was also implemented as an AR visualization, so that it can easily be used as a showcase or in everyday work.<\/div><div><br \/><\/div><div>In mid 2023, we finalized the project with the dissertation \"Visualizing the statics, dynamics and infrastructure of software using the city metaphor\". It summarizes all investigated aspects: (a) the static structure of the system to understand the software architecture, (b) the dynamics of the system to understand the dynamic dependencies (e.g. modern microservice architectures), and (c) the infrastructure of the system to analyze costs and promote the understanding of software operation. We also uncovered another use case: the use of Holoware at trade fairs. The visualization of the software makes it easy to get into conversation with other software developers, as the visualized software can be discussed immediately. To this end, we simplified the setup of the AR and VR visualization so that Holoware can easily be started without a lot of prior technical knowledge. In addition, we improved the contrast of the visualization to make it easier to recognize outlines and arcs, especially in very bright lighting conditions.<br \/><\/div><\/p><h3>External Partners: <\/h3><ul><li>QAware GmbH<\/li><\/ul><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/fjung\">Jung F.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/233531989?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Towards Collaborative and Dynamic Software Visualization in VR<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">15th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (GRAPP 2020)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Valletta<\/span><\/span>, <span itemprop=\"startDate\" content=\"2020-02-27\">27.02.2020<\/span> - <span itemprop=\"endDate\" content=\"2020-02-29\">29.02.2020<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Andreas Kerren, Christophe Hurter, Jose Braz (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 15th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications - Volume 3: IVAPP<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Portugal<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2020<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.5220\/0008945201490156' target='blank' itemprop=\"sameAs\">10.5220\/0008945201490156<\/a><br \/>URL: <a href='http:\/\/www.ivapp.visigrapp.org\/' target='blank' itemprop=\"url\">http:\/\/www.ivapp.visigrapp.org\/<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/233531989.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Weigend J.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/240104609?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">A layered software city for dependency visualization (Best Paper Award)<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">16th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications, VISIGRAPP 2021<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Virtual, originally Vienna, Austria<\/span><\/span>, <span itemprop=\"startDate\" content=\"2021-02-08\">08.02.2021<\/span> - <span itemprop=\"endDate\" content=\"2021-02-10\">10.02.2021<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Christophe Hurter, Helen Purchase, Jose Braz, Kadi Bouatouch (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 16th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications - Volume 3: IVAPP<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Portugal<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2021<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.5220\/0010180200150026' target='blank' itemprop=\"sameAs\">10.5220\/0010180200150026<\/a><br \/>URL: <a href='http:\/\/www.ivapp.visigrapp.org' target='blank' itemprop=\"url\">http:\/\/www.ivapp.visigrapp.org<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/240104609.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/262356042?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Trace Visualization within the Software City Metaphor: A Controlled Experiment on Program Comprehension<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">IEEE Working Conference on Software Visualization (VISSOFT)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Virtual, originally Luxembourg City, Luxembourg<\/span><\/span>, <span itemprop=\"startDate\" content=\"2021-09-27\">27.09.2021<\/span> - <span itemprop=\"endDate\" content=\"2021-09-28\">28.09.2021<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the IEEE Working Conference on Software Visualization (VISSOFT)<\/span> <span itemprop=\"datePublished\">2021<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/VISSOFT52517.2021.00015' target='blank' itemprop=\"sameAs\">10.1109\/VISSOFT52517.2021.00015<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/262356042.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/245924447?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Cloud Cost City: A Visualization of Cloud Costs Using the City Metaphor<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">16th International Conference on Information Visualization Theory and Applications (IVAPP)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Virtual, originally Vienna, Austria<\/span><\/span>, <span itemprop=\"startDate\" content=\"2021-02-08\">08.02.2021<\/span> - <span itemprop=\"endDate\" content=\"2021-02-10\">10.02.2021<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Christophe Hurter, Helen Purchase, Jose Braz, Kadi Bouatouch (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 16th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP) - Volume 3: IVAPP<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Portugal<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2021<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.5220\/0010254701730180' target='blank' itemprop=\"sameAs\">10.5220\/0010254701730180<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/245924447.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/281825367?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Static And Dynamic Dependency Visualization in a Layered Software City<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/>In: <span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_281825367\"><span itemprop=\"name\"><strong>SN Computer Science<\/strong><\/span><\/span> <span itemprop=\"isPartOf\" itemscope itemtype=\"http:\/\/schema.org\/PublicationVolume\"><link itemprop=\"isPartOf\" href=\"#periodical_281825367\" \/><span itemprop=\"volumeNumber\">3<\/span><\/span>  (<span itemprop=\"datePublished\">2022<\/span>), p. <span itemprop=\"pagination\">Article 511<\/span><br><span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_281825367\"><span itemprop=\"issn\">ISSN: 2661-8907<\/span><\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1007\/s42979-022-01404-6' target='blank' itemprop=\"sameAs\">10.1007\/s42979-022-01404-6<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/281825367.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/277227816?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Trace visualization within the Software City metaphor: Controlled experiments on program comprehension<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/>In: <span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_277227816\"><span itemprop=\"name\"><strong>Information and Software Technology<\/strong><\/span><\/span> <span itemprop=\"isPartOf\" itemscope itemtype=\"http:\/\/schema.org\/PublicationVolume\"><link itemprop=\"isPartOf\" href=\"#periodical_277227816\" \/><span itemprop=\"volumeNumber\">150<\/span><\/span>  (<span itemprop=\"datePublished\">2022<\/span>), p. <span itemprop=\"pagination\">Article 106989<\/span><br><span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_277227816\"><span itemprop=\"issn\">ISSN: 0950-5849<\/span><\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1016\/j.infsof.2022.106989' target='blank' itemprop=\"sameAs\">10.1016\/j.infsof.2022.106989<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/277227816.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dashuber\">Dashuber V.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/306586374?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Visualisierung der Statik, Dynamik und Infrastruktur von Software mit Hilfe der Stadt\u2010Metapher<\/a><\/strong><\/span> (Dissertation, <span itemprop=\"datePublished\">2023<\/span>)<br \/>URL: <a href='https:\/\/opus4.kobv.de\/opus4-fau\/files\/23373\/DissertationVeronikaDashuberPress.pdf' target='blank' itemprop=\"url\">https:\/\/opus4.kobv.de\/opus4-fau\/files\/23373\/DissertationVeronikaDashuberPress.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/306586374.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"inca\" data-href=\"#inca\" type=\"button\" aria-expanded=\"false\" aria-controls=\"inca-section\" id=\"inca\">InCA &#8211; Inkrementelle Code-Analyse<\/button><\/h2><div id=\"inca-section\" class=\"accordion-body \" aria-labelledby=\"inca\" role=\"region\" name=\"inca\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/InCA_small_image.png\" alt=\"Inkrementelle Code-Analyse\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Incremental Code Analysis<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/krainz\">Jakob Krainz<\/a><\/span><br \/><strong>Start date: <\/strong>01.04.2012<br \/><strong>End date: <\/strong>30.06.2017<br \/><strong>Acronym: <\/strong>InCA<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/InCA\/\">https:\/\/www2.cs.fau.de\/research\/InCA\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>To ensure that errors in a program design are caught early in the development process, it is useful to detect mistakes already during the editing of the code. For that the employed analysis has to be fast enough to enable interactive use. One method to achieve this is the use of incremental analysis, which combines analysis results of parts of the program to analyze the whole program. As an advantage, it is then possible to re-use large parts of the analysis results when a small change to the program occurs, namely for the unaffected parts of the program and for libraries. Thus the work required for analysis can be drastically reduced, which makes the analysis useful for interactive use.<br \/>Our analysis is based on determining, for (parts of) functions, which effects their execution can have on the state of a program at runtime. To achieve this, the runtime state of a program is modeled as a graph, which describes the variables and objects in the program's memory and their points-to relationship. The function is executed symbolically, to determine the changes made to the graph or, equivalently, to the runtime state described by it. To determine the effects of executing pieces of code in order, function calls, loops, etc., the change descriptions for smaller parts of the program can be combined in various ways, resulting in descriptions for the behavior of larger parts of the program. The analysis works in a bottom-up fashion, analyzing a called method before analyzing the callee (with recursion being analyzable as well).<\/p><p>In 2015 we focused on improving the algorithms and data structures used for the analysis. We were able to significantly improve the runtime and memory requirements for analyzing a given program. Additionally, the analyzed program may now contain more, and more expressive language features.<br \/><\/p><p>In 2016 we focused on improving the algorithms and data structures used for the analysis. We improved both the scalability of the analysis towards large code bases with more than 1 mio. statements, and the incremental analysis, where we re-used the analysis results for unmodified program parts, drastically speeding up the analysis for typical software projects (i.e. with a large code base and small, incremental changes)<\/p><p>In 2017 we continued improving the algorithms and data structures used for the analysis. In addition to further development of the analysis' scalability towards large code bases, and of incremental analysis (where we re-used the analysis results for unmodified program parts), we focused on an easy to grasp documentation of the analysis, in order to understand it, and to lay theoretical basics to verify the analysis' correctness.<\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"inthreat\" data-href=\"#inthreat\" type=\"button\" aria-expanded=\"false\" aria-controls=\"inthreat-section\" id=\"inthreat\">InThreaT &#8211; Inter-Thread Testing<\/button><\/h2><div id=\"inthreat-section\" class=\"accordion-body \" aria-labelledby=\"inthreat\" role=\"region\" name=\"inthreat\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/InThreaT_small_image.png\" alt=\"Inter-Thread Testing\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAFxGAABcRgEUlENBAAAAB3RJTUUH6gQUCAc1RhH3EAAAafpJREFUeNrtvXecHld1\/\/\/+ 3Jmnbi9aadW7bLn3jg0Y2\/ROCCSEzo+OISSQ8rWdRg8BEghOMISWgAnFYDDFYAMuuFfJlmT1vtpe njZzz++PeXa1K620z7qtFPi8Xqvy7Dwzd+49c+bcUz5H\/AF88+x3NxLodA+rkY6TFEL+ba\/9zT\/5 mR7bHzA9hDM9gCMCjheAvi4QCIP7Sz7STA\/rD5g+3EwP4AiBqj9\/wFGOMQ19k7u4QY4mAJNAiuvL pd2nc7M9nQP68fJ3K477W0yWt0RhgkbHBBYA1X8n2lTJ79h\/zP7jhQEoJB79PsJc3PPaO74wMtOT \/\/uCb3\/721rzmG8Cq8cFmBtdJ2Gjf5OsF8DouifrOnoMeIEfPcYBwei6O5Dr++SbLhsaE2iJt4A+ sl+ItH2QhlVAVMOYZcC1QDsX00GRgerXllPHd+jl7dwzqgIP+4B0R8M0yn9S8NoDhRkBJrD9Ajs6 CeOVrFX\/bYxOmuFkyWcOM9OfAd+a6YX+fcGGDRtAS\/\/W5N4FYJasBewXBpNV\/z8qzKOH2P61duCq CkxVWTCBEk31XuDfx9vQAZAed5X0od7CXwYt5QKMSEZanki3Uu9mUXEh3u2mTg2gGFgHdgKN\/hYu iX9J2UPB72OtvYqB8fczhggPyZsjPenFjXFCPO4E0zAa9AdT62lFuVyGzDj5mg6mXNexXwYwzU3h b2lTwGKVaQsdURiRSadQKiKVqhBlHC5tkEorTpVUFRpPLMJSjC8GBCOe+mIrZ5RuJq5sYIcfYj3v nUJr\/wF\/QK2oWaB\/QovSnBEUKGeFNRquOZA1e6iXqBfUg9UZ5EAZVZ8Yc1SAEUE\/aJ8z6wqMfUbQ u5jFBdFUuZW7OLcq1D4liLjHoKmqjgGw6r9HX0xVNX0h0Dg6RjN7DOnh0aP3Hw\/j3nIY7Jjpif\/9 wgIMHgK7Lvm\/xlbI0NjiWGI9nAu0jX7TYKth943tmQTIqmbl2DEINkONAv0x2tTIaUERq0Nujjlb atISTHNl1gI0GKoTlgflgBRGkNiwVAwrCvWbsVfSVmSb8NoYYjs8zX1lLiy9nZv9F8DetP7L9t8L XveZ1ox9lvz4IY\/\/G0qV0EVwD3DC6GeC741Q\/Ets9NA6oP6Au4mJXO8f3ghPI6688k32tx+79kuN rnANwBAwAska2f418hpWLuRGEkUFgIyf79nS9dbW1QuqKnJyxEMFgxoFehVz3Yir5EKXmUsQngp2 BsYxMpuDUYdZBiNlKBSEBg4le1RDXigyKCEGwPaCNsnxkBkPOvPrjdzeP+aZhT\/nDr+MYfvjbV8d E8lD4Qer3iiCg46x1z3wtT8EQ45A\/P1fvnLKNb38n7\/tIHXQ59d84s1TfncUUwr0l0G5cE7gM5mm KNBKeX+ei\/1Ziv0CzOowQgzHBGfaqKtk\/1te4IEWYBbYbFA7okkojVXMEex5iBOKcDu1Dv7pwJVX Xqllv+2XxwNZUr6eE3e\/1I5fc\/yTMsYrr7xSDQ87cobiNDIfWVt5kb32u2+a9vmvvOhKNZzYICua nMsQx0WGUkP+qs9f9YTGapiuuvI\/lSqnlbIKpQAF6cDyYc76yo\/YlVdeecSs15QCHXIBlZaGtAtd h\/d2XFiqnEzslzjvG\/EW1O5YwCXXUxrIgeWAbOJzUQmj3Ez9vp+wsPxcts70vCgVRHO\/ftHl59lN A2cit1xyraaYigb67p771c1fmfcXt5p0wwMDG3s\/ffu1NS\/oFa+8QvOjOONdeKxJp+thHWdoIU4t 8mSNdHEgs2fPv73mnzZKPATu1nd840ObD3fOf3v7v6QqkX8G4nkUdYo5dYIPwjDd10Tb+k+947M3 meMHQ+09XbUK36ev+LIrFqNlSGd9RNeckim7VYafE7mgwaHAKhSHotKuQEvv+\/srv\/pjU\/Db\/3fF ayszvXBTCnR5eYdK6daMiGeHhdJyF\/n5oZUbsMStPW6vVSsCIGeoQ4l5X5Ho99iAMwqOjvgzbI1n 2PNxrLD1mDL7b06M3m8V7wR6T2pa9u\/XPOcvP\/bGn3+s\/3An\/NxL3q8MDc8j1htN4UVCLUx4jVn1 GlVDbcyXblcBV052zs\/82T+HhPa8uBL\/vaQTzJSoB6v6cROcIek1go83dLd\/\/OPv+exn\/+Kz7xme agKKxei5Qj+wsfDFpKt9nOBi4APg7\/\/7q75+eb6+4+YPfOCSGVu7qf2xp63W4Nz2TKGtsbVcn5vt U0GDoQnm+eMYvQQZoA20zOB4pGWGWjI0hKexfKbmYxSp6vgOfxOJCfVhBbrumud+aM7hjm0acRK8 BbOXAa3UpgdM2H2T\/eIzb\/h4hiD+GNh3DE6s4XzNwD86c1\/71Hv+rWnqS2tPNR5XCwScDFw3Mrz3 5R\/84FdmLI1gygHvnLtUgwvaU8MdzXXFlvq6Sj4b+lQwGrCb4PceL9g1CLkMssLaBcsMliObDUG2 n1mOaSv+pwIGEAMDwE4z+qr\/PxDPAD7\/pef\/+ZQPwaQXMUrANoz1BtsMCiR7joqJBw\/8wiff+JFQ 0ieELhcat4syAzYAPwZuMGMjE5dCQi81+NRHX\/HRw699bJssuVcDSphtBG5D9kvgRuBRDo4iNxh8 ob4hXPm0LM8kOOxNleQ0NNtpoLM1HJzTFg7PbnUjbY2UG\/KK0ykscHin6o+r\/t\/FJpUEI4aNGJTY PzETkETslAdmY7bExNwQq6+nLvgYuZmaE4Aegw+BnuVhgRftsZUXZbAOpBUm3g\/aPeFeTC+RT710 epfR9zDOR8wuG0uJs8dCeqlMszBON3ijk3aO\/8Z\/vvFzSvvgz2S8g4kP\/X1Il8jc6r7OvhekXfi8 iNIqxPMMW3fA7L8xnNdw6eFGFqejPtAHBedHVpkVBawccXXnW67+4nLQ8JzBSuk4oVOAnxywtu0S H\/z2t2+dEYV0WBs6rktjc+doJD2kOJvCp8IYbx6wulSg9HARRYnCMufAKVLsh4NypTcoR8OKvQnq DJqSwAupAxYBSz5rRMwRmuOhIYXruZAFFVg3E3MCsL0cpz75pls+Ppk23nQlV\/7L4ucUfgXcAMwG quav3n71hVd8+603X1Wr6\/Det33n\/906yecRcG\/1ZwIK8UiH5K5gglfWfmu4l77v6sv3HXieV77y lT89t+MZLzL4GbCw+rmAD3zu8qt\/9u5Pv3Wye+Rv\/untMfAvhxl7DDz0j\/\/wtVdZZN8Gnrv\/V3rR o49ueRdQfNJXZgocVkNngZhQUX1OxZZ6G5rTGvUu6fTdqxZY98oF9C6dS\/\/iTvoWd9K7dK71Lp1b 6Fs0Z8dIe\/M9USb9S8QvMe4ANpG8tg+avGpeRVZGC9gsRGMFn+qnfiZNjsNaTFdypQ2Ue+8HPjPh UOOsVLbU\/lQOTOhPgQX7L2n7gDe97z8OEmYArr32WstXzlln4sMH3NXZJV9Z9kTH89d\/86dDSFcB 5XEft5n8qqdyHg6Fwwp0Ckiblw+cokyaUlPeD81t890r5rP3xKXsPmUFu05dwe7TVrD7lBV+16kr BneftmLT3uOX3Do8u+UG74LrE6G2B8ysq3rTkwlL2kSjmdpNNAlLh2SOABv60HjPzVeb0HepBr2q yJjTSU\/VNT\/zxk+GBm8Y\/5ngS74SrD\/c99529elmBN81jQ\/5qw7p3CdjXDH+XrAt4z5yZjzhh+Xx YEq3XWwhyMsCp9gJHwQWZdOUmuoIKhGKqzF5ySxQQd66BubN2liqyz2S39NXCoZGBnFqldkSktdz loM3fIEgD7QY1izIRqQCko3REeO0PwiOLZi6YX+QHmnpU3W5II6WGW685quAvnf5f10+5RwNte8t 1Xe33Q56+biPT\/7Muz+j937uvU9ojkulcpTLZDcDK8amIfEAPe2YUqCjShnnkCSZJGSKncOnQiKr RiSrMm3OxWDFYlPd8FBTdmjpPeuG2FDIgO0EdZPYVJ4D3gzVzWEWrBnUbJBLkXI7gHkzMSs1oqJC ObTsVtA4E6BqUz8FMHOnogm2c5\/k1n\/59V8+dJZDwJiB0m3DO8erEoMlI0HdAe71yfHPl3\/bRQ2F II58vQ\/U6EXFoV6LfXnEvJkxrPHnlmakvO+wFzWgUiqRzqYSh0+1qsBGA9xm+2fCACcz5BXgK81N vmdeR5TbsHME6El+rFBNkw4nXsccKC3RKGg2Wd6ZD2\/hWSX45UzMS01IpZqxUrH7gI\/zj+tkNUDY MpvwclOzN3\/rQNhjY9U4o5U5cvurd7qq+sPRccDLsSNbPnT9xkc\/9J8hpuPN8bISQxdZxDEmWrBE GkxULHRbcwoeBY57mqd\/UhxWoIsWYT6NOY\/GZ9Xvn2FGBXs\/EgXswtBSszLmoGTGANCHacRErINO I8BCM3LI6hFZWcotSg49Yk2OXAYbLnFgKVfwuE5WE9R2wAcpoVWjqbKjMzleaEdjjuP+GI9MmHWO ZNHGfcf00b\/40iIz+wTiBaDs6FdVLXurLkwgtBJYaUfIjqemSFCimzW1YBlJbMsM8zH72ltNKDJj xGSDQAEstkld0nJKFigjFApznqGZnp\/DYs1xgtpK1J4caOro5TThRoLyQaL4sQ\/+x2phvxB6Bcme 56jBYTV0TiHZfICIrVoJZolgT57BYUKyJAU79qirPoXD+1gqk9jPFZJax8kgkCPRcIFh2sbgTM\/P EQUzSgdM+y7DvoopMf7caD1lVWXYuH9TfdVp\/DHaPtI\/MMGV+rE\/\/0Ij8FXjAC+F2XakHxp2j8Fu UBHIgnWCjsP4Y0THTM\/RlIZ7hpKVLDSNF+ZDV7vKktIrpSTVtddbTGgQeSX+EM9hNP2ov2SmJ+WI heg64JMRufD\/vec\/3ld+XOebBCb3YsGp4z\/C+BrSny+qz+x77V+99qD1e\/vbr3FzZ6cWAS+Z6Sma UqArmRSqmGF4Y9StMZnMmaqVUZKZ816MBMPy46paD2cQ7\/9cJiDCyP6hlnUizD+WvMTG0GE+7gS2 PM4zHggBl028JnfE5t\/5Nx9\/yyHtvziuGKSOiL3OYSXGA5VyBktktWohJ3c52VwktEPmDGSuot17 dmJ4VV97sjEGjUPPpqqmTYaQzifdZDzaoXs1MdragHHhlVde+aS81T7z7s8IY5wf3ZC4PsrvmDLd 9EjBYQV6GKgEw1TdGB7wSYquJsR7gVH+DCGchIO0YjUTAkLSOKaFyVBN3qva6Wae2FbNbILSEYc4 9hsNJkQFBW9u2Vz\/pDz5vrkOGO8\/FmYUjqSKlKkw5Ts9lfFIqro4ZYwWC46HAKseUqXAsTiS90sP OqxWxBgNT6UH7CjE+77x4RjxXxM+FOcp0FueDC1dvGeOCZvgV5dY\/c9\/9dWjZl8ztZHqwXszkDfD JwbBZAeKasWEw8yFgSMdZIhIYomGqj+Tw8b4chJeJ4f0KIWZnp8jDYb4T5NtHPeZM\/HJlu2N7\/70 m\/85f+W7Dy3YH\/vgx\/SRd\/5H+Mn3fb51st9\/+PoXGNLdEy\/IS4u+fNq3Lv\/WUSHUU4cnh6svIbNR 7XwIN3LV4DDJMMXeNGt1njQpq1AxgTfskF6OhLBLDrMQCAz00B\/cdgeh3ka6B5X\/oME32V9Vk0Z8 2qHXNZeavv3pt336NuR2m6yE5JDLG3RaUacHrnyJeQr\/9vZ\/e+E7v\/DOydbiu6D3s9\/\/3CzpRxtz w5\/5p7++5sc4tuPCEYiJfOACRyqGdjQzuRsHoqZ4+4GVKVNCJIq6VCbGWxJMoQJEyaZPk51LEqGZ 0kDasKCDDsHamZ6jIwpv+MqV9vk3feb7sVX+yuAT7H\/LOoPTgNOEvGFFUASSYWlQWvuXcMdwygVM EhSqUL4vReZrwFvGfTzb4J8wrsAzaBaXkXAyZyiQyJOQoMw4pjQ5XDqNzIQUgDnjEI4KwzAzSxI8 TIptuFJHRGgYkVBJUtkg1uQubJFwn9Uh8klpUfwHmttJ8I4vvddXBt2nDf4UbNckhzhQXgmrVINQ RuN0iMGcwDFp3vbffOJdsaE\/B\/53fE5D9csZUDtoLjAXmAPM0hEizNUbH4MncQmN\/QTmcd4LKcQs DaTBnB2kYMc8HR4pAuLYsIH+FBFDnkQ7F8ysIFSxQ48ljWgAqwcyDWTdXYcYuE+G4DVxzI+XZMYO uHfva36OdOC8TXp7QeI\/9khPxnh5\/7Xvt\/v3rflvQ+cAn8LYzqHd\/KM3GQNbBF8xHx+ScuBDn3jz gHleS6Kl7zajBnoCM7AY6AUeBts+3XtyQZDI0Pj51PTmaMzkMLP\/EO7bo0X0QHzbay6LXax0HJCV qDOUS5iRJhohlvgrI1AkKCPKwsWzmvZYSNrAymBDoCGDspJX3YEUOc6wNEaDSc2C\/CAW9nNcBR4+ aOD1lX4\/EDQ+FzTeo\/\/4jG7pB4ZfMo5VoNJU7K1pIoW939DfJK+lQ49h+9A+a8nOf6sZ7x2a29ZY aGuam+8euK\/WIf6KZ6QCZfIX2M8HRt9w11x3jQFbPvfOz32wUi79o1NwgsHJYEuAJlCIUUTsAzaC 3Stz69VfHHz\/V99\/WOH\/8CffUvrMlZ+5ZriY\/YYULjfjFMQykor1kKRYo8+gC9iX\/K0d5YYc5fr8 UnNq\/uCXfnqcGY9+8s2XHjbf5bc8Ox07rebyLzSseeVFb9t23vHFUT+ujGn5wA8b53jzx7\/jWtob Gww7HrPnIS4VrEx47KqJV1XpN2MEbIPEz4DrTDy0rznX\/4qXvldNtLeY42QzXgw8G9liJRx4sN9E N2DIzB5B3CDjJ5jWxHQPPpN7j3p6rz+\/+npHGFwA+rjgdBKbtyC4zrC\/rE\/7rVf+yfMmCNlvuMiZ grOR\/hE4wyCP2RbQfwn79DPsxv7HN5onHx\/88g1ZPO8x9DcSDaOfm9ndkt46VBm69wtve\/mE+7tJ z8459P8BVyBGqRVi4Jtm+lDRtOtSfjYtH\/ghbej5l9xKrj7tkM+DtQEdGA1mpLRfNY9SUhsQIQrA IKZC6HyUv2sDjTSbQcXMhpD1IRuGUW8esP+hElgK0ShTh0mtoGyKRvflo9yONjMRBH+E8RPBmaPz LsgBfyR001DJHTv+OzdxsbyCN1SLWy8C6pQkFiyWuMKkH9+kZx8RnoUPfPmngZn+3tDHxgszgKTT wG6oC+tPHv\/5b3hW4OCfEZ8aJ8yQJKf9KbKfZBVPu1jikAL9jFd3KZ3Jps2sSTBPYg7QkGwOD4QM KMs0APQiG\/YWRvctO9vq2GlCFdCQUI9gAHSI2kKFQg1gswVzwBoiXGoXs2ZwuZ44\/uLLP50P+qSk Q4U+F4M++uef\/+mYCejECkn\/IGnSDZfgXIm\/+jnPnvGEF+ftPMHbD5PXMAvsHz\/4nz8bS0U15y42 6Y0cQlkJO1Hw1z\/j4mnd3+QHL7pCS+l0EOVlmhOUKssyfcPzs31D9alCKcDvl8UkTdFiiRETPZi6 DTccpMO47o4vczPrqFCOMQ0Z7DNTt5LC0snK5wMgD5oNzEe0OZS5iGUzvmhPBGZcKjH3cMcIu0Q5 G59H8WoSL8Khv2P64zTWygzib7\/4S5l0iR3W0yEknWvycwBu5CyH8UodltFfIL0kxE8r\/2FSP\/Rr X7NCI7473bize\/bi3zz4\/JaNu16RGRjulLdUqSHHvtWL2XrBiQx3NFfD4qoAA5jtAe2TNDJkin\/+ 7wP8DLiROHbEIzLXJdhr2KBQO\/s3huN3mVkTbRgLEZ3OtCNL08hd4E8\/gqtXDoU\/+8j3lLx2p4BI 41kOrPsaF45Sa031nVbQQox9Ux77FKEUlpzMHV+DUVgHLAE2Z2gIvWoq2WoPpU6MDbWO5yCBPvvy y9W2ZI6bf9t97cf+6LYP5boHXilv6dHxZnsHadq6lzn3rOeB111C96oF3qSisH2CHYh9gfelQiY0 uNoEfJ+CbyBTDKEbsUumHhKNlSF5S4yfjlBYM9J8wxYYemwQ3zfA0gg2HnUC3TGvSUTl5qm3AZJh DQCziRykarGPU6DGGo57ylCuRApT6XwNmxypWnEzQuSyBHU1bI2cJcxaNeOAV7lp5erL1NS9L7v6 B7e+K9\/V\/2rnLQ1QyaUpNtZhQfKV+r29nPTVn1K3uyfGrL\/qB91m+B7LpcuDc\/aHuB1dBr5sRq8l Qr\/bEiL38WbH6PFVs8M6MZYg6wTq2ljsHjgKN4flqCTQlNlw1VTyEkB94nqt8V5n9hmPy0UkS015 YOLrrSQ35gDVlHmmxLddMyYI9Ate9Tnmhqlg5U\/vXJ7tH3q9IDCJ7ees5rYP\/BG\/\/avXcu8bn8dI exMG5Pf2seSm+2KXkMhsNtgOGowqI9G3zj9\/7Lw\/YiuVJOw9INiJ2XYSH+b4zeE4bwcZg1bBYqSF wpojglQfx8\/Akj0xpJPclqnTO80wszJAZXq9nGb4rWUyDqAsMDugcHo0kDwaavdQQ5Ta9qct14wJ A1lw0XwVSyPZxu1dFyn27QD9Czt46NXPJspnQKLQ1ghOnPylHxNEMe0Pb3apocKucmPdRjPbE1Wi Qjw8dwJBzNVgL6XLOzoK5t0eHFsFe6pM\/lkOqpRWANZgYp6wJSbWYXRFNJaNasXAUQLzgeTi9FT6 VpIfFegBmmliRDUq6RmdC0tnoCpHimLq9vZSv6sHF8eMtDcxOLedOJNOLKpq7ohP0hymFOjRlibT Gc+YQL\/y299WfX9TKMqNmK2u8mbTvXLBmDBXZ56eZfMo1+fI9Q2RGRwh1zu4rdSY3yysV41h+V\/\/ +JSDLnQ7D9klPKcUYz3AFoytJhaCNejg148jyfaaZaYliAVmbPOkR77KotKTV3H01CMIY3mb2uSo JpSXIKEciqlNnGfaBsunUzKzoHF7F6u+fwttj24lLCYljj4MGJzXzroXnMPeE5fhnSJImmdiyV9T 3Z2waQn02FOSGWySWTnjpVmF9sb60cnKDI4c9PpIFUoElbFoZllRvAG00wc23B\/3TZoiehWYZyD2 +EHMdiA2C\/YqoTaYZNAKhZoQ84BFkrXmSKVbmDvTazgt+FiYTd1w0sBc4p\/HE9WclGW10Es8hVAx DtrXbkmd9oUfMPv+DaSK5TF3VRDFNG3ZwynX\/ISFv3nAwmI5BginY3LocWjoV37721oYh0GlUKk3 Y+7uE5dpzj3rzcVeHQ9upG3ddrpXLgBBUKqw+Jf3kBpJmFIr+ez2UkvDGqA77YPynXfcf8gJFt0+ TUsxsrgL+U1mbFcisHUc4JNUEhrOAbMwFkh0mPkdIZkR2N+47UhHHMTmvCtMJZ8C780PARSIyaGa BHqmza\/T\/\/2HjXVdvbPq9vYBUMmm6V06lzgT0rxpN9m+IcJCiVU\/uCVse2RrNUIW1ERoXz1g+gK9 pDtDud6nkFowW7T75BWNvUsfKLWu355NDxc5\/d+vY\/dJyyg11dG6bjstG3ciA+8U9Syf95NCU91m VaLhrn0D\/qHPfuSQE3weG\/gVrVGKhn5v2ibYZLBMSWj9IO5oJaXETYJOYI6h+jrSfQ9BfLRsD13X vkhtHY+ShK8PA3WZs82QPMVHg4\/DQDev3XyBvJ8joNhUx71vfC7dxyzCJOq6ejn5mp\/Q+thO0oMj rvPe9c\/7DefdEKEa30AyHofJoVJzg6PsszJmAQujbGr22ldcGI96M9JDBRbc8hDLf\/w72jbswHnD JOtfNPv2Dc8764cKgu5SNizf+a27Dju\/AhtgwDvCAsYek22WsXMSF97Y+ITlEW2GOhANIT6sMCPU w48Ln\/yL1xnoO1Q3fJMhed3YdRlZteasQu38JDZjMn0tS1HszxptsrrjrGPZd+yixLXrxHBHCxue exbeJfnGLvZnQDYjvKvl\/pKq6emZHO68D36fYNg7AvJm1gHMBbX0Lu1M3fPWF9B9zELiwE24SDmf iXaeseru+974\/P8Y7GzbQpAZeWxfv3\/ggU9NOblLecQqVCrC92HaDrZD0G\/Y+Jzb0fO4hPDBGmW0 Iuo9pHYw66iyo2MqvzLxZTuEPhWsEfzdP73+eT45vnYZnUmTYymvg8S9CsBwRwsTeEMkRtqb8OHY nr+xAkGAq1FDG7JpmhxDqQAnhfLKA+3ALES9QdC3dC6\/e8\/LaNm0i6bNu0kVy1ZobhjqXTb34aHO 1uu9c4\/Iu96RWJXrP\/Cqmi54ItitVOIymRGZ9pqznZj6EJ3s544eu1klPs4cWKOhOodSS8kdVQL9 z296Qfz+L13\/bkfwMNiHTJpdbVY6JNn\/In34E2+4bKxniyNmrJvaFJjJvNofciXP0sU7rEo91LJx J1vPPwEbFWAzmjfvJqhU25bA3hSqWNLoqBYfh03XyxG+cHEfJcIAc3lkzdVQanr0UfPpFN2rFiab wuRd2GOwWWIz5rqUotizdcO0iMlvZ62dxImVFMGQoV6woSQjb1LSPAeWNsgJsh4fFmrcMB1J+Oc3 Pb9iZv\/6F1\/52ZcxVpA8vJuDdH7PR\/\/kGRMWLcCP+mqnhJtBDX0V2Pn57C2pYjlS7MPOu9cxsKCD 7WetxqcCWtdvZ8X1t1Fl3sMC96sGv7sywCxHbfdnHjc9gd7RcYzaevY5iQyeOiCLLByr3agm8VtS 2B0BA8h2J12gbHCIQvSrbb+b1kQ49pEiZcIn5TZSXO0VedDiVKlinURoEAppL4NHnUADSSJXsl+4 9\/BH1jGzurd2PPRHz3xowe1r+mat2dIelCoc+52bWXzjPfgwINc7SFCqYEChranUvXj2Dy+682d2 M88ReKmmna+fnkAPp\/to9ziUtFRBpCyhtj3gajJkMaaioF8wiFnZ1ji\/6+qra9YS3wAt4nQXEWVA jQ6aMeqQhZM9tdVKAm8mLyUl5HnSR4XL7vGiTEohxYTdJ3AMd7QwsGAWlVyG7MAwjVv2kOsdGtV8 MzoXO885LupbPq900n\/9lLZ123Gxp27f\/kIaA0bam3jwtc8Z6l61YA93fh6TOafa3kA2bbfdqGdE yVvAxoYx2fWqGpvE6W0S+caemi92ImgFy1WgKS1ci2QLMZaYaFOSeTd60fED8FUKhBGgKCxOlPX\/ XaQTk4NCayPrX3A2u05dSaUarZX3ZPuGWfDbB1j687sJC6UZHashNzyrObj7bS9kya\/uZc7d68j1 DCIzynU59h27kI3POZ3Bee2xVYMkLnnf12RyMN3Qd97PwbPD5IjkqVSLXSc5iQkIqrkX9UAdRipK zx9lPJpSyD7IfA0wN5WBZi9bijjBYCVYO0lT+\/EJStUboiIYQtZrMGhQ3sDI\/2mBDoHejmbd9\/rn 0rNi3oS1tyCg0NbI+hecS6GtSYt\/cXfA1hkcbMIMF5Qb63j0heex8dmnkR4cwXlPuS5HuSGHuQBk Y\/QVQi4pKZ5apt10\/dALN9xrgVMsT6la71cEYhv1b4419RCYwmpd4RxDcyTV01QJX\/fuWw57kRNB X2O+m8eydIZ0i0nLJDvVsFMFS0ANVBOUDrCjvWEFS6qKd2H0gS93Uv4\/LdAPX7g6eOiPn908KsxB qcKshzez8NcP0LxpF4pjLHBsP3t1cMd7X372X3zh2hnbU8jksGoujhOV+hzDnW0MzptFqbkeS6gJ MCM2S4QzYfusTUPHxNPT0N8vL+ESlWLhRzD1mRhQ0s7YMy4LToDJApkaQPOSUnnbmJUG5pwexqdd cV1891UvOkjQvgE6mVO0l1xapFq8WIbsdIyzEMcAbdVSnGrB7X7tbIl27jPTdmQ7ZPRVUGXvVHuq oxwbX3regiibWYCEq0Qc961fMv+2NbhKRCWf5dEXn8fmZ56MBQHF5vpXxjFX83gpHJ4gzLyTFEwZ 2pfisTe\/4WrdEcbT5Ah3c4eGMMI4lh9BdMvoNmMEIz5YDcqB1ZGw5qwClntHRxwNZl9Rl3FcdtmE Qb4SFHCc20NHxpFrk2wFsjMwnYt0fLUQNsfkiSoebMhgF7LHZNpuBIN5iN9wlORxPF5U6nLH+VSQ A2jetIv5tz6c9IQE0iNFlv3sTrL9w9UtjVYGgWasFYRhzmrq1WOx2ai2TfgPa\/iO1zSX2t1w1XMp VzKxzI0Ae8F2SvRKB1dmJ5470shmAceATkasDEV7dyuZ173kT90LX\/hCAbqCrP6Sy9x85uRCog7E sZLOxXQBspOEzQXlD1G54Kst4PZirAMe9caeACvW8dDR4c963Pi2DJqoqrxs3xAumpgVkB4qEBaS SHrCWzdzRNpCbmLvxMlhpnhc5lxR1czCw34HhlzSBrBmOJCVWwLvLakLBLabsQdsWDau\/EWjmz4F GHVCC8BOBjvNm1+FrH1OZlbmvGf8kftJ00u5iNPDIaK6GDrNcQLiPIzzJTtBqCrMk06EAWWDXmEb EA\/JayNYbz2lyonsnaGle7rwKpO3nVRDvgMLOijX75dXAwbntlFqSoqsBQOImSOckXM6oE\/G5BjH PGs2ALZpylOb1hqVablxHMDe7dtx5WIFXC9ii8RmM\/WYKO3fHI57RUgpoNlgBehMw86UtMrHccew y+R6VnRkY5dtFLZATifLdAFwPrLjLcmcO5wwVwz6SRre3y\/Twx7thKjQx46jqlrl8aJ+b9+DqZHi AMDQ7FbWvOoihmc1U8mm6VvSycOvelbixktKne6KqMzcU+5qrBcT8WiQpIOOiqH\/4fBrGQPffBa\/ mZaGDgG+9\/6X2+s\/e300O3QD5mwbYh1iiVAzkDZIHeBPk2EZSbMwOzYpLLDQxT4XDpcfk0uVlM20 Uyytxux0pBNBS0gSWdJMbnOZJSU6\/WCbBPdg3IPZYyLuD+iLzuexGVq1pxdnfez7PVsuWb19w2Vn NFsYsv2c49h98nJSIyXKDXnidBKDSg0XfcPWPV+\/J7\/jSeuCNV3IE1LLBs8Uq5o5dwz\/bTf7S\/7D XHyp0As4eEdpwH8L+5\/pjmfs6eoKt1i7X1FUYHvMWFctUJ0FlgcaOOi1ImdmWYkODCdvYViq1Gf7 h+ZKFHzKdVLScQarSbpNV3NEJm+hRbWI1mAL6F6MO83sEcE+8KV\/4P6jJqn\/iSI\/NMyyG+4ox+mQ zRedjE+niPJZonyVeMiM1FCBY7\/766jzzkc2fXj4xzM2L4alZDX4LESscfGNC\/lZ+Wae8xrMLgfe imyeIcPYIfEvmPvCBfazaUeNxgT6+ne8g4Wf\/03UEA4PGNps2IMyOkxqSBLtLZdQK4yOD0xymGWd t1lBuRJm+oeb8\/v6V4TFUtmkVnOap9g6qvzBIYcRZkvC6VtkusfE7Zg96LBdIeXCRm73N\/yeCDOA JyJVjDjme7+heeMutlx0MgPzZ2FhQFAq07p+B4t\/eQ9t63cYNr1chycdqs3kEMTxAbnNF\/qfD\/2S i\/4hVPAvoLkyiw12xz4efiY3Pa71Hj8Yu3HDr3nJsWcUzfndTqwBWjFrNMgizZoQnrYk4iLvXVCK stnewVmNO\/bVN27vmp\/tHzEXxWnM8iRa+VC74KrNbH3AZox7TNxqXvcbwfZ60sOnsSE+h+j3Rpgh Kd2pIAWVmHl3PcqcezdQqcsQZ9KkCkXCkRLyo\/1gZxim0DR1lMQgjnRwQOxZ3GQYgxiPPhnDmWBG rPvnv2bTSF\/sfTRk0law+4B7kB4T9GBVHo3qPlGxJyyUyXf3q2nrnlTrhu31Tdv2tmf6hmYF5ahZ 3rI6tDB7kgBON2g9xh1Iv8VzH2hbiWjoIW6JxdYZX7OnG+UDeNODOCY7MEJdVx\/poSLOj4Zvj4Sp Gc3MPDxkFvvhwlM+4AM3Z3btl\/7ByqVKBdEjaQPiLsFdwGMm662WEpmLYtLDRer29tG8aTdt67bT vGmXq9vbG6ZGiqGLfXCYYL0HioZ1AY\/K7DbEb+S5L8a2Bbihu7gnfj21Jz79X0I01pV7KmjG9xWS wv3pEYc9sPJ0cC4c7G144AH7t5u\/aan+ppLM7cVYY3A7cAfGOsy6XTkqpQcLVre7h5aNO2h7dCvN m3ZRt7eP1HAxCQQcotTNILYkc24X6EHDfoP4NZ77Avy2BmzIcW\/01\/TO+GI92Xgr6AGeq59zdnAX z9a3D1FKVmuU5EiYIDMLaxmFQeSfBsqFyQ36a6+1DX9ytT8uu6UwsnXPbnPeGcLF3gflCumhwvK6 vX1tTVv2pJu37Fb9rm6yfcMEpfKYbTfJDWFO3pyKOLfXjDUOfoeP76Zij4Lr6qa3OMCd8Wtnfp2e dPyGi7Jewal9VC7MUD9vBPpnc+IdvzG7ucjm\/ueMI6KsECOmfpNrtGnDDEJi0jz2g44zolx+WryL jwuH3KFe++IW1nz4w\/7C484sNA8Fu6jESg2Xg0zfUF3dvr66hp37co3busK6vb1BenCEoBwhf\/Dc jr48LQiI0qGv5LOFSj7TFWdSG0zBWsXxY2EcdWX6dhVu67nP\/9P\/MWE20G90cYfHPoZ4GUnqrZJp UdlLv0vbkg\/ea6fdcQrX2uicudpMjpmfLFNYW7krFfxTT\/N9OJeLPfyRj\/DCZz\/fn5Q6tTREqS+s 0BWWSvvSg4WhbP9QJdM\/bGGhhKvESZ\/Yg28CJHwqoFyXpdDayNCcVg3PbnEj7U1hqbEuVWnIh4Ws D3wuo6FHvgL\/uvApv+mnEfqtnt2K7MtCzx2bk9FfQlpwAeJbA3S\/4krj7isPXV1xEJLd+cyKtCXM o7Ukz0WEM2VyVPFR0Itu3Kvd7rb0rHSqOU4Hs5GbLe+bXBRnXBRL3sZceBNuFDAnfCqk1JBneHYL \/Qs73MDC2fmh2S1zik31x8a59HAcBBUcHoW7207cMfzCf\/xF\/MO\/vnjGFc+TgZ\/zDBm8EbgEIE6F 7DlpGb3L5pLrHmDuHY+QHRgGtEji755lF73sSm4qBuRImoVNHa2Y8VQAI6wls1my6OlgEDmkQBvo h5zu9tGQDTyzKVWODSqV04DjQJ1gOSwhWJjku5hzxJmQYlM9Q52t9C+aQ9+i2W54dkum3JBvi9Ph KnMuNMgkBbA+GEr17zxpZcfQ\/B9Z\/IUXzKxt+GQgLTWY+COhwJzY8Nwz2XDZWfhUAGbsOXEpp3\/+ B6SKZQxdKBcck7gtoXYaxhm2oal6OaZ0RKuip2Gokxo1BvolF6iJloxHHRKrhZ0t4wwZy2XWzPhu WBO\/iwWOKJdmpK2J\/kWz6V61kJ4V8xmcN4tiU72LM+mcOTcLOEbS2aALMDtFMfMLQ1317bt\/GCz7 wAeOysru8RCpdtBSSGiytl5wIr6ah4Fz7DtmId3HjJlYeYMTPpPkyVBbvvDojM8cDKsxOcki75\/6 JZ1MoLWG02Sk02CtTkqS8sVpwHKwFktsv0MJs1VyGT\/S3uT7F82x7lUL6F3aydCcVsoNOXwqwBIG kYxJrWYsxzgDdC7iRJl1FoJ0\/jnHPCO47LJaF\/WIRTAaWPJBQJw6YO0losx+8nuTMu+BpCFvLa7d CSmQM4awRlqviuypNzoOEugv0cEu6oIUahS2GNkpBqcZWgG0MbEJ+sQxS5U4HQ6Xmuv7BxZ0DPas mFfsWzQnHp7VYuW6bEIJpdGCXwlIIZqRLZU4FThLsFrQ0ahcZtWLfySuuOIIWLPHC+szowsg2z9M 64Yd+\/3zliTvtzy2M\/mvk0WZ1DaBVUOrtXG\/zbSKhtBqMaJNEWFNXSie2GDG\/+fD1Gkxy4I06bxh 83CcaHC6YJUlNGGHypbzBiVz6vOpcE+hpb6vf0FHqn9BR9tIe+OsOJOut8ClTROTm6p\/hWZqBlsK xKACRsHLSrlctus1S04qf7M6JU\/5bDzJCIyeKNCNZrbMVSKO\/+8bSQ8W6F0+l1zPAMt\/fAf5KodF ob2p3LOk80FugxIxQQ2eAx0JbjspVZPGEZWp61qeOCYI9DNZoQz1aY+1I60y7GRglaFZSqirDlX7 VwS6MFsPPFzJZ3aMtDdlii0NS+JM+lgL3CISYvqMcdBGUgnJDE3AEowhw\/qBAcMXOsj3v+hNl0fX fenTT\/1sPMk4lwvi7xy\/82uN27tel+0dzOa7Bzjxaz\/Fp0IUe1wUIyDKpFh\/2ZlDO85YNcBtnxub lhpwJAQLp24YlAw1olKp7dAngDEBvQKUozHw0CCxCHGC0GqgU0k0dlJhNiga6gKtkdktrhLfKHM3 Fhvzv4iy6V9Y4H4LWoPYI6yQfOfANZCqvBwtiGVCJwodE3ublTZlFp968VFpdogr7a63v3jn\/a+\/ tDDc0ZwETLwRlioE1TrBSj7Doy8+jx3nHBeV0wmBTn706zVdY6bvscb0UVNE+al\/+EYHo0tZroh0 FnyHSaswjkMs1DjOjANgQClJwGct2G3mdbsrVtZlSuot57NBFAbdDg0AgxgjoNUSsy3Z0QfjzY8q fUEGmAWsROzB2OEt7g8CleffurWy\/dyFM62Npo04Fahr9WJu\/8AfseCWh2hfu5lM\/whxNk3v4jls O\/8E+hbPBud8UE1tLhCrtsqmmacCw0jVFCkUlbrUU1\/LGwJ8mrkMMzdIQ4OcFhp2jKQlYM1MTn06 ypnRA6w3uFOm32H+0VTs9rm9W0tx6jxJlM1RlreiQSnhxsOQRusKx7R+teORMyOPbA6wQrDBFOwI Qxu85M5t0TUzvXiPA0mqsKnQ1si6F57DhueeiYvixE+fGrdJNvNyo45aR60tsGaQ7zy5PDUknSSI BhqnVR74uOAAjmOu0riMydqBpcBywzosof1ycBCjUSwYsGpSPsadGOsc6X0LsOKLd3zPf++e78fd cV8xiP1ekx4B\/U7odmCNsL0yKx2oXaoJDqGMRsF8k5ZRLapt8d3uqPR4yNxYoY+SyGmUyxBnUuDG scpKfpQIJUOmJj90Qgo7s1NSU9PNZLDRN6\/7ylM+HvcxEOQdhHkn5mK2XGg+0DDePhrHaOQNGzHY IbMHDO6S8Yiga4S+0nf4uQls7Te\/aV9+6x\/5xh5fcsXhbsOvA+5AugNYh+jBrDIm0fvDSDKRwdSO sQhsPlKTWsLwbZ1\/Mn7seZJaxSO8sX2NLJtmPqw6LSL8NFq6zXREVTV0kTWEVfZ8\/etP+Wjcqcwh JBVWGfLnmlhgUlsln02PtDWq2FxPHAajk2ZAGdQtWG\/ivkSYtTeiULyX2\/0HJmhd2be+\/mHLFFNl V1Yv6DHBvWY8AGyXtL+3SjVGUF2kwJI6xNlCc5GaFSmdrzw4fp3LwGeA64BXk3hRjjiYmTOslofO xxPqkGulm53pRrJTG\/tV4u+oltM9UYQV5iqDpUyuCTF3YH7H\/K3POKlt36qFqUpdFsWe+j09mn\/r Q8y9e50PytGwYAewRp5HhHbFFEZ6ecB\/aBIb94EHHjC+8gKe\/e5byqEf6ZGzx0y0mWlelXU0b6pu EKvk6kq0btoSG74DfIs50nUNudF2FaNdSf8auA94PtAF\/AD4GvBbjhDGcAlZDflzQt5VeX0q+ENW FI+HjTIbzygsNXXLOoHsaRFolyUvw2Xk1LLlGSed+Lv3vuLEzRednB2qsvMUWxvYd+wi7v+zy7j\/ dZdSzmf7zdhosBbYZsSDWbrjlzF4yIl94AHZp3+20wJLlSTbh7FR2AbQHsmKjAqfjRE2Jra0VIdZ K6jJKciWCFznWydcZi0w6qCeBbwZuBnYAFwJHEuNbqWnCmZyNdSQYjKf0MSNVSLXxM4505sKUw1+ 6CQ1ZbTlyFMKlyLvwNI7T1u55NGXnP+cUlNdBhLWy2zPAKmhAphhYcCOM48J1r78gtCn3GYZWz30 xQxWYO3UA732VbZucE7svS8AexHbwLoMjXCANk2k2hyQQWowrBF8JrSKO33Xiw488+dJ2jyMxxLg CuB+4FfAW0k2l0\/7+iuRuVoa5IzxEfhpJCc9HWVNhx23aWqTg6fP5HARZflMOrvh0jMuLdfnmpHI dfdz6tU\/4vx\/+gbnf+QbLLrpPhTH4Bw7zzx21p6Tlxcx9omg2MV2f3aNT95N\/ZsYHIoinB9O7HD1 YFbE7OBaF1VzPZKgTs5MKVTvdr7+SwceuQ348SEumQLOB75Ios2\/DbwApm5V\/GTOcW3MQvjRWazg azKga+yN9hRjai9HcjP21IcJAZemyfUunVM\/3NFyChKKYlZ\/52bm3LueXN8Q9Xt6Wf2dm2l7ZBuY EWXT2W3nHj8baRii6JXsqvliPVc9z1y+0UtBGWwYbAhUEjqINrXqVXGYpTClwYKIogqrDqJxMxKB ncpmbgJeAfwQ2EqyoTydp1i4reakOIsVJiZHDqiNEHzmxZkaQ9+Snh4N3UeFwTlteZ8KGiBpTN+8 afeEqQpKFVo27hwbW6GlsZlAcROZSTtXHQ477w8hjkY3dRGYP0yOjZLIhLnEr3dIZ8GtMI0nC2YD 7wF+R1LR\/pck\/venQkJq09DCx9VNYbnG\/awlT8pMmhyitj2KYU+TyZEjJD00UpElu9A4FVKuzx5w lMboWwGCcqVo3ihTGr2pmlF36iAmkxmBSQHgkgquSTNSzZLCOQ9mCg650EXgzsdz\/8ApwEeBB4Eb gD8lcRk+OTBz1JBfaSYf+lG3RZZa9ntHBHNSjd4kkz0t3Y1cPQVr2bh7MDMwshEz4kyKDc89i1J9 DhN4J7pWL2b3KSsSH1Tso\/ZHt+2U95kKzl0xnatdeKHaigMCV+0OSx5IMbq9HwdVOyBJqgjKeMVE KUvfe8h8gN88wbnIk9T+fZVE238ZeDZPmExcslo2hcLHLnkDZac8ZwJL\/JwzKdOGeKSG40qgDU\/H gMIiZct2DxTn3LfhV5ueecrZFgbBrlNXMNLeRMtjO6nUZdl7\/BIqdVkwaNyxr2fxr+4dATXGxPtO Z0VkrK+pWPPi576GVNgQSEHWzJowmoCsJon2GZjMIoOSpKJhldAX\/YJvv2+06O5A3PEkzksD8Prq zzrgO8C3gIeYtn\/bqibH4WXaMD8a\/C4nFSs1ue2ehhTjww\/AuFWyEihz6GNso5ltfDrG4\/IEHqyy 4oe33TP7gcfuV+wN5+hfNJvNzzqFHWcdS6XKIJ\/tHbDj\/ueX3bnewU5kc8E1tLIo\/C9qIxBZML9d PkXKzBqTgIm1IXI2CQO8MEMqJ9FEGzKzcsHlfedbrjvU6adjQ08HK4G\/IjFpfgu8k6TYoSaYxkp0 pjgQ78Z156glAigmPF0OeANwN\/AY8B9A2yG+GgD\/D1gDPAr8PYd+MTQCnyPx7d9fvf+x+4nFr830 zUPfFpHEXzUE2aely4Dbw4h5VEqNFLtP\/soNN6+4\/rZtue5+P+YVNSMolpn18CbO+Lfvx63rtzdi tgqxGrQgxurncVL4YXKH9yJdeKGah0ouQDnQLGHzhNowZQ\/cNI3zW44AvUA\/qBQM7rSrX3TIS+x7 iucqDZwD\/CtJpPR\/gZeSLPihJzjpyjslhHx5tOd7jdx2NjF99MXAl4BTSTa4byaJmk52ng8BV5EE nlYCfwP83STHOuDfgXcBy4ATq\/f\/p6MHfPqNl1Uwe7+ZfR5jomvO2IXZW4Ji9KMr3\/DMp8U0CtP0 GNSXzVt\/aqS4c+UPb31swS0P1fcu6Wwutja4oBLRtHUvDdu6CMuVAGhCLMXoRtaHUU5Rv+0ZnDT4 LHZE\/8A23TyJ+fHqV\/0d+dxAqhK7JoP5oAUGLcJSYy6q\/aFvM6NisoEk31p9PnClUkO759CmzQBJ x9kaKyieENLAy6o\/O4HvkrgOHzrwQJO52gjuzad9ZbRLb02RQk3UBH\/Cwd95LsnbpGvC18YJ5Di8 giS6OjLusxYSv\/2BeB3JXgOAT775sr73fPMX704Xoq8InWNGZzIXdnN9w8COK9\/0qqfNzg\/XM2SL sEoD9AE7MduV7x5YnOseqCep7k7meL8fP2cwB+kEzIpyeHlTjvy2gNWD76YpuomHJtjUZ19+uTpb C4EvpPJJ006WCpsPajBpfz6tjXWV8VW7uRtjD0Z\/kKpUdlSm3AA93Y5ZT\/IqvhfYfYhjajVzfVQN uqUYzdg6PGxiCdah3GeTfT7ZQx8wuYaebPwHnfOzr7nYk5hlj8fb9KTB7WEnEVGkpKpkO2gTsAds RPtNtAluaUG9YCHiNIwL5OxM4ZZ74rY5LMjcyIXuf8gnD8CFF2rVqucoLCgdQTtoGbAyIasZl+Q\/ wRetihkDGLtM2mnO93tZJd04fLh7aeLpyduISaKOfwssBy4EruHQJo+rxcsB+GzV1oiprRd2MsFj h32Hg99ev+bgvYWRREwPxPVM1M6QFHD8fJJjJ\/v+EYHwKrDvU7QS+ULagt2I9WBLlQQfskxsKj86 lSmgsdqHJcTI4shj1EVW3mQE3XM4s3ADvdGnTr2AWWEQWnL8QpMdi7EUqZnxmmI\/m5gXVjLoRmzH bI+MYe9K\/tpXHfbV1cZTi93A94D\/JgnI1NqopyYbGuR9NGqC1kJFdFC23X+T5Ie\/mURR3Eli+06G vwOaScwJR+J\/\/zAHPxAx8HaS\/cx5JAT13wCuform+AkjBLid39nLObMyRH1PYHoMsdZgrrA6UAuT v6JSoCaDAJER1CNakJrTXo8Kt9sFc4Yu2ZfzXebz3twcpGMwOxaYi5FH1cWWDLPE3DCLTRoE2ylj izfbFztXZLhrKnfZ3KdgfiokeSJfJ9FU096pa\/LGopMcRxz5+rFFiWpQ0Qf8PgI+AvxL9RRDHNrF WADeAXywepohDr032QW8ioQ1Nap+9wiI50yOEOCjYMvZGq9k9VC1r\/ZDoNlgDSQboEMVyoZKfpcy LC\/ULLN2HK1mrAlS4fbm3uJIz3CpzeozxyCdJGmZQcuEWrSxXAfzEgWDvZI2GmyR+d5UxSoff9vO qe7lnCdpTiokNvE3gP+BJ9rp02pixjXwLg7H\/NBBUmw4xbd0IP2ocbDZcJhLHpSleCh4kk33EY8x m\/MOdrOMxRWo63Ge9ThrBRrBsgYLdOjOrwGQE3QAWZMaZbQg2ghYm+kb7Mn3DXYMZVMn+1RwLDAb jQumjNfOKDKzgSS1lPUSOwnD4XBgyMNVU2mF85\/gXDzG\/gDK\/TxJBQIJD0lNDLm+UkhkptY6QRv3 5x+QYEygrwZ7NRt8htMKHr\/LvD2IIw9kSAj5DtcB1lUjRQmZjKhHajWYlx0udNXv6W0t12WPLzfk F\/kwaBBVBQTsF2bzmApCuwzWm7FRojvnKW9\/6LSpVi1Hkjk3XQyR2MVfA26hdu02DdRmcgB+8Ni8 AaRIExMfFbwcRxomeAWexT7+i9uj4zh9cARtMU8oh5NJJotBc7W\/5+CBEEnH2aoJQr0z35npHx5s 3LY3W8llZg8ZreX6bMqnQlkwYSlMqGTQbdgGYA24rWY2+MhgffztaxZNJdDPBubUeM8Fkuy8r5No 5Fpfu48Xjhq9HMftaQbGmgbVRHcx47wcRxgOFEx7Hf16kL3RIHP7UviNsUdyhkwVk1VIgiINHLqR pgNymKUU+YbswHClaese5wOXVRynhme3uFJjnjiTxpyoNiGNMBsUbDVYI7TeFO8rZ4Ly\/b+dshrG AW\/h8OtvJNl03yJxOT3G0yUIZq6WRquAv\/xf3zz2n9pKsGa8RPaIw0GaVmCn8SDvYLiylOW9Dttg nhhHCaNoUhlsgVATh+7bLUHKxT5MDRWtflc3ir2CUkVhscRQZzuF1gaibBqc8yQbwV3AWkkPG9rm fDC0fWC7f\/SaN021ZsuoMuRPgn0kQvw1kmLapyWF8YCZCGq0iD13311dAy+ryXUn3B809ARMGoi4 G+zzbOQ9UFnOMb0RJY9RQhrCbFDiBEvyBdqqvHeTnkdmCiqRMgPDuCgmLJVJFUqkimVc1EGhrckq +UzJB0GXnB4F7jOz9TjXUw5U+e6b31hLZPBDTEysGQBuBP6LxL\/69AvxBIxSGExRGW37g4Oq5Qt\/ wKQ4ZGTtbrBb2MhFtETryPfnLBN5o4DToGG9wvoNrSSxXRtIfNUHL4IZLopJDxVwsScoRwSlCq4S 4ypxNDKraaBSl9vkw\/B+c6wVbk8gFW\/bVThc3sYozidJ8YxI0ke\/TsLTsbOG7z4t0CSZhJPBxjV2 r92QMPNHyH0eKThsqPhqsKu5m+\/SUclwwqDhInlflBhAdMvoM7GaJELVSpL7MWEBRbJzUewJR0rk Yo\/iGBfFFpQrlVSx3D3S1ri+XJ9b49PprZUwPRiNuPiWD7+AKZADLgf+icRf\/ChPU2Xx9GBBLcpW 2JiGjokrgQW7EJ2H\/w6DPsnB+QOqqKke7GXs5S+5MX4lzx8pUapEpoLM95mjx6RunDvFHCtlzML7 DH48C9K45fSeoFQm1+NxUWypQqmS6x4YKjXXd1Wy6X3mwqHB0p7oM99ZZ\/CsqTRPBLyS2vJ4Zgxm VT\/01KkZYxr6Im6q\/FoX36skFfQwJ9dDoYVPtZfmaZgj03v\/7Sf49jpXGhww+Z129dve9rjePDUn 83wMLMv1\/nROK9fR0uucSlE2U4zymVKcCR2oIShX6sJiORWUyoGLDTug3ZsAvBGUIzL9wwTlKMj1 DGR8GNS7yNe7UiXLUGnoHnbEnVOXzD0tZfFPFIL9ZI2HPVBjJpbAfg2fNXiREgKdg2BYQdLHLrAb jsC3Um248sorVVxwbuYvv3TD6Zmsu5ihwrycSw2aW\/S7P7\/mJ7\/sK+7Z95\/veP20BHta2WlXgV3I 3byp\/dxK\/bHnjOxrqe\/2mWCPjJ7USHEk2zsY5\/f1W65nkNRwAVeJD+phWCWRIajEzsWFdGqk1AYs l\/fbiK0n8L64lpaBH9ASvZjemZ7zJw7VGFgxm\/CmyfrMg0VXvNxMn5Mm8vYZNozxN84qt8707T0R jMw\/aw5x9AmcXorIj5EqQwV0f3Om8y8v\/9S3fvXpD\/xRzUI97XTLHcuXc+tffVj1WJAqWL0q8ayw VJmdGRxpznf1Zxp37nON2\/ZSt6eXzMAIQamc8Pwz0ZKUGcQWKvYtiJUYg2BDBoWAVNTKiUMXcrO\/ +ajf9NSWy8G4TSHAmVxveL5xsy6+zYz3SHY6KG3YnTL+I7b4\/gu5+aidm8uvvr5ZUfx1nwqfVS3p qG62ACmFcbrEN4OWppc956c\/ve3nl15a071OV6B1ztuvUKtlUxFRSyWrpcpyUpz3qyt12Tnl+ly2 3JBz5XyGSjZNw65ucj2DhMUyiv1BGQ1KcoWzGHOA1cAATn3yNhyRqnyM44pn8zAc1UItV0sqh2GT 7gUutF9sBN53NM\/AgXjvP35FaW9v9KnwmUi4ckTnPY\/SsmEnxZZ6tp9zHMWWBkCzMf39Sdv9S34O g7Wce1oC\/f\/9f58g29Qcli1udNJixClmnOYDt9xn080+DFJxOkWcThFnM9VooCPXM0A4UsLFB+f7 KMkNqQPmGzoe2IesB2O4THtlkKVRA09LwfBTAjMLkrBf7ZvC\/+tIz56TN+9fgyS8Z\/kNd7Dix7ej at+Zjoc2cdfbX0y5sQ6wsyR3Ema3UEMr2prJwp\/\/wQ8qdcbyIAzTeaT5Jk4EzgBWmWg3Ke1Tocr1 OYZmt9C7pJPuVQvoXdJpI+1NcZxNR+bkDzGikGrBgGEnmrTaoU6Ryq2js9aKjyMUcrXwLgod0d6a JxNK+vgsAsgMjLDgtw+OdQQT0PLYTmat2VI1QZTDOO7zX\/hmTeeuSUMvX\/5azV98mssEmYximw06 FnSazI41mA3KSjjMkrbI+QwjgcMHzmNWDipxIVUox0E5yspH2UmuO0rM2CJYanAcjp3m6fbkS\/fS UX7CackzBGGuJhYD2e+NhlYlDgmDwAAXx7h44rMsg6C834llWGrv3trqN2rS0Ge9+\/mqSzeliF2r wXJL6LOO48CU0urCJY3r077YUl8anDera3Be+4ZSfe5RC7QDMcTkARAHZA1mC1aArQTmVLBcnuVH eNuJw2Ky4tOD8PukocPBkZ6gHA0BFBvr6F65YMIWodhST8\/y+VS9HhFok9lNtZ17qgMufuVH1ZFv DsLA1ZvZQhMng50EWmTQcFDyjZRUIzvKcSbVVWypXzs8q2ltlEuPYFoKnJgUDFDHwQ9UIGgwWCBj Jc7WR97tGaaxYLR40Xv0bY1Uq1n3+6Ohj7nursE9py3ZvufEpQssFfLwq59FpS5Ly2M7KDbVs+G5 ZzHU2ZqkHBobvI\/vvOqqKQs8gKkE+q1v1Umnr3JOQdaMOYmpwYmYLTWsudoW9wCSGDNBGanXnHss yqbvLDbX3+vlCvK+CyOthAohpWoBrsY5bEh6ibciFoOWSra5aMW+X7OsAncdbQIts7F2G1Md+nuj oef\/9m7fsmXr0HBHM0NzWik11fHga55NUInxgcOCpDuYK1do3L7vv7Zk465az31YgX75kncSl7eE LkcL2FITJ5Aw7bRXK1QOYjzCFCMbBNuMuDcOdFc5l1lL7EuKfQloNmhL6hUVAuEBmz5niRkzR7DE RKe3cKejofBtsFcdfS48l7CNTM1tN9MDfbpgBGrY0R2c9JUbePBPnsPA\/FngHHGm+jIzIzVcZMX1 t9v8Wx+8968HfvTEAyvHv\/A9WjFvKIjLqTqw+SYdL+M4kyV281ijn\/E1gRYnROjajtn9hu5EwVry 6V2MlLxF3jnRYlgnosOwXLUqeoJ7WkmedQtJ0tN8j20IUN\/5LI5g80yvx3SReDmmahpkvz8aOgV4 I2x5bCdnffpadpy9mr3HL6HYXE9YLNO8aTcLbn2Ipq17DfO10kUAhxHo8158jqLiSJpArULLZaw2 WCTUaJqsYhsvo4TYi9laxD141npsT79FheY9Awb0yNhkTo\/IWGKyVhKz48BxBAZ1wjqAuRKt3rR7 Cx0l2Hy0aeigBnkG\/f74oX3S6C0QIjswwtKf3cXiX96LOYfM46J4rPWB2fSY\/yffsFxxhdqyzc6F vk7SPGSrgGWINpIU0SoXnUaZTgyziGTXllBjGQ85saNRmZH7dgRx\/dCNvky54NFekhKoTSREjOOf wLHmm0mYlxYzdSK1g3KefHAU+qRrKio5VKTw\/yYE45SYgCCKCcsVgkrMKKF2Egyf3rxMKtBvm7NI ZU\/ae7VhLANWIeuU2XgX3XhTwwsNmrGl2l32fsO2misPPjD4SHzzJ19h5zFocylFDgbw7EBsAvYY 49q6jRNWQSBUT6KlOwzVFVHw\/dqZbGccnW99K0g1kTVivz8a2ogkTe1hU9L6+Qlq6Le+VZlgjnPm 8nLWScLfttBMzYzvSTfO1ACKiD1CjwAPINto0NenqPLd9\/1\/Y+rpZh6zCnEJrBtsu0y7SaquJ3sK R\/k+WsHaJepDgrCRjplej5rx1tP+GNUajdXvjw3tCDBqawenJ6qhL1l2Cal6F1pkTWYsMGwp3mYH lSjnKrGrdkAYR6pmMdBvsAnsIcQ68PuGKyOle\/5nq43vRf1AwmcYC4Yw7QHbTZUGd9xL2fb\/w1KI eowWk9UDqVnMOWpMjkgDWK3so\/b74+UoEUs1NB+otiWZloY+KAR9kis6leozBu3poZFlsx\/YuHr2 gxtn5\/f1pw0YntPKzjOOUdexC4nToccYQeyS2VqkNWbsHImikc3FbfHdN7xvgvF4NdgL2eIbWVTC 1COnvTL6ERUxWTKegoRijCZhdR7CfQwdNQLdn82QjapKwxupkSL5ff2EhRLl+hyF9qak8j1h\/fq9 0dDVpa4h7cLMplmRNOGkl1x+OXFzgwuMupb1O5Yf+73fvKxl067VLorHNHnz5t103r2OHWcew5pX XhSV67P9gs1Ijwi2Sq4f56Ib3ve+SS+4jX47AV8x3BDQa9igUIXEdJngwksy8ZQG8gY5B6kcs44a ga6zDDFlFxZKLPr1\/cy\/5WHy+\/qR9\/gwYKizlU3PPo1dp63Ep8LfGw1dJWStQaCFm2ad6IST1p98 CVIQZnf1tZz4jZ+\/qWHHvuNH66AsqFLRxZ6gErHg1ocxJ3voj5+9N06nNgg2mvl9lUpY\/t\/fpscT cU\/AfezjGMo+JCgZDCKGgcr+YOF+JJV4lgKyQhlQUKFw1Ah0ZCXyvUPhsd\/9NXN\/9wjyfuwOgyim edNuTvrqT6nf3cNjl57xeyPQebxiUzBV0paBScTTCaVNEOiGkuRDS6\/+7q\/Pb9jZfb4AHwRsPf94 dpx1LAALbn2YebevIYhi5v9ubXrfMYuGdpx57GNgO8274eG9W+M9X3\/DIYdwNdjLiE0oclDCrGSy WJP0rE5C+XISoSWC7YYojWYZHvH+6As\/+vUgcqkFreu247zhnRhpb6LYXE++q59s3yBBOWLZT+8k t6+\/bR3LtZINR\/x9PVFUCIJayniSlAh7\/Bq6McDlhgrZ5s27LpZZyoAdZ67i4Vc\/C59KDu1fNAcX Rcy7fS2uHGn+bQ\/ndp26Ynuccn2xo3LH73ZMuSAZGsxhHhQLxUbS63uyO6z6vJ2QM6TCUWRqNq7v mo2zcxJhdmy6+FQeu\/RMKvkM2b4hjv3OzXTevQ5XiZh716PP3MmCDGwozvS4n2q4hNyzNr4SPz3v z\/iTKptxyvYO1oWlyiJI0kB3nbpyTJgB4nTI7lNWMNoKp35PbzY1Ut5nxkgxG8f3X\/83U140pLC\/ l3e17fFhHtdqtZlV+2AfPZmkzuLjFPsOgMF57ax\/\/tmUGuvwqZCR9ibWvvwZVOqyyURE8TGB1PkE L3lUwJJ0h1oW0oJpauixk3a+9TriShDEmXTGB8FolghBJTro5e7K+6\/honhElajPuaDcu\/GeQ9rO o1gOKuJUdWelkqw7CyZrBVwVZC8jAkXCfD3pKa9xpMCgXdW34NDsFirZzDiyElFsqqfYXD96eDpO uiX834dwNkaRdliYPd7AymcuLhL6iiu2NgTDs5p3A8gbC255iNRwYUxPpgdHWHDbw8gnhFXluuy6 KJ8ZKqcVf+tv\/3bKC34fqCPvXJKAlE+48RROxsSiRMpjg7KSn7j8RDsVP40QdI+6neq6+kgVJ+bZ ZAZGyPSPNUIqu98TFiQnC2ojZMWixxtY+e53YyJnzodBuPUZJ66L0qlIwKw1mzn933\/AopvvZ9FN 93H6F66jfe3WpItpKhjee+LSX1fy6XK0Y1dNmnMdqylRCUA5oBFUb4fixQNvqAJWMKMAFuUYPCq0 M0DstMYCtw+gcXsXS396B6nhIoo9md5Bjvn+b0gPFaoroUfN\/FPVDfeIQtI5uCYb2gz\/+PzQgx87 V8HP1oqAcOfpq\/qaN+3asfim+xYp9rQ\/so22R7YB+6XOO2e7T15xy4bnnr3OxYq3rVpSi6ApwJzH 0k40KmmN3FDtqjV66nH7Q\/OYisCgxIg3VY4mcsIt5x6\/q65\/+J5ZD296vos9K35yB3PvXkehpYH6 vb1kewYREKdCulYvun7NvV\/8P78hhIRnaKxh1OERM831HhPooY0bSWdSlKKKCB2PvOT8feX63Owl v7o3mx7Y36nBgHJj3raed8KODc89675KNmUOYf1Tp63eCnjaXIxyEm1mdEhq1EQNPV6wK8iGBf0Y ww6Luhg4agT6\/j99jq\/vH963+tqbmHvXOmRG\/Z5e6vfsZ4SKUyGbnnUqj116+vZ\/vPeLR829PTFY UAvZn2Fx\/HgFun7jUkq2BiRvIo6y6Wj9884u7z51RabjgY1q2NkNwMD8drqOW1Ia6mwbsEBpTBlz PpybCqb0D\/cwl1nkQyNu8NgcwRzDGg7R+swMlYEBw3qdMQw+WnEU1RWGgmJrgx7400sYnDeLBbc8 SLZ3CBcnkcLhjmY2Xnw6O846hjgVHrUcddOHXG1JW4omi08cDmMCPe93\/2ic\/YoY82UZBaSSOeLB ubNscG679j9QVmXUJI+pFdGKt1z9cGngtHe9y9\/9r\/96yNG1sMxFWNakWcIWIs2uFstOJtAxWEGm bpP2GX7YE0RfZttMr0bNMFU9cvks659\/NpsvOpm6Pb2kimXK9TmGO5qruRzY71P6KEkBx5Qmh7A4 hZuWQI89JXd3fpEKsUcUkQbMGBQqI7Pxb4dqW\/UAqDMxG5hruJYgFaRPO+lScQhWlS0sJCYTVrBG xFwzLSTp\/jq+NnF08NUIkQaAvRhdDo1A0R8VzfKq8ArANEbxUKnP0bdsLl3HLaZ\/0WyiXKb65k14 WWd6vE8j3KicGBCHAeW6LOW6LHEY7BcCFLlpTsuYhr77Knjmly3Gq2CiT6IXo4ARVwUYhMmScDRJ rvJsYAniUYvYU0e6tODVX4y2\/c\/EixjoZuY6j8+GBLPAFoPNB5oOyLoaE2yhItg+Eztl6o6gGIO\/ +ijaFAbmSXbztbDp\/v7kQ5MknblyLsOOs49l12mrKLQ1ApDv6mfeHWuZe9ejBMVSbNPU0OOESVYs 3+izqUoB6Ab2GjYgMatKOaBx\/bhFollnYSwz2XKDnaHTyPMvnDXy7\/9zoWccM+a1dNJBY+iIm3G2 CFiJmJvUDY69JcZHvyNgENMuxHYZPULlBnYeNcKczFIANQUQbFKT4wOf\/18XZhpaPX453loJgm6Z 3zBQ6Ov993e9+ujV6LKg0N6s+15\/Gd0r54PbP0Ujs5rpXrWA3aes4Phv3hhlu\/oen8kBUOkbsbS5 Eli3wU5EF0kzygmcdAJMhGY0GiyScawTi5E15\/N1qRf9wytHD+N9oA6WOrCcxByDFSQNh1o10V03 3uwoA70G22XsdLjBkGL0n0cZaaNPOMynTvA3cSCd7p9fc0ODS9e91yz+DfArxHWY\/5UZNzfkmt\/5 gf+8oX7K8x6h6D5mYfaB116c6l61IBFm70kNFwlHiuATOrk9Jy7l\/tddUv\/oKy9IT+fcEwR6XcM2 K\/moLKlPZtuAHUA\/Ni6evp8BUkAWbDbSKkzHYVoQele\/vHNJeM5b\/heA01mkLLk0WBvSUoxVwPyk XnBsMzj+eYkNhoHdiC1m7HW4Qg9DdjSZGwBBYkNPqaGTmOv+ipUPfOkneXn7LOLjJncMUhbnAqQc juOATznxyQ9d87OjJ2xaxRe\/eKfuf92lJ+w7dlEaiaBYZtV1t3L+P32d8z\/yDVZcfxuuEoFE9zEL OzZefMY548r9psSEyf7VO\/ZQjIox8oNI2wUbQXskRjTKMG8mpNEmKqFQI8YSw040bLU36\/Q+yJ16 Tsp9auELtIQlQQHf6MRCGcdLViWqIc0k2rka5u42Y7OwLcL1VChVCtx3VAkzQBR7asxZwKqbwg99 4wfOobchvQ4pxDx1u7ppf3gzdbt7knellAK9OcK\/4e3X\/+qoyQ8H2JLqDkbamy6ywAkzFt18P8t\/ fDv1e3pp2NXDyh\/eyvzbHk6sMOcCHwbP\/+urf1jzPR5QNXCVDTb81qcLA4XQaa\/JNgKbBZ2WhKpd YkuPPTEyWVqmduAYoAezvlRgw5lKENevmFeubFufl6nTxLHCVhvMPwSvHUAsbBC0A9kG82z32NBS ougZR5l2BnB4gauhplCmKi9HpZRpdfAWJIf3LL75flZedyupkRLlugyPvuR8tp5\/AjgXYLy1bk\/5 v+Ho6d1RVOACxQuRUBQza81m3DiD1nlj1sOb2XbeCVggMBZVMrmAGr1ABwnVrd1348tBBPTKtEnG OowdEkOY7b\/0qJZOdj55xDxJJ0g6Ba8VrlxpC1xzPUFmlpNWyOxE0HIlGWVjtrMmuupKoH0Yjwlt MNSVwYoRjx51wpxMrhI63akgg2rjTZmWAYsB6vb2seKHt5IZHMHFMdmBEVZedyv57jHn5TLMlsz0 fU5rTgzDKFa5n6nkswdpqkpdFhtlsoVisVipef0PmuwN732vDdq2GPlhEzsMW4u0DqMLUWSs2Ht\/ 6zYToYwmM1tqxmlgp7lKvDII3KI441aZOMXEcZY06cyNXnccSSMkno0Bw7YiexSzLcL1O4ajpUcp N3RScDW1Da3Et+\/hlcKs1apvzlzPAOnhiekd6aEC2d7B6vfIOGia6fucDurTjXFYqjwAYE5sftYp FFobGc1sG2lvYvNFJye2gBlCd9rDtVd1TDrZ17zrDoZlFW\/qBTZi9rBhG4FeTaQcGJ1YmZSSaBW2 wsX+9PRI8SzF\/gwfBmcgTgYWKek4O\/YKHifMHqwg2CP0qKF1mO2NKZc8j5mOQnMDwCWPay00BpZs Cq81Ez2qFoYW2poo10\/c95Ub8tX+IwCU7ChLOb3itWfagt8+cEd6cMSQ6Fk+jzve\/TIeedkFrH3F hfzuPS9jYEHCvRKUKv2pUvkHn\/vc854oWePV1n3viX7ZactGKhV24dxaYXMwWk2Wxw7gt0vgMDLy NisoVY7L9A3nwlK5p9quYpkzWpk8TXTUTdcDesxgDZ4tMfRnITr3KNXOAMPDA+TqG10tbQqxxG3n zW0Io8oOnw6XD89q4tEXn8cx3\/stqZEi5bocj7zkfEbaEqWs2G\/2Ltg00\/c5HUiyX2WeO5Df1+\/X vuLCwKdCBufPYnB++\/iDCIpllv3szjW5HT3Tur9DlpJ\/67Pv5J2fuTHK5uiToscktViigRuTglXV jY\/HywyZBUG5ks\/2Dc2t39tbl+kfLshbTgmFbvYQCSlxlcpgC\/CgzD\/i0d4srrSNXx411SmTQpJq ITw3GC0E2FXY3XvO\/fvu3HHWMcstCNh6wYl0rV5MrneQkdZGiq0NjNtQ\/XT3qef2z\/RtTheuXAkX \/+o+wlKZDc89m5H2JqwqSfJG3Z5uVv7oNjrvXjfUWClNK4B0GG4E2UONxhnRjSUndZnxKLJWjDaJ HFhoKEvi9Uh6AJcj0gMjQf2u7nzj9q5UtnfQB5XIYZY6hDBXTQ3tBFtr8JAs2JbGBvewIT4KuaAn wCWF+MGUkW8Zqu7i\/+fdr7M31z+\/JyhX2Hr+CVjoKLQ3UWivmspmuErEwl\/fz8rrbt32nH95x1E3 R5KF8p4Fv32IWQ9vpmfFAgY7W5P02p3dtK3fTqZ\/GBnRMKknr5PszW+Q8f4v+nPOWT1SGRje4dCD YC1AHUZG0A6WliFXickMjNCwq5vmTbtd4\/audLZ\/CJewSU62pGZQEtpnsB70gLw2AD1QqQwcfbS5 B9+gAmrJKjOTjafTTY8U49XX3kTjti42P\/NkhjuascChyFO\/t5fFv7yXeb9bQ1CqHFU+6P1QSDUt K9c7xNw71k787f6Zib\/IjdM685TsNTf\/89ts4ef+PZqXXdgfB24TUj1mdQY5YSnMWlwlDjMDw6rf 1U3Lxp00b9lNvqtPqUIJ+YPfGDaavA+9YI8J3evNHnJo5xCVQpZt\/nVHuXYGwMegGjrJJnln4yZK PixVWHTzfcy\/\/WGGZzVTqcuSGi5S19VHUKqM8hkfESXwV4Iu5hmBV7qNRMmZ0F6s1Hsjv\/FXHrCW ZoTjtxWHnB0p+vo0paCmtm633X6ynXPB+spc6+iJQ9YJ8mB1MrKuHIXpwZHG+l3dYcvGnTRv2k3d 3l5SI0UUH3I0vtoNa5uZ7sfsfhlbwA920B2fdpTlbBwKQS5HTUKXMDSMCbQl9MQICEsVmrYfssXI jAv0LbxUkQaWx07vAz0Psw6QmbQTMt9\/pn\/2566w1u3i2vHCUJPcTZdkpuYTb\/jG2bbAHvZLz+kv DmUG9qpsa533+bAUNWQGh+vq9vSmmzftyjdv2uXq9\/SQHiriIn9Q43oDkMw7VSwMekxaj9mDiuPH rBL1tFml8iYePLo3guOQcqkq98jhoaRz2JivVTVGxWoNqz9VMNCvNXAG0lcwjtX4ZTNbYfDnSM\/6 NT2vNWPdOPdrjR2Mp0dhMI0Tw6++eZztWXGFv2x4VaGhVNkTFOP1meHCvGzv4IL6XT3tjTu6snV7 e10izPGkwmwSPhVapS5TKTXU9Vfqs7srmfQuS6f7XODKX9y50d+98f+GMENC9+Rr6jgwIX3UqD3Z f0YF+mae1S7pi4JjjaQ+stDSgMzI9Qyg2Etwmkn\/epM96xXwy1GPTGg1FBUKq\/B4awprgN501Wc4 vePl9DdGVsqmvYWKgnIUZ4YKPj0wTKpQOpxmxqdCSk15hme3qn\/+rHCosy0\/Mqu5caS5rj5qzAy1 NDzTv\/3WufEXvvCF\/xNC7Z2E1SZ0mtBjRTUJtGbQhv4ICyW5lwMnApQa8zz0movZd+wiMKPznnUc +51fkx4pAjzDyV38EVv43Q+z1ajV5LDpMY9S64kvBH2H0\/QwdaHbu6W+oVtz61LBcgK3FGmWYp9z USx5O4Qwgw8Dyg05hua0qnfZvHTvks724Y7mleWGfI9Ph0VTQGPZ9rasfvHIpW+9OP7p1S8f+\/rR CketGloT27qZ+ZraKc+ghj6PJSHiYsCZYNPFp7PrtJVjenfbeSdQv6uHpT+\/C0Ha4JnPYNH3YWsM BwXlDjUvT75AG+jbrNBaWtMBNJr8Qmd2oivbGYhTQfPB8ppEE+0X5pBSIsz0Lp2r3qWd4WBnW0ul LrfSh84hlzZ8DmnNvqztPObs9PDq+T+LPv2DD8Pddx+1Qu2T5a2JUEUTNoX42ha89jzhJxtGNsSi OZLwQUDv0s4JRoQ50bu0M+FATFLa5sbkHRBLFtbY++nJFej\/Yo5+wzLXSX3GiFoQixGnyHS6iRNk LDSssXqeg5pwmsDCMKlwnt1K35JO+hbPYXh2q6vUZbMWBrNwhEAKU05YzgUu7Xy4PVjgB173xr+r 3FcJeeCBS49KoTZvkmpJ8D+oT2GNNvTMmRyeYuxI9QG42JPv6qN71YIJQl23tw\/Z2NL1xQz75H4V 1tLpjsS1Oy0cUqC\/wAqtYFHgUa6UCzr6li04udDacF5quHhCw46uBfnugQ7Fvl6TCPMoLAgo12cZ mt1C35JOepd2MjSnlXJ9Dh8GDpG1JPIYKGlcX4dZHinnjS2zU7nes\/+it7T4l1\/y113zpqNOqB2m ZPNz+LVLyEwm9Fip9V5nTKA30lNZ5ub8DrPny4ylP7+b3qVzGepsA4yWjbtY9JsHqpmxeHPcvjHu 98ntWmjURG73xDX090DiNM2mPawE1rDusjNP3H7ece8ttjRc5EPXALigWLG29dtZcf3tat686yAq EAPzgfOVfMYPd7TQt7Qz6Fk2V4Od7So35olTVeIcSWBpjFaS\/JAcWD3QZEYDYWV9Y7m+K3dutvCn s\/8r\/tpHbgGuPmoE2ycqtBYNbdKEjWCN6ZIz57Z7Ew\/adfNP+E56uPB3+Z5BGnbu49xPfYvepXPB G60btpMaKQEwMqtpKEqnbnjTtl8YycrX6ox4YgL9WXKay7muQJApETWtf8F55268+LSPRPnMivGv kqgu0J6TltG\/aDYnfOMXzL5vw\/inzSPKFgbD5cZ8cWDeLPUtnlM31NmaKzfmUz4VJo9m9XzVeq4Q aFTizskA9UgNQB6zdSkFu2YvbR96yz8+M\/rp4IVs\/ehrjwqhdgpkY6nqh4cxfS8HM+y2u\/WDr9o+ +6EtnPCNn5MaLpIZGGHOfRvG3xPFpjoees3FpX3LOrt4V5XfwhTWuFV+\/CbHOpZrGwuDQZQPiduG 57at3nbecX8zKsyuElG3p5egEjE4p404m6LYXM\/Dr7qIhh37qOvqg6TirYDU7QO3rVyf7xrqbA2H 5rR2lhrz83wqaDaR5gC7stp6IjSsXlKAkTWzOqQGEu67NbhgW\/Ps+v4\/aqL8y7d+0d999duOAqH2 Ug3uCgF+nEDXnP8tuZn0A1Xqcrbz9JVU8hlW\/uhWmrbswVWSl0ucDuldNo9HX3Quvcvn4V3yHv8+ ADVuCqVouvcXAnycZepmcRgS1xvMdY5j9p647EXFlsYTkEgNFznuf26k8571KPb0L5rN\/X92KUNz 2xmZ1cy2c49j1Q9uiYSNCPaY6RGM++N0uKXQ1pQuNdatiNOpE5GWg9oNshyQtJPYkXIGOWQdQhnD 6qslW60mPeBIb1R91H3B6Z0jz6jbEn\/60wthmtxnTycSD6ZNmQ+dtJb2j8fLMeOhb5yj67gldK+c P6bYTGJ4ditDna34MJzgi5nHZRSInjqT47Wg05jlSljOEcyT42SDM4c6W883pwAz5t6xlnm\/WztW zNjy2E5WXH87977peeAc3ccsNPvRbYPEfidma8DuCOL4fmK2l+pzqSgT7jRpQFLJsJVAB5DnAJLG KtOjA6XNLKk9FHVgzYJmLzXhg0fDwO3MHrNl6F2fL0T\/+o6ZXtFDQwnnQw0lWGZm+3WRkv4ztVxh 5gU6GTA+naJ\/SSf9i+dUP5t8\/J4KtfUofJyBlZewiJC6lEGrxCpvnIV0RpQO54we1LRt74TKXAGN O\/bhohifdpQa8rFPBZuDKH4A6S7M7qUcb86U1V\/JBy6WBp0YMaMEFIFjhTpNCVHjeBdO9R8yKYVZ I2YpE3kZDcKaTdSjICyni9ta\/NbBC6+4Irr5qquOSC2d7IBsag+VyQsbdw+12tDmONI6gk3xNipQ wZGuSaD1eDT0CSxRF2S81OFlxwodb7Ak1zuUGT1ocF47Jo35FA0YnNOKDxMF66J4EG+3S9yB50Fg q6w80LFjc6WcPVMWBBFSWVA0NKyESOZ4wXzMGk1KHbjqSQXuaCdZpapmSj1GnfAyU1SWr1xw\/CXD N3PV6LCOMHhN4Lk6BExM0NDU6IeuuY\/4EYSYOolKjZHC6fuhXRdyhstItGLMs4SAsaFt3bbARTFI bD\/zWHadtpIoHRKHAf2LZ7Ph+Wcna2VGfl\/\/g0E5vgmvu4BNaVz\/BjZX3jr0U\/vCXTd6BtPFANeN Zx1wu8FNwO\/MbJ3BPhnF0dZuByJp52ZpZC2CJWAnAScjW+yhoVAoBav+8z9nep0OAclqiOYJ8+M3 ggf4pA+7fjN9h9NFihjpKXTbpWmlxEAAllHSgjgrCFrXbad1ww72HbOQSn2O+15\/GY07unDliMH5 s8aqkYNSpWfWgxu\/Lm\/3GtprVEa6WBu9mT0Axje\/yS8eeojlf3VleVmhsRdfiZAKwAjSIDBisFzQ bpCzxASZgKotGlajknOB5WasA7cxTdy7cEN\/9OhMr9QkkKrJSVNZHEnFyuMwOY4+gQ7xRE9hPrQb ZgAH3kQZKICVDeJUscxx3\/oVDTv2ARBn0\/Qum0f3sYsoN+QB4Spxf9sj2z4195Y1Pzf8TmNo6Dge jF7Ingk5zQ888IB999Uv86xpK5d8uT\/ytkXoLsxuwrgJs3sNbQUGMCo2wZ5MUA3DBKA6oBWpVbJ8 5C34sxedM9PrdMglmSiok0PigE66Nljb2TVSy3FPFao2bi2mXjyaq1LBV3vS14Sp+5wcAJdlxHus hNFrYhewF2wIKDds7\/Knf+EHfv5ta3x6YNgUxabYe1WiQmZg+J7Oe9e9\/4Sv3PCVsBztmYUVvsZt fhbdhxzsJz5xCg\/0DURBwYZ94HaZ2YOI3wpuBu7E2AB0C0qTvXarrDSq9ulMqNjjmNlP\/do9PgTB kJG8qqbAXkn7udzFQ1bL69bsIWZw7\/DJN1xWBHtsquNkPPbJN1xaBvgd+wy0buqzW0Vo\/XTHFPaz z3LMK8mrC6dHZdaJlDGYJ8jX7em1k\/7rhpHhjube\/kVzugot9ZvCQvmu5k17fle3ZdcW5xkaYnf0 3zxkX5p6cu3mD\/4pD73xjfHbzn53oZza0+XMlw2NCOsz6JM4EVgCajMjl2jl0T2iYqBgWL+MfswK Fqb8\/67rfvpXswZYVCkjdzfozCmOvNcCxhoWOq813rEWOOGQ34DdoF\/N8B1iphsllk9x3M9H\/\/UX PGC\/5uI7gAIcuumkoR2gaVuS4TU8yrtpLYv6feZtLVIKY0hiGdAkMEW+t35n95aGXd2PmLEWY6vh eiAobubO+PX0VOe4NnRfc4390\/33+7e855Oltth6Yopl4YZM9ADdoB5hK0FzgDxJSNxjNgzsEHrM ZFud1K9CFPXuu+\/pXMWa8ck3Pc9\/8JobPoHZC5HmH+KwvaB\/\/MSfXTqWv3EBvxi+2Z79LqTrmITq y7CSjL96ht24fabvEdn\/M9NlEosm+7XBGsl9fPxnKdNtFfw1SO+c\/KRWEfrb2Cr7pjscdy3YVrp8 OrHHtmHcjewXBteD\/QjsR4gfCf3UvG7F7FER7BXFwlZ+Gr+ensdXA3j33fYff\/ZMu33bxkoKN2Dy 22V6APg18EtDt5p4EGxzQnxuWyUeRboXcS+wyQUaoLFQUwfbmUJU37jZ4A3AQa9mw7YBbwqKlbUH \/i624DfA8zC7dTTPw5IAzCOCP0pZ8NWZvjeAT77xsr3IXmTYrQf90uynGC\/8xBsvKYz\/+Bx+Hkv2 15h9wQ6yk60P4\/0x9q1nctO05Wq0cYu2cyK7aA2LpJLkIKwBLKukvr4IDIa44RArFXks7meTvehJ st9O+LvP6+LWpU6ZKO2CVKPMOg0tQ7YcYx6oHllZsNvQBsEaE1vzcv23PLIzuvGjf3YE+qAn4oPX \/HQ28ErMzkByZtyF+M4n33DJznEk8gfh13p2xtA8sOWStpuxxVs08ngW+6nEB778k6wzXQA6Ccyb 8TuMuz755stKh\/rOjbo4CLFTJZ0PtgBjraFfDVjusRfyw8d1f\/8\/8TWY9a8KaQUAAAAldEVYdGRh dGU6Y3JlYXRlADIwMjYtMDQtMjBUMDg6MDc6NTMrMDA6MDCC7n26AAAAJXRFWHRkYXRlOm1vZGlm eQAyMDI2LTA0LTIwVDA4OjA3OjUzKzAwOjAw87PFBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3Nj YXBlLm9yZ5vuPBoAAAAASUVORK5CYII= \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Inter-Thread Testing<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2012<br \/><strong>End date: <\/strong>31.12.2013<br \/><strong>Acronym: <\/strong>InThreaT<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>In order to achieve higher computing performance, microprocessor manufacturers do not try to achieve faster clock speed anymore - on the contrary: the absolute number of cycles has even decreased, while the number of independent processing units (cores) per processor is continually increased. Due to this evolution, developers must learn to think outside the box: The only way to make their applications faster (in terms of efficiency) is to modularize their programs such that independent sections of code execute concurrently. Unfortunately, present-day systems have reached a level of functional complexity, such that even software for sequential execution is significantly error-prone - the parallelization for multiple cores adds yet another dimension to the non-functional complexity. Although research in the field of software engineering emerged several different quality assurance measures, there are still very few effective methods for testing concurrent applications, as the broad emergence of multi-core systems is relatively young.<br \/><br \/>This project aims to fill that gap by providing an automated test system. First of all, a testing criteria hierarchy is needed, which provides different coverage metrics tightly tailored to the concept of concurrency. Whilst for example branch coverage for sequential programs requires the execution of each program branch during the test (i.e. making the condition of an if-statements both true and false - even if there is no explicit else branch), a thorough test completion criterion for concurrent applications must demand for the systematic execution of all relevant thread interleavings (i.e. all possibly occurring orderings of statements, where two threads may modify a shared memory area). A testing criterion defines the properties of the 'final' test set only, but does not provide any support for identifying individual test cases. In contrast to testing sequentially executed code, test scenarios for parallel applications must also comprise control information for deterministically steering the execution of the TUT (Threads Under Test).<br \/><br \/>In 2012, a framework for Java has been developed, which automatically generates such control structures for TUT. The tester must provide the bytecode of his application only; further details such as source code or restrictions of the test scenario selection are optional. The approach uses aspect-oriented programming techniques to enclose memory access statements (reads or writes of variables, responsible for typical race conditions) with automatically generated advices. After weaving the aspects into the SUT (System Under Test), variable accesses are intercepted at runtime, the execution of the corresponding thread is halted until the desired test scenario is reached, and the conflicting threads are reactivated in the order imposed by the given test scenario. In order to demonstrate the functionality, some naive sequence control strategies were implemented, e.g. alternately granting access to shared variables from different threads.<br \/><br \/>In 2013, the prototypical implementation of the InThreaT framework has been reengineered as an Eclipse plugin. This way, our approach can also be applied in a multi-project environment and the required functionality integrates seamlessly into the development environment (IDE) familiar to programmers and testers. In addition, the configuration effort required from the tester could be reduced, as e.g. selecting and persisting the interesting points of interleaving also became intuitively usable parts of the IDE. In order to automatically explore all relevant interleavings, we need an infrastructure to enrich functional test cases with control information, required to systematically (re)execute individual test cases. In 2013, such an approach for JUnit has been evaluated and implemented prototypically, which allows to mark individual test cases or whole test classes with adequate annotations.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"iwkmmaswep\" data-href=\"#iwkmmaswep\" type=\"button\" aria-expanded=\"false\" aria-controls=\"iwkmmaswep-section\" id=\"iwkmmaswep\">IWKMMASWEP &#8211; Integrierte Werkzeug-Kette zur metamodellbasierten Modellierung und Ausf\u00fchrung von Software-Entwicklungsprozessen<\/button><\/h2><div id=\"iwkmmaswep-section\" class=\"accordion-body \" aria-labelledby=\"iwkmmaswep\" role=\"region\" name=\"iwkmmaswep\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><div class=\"cris-projects\"><h3>Integrated Tool Chain for Meta-model-based Process Modeling and Execution<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kips\">Detlef Kips<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/jung\">Martin Jung<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/johannes-drexler\">Johannes Drexler<\/a><\/span><br \/><strong>Start date: <\/strong>01.10.2008<br \/><strong>End date: <\/strong>31.12.2012<br \/><strong>Funding source: <\/strong>Bundesministerium f\u00fcr Wirtschaft und Energie (BMWE)<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><div>As demands on the development of complex software systems are continuously increasing, compliance with well-defined software development processes becomes even more important. Especially large and globally distributed software development projects tend to require long-running and dynamically changeable processes spanning multiple organizations. In order to describe and support such processes, there is a strong need for suitable process modeling languages and for powerful support by tools. The results of a preceding cooperation project show that today's tools markets lack integrated tool chains which actually support the fine-grained and precise modeling of software development processes as well as their computer-aided execution, controlling and monitoring. A cooperation project has bridged this gap. This cooperation project was carried out together with develop group as an industrial partner and was funded by BMWi. It started in October 2008 and has been scheduled for three researchers. The project was finished in September 2011. The objective of this cooperation project was to prototype an integrated tool chain by using a rigorous, meta-model based approach that supports modeling, enactment, and execution of industrial software development processes. Bearing the applicability of such a tool in mind, this approach was mainly intended to provide a wide adaptability of process models to different industrial development scenarios, to define a user-friendly concept of process description and to establish an extensive computer-aided process execution support, contributing to the efficiency of development activities. These benefits were achieved by a high grade of formalism, by an integrated, generic concept of process modeling and process enactment and by using commonly accepted industrial standards (UML, SPEM). The integrated tool chain developed in this project is based on an extension of the SPEM standard (eSPEM - enactable SPEM). eSPEM adds a behaviour modeling concept by reusing UML activity and state machine diagrams. In addition, eSPEM provides behaviour modeling concepts that are specific to software development processes, for example, dynamic task creation and scheduling. In 2012, an overview of the tool chain and eSPEM has been presented at the \"First Workshop on Academics Modeling with Eclipse\" which was held in conjunction with the \"8th European Conference on Modeling Foundations and Applications\". In addition, practical experiences from modeling SDPs in industrial projects have shown a rising importance of standards and reference models which are subsequently summarized under the term quality standard. These quality standards are used to specify requirements for target-oriented and effective execution of software development projects. These requirements are thereby defined to address different goals related to e.g. quality and efficiency (Automotive SPICE, CMMI) or safety (ISO 26262 Road Vehicles - Functional Safety) aspects of SWDPMs (Software Development Process Models). In other words, these requirements - often described in terms of best practices - are imposed on the software process definition that is typically described by SWDPMs. Tracing these requirements to the process definition is a precondition for supporting efficient assessment activities and process improvement projects. An additional goal of this research project lies therefore in the integration of these quality standards with SWDPMs with a special focus on environments that requires conformance to more than one quality standard (e.g. CMMI, Automotive SPICE and ISO 26262).<\/div><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"jackal\" data-href=\"#jackal\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jackal-section\" id=\"jackal\">Jackal &#8211; Cluster and Grid computing made easy<\/button><\/h2><div id=\"jackal-section\" class=\"accordion-body \" aria-labelledby=\"jackal\" role=\"region\" name=\"jackal\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/Jackal_small_image.png\" alt=\"Cluster and Grid computing made easy\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH6gQVBiccIwUBsQAAVVJJREFUeNrtvWmUJOl1HXYj MjKzKjOrKmtfu7t6X2Z6pmdfgRkQGymSsASIx+B2KPEcUSYlk5ZIm5JtCfA5PjrH5jm2ZZGWTJmk RFNcQImkQIiggBkAgwEGg1l7uqf37urq7uquvSqrcl\/DP+59WchvJtEDi+JSjO9HZ+cW8UVkxf1e 3HfffR6iEY3vYFTrtz8AAM2m93cAwEfPBwCgVm0NAcB2oQQAuHljAQCwsrICAOjv7wcAZLNZAEAy mQQAxONxAIDv++B2m+\/62Gq1Oj5n3x8cHOx47v9Zn6BoRONPcnh\/1hOIxp+PUSguJgCg1dz6OABs bCx+BABy20vH+f7mfQBQKlVSANCfGQUAHDvyMACg3iDS5vNE1CAgYjYaRNbNzU0AO4gcBAEAoFar 8fv1esd80uk0gB3kNYSOxWIAgEqlAgAYGRnp2G6E0NHYVSNC6L9ko1jaehYANjbW\/28AuL0wfwQA lpauAAC2t\/nY01sGAIxO8E9kZJQx8OAgETHw+TyTngUAlAopAECh0AsAaDSJmM0GETUMQz5XTGzI 29PTw+0JsW1YrGwIXiqVOr5n2zEk7+3lfiOEjsauGhFCf4ej0To\/CACeV\/oVAEBY+GsAEIJIAo+x nocE30ZqmW8k\/k8ACLwH\/8mfxjwLhcKzAFAsFp8FgMXFO58CgLnrlwEA+cIGAECkAyaniJBDw1sA gFRmm7OOE2GDOJERLT5v1Pmnk+gdAgBUCoypi4VhAECz1cfXS\/xco9EAsIPInsfXM5kMP++wGRYr 26Mh9l0f\/zRObjSi8ac1IoR+j6MVnj0IAC3k3gKAMLzN4M0j0oVhWZ8M9RjXo5DNI1\/qhWN89Po\/ AACB99BXvnU\/zVZ1CgBifvLOt75eLBZ\/EAAWFxePAsDc3BwAYGho6FPADrLt27fvfwKA9XWyCj09 yU8BAHwiZKvJeYZNzjuVKfJ1\/yoAIIjd4Kx7B\/h+4n5OINgLAIg1xRdjkY\/hNQBAKc\/TUS5M87HG 4y3mOa\/+\/mEdN\/\/k4nGuCIkEz4+LyDbs8xaDu4+GzG0k\/8\/x40cjGn9WI0Lo9zia4Td+GwCauPZf AkCIHN8IiUy+x7vsMLRYusAH8O7c0+seiHyhd1CfH\/4XABD3H\/lJAHj9za89CwCn3zz\/LAD092X\/ IQCsrq4lvnU+U1NTAIB9+\/YB2OFjBwcH\/xAANjbWHwaARqM+CQCez\/1Xq6sAgCBY47x7bwIAUgku CMkUMS6T\/CCPu3YUADD32jcAANt3iOCnPvE9AIBW60UAQLHIGLhcmAUA1Osz3G6K80omGCsbooah 7jU8ex7q+bv\/Sbrv23Mb9nqE0NHYVSNC6LuMZnhuHAAQLi8BQNM7DwDwkAUABE1myqoFImAYMiZM 9PMuv+mtakv8HjzGvtDnNjbIElw6TyRfWuLbsRiRbXSUMfdAP\/eXSmX0fmesaWNkhNvbzDFGrler 3G3MeFy+3mhdAgD0pxkL9\/QyxkbPvXxofTcA4MLzvwkAeO63\/jkAYHya8\/nEp36Vh+F\/EQCwlc\/x PJSOAQB6U9xOYPcOXlznh7vxfa\/juTvuhsguGxIhdDR25Qj+0zexu0eIxkcAwEdFr+QBAF44CQDY Xidr8NYffBoAkAqJiD0zHwIAjN3zDABgePppAEAjRsRqNd8CAMQSjGH3H5zg50bIBsTjZAuqFfK2 pomoVjmPIGBInUgk9JzYZCFoq8WYNvTJJ29uXQcAjI6S1Yj33OLne\/gnEAse5Ot4PwBg+eI3AQC3 vvFZHleTG05PPsDvBZ72Q2QPYtx\/HcY2cP8wJG4ZK2ErS2cM7Y67IbM97rAmkZYjGrtwRAh9txE2 DwJAw6voKVVhDV+ahARZjunJpwAAeyeJFK9+g6zAlW\/8AQBgXEj98Md+DAAQSylzFiMS1oN5AEBv Svx1k2xI0EeNRNxnbJxMErFLRc0HpmZjbJxOk21pgUjs+1wxxsdb2j71yakeIl8ifoTz8R8HACy+ fZbz\/9wvcn69jNkHpvcDAGaPPsHPCwtbyogavw1PK4OQ027SPN9WEEPezts3F3ltuKyHsSSm\/fCd 7UYIHY1dNSKE1iiVCj8LANvb230AkMvdBgCsrW4\/AwCpASJiqZADAKTSfG787nqRGojmIhGqf4w8 cZhkzLjw1h9zRw0i5sOf\/LsAgCDJ537jZT7WGOsiJs1DSISW\/Be5HBEskeDrPT1E9JHRIb2uAwoZ 6wcJSkkG+zk\/L875+8GI9kOWprbJlWfui\/8Xvxfn9m5VifR9FNdhz7HDAIA6lCEVz94KteOQ80aL LE7oxvQhHw14LaZ2kdcdYTc6xHk\/Quho7Krxlw6hr1+\/\/nMAkE6nvxcACgWq0d58800AwNw1ImSx zFjzQx+6BwCQSBOJE0meMrurrhEIUd7m+yllBNM9RJ5CjLzt6DRj2+W5rwIALnyOiHbyY38TANDb kwMA+A3ywxVl9GIeVWyZHj5COuQw5P49U\/d5jMl9j4gZBKoQCYjQMWUCvZjF5I9xe0Vu7+y\/\/6cA gO2Az++sEUkHEkTcmEiLZC\/n7YVU7TVDzhsejzP0jW0QYor98GOmbbGYOHSedw6X5eim6XA\/HyF0 NHbV2LUIXSgUPgQAvu+fBIDt7e3\/QY\/DAPDNb5JdmJsjIicSRNQ9M3sAAA8+TA1Df79q3UKl8NqA QoRoNIiIt25Q47CZYLD7+CPkdU+eZKy6tJkDAMTOEnlXLr7Azz\/4vdzPXn4+kWHmLhHndhtNxb6t Le2W82yGdpcvZPLEMsS4Hz\/OqutkgvcCTcWqPWIzvAaP743f+yWer\/UL3HxqFgBQrvL7VVVxf\/BD nwQABEPk39F6WeeB82i1MpqfVgDdA4h+RghXq\/HtEdqt8ja9tDtcpI4QOhq7avyFR+h8Pj8GAL29 vT8OAIVC4W8BQBiGBwBgcZGI99ZbzMxZ5cTkJJHmwx\/+ME9EYBktbreljKBl6BK6XS\/XxR8rJIw1 eQpv3mHmrX5znt+rExGf\/Mh3AQD2HT8EAEilePf\/4h\/8awDA67\/5PwMAnv4ZaiXiCWYMy0nW9nlC ylBqPrS4v8BXLAvjfZkRhMfjjcc5nyDJmL7Hf5TPQ2oszn\/xMwCApWsv8f0h6p3fusDMZVinWnDP cJbn6yEeR0yZUKvRNhbGa1K74nmq0rYMoFaSd\/LQ3x5L7XOGzPbckNt9PdJDR2NXjr9wCH3nzp2f AoBbt259AgBeeOGFpwEgFoslgB19sOvQc889ZCsMoe0Kt6piX3fnFtolkuboo4ycYjWrtIhZbCd2 ISvkffNGDgAwMEGECyrKLBbI545PHQAATBx5EgBw8WVqJU5cfgMAMHmSWokej0hZE0vRku8FWnXN R7V92n\/MFy\/sSdecJGLHkyf46BGhb7xONmflVSL0Aw+Sh37xEufXK9YkX+AKVRvgeezJKCOIazpP 65oH32+Jd4b46LAlRBZkdssA2nl1kdf9vJtJtO+1HZOimsJo7Mbx5xahC4XCpwHg6tWrzwDA5cuX nwWA559\/HgAwPExV2p49ZCX6+hjDuU47rirLruQdZx7ejYchka5aIWIHFiOb7ljfD8Q\/2815TJmt bEaPo9RgnHnj6wCAsUNkOZ5+lrV5I8Oc36GDjGWX5l4BAHz131E78dcP\/xo338sVxVNFiBeTDtsn Pw6\/R8fD+cYU88dilsEkb53wqfKrrPH4iq\/+SwDAvhOMmRfzRLorV+cBAL11InVKmhDz4\/AVi4ce +eeGtBseZnmeVbljCG33HlYN7yKr\/Q427Pd5R0zsfK7b72rIHiF0NHbV+FNH6LW1tWcB4Ny5c88C gO\/7PwgAvb29RwBg\/\/79vwwAGxsbPwEAqRTvou+77z7o8wB2vNAs9+\/6PhgSVFWxYc47huT2vR09 baLj+zBdb1Dq2F47c2UQLZ1wTGcyLp+J2DJj2pu3yXOXykTEUoEIXiwRYdL91EzEyqxkuf71fw8A OPzhj2r\/jKGbsevav+ZjemLxDTFY1fQBzZ\/I7NWoKbn43KcBAEePZAEAl9eIwM+9Ms\/tq8JlrUCe fOjocQDAyJBi1Bj302xxPvWGMqYBkbnZTGo+gZ5D39N5sZVNo1vtoI1u6js35rYRxdDR2JXjPztC z83NfRYALl68+P0A8IUvfAHATgxrMbDFxPF4\/CeAHXdJQ1JDZKvQMMcdYyns8\/l8vmP75nlmPsLv VHMZUjQ7npte1xPr0fCMjxZyCGEaUo8VtvnYo+rmcpX7v\/QWEe\/MUbIeT3+M89kn3XSr9AgA4M4V zmvu3B8BAPr2nAIAjB\/5PgBATPxyS0jpwarMFTuKTvBARK6uMBbemOP2hhP8fmyaGcL9I+S7j1xl LPzy+dM8X0OcfyKp3+eeD3D7ITOO1bqQ0evT\/iXDa2lltHsVIbPFwm5Gr1ss\/V5Vdd1Ykgiho7Gr xv9vhN7e3v5BADh\/\/vxRAKjX638fAIIg6AOAw4epm83lcgCA6WnWyBlPbFeUxVZurt7eX10lwhki G8KWy0QWi3ktNjZEMKQ2hHYrHGwYINijxcam493R7fr2gY7hy5FocJKINneNGb6pGa4kKxXGvC\/+ MdkZL8fM3\/s\/Spbj4Emq1AbjRMyFbfpl\/ME\/+ykAwIFHfxgAcN+T7+MOy1yJNlbodBQv8fzGJ7jS TY1S83H58\/8bAKBU43l68H2nAAAVxdS\/\/vuvAwDOnyVvffJ+8tGNmFSDTa4oyUHOqy5VneeLrajx eMMYz29TGcw2KyQPvJbXyUa4jza6vd4NsV3WJNJDR2NXjrsidC6X+zSwg6CXL1\/+FAB89rPMcNkV OTNDpxzL0Ll+wIbEhqgWCxv7YI8WE9sVaDG261rZzWnHvdJdd0obO3fRth2D6E4Wo1tVsg1ffOvI DHnfvcdnAQA3vkEEPTjClWX6KJH4nn1cqQayrNFDhaq\/4XHuN4jxXmIuOw8A+Kf\/6y8AAO6b+g0A wEMP0Cakts2Vq9Dg96ZTqpjZS9Zk7yEi6LW5HB+vEIl7s3z\/g09S3ffW66whfPl1qgXf\/2GuBKO9 \/D36JyZ0XpghbDR1nlqKnb20zqPOh05XU7+P\/YG5HnTdeGYb3bzs3JjZ7q0ihI7GrhxthH7ttdc+ DQD5fP5TAHDrFtVaphs+fpy8pMWk9txFQBdB3d4Zbq7euiMZgrtOOLY\/F5G78ZguMrv7dZEhCGx\/ TkymU2PsQbgj7O0YYYLzO\/1VajFiHnnmlTp52f6E+PESv\/jqdWo0xh4hrz4Ul454k6yEaUjSvYyV x7Lk4V+\/Qp66b4DbG81w3n3afqBKk2KZx79X39t7D1eO5VWuiDMHqe1YWSUC\/\/2f\/nEAwBXF\/oVN shnpft7r9KSNzdnq+JMx9V8rNN5ZfHhg90acn2Vi7XexfIH9XbixsPu82+\/sZgojhI7GrhzBK6+8 8mkAuHr16qcAYGiIMZYh8E7mjMOuMIuBLZPnxsx2Bdn2XOTtdjd7t9i4mz+wW+HQPsCu7IbFzJZx svctJuMz41586Z7DuFYi82hTrdz3fZS+G7\/7e6zkGBf7sapq6uzTjKFjfTwP58+xdvDp+xkzh1nu KVFXfz7wnuTDR6maezklPr7C9xtpnv+r16h6e+oJZggHBsj2rK0xth05QqS9cTvH75WY6SvqsK\/P E5kfOMDPX7xEpO8f472L55MtajWVF4gR8WNaEeoNq\/bu5MObirWLxeK3\/X3dFdV930ViG+7n268j GtHYRSMYHBycBIDZ2VkAO8hrV4Ahsl0phtgW21rsm2gbQqDj+27O3cbdMkfviI3e4+vv1a3yW\/YM YGdlMY1Es6GKCH3cCizCliEFNSLpAWYg64fJXnzgA\/R9\/nrAmLM\/xZh6zyjP4979rFxZvExdcvXY x3he01zprpyj41JJ\/huNOmPdxw6qanyD1dyVEs\/38BSR\/8pN7u\/QUbIg47On+H156W3mvwIAePnL nwcAbKt63Ber9HaeK8CdJW5\/8sT7dbzkoxtNfk62IvDa+mc7jeaU1Ims5gPt\/l10i5ndzKL9nsZ+ mTbH8hLvQG5EIxq7aAQAngXeibQWe7qIPTBAxHF1q3fz83VrwFxe0oaL6O72uyFvt+F+z1acdswv 90yrpvZ9BzEMcXxDJMXS4aq+xkycnyV7cN8xvr59i1XUU7Ny2J+mLnpgOsvtes8CAG4uEwGrFbIf C5eod25sS\/22ok4AQsiBQX6\/Ar6eW2KMmh0nUn\/9NL\/\/vmHx0we4ou47xPm9\/hbZmJ7CPPejzGC9 d0q\/D49neJYxfCvk9k1F5yOl82Y1mELcHRe7d\/391taYAT137lzH7z82xnkXCoWOv5PHHnus47kh s\/2d2u9ozyOWIxq7cgQDAwNHgO5sgFsR4PK43TI5huwukt8tl9+tytcd3VYA97nFXt1WhljgII3u 1luhrRzSJDTVqVSlLC35dATePACgp5+sUMH7DwCAp58lwtUaRJ6+rLQPfXzct4\/ne3ud3z9znghd katoSurDQY+x7u1zFwEAdbEHY4Pi71WjWClxP1sVvv\/cH30JAHD4PrFVGc57IMPvbRdUFV5Tj+4K 2QzrADCyj7F+E\/+R+62poqfI3zXZowoVsRqtZucK\/dJLrCa\/coUVLisrKx3n3TLK9vuYFsdUly67 YX9P9rvaczcyiBA6GrtqBN3uNrvxfO9VLdVmDe7iReYisMuquDGvi\/TddLUuL93VG63tU9zp5GPT 8nwlU0VzBKrlg68GsSHVc4k+1gzeyjHWHhyS+2eDMWk5lDuoDI4Wrr0KALgzz++nVAtZ7aFfyGaZ rEV6isfbXybiZ5K8u+8fZiy7IdVhKq0YP0+Er7eIfF96nrz45DDnfd8z9HcubuQ4ffl+9CvTd+yJ v87DizHmbdTVq6Vuemc5IikTCp0fY4dsRTtxgivDvn2s1BkfJ\/tiPimm3TlwgCvM9jb5dsscu7+j RRD22E2FFyF0NHbVCFwk7ZbBcWNbG90ydDa6xdjtKl0HQd1YuJuOtlts3c2\/wfUf7n4voONpGB9t WhWrVTR+nvMM4vL1UCxebjIGrIIZtaSqsHPr\/P7aecbCWyXGlPUGvyfAwp49ZBvSOSLVeotIP8qX cXuesfbk4VMAgL0ekW9TLEJerqTlNfmCaJ5LC0T81pe4Mtz3XfT\/uPIyVXgf+bH\/DgAwfIoOSY3w eT1yBYh5VN15Meuz6GZ6O38HqxBy8xV79+5919\/LPv+dajp29h+xHNHYhSNwEawbe9GtCtdGtyrc brF2N0S3mNmNebvpaN2MpLsC2OcNmV0drfs9i6XDUCpBz7QpiuUhpyLV9LWEXCgSqXvrREK\/xpg5 VG1ja1sdAKRt8FpELPMBGR0mohc2iKz3HiE\/+9ZNzv9aniq4aSHc1jYhfSjL+Q4OcHtbZfUhlF\/H doErQTzLea5vcvtX36BeO53IAgCWbzKWHjtFXXSraf4bdlqG9LsIoUOr4ra\/l3f9Ods+Ke7fUTct T7d7t25IHWk5orGrR9ANgbtdMd1UU93YDBvvtYLERVbXu8z9\/N26JhkSW6bpbuyM9QIxZPZ9Ibn8 MJaWiWA9ce53cpysxM0LdOYvbvH98vAsAODG64x5E3KyL20RMbPTfD87wFh5c4MZxqOHGYPnFhlr 7+snsob7iNhrm2QDMiJbyjUif6vE1yd7+cZqnOft0jZ\/j63LZGVmhriyeIrde1M8jodHyTbUPX6u IT\/qlipTQvk\/h3JGammFaXNEJl5s\/z109iF850qIjufd7o26\/X11q1yKEDoau2oEd+N5XaciG92Q zoZdaZbRcTOH3a4w1wHJ\/Dbc\/XSLpWz+LotiPOfly4wNTa1lgHH8OP0qLKaNBdIOJBUze+qxEufz oeH92h\/vzrfmWVEyOc4Y9+pFxqixIvf7mtRwfoqx8tpWjs\/VQ2Wsj49vzpGnHUpzYoWb3G5ZqrvB BBG8T95yuQpj8nyZ+5mrZfl7xcl+9CpD+HaemcH5DZ6XwTjP69P3MiM4IO0Gmmf40JKsrsnfoRnK nzp01YqdiGwdYsP2574znbs73N\/T\/q7s97SMo40IoaOxq0bgahtczzeXF3ZVeN3Uby6LYJmhbvpl 9\/v2OfveDfUwMbWf6\/9s+zPkte+\/\/vrrHd83vw7zyuvvH9Ce5S4amP+GHVdnl6lhaR0Scfse9zd3 nUi6GWcFyd5pvr9WliouT0R54ctS1ZXVv3Cd788Mczs\/8UPP8rwWiagDQWceoFikhqRS1e8k773P fYP7vbRChN9aJ9ImeqwnC2e7Webnt9Sx9plZZvQGVN1dC\/k9A9wwtEypZei4vXrVKpe+febuvaoh u41uK\/nOChuxHNHYxSNwEblbRsZlO6xWzGUt3MyjIazpYO3KOnToUMf3DPHtil5YIC9qvVHMKenU qVMd27FY283x2zweeIAZMUPkd1YZ26NiZbERZjDhiXcGFMubb4e83UzC0OPrvBR4\/hauM3PnCcke OkSWItFHffSry9Ihf5GIuLnB7f+zX\/0cAODvfpxORrGBoo5PK4j2X9X8X7nA8\/vCBX6\/T6xCPKb5 1KSFSOoeppcr2kaDK9rn\/iPdTn\/w8k8CACYPc57NgDFzrKWVWB0ElEBtZ0qdQqV3jG4IfDeWzK1U cVmtbpqOCKGjsatGYLGzsQnuleBm4i5dYrWyedaZWspiWsvZ2+fffvttAMDWFu\/yrfuUm\/lzrzTL +ZsXng37nLuyuFfsO67crjWJtl2L9YQQ7SBS7I5vPDb0PpEuv0b+uJpn7Do2ROT2a4xpB\/R8pcDt jM5QlPEzHySrsfAD\/wUA4H\/\/+f8FALC5SMT93X\/7GgDgxz7O8zuc5uerZWovluUuenaev0Oiyu+J xMCAHJv6B6jKK27Lqy7QiiYeeXOZ9xRnT7PGcfowz3e8QYSuiHUyHt8ypea30c1jrtu4GzvWbTu2 f2M3rNIl8uWIxq4ewdmz9DazCoNHH2W3JEPImKzpq1V1g1JsOjZKPtSQOZGw2i5u2BDxkUfof2wX Yr1e63geWm7f78zUtSvUvM7YPRazK9Iyeva+bdCpFdTomoFC41u\/1h7NpnpnK1MYWGe+dkaMLEYl R4Quyzc5phh1qyw2ppfn7\/599LmYW2fQefGt0wCAfcdZa\/gv\/9\/\/HgDwK7\/OmPbGK6xJfPUtshrf +wSRtpIXUqpr1+wwkXRtja8PTZB\/HhuSum9J3bHqfD\/fw+0kVLU9LqR79ClVeXvcb7PdG8U6JPB8 VyrSLWfkD93uqMvzZZUpdu9kK79btd3Nx8X00Na1zIZVtJgPjPu9KFMYjV05ggMHyDZMiIfciUUV SwvBrAPqiZPkLRsNc5IXsirWbMeYjpN7Qx1Y\/Vjn561XdROdyGsVEOE7NACdmSq7Iu2KDQLTGMSd 73XOawexLZZvLxkAgLrmG0tYn8Ka3jf2gyq6cn5NW5FP9BAReGNDPiY+ETQ7zXuHyQG+f\/MK3Tyv vDHP7azwfJyc5co3tMzzHZNT00aRartWnPPcvk3WZzDg7zagFeSeWfV40b3J6Tuc15rH\/VZaaT3y 81PWO0XedeWq9VDRcQuh+\/vIvydVMdOsd66sy8tyZBL7ZRUqxkLZoyG1Ia3ppV1Hrm41rl19oaMe K9HYjSOwzqgWAzdbpgO2u3yLZu3KsFhSd\/1+Jzuwk1kzXtt6Pbdd4vivZy6WpuGwIj4V3amDK1ru XbAZplr\/QHTMd6eHtOvc8+56XPNgsz6FDSFTkJAWxPhqHW9TtXotrSSZLJFoeposxJGD8oSrkT1Y kO\/GtLzhpsYZWx9\/hDHrW29QpTe\/ygzigGLviQGxPxnNS922itvqnqV5LOXpdJSVC+npM0TyAwfk Py0\/kf4MH7fLqrLW+S2pNrA3bayRMrry3\/DlYddsWK8bnb92xwP9GloRRkZGOs7vc889x+0IQS2G tvyAIbblCWzcvs3jWF8nW2Q+4W7N4c7fRcRyRGMXjsAQ12JaixUtY9Zs8K52R30nhI6r1sy3WJgv W+wVM99l45vbCGnILY1By2r9uELEpQKLS8PQaFmzaENUaU90l1+Tr0RTCG9+EbUakXFjo7NfoetP bCzO1PS4zkNN8xJSg8e\/vk5txWhcQmRl3kqqCEloPiU5Hh06MQsAOHCSSBdPqGZObqXHHyLi1JNk Md76mnjkVcbW4+Z2anpiKxAZIKLeXOK8\/BTnUdeClZCj\/o0lZlrj1r1Lv+eE8gSlGo\/\/6Wc+CABI 96t3TUM9vtWj\/NYtrhxD2Wn9PqqttN\/TqTBykfq7v\/u79ffR6ZVoiGramjNnmDG1PMX997OK3jwX TbOzsbHRsT8bEUJHY1eOwPPM91fIFMoPWNXG8QSRzg+sullea\/JWg3yQm9I6JBK6cuvS80rdVa9Z J1K+PjxM\/jMwzzRVQpSrjJlu3bIuSro7rqhaO+DnRkeY0Uorg9bUiuDHGNteuUoNyOgoWYBGvbOj wPAw79pTKburJoL3JPi+dX0KPc4nmRIfHbMMFWO51Zvs6X3gIF\/PjBAhPemHW8ksz1OPYkv1MYR4 3mOnTgIArp9jzFheoCpwu6gYXcjkKaYPdI8T9nA7W\/K+6+3jfK4tiyfWCpIY4v6DFf6e\/R4Relge eR\/\/OPsglhtcKeauMbN7YD\/9rg8fOcbjjzMvsbwsDY\/x97qXsfP6a7\/GXuUW+xofbZlit8OvIbfx 1Z\/+9KcBAE8\/zU64xl4ZsnerVbURIXQ0dtUIbtxmDr+YZ2wyPkYkzA6Ihw54F72dY6\/pVEpaih4i 0ECvOo+aC6Rn+mRuJ90kYjWE\/ObuGVcvDt\/jlVpXDVuqn5m3mPrfbW9y\/37AK3VU\/fhSSSF+g8gW xBWjtsgSjI7xis\/0E7Fu3SQCDWaJ6EFCKr8UkXJVHnODkjnHk5wHEoxFg2qOjzFWtvjQ3XaDiLW0 zM+P7GEMCLE4vpAZhtRx1ejpXiAR40px5AF+\/5uvEvEHkzxfy5tEokslnWchU0m1ftUG57Vc4vGO D\/L4buXIC8flbNST4v7Noy7hEznTWWbgKhXeC6ytcnuZNM9bvUKkzReolsypI4Elas11dG5uruMP y3w2rIPD6CjnZchqiG7Pjb9+8cUXAQBf+hK9+QzhDaGNFXG\/3+atEY1o7KIRZNJUb\/k+EaxvULGq audSSbIZmV4iTRAwlkr0zvK5z8xWrM0vq7NoUtXFVs0t3rMl5\/u4Pt8KFXt7RKTpmHnGqYaun8hd b\/Kxohq6njSfxwN+r1y+rUMikuW2ufJcvMztrK0RcfLys6ioI+v7P\/AkAOD7v5eOQbU6karW5HkJ Ylwhwvio5k+fZYnbUNrm+1N7hYw3+L29h9hJt10drXsBz5fzvO4ZNjeYadwzReTPfQ9j2tN\/\/NsA gLOb\/P4b89xhS\/uLqbo7K01FPcPzXVim6m9yD2sEQ1WFV8TC9Azwc0f3s5Pt8fupmVjd+ncAgA15 3v3B7\/8SAOD8OWUq18UqVS125evGPhgCG7tho5vrq6u\/N4R1M46GyN18yN2+lxFCR2NXjeDObVZI VFuMoccmmcEZHCQSeb6udFCXGzQZI15\/m3zpV\/7odwAAKV0adoUurXF71SoRNKPYrlAgUqJO5H\/k mQ8BAGb2HdaMqBdO9fOKG5CrZssqRjJCel9O93UiYq12ntsvXdA8ePff08v9TEy09Dle6Y2m2A2f d\/Vf+Rq\/n0lnAQBDYmFGhohkg\/2nAADxOCtJzn3p3wIAlpeJsI88doT78zurya0XeDvmtIwoiLhZ 1Siu3eR2jt9LVmFs6IcAAL\/xD38PALAiliKIMXbOm5Ymx\/M8u3+W8x\/n+a8qIzg8ZJk7WxF5\/idm +HqYzPG8FVmlXqlyfn2qrJmc4Pf6lGlsNK0ihs+tz6PrkOQ6XJlO3pDYYmC30smtbXWr910Nh33O kDpC6GjsqhEcOUK9cpDUldhLpIn51EXnN3gFfO15dpT9nX\/18wCAxVu8ouMFIqBl+tIzzLhNTBFp t6XfBS7pOWP1OytEpH\/1GTrEl+UNl5Sm4r77qAI89QB7Uk\/v47wKW0S2o48yk3T\/I4x9Rwa5svSl F\/Scd+ct+TPXxAbUauqIauo5XdKJpKnJZgEAvUmuSEkQqW+rH+Bbf\/hzAIDNDcaqfkrQWyaitbLq LmUOTDUF28jrUZlG8d5hi+8nehkTriwSIQ88wpXr0FGuOOeunNV8xcOq8iSpzOr125zPvYeo4ch6 prkgEsYzpG9SVZ6Px54mzxw2eFzFgnTd6kTbqhvvz5g7od835pu6zVxc373\/Y7eawW66dJdXdjsL 22M3Z69IDx2NXTmCiXHGavGYfI2rvBI+r8qJf\/EL\/wcA4HpeOlkBz55x5vZTUpdZk6i1RWoeKtbF aZvXzOwYY2jrUWI1aYuLROoRxXorcul8+U1qCE5fJqLHWuxdsq2YMdNr3Z2I5N\/\/MWoGTirzNjJG pOrpz2j7cgEVcgVx3RWbI71Ud2tCuouqNn\/rS78AAFi9zQxeWCPCTd7DmP\/EBJGqliP70JPi\/lra fgy8W4e5dbbVglK3Sb3WlxICTZFFmp8jov\/0z7AX95df+nsAgNx2jr+XYvRt\/R6zE7y3SQroeuVb XY9RS1JSJi4tdeX+Y4zVa3WuaFVpX+qqTGm2nY+k0TBtTlv9+O4OWHfzc+7mavtee3t38zRsx+SI RjR20Qj+8U\/8AwA7VczXl4iYZy4xdhubJM8ZyG9ifA+R+fgBsh8VaSQWrzCmHqzwGskeI3JvLzJm PS3vtxMHiMRx3b2OKuYsbTGGm5JGYUGecJkUY9u2TlklMOsFeeAViZj\/+rd\/FwCQ\/gxZl6lR8eZC qD1T3G6tJq3DILe7Je+2qxcY46NIpE0pg5nTNX9gD1eYwXHeG\/T0KOMFbmd5XXfzaflED5laTmxE U\/cS6muIZpbvt0wvru5Q45xvalC+JhfJJv3kD7Hj7G\/89mcB7LiQTqQ5\/yMz\/P3G+sX3NsWGtDp7 hLcqnEdglUXip0OtGGFLSKznMd96m5hvCr\/X7nTgv3vVfrdOEG7Ma7Gxq9W4Wzc2V9feZlUQjWjs ohGcP0tkKiiDFgzxyj6gGLVU5N\/8PUfJMsxdpm\/xTdW2DcflZtnPz6+neSWv3GDMfVSebZlpbreo SpKaruyqnIWGp1SRMEiEmm6oB\/VN3oWPan8HH2Tst7CYAwCEOfLRDzzJ7k5J8ZELioUD3b2fOcMV pCU97\/UlHvfGprpNSd+bkhfc1F6yNcMZ0x7wOGf38TiSIpZjBc5jrc7zlOpVB9cBuXlayKxeJW1h c5jlg47LN3WekCYh\/vrISeYDvifP4wyKpwAAr57h\/CcmeO8zLP8N02ps5+WfoZU3FOvSXCNvf\/ab XwMAvG+vWC7x5622L7RVZauqWzWWVqLSbFoM28kTu85ZbudXl092Edp4ZXtuw3Wn7doTCNGIxi4a QUGZq5r4xmxJFQt9RNohZeiKi0TcffIRXpf\/Qkv8ZkI+yhODRIzJg0SGizd4lz84SfXVdL9iryqR 8sVXiRj5VcaEQwF53yUVxoxLt3vnDmP7+lWyH8+8j2xGQbHhwKAOqMR5hiUi9DU514e9RIrlvHpx l\/m9Ya0oxgL0TfAeYe80j+PEPrIH\/Wqc2i++OC22w1NFzYTmme4jUkL8sqcOtJBOG+1YWuchVAWI YlXPaiKV2UtIlXjq\/dSczBwj3\/34G6zwuHqFK2Y+J01LUSyAagMrW0LGJp8ntUCkM52uq5bA9BVD h+3YtJNv3omULRPYWUXvdhJ2M4Yui9Etpm7vpYuGo1ufygiho7GrRiBSAWldGD3yX9jrk91YukMk njxCZLi9IsRT7j63Rf6yf4iIVlFn1KHEQQDAHok8Ykn5O\/Rbr2kix7GTRKhigVfasnycY7ryV6XG S6lCwjziFjaU8VNvERSJ9L0D5HGHB8hK5LKMxTdKQlTxq0nFrmslvp+V\/8Wk2ImnTtnxkvfe28sl wELi2wUib0+vKlyuUS88OMQMZgvy8DPe1WLOtu+0wwqYgYlnfiJykFKH11A1iUNT3O\/7VIkzvZ\/7 +eZL9MK7vWC8PX+fhDoSNCryCRnhvcrBhxg712rsaFAqcyWt1Kz6ndNp1K1ixJymOHZo4Hfnla0i xe0+5rIebmxsMfhOzWfsXbdvY8ePJdJDR2MXjqC0yJjygVne1VfFNyb7iGiHh4h48QEGkXsm+fyN 80TEy1tEsPULrGgZGMsCAJZLip0VnFU25QOhGG5wtFN915dW5cIYEahY4pV5VFfyYi\/ntXeaMfw9 8p24tcDM5LKQNLnK2HJsilqMyWkiW2VBWpG0YkfFsIVt9U6R\/\/SInO0NQUYy3O+5OW7\/vpPcb63F lWp7kStYr+Z1c42x6rE+aT0G1AI2puposQKQJiJ0eoy3cbtlMaLZo0pN5huBzJXxwEGqAcfHyf68 9DLZi1df5nm4fI0qQk8sxU\/93D8CAIzO8LgWbjMjWsjz+K2nd6tl3ceCjkfPNy87TSvsVMkZsrq+ 3TZcNuMdFSddOv4aErvqO1elFyF0NHbVCCZVRLdY0922AKSxzv\/0jvJv\/nCcyLkkF9I1ZQSH0kS6 NXm93XcvWYIhaQZur6uTaZKx8wX1nL76MjOHf\/W7ePc+lyfiDFSEZGUi4EYvY\/OZUc5zPMG7+Wvz 5JUvXiYSpuRMlJngPUBFvhrHjqt3iLpGrUtzkVW\/vmpCzkKqfdwzRITuS\/K4Rns473gov41JsT89 ROqri5xXs6DaR0OgtCo3zInKfE\/Q+fxbhNL6vO7mrUOrYmuLpSF+vh2Ti5VIZTjPD37kWR5vmZ+f X+AKvCEf6\/GDvDco5t8AAOS2GftfvjQPAHj7rDQu0jvP7mFFS02\/d14ZXKsomZqaBQD81m\/9FoAd ZDZvO3NAMtbjp3\/6pwEAL7zwAgDA3G8NcR977DHuR34d9mhV5MZrm19HocC\/G\/ONjhA6GrtqBMkk EaKwSSQdTBBhK7rrv3meSHqmyCt5WzxnID41meIVefIYY+vjs4yNK\/JGq\/pynyyS\/Th0nFeuIdFn v\/wyAODhk4xBYxIZlMdnAQCNm4zNb6xyfv5eIu74HiLS4\/fzyr8kzQhUK7guXva4Kk1m9vI411aI pE35HAeKFWvSfBTq\/P6Zs1wB9k8RaY\/s4+MbZ6itSEuH\/MBe8\/1QPz+tDL56nJjzUdvHQseNKhHT i4uXls9HGMvyqedgjdMHsJ2yM\/JEfRTz6uVdUF\/CZA\/3d2SGMfbo7D59m5U6e\/eS9fjRH\/kAj+OT VBGGdR1XI9UxDXO8MtbBYuIf+IEf6Hjd7YZmj+a\/MT3NvzOrGbRH1wPPHq362+3KZtu1HjwRQkdj V43g8DiJ6JfXiVzrBWkg6opV+nlFXpNH3PAQWYOqqrI9QUT+NhH47S1m9I4cJ8vQq4qInolZADve aMfuEYJXTwMAbl8mokwdZWya3iLCFjNynJdKbKXEK3TjHGOvXvkvP\/ssK1a25UeRr3D+\/XLl7Bvh cdSmmIm8phhwdNqc+IkcPT1ieeQotXyFsWY6QYR76iS\/\/+oFIkpOHWHvP07f7HyTz6FKGc+88Exf bBk1nyuK6aERSFAeWMrOeFr9Uk3HJ9vUaIEZcPOxsM7jnxzkfqezvDdYvM7fYWtNXnwJns9LVxjj 3rzBFWtri79\/rZTldENjG8yllvO02tHDh4nohqAWKy8tLXXM11gLe0ynOS9z5u9WoeKyH+6j+70I oaOxq0bw2MO8wvJlxshvXiRyDI4zptsIyBocO0WEuC7fiRH5Sa+rxm9oP2Pg1QKRa+tNxr6e9LqH mmQJ6qPcXk3qvgO6G16Us\/z6pjzYVNkymhIfO8XKlKcfngUAnHmN871wh4j0yukrAIAnTxEpD+8h \/+tJ\/3xD87x5m\/M48TC1IAG4Mt3eImIv3s4BAIYPcCUyvfbeST5mxFM\/dUAVN8oYln0ed2mD2+sf MB62LSDmfNoVG1ZrKQS3WNg+3vbZ1vNW26pIrwuZTb0m5K+V+PvdnKPmZX5+HgCwZx8zmP3D\/F5Z sezoqM6Tx8dSgZnHRp0rlwcicjxuPdvVWcBBUFdrYR1\/jYWwR4uh3R4sbiWKi9Ruz3hDeOvCZg5N EUJHY1eN4MlHiZAFOeZsFIgcb9xgzDWS4pU1HmfsuH+ad79XrjFG2qrxiplaIRIe6ecVXBrmlbsk RLxc55Wb2FbvEjn6DA0Q8TIJ1dRJc3BbTkfZQSLjsQki5qZ6ZltoeXxE\/hDie1fvkJWZ3ZcFAFQV Y5aKclrSJXx7ich+YFwxnWLYkjKXS3PUlIw9RB14TVqRngyRbC0nnXFgSMXH9Ah58xWxLtOzRPCw YVXmysDJYQq+GT\/LYUkVJm0yw+m+hS6+yJ51rRKbks9zO0n1JD8ph\/xYjPOqFq33Ob9XKVnnX+mg jU9vdx3TtFqdGhTr6Hu3foWGrIakbq\/4bio899FWBLdXS\/t7iEY0dtEIMkkiy8mjUqflGdvkN3n3 +7ac4ld1Nz7Zxyt3\/xHGLkocYiSl7kris2+pHPmiOpUOS5swnlcGsj8LALiwqNpAuVwOjxOJB9RX r2bdqNSlaXSEbENPgfO8tqhcvvoDxnqIdHfkkzyc5RW8uMzY9soG5zMl\/rwiTcmgEM5sJhoprgzp mGJNVd54inn37pOHXoXPV9a43d6W\/JpHzbdaiGy1g+bvbFXg0s60O9cq44mYxabmBWfaDwu2rQqb r2+uccVcnOfjwhrvCQpriun3zvLzdT5vqNIooQzuoBz6UymuxA0dVzPs1B0bkhq74A5DakNgVw1n sbNl9lwWw+1g7CKzq+GIvO2isatHYD1M9s9mAQBJVWaYm+TnvsKY9M2bRMic\/IobF8VnJuVu2Usk vCHdcVzea+P9RNybi3y9kZFrZf6Ovi\/Vl3TOJXU67UuqC5N8j2stXol58agNIdx9h7hS1BVk3rrJ TN5anJm4iT7etS9s2ZXNmPKq+NqePu53JsPYTjbTGO+3TCdXiJL42LCXn\/PUK2VAFTh9qgYPQiL3 uuw4TFXnWc8aaTJich8NrQuXqsMtZjYSw4s5GUHr\/tWWcnBlyI5xv4sbRL5ry\/y9Diof8MR3fZj7 B11ZG6rlLJfku1yy3jLq9Ct2o+nw3y4yd+vtffEiK2n272deodJmVfh3ZZk9Y0NsuJlAVyftVoO7 eukIoaOxq0aQkJajWuUVPTujv3T5OsxMsbLhtbeYCXzhFWocFsSK+DK6X0rze+ubQmjFaPWWVVPz yl6ShsKXr3Exp+5VQtiKPO8Gk7xy63UiUF3+FOn7iTinLzKzeHQmCwA4eGAWAHD\/KVZJX1vgPcCl m5z3qliYjRz3kw24FN1Z4\/ORMSJhdV0VKuoKlVQ19Jq+v0ft\/+Jx45XN9VLVzvLBHszodXUiaCOZ YubQ4wpgHW93WvC2iWiOds9yx1FIT325qJ5+81WeP+UBMvLOW57jebpxlTz9gePmHCX\/j16ev2aN z0U+oVJqLzEA3qlLtuOxTrAujzwlb0NT5dn3TT1nw3qvuO6krg9HN8eld9QWIhrR2EUjWFclSZ+c +ktiJ8bGiDDVPNmHH\/thQtNf\/SR52TOvKRO1wivw\/HUi275tIt8ZxdhBjVfSqqqkW7orRYH7kZwa ZbEB2w3rQyinfyHR0p0cAOCLm9RwjMqr7op6p1gsNjRNpHniFDOgb18mUp88wuD46zki1eqqKjOk +74oPbOXkMbgFpFj71QWANDTK75ZK01LrM\/2KleAgUHy857Ugr58lkP1ckFMPbgTVgUu\/tRqCD3T bijzZ9XNisF3SlkUYwrJlzd4L7Co2s7X3mSFyrEZshULqzyPY9KJ10N1OmiaRoPz6FFxaSzgeczI l9tidhcJ3Sptt\/ra9NA2LBZ2kdx1QnL9OExN56r7XGd\/86eOEDoau2oE16\/zCp4ZY4br1i2yD30Z IuqBE9Q519SXcGyQV\/KHPsDXc9u80nuV+VpXzLSl0PB3\/g1r2\/74S6wuXivoyrQOp3JoSlgvcMVS dSHVdplXZLap7k1CuKsLWkmy\/H5OVcuJBJGpLt73+AHxzGO6a1dM+vYVxnIFbX+rwP1NMyTFzStc mfAg+dl+rRjYZowfS\/F8ZeSRV5RWJN0nZFXFjgplEE8pljaWImY1euq90o6l7aex2FEvt3uYCynV TSy\/zd\/lwmmyCkN9PM5r15gJ\/Gs\/QvfSzCj3ly\/zXsQKYFqtTOe8TBVoMatTne6yGm5s6yKp21vF RfS7DXdlcPfrZhwjhI7GrhrBvfcTaRZvMYY8PM3Y5JzazsXkAHTkAWboWgIqKz4eHFKvcPGnk1LT TatXyf\/4c0SAH\/kY1XgvvzIPAHjxdfV4vqAe1xXpq6u60lXl3Sck21btnHUEGJLqqygf6rPn+f5k msdz4AD3f3g\/Y\/7GNhH3yBRZmozUfV86Led6qejCAe5vJs3juH5rQ9vh9ixGhtRvcdPlDgtpA8V8 CgXz24zFi7eJ7DNH1bumh9uzfoZtxw+LpS3WjFk\/PtMsmB6a+99W1X29VNBW+Pqxo\/RFOfUhupY2 Q\/6g9YocqOr8XZoNaVKahpyahlWde53I+159n7u93g1x7+YL7W6v2\/sRQkdjV42gLv55\/5EsX1Hf vOPyuluYY+xr3mmZMcaUTd9y5+pT2MO749BXh9cykSOm\/n5HTvB7Bw+fAgA8+Tj10l94nr4QX36D iDl3mbFfEeSpS7rLHVHs3JLmYUsX5pB6Z\/eqF3Yxz\/mvbhDRYjFWYBw+yhWiepg1dYsb3P\/YMJF5 SxmzZlFLkGr9zJ86Fje\/Z77tCYI91SRabNuUA35D7M6y9NrFvPh4ubsO9UmHbKyFaTeM3TCktOpv 63plECRHoxvqnmXefAl1Rrj3fd\/D\/czw\/BRKrCGs6PgqFWZQazXr\/CuENsQz\/ttxOHKdj1yWohtS 2\/hOEb7bcPdnI0LoaOyqESzMy4Fn1v62swCA\/kBagPtMVafYR0jgB+ZAJEQrdfpJBIYsHmPzlp57 QvCDh8gL\/60j7wMAfHKD2\/nNz5wGAFy5tqztEWnP3iASefJXnlQsO5AyNRaRKaUeJ\/EYjyud4OvL V8g\/96nX97MPqOd4jfP+5mXOMydfkNiQfClmuHJMTpI98U1kYVXdprWoasVSpY2v+QU63rq0Jxv5 HABgqKHuWFZxEkhtZj3C9eipVtC6eVn1d6Gk8y4NTFIVM02d5yf\/Cquw0aSPdKOmfo4N\/m6tlmko ZG7oWcdb8c7yA2kIqd3MXbeKFRvdkLjb6IbQ7na6IXNbpfcd7TUa0fhzPoLhFK\/s4mYOAJBXxcit eSK0VTg88Bj9GzyxC62QMbUnPwnPeGSrgYtJ52uZMmV2rMe1BYnm1TbYz8e\/8zdYvX17nvO5dI6Z rQcPEyklp8adZdUIXmWMvFeVIkl1oM2qkmFmQh1TJU+7vcHYPkwQoWpC1FMjRJpbG+Sz82XO2\/Th NSFqWjxtCKs40fHFpS0w1kMZvskD6jC7zMzpyCjvDcKKfESs54rPFctYFM8zR39t19R2TdOEEJmv 3p4HAGSE8AnpvFsNrlC1JtmNsmorG40sAKApv42WWA6rlGm1aQ7txvGmc7UWLrKaJqNbZtFGNz9o 9\/NujO5mGO37tt8IoaOxq0bQP0kNwtIcNQkp6ZMPjvIKvrxMRHvtTca0Dz1GZOtNWcWFU65st+eK 9Zo1VR44kgRDsphBQcLu8vm96QPqHTLKK3BllTFuRbH8ratEzKsDykxJ3bd\/iO8n5Za6rCrs+x+l tqN2jfcAZfU7PDbBz11eJR99zyyPe\/8sj\/PU\/VKlWcdYOxDrbmWaDMu0tdv4MfZMZeTKWVGXMa18 xw5wZUGGsbmnblxtXtprdpwnKDNYVW3iy1+ny+iINDhrUin6cl5qyNnKb5me2HyYTTVnvs1Srznk QhuoPff1TkR2e6Z06\/TaLfY1pO2G6O7n3Y4ANqIYOhq7cgQJ1czt26NOsjVeMUubRLB+NS+5dZsx 4PJ1agEmDzET1aMq5tDrrDQwl8xYwmIwQxrr4aGXpVHweoTQ5rap7\/cMEsH2DsknQo7+B7h77L1G 1mLuMu\/mW1VVqac4byUYsbmhKnPpnGvy2\/AmqNbLNrniVBr8niztMDulEhbjie04TJNg1dqBaTWs PLqzI2t2QN51qhQp3qCvSOqA9QM0\/tmgkfNtI5XYh5xWzLV56pxRUGw+PKbzTaSPxxRLW\/9BsSxh 0\/yfrT9hp0Zkx5HfEPXbaylch\/7vlE\/+TjOLd2NPIoSOxq4aQVUecBt3GEP3qno7t6XOrdDduDJQ 83OM2foDaiPCMX4uOaCqaKtelv45bJj+V3fHQhDrXOqZK6fYBB9EMigTGYpf9VRhYlXQsRSv2MP3 yMNuhL4Tt6\/yOPYMmx8zr9meITnvtLgS1VUpUcsrE6guUZVNxqKzU8osbjO2Tvbze\/DE3sD0zIp9 Y1YV3tm\/L5CbqacYODsif44Blb7IrTQUK2H8b7uza9PUe3wcypCFOTLN47+4Jcf8ASJ0VWxSQdqV VMpUhlaFzd22a\/XqplM2zYgORzWT9fq79xfsFju7Vduu1sJGt25W7vvdKlO6zSNC6GjsqhGoWBsp Odps3mJMmVAv67UNXiED+tvf3CKfeXmeSHJvkixJUtXdYT0HAPAUi3kNdalSV62w2dmtqBUKsQzR hQyetAvt56adaJdDS2sg5B8fM36Xx7G4RHbjyClmOlfkJB9Xp9g9ygSWl8gGJAb5vJDm8YxNyblf DQpbgaqOVQ0NT\/cOMVuBxK9b96qG1HeKhdG0SgxtJ2Xft5iwoBNi21fNoXyfzQMv0DyO30P144B0 1pcXmBe4uc3zlh2hVqPautCx31ZoPWRMV60VxzQqnsXc765y68ZWuDrobpUsLjvRbbjI3g3p38Gq vKetRyMaf0FGAMWw6REiUTpFNZqV\/5ZfYY1aXn4bQ328\/W8UxE+\/TYR7QKZxfYpVPTkytTzGlr5d 8RJU13VlBdZdSbV8xmOH8ofwza\/CKjasKLrpuHNqRZjYy1hyaEqIIg3E8DDnXdcXcjluf2aYtW8N 9cruGeb8NlbUy2TIKi6MLxeyyjfEi2d1JrXUWU2c1QrGhbA6Pt+3ewhz9zSnJGOB9Lqne4aYNB9i JVpiI1KqqZxK8vxuSVX46mWqF8tFxeSSarQB1\/IFhmV2\/iw2dZDQjV3dzJ6LkG6XKxvGN7s1g91Y kW7+G14Xb78IoaOxK0fQKioHnzFNgu5qQWQ4cYIxqVV5V2s5AEAmI62BkOfsGfKi9x0lQmb2yPlI MW67iK3Bu\/R4gu9bCG2daWGI5Tu1Z6HxtE4sZu6dDfucas3ECnjSDZc2GEOHGcb6Vu0ey\/G4+uVj HZfv9bA6ytbV4yMmjYRhQGjQJsTzLIb2hdRWK2j8bxtY+jRffV4akLCNPELomKngeN6KBbItLd1b pPvkPafzduES1YRDQ1xxAunH63aCxZe3VXyQOtBzkBqdeudumb27sRw23D6E71WF52o27ubHEWUK o7ErR2B0qmkF7C++Kd45mVVm7rB6k9yRl10Pka5fPVD6ZbCxLTVdf0J8sq54y1j5xi+X5aBj\/fpk Kmc8dmiaBjdjZBUe7apoh\/2w\/n0WW9ndtTQnpTpXiCWpCyt3+P7RgzzeIW0m0EoVT2oFMOQRW+G3 gchWCnNEynSc4DBGRPZimq9Ubu3Kk0DzN9ZBtY6hOftLRddoMiZ++esvAQCe+i52rbojDztzqDp2 L\/n4pDQuZfMbETuTCDgfv5f7qdlKoZRqq9WJfK7arRsf7Goyuo1uGcRumcBuVeLdMokRQkdjV43A a3WyBV6PYlnFnpA+t18ecv11shsD4kPv5IkAo3vZs2R0ShUR4md9xYLtHtV13bV7OT5U+BgKgczz DZY5U+zXMp\/kmCGw+VpYxsnYhc73rWo52S8nKLlsnjzKe4OFCrUQOWk9pg9pZWkq9lTM39ZqtDu\/ mkpNiG3V2uqoGyZM46HKEq1EXkvHl5B3nDQwoWfl9MosSr13a5G1j1Npfv6JB+iH8tIbpwEAYyOs TUxkuL8Tjz\/F42wypi4VraaR+60UVaXftJWhM\/ZNJjrvFUxnbAhoTkbGVtxNu+E7NYndkNh1Hb2b +q6bdiRC6GjsqhF4rXZyH8COl1o7U6Q+gIk+ORE9KFfJTXPZZDX3inyje8tZAEBaDv2QE37D+vUJ +WI9zCA2S2QfWqtElKq82jzdxfcqU9fuNWKFMYGxDeavrNd9J4ZrWa9sfnFgWNXpQsDpGWYG43Jh bfPCdSGLGQk1Wh3zCPU5z1633ijGq1sGsa2W0\/zlN43Q3jee3c67tCvipS+8ST\/n2z555sceexAA 8OADzBc8\/yKruWvSzEwckKNVgW6kZbVYqJa5IlWr0mdLY7JDb\/CxXnt3FsPlgV2thtu9yu1L6CJ1 t+91Q1739W61hhFCR2NXjaDND9tfvLpRwWoBVRXsGW8sdVlmD9VoTSFRTnfbV+UfPTDIzNzBo9RS DEtvjXimY7u+qdVK6k2tmHpdvUE2F9XbZZYrQagaQJtnDOYnYUVwFuvaISpGbTsOddbM9du8avKy E8IikApOPVM8qdVg6sG6xex6NOG1phdatbR25LUzc0L4pjn4G6Krtk++HsVNIvJ4ltudo3Udzp3n fJJj6ssnnvvBp1k9X2tRbVgp0d+kVOT2re9gpWIZvNi3noZ3IGc3VgHO57vx0ObY7\/ZIMS86F+m7 1Ri6LIvbGzzy5YjGrh5BOyhtO+XoCk5YzaD1oCbi+nKsD+PkM998jUjykjQf2ZQ86Iq8gjYLjI1P 1tjJdGrfKX7fV0mIYmx\/\/DE+ZojU42PzAIClecbUuQ2qAIfGuDK0lMFrSWPhi19td5ey4NeqqC3U NRbFYlx19fKqYiekYfHS3C\/UtzGsWcZtQ9vXimXnpa09UBW3tChhO4PZqZPeiQF1\/mtif8Si9Ca5 3\/5ebnfkAO9dxo+w+v6q3FEH1Zv83sd4fku153j+1W\/xxnXO4\/I5ajwuX+VK2mxmAQBPPP4kAGBS taVu3z8XiY31uBsv3c3nuarfzXUldfXR7qMNF\/EjliMau3oE7RiwrZ0wukCxbiD\/YH9Ir5tzkLzn KnTkuaTOssPSRAxlqT2Y8Yks61u8oibluOT5pq4zp3v26Pbk7BNKFzxxSP4R1Zz2y\/3fkdNRb5Lz H5oW72uW\/23dMjR\/1RA2LLNnb5i\/sMXaVssnJA3ES4fmdGQsh\/llGHLr9Zbx0eJp2xUu5oyk7TbF Q0t96EkVGKpyxtN52XuYK1Jska+XpXqsbjPTOrbnoI6PiF0sMdgu5Ln\/cfV1TNzPleTpZ9gz\/Rsv kQVZWuIKe1k1mWNjzAg\/\/PDDPCohq3Wtsh7bLlK77IOL4DZcBHcrXNzY2h0ucr+jUgbRiMYuGkFD rpNBzPrPdVZMQDV+lilr9wARP31LPTwkGsPyTSI25J0Wqo\/hfY+Oajt6Xc5AnvG2cbETpp6zTFuD LEQrzxWgUeNd\/tAQ53dd7ptlOTdNqsNrkDD2QwgphA57tDJYjaJ4YcmX4de5EoV1xWitHN8w90\/z 4xACt2ByQSGuZbxCO4\/Ghuh0Wmaw\/Xk+Ni3GLDH27RXvb122ZvbwvH3jq2SRWvJzPvLIEzz++isA gGKBsX++pOOuq8Oufs+aer88\/NDj\/HzRul3ptCg2NQQ1JO6menPH8jL3f\/MmVYyG6NZBNpvNAgAO HuTK4vLd3WoGuyG9jQiho7ErRxDvUawXCGnMoT60LkhCGsXYLcXYdxZzAIAF+XVsrRJBB9WRtWnd rBJZAMDQOGPB0LfYXLGruZfGzJlIrwfyw1BV+htnpbnIEfEnRohcqyDyb64L4aSJGMwyxu9Xh9V4 DxG6JSguKFHmiRdvKeM3kOHnmvL3iIknRpUIE4amElRGz2r+aht2SvU+kaktGhTf3pD2Y32BPHE6 yfNUzTNGvfg2u3ydOMV7ipS8+pbXb2g\/0pOnedwxeROWy\/Tx3s7reYnnL9A8Gk3+jo2CsSmmhdHT Lsjr9tTupnu250OqTbUOspubvNfZkKfg2bM8vsuXOd+REcb21mHWvmcrhe3fYnjrduX2VrERIXQ0 dtUI4LtFZ1aBYfyp1FkNIal46bfP8m46t04txthIFgCwvEJkm8jIWV\/97rJDVoHR6aDkWfW0aUq0 IviheGVl9ipS6V1VR4HVO7xCh4aJRE3xuTfyRLBrYCw\/oEqcyXHytz3yHZlXT5kV+TVL8oA9e1gt ff+DciJK8rg8qfLQtPnr\/CjT2qoSgXZ6k4iPlibkzjLPy9kLdJ4qrqqPo9R4w9KVx4VM53V+H3ic yHj9Co\/n5g1+\/5lP\/AOdN57\/UpErZKnE81armK+JIVmnVsJXbG+szN18N9y+gDa6ednZo3WUffxx xuzz8\/M83+KjbbtLS5y\/Ibb1nXS1JN1WiHYlDaIRjV00gm8xHgbwrRUg1qdOV7R8iethDgCwsiLt Q5mZJ\/MVHulnDFqS3rbXSv6qchJKdKrYjAVo1dQb27Ql4BXcUKxaKpLXzqTIAhQFmGGR+++XHjiT JiLFdQWvrxMpcwtLmr9pA7gSrKkDa7HMx9tX+f21RfK1zzx7CgCQDoxPHuw4gaF50Il9abW1G9KC xIg0VxQzLs1R35xM8LjqZc5nS9gyOcVYckAVQQmxBEmtLGOTZAcmj\/GxUmdmsFxW75QyP1etmp+I 1RCamtC0I+1yb52Pd+eNXcTthuBuDJ7RCm3Iaj29h4floeggtPHf3fyou7EaUcVKNHb1CNqqMFPZ +Z0xklVVtxQzbuX4ckmPgVRm1Zr4bCFfT5NIaoiYF7\/a08cr0npl+0IyPzS+mNsNxbbUq9x\/WdqD 4opi+ZpcL6UbLlWkuQgZi+Zz3P7CGmPqIKPKEnXLClpEbitBTJgMusr5zalHeE+NrMbT7ydiJ0zb 0upEDk9IVChyP9YFy3qbrN8hgufXmZlr9BPBJvdRRTjSR3bgnpPUZCQyRNhygfPZWGfM3zdOn2uv h9urbHOelYrYkjL5\/GaD581cTX1zsjJ7ky6IbONuvLDx1N16eNuw7Rsiu69302R000u7w+0RHiF0 NHbVCNqILB8J85UIzZlesWNTPtBn36beNogxIzQ4nOX7FSGP+Nte8bnxXt51Z83f2So0Wp2xsuc5 15aAo1ZRD5gtbn9wmkhZKXE+G2vkNXu0UhSkbrPOA4m81GVrmqe0E6Nj0iRkOL+RI6yWHpmeBQDc WaC2IVdi7J7bJqKPjVmMJ8Rq1wTKMUgOUm+focqwphWmIp13v1xTKz5jxvsepY65kud5u7VCJD4o N9fFO0TgvO5VHnv0u3meW4bMzJRWhMzViqq5a3H9TmIHdC8UE2t1N685Q8rtba6sfX19Hc8tA9it 0+vdvPC6qeneq7905OAfjb8UI7BKFBgix6UuC8xPgsi9vkEEWpCP9Ogged3v+6\/+WwBAsapM14sv AgBee\/53AAAJZQpjptEwH+K2sYXV1FkVMZ+aP8e2emWPDDHT+NQn\/x4\/pwqP03\/4y5zXZe43Lcf\/ Z370UwCAhiozasrENdTNqm+EbMLEXtbmpdRTxpfmIb9GxPzir\/xjAMCaYvLxSfHjbd2z9Q\/kdnvk WPTIo6yC\/\/wX6dS\/kSeyDem8juxl7d+UWAtvH5Hq9s2FjvOwuM4VItFDfnZoHx+3quyxUlJmsCZW o6R7gZdeeg0AcGCWK8\/gIH+Hvj7+vsmkVXd3xtIuYhpbYYhpmbpumcW7aT26sSU2XH8P9\/Pd1HwR Dx2NXTkCKDZuxeSOqS5KoZCmIp\/jc28QaU6cuBcAcPQjPw4ASGdVORKSN917+G8DAM5f\/AYAYHqa d\/G+Or2GoWLmNh9snUuF0JqYVUkvzLGC5djD9JtIT0p916Ka67EfZcfUR8NP8HvK5LUglqUuT7iW VYnLE65JHr3UIi9cWJ8HAPT0sHJjYPjDAICP\/Te\/BAD4yi\/\/15xHu8e5VW9bxY\/V0Mn\/QlA5M0xE Xlrg8ayo\/+H3PfQoP58wvTnPy5493H9YJjvS1Moye+IhHYd6e5d4\/NZQtlJVhlDsRjxux8n53b59 R+efsbexCxYLW4xsajjTbrhaCjd2vltvlfeMrHeJ5d3nLnJHCB2NXTmCUAjttWNn1doleMWuqv9d TSqv4x\/+OQBAcoCagkb4OX7fuwcA0Gx8EAAwNkbE3n+IMarV1nlBZ8NCv2k1gFaDxit4aZHIWhe\/ PH7vE3r\/ZX7do8dbU1fqxjpj3hvzTCGWK+SPK1Vup6ZMpVWHNxXL+wGRJ9XLz0+o\/dWBPfLoS3MF OKSuX36M22tXf4eKoRvKGGp7cXUCWFrjSlHTcWTUCyWwrmHyF2k3EZNfhvHhS0vUP5+45306T7by FLVdnr9GzR4N+fhoqrRXX2WFiiGarZymbsvn8x1\/GOPjcjEVkhtid+OJDXFdB38b3XqquBoNe99i dYvhTbVnw610iRA6GrtyBC3xz75vFSO8QioVXmlvvcnY6\/5TTwMAklldmd5\/AAA0Wl\/nhiB\/C8WU e2d0V562mFNXrHjgto+GGVkohq7X+HjxHHngdHZE+1WGLqQmIgy5csQV80+OUdWVSREZr6uP35ef p474trQchtQ2evr4fGLUVGV8HM+Sx+6NCwlN72x8vXTcYbsDrJ4bYigTahUxgbCjpAxjZkA+0ea2 2q50ITJXpM0oF6UzHiOSmlfd+iqROpfjylqr8Pw2pO77wh9T4zE0xGrvRx9lzD4zQ7bIkHdxkfz+ iRMneD6ExL29vR3nyarBjYd2x0svvdSxHdNFG8K6NYjdOsza65ZZtJpGG90cmKJMYTR25Qj8QfVU 8Ymwxi5cvsS76LPnmYl78mNkNZo4AwBohaxhg9fpU2FOQRld4b3KnEHI2JIfsi99buir+1OVV+jC ZXZtWrpGVuXDP\/wz\/B6ua8qMpXx\/Rs9n+RzUMfdniDD335t8EwDuu\/dvNgDg9Om3VgHgha987a8A wMvfJAuTn+ddf3m\/7vrlq7xVJqKPK8abmaEDVKiuUuY2GoqlaEnXHUswI4qyViDVJJqlXf8w+ec+ IZjpp9umqQqmbws5e3uzAIDUID+\/kuOK+MJXvwIA+OoLPB8353nclSI\/35QD0\/o62ZzPfOYzAHbU baZTvvdeslaG2IawN25wZTMHpD179nT84bjIaLG6Iejc3BznoZXHEL5fakxjVey5W4Hi9mRxfUFs RDF0NHb1CELdVYceY8WGXDE\/93kiZG+ad+V9k+ac9AUAQN1nDOvBXucV3KjzSto3o4yS+Vz4TtW4 OTWJ5QjVc7xeIUswqgqYvmkimg8iU8M6neKA9n9I+8k+BQCBf+Kl93Lg28XLkwDw9Re\/8IsAUK1d \/DgArGw8DwAoqKNsfYYI10yJT6\/JZE7qQ0PYmPjtUBlQXzWMOanl6nJ0mhgiMiXleBSaD3fT7jG4 Qmbkb5JMcPs9Wa4EtRtE5FrNeoSbR6BpNkyPzeeGYBbLGpIZa\/Dcc4y1LWb92Z\/9WQDARz\/60Y7z ZZ+3mLYbW2FI\/PzzPI+mf56cnOz4vlWbLyxIG6QV4vBhqgldDzxXU+LG5FEMHY1dOQK\/zCtlc5t\/ 4b\/2+0Sgy3NEqPc\/YP4JRNCGR\/bA+g56UDW3kHJ7hTFmJaeuU5PS71oD2JghtIJGXbGlLe7vha9\/ EwBw7wP0ukskidh177b2a\/39xrTBwY8CQOAdf0\/IbKM\/fWQRAJrNK38bAELvvu\/TcSQAoFwh3xwX T1xQn8Cw6fCrQWf\/RPNZrolHDvUIVfwUStYxV5UjZvDfMvUeXy8U+LlYSr1nVBVflBC9VjUXU6tI sS5XVp0v3bfj6ul6yhkSGrvxxhtvANhB1tnZ2c7jddgFQ\/wzZ3hvZchrrIoh8q1bcpcVv2yZxyee eKJj+24Mbcht7Iwhtav5sP1ECB2NXTWChhyB\/vlnTgMAfu858rxHR+wjD+jRNBuMKT3FjL7V2Kl7 09YNZvL2TJqHnVVBW7W08Yi6wn0i2IK0BkGVGavpo0RoeCoetFhcK4LvDazz8fgX\/lNOQCx2eA0A mq1XLgFAE\/GTANAjliYmpPOVOS1tcL6prHWEtQyYYYMQTJnRmBC3t4fvZ60nuvVbNH6+fW\/Bp2X1 ghkRu9JsEZnKFT5Wq8rM1ZUZ1M2FFc\/7XdRq3XqZGHK+\/vrrAICvfvWrHd833wzLIE5MkO+3Km1z TLp2jRlkY0esVvDo0aMAgPvvZ0WOrQAWC7vqOnu092173XTSEUJHY1eO4MIN6o1\/8d+QRbCYsKbU +U\/9PP0UWuKbg1BsBOyuUhmlBhFl6wb54uG0fDCGrH+f3bU6VebSQGzeJO956qlnAQB7TjB2b4Rf 4scVI8YUOzfDxP\/zJ3kiPMREiFvXJ3vHMoB8vaqYOGWdB2D9E60Y0mr4FNs1reZOmTHxw9YRt+15 p\/8YT7xwiyvWxOF9ep2\/U75IhK7IAMlsq0OpFm3a3Xpr2+hWze3yyYZ8Frta9falS5f0eyrvIBbF YnGLfU0j8qJ08l\/84hc7Pmd8+Pvf\/34AwNNPMyNt\/h22XUN6l12xEbEc0diVI\/iJf0S1XEmIUVLl yRMfIA\/5yEe\/l58MP88HMKa1mNj0xXXdrS+uEjpODujuXE5Inm89r4335hU2f2UeAJDKMOY+9j1\/ AwDQ8t\/WFOWk7yn2xCBj53Dw03+SJyL0vPy3zjcMzQea9wyJBGPH3qxVrFjvcdUYymnKenv3yJOu 2iByliudPV48Q2zzy7AYVyufp25h6T4iVKVBlqC4xaWzWOH86nIXbZgmwjQyXfr8deuNYsOQ2ZDa zeC5jy5f7Ha9ctV3Fqvbfo2Hfvtt\/t4f\/\/jHAezE7Ka\/NmelblXltrJFCB2NXTWCCzcZE5VV6ZFM EhHOniUfubGp6u4JIkNL7pue3El9MJNnVeJ1IZCfyvL1th+z1RTKKWidV9ziDWpGTn2CtYJBglds C9SQtJtbgbGWh8yvAoDvH7BGe38iw0PwOo8n+REAaHqm2xafHOfxFipEiMGEuXcqxoZ8peXov3Kd iOoFyowJkavtPoZiexr2ffK3Oa1w5QLP08hhVqrUKuxXmJcJX8PUdQ3TIev0Wi+ZtldgpxNRN8f9 bn3\/uiGiy2u7iO\/6Sbuft2EsxsWLzH\/8+q\/\/OgDg1KlTAHZ4cEN6WwHclSZC6GjsyvH\/Ae\/ZyL\/9 i86+AAAAHXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBUaGUgR0lNUO9kJW4AAAAldEVYdGRhdGU6 Y3JlYXRlADIwMjYtMDQtMjFUMDY6Mzk6MjgrMDA6MDBZievKAAAAJXRFWHRkYXRlOm1vZGlmeQAy MDI2LTA0LTIxVDA2OjM5OjI4KzAwOjAwKNRTdgAAAABJRU5ErkJggg== \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Cluster and Grid computing made easy<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2006<br \/><strong>End date: <\/strong>31.12.2010<br \/><strong>Acronym: <\/strong>Jackal<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Jackal is a project to create a distributed-shared-memory system for Java. This means that you can write a multi-threaded program (that you could run using normal JVMs on single machines as well) and deploy it on a cluster connected by a network. Jackal also sports a nice check-pointer so it can periodically write the program state to disk for fault tolerance.<br \/>To make things more interesting, you can write the program also using OpenMP annotations which allows re-parallelization. Combined with checkpointing this allows a program to be restarted on a different number of machines as that it was started with.<br \/>The Jackal-DSM is not only suited for traditional clusters where each node containes only a single CPU and core, but also for newer style clusters where each node in the cluster contains a multi-core CPU. Additionally, Jackal also has extensions and tools for Grid computing.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"jamp\" data-href=\"#jamp\" type=\"button\" aria-expanded=\"false\" aria-controls=\"jamp-section\" id=\"jamp\">Java\/OpenMP<\/button><\/h2><div id=\"jamp-section\" class=\"accordion-body \" aria-labelledby=\"jamp\" role=\"region\" name=\"jamp\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/JavaOpenMP_small_image.png\" alt=\"OpenMP\/Java\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>OpenMP\/Java<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Georg Dotzler<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Thorsten Bla\u00df<\/a><\/span><br \/><strong>Start date: <\/strong>01.10.2009<br \/><strong>End date: <\/strong>01.10.2015<br \/><strong>Funding source: <\/strong>Industrie<\/p><h4>Abstract: <\/h4><p class=\"project-description\">JaMP is an implementation of the well-known OpenMP standard adapted for Java. JaMP allows one to program, for example, a parallel for loop or a barrier without resorting to low-level thread programming. For example:<br \/> class Test {<br \/> ...void foo() {<br \/> ......\/\/#omp parallel for<br \/> ......for (int i=0;i .........a[i] = b[i] + c[i]<br \/> ......}<br \/> ...}<br \/><div> }\u00a0<\/div><div>is valid JaMP code. JaMP currently supports all of OpenMP 2.0 with partial support for 3.0 features, e.g., the collapse clause. JaMP generates pure Java 1.5 code that runs on every JVM. It also translates parallel for loops to CUDA-enabled graphics cards for extra speed gains. If a particular loop is not CUDA-able, it is translated to a threaded version that uses the cores of a typical multi-core machine. JaMP also supports the use of multiple machines and compute accelerators to solve a single problem. This is achieved by means of two abstraction layers. The lower layer provides abstract compute devices that wrap around the actual CUDA GPUs, OpenCL GPUs, or multicore CPUs, wherever they might be in a cluster. The upper layer provides partitioned and replicated arrays. A partitioned array automatically partitions itself over the abstract compute devices and takes the individual accelerator speeds into account to achieve an equitable distribution. The JaMP compiler applies code-analysis to decide which type of abstract array to use for a specific Java array in the user\u2019s program.<\/div><div><br \/><\/div><div>In 2010, the JaMP environment was extended to support the use of multiple machines and compute accelerators to solve a single problem. We have developed two new abstraction layers. The lower layer provides abstract compute devices which wrap around the actual CUDA GPUs, OpenCL GPUs, or multicore CPUs, wherever they might be in a cluster. The upper provides partitioned and replicated arrays. A partitioned array automatically partitions itself over the abstract compute devices and takes the individual accelerator speeds into account to achieve an equitable distribution. The JaMP compiler applies code-analysis to decide which type of abstract array to use for a specific Java array in the user\u2019s program.<\/div><div><br \/><\/div><div>In 2012, we extended the JaMP framework to also handle Java objects on multiple ma- chines and accelerators (and not just arrays of primitive types). We added two different ways to handle objects. Standard shared objects are replicated on all compute devices. Arrays of objects are now also replicated or partitioned over the different devices. To increase the performance of the program, the framework has to break with Java\u2019s semantics. Java\u2019s object structure is mapped to a flat memory structure for the execution on the different devices.<\/div><div><br \/>In 2013, we examined how to better support Java objects in OpenMP parallel code, regardless of where the code is executed. We found that we needed to restrict the language slightly by forbidding inheritance of objects used in a parallel block. This ensures that the objects will not be of a different type than what is seen at compile time. We use this property to, for example, allow object inlining into arrays to occur naturally. With the added inlining, communication of objects and arrays over the network and to the compute devices was accelerated enormously, including a small performance increase on the devices themselves.<\/div><div><br \/><\/div><div>In 2014 we developed a JaMP implementation for Android 4.0. Currently this version only supports the SIMD construct of OpenMP.<\/div><div><br \/><\/div><div>In 2015 we added OpenMP tasks (OpenMP 3.0) to JaMP. This makes it possible to parallelize recursive algorithms with JaMP.<\/div><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"javaparty\" data-href=\"#javaparty\" type=\"button\" aria-expanded=\"false\" aria-controls=\"javaparty-section\" id=\"javaparty\">JavaParty<\/button><\/h2><div id=\"javaparty-section\" class=\"accordion-body \" aria-labelledby=\"javaparty\" role=\"region\" name=\"javaparty\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/JavaParty_small_image.png\" alt=\"JavaParty\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH6gQVBSk1\/XIKCgAAJ6lJREFUeNrt3XecXVd57\/\/3 Pm26RtKMqtVGslwRFsYN2XK3sY0LGFEMvpRXSIjDJUAgQEhC+DkXiHOvk8APQkwzhMDFBQMG3HGv cpGbkJElS6M6qtNnzpw55+zfH2uPLfFTHINtzXiyP\/\/sc\/Zee+211h59tc6znudZpKSkpKSkpKSk pKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSk pKSkpKSkvFaIRrsBKXsTL1mSB2vXnguq1ToQRfWhQFyTFN0Nzj33xxBdeWU82m0fC2RGuwEpKa8k qULvZ+ILLggi8uijbwGVykTQ3PwL0Nd3EWht\/S5Ejz8+tM96DjigDQwOngfR7t1fHe2+jQVShU4Z V+RGuwH\/XYhnzpwNHnvsr0ClcjNEW7f+AGLeD+rqVoFicVJya8e+6os2b14H8aRJB4x238YSqUKn jCvGvULHp55aAM89Nw\/U1XVCtGrVjv3y\/AMPbAZdXZckp+6CaOfOn0N80EHh+u7dPWAomTJPm\/bS 3k0u178\/+vFaIVXolHHFuFPo+OCDa0FPz\/ngySerYGgozEWz2UUQT5sW5rT5\/DUQbdq0+VVpUGdn sFrkcjvBEUdcC265JVzfteskMGXKXcn385J2dbxYtXFLy9Lk430QL1o0AaKnnurZD8M8ZkkVOmVc 8ZpT6Piss8JK2apV7wJDQ2EFbcqUn4POzreBww\/\/HkS33Tawz3ouuSTY4K+++h8g\/sxnPgvRZZe9 Iitu8V\/+ZRZceWUJVKs5iG65pbJXwZqaFpDJDCXHbrBjx2kQL1zYBdGzz3ZA3No6P7kzHON4c9Lv o5Lzt7\/6b2Hskip0yrjiNaPQ8dy5c8HTT38GZDK\/hKij4waIeTc45phrwAMPvDm59af7qi\/6xjdi iOvrO8GKFU3JpVdmDnrttQeGhsfrkuPh+yxXUzMMdu5cCLLZoLyFwhB7KPN55wV786pVC5Pyz4Jy +QLQ2Hjpqzn+rxVShU4ZV4x5hY5POilYLZ555n2gVFoBUWdnUOa\/+ZswF\/63fxuxN4c5aqUy9JIe UFsbxuDii3vxgvXh5dLfH+od8ZJjJcTTpi2BaNu2+0Em0wWGhj4Impv\/X5DNngzx7NnB6tHevh70 9k5J+vd2cPTRn4LojjtSe7RUoVPGGWPe2y5ubb04+Rh8G+bM+Q+IHnusE+IDDzwY7NoVrAW53HQw a9bjoDsYDaLnnntur3onTz4i+bgATJz4WFJu\/SvS7je\/OVhjHnrokxB1dX0J4jlzzggF4mlgYOAU UCj0JbduSa5vA3V1paRcUOZJk74Htm4N9u1DD\/2\/ED34YPd+eSFjnFShU8YVY34OLZMJERuVSswL yvw8u3YdAhYtuhc8++xM0NHxJuy54vYcxNOnBz\/ioaE3JPWvBwMDI1aRK16JZkc33zwE8cSJJYhn z26DaMOGW\/csF7e1zQJLllwObrrpS0m7wspif3+4PmvWV5P+FyE+4ICfJf09K6nqqlf\/ZYx9UoVO GVeMWYWOv\/GN8I\/t858Px0plAOIjj2yA6LHHwq\/6+vowVz3wwGDVePbZk0Fd3QpwyCHB12HhwmAX 3rx5Bujs3ACKxXPAggV\/Bzpe1IXi9+eww\/45adeHIW5tDf\/D5HLtoKsrtPvGG69K+nM36O4Ov2\/y +Sjpb3HPaqPNm4N9ev78ZyCeOHEBRGvXrn31387YJVXolHHFmLVyxLfeGtr2znd+GjQ3\/xvo7v4Q OOqoEeU7FXR1vQNMmfIVUCyGOXGhsBHU1DwOduw4PvQ8mggymeUQdXQ8sF\/6dfTRwS79zDOLwKRJ wZrR17cwaU9YsaxWTw43xOE3QUPDJRBt2rRPP+547tzFELW3P74\/+jFWSRU6ZVwxZhV6hLilJfgo XH55mON+\/vOtYHg4KPDQ0BtBff2Il1yYQxaLYW7a0FBKygdfkNraf0num4fnrQhRV9eN+6M\/H\/nI 1jpYu3b4UMjlwjt4fc8jdXB6z00zYdHwbwrQ2tM+8jsn2Kkzmc0Qtbfv9T\/KmWe2Hw6ViteFblVr YfLk7C\/ghhvm7N4f\/RttUoVOGVe8FhT6WJDNHg7R9u3f3ev63LnB26ylJawErlv3x6FnUVDqTCb4 Jc+b9x2IHnlkrxW1ePr0j4K3v\/1rEH39669oBqKlS9fPgFzOkeEYBWtE5FmoVoPylkpxBIt7H26F ic3B\/r5s148a4PVP\/eSbUG1rew+c3nbn3dDYGJ0InZ3Vd8LgYHx\/Un8V4tjC5PnXwoMPtt1qHJMq dMq4Yswr9AjPK3VdXVjh6+0NfsRxPDk5PwcUi4OgUOgC1WoVol27\/mGf9S5Y0JiUOwGidetueiXb fd55G+qgq6v6ZiiX40Ogpia6AyqV8A5yuSAuhUJUgWPKK5phyq41wYcll5sAWwabCvDYAaffBt3d 1cXQ2pp9EkqleD0MDcXHJfUfDMPD8SAsX972\/Vf\/bY0eqUKnjCteMwr9u8TLlo1k5Qwndu0K\/tDL l4eccfX1wfpRLoe8F\/n8DRBt23bdPutbsGAORGvXbng12nvaae0nQLUaLwjNy7RDsRjPgkwmeNlN HOiowlndvzoKlgzc\/wwc0v9UHVx8+qOPQnd3tRWGhuIGGBwMyjw8HC+BbDbqS4ZncxiGeBE89FDb lfvj\/YwWqUKnjCtecwr9trdtnA29vdUZECc2iYaGqAR\/uv6yJTDT9t\/A\/IHVk6BpuCv4fhSL0yDa tu0He9Z7yinrj4Jy2TmhWNwCw8PxLXD00bU3wbe+NbPiZXDCCesvgpqaaCpkMsHaUS7HXXDh9h8t gF\/Unr0KDilsmgb3lQ7vC\/0M1o8JEzJPwO7dlRJUq96RHNcm9c2GfD7anhxXw733zls9um\/w1SVV 6JRxxZhX6C98YXse7rhj4IMQxwYgm7UJ8vlgFRgeDn2pK3bl4cjc6qlw+o7rG+HoC+Z\/DzZcc++7 4LMLvt4O5UL9gdDZWTkVMpnoxqT+fKg3nrrncx94oO3rL6c\/p57afmzysRkqlfhYqKuLfh2OmZrk eVkol+MMDAzEVahWQwb\/kf7W10eboaEh0wObN5ffDoVCtDMpf3vS7vWj\/S73B6lCp4wrxqw\/9Ahf +MLUYTjnnA0PQ2dn5V1QV5fdDsVitRsKhSgLffnmEvTkJm6DtRMX5WHlbZmQfzm7BMR19Y9Bb1fw ecD34JBDCvfA2rWlkLko1gDDw3GfV4Cammgd9PdXL0ravRwGBuLkt0F5N+TzURFqazMzklsnQi4X tcPRR9feB1u3lifBpk3DC5P6V8BJJ9XdBl\/84rT\/VnuvpAqdMq4Y8wo9Ql9fdQAaGzN3QqUSrBC5 XDQL4thOaI13d8Pxm3+5BFonVJfDqRuvmg5nH\/nITRAPxQeFekKG\/BkzQgTJ008PvTepbyNUq1Yn z5n7SvSjrS23C9auHd4JpVK8NGnHSmhqyhwKURQM7P391ZH8IlkoFuO5sGJFcSX86Z9O2gTLlk3Y uOdz7r13NN\/W6JEqdMq4YsxbOX6Xk09efyTk89Gbk+MjUC7HA3BM6dEJsL1mRj9siacMw2A5VwvF IQVobMysg8HB6g4YGIjfFerzWxgaCj4XdXWZrRDHwV58\/\/3zVr6Udp5wwvrZUKnEr4OammAnr6kJ 1oe+vuBjUl+feSNUq9ZBJhOUOJMJYlMujxzjHNTWRk\/BzTfP3QinndZ+MPT2VifA8uVtD4\/2OxpN UoVOGVe85hT69NPbF0EuF02D7u7KCdDYmLktOQ\/6+qoVXlC8fD6q4YVIjtraqBGam7NPQUtLdiOs WlX6k1CPTiiVwkrhgw+2bXop7Tv11PYDk4\/zIIpMSZ6\/Fnp6KkWoq8vsgGnTsrvgRz+aVfpDxuOY Y9ZdFPqRuQnmz893J\/14D9x997z\/GJUXNUqkCp0yrnjNKfSf\/\/nWDDz5ZOmjUFcXPQf9\/dXJEEV2 QBxrTI4HwtBQPBEyGV3JfdfCwQcXdsKaNSHGr7+\/WoYHHmh76A9p31\/\/9fYs3HffwBlQKEQ5yGaD 1aJSCd5xxWI8PTk2h+tGfDIk\/cglxwl7HgcG4t1JvV1QUxMNQS4X\/Sb0M9TQ2pp7GHbtqhyV9Lcd nn32xJ3w7VLpKDi9UAh27nI5RKNXq4Xk+1Zw5pk\/geiHP3xN2LNThU4ZV7zmFHqEk09eP+J7cToM Dlafhlwu5NtoaIi2JN93QhSFuXRfXzwhnHcvLF5c2w0PPzzYAHfeOa\/31WjvueduOCS0Mx6xmxcg mw0rkbW1QcnL5RALmMkYDt\/jISgW45HvpdC\/TA4qlVAuioLvSakU18GSgfsOgY9u\/+cSzJxc\/h4c vWrVt2BlHNfDYKl07r7a+3wOwDg+H6Jt276y5\/WpU6fODP0ZPBZ6e3v3uVPC\/iZV6JRxxZhdKTzp pPWvg3LZ6yGbDXPjQiEayVT\/JMSxOshkol7I56Nt0NVVLSXlCzA0FKaA9fXBj\/jWW+d2woknbs9A sRifl9T7IzjnnA2T4IYb5nT6Pfj85z8fwQ9\/+MOZ0N3d3QLbty\/7LSxfvvyZV2O84qOOCnPfrVtD FHu1GubE8+d\/FTy3+TRoqq19DIb7+z8GTU1NZ4Xi1QOhpqbmSWjq6zsMenO5aRBfdlkGos98ppr0 6+NQqVRG9ktMFTol5ZVmzCn0ZZftzMIvftH3Jshmw8pdQ0NmEIaHg5WgVIqPgKGheAc0NWV2QUtL tgtOPrmpGy65ZHL5xZ53000DF\/KC19tHP9pRgCeeKL4tKfJduP76ngjOP3\/CPn\/tT506dQ586Utf uh3K5fICyGQyVejs7OwM\/Wj4NPT393\/XK0B88cXBenLzzR+HH5bLx8IlQ0M\/gLe3hanwrcuX\/wvs jONJSftak3ZcF8Y52OMLhcI\/J+e\/Bp9vaLgXLq2t3avf1Wr1Asjlcj9O6nsluvOySRU6ZVwxZq0c J520fiaUSmF\/v\/r6zFwYGopHfCsqUFsbTUjOT0tunQHFYlwb7osakutZqFSMREOvS8r3wvBwiJpu bAw7utbXB\/t2T0\/1DZDPRzvgnnvm7dNXYsqUKYfCzp07n4LDDjtsIUycOLEDnnjiiQtgYGDgO9Dc 3HwadHZ2Priv+g477LCpof+lejjrrLPa4Wtf+1oc2tn4cfifvAGuL5ePg2dKpSlhfII159Jp094B D\/b1HQkHJHlMrhwc\/COob2p6J3R3d1+\/5\/Mn19X9PXQWi38JM1paToGapqbNsG7dunaYPHny8bB7 9+779\/ffyL5IFTplXDFmFfp3eec7N+Vh8+byGyGTMTKXBg0NmWHI54W9TZIZX6USrCAjMYIjOeSG hoJ9t6YmGoniHondCzsERMowa1buLvjJT2a\/qK\/FhRdeWAM\/+9nPemDatGlHwNatW\/eyauRyueuT 431QLBYvg7lz505Myl8J5XL5LaEfoSeFQuGB0O6hk0O7a\/4JKkNDn4ATCoW1sG3BgsWwZs2a++Dv 6+p+C5857bSwD+JDD4XfDDt2XBLGJXtj0o6\/h\/jUU+th+IknPgJNvb1nQq5aPQQydXVfCuM08L9g 6dKl0+DOO+8cE5PoVKFTxhVjzsrxn3H11bOGk48PvqyKfk8e+h2PjhUrViQ+GUHYjzrqqBiuu+66 xKcitwX6+vrmJLc8A4ceemgtrF69+nDIZDLX7lnv1q1bvw\/VanU6zJw5sy2p59Tk+Pk9y2ez2Wdh OBOiva9qbv4mTFu1qg+mTp36dvjjbPYkMDAQxKtabYM35nI98FilciTEp58edg5YvfosyDc1\/Rie GBpaAIcPDh4OcX\/\/\/0n6eQNjR5lHSBU6ZVwxagq9ePHiAjz33HNLoFwuHwiVRDGq1erREMchGrq+ vv790NPTczPE8+dPxAuZ\/IeHG4Qbwq5YI95if\/RH10P0j\/9YfbH2zJ49eyKUSqVJsG3btnVw0EEH 1UN7e\/s\/wlFHHXVx0q4c1NXVfRsGBwc\/DlEU8mQMDw+\/CRobG2thzZo1n0mu98PcuXOvga6urvmw devW82Dq1KlvgE2bNm2GCRMmbErG4wD4xCc+kYUrr7xyZdLeMrRUq\/dCPHv2GRBt3HgrTJ437yDw 4IMhb3Z9\/a\/g9bncLHh6eDjk1y4WDwf5fBfYtevTcHBT0xUwIZ\/\/MXR2dt4OuVzu5uT5+\/tP50VJ FTplXDFqCr1mzZqLob+\/\/1uQzWZ3QKVSaYbGQuHX8CcNDavhqMbGHfDulpZjwOBgsDsff\/y1EF17 7V455+IDDwxLZN\/\/\/megvr6+D+rq6n4Fu3bt2mvv7x07dnwayuXy4cmpC6C9vf27SbsWwaRJk84K jx88B4aHh0\/fs54oirbC0NDQ55P6diX9uxamTJnyN7Bq1apBaG1tnZVcL4fuHP8b+OlPg2vE3Llz H4GVK1dm4Nprr22DadOm\/Qa6u7snwWEtLe3w266u10E8Zcp7hQJhL\/SamsUgE+zsZ+dyBfhWuTwF 1q9bdyzMK5dvS7rya1AoFKEmDvmlR5gyZcptyfjst7+Zl0Kq0CnjilGzQ5999tkZKJVKDfCxj32s D969bNnNcE4uNx2uaWm5OLQ02gWSOba6up3QvH17EwwODn4hqTrZwyR6HJ6uqbkJLqpU\/hSeKpef TZ67lx9wPp+\/BbLZ7HJobm7+IWzfvv1paG1tXQw7dux4Curr69+T1PNFKJfLbVBTU\/PPEMchEuXL X\/7yH8EnP\/nJffqAtCV7fa9bt24DTJ8+\/Qjo6Oh46nfa9zDkcrnrkv5+Ofm+FSbV1X0QdvT2hrwj idef73\/\/L8HRR38P3HXX++C5fH4DLNux42\/gXydNeiu8afv2sCf6EUdMBFu2LIOG\/v6R9\/W5pL\/z 9tsfy+9BqtAp44oxs1IYz5p1Pizr7Px\/4PpSqQOGh4fPhnjmzJCb7itf+Xf45iWXfAcu2b37PVBb W\/t3yfER2L17921wV2vrF2B5JvMofHrHjmugubn5fDj77LN\/DVdfffU2qKure3\/SpFoYHBz8FlQq lZY92ztjxowDYdu2bc\/A8ccf3wyPPPLIB5Lyy6BUKp3yUvqfz+fvgDiOC8n3f4JqtXoilMvlDyTX wezZsxdCR0fHlfCxfL4XLisUQt7ruXMfA1u2hD1p4jjstDs0FHYoKBSCmJXLwbels\/Oyfb6X+fMX w6KtWy+D1ZVKb9KvZa\/qH8QfSKrQKeOKUV8pjOfODdaKwcGFcHAmM7KP4IK9C4Y8yS67rBm+vXv3 eyGfz18BAwMDl8HixYtr4MEHHyzB9nL5MPjUZz97KfztF77wT9DX1\/d\/4N57770IqtXqRGhra7sP Nm3adDD09\/c3w8KFC1vg2Wef3QWXX375Wnjf+963EVasWHEOFAqF3yT3HQp\/9Vd\/FcGXv\/zlF42a njx58sXQ2dn5v6FSqYzYrR+GmTNnLkza\/TpoaGjohqVLl74V5i9bFlbsvvSlMJ7PPntCeMO5ECPZ 2hoUuKcn+HlXq7NBJngxxnPnzoCovX3rnu2KnnvucWisqSmH4iHiZ6ySKnTKuGLU59Bxa+sHQDVk 2bwwn8\/D9Tt3\/iv0HHbYQVC\/ZctiiGtrJ0Ht1q3fhrdOmPBZuLqra6+o5Pp8fgU0FwpXwJbm5t2w tLn5Rnhg9erfQD6fb4dKpZJk7B8+Fs4888wc3H777Wsgm83eBhMnTvwK9Pb2ng2Dg4NfhEwmM7Ky eDKsXbv2XvjgBz94MFxxxRXD9iPvfe+mSbBlS7BGzGnozcF7Nnz9GFhUWjkIM3Y9E\/7nKBTy4YXE j0O0ZcvyPetbsuTyGaHYWUdCf38IWZw6NXs7\/OpXcwaNAVKFThlXjPocWibkl1CpDMGUCRM2QHX7 9npY39m5EA6rrV0PURRy2jVnQozhrcPDezkTxPPnnwnHd3SshYZS6a9BqfRpuHfVql5obGz8NPT1 9f0Iamtr\/xGGh4OQ3nLLLWVobm5+DwwMDFwBO3fuvBuy2ew9MG3atMXQ3d19alLvrvC40ny44oor XtXhe\/e7N9XAhg3lE6GhIZoMW7cGq0wmEz0Dz+xoLMHd9Sf1wJ3NZw7D+fGPZ8FxJ0\/6F3DDDe+C v\/jw2hXQ0VtzFGzaVP4UlMshb3YUxUXYsaNyASxZsv46uP\/+ea\/oTry\/L6lCp4wrRk2hGxoaLoKN pdJMmD19+rfgkp073wffjENkSXdTU\/Ce27lzFiiXW6Ahl\/slbCoWPwJXL1hQhPMzmS2wvFRKMvRX ZsDkSmXNns+\/8MILfwxXX3312ZDP52+GYrG4Vzu7u7tHYuUW7Xl+xB+6o6Nj5NRKePjh\/ZueOYqi KjQ2hsxLPT3VY8L4Bn\/rQiFkYmppyYY9wuPjV0PTwI4srG08rBm++fRJp8CihnkL4LHfZo8L4xFy \/k2enP17uOGGOY\/DSSetTyJqQgzn8HDI1TfapAqdMq4YNStHPp\/fAu\/LZLbBkZ\/73JFw0L\/+69vh jG3broHfLljwTjiou\/uzyY1fgY253FJY3NFxBHSVQ6xhlAl5l4+cMOEKOG1g4HXwjdraf4Lu7u77 RqvPryannNJ+NAwOVhdDS0t2PWQyURlyufCuBwaqg\/DuLd9eAlMnVu+Hc1ZdcSy8++i7fgK7y41T YXg4boRiMeTUq6\/PTE\/Ob4ZSKW5LmlADDz3U9u+jOQ6pQqeMK0ZNoRsbGz8I\/f3934RcLrcCMonC ViqVN0Bx4sRLITt58jZQKoVdoSqVOlCtzoXOanUn\/PqrX\/0PeMc73lGFuLX1kxDt3Hn5aPV1f3Lc ceuWQn195liIIs+FYYp\/C5\/q\/9oEGJYrQrkcspD+uPbCbthYmVoPzc2Z7TB\/fvDKW7Fi6GLIZoPV ZHCwei5Mnpz9GQwPh3wfd98977b\/spGvIqlCp4wrRn2lsKWlZRHU9\/X9ORwcx6fB4w0Nl8COefMe AZs2\/S2oVkPsYD4flLqv70lw9tk\/huiaa3r2rD+ePn0haGysh2jNmjHhixDfc8+ImEQQLV1aeRnV Pc\/pp7cn+xwGq0y5HL8+DFf0BAwOhgxSw8MjmUue3zM8aU\/YaaBaDbuKFQohY1S5HPZz7O2tXhzq syopvQ3uu6\/tztEeU1KFThlnjLpC\/y7xtGnBy65cPjU5TgQzZlwNOjs\/iT03I+lOjj+HaNu2R\/ZZ b1vbaeDjH78doo99bL\/uGRLPnHkEyOdfD0ql4DtRqYS8zi+smN4I0Y4da\/+Q55xxRvuUMGzOh4aG EOnT1VXNJsPWlZwv8cLeMyNZXfP5qBMOOSRkaioWQxR9R0fwWhzZG6axMXMz3HDDnK79OY7\/FalC p4wrxpxC\/y4f+tCWCbB5c3k6fHLDpefBQbVbt8H0jqdD5v5iX4gMaWq6GqL16\/eZDfOMM9rnw\/bt lSlw0EGFx+Gaa2YNeRnEhx8e7LHd3eeA+vo7QbE4DyR292ht8JH4\/91\/6aXhXXz1q58DEyd+HaI1 a7r+kPacdlr7BVCtxgfD8LBuyOVCrr9q9fnsrSM7HFShUgkri\/l8dAvcccfcVS9nXPY3qUKnjCvG jEIvXbr+jbzgczAwUH0jLyhHoRBtgOO67myBnvzkAVhsVRN84LeXBWtHNjsB1Nevg89dtLwHli8P +ZCHhuKTkmPiBx3nIZ+PfgEPPdR2vZdA\/K53hbF78MH\/AYrFo8CsWcEas2VLK8hkQmTI4GDYb3D3 7hetPz7ggCWgu3sKRH19P99XuY99rCOX9OuwpP1ToKYm6oFyWTE83inJ+K2Erq5KGWpro2wyDtkw bOF7TU3Ii33bbXNXwx\/\/8ZYGePzxoaXw8MNto+pN91+RKnTKuGL0\/aFHGpKLpsLmzSEv8uTJmZ9B HIcM+5VK8L57aNLJu2FhZkMBClu7W+EtRz2SgzM2XvUmuLf1zQ3QtXywDbq6KtvhoINqLoQNG0qJ UmtJnlMPb35zewvcfPPcXS\/a4CS\/hShaDA499C8gSrJxxgcc8FaINm\/+PsRTplz8kgaiWAwxgfX1 wcrR17fX5Q9\/OCjmww8Pvg0ymbCDAW6HfD7aDuecE2IOP\/GJlqf+64f+56xcOXQoZLM69jx\/8snr L4Q775x33cup\/5UmVeiUccWYUego8iw0NEQj+w82QKEQDUK5HMzGQ0NxGSZ2P9sMUVPjWvjVk0ve AI+2nXsT\/HpCS8h8Xwm\/7hsbM02wc2f5EMjnw17Zw8NhH8RqNX4sOV+fNGmfCh3Pnx\/8svv6gi9J ufwoLyjzHmQhnjs35PMoFnsgPvzwsJK3cuVe1oP4ve8N7+Kmm4Kd+pBDQgak2bMLED36aAkmTcoO 7tn+OA77N2YyDoWuruqpcNVVYdeuU09tH3HwHkrGuZz0NxeOJiXjOhkGB4PduVqNtyT1z4Gamuh2 OO209tOhVIqfhCVL1i1M3tPITryP75+\/mH2TKnTKuGLMWDlGOP\/8jVOgs7NyIcyZk3sEMpmw4vWX lW\/tgNl3X3UCDB32hsehbs1T0+ALF9zaDu3tw\/Vw3XWzt\/KCFaVcjqdAqRQvhokTg7dYX191KTz0 UNu3Xqx9cWtryKyURMYoFDog2rTpKYiPPLIWrFv31uT6yCYwdwoPugii7dv\/BeKzzw7v4Iknwg6w 2WywalSrfwIWLfpbiG666UXzWy9btvEQ6O6uzoHh4Xhmcmlkl7BhyOXCCmEcB3vz0FDwc87lDEBt baYLBgerw1BXF3w7amoy+eR8XVJ\/XVLfs3D33fPGhI9MqtAp44oxp9BnnNFeC6VS\/BdQrWqETEYJ 8vnn59RD4XxUk3wfmRPmII7DHHjSpMwj0NNTLUBvb4joqK0Ne4JnMmHuN2FC5odw441zXnTFMG5t DcpZWxuCB8vlRog6Ou6B+E1vCrF1q1YdCurrj0hu3QGy2Y3gQx8KK5nXXBN8VgYGVodSOz4idDTk vd69+yEvg2uv7c7B9df31sLKlaUcJMHtJkzIxDBtWtjx9ogjastw3HH1Q3DmmY3V3\/eZo0mq0Cnj ijFj5RihqSkTQVdXdRXkcqbC4GD1CejrqybKHBQ7iqJJyfcZkM1GRZg1K\/dYuK4z3B+\/Lqm\/C8pl 6+G+++b9vgrYDC66KMwZv\/OdT0N8wQUPgIGBoPBxvBQMDa0HDQ0jVpBg9fjRj8L1ajVYIaIoeANm wp7lL1eZR1i2rHnkuX0vpfxPfvJKPHX0SBU6ZVwx5ubQI5x44vozIZ+PWqBcjg+ATCZEF9fWhp1j MxmFcD0o9uBg8PvNZDwAf\/Znk+6BxsYwVzznnKaXNSeMm5uDP\/bMmcEa0tkZ\/peL4\/OTY5wcw1y4 UPha8j34emSzv0i+HyI0PPigXHrpveBTnworjj09\/3u038FrkVShU8YVo67Qb3vbxlrYvr1yIBQK ITdbbW30W+jvr34UstnnY9i2Q1NTNvEWC6ErPT3VEXtpN9xxx9y9dpxdunT9m+Gee+bd\/HLaG8+e PQN0db0fot7ef9jrerLHt9bWYAfevj3MmWtqwspiHLzbDA5ug2j37p\/udX9r64fB1Knfg+g3v3lZ ftr\/3UgVOmVcMWoKfeKJITdasRgfC9On534Axx1XuwY+97kpr0jM31vesqEGdu6svBUeeqjtqvCc dcfBrFm5lXDttbN7f5964+bmsHdJPn88qFSCHblazSTnwy5bcbJil82G6wMDwRrS2roaovXr9\/bp OPvsMCdfvfotEK1d+3MpL5lUoVPGFaOm0CPZK+vqMklMW3U6VCoh0iKbDdHctbXRyBxyGKrV4C0W x3FyDFaPSiX4LOzaVWmFcjn4LtTWRsdDU1Pml0m5zqSeLBx6aOFueO654WPg9tvn\/kG57+LZs+cK D54KTjwxxA7effcnhAcHP+dCIUSp9\/cHO\/p\/tvvUrFkh+v3gg7dC9OtfD4zWu3otkSp0yrhi1K0c I3zgA5vnQ0dH5STo66seANVqyBRfUxPthDg2othJBqDwpVwO5XK54Cfc0pLdDP391QoUiyH\/RCaj FSqV4C2WzQbvs+bmzO3wy1\/O6f9D2n\/GGe1tEEWmJe0owSUbLjsBpi5seRAOX3NjAzTs2HhCcmvY N\/B1r7sKottuC3muz9+Q7JAbn5EcW2FgoJrE+k28Cy65ZPJ+zS8y1kkVOmVcMWYU+nf50Ie2RNDR Eeak\/f3VabyQySeKor3avnt32KOluTlThsbGTAkmTMj0w+tfX5NEQ8f98MUvTntZynbssevOSp7X DJlMiJoul+ONUCqFaPVJcXcdvKG4IkR\/19R0wd+t+1Twp5448TnY3FN3LHxyyc+2w6ZN5Y9ANhu8 Bnt7q2vDc8yFXC54Hc6cmf9f8NOfztqvu2yNVVKFThlXjFmFHuucdlr7IdDfX\/0ANDZmboJMxl4x kIVCJgOVSogM+R9d\/74UfjH57cvhnPXfPw++2\/SBX4G6sKCYzRrJRbcCosjxMDAQ\/odqbAxeef39 1TIsX972wGiPyVggVeiUccWY84d+rVCpxH2QzUZ3hqMkc1GI\/BgYCBEycRzm1G\/t+NEboXfGAc\/A 1Q+fcAbcdOiffBWy+bqpUF+fmQB9fdUBqFYdmdS\/PXnuycn17VBXF7KFpgRShU4ZV6Rz6JfJO96x qQG2bSt\/CRoaMndDtRrvhHIpRKRcuOvHi+Dqpnc+DQurz7XA2tqFFcjloj649da598KSJesugEwm ZELq76++FSZMyPw7lMtBue+7b94PRnsMxhKpQqeMK1KFfpn84AfdWbjyyuAfXanEGcjlon7I56NN oWSwevT2hpXLSiVE2jQ0BF+WYjHsB9jamt0KfX3VLcnxNMhmg909m7Ub3v\/+5p\/Bhz40KV0p3INU oVPGFalCv0KcfPL6d0JdXVipLJWC4pbLcZL\/I9ina2rCyuJIZqMRX5XW1txDMGFCZj1s2jR8GAwM xHOS+++Hu+6at320+zqWSRU6ZVyR2qFfIaIoZE0tFoN3XKUSj4xtA2RCuhHFYoiBHMmwX61qgo0b h2fDgw+2PQNXXtm1Aj74wYmPjXbfXkukCp0yrkgV+iVy7rkhNnHLlvLx0NAQfDTy+agMra3ZFbB1 a3nEurEOisXqSNbPfHKMoFwO1pCamhCJc8cdbXft+bxvf7vrfcnH78PPfx7yPV9wwYTUqvEipAqd Mq5IFfol0tlZXQZ1dZltUFsb8lX39VXzsGlTPAPa2vI\/gwUL8j1w6aVTy7\/Pc44\/fv1UqFTivSJn Lr989ylwwgnr18K9985rH+0xGYukCp0yrkjt0C+RY49d1wa1tdGhkM8\/vwPrAFQqQaEzmWh6cj7J uRciV+rqopEcfLVJlfW8sNfJ0FC8KtSfmQJNTZn7YXg4HuSFfNe1tcHno1QK2VTf\/e4Jv4Q\/+7M0 tpBUoVPGGalC\/4FcfPHmCbB7d2URDA3FtVCthr20RxQ5TrKRZjJRDD09wftuZM+ThoYok1yvQrFY LUFjYyYXvsf1SfkayGbDTq\/33Te6u02NVVKFTklJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJ SUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUkZFf4\/lXLIJHlIh2gA AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAACV0RVh0ZGF0ZTpjcmVh dGUAMjAyNi0wNC0yMVQwNTo0MTo1MyswMDowMNZtj5AAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYt MDQtMjFUMDU6NDE6NTMrMDA6MDCnMDcsAAAAAElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>JavaParty<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/marc-woerlein\">Marc W\u00f6rlein<\/a><\/span><br \/><strong>Start date: <\/strong>01.04.2007<br \/><strong>End date: <\/strong>31.12.2010<br \/><strong>Acronym: <\/strong>JavaParty<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>JavaParty [http:\/\/svn.ipd.uni-karlsruhe.de\/trac\/javaparty\/wiki\/JavaParty] allows easy porting of multi-threaded Java programs to distributed environments such as e.g. clusters. Regular Java already supports parallel applications with threads and synchronization mechanisms. While multi-threaded Java programs are limited to a single address space, JavaParty extends the capabilities of Java to distributed computing environments.<br \/>The normal way of porting a parallel application to a distributed environment is the use of a communication library. Java's remote method invocation (RMI) renders the implementation of communication protocols unnecessary, but still leads to increased program complexity. The reasons for increased complexity are the limited RMI capabilities and the additional functionality that has to be implemented for creation and access of remote objects.<br \/>The JavaParty approach is different. JavaParty classes can be declared as remote. While regular Java classes are limited to a single virtual machine, remote classes and their instances are visible and accessible anywhere in the distributed JavaParty environment. As far as remote classes are concerned, the JavaParty environment can be viewed as a Java virtual machine that is distributed over several computers. Access and creation of remote classes are syntactically indistinguishable from regular Java classes.<\/p><p>In 2007\/08, a complete new version of the JavaParty compiler was implemented. This version supports the current Java Standard 1.5\/1.6. The implementation is based on the open and freely available Eclipse compiler framework. Thus, future developments of the Java language and corresponding extensions for the Eclipse compiler will automatically become available for JavaParty as well.<\/p><p>In 2009, the JavaParty compiler was extended by a semantics for inner classes.<\/p><p>We have reached the following goals in 2010:<br \/>- Most of the previously self-implemented structures of the run-time system were replaced with more efficient standard Java implementations, because of matters of stability.<br \/>- Due to compatibility and security reasons, the communication layer (KaRMI) was reimplemented based on Java's current socket technology.<br \/>- A new \"near\" context was added to remote classes. With this new context that provides host local memory for each instance, locality-aware algorithms can be expressed.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"lbmmc\" data-href=\"#lbmmc\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lbmmc-section\" id=\"lbmmc\">LBMMC &#8211; \u00dcbersetzerunterst\u00fctzte Parallelisierung f\u00fcr Mehrkern-Architekturen<\/button><\/h2><div id=\"lbmmc-section\" class=\"accordion-body \" aria-labelledby=\"lbmmc\" role=\"region\" name=\"lbmmc\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/LBMMC_small_image.png\" alt=\"\u00dcbersetzerunterst\u00fctzte Parallelisierung f\u00fcr Mehrkern-Architekturen\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH6gQVBjoXS7u0JQAAN1FJREFUeNrtfXeAJVWV\/ner 3uucJsME0hBEBSQJyiKrIEh0Fd1VzBEQEDBgYNcVMa26uiL+UIRVMYIKioCADigiCkgccpycQ89M T093v1d194\/7nVtzT72a7hmCzfvV+edOVd1U901\/99S53znHYJzJj67\/\/mcA4LLr\/ve8ze9bmwb1 DAzvW39n8wJxonqW+uxP3Td8YPjAmDioKONYIwPwGknQjx\/fSC2DzcXIAFbNx48fdmBiG3Rrbdhf NhD7MwnHVetl1fyseo+oYB3Vukn9yCIUWTc1H\/9YrYuavb7tJU7dkwgVAEA3qgCArsS951rjrm\/4 xTzWK6WUJpLKP3oCWl7VMwsAsNOMg9yNhH\/6KREzdchjkjR4bljalAhSd3+5HhpY3SMxryNep0Re KWMrpdRD0E6wICFCRKpeDNXOI6g84X0IAhNbFBKaeguvouA9Il7LhpFtYHEwjtHI6hFUxpX3jBuP r38gDlg3IaIbPxE0bCfvn+vP75gh5NvIvVCCAY5XAwCs7VsNABjcwdWrz5zi3iuub\/arlFJKk8i4 Q+j7dnN\/idf0DQIAYuqErdbdj6y7jqm7xrYeXEeEsNb6SFA\/MmH9KhEmJgRX+bddEYSljhZxR6gk rp1JE5auflR3S2hkXmxXYbvI1+eCJ63uHwKpLKW9QXi\/pdbC9xMkZX3p30rJ\/onoUdLC\/kQ4f6kP GdfVqNZbg+d6XpbvAe6A1YSIzp0xTULdXfqRb58oCXdGEX9JhK9U+F+yjTtQj7s\/MGk5AGDFDu0A gD+5jRw7zOsGACw1\/XyvUkppIhl\/CP3IPwMAvn\/XywEApo1fuR2EIFGNq0QClpG\/JmK0b2R9h0xo kedEXtYzvB9XHKKbyO0EYi0wYjWIiFBe+R52l\/EA29mwHetn\/VDHs+vcNRHTSskdSOqBO07FbHL3 rSCs7FCiM4aIG9khPuf8BDERzsN4nVXNU3Rz3x93Iurmcj\/23wbyy0XB+mT9i+6eBNdam7bK3jHC H7pi3U6zqroTAGAY2wMAdh18AADw+kfWAAB+NiLjlFJKE8m4Q+j0b+4vs\/bfTldCTISuur89W6W1 oIUNWvkXT6QVBDeVqbyOgnq2lUjRqturFWmNGz+XUhCeiG9aTNhvi4zH+\/45EZLjyI5iKlZd05og 8+Z7+3axlERE2SFi7jBRPbif7SwhgnprAnecDGFZncuXIR93wAIoNGhsoM4htEd4WmWkmajw1NEr LIfb1vJ9bwUAnDD0NwDAlBvdDtkRTVDzLKWUJpBxh9DRoPuLjFe0Adj8hE4qSCk6NR+IedcjmAnf sCLXRISqMhgLglZVv9Wi+zboX3YMK\/14xA3Ht63tYTsppV41\/FbwCBzr+jboV5A7jblAsYJWXcp7 +6PR8GRVme+hdV6x9ohRJDvJFGsG3zcNT2Btqs4F+MlgZfi6q1ipEZl7+fu\/0n0btM5yyPziEffC 9lFXr7pHX\/B6pZTSFDLuEFr+1Kna+ZM7ZR7NJBGEJlLJgZpHZpbyp1vRyM2SKqQgl+i0GZLy698j Ke9X48b9+eeq3yq2WF92gAyRTVAKEsvBHhRyy\/sLZ8QfAGrShKyH12UF4nlb6bReBZbrOjsWhBXj jL5mOxpxgBo7rnEivG9GZFz3PGmn9WcXN9GWl7kKVfsYAGCXta7jlo1tfO+e4LVKKaUpZNwhtCBD YvSpv\/p6luemoJbmXoTkMj+OUcifkekUy8yG9TTJLpsXy6jxc6vvF9TXJEIolp5\/r1TprJGyQiRq nay2QvBET+m2vl09RFKQQ5NDXCIshjmw7HhSb9iG5QitVkOC2ByYBm47ie1mcnla3H\/VNrMKANDn Dg7R2tbGf1SDZSyllKaQcYfQIqmHUN7QiJz7Wg+vvQ4qOqWQ2TRfWV+PhqC550Kza8yHLiwLpTFd zdhRGwYDGLUTZY812y5k+VmF0GL8sLQ+kPQGK0g8wgbD7HeI5Sb2M0wrzSB3kKGwnmFpZUfgyTC6 OKE2Z92odzqduj1dDwCYsJYnllOd4d9WWoKfp5RSmkLGHULbIkRTyOgRVyGnMY3va6tArtT9FPSf 2xnE3l2E4Mpu7nnDBfXtaEhf+F5qpyiaj1\/osPScDKvaSzdGbWne2sGK2lpBHdpqxPYIjaAUnrpY hSK+R0pkTttdB12J40NPcZQY9E8mxyTuazTtUkp5Ycu4Q+hMFy7QmQsQuPB+DoGtem4K6un+hQuh EVBdx3aL\/dmi8XMuL0aVbO\/t12InT8P7fj6qfeYsGSy3FauF6LBivfFQp6DdI3M4H7GPF+0EVtbP z6MSrgdPREGjRdpOnnkveept\/QCAPrvBXa90bMp1kzsAABvXVsJpl1JKM8g4Rmh1PZq1Qeu+o+nM Svc1Bcie6dJG1RO7Lwru24bj+BXXCO7vj4bMLDXnQ1iIFY3w2loUmj20Hd7bjWtqPG8MER9P0aWp +wqye64Lr+XEUOzUal7+5FPatbH\/Ts6vy3UUx45tN4FHkHbAKenrJzjdemhRuJyllNIU8oJBaKOQ ulCHVnZojYRWI6ZGyhwyq3pF7UexlkBxKkxOt27MGhT+teeAeFYfuSWt4XMjPGzNMvRWFrXe4k3v 7c28Lyd9Yp3wv4c+eZR+VHvF\/YjI\/UiVKi2vnQrfvY0ViNDooq5tnFljgqj6w26g2k7uenCo9Pou pQll3CG0BwCF0F5384hcZC3gtbbnjoKkNrYN21utQ+asGaZh\/+JxUrgDKCT2rDzvIROWtpUdyEka fSxtuwnqGVoJLEuvawtHQkdOEsTUujOR2WwMS79DDKrfiwstCKxJNZ4rIixA6vopdxq\/zl3soIvf LF2cZux8ByfV6CvJ+Q9Ndi86mNSCZS6llKaQcYfQWkfOdGdtl25spbAFunDRCZtHSkHkuHF7Xd\/G W0ZgrzN7JBbEdcplKjxqjcyiQ7azQyKw6eD8iFjoFM4Dx5HndIgRe24kvOxKge6rdWbhZmwkkg5w HhvYbIANB6TfVK279pjhcxlYrBnkfnjWnsyvk+tChI666I2PdbxdD9atMtXZoet18X4vpZQmknGH 0Np30P\/lo4DVpll1Rfc9YhbYh4vs1cr+W2Tfzp\/g8Vp7qIhHCn0PjT8Z4\/MOWi+IwLaXZTef94al 6WHZwddpo3mB8UjEqzuL9yESLpRlLEDPpiM7DutZbb1c8\/36xYtdPGlCz5osqJ\/6vbT3vLdPs\/TW DTbrlMhY\/e61JaIT2w90u3\/UayXbrpQmlHGH0IVcCoXMnvylWGYZwvOrv5A1FyK1zfkQqpO2MSK4 1wX9SZ5EaOLALCOJ30FkNd2cRx\/bCyJP5vMJ7H4C++t2UJq2OeU3jR3U1UW5NTRD5CIW6YXmFhIT EluJdO1u64i63NaR9hDJyXKTiFYS9ySS4LDKZ9NUwm+FdBN19BHqyKJLy+8kPGixctC3MErcwD31 MD5Lf6dbyCTpCt6qlFKaQsYfQhdxObSVYhRrR5EOnUPWIgSuFFxrXVlbOyohMntdUYKOUldORVfs oTVhIutPYT0eiZmpDtGqvUTaNmduqEeOF5x6JVeIxZvCaxUH2uvMHkLFsMyJUalPY06wwynrptUh oHArrLfC8H1ykaLYrY85qLga4ls4pOKHMA6HrIvpZBRZsXIwCmyF466nFShJSrZdKU0o4xehozFe F\/gUCnIbZdXIdGplNSny+NAcDm+PLuBeSPyMaohUYs1IPALx+USWDMWH7ekrJ7pztzuiqxvHNkux kg9Ws4FD6IguIqkYdlUgZh9DTpFCJB5HhI1sz4wBppPj0QwRE\/E7iNQVZ14xraLTSgxBdq8iQfmI UoOsx41EPFr8jtsdfkOY9iH+vO6ksN26+cT89hhmTMO6Le3QpTShjF+EziFzgf1YWS2yE6vQc0PH hsud5BUgui3gavj2\/qSPCCFWDCJzSiRJxX5Ma4WPOzGNw28vOrPTEZPW1Xy9pa4+1rKBIHM\/Swd1 qVgzFN9ZaHipputJXGguiKdgZAE\/gnrGx5t2SG4qvJ7Y52pVJT4Gm\/EEMYrDyFKpcEyECyK+hRIf ROzPPW4d06obr2JWAAA6JH50l+S4cQ1SpYqXUkpTyPhF6CKPlFxcjcYsubwvn+pXdOqcB0mBDq19 53IcDCJem2QQIP9X7MlEZjOFJ4FTmeNlJr\/mJznES6rL2GCJ609KbwCmVcMKHU5OAGVB9ER16Cgd 8IM6sL+hnAaJzFmEfclwQF2dGQ+inomurNBKIlnF5DxAvinaOdJG8QYXDxhh2fG6m97c3AmqnIfs LxFPUmskq6Q+n2EppTSRjHuENgV26NG9usMTq7wvnzphLOApZ9yMkB+to5AKp8Gz3YQVN5HIM4XP p7uyuj11\/skOcWtV0ZUXcnpEauNK60\/+hPwgLiKSE8U7F7IfPUH9Yvq+RnDbcDxL+7bhfCyRMyFS m84+N\/+p1G0Z0ci2KDYhs1xZ8qwljrQ\/Oe2R6br1aa27HUlIhimRfkB2GMlKhlJKaSIZfwgtYpTV Iud1rXVnNotDxC2MtzFmbgZLFbFf2HIRdcOE0TGNHLgRYexEsV6wnE6dcrJDuFrFuStb0G2ZOjPs CnZE3dm7koS6shF7Ms0LVlxVjDYIqyPLHA0wzHBbjNRyVwWYZikZX+WgETFPGkn2kDjbkjHB73QJ kZYIHXenfGtn1Wlndq82upfXO9zzdZH4KpY6dClNKOMPoXNWDkHmxog8Zt26CLE1P7qIs+E9TrgD tIQngcJp8LzliSyVNSOd7NhwtcpiVx\/zWHEpS4dIltYM60\/+xFzjlXaWzEWTpfVimVPyEU7Y2wvU wqPgWrtzJ+q5XFOnlmxabWLF6eM6C0Kr6UkcauF6dIknTD9nT4QWHZoeOhuEm1IidCnNKOMYoYnM uWijOhYcRikLOBsqUlFU6IkiyK14zpI\/sFNxM8iSs8LF2I469qQR9idIvIDTcUgdpY6jkUSOTZca cfILkdaYXMLEoLRKZxYd23r6m0Jw\/1Gi7dXqvk5lIGFGfZC7Qc6vqvoL7fKed+2zkXG8kXBd0w5G HbVuR2uhbt7C\/kyHa79R5T0sEbqUppJxi9BGfXSnEpne19NRNV1RdCJYhOC5+MpxaG\/OZc0SL2qJ h0HDaNQpvGbqfttzWtMk1\/gqTvNp99wu4Xu5+ymROUNEMZcQmXMI3FhnNioIns0dhYquGYb4T2XB U2Xd0D6ckjvcHy3KSSJ3IG\/Qlx1W+NfMgSLe7t3OnJEK12OYJ4OSmZfRRmNGG+0gZ8Vy\/JTrPyJZ 0rheJUKX0lQy7hBax16zBZyOohhx3n5dlJNFx5DT7RWgGUWNSMUjQ2LKMYIR0+QhEbvzFCJ1O1ly VuzMzr5sxdPE66KhW7QRXdfq4HbarpxLUs6yTdX3qWnde\/gTRlnocP0y0QGhyVnxoZZ0ELwQ4a06 gRRdPubJYRQ7ZE1auMNIRCUjPG+H0G0m9I1MWtx71MXqk5ZZsEppQhl3CC2ic61oJDbKTp2zZozR Pm0KPFLyJ4jKR1AAkOywdCI7pE+g6SZP2ThkNtZZNaznMwuiCSJqxJUBPMFYlS0NS2u0bq3tz7L1 6FSxKum20algtf3ZJybkzyTcDnmug+XJOA5JEyKu93yJabindSezw7uyi\/ONaN+u0TqSyrdGaeUo pRll\/CF0UfzkIp15FB50pkOrSPZKl7ajILNtFZaYWDc4AO3PqQDMJH6FV9ewA2dfjiJnzUggYTwF sYSTIbouT\/6MD0oX1MuTTjSSt6tSI7TWccMTviwMqXiqiM6sA0iLNUYjukbk8D2z0PytfErrhn9v QXyx+rhvkC6xrjAS1CARO0kluF95UlhKE8r4Q+icFERGKvBsyedKsY3rR8oaUsS685HxOZt2iTBP dpjEmJOTwY4NnPVKDruW14LMiRqALLkcB6MoCYuUgsAqGJy\/7mRrh3wmpY7N7tKcLizOfcK7FqSV uB70VPH1hWPCGHpeBx8J7mdIL+81wPoyf7FTM1KTt5qIZw7jcdCrOyZCb4rci9QGO4J5lghdSlPJ uENobwXVSTjktj4RzOnIjU8Q8yeGKvZdQbwPf9AmHhdihxbv5D4uZB9zUsdLOfwyDt8PIM\/NMF73 7eB7q1QB\/oU1css1kdj28bXJO5awpAxnGtVZPw0TCZoKkTUe5jKTQ+J\/AVotJNontI4sSC5xM+TE UCI2yXDqhNOIbizvLzo0Y+pJClrq0JapAzpkI+XyjPDbplbnzlNG8C+lGWXcIXSRc3Lm5V1QT1s5 9H2N5AV2bY\/8EpneH8wJX1cjNHU3xpwzEB9A0Z2Hw4EEmVQsuTy2xA3rG4\/oElrIuZMbS6\/rYYfc dsD9tHV6V8sG4eOTMLtU1Mv\/AsJD9rp0zFmFrDubsz+LPV2VRtnXPctPAnIIUmvrjiC+e15Nnc7d 7jP5uvms5\/Vgwvetb2i4iqWU8oKW8YfQFFt4R8eVUGw7r0PreqpUmWAjxbrzuUMkZpuUHRI3gt1R ZbVReLLlvbS9AT20D9sc10LstYIxof3YeJeY3mDgiCGY7EaHVMkKsuxWcp7r+K0wHGYMEG\/0lL58 0RSOVw09WYz\/aBF7syAokdpKDhTZAqhL+59LdHC2o2+gNcKeE92b8a6J8IbWkDa6hXfGEonJvd8a 2ss31bhV1geC1SullKaQcYvQOfH8WneZ6dJKRy4oM+tIQTxpzZ+md7LPHSKkt3alQ3c4pJDI+YJE 1oaIayARijQbTraGRF2rEz4mUbHGbQ3GMhTTBt5fxBdYzGaLOf4axogTVV5i7E0Xs4GcfJKt1uPG S7kwqUCtCbkcWpf2yOyv5YeTdRBkZqm5Ht5+PcRWG7gabqfrkp+FZo61jOORJNzxktIOXUoTygsG oYt8ku1oDXKILjmvQ2TP2bV1vGnxIZRsU9ShbdUhc+q\/2sU+W1cdK2Q22utap5YVwrU+EXQQa4fd BCx15mg+mz3O8mlyGyRUHgE23R7BuPIehtFPo27GipP1NZo9p04WffjQIfY6HLT31hHRvQWJoXwS Ibq4sPb6AQDtPGGVc9CEv9syrmd9hC9QF6tMKaU0kYxfhDbPUvsx2rMzHTu0U3sWno+\/QW4CATON JMcJs0+JfdYKV4RcDaNYcd7ALfOQCYmLTHgiaC25GUzOYjfQmsEAS6I726d4\/QCRcZ5DQFPleDW+ mGQMkHyEdfExlOTfOsWsLsMTQkHYTLfWPwBPJk3IEfEcDCMILZwXZ8fvptWjkz\/YINdpEU9CTd2R aGytZNuV0oQyfhH6mUoOmW3D56bAPp2R3CRCkuTgpg4u\/GjRmX285poaR4VWUr59+a8ATfcL7dAx uQt1UdkZ+s6u4XxEZ36acSyWuv5qMXXh6QqRdYYDZbXITgQ1Agv7jlFHvbVC7NXafq3PEaSUdZT+ mSEgdTtfD5G9jf3JfriYZqd0mNr1SJkFq5QmlBcAQhd4cefclaEfNH5uGj81ygqSQy7JBNsmeffE g0O+8gXR5Ks+F76UpY7HLFIUhE+5nSdCN+NtRU\/OaMqe+Ox67yTvWHjcHfItICeIPDk0oRXD51bx J4I80TOhZ4rEyzDes0VhpdXOnFLojAGbWMt9k\/TwpLHKBmtYfzWTsdTXhutbInQpTSXjH6HzgSPC 6wLd2P\/hx0Udq\/58YYKnvnfhRwt5LBLv5DCyvm9PDxGfDsuLzn0iI4gPYSv7kbyCYeZXCdIpOc4l HnZEnnYi3JKdXX\/Dk4mc9Eq3szneDM6CWbhsF0\/oJIeLtzaIXZix6xDanbP3DvnShjuKRFKKROfN fTu4duJYlDAedkxPlSniHc51ncd1WJ\/s5PpdOUEaumuUUkoTyThG6FHPAhvXt7qdVpob37dWebho X0OfW0VYeqIrah86OYkU7kaR1\/ZY3zc8SYuouyfkZdteep1PJWdENgzG2jNin6V3erIruRg7uzKe Rh04FmSWjAHisRKy63I+hVA+hbl1j4PLiNepioqaGGHbMacKrRyTJDMv128hvc43Rm6LGV7pjm5l BygRupSmknGM0BQirlFKrS1kd6h2ujuP5GF\/WQU5KVNpuHwmWxmOiGRC80Lmg6edFIWjESJW4U7i va0lfobkBaROSc6FnUykrqkI+DOkF4kfwm5ncl12cZdpr5xwigFbIjsRqQ29tK3WncU+XQ\/eO3sN n4yGz\/VOFUaEEnadsSs5XTePafwdNvE9HmN01I3p7m4Wi1w\/lXqZ67uUJpRChP7Bd24+GwBuvPb+ NwLAp85\/w9kAsNfLdvj78zExfbDkdVyrEDb1yllwP0fHtQXXOaQ2Yb\/qtjFiZw5zYfu4ycaq\/kL7 slFf+dlOkwT9+whFNtRZxU4ck7+Macx5LdaXiRIRP958WE9Xixk\/xNJLPYklbnUBQlvxIBGrjpwM qghKIt7eLCei5Csb0XXF86YS9kfrRjVxXvNTY4fYffzdV3NHfCShD+XI3m70eW7dWpN6sNqllNIU UojQC+atng0Ad9\/+1D8BwIZ1m\/qelxlpXVmn9lCkMMSNn2NrS0HkRBCa98OwxLA5t\/OiFxjlxXyZ qFqCgLIlCEIS0VgmFeYD7CXHo4OsvpEo6NYyfkXUSh282s\/XXMkKLM0qzqCfpdihxdMkjHmnF8ao cK4+X6LPmyiMZrLkrOx04i3uxm9J3E4xtYUcDq7DYva\/0M521Zfv5t5rgZtHZEo+dClNKOPOyqE\/ \/o22auSsEo3LImQvqm9UsEwbqsYekEyq7N2msXUij2RpQb3GiK11VavaiQdIPeYJXswTxlY5WRQE ZDYpj7hr2K\/TlSPqygm0x03jGHW5Lcv\/cKG92Mfs8zzwzuB+tmzCVnT857bUzWeyzwXj3mdh4t5n AC9ys1jgAnHHq9x7RUZi45VSShPJuEPoYh2XlwKMcq3S6+UOCrXOLdAtiCtZrxK5zzLl37oK6ZaS RxzJ13wu65RYO4bDhoXsOmlfgIQ8ATPed0+eC8dCYsdF4froiPw+spHEDSEyiy+kFbuz6OzinS2x 6iQOh+RgDz9esuxbPbw7iY\/72K9YO5hjJU34s\/az\/pMAgGmxs3vvTI+eNeRy3EOEHzH\/5No96Ppr WcN4HLbkQ5fShDL+EJpite7rHxSU+nmRvTktKPVzATaP0ERyiUBkFU9Z2ZOzhhp5oepr5A4nZMXX TuzSnq+s+NXCPzbiSSI7RBjxCF5XFu6GeNoIggvyh2y6rB89f0Fq8cjp4lMfuIT3JSe5e696JHG0 nVWjNXFu6ztU3Pjd3OkWcZ0X1ncEALSs3wsAMDDXPe8acu9d4fuWCF1KU8m4Q2hbZJXQunIOcVV8 aPXcO1JIpCDWtxqRPcCyA+FIqAD3UY1f6xUij0dsGVjn8ROkk69+ER26ScdhJuLmnB\/1SaZc64hG eh4bVSnIPKSu1TeA0VYalS+RsfYs+rjQjPBEpLYp31t45ETm2D4BANiO8bRncb7yM8xlDpV10WHu xhPODm0fcevdWqd1IxoJVrGUUppCxh1Ca6uEpifrIJ2ZvZm6bZGOrJFYkNojszopFGCSj3yJXzFA nXETkalNdEVB3hAps\/jJG\/l64pGi4nLksEUjfdGWVaT8h3zlPAJrHXlItVNbYu6\/isyfcULANGCM uWckPKuyO1uvw7u8jZ11F0hkNnX4HjkR5PgP0aWmbl\/j3u4uZ0WJFrj3buEOUZNIUCillCaS8YfQ IqPo0B6IRGf1zwu4GCqCv5z4+bARuRBuYVxlKwdoNA6kjFwUTXD21sRK\/j1ZUol\/LA1VpHpvFdAx 7oqQOqfkqzIpqC87BT1OfA6TkC3neddeNVfe6d6KInkVGfXUyg5FuzOTzlj1rWDNGr7dfK73owCA qQz5NKPi5jtERL+HPplr4HTnaNHL3duQ69mx2tVv4++4KS7t0KU0oYxfhBYpQmiPzFKGeQxzRgHN 1RArhgAQ3amNxLYTr2oBtEHe3+A6qK9zCBYntLvGwlUQVpyc1Im1QeciUfE6cqlyR2PziTe0jBMi tlWZXa1C6mwrEiTXcUEah2E1RNCIOnJq5GRQAk\/r\/IMyznJ3zfCo3QzCN6PqdrA+YdXxBPGxZJZb nfT1AIDhO1zYVPOgm3\/vsIzmfo+1KD1WSmlCGX8I7RE5jJhkIv1cQXHuIE65rii+s9FxokUk94oP LM\/nzCbFoJgwq1z7eICssl73NZ7CfeVHwpnwurSIPlmshqXXVSXyf4jgmaeMZh+GW5E\/WVRsP6uP Xq22YmjdOURmw7ghqRHrhjgrSskIRlY4Fi48ahI5q0Zb8iAAYLZ1\/OcdOe46zvPBxPWzPj7K1Z9\/ IACgfit\/rwVuPq1cp8jvfPz5UEopTSTjF6E1kCjeslc5bcFzBWRyP7NTSxRO3ve6tGTBYj1ROcVY sYED0cEjXeYqVjpdwOWR6mQO6zxBIruGw2wMJ+xfUAaSUPohrzgHwErntX7rok5tI9W+SBcX73NZ MP1cxam2YfYu6zkbPKkTViC\/GWy0nLN6jP3dDgCYEjtW3c5GdF43v0dSN5\/5dn8AQHX4RADA0F95 Ank\/fQcZy65F3tOE3xIlQpfSVDL+EFrEqn94IFG5UXQuFWmmdGqrdeqCPIY+aGaNSC0nikNsv566 6GpGAFpKttcUhyTxxOkcj756ROZI8hf63CSSTUpnmRLdVOy9EmuvKLJSQSoCr3snwbUpYv\/55Qg5 GmIvtz6jgJRk0cnWmNJzxjhORmofZL\/3AwCmpE8DAHaN3PpVuEM8kbjxHrI7uFnFb3Xdzt0PAFD\/ E5H\/MbdVdpFbI1buisRBsWVsu1KaUMaM0L\/91d\/fBgAXff2Gg7dmgLe979ALAaCnt6N\/TA1yVgzF otN25VFyqXgrRqJPwhpHH\/UA5sMYq\/jUEid6FWPKLXGXtan0Ou5xCF2rMr6F6Wc\/wv8VZVyf+Imy Tk6E9\/yQk0RtBWkcf9rbfa3iesiO4I9GwwU0VllbfLYuHdeauqvPIePeL4mJzNSZW0fuBQD0xc7u vAft+72c71KOd1+6EwBgY8XpzO1Lj3DXc\/je97p27cxQ0OW\/MWQVuVOaMrZdKU0oY0boq35+x7u3 ZYDjTzzgJ\/xn\/5gaKDu0z3kioq0X2mdQJKcjF9mrC64Vm89rsDGRqsoHy9ntfF5PcHboeDsXNyKJ GBvOezerE0RIXAxB7pCdJ3kJvR3YhPE5rPJN9Dpyjr+s3dv1DiU6tiCyWEtC1p94whizmteL+Nzx mqPUlRONu79z5L4ZOvlDreCCPpy4nWig4hC5fcNJAID6nO1cd7cxe9d894N10fpU5fxTzi9VGQ9K hC6lqaQQoT\/0kSPPB4C3UwfeVpk2vW\/RVjXQ3A0oHbqg+mjd5ZBZ6cZWW1WE05GGX8+pcDpElSVS p4z6mXQ7Xa7aNtM973OIm0T01fM+gdSxxds650EyENy3Pq6FlE7H1fbqTOcea3xtibGn2XoyT5nX Oj6V+bqf1ZCb0ZI69twEGuinMY624OdCLtj8uvvGGIgdR6N90zvc+v3F7WjDc7iwD5PvTM5MF3Xu it85+JbiZc8dpEToUppKChF68tQeaoeiJT5Pkot4FOY8KeRJ6+eUDKdGQapYtVD0ZKt79BQIToA5 TtBBr2ZGMGp9kWON2W6H0IlRucCJeIbch4wlJ3EwJIK+WB0kybhwJxxiG2X1sDpTgLeOqHXy9m\/x 9VOeLbaf\/S\/jPH0iRDd6jdFCI4fMPRWJt+HGX5A43X8ZdgUADMVHAwBahp3OXLvrxa78Pa0X93Na i918O7gcVf4QFR2m21tpypPCUppQChH68stu+yAA3DLnoaO31IEhba23t30tAOy867RHAeDof9n3 cgCYMWvi\/K2akbJDeyuDhJ\/QunUuToew6cJ6OaQeLTOAsOy4QqkNSSSCDKlwKTyNOdSxa4w5F+2+ p6tPBw8rOUF4cmYtDdpy4kZanxXjkLf2kEtBzxAfmcif4Kn4zKJzes6HsO6EAyELKqxAiQ+9nu3c PEyymNNw8+xgvUn8hpA4GoNclxWps84M2D3cqNHrAABdI8cBAIbvdhH4azdwvndxp5jPk8BBN992 z+\/mtwz\/Q2RvI5yT8qSwlCaUQoR+9KElewPAnN\/N\/RcAaG2rbgKAOI4Ce8HwUK0NAJIkDfq68GvX \/ycA\/HnOwycCwKGH73n9Vs1M2aE9Mvs\/TdF1Fd1ORw8tirQU2+AyZ5AeJWKTZ+8lMt3QcC1I710a GcejZQ+nM9pupwOPGPFFFPaa4w1XUqeTZhGGRtREVrCdsBpkYQSpGYdZKc2m8ISyn6Xo9Ou5vG78 auTut3nvbO5QHHcJUwisY0y7mjnEtTOvde+90ZUjdzreuP0dc6Pc7vqpP0lrxQZ33cotORZvbr0h FwSjLRG6lKaSMZ8UXvSjD5wAAK88bI8\/bH4\/TV2YznVrBycCwA3X3HciAHzh07+6AAA+deZPvw8A w0O1nQGgta06tMWBclYMnWyFl7k\/RWV98P2Jrqxzmqh2RePnIvzztvYWF1FxPVAn14BGg2TIIWrb rjsDAKrbOSStVcj7pRWjHj3F4ZW9mlmpxA3d+DgXcpIXnhxmHi6SpUtHZhJfQyIyrRxStlLHjyVu NddxDfsfsQ5xa9HuHM\/xmVsSdwIYr3TXm+5wJ6j2T0Tg2\/kaj3Pn6Hf3O7leHWLN8N8O6mi4QEqE LqWp5BnzoSP5TPc+HPguAJx80nePB4A\/\/eGhY4FMJwdwxxY7LMpupdl1XlSwOx+7TlcfRUdW93PW D0F6Px+7edEg+GjI8ktFVd3kJja8nv3t5hCuZZbTodMO5\/mSRDtyYHcSZwy9piVblREriJwoygCC 2Do+tYSC0t7ekiFA4naE6zUkOcutRELqc63jGZzXPm7ZUxe3OR7c11V\/0j3fdAetGPew+Vw3r5F5 3DHXu+fVxP1X7OA6+2gl\/ncMv3lEh44UcJcIXUpTyXPmsdLW3rIJyOzU28+YsGBMDYtOAAuTT6k\/ TfmLLnKlKxxXWVVi1Z+2svgITconr0a7rxz0SfTSEdaj97jtF99E8XxxOnR1l5cCAFom7QQAqHe6 aJt1LOQwNOubpRxQ7Mb9LOmWLkhtdRRRFbvO7zBipXE6fsqI+xJVFGYWl9+loK3Qvtw25OzrZpF7 vukhh6118pjNQ7QPP0muy5I0eP+WEVe\/3XucCBKH5we5n0umrcoSoUtpKnnWEXrO9XNPAICPnXLZ 0QBw0CG73gwAU6b1LBtTB6PFtNM6tZfGPoJ5e3KBQVPr4jbU4XUK8MybnN7XqcT5YDPWS+sS54M3 hiSKKfslUtVpVq4voW49izrrLGe3jic6ZKx2uk+VJHYInUYruBzMbkUvc8+OkxzdfsuQE0IRzp\/x NiJGQor8SSS92FPHxUiHHIswWuKsFoNPcochOw6PM3vXExx2PmPOraDdetAhcoXr0sX1E2t6yh1S 9pFKGv6AdpStt0ToUppKxozQnz7zp\/8LAMe88osbN78\/Uqu3AMCaVQNTAeC0d17SBQD7Hzz7zwDw 399911sB4AdXnj62gbRjhYhmvelcHxrZi0LEqQj\/Oq5HBrG8lHF15CbpRhAkCdsl0l6Q3edoIfYM 0MOE1g6soe64nP2R02CnUvecSgyb5nRVTHax3qJe5v5upydJlT8P8xfaKGTRWYRe0hIJyaSMJlqj 7ryJLL617n66wiFrspjzf4IeIwtpLVlEj5HF9G1cSesOveQxQJ2ZC9OisFSs41VWr8hJK48IxdoR +QhS7J\/t0jK2XSnNKGNG6DZyOTo6WwY2v9+SVCoAMLhxuAsANg2OdALAfX+fdzAAXPSNG\/8dAOr1 5CMAUKnE9S0OpH0EtZc31H0RpVtrJDcauWU4q\/6hdO8slwuRQYdxVvOzUdiP1cE961xy6tJWaMcD bLCeSL2SDReyXi85DxPEd5FlD5Gxi8hKjgjaGZOuRRGIhfIiJ52irG6kr57EHVnL+azmTiKs+FXM Nb6KHdAbG6s5zzV8URpZIn47xKmw5NSJbsF5wGh+NkVSInQpTSVjRujP\/NebTwPyXA4ty5etmw4A Hz\/lsp8AwI8vueUMAJg0pVv+xr+wxYHGat0osnYUIHJRhtkMKcKGOW\/yXPRTdb8oXog+yhJdWqoJ ndojNe3YLVKyIlXoVAIWdZLv3E5EFzNBGxG2hRyNOEREH4mpTh2YmQoyRxWxwgjHwiFx3M+JMoNB fSPHp4+loX1d3kMiT4kunG1swmsOl0mkILThmKVE6FKaSp51O\/S07XqXAMDjjyw9HQCOf9WXHwCA 3\/7SRV7CKAitA\/SL2CJkLrj2duE0jMxvdR5DpdJ5\/rD0p3TPnG5vFAJLZB\/TuJ6NQzu35\/XqrFti x5b6OrCRxAXhLyiBj0wk7xt6cmQLyeeadFcnsivEtozpVycHRXR\/Ccss8bNtjc+T0NtbTv4iEyJz 0adITgock4qkROhSmkqeMy7H9jMmLAQyLsfISL11TA2VjuoBdRQac47LofvVSK3ZfHXVr9aZNZQU IDDUpT6IzOh52qCtdGs\/D0FMFS9E6+jCQdHzVOYeb3WRecjOMMKG9Si4X5R0Sw4ghU2YLYNchzHo ispnW0qELqWp5DlDaNGZLYnEL9t\/p78BwB\/uHFt70YE94mjdtuhPvAjJFVXDnwSqgB85HVshdQ55 NSTocXKONAWeNYWQpWLM2YIGfjzhlMhOpOav2IOC2Kk\/8RRdmPV8OGkVGzCVeYVe8KLyhxHnnntk DlerlFKaRMaM0HOun\/t6APjxJbe8qNHzoU21DgB44L6F+wPA5z\/9qzcCQFt7yyAAvO+013wVAL72 nS2PY7WKmfPu5v0C1lUGsMra4AMHhV7kHvCiUOfLhXorCGZqVYCi0fi7hTUKDLLZaxZwVnJsQoln wveR95R64hNpwx3P+HyPUdAul9+R9TTyFmU51BtdVLSghevReGGsRO5XBw4lQpfSVDJmhP7JpX8e I13OyQEHz74FAM74xNH\/CQB77jXz3m2aoY+3oSFL8ZZVdqxczhXFZzaqeVH7UTMFjBZv+hlKzu6q wzuPUlodr0StF5S93n+7KK97z85TSKgReqzWjDF\/Qow5imo4j1JKaQop\/MNYtGD1TgCwasWG7bbY AT+\/+yZ0rgaAqTwpbO9oGcQ2yF13uUR1d96BA4Hij\/qiN9BGily90VRY3X40xH2uP9tFxhwIe5Tr Ue+HXJYcfxxbLouWZxTjU6FZvyBkoNfFJT70YPRA8LyUUkoppZRSSinlOZRCDfCaK+96KwD85Y+P HLn5\/be971UXAsBL95l117YM+LXzr\/4yAKxeuWEaAMzebbuHAeD9Zxz+lefjha+\/+p43A8CqFW78 t7\/\/VVvMIVOvu5A+2tNm7ZqNkwDgyp\/d\/h4A2PeAnf4KAPsdtMtfno\/3KKWxlDp0KU0lhXbo+++e \/3Ign5+wtdVHD90qhF44b9UuAHDkQZ8\/B8g4HgcfuvscVnleEFoyEzxw78IDeCtAaIl3\/a2v\/O48 APjeBX+QYHGf37ye7DBfPe83XwWAUz9y1Pl8VCL0P1BKhC6lqWTMJ4WdXa0bAODGa+97IwAkSXo6 kI\/oXyTX\/eaef2P9OgDU60l1LO2eb1m0YPXOAHDJhXPOAYAPffSozzWqN2ly1woA+Mi5x30KKHXn 8SIlQpfSVDJmhH7NUXtdDQC\/\/ZXjOd\/xlyf+mY\/mjKX9dVfd\/RYAOOSf97gRyOJGv1BlwqQuiYf9 5X\/0XErJpEToUppKxozQRx2\/zy8B4FoirdhzMQpCP\/nYsj0B4Nh\/+tLeAPC+0529eTSEvvv2pw4B gIsv+MMnXTvHpz7wFbvesqV2p779e1cDwD4H7Pg3ADjlrCO\/OJb3u\/VmZ28\/75xffGrz+9dedfdb AeCUt128HwCc+4U3ngkAccV9C3zuE7\/8NgAc84b9fg4AJ7zpgJ806v\/huYteBgDfv+jmjwKZFSlJ HaP6RS+Zfh8AnMz5Ftn5kySNAeAKWmtu+O29bwKABfNWzwaA6TMnzAeAlx+y6x8B4IMfPuLLQBav W8tnP37FRQAwY9bEeQCwy+7THgaAC7583fkA0EKr1ifPe\/1HAWD\/g2ffunn7n\/\/wLycDWba0px5f \/qLN+zvstS+5FgDedfJh\/wOMIXLWM5QSoUtpKhkzQk+e6uI7H\/gKx3O+8dr73wgA9XpyOlD8lyeI 3tXdtg4AXnX4nr8by3grV6zfDgD++PsHjwOA4wuQT8sff\/\/gsQBQqUa1sdQXaW+vDgKBbgwA6Ohs Hdj8\/SvVuAYAGweGuzef3557zbynUb9\/nvPw6wDg3475xlUA0NnVtgEAjnvDfj\/bvP9fX3HnOwHg pOP+51YAuOfOp18DAPseuPNfAWBo00g7ALzzDRfeAAB3\/e3JQwHgoEN2uxkAjj9x\/58AwNNPrtgD AC76+o3\/AQDXX33vmwFg\/brBVwJAT29H\/+bzk2+hNr7\/vKdW7r75vPp5Itre2RpEnf3QO773GwD4 7MevOAEADuXv+vp\/PfAyAHjyseUvBoCvfe7qrwDAzTc8cDwA1GouPVaV6\/hsS4nQpTSVbLXXt+Tw vv3jj78aCKwdDWPeiXXjtcfufRUQnDSOKxHd8MnHlq0GMt301Ue+5LcA8OFPHPOfAPD5b7j6Tzy6 7MVb6k903cP3P+9iAGinb+VVcz6+HwBsN71v0eb1ly5e+x0AOO7QLz0IAN\/80rVyMnk4APzgu388 G8iQ+eQzX\/tFADj73OPOBYAfXhWOfzW97s\/50I9+DADf+OK1ErHqtEbzfWjuov0A4LSPve48ADjj nKM\/CwADG4Z6AKCru209APzmijvfAQCfOP3HJwDAmZ869t8B4NSzj3T9\/0zN4xd3vh0Azjntxz8C gJ\/94NZT+eiC5+J3LBG6lKaSrUboI4\/d50oAOP+Tv7wQyHQ0KIR+8P6F+wHAiUd8bXcA+PcvvemM f\/TLPp9y751PvwIAli3pnwVkiKqRWUQiTd184wMnAUBLS2UYAH5wpXt+y5yHjwaA3r6ONQBw6keO \/DwAnH1u4\/HF2vLmI\/\/7TCDg5DREaIlw9d4PveZrAHDGOe6+ILPIz3\/4l1MAoKvL3f\/AGYf\/FwCc enbBPN584I8B4IgDP3ceAPzqp7e\/l49KhC6llNFkqxF64uSulQDwvn+96CYA+P11978BAOr15DQg s3aI7jyRnIeDD93tJgCojSQtWzvmC1HE2iCy257bPzCWdq8+8qXXNLr\/1GPL9wSA2bQTF9mVtbx4 75l3A8DcexccCABLFq3ZAQCmz5wY5I2cPLV7GQB0drUObKm\/eU+u2B0ALP3jT337934LAB94y5YD rsy9Z0EvkLEUnyspEbqUppJtjm13DK0d4tGirR3X\/dqx6153wr6\/ADLk3jQ4sk0Iba3don91mrqQ Py\/Z\/iPPlx\/2FmVkOIy2KnbdrRWxluw986O9QGbHHqu0d4T24w3rh3ob1ROv\/dHmsdeMj04Asp26 u6e9fyzzeOVhe\/x+8+u\/ftPZ1ce604xVSoQupalkmxH6iGOcXVm4AGLtuOfOpzcCwFuP\/Z8dgOxE 7DNbyUnTPOuhTSMdW6q\/ZNHaHYDRkfz5klk7Tn5q8+vlS9fNGEu7v9POvGbVwBQASOrptQAwYwfH jVi8cM2OWzOPJYvC+pOzXDdbJfJ7HHHg5+YDQIW89q9f7PJQbq18\/eJ3bUuzUaVE6FKaSrYZoXv7 OtYCwMknfff3QBadtLW1MgQA02dOnA9suydHV0\/7us2vFy9cu0VkuvuOpw95NhZE7L8i9Xq6TZ41 e7zUseeq1XgEAG685t4T+WiL5oCvnue4D4sXrtkJAI44Zq9fA8A+++10OwBcc+VdJwEZW2\/v\/Xa8 o1E\/q1dumAoAr335+UcBwOzdt3sIACZN6V7xTNZnn\/12vB0Arvv1PW8BgPvumncQAOyzv5ufloGB oW4AOPoVX3gUAHbfc\/pcALj0ilOPeibzKJISoUtpKnnGEfyP+Zf9LgcyfvPll912MgC884OHfRMA brp72\/oVPrBYBy67+I9nAcAfrrv\/biBjt4l15XPn\/OICAGhlxtttlSnTepYC2cnZX\/\/06BEAcPON D9wGAPseuPNtALBqxZaNDVOn9S4FgK989jcXAMD\/\/r+bPgZkcUlkfWRHuORbcz4BAJdcOOdgADjr 08eeCwBR5LJcL5q\/+j+AzKfz7A\/84HIA+Ostj70fAF7GuCBiJz71Hd\/7DpBl+D3tY8438tpbP4Vn ImeRuyHnD2d\/4IeXA8Cf5zx8CgAc+MrZfwKAZUvXzQSAs973\/W8BwMrl67cHgA9\/4pjPAMClVzyj aRRKidClNJU8Y4Q+\/Oi9fgMALdSdR4brbQBwLK0bH\/vMtvUrHIJrrrzrgwDwmY9efjEAnP7uSwNe meioX\/jmSe8FgEu\/fdPHn8n7iF30Q+9wJ2A33fDACUB2IvbNS9\/zJgCYvbuL+DSanPnJY\/4DAGoj 9RYAuPTCm84BMkQWEW\/4d5\/y6q8DmafJKWe55zN3nPQ0ANxx2xNHA8CnP\/zT7wPAe9707YYsx55e 943z+W+85f1AtpM+U5m1k7Pe3HHbE68DgHPP+tmlAPCBt36nIc+9vaNlI5B5x7\/57a+45NmYR5GU CF1KU0mhzVb4vgvnu4hH+x+0y61A3uNBROynorO96vAXN\/yLlROnW+Y8dDQATJjoPERedoDLklUk 6\/oHJwDA3HscJyFNXT+i03bTKjL\/qZW7AkC1xSG35ixI3OvhoVo7MDrSio\/cKnIQdt9z+7kA0MET uHlPrdwNyOJ0jGZFWL60fwYAPDR30b4AkNTTCpBxLvR8i0ROIh9\/dOlLAODpJxx3RE78Djh4lz8D o5\/EyfwNI0DvuMuUJ8Yyvkit5uKrPEXf0Scfd5wT2SFewm+hCRO3fBL5bEmJ0KWUUkoppZRSSiml lFJKKf8fy\/8BX++xGIfCYSwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjYtMDQtMjFUMDY6NTg6MjMr MDA6MDBc+R5NAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI2LTA0LTIxVDA2OjU4OjIzKzAwOjAwLaSm 8QAAAABJRU5ErkJggg== \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Compiler-supported parallelization for multi-core architectures<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/tobias-werth\">Tobias Werth<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2011<br \/><strong>End date: <\/strong>31.12.2016<br \/><strong>Acronym: <\/strong>LBMMC<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Several issues significantly retard the development of quicker and more efficient computer architectures. Traditional technologies can no longer contribute to offer more hardware speed. Basic problems are the divergent ratio of the latencies of memory access and CPU speeds as well as the heat and waste of energy caused by increasing clock rates. Homogeneous and heterogeneous multi-core and many-core architectures were presented as a possible answer and offer enormous performance to the programmer. The multi-level cache hierarchy and decreased clock rates help avoid most of the above problems. Potentially, performance can increase even further by specialization of some hardware components. Current target architectures are GPUs with hundreds of arithmetic units and the Intel XeonPhi processor that provides 60 and more cores including hyper threading on a single board.<br \/><br \/>While data parallel problems can be relatively simple accelerated by using the new hardware architectures, the implementation of task parallel problems is our main research focus. The difficulty is often the irregularity of the resulting task tree and thus the different task run times. From the point of view of a programming systems research group, there are - among others - the following open questions: Which core executes which work packet in which order? When do you donate a work packet from one compute node to another? Which data belongs to a work packet, are multiple cores\/compute nodes allowed to access the data simultaneously? How do we have to merge data from multiple compute nodes? How can a compiler together with a runtime system create tasks and distribute work packets?<br \/><br \/>In 2011, we have implemented and extended the Cilk programming model for the heterogeneous CellBE architecture (one PowerPC core (PPU) with eight SPU \"coprocessors\"). The CellBE architecture offers an enormous computing potential on a single chip. To move a work packet in the heterogeneous architecture, we have extended the Cilk programming model by an extra keyword. A source to source transformation then creates code for both, the PPU and SPU cores. Furthermore, we have moved the data along with the work packets in the SPU local stores and used a garbage collection technique to free memory from remote SPUs later.<br \/><br \/>In 2012, we focused on graphic cards (GPUs) as a second target architecture. GPUs offer a lot more performance than ordinary CPUs, however achieving peak performance may be difficult. For data parallel problems, the performance can be achieved using Cuda (NVidia) or OpenCL (AMD) relatively easy. However, it is much more difficult to port task parallel problems with reasonable performance to the GPU, which is one of the goals on our roadmap. Thus, we design, implement and compare various load balancing algorithms. In 2012 we designed a first approach with hierarchical queues under the principle of work donation.<br \/><br \/>In 2013, while further developing the load balancing algorithms for the GPU, we also targeted our work towards the Intel XeonPhi processor. With its many-core architecture and large register sets (and thus the ability to issue vector instructions on multiple data), the XeonPhi processor is a new challenge for load balancing algorithms. In practice, we extended and adopted Cilk for the XeonPhi such that we can automatically merge functions during the source-to-source transformation. This increases the Intel compiler{'}s chances to automatically parallelize. We implemented several analyses that not only increase the number of candidate functions for merging but also avoid (or at least handle) divergence in those merged functions.<br \/><br \/>In 2014, we have extended our existing implementation for XeonPhi processors in a way that we can distribute the work over multiple XeonPhi processors. In contrast to the technique of work stealing that is used to distribute work over the many cores of a single XeonPhi, we use work donation to distribute the work to other XeonPhi processors. With a new source code annotation it is possible to mark the necessary data ranges for a work packet. These data ranges are then distributed along with the work packet and merged at synchronization points, which was the main challenge of the implementation. Furthermore, we have started to extend the clang compiler of the LLVM framework with support for Cilk in order to automatically generate CUDA code for execution on GPUs. Along with the generated CUDA code, we have designed a lightweight but general runtime system that manages execution and execution order of the work packets. We plan to implement analyses to avoid execution divergence as much as possible.<br \/><br \/>In 2015, we evaluated and compared multiple load balancing algorithms to execute Cilk programs on the GPU. Therefore, we implemented queuing algorithms for parallel access and improved the automated generation of the necessary CUDA code. The correct placement of Cilk keywords for synchronization is still a challenge for the programmer. Thus, we generate from plain, recursive C code multiple, \"plausible\" code variants including synchronisation statements. These code variants will then be executed speculatively and the result from the fastest, correct variant will be used for further computations. Furthermore, the size of the base case of the recursion is crucial for an optimal performance improvement. Consequently, we started to optimize the size of the base case using analysis during compile and run time and will replace recursive calls with function inlining and vectorisation.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"lok\" data-href=\"#lok\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lok-section\" id=\"lok\">LOK &#8211; Funkortung<\/button><\/h2><div id=\"lok-section\" class=\"accordion-body \" aria-labelledby=\"lok\" role=\"region\" name=\"lok\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/LOK_small_image.png\" alt=\"Funkortung\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Wireless Localization<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/thorsten-edelhaeusser\">Thorsten Edelh\u00e4u\u00dfer<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Christopher Mutschler<\/a><\/span><br \/><strong>Start date: <\/strong>01.05.2008<br \/><strong>End date: <\/strong>14.11.2013<br \/><strong>Funding source: <\/strong>Fraunhofer-Gesellschaft<\/p><h4>Abstract: <\/h4><p class=\"project-description\">Localization Systems (also known as Realtime Location Systems, or RTLS) become more and more popular in industry sectors such as logistics, automation and many more. These systems provide valueable information about whereabouts from objects at runtime. Therefore, processes can be traced, analyzed and optimized. Besides the research activities at the core of localization systems (like resilience and interference-free location technologies or methods for highly accurate positioning), there emerge algorithms and techniques to identify meaningful information for further processing steps. In this context, the aim of the wireless localization project is the research on automatic configuration methods for RTLSs as well as the generation of dynamic moving models and techniques for event processing on position streams at runtime. In 2009, we continued the development of our algorithms to estimate the receiving antenna's position (pose) of location systems. The algorithms estimate measuring points which allow a fast and accurate measurement pose. We applied an robot to execute the measurement automatically. The developed algorithm considers obstacles and the receiving characteristics of the location system and can sort out errors contained in the measurement data (e.g. multipath measurements). In 2010, models have been developed that can be used as dynamic moving models. Learning methods are applied to adapt the models at run-time. A formal language called TBL (Trajectory Behavior Language) was developed for describing trajectories. Additional algorithms can shrink the size of that description and hence compress the data size required to store trajectories. We are evaluating methods for learning the moving models online. These are evaluated in a study with respect to motion prediction. Moreover, it is being investigated whether events can be predicted by analyzing and learning event streams from the localisation system at runtime.<div><br \/><\/div><\/p><h3>External Partners: <\/h3><ul><li>Fraunhofer-Institut f\u00fcr Integrierte Schaltungen (IIS)<\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"mdcc\" data-href=\"#mdcc\" type=\"button\" aria-expanded=\"false\" aria-controls=\"mdcc-section\" id=\"mdcc\">MDCC &#8211; Modellgetriebene Komponentenkomposition<\/button><\/h2><div id=\"mdcc-section\" class=\"accordion-body \" aria-labelledby=\"mdcc\" role=\"region\" name=\"mdcc\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/MDCC_small_image.png\" alt=\"Modellgetriebene Komponentenkomposition\"><\/figure><\/td><td><div class=\"cris-projects\"><h3>Model Driven Component Composition<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philipp-janda\">Philipp Janda<\/a><\/span><br \/><strong>Start date: <\/strong>15.06.2007<br \/><strong>End date: <\/strong>31.12.2011<br \/><strong>Funding source: <\/strong>Industrie<\/p><h4>Abstract: <\/h4><p class=\"project-description\">This project is part of the INI.FAU collaboration between AUDI AG and the University of Erlangen-Nuremberg. It examines model-driven ways to integrate vehicle functions on electronic control units (ECUs). Moreover, the project develops supporting methods and tools for this task. The insights gained in the course of this project will be practically validated by integrating a damper control system into an AUTOSAR ECU. In the automotive industry it is common practice to develop in-car-software on a high level of abstraction and in a model-based way. To eliminate uncertainties concerning resource consumption and runtime it is necessary to test the developed software on the target hardware as early as possible. But due to cost and safety requirements the integration of the software into an ECU is very time-consuming and demands special expertise going beyond that of the function developer. AUTOSAR (AUTomotive Open Systen ARchitecture) is on the way to become a standard for the basic software on ECUs. But due to the novelty of this standard there are neither processes nor tools to support the integration of the developed in-car-software into an ECU. In 2008, we have examined the modeling expressiveness of AUTOSAR with respect to both its applicability and possible conflicts with existing standards and technologies that are currently in use at Audi. Furthermore, the automatic generation of an AUTOSAR software architecture from a single damper control component has been implemented. Since 2009, a model-driven approach that supports the integration of software into an ECU is being implemented and integrated into the tool set used at Audi. In particular we are looking at the automatic configuration of the bus communication by means of a bus database and the automatic task scheduling among the application processes. The model-driven development, which in this case is based on the Eclipse Modeling Framework, will enable easier tayloring of the emerging prototype to changing requirements. In 2010, we exploited the information that is available in an AUTOSAR project to automatically configure local and remote communication between software components. We have also developed a genetic algorithm that uses dependency information to automatically generate task schedulings that minimize communcation latencies between cooperating software components. The existing prototype has been extended with the above-mentioned methods.<br \/><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"parcan\" data-href=\"#parcan\" type=\"button\" aria-expanded=\"false\" aria-controls=\"parcan-section\" id=\"parcan\">ParCAn &#8211; Parallele Code-Analyse auf einer GPU<\/button><\/h2><div id=\"parcan-section\" class=\"accordion-body \" aria-labelledby=\"parcan\" role=\"region\" name=\"parcan\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/ParCAn_small_image.png\" alt=\"Parallele Code-Analyse auf einer GPU\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH6gQUBzkuhu1ivAAAW5hJREFUeNrtfVeTXNd19eqc 0+SISDEnW5b0RPvF5Tf\/3q\/K5bJdsmUlixJFggRBIkye7unpnOP3AK6Ndc\/cHswMJoAiTtUUgEHf 2+eeu88+O6y9dmA6nU4BYDweYzgcYjwewx3hcBihUAiBQACTyQTj8RiTyQSBQACRSAThcBg\/pTGd TtFsNvHkyRM0m03EYjHk83lks1lEo1GEQiFEo1EEAgH0ej10u10Mh0OEQiFkMhmk02kEg8GZ9x8M Bjg+Pka73QYAz\/0ikQhisRhCoRB6vR5qtRqGwyECgQAWFxeRy+UQCoXww2udOQKBwJmfdzKZoNls olgsot\/vY3d3F0+ePEGr1UI6ncbKygpWV1cRDAYxGo0wHo8RCAQQjUaRSCQQDocRi8WwvLyMdDp9 ru8+75gpibO+9Con82Ma0+kUk8nEfgKBAEKhEEKhEILBoCkACu50On2pkLn318\/zXvodwWDQ8zn3 85f5rHxeKjP+TKdTz7x0PpzDeZ77VcdLBZoLGQgEPBP0W8Sf0lABDofDiEaj9uOuFQUhEAice724 \/vF43ASH72MymWA4HGI4HAJ4fspe1ftQIQ2FQojFYhiNRkgkEojH40gkEh4NPZ1Oz3RSXPY41Vag dlFN82a8GBQwmmThcBiRSATT6dSE19XkFxXoSCRiWl83y2g0MpNjMplcy3PTBBqPx4jFYojH44jF YjZXPud5T6XLGOc2fn\/qmnnWUEHj0Jf6Ki+Y9\/Y7JW9KcNw58YcbmH9e9zhVoGkbcmLuhH\/qQzXv aDTCaDTyrNdkMsFgMHilFzudTk847LSdh8Ohx5y5rvdCU2cwGKDf76Pb7aLb7QIAWq0Wms2mfTaR SCASiVz5nDhmCrTaYzxa+TCj0QiTycRzvPzUnEWuw2AwAAC0220Eg0GEw2GMx2P0+337nOsknWWo yTIYDFCtVgHA43B2Oh2LoASDQd8I1WUNPRm63S6q1Srq9TparZYJOACUSiVUq1WEQiEsLy8jmUwi Ho9f23uZKdDukXHaUfdTE2YOV0NTYw6HQ\/T7fdv0FMDzRjn4J21lOlqRSASBQMBOBSqfq9TO+r65 Ybvdrm2sdruN6XSKRqOBer2OcDiMTCZzpY6q3\/AINI16CqlGOvw+52c33vTggqsz5mdn6vypWc\/j +NJRi8VinmvdaIBGJs76Hbw2HA6fmLuudzAYRDQa9TinV\/E+OJ9oNIrpdIpEIoF0Oo3RaIRYLGaO 8HQ6RSQSMTMjkUhY5Oeq5uYOE2hOml9KYeBLUmFQT56myOswaFe2222MRiP0+320222zY6nNgOe2 HV9GIpFAPp83T\/1lgwmO+fl5pFIpADCh5d95r0gkYhEKJhheJtTBYBDJZNLCXuPxGL1ez+PLAEA0 GsXc3JznmqsS6Gg0imw2i+FwiI2NDYTDYbTbbZMTruvS0hKWlpYQi8UwNzeHhYUFZDIZiwBdtVB7 BJpai\/\/2E24V4tdRQ49GIxPoVquFWq2GTqeD8XhsZgEAZDIZJJNJxGIxZLNZpFIpxGKxsy\/cD0dq IpEwM0PNAmqkWCxmmT3+\/mWD11GguRHd6EE4HEYqlbIky1k2y0VGIBBAOBw2JQAAsVjMsqA0MwKB ALLZrK1rJpOxf\/MeVz08Au1n6+hRp\/ayG0Z6XQY1misEnLNu2vF4fOIzZx2auQsEAhiPxx5zTTOF 5zXRXFNP76cxbs3QXXWuQO9PbUtFR7MCgG3gaDTqiZ1fVx7j1EyhplZdodAFf10GtRedsvF4bMe\/ K7B8hos6VO46EMNBgaMA86VSi55VoHXt1X5Vn0BPgutQLnxemmn6\/dS+6XTaTLl4PO6bELrK4RHo WbvIfdmvmyDrGAwGqNVq6PV6HruVLyGdTmM6neLo6AiVSgXD4RCpVOrcAh0KhZBMJj3rMys8p+t6 1rWj5uXQ0JeL2fAzEy97qI8Qi8VsHd3Uvutsq1927QI9a7zOAqxDw0pcYKalGZGgYPhFEM47rvqI 1\/E6ON+ck7vZXieF9zeN+1RNoT\/6At5kPF99vE4K728WceQee679ep3H4JtxfeNvWkO7wwXOuE7W m\/HjH3+zAq3hO\/4beAHs6fV66PV6HpDPm\/HjH3\/TAk1EGACLdnS7XUynU9RqNTQaDUsGMHz3xgT5 cY+\/SYGmNh4MBuj1ehiNRhbpiMfjmE6nOD4+RrVaRTAYRC6XM03+Zvy4hwm0G8JykymzMonqXPmF bxQGyXHWBIM7zlIzp6Ag\/R4N6SlK8HUFWV1kvAzZ5r4jv8KByxzuez\/t\/fkl7i4yTKD7\/T46nQ4G g4EBe3g8K7BEg+msdWPaU+1QV1AUq5tKpQyDcNZBe5jf4V5LgHswGEShUEAmkzEAOkuUNH6aTCYx Pz+PUCiE+fl5xOPxH7VQTyYTVCoVNBoNW+tZwst\/MzmUzWYvHbPM4oZOp2P4GcXOq+CqYx6Px5HN Zi+M+wjzwQeDAVqtFtrtNvr9vgFOJpOJJSToUBH\/QIAOEWdaAa2aUq+hoPN+ZxlatcGqED8tT3xD Pp\/3VFXQnNDPZzIZm895gUmv45hMJqjX6zg8PDxRXKCxeDctPz8\/b4WulzkoU41Gw7Dh6qdo0Qhl A3gBGnslgebDUwCo2QaDgeEhFGPMciAWSar25lCBU+gmq1wuukgvq2kkTlk1AbOCOjg3otReh0zc qwwKULfbRb\/fPxFz19Q1f3fVER638GHWO6MsaSHDRYfHhtZjnfhX4LmJkEwmrUy90WhgMBh4dhgB NJFIxJOV4\/+zouGix7qrZdwXpIvIBSGg\/rQXRmDRRe3612noKRaPxz2ENvqu+JmrHtTKPFWpOPRd ciNSi7\/qOzCBHo\/HFhWYTCZIJpOYm5szsyKdTiMUCqHb7WJvbw+tVgvAC81AlpxcLneCm6LX6xn6 7VWqnvl3auFZAs15sVLCTXf73f\/HTtMwnU7R7\/fRbDYxGo2QSqWwsrJi74Kj3++jWq2i0WhcaVEt T3MKazQaNcXowmBbrZbHP3qVMTPKQaEhiQrB49TGKiTKoONWJvD3r7rz1IR4WdraFf4fuzlx1vXR sjMAVi2j60Sz77rnBLwoFPCbz2VFWl5qefvhHy4yVBtctlY47b4\/djPivOvgRyHm97nrpj7Quai\/ 5TJMvaqWvhDRjHKcEZ45a\/K6S2m3XbYTcpqz+FPCaMzScq7QDIdD9Ho9hMPh1yLt70akLsUpPMvQ 5ISLkfD7rP79tArss4xZxH\/usfZTEuBZw4+DkP9W4eHfr1ug\/d4hoyGvSnvgK9AM53Q6HbN5aAt3 u110Oh2LddJu5qT6\/b7H3qVjoBXX511AlweEG0Pvp\/f8qQs130W73bakEgffndZAXsfQ0jidjxYY azz6osNXoMfjMRqNhmV44vG4JUL6\/T7K5bKVODHsNZlMzFvVsht638wYsaD0vAvpavl+v38i0+Rm oH5qQ530VquF3d1dT4W+K+jXKdDj8RjNZhO9Xu\/EnLnJlDTnosNXoEejEZrNJur1OsbjsUUuODHS BMRiMSSTSdOW7XYbnU7nhB03Ho\/R7XZNK1yEskptdwC+OA0A11qQ+ToOnortdtvDMcf\/03VRgpir HhRod9Aa4Il\/aQKtITcVYq344GAiguXrs2LCni\/6wXTRsvuLDjd0N6s49SoF27U\/3WgQtZ+bnbuq BA5T2axwn5V103fgsj5d9lCZmkXyqfRmAF6ZYckEOhqNIpPJIBQKYTAYGEhE486cAI33SCRirRhO mwQTNTQLLsLwo5xufgLtEktetenR7\/dxdHRkR6jOi1lTpeji36kALluoCYNdXV01DLifttMsXTQa RT6fvxJ2UJqimUzGA17zE2imvgEYy9JFR5hfThuZoB0SAbo8d7rTiIPww3K4Qx8mHo+fK9nBl0Bh 4O90UfSzZ0m+vMqg3ff06VPUajUA8GwilvlTC5KfIhKJ2Au77HmFQiEsLi4inU6fKeKjc00kEpe+ RkRizs3NnWpiug4\/1+miw7aCNv9R4X2ZoJ73xVwUz6HYkJseTPcfHx\/j6OjIXgS1cCKRMLONf2dx wVVRywYCAaTTaaTT6QtdexXzoUxdpz9zgn3U79+XOaG\/JWeNzxKJRJBKpYx1U8032tKKOrvq+bxO 47rn9DdZgnXVQzEi4XAY6XQam5ubWFlZMTYlnnaNRgONRsNCZZlM5icfJ7\/K8UagX2Eo3jqdTmNu bg6pVMrTkoJO46sQQ74ZZx9vBPqShl99nuvwvBHkqx9vBPqShoKjlAT8jUa+3vF6hA1+5EM1MxMn sxIJb8bVjhvX0LNgnzfJPTfLPJhFy0BtrBBIJp80W6fXvgy7fBlZzlmb6TLW1C9BMitKdtZ1vYxx IwKtmst96fqQrxpkv8ggTRizbZ7F+qF6h3gJznM0GqFer1vIjsLNrCoBWyw27vV6CAaDnjYWLuv\/ Rfr7uZwqfgmN0+oxz\/P+lN9Eq\/3d6nJt49ztdn1rGfme9bqLjhsTaC7IYDBAu932LD65QJhtu86E ymg0Mpow1TqBQACJRMIyfRTYQCCAfr+P3d1dHBwcGJqQLy6fz6NQKCCZTCISiVjPwel0imazaf1f SFXG7OLS0tK5kxJq5iiUVwfT72dtkOQ32NaNkRvtXUN8iJLNc9NXq9UTxdKBQMB4WtgFwa2DPM+4 MYFmUaRiYd0H1Rz\/VQKNVBBI4zAYDDwaj5pNu8Xyd64DqJXOLnxgNBoZgQ87sFKgFTikPCYuyOm0 51CN6Vf25mcynXVdVfPzFFKqAgC+dAmEHXNdtbqbYU8V4ldiB5hes9cymUxQKpVQLpcxGAxOtFNQ CgSi+ai12L\/jsufTaDRQKpXQ6XQwGo2sSt1FB7KynRqa+G93CRXmqm3dhsOhaX+XZYpt0Kg9qdWp sTKZzKlCzerpXq\/n4VDxozyjBlWE3mnYGgoxqQZarRbq9bqZZeoUs2EQ8S6kvNBNxmfWJkTU6Llc DhsbGxfGl1y7hh6PxyiVSnj48CE6nQ6SySRyuZwBnHSxqRHC4TDy+bwJ9mXPp1Kp4Ouvv0axWAQA oz+gMFF76GZLpVJYX19HKpXyxbtw7s1mE81m09oJP3r0CN999x1GoxHm5ubs2VOplFFzkb6MYKx0 Om28KLMGBbparWI0GiEcDnuwOQrx7XQ6mEwm9n1uiwm\/oRv4+PgYxWIRnU4HoVDIUwDCLlj9fh8H Bwf4\/vvvUa1WEY1Gra+jNiR1zaONjQ1jc7rIuHaB5sKXSiW0Wi3jMSPcUkFSw+EQw+HQMLVXQY5C Z6VUKmF3d9fodUlHFYvFzHzg5\/kyMpkM5ufnfUkQ+dlAIIBut2tZw1KphKdPn9qzTadTxGIxTCYT 9Pt9w6Prv2nWvOw52Gh0NBpZkyTVzhQgRmIU\/\/6yd0beFlLGsc+3vhfdcN1uF8fHx9je3kaxWLTG TARqKc6l2+2i2WxiMpkglUq90nu+doF2Y7bc4RRoahbXk77qTBuPaGplmhY8Qmn\/kh7NhdWeVm2t \/1bnL5PJoFAoIB6Pexptcj6n3etlg2vJ004FaFZ7jvPcm\/eniURIsH6nxuMBWIUTP8P50P6+jETU jWhomg7j8RiZTAZzc3NIJBKeI512F7WbVoxfFdwRgBEYLi8veyChAEwzKQvUeeZDG3FlZQXT6RRv v\/027t27h2Qy6cGf63wu+iyK+FMtzXkrwct57x2JRMxUSSQSKBQKmJub87w3nqz8jmg0isXFRWur rPMJBAJma7+q0roRDc2dPR6PkUqlMDc3Z1Us3NWk8wVwrRm3cDiMQqGAjY0NT4EptUyz2bywJmEo cmFhAeFwGG+99Rbef\/99JJNJNBoN7O7uot1uX8oa0y53Y9k0G\/waKZ3n3gxD8v0tLi4iGAzahu\/3 +56wIxUFBVrLxNrttvEmXkmR7HUNPqweUxxa0e0XarrKOfHoVNZS\/h7AK81F703TJpFIeKrYL2v4 FUVoav6iz+CajHweTYr43Zufc9eVpsdlKK4b0dBn+b06Ity910lZdR0p95tK65M5iVGJyyo6oMbl KeBHwOj3zFryd63MSVc1XMfKTYuT+uAqqz38nDE\/bMVlCKHrGLs\/r\/IdfvN34ayXoSjctVAHkBEc 995+a6gRoctgIL0Rp9AdigXQ3\/kBeU5zwtxs2HkEQxfbJbXROZ715c+Kzii\/CLVZJBLxCIEfY6o+ +2lZPv1\/d8385uT3Gfd+Z3k+zZLO8jFcCjlqdP2833qd9s7ccSMmBykJuIPZtkAnSG+Z4Symnbvd 7ksFlXbcy2haGYpTnEYsFkOn08HR0ZGHWYjxcwoc8Jz32o9Yh4OxYWqd0WiEVquF4+NjBAIBS7DE 43G0Wi3s7++j2+0iHo9jZWUFhULBHFKlWPN7yXSmGPJkps5lTuK6aqKFiY1ZAk2tq8\/F1Hev17P2 eABQr9fR6XTQ7XaNnYnMWoeHh554OL\/74OAAzWYT\/X7f1rTT6ZxqV6u9rvmLGzE5NKQ0Ho\/x7Nmz E7QEmg7mBqBAnSbQXEBqudPATQwzBQIBLC4uWkq7WCxia2vrxOdZ8s8XVK1WPel7d0wmE6O5Isff wcEBHjx4gF6vhy+\/\/NIypBSq8XiM5eVl\/Mu\/\/AsKhYKZBfV6\/VS+Cr78eDxux3exWDwhDFwX9sUJ BoNot9snKLrcoVp0OBwaDoXZSSoPxunZHiMWiyGTyWA4HOI3v\/nNiaSJnlihUAjHx8c4PDy03\/sx kjJSxmBCPB5HLpd7Dhy7Usk9Reg4GVKIubYT08\/MZlFDz1p4ai++dH4H\/2+WwGk3r3Q6jXa7jePj YxwfH1uMlIvIrCbZifr9\/qkpY5ddic9aqVRMiJgt5DwpMJ1O58R9OJ\/TTA5GiyhQ7rqGw2FLbvD0 UhCYu6az1ppCq9U5+nk6eAzzDYdDlEol1Gq1E+YlU+eJRMI0NDtJEMrrPjNhAXxe3vNGTA4lYlGt ojYwY7bM\/dPc4EslaMl9qdQeJM8hrtjF2qrNR4HmC+\/1er6Ck06nkc\/nkUgkEAqF0Gq10Ol0PEee HoMaT2drBmrHUCiEdDrtazPOz88bQo1z5bUuxpiOFNeMcWd9TlfgSQ7E9eLJwHu4JpvrRwQCAcOW qEBz8OSjtiYRI+PWmrl0HUUCuBja8yPiVFORm4dree0CHQwGrS8gjxK\/YLoyJQ0GAxweHmJnZwfF YhGxWAwrKyuWXeTi8IivVCqYTCYoFApYXl724EVUu1I7hsNhrK+v24lx\/\/59EyYVaMWclMtl\/PnP f0a5XEY8Hsf8\/Dzy+by17iD9Vb1eN7uy1WohFovh3r17mE6n1k9RTQliO5LJJIrFoqf7LZF7nEO\/ 30e9XsdwOEQoFML6+rpRe7l2rz4HTbF+v49SqYSdnR3UajVjOiKGmd+jkFgA9jkle9SNEwqF0Gw2 8eDBAzx8+BAHBwcIh8NYWFiwND8BVwBwfHyMUqmEbreLRqOBr776ylLp+XweqVTK1p6Uco1GA7Va Df1+HwsLC4jFYs8TVtct0NR0tOH4El0bWo\/6druNYrGISqWC7e1tJJNJS51rYH88HqNer2Nvb88w utTQtFWpmdR8SafTBtfUOcyaP7VOsVjEs2fPLHVN55JzCQQCZmO2Wi2LaCwuLiIUCuHWrVtYWlry xIIDgYAh25rNpiH7MpnMCW1MgWbmb21tzdYGwImj3W8QbVgsFpFOpw2sRMeNmpKanHRxCwsLSKfT vo5kMBhErVbD9vY2BoMB6vU6UqkUNjY2sLi4iGQyiUKhgFwuZx3X2u22mUk7OztmMm5ublr7QH52 Op2iXq\/j4OAArVYLw+EQ9+7de95R4roFmi\/tPCE1N07LY5PaUFuE8ShWAJGCZvyIHDUefNb5uxkx 4oqpWXgSuI1H6cTQpMpms+ZkUqNyfWjfU+PTVFCn19WQftnW09ZVw3nc8Ip85He4fHm6Xn7vUsFH fI5cLmcCnc1mkU6nMR6P7aTl53SNE4mEdbrlycV1pNNIWx54TRIrZxEg2l\/0Zoklpj1FIdaegxQe YhooFMCLdLueBmeNXfNzvB\/npVqL4TNqWQqCmiQszyJ+WMOCajMS8E\/bnSaKksu7SanzrC1tbzLO spiAPxSWXq83Ew3ot0Y64vE4Njc38fbbb5syikajGA6HODw8BPDcftZIUjwex9raGm7fvm3PzmsY +qTz+aMUaMaKM5kMstkscrmcFbXSxFBMCBeA7J8UQG12dNbyJr85MZxImzCfzxvVF00Tt6iW82E4 i30d6TgC8MS6+exsGaxalenrV11bhYLSvHFL4V4Vix6NRrG8vIzbt297+lj2+30D89Ox5EmXSCSw sLCA9fV1s50BGN0z1+pHJ9AcGlumplLwkjvUm\/brdf2qAB01gTgfOmT6OcCbxdTP6\/NohlPnxeNf eaX97OOLaGd9DvfvlwnV1RI2OpP6HGomKuiJCkP9DH12N2P5oxFohqjY7bbdbpvwtFotCw2xipoP qwWcXFhGORjf1FjwWYemx5kUYdZQ+1azdJ+f5zMAz0uhSOLIRAVj0xoG4304f34H+3oTl3HeVh9q PlCgmK0DYDF0zVS+yvtrNpuoVCqeTU\/HttVqod1uW+0lY9etVguVSsUTU+\/1eqjX62g2m2i325aV BH4kGlqzRt1uF8FgEM1m014sm9GMx2O0Wi1PjJnkL+rY8AUxNKeV2WcZqiU1K0astCLH6IVrqtct No1Go+j1ehYJUVwwNwbrAPW72dOm2+1ayPE8Q3ErnDfj5sqjofHgs3Z9df9\/OByiUqng8PDQg4dm J4RarWb+hjakqlQqSCaTFrrkNeVyGbVaDfV6Hfl8\/scl0HyBLoaAISZqNv6fLqhqRjoRCqLhvRmF mGW+cLjJBJ4ATAPr7zg3FQrNPjIrxpCYamf3WGWK3f2dotoUkXiaOeVuSAVK6eZgKI3PzZCnrtes NXLL1LhBGo2GB8tBXhbmBTgfPg8VhZ4Qg8EAnU7Hd\/N7en27NXwvQ5fRYXmVnhhnHVrrx1gkj0Qu HKMHmUwGACwgr8+jzo0W45IEhf\/203Z0AieTicXFq9WqdWXtdrtWicO1JCUCtbRuhHq9bvdlupsO Ie1G2s7qKKrAstqaTEz1et02t58jp8B8puHL5TLK5bIBgpi55QZjdleTQAy3zXpXzWYTjUbDIjSp VArD4fCEQFPRsJ9PLpdDNpu1d8dTV4sCGN3J5XIIBoNYWFh4UfE0\/eFTPG4oJNz9p+FTWSPHdOZV jX6\/j\/39fXz33XfGTsTwFxeXmo91bkwt53K5E9XPfF4KF\/kj+AJbrZaRwXAwPc609e7uLv7t3\/4N +\/v7Nh\/NrHGT5XI5S9pQU1H7Eq\/iOkWpVAp37twxwBTxF25EQ80XpvqZ5aO2dTU1Q5mRSASdTgeP Hz\/GF198gb29PYufa\/yYEaF8Po+NjQ3bYAon4AbTTUMNX61WrRxLGwjpxuTpNhqNkEqlLPNHOXQz yQrzDQaDWFpawqeffop33nnnhYZWIhC1p04TaDeHf5WDRx61s9s9lour9W5ucyI3+kBtQ4eFzmW9 XjfKKv08EwKRSATVatU4N2adYjx6Kew8yqk5\/fjzWETsCvwsAJEKCIWIdqZLsQbA+r7E43G02200 Gg3U63XUajXf52DKfTQaIZvN2oZxseezBnlNgBchNr9BpZhIJIwWjE6qYni4rqlUCul0GtFoFLlc zuYVdifvmhtqB7l26XWWRClX2mm2obItKcRw1ue1lF7Rb3osangL8LZi5v9R+FSL+pEuqi3qB23l kc8sHYXbbejkDgqxnjxaB6mxeeDFqaaAfJpsmnBi+pv+ihsx4ty03tJdYxXE005yCjRNLSoD117n aUlFwZMR+MEpVDggYXtqRzIhQY2jGaPrGDRt7ty5g6WlpVM\/y2PTxcz6DfYuL5fL2Nrawvb2NiKR CFZXV7GysmLJBsZ\/qS0o+HwJhUIB7733Hu7du2eZQsZaqQEZnclkMpa5nJ+fN+AUoxnT6dSyiDQz lFlp1hgOh3j06BF2d3cNfTY\/P2+bTOnICJSinUvSyIWFBXzyySdWWMC1I4Hl3t6eJa94z2w2i7W1 NaytrSEYDBr0k5qd9yC2\/WU9KsPhsPkFLohMBV8p1kilEAwGvSYHQ1zcEdy1+iXqwV\/X4BFDZ+Us n+eDn7Z41ICspnjy5AnS6bRVizBbRdBSpVLxRBb4XZlMBu+++y5+9atfYWFhwTTIeDzGo0eP8PXX X+Pg4ADBYBDZbBaLi4uIx+O4c+cOlpeX7XilQKvdSwcxn8+f6nz3ej188803ODo6Qr\/fx9raGjY3 N63ihycFBa7b7VrYj7HcaDSKt956CxsbG\/a90WgUnU4HDx8+xIMHD8xBY8JDU9ThcBiVSsXMMKax aQbevn0b+XzeAwVwh2sNnFaxoj\/cZNZ4Uz1wjRzw\/+kZuwJ1XZr6qvoUKj1Wp9Mxm5VRBv7ws4yU aM9x8s+Rn4IOGp0cFUSaTYlEwgNO4gmp8XMqFPoOp2lopSemUtLiCIXi8jRw6\/nIdZfNZj3X8O8M 7WkxBa8jja5CCvSEI7BIUZZXMU5seXeHqCCp9iAw\/jpNj6sYaidz06r2UUQbXyhtVU3PusQtLncy mYQAeGxjDtejd+PJZwUDKTbDjUbou+MpS4F00YjAi0whn5fyoJtSN5pmZmlyqC\/mKsqrGDPPMK3H U82gSYm\/BYF2Bx05hpjUORoOhxYZYAKCZgnLiOjE8BpqXg2vkVxGy8yoMakBX4XondqT38PnAl6Y lr1ez+LVCk8lMEjr+VSg6QAT064Ux\/q89AWuknrCb7w0I+IX+XC55v7Whlsnx2NZU9oaG9UMpmo+ \/nsWJYN+j2p095Q879B7cxMpvkR9JLf8S80dLaFyHTPFgfAaFifws69K63WRMVOg1axwGeldhvir PkauczBD1mw2PagwJmC0GRB\/GDloNptGv0tNSPCRCr9eR82tDPeX4S8wGgV4YQAUTgq2CjfnS2pb RrwY2XE7FDBdz2tYodNqtcwPeS00tOv4aPMevlh1YH7sQzdjr9fD1taWhadUEFutFmq1mr1AhrxI 4M4UrkZCyuUyKpWK8TGTx4LlWEybE9NAovNCoWAhQHeOpz0Ds47NZhNbW1sewkSm4svlsifCwRBe sVjEgwcPUCqVjESRGpeUDazbJICIGVam8Y+OjlCtVhGJRHD79m3rn8K5XbXiszi0O9SeozbRejpi C65qB16kkuQs9wT8efS42KPRyEJfrjPMNaENSsRes9nE4eGhFXG68XxqaJohRLPVajVzLhVqSkoF v7m\/7NkAL4m7q+mZ2udpQC3b7XZRr9exu7uLZrOJ0WhkoCCXjoHPBMBAU\/w3UXDxeNz4ONQ8UZ\/E zThehmxY2E5LcdQjpoOi3i8zMy8LJc2aDLUDjzvtKKXOKOejFRUv+z7li+DLmkVUQpakVqtlsWNq IL4ojVxwboyrLi4uWskSq5MZ91U8BG1JZrW4OWgSUDGorc7UNUFEPNIVvsnoRCAQMOQezQgi2Nws HeekYH4KvauJ6RTyem4yFUySvPA04QZV55LPub+\/j3q9fqLQgu\/XrVHUCItGYzRpprIRiURemBxM nlBbxGIxEzQ3dJdIJIxO6rztwcbjMXZ2dvDkyRNb9Hq9bjFXlrczR888PesIXc2lg5qJDYlKpRL2 9vZQr9c9DiyRWrlcDuPxGPv7+0av0G63USqVUK1WAcATvsvlclhaWrKY8\/37920jULCJEPNziDRC pI4UhVOb9xD9R9zz\/v6+hf40tpvL5QwjUiwWzRavVCoolUqeKAbxLXNzc0a5oCn7TqeDp0+fmpAw hh6JRJDL5bC6umr3YMKEcsOSKILtKeys\/xuNRvjmm2+sQl3BXIxPU5kqgOzw8NDIaRgjD4fDyGaz hi1JpVJGI3FCoDUN6+Jy9cVQMM4r0JPJBAcHB\/jiiy+MQahYLJqNOTc3Z+i0lZUVrKysIJVKWbXw aQINwADjnU4HT548wddff439\/X1PXDcUCmF1ddV6AZIDrlAomDA9fvwYAMwGZJx2dXXVFvPOnTtI p9MnSrxclB5\/3+\/3jZVJzRdm1Vgwq+ve6\/VQLBbxxz\/+0ai1iHdIp9NYXl62sBkpDQaDAcrlMh48 eGD8csy0UpAXFxc96WkC62k\/M\/tHKG40GsXq6iqSySTy+bx1XdATgO+Xikt7sTQaDXz33Xcol8tW 8c4uAIVCwYqAVZYGgwEePXqE\/f19jMdj5PN5o31YXl7G4uKiKReeFCbQqimoLV9mu16k9kyzcqzm oFZSQmzFjYRCoRO9TWbdW00NBY27ICu\/e2ucWDHVpM5SFiZmB7PZ7EvXyC14VYoyXkuNxcgKIyFa KsZ7qPBofFuflxqS5o\/iq\/0iKDzGk8mkYZ3T6bTFmQmYUsKXWVk\/2tSk8WIBMJ9fgWM0t6jVeb2W xqlpQcVCk4jvmWaJR6BpI2qW57TBa85r0DebTezv76NWq2FjYwOfffaZaUEtb69Wq6hUKmg0GgYa etm9O50Odnd3zfteXFx8vnN\/OEJJGVWtVk2j0Uvv9XqIx+P4p3\/6J2MGcmkDKECZTAbr6+vWimEW 9FIjHormm06nVsntNvZpNpt49OiRkS1GIhH86le\/8lSx07YuFoumGAhpBYDFxUV8\/PHHdozTbKIg sAaSlens6PX+++8b+5KS1jAwMBgMkEgksLa2Zn1V3GcPBoMWvtvf38fe3h4ymQx+\/vOfezDeWixx cHCAcrls13ODffLJJ1YZz2cHgFqtZs87Go2sb80JgfYLnr9MqM8zGAttNBpotVqIRqP44IMPDNRD DUoPe29vD4FAwKo5XnbvwWBgtWa0yWlv8qicTCZ4+PChha9Y5tPpdBCNRvGzn\/0MH330keF4GQor lUrY3t62SoxcLmc8dLMEmtSwxD6zD2EwGMTy8jLm5ubM7lbnleYJbfs7d+5YdpE0AKVSyexm1iSy 5\/jGxgb+7u\/+znDG1MqtVgu7u7tmkytsdHFxET\/\/+c+xvr7uqWinHfzs2TPjqCMPiR8eWlPpjUYD xWIRoVAIm5ubeP\/99y0ErNGRg4MDI6jkd8fjcayvr+NnP\/uZAcR4zePHj1GpVNBqtRCPx+0U88Vy XFRYzzo0uRAIBOzoVkwAnRnagGdl8NdQmfaO5rFJ5h1tHadZuul0imQyifn5eYtIAC\/A824zSx7h swTapSpQj17bnKn25\/PSgaIjroQ51Lqa6OBz8zs0+qBz0tbLXFOaUaywUTOJMXKNbrgRMVeGtLyN ZJC0czUlPhgMPAUA3BBaYsaSLL2G70+zscANMfi7QBUF+OiiUZMHAgFrKHnWDePWGirXg1Y\/qMAq 6kxDbPx\/l9aLL0\/\/dIebTHAhj5yTmw7XLKwi7riJOC+ln9U0OwCP0HG4ZodGYzRUylPJfTaNFp32 7Focq+tKO9x9XmZaif12uTkU6MQIERNdZJ7y1dDXNdxF0j+BFzHRnZ0dAEChULAauas4OWZlsVzM goL8LyuppC9JMekam1cuPwoKw3PkrXgZHQO\/h9lKUiBotlczo9pz8CLcJS97Zn5Pp9MxBlIyY2kz Uv088Fy5NBoNHBwcYHt720Nf8VrQGMwSJLbhZfjqunEBfnNSDXrZz6\/mj5+j5Qc55ZF+1qaV7uY5 rVGPi4+\/zKHJO8WFxOPxEwk2v0GuEnJ003y9EYFWSGW73Ua5XPY4LtPpFMfHx0au4jJ9nnXwoZUK lvZprVYzLIZW4JC4plwunwAnsZTKr03CWYamzzW7F4lEPLwcyqbJje22vxiPx6hWq3Za8PkoKP1+ 365RAWLChsKsP71eD7VaDel02jJ8\/L9Go3Emet7T3nm9XkepVPLwSjOxpixQ2hy0Vqvh6OgIiUTC riF4zO\/UuBEbmkybNCl+97vfGZMoR6vVMn5hhmrOA24hmIgCTdssk8lYlOPJkyfo9XrmNIZCIfR6 PXz\/\/ffGmK8mB18IQ15nCWu6GpXPToeRuGrahNxsigWpVCr44osvPNGB8XiMg4MD7O3todFoWFfe RCKB8XhshOwMu+m6HhwcWMdXJj2GwyH29\/fx17\/+1RIZxHwAsAyhRn7OM1qtFh48eIBqtepZ1+Fw aCVqjEzV63UDwX311Vc4ODjwKBdGOfjcOm5UQ1MjbG1tnSDPpkMIvAjj8Mh3w4vuAvOoIrEJS6sY Gx2Px4YK6\/f7VoDKtP\/R0ZFFC\/T+PFHc+LIb5VCHU+G2ShvGSAudTWpIZVviWnU6HQtfKs6hXC5b uHEymdhxDcCucc2Ufr9vzPd8Bpo5zBQyUUGKNab9V1dXzabVKJX77BpF4RgMBtjf37cWHhxuFyz+ kNvu8PAQ9Xrdg+EZj8c4Pj42rIre70abBhFowmNWF14ZhJhIYPbItem4iFo1TXwBi1W1Ro74AUI9 Fa+hJC3aa4QLqdQHjPvqS2VUgp48zQEKj4aZGH6iGaShNPdF+RFOas0hsTWMInBd3UiF9lLhfPl7 trXTZAwViHI6K5TWVSpcZ5oQGpmgQ60bU6ufXDoE10Tjd7hRE81+3ljToGw2i36\/b4gspj4VF8Ey KKZhSXXlshMxvMOXrriPVCplzdH5QhjXXV1dNUGjXUnblhpaEV4uFdl3332HUqlkL0YZkUgaruEp QjQJoOdzu44PC1xZaEtfQMOQHGSumk6nHgqtYDBoxQLclBQKkh9qHSUrw8laxJOC0IR0Ov28h8kP mO7vv\/\/eWt8ptofM\/O12G0dHRxZuZTaWz6tk6pPJxOadTqc9yDu3\/EufJ5vNYjKZIJ\/P2\/PcSNOg XC6HjY0N06DD4QjjceeHXRoyvACBQMzK9ft9C+NpgadqFQD48MMPTYPWarUTVLSBQMAwGsPhEFtb W\/jzn\/+Mw8NDdDodaz9GTU5qseXlZSwvLyOfz6PZbOL\/\/b\/\/Z8JJR5HPd+vWLQMQkeGH9jCbGjG1 zNNKe5wQYTgYDNBoNFCpVIxSi5osEong1q1bJgAMdVGDlstlj\/bjJiEALJFIYGlpCZubm8bgyVQy AI92ZxJoPB7j66+\/xq9\/\/WuUSiVPvDwWi+H+\/ftYXV21\/pPHx8e2\/u1224RST8toNGqbRSkzWKhA ng+NYzNTyTQ8ee5uxOQgZuP5C4jbCwkGX2TfmEjQYlLV5Gp26DHNI4+OE1O1aqKEQiHrAsBYrvZr AU4mEFxtNp0+J5GpVquejCNfCmm4lJidx6db08fPuRtfTwi+TPff3BBKJqN4YcW6uwTiPPkICeDR 7tcXkNcxstBut83k4NqwSIG+gPoZuoZ8Lv5dkyeKvZ\/FQKCJJjUXgRsyObS9RKEwh9u3b1sk4\/kD eckC3UwWXyaPUQq8jslkYqVMbjEvK7vZ6DEajXrSu3fv3sW7777ryRgqiz7JyenAUEuQnCaZTGJh YcGiJnz51HiEnC4sLBhwSl92t9s1x20ymSCdTuPjjz\/2gOEJpqfwKNIwEAggk8lgdXXV1sgVErM5 f0DYscsW0\/D6vmjLMt5LPDL9D8I\/FRbK6A0JG\/P5PD744AOsr6974ACqGBhZ0saghPjqRlAhd6Mt N9YamUUC6+tr+OUvf4FMJvvDRJ9\/ptfrYX9\/HwcHB75OAEkT3aoSljjxCGSxgDuoFcgExKhKOp3G O++8g7feessWlQvPbBbJHAnXzOfzuH\/\/Pt59910LP9J52traMgx0IBCw4z4ej+PWrVvGnMSoDys+ 6FASI\/7BBx\/YUUwhq9VqePLkidm6jHiEw2EsLS3hk08+MduSP91uF0dHRzYfouqy2awhAF3tTOrf ZrNptZBEIxYKBdy\/fx\/3799HKBSy2HilUjGBPj4+Ri6Xw9\/\/\/d\/jl7\/8pfET0nF9+PAhvvjiCxwd HVljUmLzNzc3MT8\/72koyihHuVw+wRJ7Y1EOHhnUJKSIAuCJICjug9fSZHGLC1Sj0ztXbgq\/QU3P IxKAodvcXiAM9yk7Eb8nn89jfX0d8\/PzHsoAFi+0Wi0Ds\/O4z2azmJubQzQa9fQcZMkSTZFYLIa1 tTULbdLkikQi2N\/f9xRjKJ\/zysqKFURwnYhyVKea7wLAibg150E7lpEVMuoXCgWsrq7i3r17pkWJ gqNjSod2ZWXFumDxtCKqUDlQOJ9oNIr5+Xmsr697riEQi4ypmlm90T6Femz4MVMqw4\/iFNzjxo+d 57xDayh1ju6c+Vn+TrETfjaf3tu9jx7\/bh2nPh\/vpfBazbSRNEa58XiNO283FHZa6nvWGvm9RzdG 7gcRULNKf6dz4kbxe24tOtFcBkFWwA0JtLsw\/J2rbRkPHo\/H5mH7XafEL6\/Sfsyv1MwPOHXWZ\/NL tsy6RpMvfiQ+fn+nmcHiBC021s\/p77iudFoVcfeqoC+uv+JEXrY+WjBMPLpuAr\/11IxrvV5HIpGY jYe+yaETdxc+lUrNXCDtVXcZQBq\/DafzO23e53lO9++ngZP0s1qi1Gw2PQ6Vi3uhoPKZKMRkzKdT eRnr5QKf3Gyh+9z8IVFPp9Mx3+q0NVb4BP0eOtA3JtAUWj6MZnum06k5Oi422O0yoDRcukjn1TZq 8nCxtK8HnTQ3lc0\/Gc0gSyfwop84Q4q0fbVekP9PTDPr8JjR4zVsssnfMUTGz9Le1mvcrBzXVcNy Z0Xo6RppPR8Rb4QpEPClDYfo5HY6Hev65QqmZlPVXCFuRs0p14e5UadwOoUVUDabLezt7eG3v\/2t eeN6nFYqFQPx8HcUdGU2UlyBtqJ4GWM8hzYkGg6H+OKLL6ycX4dWahMX0m63cXh4iD\/96U84ODhA IpHwMHBy0Un03el0rLVZp9PBzs7OCXASr2f5VL1ex\/\/8z\/+csFOr1SpKpZKZZYwVh0IhlEol\/PrX v\/ZgOVSrUyufZX0Yx2YGsdls4vHjx9bw\/tmzZ\/jLX\/4CAAYy6nQ6KJfLmE6nyOfzGI\/H+M1vfoO9 vb0TDYCePXuG7e1tNJtNJBIJqwzqdrv48ssv8c0333ieQYFnWhxyY\/DR4XCEXu8F0EdbGvs5WVop QntZq4Tdim3GMU9j7+fQ6mPGjZ88eeKbXGB4iwQ1TCJwTqydo\/YFgIWFBSwtLVm7Ydb+sW6SoTh1 gBmdoSbrdrvY3d31mCIKvdQOWTzpGo0Gjo6OThz5WpKmyaLTBJvJHA0vFotFPHv2DJFIBAcHBxbu IzyVJ9l0OrXU\/LfffmsgK7WHaTZRYVFbs4DWD9mozK1Kd3YDiRVYGXy\/P0A8HvNoUo0QKNiGAX+i tfQa18zgNRQ0vjwXcx0MBi2enEgkkM\/nrSMTNYEKNOPaJFDRheSpQw9cM5qa5aPwMlbtgti17pCo NWpFZTHid2orPo0qsDhC09fUtEw38\/gmT5\/7HvhDxJ\/ilRVkxQ663GSK51YTiHgZN1qjzalokvHZ aNIoMIxzdJMsNyLQoVAIa2ur+PTTT812jkZPckWo9lCv9vj42LJJyl9NLT4cDvHkyRMTJKXvYls2 QkGV\/\/jWrVtYWVkxe9hPQzMLGAqFsL+\/b4QxBO8Q86FZrfn5eSwsLCCdTtv3E66qCD+Np\/b7fWvt oLBTFv5SOyn8k9eRMkz55xQ7obQMbJf3pz\/9CY8fP7Y1UjAW17\/T6aBSqRi4ngkQckXzBGLGkb4R cdfKg0i8BhMsJPrh8\/E5+C5oPzPDzLn5nSrXLtDhcBjvvPMO7t6963E2OFyHLhB4XiD76NEj\/OEP f8D333+PcDiMxcVFEyAlGi+VSvjyyy89vURInLKwsICVlRUEg0HjdYjFYvjoo4\/wL\/\/yL5YdnMV9 TSElrdXTp0\/tZWWzWWsnR23PVDBr5HK5HO7fv4979+55nGC1iwOBAMrlMn7729\/iu+++M8eZWTpS mCWTSXMiqSmZklfnmCcdmxWplut2u\/j222\/x+eefYzgcGl8fwV4UWG42KoBSqWQYadJDEBzETTMY DIyagA1N6etwE+TzeQQCzyl4Y7GYwWnpVNIRJ2qQWc3TTKQbS337paNnDYJ+6NnTllMGHoLlGepj 80wec0yBUzs2Gg3UajWLYZIt8yxdcRkXVzNCK7jpQDHjpcAgAoL8MnIcbPvMQXNCfQW\/BI0f1YOa IX4VNDRNGP1Qc4rYcgV6aa9BPQHdCm0Apul1g2noUQl2FJTklyhTs1LNFXe8VnHoWYMCwyObHG0U TpYGDYdD09Q0BYhLJqEf2X4o+Nrc8qyhPhd5F41Gkc1mDZdLbay2s4aXzvs9yWQSq6ur1vxybm4O sVgM7XbbfACXWoF8FtxM+Xze6vLU\/lWHOB6PWxtjUp8x0UEsNx1Qno5sqUbCHDqefHYA5sfMz88b b2GhUEA2m7X5Ko6FYDDCfGn7p1Ip0+r0WW48bHdRgU6lUlhaWkKv10M6ncbbb79txxyP1m63ayxF 7XYbi4uLuHXrFubn5408ZnFxEQDw6NEjs3VzuZxHI75s8PtoU+fzeetTSFuSJ1Cj0TBaMr82v6cN Cubc3Bw+\/vhj04DUmsVi0Zw68lLwNNvY2MAvf\/lLCxdyY3U6HRwcHKBUKplg8LRZWVnBp59+avRm FMzBYICdnR2USiU7PVZWVoyYZm1tDevr6xa5YZkX4aX9fh\/z8\/P45S9\/iffff9\/sdHaoffLkiQG9 aMJQ09+6dcuKDrhJyBi7v79vDvyPTqBpd3FnE67Jl0LnghnFfr+PaDSK5eVlbG5umlZYXFzEeDw2 ulmi8s7bAkIBVqlUCsvLy7hz5w7y+bzHY2fsWXmizzIUqJPL5fDOO+94agb5HSRYp70JvKALfuut t2yDcbADAWnGlFgmk8lYE02NNql2HgwGnmqgQqGAtbU13Lp1C8FgEKVSyZxZQoJpwty6dQsffPCB J7FCkJEKLNlV4\/E4Njc3cevWLcN48BrSJnOtbhScdJHhHvMu45BmDvUYcj+vDsUs5+8sc+GfGg7U 8OJl83bw3vw3w1ikaJjFgqR2LH9PX8SP2VS\/R0OCrg2sYHs\/Dg3383wXDKnqpgdeIOh4simOm3PS axhyfC3ASa8y3MVlWphpWBcf62IA+HdNl1+EY0Pv7c5NWzhcRicoP+GgpmLrZQX6v+wa8o7QTHG5 TzQtzdAZP+v3\/H7r6tdt2HXyOKhxCbF1P+M+C08jgpNYqvbagZMuMjTf3263fRmW\/BaGAXyNHrzK 8EOQqUBfllBrMomNfWi3anGpXqOD11QqFTMFGJXR67iudL5Oa+vGPxmh0Ar200BW+h4YYnXbX\/t9 DxUGn52RLOA10dCnvWy1\/zQbRuoD2nWaZNCQkIablKBQU7Nu7Ps0AVR+EDV1ePwx2sLvUSoB9\/5+ 30Gh0GencPF3BCdpdEPrEhXQpMXD1Lo8kfQ6Pos25KQg80\/NtKomJsgKgJk\/mvDhNQoHVqDRab0c ua7uyaEb7EYzhXxBSnXlt5PVLlWCFrL5fPXVV+Yo8CWxQpqO0HQ6tUput5ENQTTRaPQE2z8BUO6c lKSbsW562Q8ePEClUjFwEmO1mtlj24dqtWr9vd1jORAInOiOdXR0ZKVoKrBHR0fWfoPE5YyAHBwc 4L\/+679OxNXZHUtLy2hP7+3t4fe\/\/731nqHC4OZg9IZOIvDcKS0Wi3jy5AmA504nT0uCsHK5HADg r3\/9q5VmKThpd3fXTCCaEtPp86qlv\/zlL3j48KGHzGcymRhBJat\/LPZ9UwKthZ2uDasZLi2Parfb xu3w7NkzK9FXutVms2mEKaPRCDs7O55GmLS1WC2dzWYNp8Bji31B3NQ3sRwA7Ljjz\/HxMb788ssT DtidO3dw7949LC4uIhQKodvtolqtelLXrgangCp70O9+9zvLnuk6ab0lEzbBYBB7e3v44osvTtjw 0WgU+XzeajJJ\/sIysf39fQ+tMSEEjGZEIhHU63Xs7e2ZzUuwEzWqnhqRSATz8\/MAgD\/84Q\/4\/e9\/ 72uLK76FuJXRaIQvv\/zSIiwcoVDIajPZleHGBNoF0lDQ+H96PLrE3FwkYh1YRMpkC\/D8KEyn00Yw qNhcAl2A52Q0+XzeNpiSJFL7uuAkQlSDweCJ0idtAKRAINZMKm5a6+3cKAMAD+ieHHNPnz61Gkt+ lgkmNTUojK1W6wRqkOQ9DOtp+ROfQ30Q\/j8jD+vr64a5YKZVn1eHC+bqdrsoFotG+sjPaBcsKiGm uvv9Pg4PD7G3t+dps0cziptSGQBuREMTDM9dqS\/JZdShoDCYz0A\/sQ1McHDRqc3JuN9qtcwGVCqq fD5vgKGFhQUcHx\/jm2++sXg2F5ChPhViAEagQhA7U9oKhCKGgp25ms0marUaisWiJ9nB52YsVvmS +R1LS0vW5UDL+jVsSAXAE4gbCYCtETcBKdIYxiOUYG5uzpPp499TqZSHvkEBTzTlFJuiJXQ8WXK5 nGVuXd4QFW6lqiANBU2qRCKBcDiM+fl5yxTrhroRDV2v13FwcOBhBeXElFRGbdFEIoEPP\/zQ03bO jYny\/noKaEmT2u60hweDAXZ3d\/Hll1+aoFFbcG5Mv6qJtL29bdjfZDKJubk5LCwsWNKBfBIMq7Fd Gn+CwSBWVlas6jsajVp7skajgSdPnmBvb89Cah9++KFlTEmRRiZRdQ7Jy8EMHk2ChYUFZDIZ0\/js LUN21l6vZ3QMNNmYph6NRjg+PsbW1pYpBZprfNbl5WWz14PB5z0Pt7e38eDBAxwdHSGTyeDdd9\/F 0tKSdcplF61qtWqUBIr4C4fDuH\/\/Pu7evWvft7S05MkKcy1vVKAVyE3BcbUOP0ctzJToy\/oUnncQ DsnOXOTOIH2XbhjtBMWyIQoSab\/IQL+0tORpuEMAEGvnNOFD\/Aftc5olLGtKpVJGlZXNZo0KoVqt Go5ZW8DxWC4UCqZBSRXR7\/dRKpXs5ONpSMFgNjYWi9kmUFJ1bazJcB97BSphTiwWs03McBw3PuEC LAqgswy8SITxPpomn5ubw9raGoLBII6Pj01Z3XiUA\/D2RVQ7SDNJSnZ4XYPHa6FQ8PTjI4BGQ07U IuTYmJ+fN8JEcmgw6sCTgRBIAoYINNIMna4RhYOfY9UMG9\/7QSkVA0KqLM6LpoKyF7EaJZFIIJfL 2XWEnBJGwHfmmiLZbNbAWHTA3Woh7ZxF1qxUKmV82ADMAdUqolwuZyApPgMAWys3eXVjRDOcOHc4 DX3aq7TrdFyFYLsbJhqNYmVlBbdv3\/Y0mpxOp+aI0vkj+q9QKGBzcxPvvfeeOWns2kSGIr5oCk08 Hsft27dx9+5dg2wqLzSdLYa93n77bcMn0wGmoLjJFEYl3nnnHRNiApBarZbZ8oSLskRqfn4e9+7d M1OFm6Hb7Rr2g84eT5W5uTlsbGzg7t27hjNnrFl7pJApiuAk4mDoYAYCAU\/bZH5mc3PTMNrcdOyx ArzAWDPacyPcdurEKDO86y27BCz6oq9iUOtqiIpz1lgsF4\/CRTtyc3MTc3NzdoyORiOrsKDNT9x1 MpnE8vIy1tfXkUgkzB52qRq4OTY2NswpZCiTXaPcYmD6AZubm3ZSKFkLhZu2O58jk8nYnPQdsZ82 3w8Zr7iZFxYWsLy8bGvD00w3WyQSwdLSEm7fvu3pAkC0H4UTgBB5Pm+BTKZaygQ3IhNnN6qh3diu Arxd4XU\/fx1DbUOXCozaxo8NiNqDThSF3nVW1cNXYnZGVfxMLNrZiUTCk6lzey3yO\/kMvEbvq1lB \/TzfA4WJ3+GnPPSEVRZQ3sNv6Bq5ZDJaBM3f02+h2cc4tzr27rMDN2hD+1Uj6IvXKIVqxcvWzu6p oAAb\/r+mu5UTRBvvuIkizV7qy+O9XV4Jjeq4iSaGwFiipPQN7O9Hp8pvHVVY6ASTVFFxEHodoyF0 6jTRxLi9FgpoqprhPbf5kZqRbjU\/Q6IsxaIJqmuk604Yw2uBtpsFSXR\/x8nziL1KG1rLeiiQ1GjU 1Cp0uqgK3FdEGwtF1S7mvWmS6OZ176ebgC\/PzcrVajWz7YkjdqvhOScCeiqVCg4ODswfUIHmdRqd Ybqez6hdzDQ9DsDaTHOTqTZVIkpGRPh7Jr3IBKtZYpUHCjA\/T8bVGwMnuRpWdz3\/5At26+bOI6T6 56yh+ADFS\/OF6RGt6Dw3s0fh6nQ6Hs4OzR5qxEZjxmTmdGkCOCduMtqk6gTRidRaQ01MkfJBQ6BM GvnV6hHHwgJjYjI0HKh1f9SY\/CwAT08Zbkq3d41GQbgxZkFGuUa6ifyoEjhuREOzKoEPxVSwDj4g WZD0CJol3C42xLWv3EE6A3r4fGnNZtNKtGjfAy96TM\/NzRkYnQxIX3\/9tRXdamcpvkCW95M+tl6v 409\/+hO2trZMKxF4xWdnKKzX6+H\/\/u\/\/PAD\/yWRiyQjGaxkDZ4z6P\/7jPzyJKApFp9OxSnSeIMPh EEdHR\/jv\/\/5v5HI50+YUNhYGx+NxoxngT71ex9OnTw1YxQ3RbDaRTqexsrKCeDyOR48eod1un+ho xdOC\/oQqlgcPHuDRo0ce5CT5OiaTiYUMCX8NTK\/Z62Ioi3hcLjaHeuN0OuikKWZjlkC70E23ksMV 6NFohFqtZvVp2mNFge\/BYBD5fB7Ly8tIJBLY39\/Hf\/7nf+Lg4MADUeVnGatV5iS2NisWix6hB2Dx bEYhNjY2rJyr2WxiZ2fH0+JBCWy4VisrK1hYWAAAFItFfP\/993bS8PnT6TQ2NjawtraG6fQ50xHT 8spGqlDRSCSCxcVFy9iVSiUcHBwY3kUdNQqkpuW5AV38jmaB6Swyw8lq\/G+\/\/RYHBweeEO5zbpc1 rKysIJfL4c6dO\/jHf\/xH\/MM\/\/MPNaGi1S9VxcsuslDVJj9\/TBJpCrUeUcku7URYKlPI9sM84wUgU UlYjax9qZrmOj48N9klvngmjxcVFi2XTVGAhKTEtrLgm2SNPJ26Uw8NDc+C0VQW1n\/atIQhqa2vL TBo+7\/z8vDHiM0nCdSHkU7W+Rli00Q97NmpxBQBLl2v3Mpph7KtI84dx58XFRayurnrIgzincrmM Z8+eme3NsCHDnto0FbghG5rhIRr9wAsbWrkatCGMhpsoYO591SGjNqNAa3gQOBmQp5aIRCLWm0TN m2AwiMXFRczPzyOdTlt2i\/fOZrOGz6ZJxTZnwWDQ0wCem3Vubs4QfwQysecJ0+YMz\/F7Ne7KeDA3 Pm1t2qjLy8uewgAS4jDbxnspAczS0pKdTHxHnBvtYjrqVDQEPDH+TaCSAvhJiUwmfu1PSJAYBVkL MHK5HFZWVjx0wcyyMk+gfs2N9SnUY4j9PdziU1czK9TUr9xIu66qU0ahSCQS9jLr9bplm+bm5rC+ vo5sNovRaISlpaUT2GO+LCY3qDFIfHPr1i3DQPAla+CfdiVxH8RXsFeJbmY+K6Gu8XgcH374oX1G nSxqeD5\/pVIB8PzE+cUvfmEOqRay8vtoO9ORy2az+OCDDyy7qBRrRDhS+xMolUgkMDc3h\/n5eU89 4GAwwPHxMXZ2dtBsNpFKpXD79m1jlNLUOMuviCehmTSZTHD79m2sr6\/bszM6wutfi9Q3Na9GCWYJ PwWfDhW1g5uA4OdoAxMDzeOZ5C+8lvBMHq2kRlAIpt9gVTerPhguW11dxVtvvWUamaG1YrGI\/f19 699NDR6NRnH37l289dZb1i+Rphc3JXsl5nI53L1719OOLRQKoV6v49mzZ7Z5Fay0vLyMn\/3sZx4t y6aZlUoFtVrtRPgtkUjgvffew8rKiudkGgwG2Nvbw1dffeWh5mLq+969e3jrrbesSRArh2iWlEol LC4uYmFhAffv30cikTAHcDKZ4PDwEDs7O6ZglIV1fX3deFPoU9H255pq2PBGe6zov1\/2+bPcg\/9W c0LTvi6Flgb9FWf8Mgpefp7fSwFWUBIXXm1UrcRhyj+ZTJpAU6Pz7xpSZIRBM4Z6DGuSgoKox7+e dpybqxD0FOP3cz3UB+DGVl5tmkn8fu0dyN9xjVSgWdXiB7DSdeX9tATOL7P6WhTJvmy4IHCX03hW BpEtmOkwMcRDB6jZbNrnXibE7nxY8kQ459raGu7evWuAdAon2UBpf6ZSKcM9b2xsYHNzE4lEAp1O B0dHR55TSKte7t69axRdmpJnTaSLgclkMrh9+7bBbXk\/tqTjv0mUEwwGDZ65sbHh0dBMYnDNuVES iQTm5+exsbGBjY0NBINBlMtlyypqql7BSdrklJVFtP\/pyxDfs76+jrW1tRdhucCL\/ozlctnD5n8j 4KTLEGwN7QE4EWBXmCM1G+GQ6XTaFptmgfI8n3Uw6kG0Wj6ftwgCNdJoNDIqLkYuCJ0kk1M+nzc4 KcuTdD7UUoSm8rmJOHPho9xM8Xgc8\/PzyGQyJ+bukp1zHZLJJHK5nDFS6ffzORScROw0YbAKsaVv wXfE+P3Kyoppe+C5ecG2ewpO4vvJ5\/NGBcZrCE7iNa8FluMqh19JlzLxvEoWksPv1HAxwPwed04u a6dLAO73XeoQ8X6zqBdc0Bd\/RxPC76j2WyvgZGs4\/s6PkcpdS\/dZFJhFAdQolwK63NNYr3GBbJo4 +1EJtIv1UBuYi6KLyEQB\/4\/2K20wxk4V3HKeuSgnByvSeYwyItNqtTwNjZTpn8w\/zLwxseM2yWFF tm4iLaViBEUxI8PhEPV63RN6ZPkbC4fZUkOJ35n5Y9qZaXn2NNd1ZZaU+GrgOY1BvV5HvV43XDTX ny2ilduO1T+ch9aQMltJZii\/a5R+4kcn0CpMqv0U\/+GiuxgB4ALxiGJr3UAggIWFhXP3N1QwkQJ+ 6OXzu1joyjlSSJhqpr3YarXss8Qr8JloL7L1A4WqVCrh+PjYIgqaFWRzIsJHOarVKorFIsrlsoXL KHitVgvFYtEiG9Vq1QTt6OjINpmGCwOBAEqlkpkNjOjU63XrmwK8aAK1v7\/v8QF4b240RmKYd2Bh gV7DtavVaq8nc9JZBNjFSGuJlgtsUqHT5AnjxxQSot4UAnme+SjElcCbcDjsSeio9tfPU1NTmLSi 2oVd8v\/16FfOOVdLad2mmibT6dS0sqvduFaElDL0RmFpt9sexaEwWBdkpeAs1dAEMWmURetLtWEn Tz\/emzgWRSy6SMcbE2gXtTZrqF3pstD7hf1UY2vr3NFoZIB3xj65wxnPrVQqxlkxa37UFEyUMGLB OKnihCkkDIUpdRkTE8ViEQCsPpANNDl3Pke73cbe3p4HGkpwkgqdhu8Yy3Y7JZDaQZF\/nHOj0TDc BKGpuuEoOFq8PBqNPNrz6OjIGKWIpwaea9VyuYydnR1PWzf+nml0\/hBZyJNJk2jj8RjVavVEH5wb EWguNlt\/zXLItL5Qs1Z0GNTkUEFXPoiDgwOjGwDgcZKoRUhukslkcHx8jOl0avaZ+x2MG4fDYRwf H2NlZcUKXMlbwUVWfozl5WXMzc2hXq\/j+++\/x9OnT625kWYUKcTxeByLi4vIZrPo9\/uoVqv49ttv T6AG2daNWpBV8WSWevDgwQnfgKl1pqB7vZ5hSur1Oo6OjqyihNqSMW1GP2hO0DRgFIlRDm0sSj+l Xq\/jf\/\/3f\/HXv\/7VMx\/a1sqWlE6nbQM9ePDghKwEAgGLgrgx7BulMdBeg64w+6VrZ3U+0nurs0ab sFgs+p4GFJ5sNovDw0OLgDBW6wo0K64Z+2XPQnrmPCo5FwoQQ4VMg7NaREOPOn\/W6yWTSUynU6NY 4GZRE0I9fxa7TqdTNBoNbG1tGUqN17G9BTsZ6LHOrlVugUA4HMbCwoLF9LmRqOn9qn50jbn52KPQ 773RhKTpRVNwf38fR0dHHlkJhUJYWloyagfPel+3QAMv2I1I5+oWyPpl8yhcsxIgGp9WVs10Ou3h qqAA0o7kpqnX65YpnEwmnip0BUxRc3FR3VCbG05zS7XYxYrFtcywqU3OZAcHU+uEjCoqUHv4aT\/G TCaDO3fueNhYuQYkeVHODMZ2SWHgZlaJ\/Qbgab5EMh6Nt9MeZ1SDNAhkO3Jx5rStx+Oxdfhi1ffy 8jLS6bQ9O09pficTPDdK1siFZFU0M3VuxYVyv1HYXEZ6DtqOXFTemwAgDdID8Oz8SCSCcrmMarWK RCJhjEZMzDBSwNq64XCITCaDW7duWarbb1C7NhoNc4Y2NjYsBHbv3j2sr68bEymFgWQwzWbTMnjv v\/++JXK4CWq1Gp4+fWqlVDwhgsGgZdgI96SAaFvnbrcLAGajrqys4Oc\/\/znm5+c9cXXaso8fP8Zg MPCQI+ZyOWxubmJzcxPBYNAIeNrtNra3t\/HVV1\/h6OgI6XQan3zyCTY3N00I6c+USiXDoyuCkGSX hLHy+ZnppY1eKBQs0XIjJofbSFK1NAXXbTHBrNOstmuqhbSD7Pz8vKVrV1ZWsLm5CQBmC5MknUCX TCaDxcVFw1hks1mj561WqxYjVs6IWQKt4UGmdxcXF7G8vAwAeP\/99\/H2228bloPRlmq1is8\/\/9wy gZlMxj7H\/n6RSASHh4dWAMBnYFPMhYUFfPrpp6ZJCd1sNpvY3t7G7u6uOWI0iVZWVvDJJ59gY2PD MoiRSMT6Ge7u7lpmj\/dbWlrCe++9hw8++ADhcBiVSsXi1gDw+PFjAM\/9j7t37+LDDz801CLhsM+e PUMqlTKkoGJOyNxKO53X7O3tYXd315B8Jj\/XLdBqElBY1dnjcURt6yZPTrOh3WybZrGU4UfxCPTY adczKkAwO80UwFtuz5dEII\/fIJif6EJqGGr8TCZjlLDapowbhs+kPHJsH0dBi8Vidp2SJfJEIv6D mONwOIyjo6MTPUwIlmIaW\/HonU7HcxIpKCmVShnbErN5jAQRFQjAMCmFQsGeg1x7x8fHdoLw\/nwH dEZ5kvOaWq1mZqGaqjeOtlN7ysVnaNk7vfJZQCR3MO5MwaSdpWFAl4KAzh01s3rvwIvYLzNzZwk7 6qANS4Hm\/fls3FzEQ7jYiWw2a7WYnA8jBIwr09dguJDmiT47Nw9juIoAVI4NDUMyysB7MwRKLe76 L27jJCoV2sjq4A8GAwudEkTG+fAZtGUzAKuoZ7aU2dgbMTncPL0KtAoBTRM+gBt1eJkw8aUS7EKz hSeDNkl3oZosh+Jcld+ZZsp50+VKtqKhJ3bGdTmnucFYa8eiWWVnZfpcKcr47GROdcOdLJRlBTjw go1Vu\/xyg+gaqUD7CRrj2qoouK4EM\/E9UHkxBl8ul+0U5TxYxqXMSdwE2jToxjOFs5IjWsauRDMX qeV1PXUt\/dHogwvoV5COZhuVCOainbP8oK96Gqnm1HVxWwdz\/pqMcDOqej1PN16nxba6VpwPP8sN oGukpqHLeuTefxYAivfnc5M+QQXXpThz5+\/Hi3JjRDOqJRnx0JesNXgXHRrTjMVi5t2Px2Ps7Oxg f3\/fSq30JDg6OsKzZ89OUIEdHR15usLOokeYNWhTE\/yzv79vRzwLVEmlyxIvmhXb29tmxzKSs7u7 a44gKRaovVutFra3ty2cxnUlMQ3XRlPg9Xodu7u7HgoGnkrFYtGEhtqRWUCaEABweHhonNiVSsXW dTAYoFgsetaV9zo8PDSzifNisQBzCC6gib1lNCt7YwLt4hlqtZonHMfMGZ2d84DvORgy43HMeCm9 5G+\/\/RbPnj1Dv9+3mDB7jmxtbRkIXjcUWYGUF+I8YzQaoV6v4\/Dw0DJwdG547NJB5cZjBfpXX33l sTsnkwmKxSIODg5sTiyAJVXEl19+eaILVrfbNTAQw2vkAykWi3jw4IGRRvL33FQModJ2DQaDhqqr VqtWpU3AULFYNAKabrdrEQ9tmDocDrG1tWWFAZFIBM1m08wt8nbouxiPxxZmVczIjTmFXFy+GAq4 K\/TnFRgOfek8xjXTRO1DTctOW9QcJElxjzs9NRS\/O8skcn+nGBMCfhqNhnUSUI2jGUcKl9qqTBlT uyr2hHPlNTpop9PU0h9qXuIoqPm5jpr84XrSp6AQKgxWm3XydGJYkb\/nCa3PrQRBytKv68h36mJu bowfmkejal8XvO72+VANPmsojwTZeFj1zUJLRhhSqZSntzS1GfHKfqlphse42Ex+aNWEOpJMNCiC jHagdk\/VsJ1GKvQ+bh9CJkZcJ1vpdtXZZnaRWVSlu+XGYXcBnkIqyDof\/jBtznI2CprZtD\/kGMhf 4lbZaA2ltlfmd1Lp8Dk1UqPRGQvdTV\/FSL3A0IpdLqyLCNPP8uihWXAac9Jk8rx\/3bfffmuLR8SY W\/mgONput2sp2k6ng\/39fcNKKzdIoVDA0tKSNb9hppDakGYI56rNb1hv98c\/\/hGff\/75ibAfS6YY ZuRmo6bc2to68eL5QvlsyrnB5kTUbozzsklSoVCwHoi0xaloNEXOLG4ikUChUADwvGESzQk9oVih Trtdoah6emjSxg0MpFIpI+bRHoZMlDGqUigUjNSGzEm\/+MUvbo7GIJvN+pLt6cOplqR2PW0wFLa2 tuY50pV1R4WfO50NcZjNq1arePLkCabTqWEG+KJXVlaQSCQwmUzw7Nkze3HlctmYk9LpNBYWFhCN RlEoFAzDoJhnOocEQRHf4VZfEwi0s7NjWpprkc1mjQzcxWgMBgNjHGLIjOxMFGj6KRQszomUBuvr 69agKJlMWgcrUoBRexI9GQqFcO\/ePc\/moTPXbrextbWFarVqodFkMmmbgMkTpRKbTqfmoA8GA8uU MgxLThB29bqxTCE1gQvq0c8A3tCNXy8Rv0FtwqwTN5BfOIuVGaQD4GeoYQFY2b3el9wcrNpg2Eyz mmpr0oShVqb5o2TkBCppyb4i9hKJhOdawkCZ3HCJd5gdpAanQBM66rYAodLg91OAiavQXuDKO8jn 5b2IfWFjUV0XriuTLMRoaDzebfXGa5hyV4HmOqhsXLvJAeDMITmNQyqUdNZQO9DltvMbFLLHjx\/j t7\/9LXZ3dz0OiGYambHjy2IjSXI2z83NGbSUAqFwSJYtFYtFlEolY4xiJo9NcWKxmNGZaemWkjrS JnUJ1d1EhiaGKPT8fTQaRb\/fR7FYxNOnT1Gr1ZDJZLCxsWECxlODkQ2eQKzHZIqeG5GmBJ+hVCph e3sbjUYDiUQCt27dsmII\/jDyQodYmyop5BaAbSwmmyjQ6+vr+NWvfoWPP\/74ZkwOv45PswTuPIOA Fu317Zds4AiFQmg2m1bLd3h4iHw+j88++wwffPCBB08xHo9xdHSE\/f19i6+SpXR1dRUfffQRPvnk ExQKBXPqRqMRHj58iMPDQ+vLyGZB8XgcH330Ee7du2dMm\/ToK5UK\/vjHP6JcLhsI6rPPPrPjnxus WCzi888\/95CSs3\/5u+++i3\/+53+2TCFHs9nEs2fPsLOz44GdptNp3Lt3D\/\/6r\/9qvBzUup1OBw8f PsS\/\/\/u\/W1\/GlZUVw1ncvXsX9+7dQygUQrFYtA4BDMnu7Ozg7t27+Oyzz\/CLX\/zCzBA6qd999531 M9RAQCwWw8cff2zrpWG7nZ0d7O7uotFoeNpL3xiW4yqHgnReNhTdx0gFacNYVgXAIg1uVMDlzksm kx5eDiVQpwalc0rMSDKZtFS6FoTSaabJQO5nOtGMGHAo6ItgIG5uzpn\/p2FHrhVNDvJ\/KKUAIa58 Bpod5Owg6IuhPppNjGJMJhNrf6c9VobDoWFHXABaMBg0HhP6LVxXboqfBC\/HZQw\/za62sV\/4cNZJ 4HIoz\/o+Dev5cWzMSgUr9Rmvce+t8WuFAJzG46eb+aI5gbMMBWZx+GF73OfWhqA\/Suak6xx+xC+6 8AqWcot09Tot1qWW0s9yMO6rjXx4D9rAdKJ4opBq4Pj4+IRj6j6LPgMTR0QN+oGslOnV9UNm4XBm \/XvW+mqsuVar4fj42MPIr4Uf7jUkgSwWi2YWvRHoGWOW7e2n2fRz+qdqc9WKfvfWoge\/\/iEKBlLz gRXkzHrOOlH03wqE0oY\/fp\/jUa4UCfoZv+85zW+Z9TnmAtijRkvf3M9ybvQ5fpS8HNc5yBlXKpU8 oUXGp93mPkSK1Wo1I2NR5BnjusqbTG1SrVZRKpWMaIbVHrRD+fJINMPG9Jwnu1RxToqH6fV6ODo6 smJcfQbeX38YHSLYnjFqbhomwhRPTdu6UqmgVCoBeN4Ko16vo1armcMGwFp\/lEoljw1NugS\/dQVg lejEjPMaTcvrRnkj0M5gdTIATyyYldTVatVA5aThoidPIL46i\/T6qdV51NMBY9iPwkTTgQkXouC+ \/fZbSx4w6rK\/v49SqYRGo4HRaGSxXVaWP3r0yBM\/BmAda4lu44YYDAYol8v47rvvPOE5hlgJnGLK nWxUDC3yhCBzEivVmZ7v9XqG\/nN5OZhwoYYm9UE4HMb29raB1xT\/cXBw4AsQeyPQ8B7rRHKxs6sO 7Q2izD2055RUhvYs7WIOar1QKIS9vT0jVen3+2g0GubgUBvzHiRo4XxJNMNs43Q6NYEHYJk5P3AS hUefh0xJZNz3AyfRZ6CJwPtNpy8ozvb39+3+9Xrd0vWj0QjFYtHsYhVOEtRzPXnaEFpaqVRO+AFE C2q1P\/BGoO3YzOVymJ+fBwArAHXho0xKELtNmtdUKmWhJV5HoWMSgKaI8j9rnR\/wooMUQ4cMj9FB cgWalTX8bKFQsFg1S6Rc6C03LQFRzLj1+33DRvC7OE8WKZMnhELHOWvrYqbeNevX6\/UM\/+IKNDOa rMxnZQ7xIIxJ62DDJG4upr6BG8oUvk6DJfrMlinXmjuIT+DLJqWBot0AL5kky6BisRjG47GREirH BuDl4WNyiILK+jn3eNVwGr+L6XTa6ieO5B\/KpxjHJa5En0OrYpTfhPQGrVbLCCJdlJyS7eiaaDrb HfocLIyliaFsVBxMiXPT5HI53L59G2tra28EmvYfnTe2aCNQiYPAJwonowz8k5tA8RzBYBDz8\/NY XFw0zVWpVKzNsFvaRAeH9GEkWOl0Ooac06GEL4qJAJ4nXeik6mA1OBMhCg9wK1EoaOzYdfv2beMD YdWLCj4AD9yXSRfivXmNn3AqKEnbJrOAwC241fAe2a9SqdQbk0MLSgnacRvR8HPELLiZLW0qr+Et zfCx\/N5l1tS0rQuOymQyZrYozzTnwyNa26sxGsACAO3jrWAfZgNdEkktRwPgOTFIBcZNzMII7RdO waQ\/kU6njTqNp4CuK6vslVtDv5v39asgp8mmcIA3Av3DkclFoVBqmIifU5SXjtFoZILiFrfmcjm7 hkc3AE9WUM0G1s+RskBLkdwMompohdhqvNYtbqVwJpNJADCySvJoaONPzodkN0xnJ5NJY6bS4mHg RbMgrimjGsR285l0jViQ4TqwNMt4UvGaQCBgUFl+n\/kXP3WTg8MlSvfLnrnJDQ63JEuHAvxd9Nis JITScCkM1T2qFVaruAsAJzaAXqfgMI3jcn5+12ghBoXYNZU4dz\/4L30Bv0zmRdZVYaOebO0bgX4z \/pbG\/wfVwNvC64ojWAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNC0yMFQwNzo1Nzo0NiswMDow MEpbK\/QAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDQtMjBUMDc6NTc6NDYrMDA6MDA7BpNIAAAA AElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Parallel code analysis on a GPU<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Thorsten Bla\u00df<\/a><\/span><br \/><strong>Start date: <\/strong>01.07.2013<br \/><strong>End date: <\/strong>30.09.2020<br \/><strong>Acronym: <\/strong>ParCAn<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/ParCAn\/\">https:\/\/www2.cs.fau.de\/research\/ParCAn\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>In compiler construction there are analyses that propagate information along the edges of a graph and modify it, until a fix point is reached and the information no longer changes. In this project we built the ParCAn framework to accelerate such analyses by exploiting the massive parallelism of graphic cards.<\/p><p>In 2016, our research focus was on synchronization mechanisms for GPUs. Known synchronization methods for CPUs (e. g. a spin lock) cannot be used without further adjustment on GPUs since their special architectural properties easily lead to dead- and livelocks. Synchronization is required (even for predominantly dataparallel graph implementations) if data dependences occur dynamically. We have therefore developed a novel synchronization mechanism which solves two non-trivial problems related to GPUs: First, we prevent dead- and livelocks. Second, we retain as much parallelism as possible by allowing dataparallel threads to work on disjoint areas of a data structure concurrently. For example, think of threads that modify disjoint locations of a graph without affecting its structural integrity. In our approach, a programmer can provide rules that describe the conditions under which a parallel access is allowed. At runtime, we check these rules and determine how many threads can run in parallel.<\/p>We currently extend the above synchronisation mechanism with a scheduler that redistributes conflicting data access so that the SIMD execution on a GPU causes less serialization than without the re-ordering. Hence, the degree of parallelism grows. The underlying idea exploits that GPUs organize threads in hierarchical units. If the above synchronization mechanism detects a conflicting access in one of these units, it checks on the next smaller unit whether the conflict can also be found there. If this is not the case, the fewer threads in that unit can run in parallel. This is much better than serializing all threads in the enclosing unit. In this situation it is the scheduler\u2019s task to re-distribute the detected collisions across the units so that as many threads as possible can run in parallel. As the scheduling is performed at run-time it needs to be efficient, must itself run in parallel, and potentially make use of the dynamic thread creation capabilities of modern GPUs.<br \/><div><br \/><\/div><div>Graphs are fundamental data structures to represent relations between data (e.g., social networks, web link analysis). Graphs can have millions\/billions of vertices\/edges. GPUs can process graphs with 1000th of threads in parallel very efficiently. Graph Analyses use the Bulk Synchronous Parallel Model (BSP) which divides the analysis into three strictly separated phases: computation, communication and synchronization. The two latter ones require communications with the host system (CPU) that slow down execution. Our GPU-based compiler works after the BSP model too. Internally the code is represented as (control flow-) graph. This graph is transferred to the GPU and gets analyzed. Every code modification triggers this cycle. The Graph has thus to be generated and transferred to the GPU very fast. <br \/><\/div><div><br \/><\/div><div>Publications in the field of graph-analysis focus on optimizing the computation time. The end-to-end execution time (including communication and synchronization) is ignored but has a strong impact on the run-time. Our compiler considers every phase of the BSP. In 2017 we published a paper that significantly reduces the time for synchronization.<br \/>In addition, we focus on speeding up of the communication phase of the BSP model. Communication here means the transfer of the graph in both directions (GPU  Host). While the graph and data structure used has strong impact on the run-time behavior it also influences the computation phase. Since there is no publication in the literature that systematically investigates the impact of the data-structure on the end-to-end run-time of a GPU graph analysis, we implemented a number of benchmarks that use different attributes of graphs (e.g., access successor\/predecessor, random node access) and eight different graph data structures to represent graphs on the GPU. For the measurements we used a number of structurally different graphs. The results are likely to help developers in picking the right graph data structure for their GPU-problem.<br \/><\/div><div><br \/><\/div><div>In 2018 we completed our comparative study on the efficiency of graph data structures on GPUs. To show the effectiveness of our framework we integrated it into the LLVM compiler framework. We picked four LLVM analyses and parallelized them with ParCAn. Ample measurements show that our framework can accelerate LLVM\u2019s compilation process by up to 40%. A publication was accepted at the 28th International Conference on Compiler Construction and will receive the Best-Paper-Award.<br \/><\/div><div><br \/><\/div><div>In 2019, ParCAn was adjusted to the new execution model of NVIDIA\u2019s latest GPU architectures. With the introduction of the Volta architecture, threads can now achieve progress independently of the others. Since Volta every thread has its own program counter and call stack. Previously, a group of threads (called a warp) shared both a common program counter as well as a call stack. The threads either executed the same instruction or were idle (lock-step execution). Applications that are not adjusted to this execution model will compute wrong results. As threads now execute independently of each other, race conditions can occur within warps. Older lock-step fashioned execution models inserted synchronization points to prevent this implicitly. We inspected ParCAn\u2019s source code for code fragments susceptible to causing race conditions on new architectures. These fragments were adjusted to now execute properly on the latest NVIDIA architectures.<\/div><div><br \/><\/div><div>In 2020, we successfully completed this research project. We demonstrated that parallelizing the particularly cost-intensive data flow analyses can speed-up the compilation process of up to 31%. Thus, our research leads the way towards parallelized compilers that meet the requirements of today's software projects. The importance of this research topic was underlined by a \"Best Paper Award\" at the renowned \"Compiler Construction\" conference, see references.<\/div><p>The use of the GPU as the target architecture raised other research-related questions that were also published.<br \/><\/p><p>Some analyses store their information in a global data structure that can be modified by all threads simultaneously. Especially the high number of concurrent threads on a GPU demands for efficient synchronization. Thus, as part of the research project we implemented an efficient framework for establishing mutual exclusion, see the LNCS-paper in the references. Previous approaches inevitably resulted in deadlocks when the GPU is fully utilized. Moreover, by using a variant of the inspection-execution paradigm we further improved the efficiency of the framework.<\/p>Another research topic considered the efficiency of graph structures on GPUs. At its core, ParCAn implements a graph traversal algorithm. The program to be translated is converted into a graph, the control flow graph (CFG), on which the analyses are executed. Due to the large number of parallel accesses, the CFG represents a critical data structure for the performance of ParCAn. For this reason, we conducted an extensive study comparing the performance of graph data structures. We used the results to determine the best possible data structure to represent the CFG. We derived general criteria that allow to make assumptions about the performance of a data structure under certain conditions. Even outside of the context of ParCAN, developers can use these criteria, represented as a decision tree, to choose the most appropriate data structure for their static graph algorithms. The results of the study were presented at the GPGPU workshop, see references.<br \/><\/p><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Bla\u00df T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/218970823?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Which Graph Representation to Select for Static Graph-Algorithms on a CUDA-capable GPU<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">12th Workshop on General Purpose Processing Using GPUs<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Providence, RI<\/span><\/span>, <span itemprop=\"startDate\" content=\"2019-04-13\">13.04.2019<\/span> - <span itemprop=\"endDate\" content=\"2019-04-13\">13.04.2019<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">ACM (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 12th Workshop on General Purpose Processing Using GPUs<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">New York, NY, USA<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/3300053.3319416' target='blank' itemprop=\"sameAs\">10.1145\/3300053.3319416<\/a><br \/>URL: <a href='http:\/\/ieeetcca.org\/2018\/12\/16\/12th-workshop-on-general-purpose-processing-using-gpu-gpgpu-2019-asplos-2019\/' target='blank' itemprop=\"url\">http:\/\/ieeetcca.org\/2018\/12\/16\/12th-workshop-on-general-purpose-processing-using-gpu-gpgpu-2019-asplos-2019\/<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/218970823.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Bla\u00df T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/210729454?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">GPU-Accelerated Fixpoint Algorithms for Faster Compiler Analyses (Best Paper Award)<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">28th International Conference on Compiler Construction<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Washington, D.C.<\/span><\/span>, <span itemprop=\"startDate\" content=\"2019-02-16\">16.02.2019<\/span> - <span itemprop=\"endDate\" content=\"2019-02-17\">17.02.2019<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">ACM (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 28th International Conference on Compiler Construction<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">New York, NY, USA<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/3302516.3307352' target='blank' itemprop=\"sameAs\">10.1145\/3302516.3307352<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/cc19_parcan_blass.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/cc19_parcan_blass.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/210729454.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Bla\u00df T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Veldema R.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/106629644?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Efficient Inspected Critical Sections in Data-Parallel GPU Codes<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">30th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2017)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">College Station, TX<\/span><\/span>, <span itemprop=\"startDate\" content=\"2017-10-11\">11.10.2017<\/span> - <span itemprop=\"endDate\" content=\"2017-10-13\">13.10.2017<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Rauchwerger, Lawrence (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 30th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2017)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">Cham<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1007\/978-3-030-35225-7_15' target='blank' itemprop=\"sameAs\">10.1007\/978-3-030-35225-7_15<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/lcpc2017_blass.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/lcpc2017_blass.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/106629644.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/Thesis\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Bla\u00df T.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/288122395?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Ein datenparalleler Ansatz zur Beschleunigung von Datenflussanalysen mittels GPU<\/a><\/strong><\/span> (Dissertation, <span itemprop=\"datePublished\">2022<\/span>)<br \/>DOI: <a href='https:\/\/doi.org\/10.25593\/978-3-96147-494-3' target='blank' itemprop=\"sameAs\">10.25593\/978-3-96147-494-3<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/288122395.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"parsemis\" data-href=\"#parsemis\" type=\"button\" aria-expanded=\"false\" aria-controls=\"parsemis-section\" id=\"parsemis\">ParSeMiS &#8211; die Parallele und Sequenzielle Mining Suite<\/button><\/h2><div id=\"parsemis-section\" class=\"accordion-body \" aria-labelledby=\"parsemis\" role=\"region\" name=\"parsemis\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/ParSeMiS_small_image.png\" alt=\"ParSeMiS - die Parallele und Sequenzielle Mining Suite\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0EAYAAABtXdpxAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0T\/\/\/\/\/\/\/8JWPfcAAAA CXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH6gQVBTsPQ4qjawAAgABJREFUeNrtfXVAVFv79bNn GBi62yAkFAwQxEKxO7G7u9trd3c3drdiK9hKp6SEgHTHwMT+\/vCdvffMfa2r917e33fWXy7mzKk5 46z97LXXA8CBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcO \/1tA\/\/YJcODAApfiUlyqcZL8gQ984EsHySlSR+pIvVLt3z5PDv83gCVYgiW8C+QPOZADOcbt5BSZ I3NknmX81fdX4ApcoVZJtv\/Nzyfv375BHDhw4MDhv+OXFXRWjcxbmTN7PZDz+Pbxo+M6NQ0mG6iC CKQ\/sUMRCL71sup9wU3VWMrtpjuMth8RvFrO9RbqxejrXT1BNhDAKxB41iYXjFAbhPyb\/W13lMM3 EecTuywmaF6enJ8bd3rV6UNjveU8c1+WU+Z7vWI5t3O27+Ngkz5dzodNH24wInz\/HTk3DTabZ5Zw \/Oq\/fV2\/C9IkaaT0We00OX\/He2v89sqk03IuWyizkbZj3iAEMft+njdvDX8W5R67mt5oqnpwuJzz H\/Pf8BNSavzo+eAqXIWrBH3kPNIrwjB8z7J0OS9yLpIV2dPX\/\/T99cL5kEmp6xO3xm4TbnSSc42z GiEa+J0rOV4SxhjT60fWCCH04+f7p\/PHGOP3FnsIT8cR2K9RlJw\/KLwnuHdrPLmHD0c88PLd6Lqc fB6ZkjdSA7q\/5h9bfvDcHFtHzr2v9z85IHjbIzlXaaRyUeVdDHkd1UUIqf\/18+cUNAcOHDhUU\/yy gg63C2sWUnXks5z33tJ9e7fYcWZyLp0p9Za2\/4UDlEEZlDFcFVRBlVK1xmpD1XIoXxW09ty6p093 yfmgqCGxw9y6dScXrI\/0kb6oDnD4R\/By6ouez738yRhqrN9Iv+GfWhFhICoQqYkKmDcIQKCgwUQg AhGlugt13+imUb5z\/F6f\/SfpiKgNarukndPIK3KOtJAWavPXFcw\/DelEaR+pQ\/36cu4t65XR\/eE7 IzkPKQh6G9xE\/Sl5QwAAuNP3249ybO94T7Jbzu+JHhk96eJ6VM5VNqlcVLkTEfGj56NcY109bcWn 5U1Dxsn58cdHvQ5n1j31tfebzDWtbToGN5fzx1ue7XheNYMoTt1Pek31tu3VIsf7RQWtfL6wBBbC LPMgcv4LVyxa\/uS5jJz\/26ONDtvWbEG2nwvqEMXsMBnECmMUQ8XjNTri8sj1hvi6nB\/SOLbguNY8 cj2mtqZ3zLT8LckbrADAj74fIYTQ6DCnr10Pp6A5cODAoZrilxW01FfaUtq7PfkNb7bWTdfl0qP3 cp6VnhWSVfN3njJOBi\/2BJAZpnOwoBqs1lw4h\/L70Y+WPT2yeLGc23rV8ahTunHj772NHOQody3L Kjvarq+ct7fySmg19xEZYaVdSu+bJkWv5RxZAYCQ2QEf+MD\/xgGUFLXgtuCTqjnl6xdvct7sEq4t 502WNC1oduXeCDmv3aZ2XO2qbTHk+AiZIJTzFKoptu7dLNxo9eKFnO\/ZstNgR0XLll+7H110uj7p rlF6SM4PRB1xOppiQOaIkCpSRapU8X0Pyi6HUxonUo6fO0++P8vNl3r+MX9AyNfe3zG2s1uXbHo+ h9OO7T2R0rCUnE8dVAvV+jjv77p\/L\/s+f\/Vc5xgZUQ27OKTlQDyGzHlgR5mpTIO9YBAoPH8ikCrM oTWCHIUDxIEBS60MrYutOwD5H2990cYXWxIvkRGQS63GI13v7yVjRo2HGlGaui9Svnb+nILmwIED h2oKlV\/dAcpFOqhSRHx\/6DyvmJfAbNBK6Q1OSr9AxWCgoKA+AZ9VBH9CIRRCIaU4FITIjPJKXuXr Sub9F\/84H3R2xxRSg8YVuAIP27GKbCAEPghlg5gjZAMYtyXXg1ANhDKIiwCnYYwxnRUGEwAAqsCQ KkIIUYWCMU5SqKkhZP0rs9LVHff17j32NZzxQc7Tw9KHpfVC0eT6bcEcH2LewP+Piv4ahCBUeD4a 4VAcSql4iNisiqngzR84p9Gs\/AYlcr5X5yA6FPecKJbaUFujNpTdVjrKb1PQGOMCjHWLmT\/pQYAm 9XXnQR6Y5U0g20fj\/Ti0Aak581rxlvN6BsSR2xPAy+EnKxzCAUyZ431SHHHEp8dXxpUyx7sLZ2GW 8RDFs8z4YQUN+ZAP+YaH5TT6THROlFvbmfSGf\/vt\/Bf8F7wXjI+9A6qFan3U+4n7ifEzhe8PYucU cBVOwtjOjbwhFcxARI837uqokhHhQ8n1Y3WZkawL0Bq1FU4FK+aALSECbBnuh9pCOMNTgQeflO4Q 46pJ\/pSk8dGHbjFq6PDSoaoDyOsR6jHlsakP+pE\/PAQA4BQ0Bw4cOPzP4ZcVNBSDjgK3\/Kb+Beut NstsmS2MvI3uGDkwG1SCGMopxa\/xK\/ya8txHuQtyQilP3pOkncT+ij8BgERKX0ifH3m+is7SLo6B ZlDXhNTwkAtyQS0\/vVI8S6ow8B28Bc+sVYu8dA5WwmALyi1AHWTqhOM4\/Aw\/KyYKHMRgCWKqwL8H XI7LcbmaCfnDCTgAY2rTuYIqqIRiIVUAxgAAhTo\/un+QghQkDG8LfWBOFbleVBM5o86Zjcn5KPlg lWuYWIzFWMzfIudT2k2YP+5lG6ppK8AI7tDD8XR4Un5dyrvyusu6PysqknOnE87X6t+P9JXz8G6h H0LLXO7L+cOQBz3vj6crDaX6UoGUcX2gj0gb2VHeyL2Ru4uMuT8lkMOO4fAZvB53ZT7fX8VZ2ADd 9Oj+CkGPfblkXIlKyZPBe+U8YkO4Y1iZoK\/iTgLoHMl3avLKo48U7eSTSd60xp93MC88V7XjdnK9 FbgCV5z\/8ZVvV2A7bNAhCj\/II7Aq8KHBfaWtRn31\/cojICXgEpyNY4R0zH0fTsNiE\/r98YENsIW6 QLAvPomnMp8XH2qBLIG4VirriXxF99pclPPncc97+Icwro79YMG6hHR362vo6VI+sHxQ3OC1qaly rllDS0drIf3+PuDdq3tPnfqoo09GpUS+ZM6fDxgxcyJ1teuF1GX+v1MbpHZTeIGOkGA1NIBvgFPQ HDhw4FBN8esK+icxvWDW9Vmpx4jLo+9T73P98+d2JBsg4Cv9bKTBZ0pkBTJD2eKG5BdstuGM1tNK r5C1hTdLrt+7JqM15I8ZiV0TzjHv3yzrK9VmVhZVYhmWZY0nGzyDKIhqelNOx9iNfDn8CPUxxrnG 6sfQCh9AFWB4AD3ldKlwRfCqEno+nVO6tOyKFh1QvAuJ8DWII8T3xdPoSqaBa71je596PVXOs09l e2azvuHvjFhAqLiOk7cEufA6Ua53Qc9A7zmtwZ98fcLneOBLcr0YcCWWDic+0i8KLIsqkp2wHIZQ n2n4s3DDcF9tulLTAqTsUzZKY4zm2Iw44mRf3nrVkDWbetCZ8CbgDD5Z8YQfhxhYZ0pqdr6f71y\/ PWUvef\/Mk9OWTYnqUCXnBgcM+xj2osczl1mMsTCgK03z3fLC8mYMWSbn\/Z736d8LjhCXR5Wo6nnl WeaGSUAMVQwXfdNjAqi3gmsfoFDh3SBaJcoXMb7a9VmbA7f6nia+3P88+193GWkqrhyEMkXfuFhd \/FZM1\/FChEt4+3DXxuR5aqPeVr2dus9c+EHkPchtk5vkTsYkyTeSHn8cy9upsNGmb+zA6tv7z47J 0ssKnUtWSgzq11\/qHbaW1GSr3lWZVr6h2zc0djnkak0V9b7YA+6HpuqRmn6sVoxbzPbmD8n7HSoF lcwInDeKN4C3kPIjYcfv+TynK1ObTPcwaWoyP1\/OUT\/0CV0uv0X2l1b1rOp439Fy\/offgpJ5YefI CORy5qW+Fy9Rxd5I6uLo+io+kBzQBurBkKglCjdhBAyCr4BT0Bw4cOBQTfGPK2gwBitkW0UUFzJH dVEurUF+D18U3DuSLtWrX+\/0PuGniUvgpvD6u2tjqRFaNFNUR1RB35\/XLk8\/z9h2KzkdFWNsgt9T V0YrsAXb90SVupi49HLRpCt9njo+1n7UmCp42AIHEZM10GJ\/i9MtC\/0Gkj9cAB5UflRS0LALvgKB q6CHYB+tUbnUdn3WeC9d+XVs3JGFhzfRlWa\/ilRIhZRj1Oca7hahHf6OWm9M1E3iTJzXNJXzLtJu 67vvGkkUQ7ms3K+8nVM3cn8f5XXMNWCqzu7QBpg5hiHZw1KGlx7fKedoB1qPTsaREQLsgPVwks5r fKmBl5MaeNeU7n49Ev4gJxjz6sPYD3PMyP2J3hTdO9K9Fplz4O\/lh6noPSVCxEDLsNRwhxlRzFbm VttqS+m8\/VPpk4tPrJgbZPDtGup3oa7E3XE6SxEPhsA2\/oUf3l89nK3AA5ClAi+ALMiiNNg\/6F5g 3eYLyP38stJuETn+d2rQYUPC1oas60181OL9YiSeAFPhR5H87ZdNLEwzTRsfIWMAy9QavpYP\/xgp 5y\/m+Af5N6BzDlMWTVs2Y\/qLl2QHHcAarCvJrEraurS8Twc1Sc0d9oAV9ARyvXa37NbYv6PHb9Le o7Rp3jWa3fMlPfG80mmS8xEYCiwFg+8elPN17za+3BzUinx+UQuj8iMfvSRzNI08XZDruwDyPxBS QSqojWzoj94+TkFz4MCBQzXFP6+gfxUiEIGIuhhqnKmZXutKyT3y+hCoA22hA+H34T4co28va1+G yqi+BRO+CR850ZqW\/CBybMvforJpGNQjf5gGiPVhw1vIxDGUSo5JZZJyFTLri\/iIj\/jK+\/8GSqEU RJpr5VTjgmZNzXGpz8nrrQGAVdACnM5cLYAYWcKjb+y\/BmQoVK1lYK7gM7DBhTiM0tPeJw18EvsR DYz34k84YyKp0hZ8LrhXUAOIL1YSJL4nZmqGsBKaojWUWo603F+juYJrZj68\/frp\/sk1EoercFUR 8b1O0JvcZLL7WbLS7kz9UytObelBndZqwIORtTaQ\/amjOmhABMlimVo4qdGEZTlPyPYNQYjz6BwG AICSRv01vELGClVpdeipoNArvvP+gO+cTSVUMi5fCL4ZWCPwndM68oeeIIQ81bfKb\/oaAnUDEgIW 2JARJxSCPuT+xvthAMZQoyhSTjXPaepqJorpXUgHbXZzza2aDzSzme97B5gOQL8BJeNK+5T2Yb4f iyAdmDGLZbca92u0oSN2dBodRU+fXCMbnIajoA5fHVH89xEHmVKDq00ul17q\/ICMyBoauJi4bH9N Rmw\/mx\/NKWgOHDhwqKb4n1PQX9LoikiNMnZTzNAPr0WkxgTqoA4nmDfkQRbkU4p9ZD7Yh+Fi7Mj6 eL+k52kRBTvZZvyNMRpMzdkKlgHjs4UYGAXMSrbYiTG7Y8bQGjeuwDt+5hdT+fq2xmzevLGYdRIr wvy85SoLZp1YDf8ae2q+ZfavAmXQU0TqlrJWMldZExVyvfFZ8QPjIqliLx5flFt0kO4v3DWseegL WgMUj66CquuN6cosf5m9jKkx4y1YB+szJ7gd5mBmNWl6ZnpgmhOzEvMLzsEPAtkjVaRKZ8XxS3wL bz1NaoQ9T\/ee37u+lPpUBsAEaBdFhAjOxhhjY7Iybtq9yZMnLsikHTMw3ETGlFovsFG11aYK3khi tM6oS3lb+FE4Qgx0o7RUp7R+6Tx16pvtA0+BTXv8noJWSnfUdtN206br6KAksiSyJJLysLJQ15AV 9PmTiqR+0nWuSgranyhS\/Bl\/xp\/pCGKAiffk3gnUBQJzIRpGAam5agdpB2kHMcdvXNK4pDH8MJS\/ DxPXjfMY\/VhhjKoIIegpjPgEIAAB\/XxkblJjqZ0edcXogR4w6zozMjPGpNvS77dsg2yKrJtzVznn Lebt592lPvyfRQstz82t+j3Hcm40wKimkTCYuMRQws91XOEUNAcOHDhUU\/z9ClrvOz7dX0Tay0+H PlnSDi74BtjDLfo6mg6LWFepZpWmumYUsxKPBzzgyWge7BFYAlvqENdAWFBYdhhNHgBsBVL2itB4 nMw6U0OmBvkH5dUjNb9m55urt\/gbe+j1ze2X0T+Ouj7mT1m4YLFfe3tyfhpIA9Uo1iPnr7RSMa5z zOkPJutby3nHee2ut5kxh9T0yozLPpVRVzIUCAseFBynHWo012mFaB6nLhOVMJXRKql0e4mf5JqE uf8LAua+m1u5aJ+cv4h6fsx\/oxOx3TRJabLKo\/1lspZU1VstR83y1WZyPebIHJnTEQZqiXqieUxW ShWuwlW7aDaKClJBKjJawy7FGOMy1smuCAyY\/VZMdZ4eNNPsMtG1\/b0GGg08NFQPfgZM9kjFsopm 5W3Wn5HzyO0ROyM7Y5r3OJTd+r9AKQ+9oVGjZy5M9s2rRi\/7vmBctSV5JQElkymPfxzXOfYGo4gB AA74k3+KHapw1fUOJN0mwiOscVhDHplz4LnzavE607e6jHDt50o9FeDv5w\/+7L7T4O+FUlaI5nGt N1r3YsicA\/QBdTChX++YmzHSmMN0xLzKablo6eI7JNsjbntseqzoAHk+6wywK7Ab5kd8\/UgTWaLe TMcUpRGvWRuz1WaVWxopnOPXS\/zfBaegOXDgwKGa4u9X0FZQqOj8BDPMKFyMMcbWpiQdASGEkMvX u+hKH0vPSzfRX\/hZ9tNPTd1L18YjG8XtVX3VNqkx\/SMMJxotNOxBa5iIjypYl0V2p6wnWf2cL8t5 Rt10XjpTw0JpMBeuMQe4jWyhK6VBR4MaBL5xG0WubxfOxtm6ZLU\/MkEmyOTHfd\/fhS6UgaCS1Jj\/ o5gjv7Y50kAaSINuj0diV9kHurJMu5eOg87FOSS\/q2RZ8adixuddUVWhUpFBucle0+cmtej91Huj 38GA8Rlknv9clsGMH4K7BLkFNDUkK\/mGmQ1yHHCd3C5QT1H3UU+mvPE8Nye39bTGeCHg3MOzt24f l\/O+Ef1u9N+yiijwL66P8K+mtSEthBAqJzXrqecnTZown8kr4wFPQbaog\/qfvMy\/AOEK4Qv1R0vJ 985N5v7RPd+QpisOhf8kJH4FUsV8YqsB1jOsd1D+ocmHj9HMCCbPIfdV7hHm\/r8K6h2ozfQMVUKU c6Rq5DmaDleRX3G5Yh99vcaLGh9rDKa8pk3N0FrUUwHISym\/8gz8rfjyfaJpkoF3At4FuEUvJRsI YABkAllZCC2xFWaeR5\/K4zeOLaBpeT6vj\/OPDadDPpP1Jm1NvOn2Leu0+qN1G\/r\/U0CX95ZvIy9r yrnbbPcLHjmr+pPz64g8UZtcn796fZyC5sCBA4dqir9fQYeCGevc3DNl58Ed9cc2kfNzRqetTxsP ISuJvJf02tGjDzOLexbOYmaOv80tz7nNL9O825SM5A7J+iozyAZ2OJ2tCduvtku3Z3zC\/Gv8QhUr uhYeG2N7jAVEAzxxfDT1oXdjovBgMtyGZkCyIJrWatawGbPu663FG\/s31CUN4Vlhn0MH0jxgiY7k rSTO4jQooGgE\/EvAVTgJ5zXQI3\/oCk1xoJDmIWuCp0LfNXvQZmue8B4CcTLDwyADSVPIrHX9Vw12 NDhAFXym3me9jCU6zuT4MQDA+MaRleJaswqogArmLy8NXoS8OEzT9F76vFj6og0Nf\/PtcefMnbd0 RCV+LLYRj6Y1ckF7wTzBia\/3fPsTECCFPkM8QD8jY3ApLsWl1PWC3XEjbGep5FqhWSxIFdmzCvC7 UEqHUwlX0RFMSSNPZMMdDXc22kDv91O9Jy0f61EenBBUHDSkFVGMOBkn4k+2xAV19Ojh4QdN6P2D ffARNOnxGvPd4pvsyyazEugYL5E3nKmhDwIAMP2VtZc\/BVyFMcb0+ShXLXtWNjOKzBoJqlRVVBnf ttimqqTK7+v3EwLwTjZNM1sz2y6bcW1d+3Cl8HIhHfHfNL\/e9Nr0aeT1lVfW3Fin70bSYPAHXIqL htM0yLpIC+km\/HAeN6egOXDgwKGa4h\/3QSfFfzT\/GKHamOE7P7IS7c1\/eZMV8++bOB3cgSpmQJYQ wLwuQoZsja7l\/lYpredRBYVMUA0UlU+yOzDGLzGmWQVhsaFWIctcSQ0JagMPmFlr7+H9Ww18TTs6 hPcJjwrvTWtY2UlZ25hsPEi78knz04wWC0ABH+C3IROE0Jm6UnAFrsD3HMi8PlJH6qhLLO1iHgoC OO40UU4T7yRqJQb0IRqp5GJxo2Jm1p9fh\/+RX0i5xjTNdM1N1DeMNJAGWk5r2peKL7qdL3pIRkSP NB9o3htPG0ggKyj7qZV5AhAAOyPxGHKBcS343\/Nr99RYu4ucnzA6mnIk8yBVMBV4Kq7w+vH84yIo AnaGQAOq8EPm\/mKcjVWMv+qDlhRLbkiGePrJ+ZuCV2GvdD1JR59WKl4qXiqzv5pe9tPAwAOkThRt YxW3PW4No4iv4ik8gcfQjORPh3wOdglqRhUuPoe349M0bztwdYBngFUjOoY6DWEgBTJkcZ\/vsdaj mHbFjtH9MClat0m20ln9vnzt7yEbgO2ApFGsWVdz+WuSr9eiuGWTloJKkpbpl\/nU\/6k1kw9tCaDQ RR5AA7K\/cTw9RR+2tEIaI42mfK3eqiMrHtM0zBZvWoZ49pw2TnEns3748jgFzYEDBw7VFP9zKwn\/ rJgVuxqr6atNV6PJATCwYHD5kNc0LWtRwZKCpS+ZnnHJkAsRSaQGGHop9EyItgvxaaDFkIqKgcxb e3Rqipq9P+Ql547ejgvqPlhDeroEJwc1CtxCfZbBM4JmBf7RyU\/Ov6zFP21N9v89Rfcd+NrcSb+9 0o10RYtvG7syZgMt8o53Gz1xxAcgNeJxh0eJRkyi7w\/TDN0U+p7ZYQSMBsbXqvNEd6wuk\/6lX6U\/ zSCamSUHmMj8G3q27xXUO\/kO8c0c5R88efBdn6NyHjs9xj1GxKzcXI+aKCQca4O2YvqCEsQgVthe yXVxesGpKT6zmTzvW+NrTpjWUCk94v3X9y8DGdB1aLDl8MZTGwbS\/N9DKfuH7fOgHGQgY0dsFUtF eysYl8OCd4sGLvFjusjXht8LQzAEgzLiSmn81q2he0YAVWz1wB\/MaDx3sk9ySDKTd53dK8s+82rd U3IeWhSyMXiPIZkjgkEwB5hPu8lTjwCPVq+JLz2m7QeIft9kxW++qh8GqoEQ2zNUGUGVQVqBzU6T \/+ded3g58OV8enuqMquuVe1k3pCv9P\/L96D0PFZeq2xb2YXyC8fPnTzbqbOfnOMKXIHvc1kcHDhw 4PA\/j39eQVuCCrRheAxoAuvKNFLaXnmWVYlrWmhO1rxJ+fLhq3hrIh+RorZ1Kxtk0+0cdV5rgiZo Uh+sZKDEVeJqRxR1NIp8HtVG4zE5HXvjFGM9un+LQMsVlkK6sqiRmcsUl32JpMgaXBJ0L3ArWcgH wWVBGoGN6MqtvtAP+gMouTr+OpJ6fQz\/+JDhoMj\/hEdwTaknh0Chq2QaiNnsgmZezf1bzKOz9ip3 VdaqHAtjNe5EYBIk1PzVUoSWtEvxib6nR56pN5rk8y7cNW\/1nMcHSZXvzfzXl14XU9eD5KhkkmQk s3eJkmKWQiY4KnBjoEkpkFojZU6KNeWfJqYuS9HzUprZ+IaCVqoxZh3JWpPJZO9lGWdtzHz19bdD fyX+BArZ+\/mfLBDaNd4EIYR+wsWhDKXvg1M9Z736R4NIfqDaVjUfNdrPAyoHVQ6o9KL8boc78Xd6 LiMrFbL2ZJZnutPXjcYbaRkxCtp6j42Hrc8r2kOlCABgFuN7+GeBMU7CWKHrtzVCdI7ItdI1tPGD tWSMs6\/uQbUjXQ1Jh521u1YPWmnWm9TgUzen9EmuSXs64pfYFLOrCiqgQiEvpSmIFEZ8QSBgR\/Sv Rr6c+FyHzgnBU7gPEZqMMx3gW0sNOQXNgQMHDtUU\/7iCnrxgWo3pZtRV4TmyVVrrwgukpx+oQLZC ekcuLsSFlKrpC\/WFepTX6Wi33I6XOE\/OdZvoPtezfUlWAoIu6IFRKVmr\/yUNjCq2tENpHp\/ONiKS Nzc6NyOnId1\/q3ZeG9v0pYpb5YPKVpV1mSSfrJGVaxPXSsYlEQBqUGhfIqfBrYKsgqbQruIQAU\/g gA5TpQIAts30348qsGBYIZRhpuamNkxtppDp9zKlxbS7081uEY2AtJAW0qr8+jy3EAzAkLo8LO\/V eFazJe25h6\/hfXhNMFmbl9k88+DnQZ4kO+F9j7fBb8MakXnx56b+lf7OVOE8uH2\/qa8K9aGWrCqW FLPHbwtObAeXeNO4c3E9rdhEiIvwMzBWmuP\/WShLIA0AgLKRSn\/96wq6EArZ7DftvjqPdDo+3Snn 9t3tlzu8BdIhJDwjIj08lm5\/YvfRg0dmUB8xNsZDMLNysFFtlyGNX9CsCYFAUCbw\/8isrQMRnIJV 8C9BWTH\/CdpgBto5PnLacXtnrc4v+9IR9BRJoOQA7QEatyZ2a2x8NzLEeit9k\/3av4eenD95\/nj1 w+Pu5P+LVx4v0l4Oo4fDbbGrTI\/yRNeETQmbKZf1lgqlJ5l8bgAAeAFfA6egOXDgwKGa4h9X0Hb1 7E0dzrwmS29aFLV87Zm7cQrZ4M8pFUKFn5EMxRfxaPwB66iRX3CkjtSRaWXvrx0fV+Eq\/NDkk5yH zw5tG\/qUuizgHnSBCXT7hvsbBjTaGUKd0M3BBmrmEwXs8tBlRmNdWpMGb0CwuAehCU0StsY\/pCsd i\/yKHAod2il1hr7wlxWUsETYVsjUPYWZ6ljdjPLKnMrblVcoLxeUa5UzXdL1Wuv209tN+UGbo0eP +9BsDucx9RMahM+kY4oJoA+jvn4+OAifwsepqwRjnIfFoc7MJgZQkESyT8xEZmPMtROIL7iXWR\/1 vn+a1aa2kzSbTz1Tr80jvu1Ofdu1blOxhSQkl54uXV1Kx2Pw+e1n3mdPZgRjCgA3fvz+NhructbV kY6gavJr7auVkEt7xEhByro+ylDp2rIiutIVdJAlWAjJFkgLVbFZIL8baCFajzbTlYXL\/ZcsXbww ykvOI1wjjMM1qQ\/+k16qR+opZgclqARKKG0CTet7PAz0IX\/QgBTQLy9l3pH0d13LjwBjLMUYMX27 oRKApjXiRLwKX21KVnJ+Wen5lnw+X0aEweTzwM8wxpj66ut61YN683aQOZTRbmMHjUs1ICuPzy08 rXNafIqMSf8wWqQ3v05rMuchaivSqdSjJ1dQURBfsJl5Hr90L0qBr4BT0Bw4cOBQTfHv+KC9lPiV v7KTL\/hpH3ExFINrHtHIYY1CbUIa0poQPgoAF4BoilcXX055sdqD1DzT3D\/Zpjql0JqqMfbCh1RJ V2E0F\/XmMescq1pVXq2kpg6IWhh5OfKsu73COcGPN3VWxminsR7jbMML5XzOsfm3FnSYSiT8C\/vn 6PmlaaTHyWj7EUbDrAcSV0uVTdX0KtoEHRoVujxxGU5rmEgF6SPVctnXjq+cPXE\/5N5R31eL9st5 54VdxnVtOImWiTfBNZhiSu43UkfqaFrAVxUlTsMYY6YDSxG8hZTnRHE7BTv\/UX8U3f7dobflr5lR VsXD8vflz\/SK4S9imNXI3qNkdITUf9yAooHp3b7qZpbdks2QHabZICGTgj8Fh3dlnOdgCnvhH0Pj 8W7L3IcFE9fCSfMTmcdFVEFDMtKhPc0BwApcWRdLk01NhnuY3Pcif5gMfOBLtZQOkwn\/HkpBxszp lMBhyJ1AIqkfrLlncy9vCqkpdznZTaublvWur+7NCwCSQ9nsFj\/I7057HNqAJ+g\/JraL9k87Huyo dYw8z8t4S3QX6ZF4dZD6Sn2lHenOyldUBJXXZfb+nd4tnILmwIEDh2qKf0dB+\/2LV1wOORBNZ63D HEOdQs\/bkOwGZKvoKw2GoIjAclpDDuYHRQT20KUb5MMNYGfhm8OsLzP1DBgPQbBW4O3A1goKuhX8 Anib+G\/5qjQ9TuAiuKVqG0C6VDcVN1vZvOwG8V3q7NHuoP2QtjUviS1pX8L4hl+tfWn2skvzheQP OwAATm\/42vG\/1PBoTXWxxoLe86bVJ64BV0tXXVf\/Xg\/k3GSVaaaZ1iVFt\/s0+Gr+t\/JKMfwWx+AI Afk8JD2kgRIfpgq8FIwRkz7Gb6fCV+kt+usdberjDOAVsk5xzW9tzuvJa8Ob8IgoSlyAC3DBezpG uQIAe2HlXz6fn4Tr9sYD3EoY33IAmMLO4XQDH9jJRkOoX9Qo1TCn3Cmj\/uoGDtEk\/RGpo2mouJJ0 rVwSvShiwbqv11D\/AehAJXXFyG7JzGUj6fNydd6VN5e8zGj++SC8G5+nHY9QFzQDDWauDyGErIt0 FA\/x9RFuxvT02PQhOiFk\/6H4LTaBUHpDQZ39\/0ClSKVQRSz84R4rnILmwIEDh2qK\/8Esjl9D5apK T5F5HaLAYtbFtPjgoqbYVZrtmGIPbsB0Tf7TykZlSKEU2DnuGIgApqNLkGfQ8MAxNG8XY1zF5tki hFQREv9wXqwylGvyOBV\/wAnPSA29mVULjxYqpaTv3cOS+yr3S7RITfJx8wd+97d1Iz5vXIR18GYt 0hcd6SJDpE\/fj1\/jF\/gR7ZDStV7Hhu1jTcnx927Y7bRr61zSt3p14bqYDaJXYxXPOuuHr6\/sYJlb aXA90pU5TjvmbQzT1Ryk0I7NxjCoMHxlsC4+UGEnh753lN8H5Z51yjX7L9kf\/K9KtJ2ztsFWffjL qBFdc1PNjzQ7w3S6maGZJRDnbpZPpkIB2WWnyxJXS\/r8CbYK2gie0Z6QGGMzHG9BarRLPyyOXPjo n7uff7q\/CCGkISE+pKQuH48nBpvnyfnTsY\/mP6wrNJDz1w9etX85ZWJHxb3M\/JFDfbn+z\/gz\/kx9 +Pc+3q24s8mD7F92SfZIxnSRQW3RLsQsc9CP1b+oX1ryw13DOQXNgQMHDtUU\/98p6MThCdsTO9CV Q6VvS3RLbtDXPbVaBbU+mk9cHst0V9ZaVUDX8n9R0F+vaUZ0D28RntWJtMyYu31muxm9aA029Gpw RTBd5wjYVyaQpTPpaAAAcJEqaD3QQ3pKB\/lqxfbPQLVQXVSH9lA7f+3swzN\/+DaS84cq94fdVxlA FLRfgJ\/Xs1vUpymZLw6TTPGaorjXO+RfFRcqppcLaE09WS9pblIcHRF8yIs2joquTbi+sb6hQcJR kphdFVLlW3VwOsl\/U3VR7ao66RWpYWN1zJPFOpOuj9sttwRv6bz+uZyXRJQ4lyyGP8gJ9QAvoDZ0 sOZZH7cxUEg7U1x1lgwA8A2XhwzSwQx+H3IBA+iT9JCEgfHX42KXkDOu88TO277uPM2\/tvP\/gkng AzHJ5JobN288xO0sfb59je8a3ykzICtt3bd6nPDYShU3UkdDkH4RyYPGSRjjO02U70hP+JeAC3AI LmhI7qdvzJ2q28W0R6k0QuYhqwmecj618aRmE7rNIIHsL+s\/n+Qfq+ch5y1We5q1erGJXk83GACN 6RxE+bTyGmVqPcjK1v2390p2qwy9o3BSYlq0Nre1uGrBuLSFIJysfpZmpQDAbACYB18Bp6A5cODA oZri\/zsFHX48bE4oZjqcvAR16ArEF+x+ycPSYwPtWejg5ri37sgdVj+6\/yKtou2FTwuI01XNSrhf zYqYRKDgTkF4fhjdPkmS1OBjnCFRMF9m\/Wle9Tb\/LXM3xcNzhYP0gL+M1s5eddt8vEtm4fnn+L78 6AHk9cwln7d+nku3j4yMbBaupuzbvkO6YCcbJrknaTmRmnA5Ko8va0lrnHADB7G+311Pd7hs47kQ V8nd1ndKbxW+ICsLl7X7Y+yiLZ+IK2BE\/JDSQRZGpMb9QvR8z\/OJTA1XBP9xmnyBVmOts9pMz0MH gePuuqOCVoMiyOf7pVtPodKsPW2x57\/82esn5jTP99CVA0v2xd+5Az8KIYhZ38cBn33z9sQ5VMk5 7irbgudXkCwXOy17LQe\/8gZyvmPM1vIt\/G+ENXwPhVAIhXSE4LrXLc\/Nhj7fvjPv8u84EoEJTfSb jPMQ0PuFMX6In9UmXTcRQgi1eUQU+X9cHP8akD5yQfo022dL2SbtDWut2DklBU9VgUd+VP5tICuJ h58dsnnQQdoitOVHz7JWDXoTV5S1mo2+tQ59Pp5v95\/s\/4L2mEzy\/Xj6434enUNQB1XWR974k1sD 9wHMOo05MAkS0ulazREwG\/ZzCpoDBw4c\/ufwf15Bf+lgQjsYLLo+P3NuXFMbskEYdAMqIMGZV1\/U 4GDwmp86CAOdITpndbNoDdWmUZ0xdRIlpIb9oW0UirpBfdVBKwKPB2bRnoi2+nX07W7sJ7\/YWy9t Hr7xJfy4YvsOzMdbtLd4+Ixo5HozncY5d5KSlXIRb8MfhiXRjicPdt\/LuTeXpsnBQODDctpAI64i tm+sOfWVCnnCZ0JmhCDSFFmK2Jo547AAAEh4Gg\/xO2iWQgLE34tnWtrhFABYCjQ7wQqAzb4AK1Bh 86zb9G\/XrZ1nHvn8NJDGTY0FTxcy71gDpxgFDVAC3+iReDvu1h83z9Ma7e25t+Dm+W7wuzCxy+SC Ke0jIn59T\/8dqBaqhWp9IgnWwR5BrQKb0hqz0Eo4XrjJk+TXNdBp6N7oEbNyUAQiGJVJOvLgUowx piOYpamLIxeu\/7vO\/vvAYlyIy2j2xozoqS0m33amKyVbgRt0ph2R4BU8AmYOSNZb5iWzovx5hT\/4 ldEu6M9t\/FX8ypkHbCecA2OgHYFkIFNwddlDPahHabeQ7h17ONC0zp9d+cwpaA4cOHCopvhlBY1v 4XvYX0qyEWRvpYdkTBoceOG+7PYSPXGFONuMOAMxxqcxor\/ICCGt35r2tQ8uwNzexEURsi94SlAY 7cAAzaEn27XbYpf5Ogu7HLISDydhW\/ya6dhgjdA382cdwRZam98g+\/OzsLB4V7lTzj\/kRFVEMbf9 XcLbW2+6tN1GjpeJP+N9JmQt3ObiDcbrlzIuAy+skIshvSfxlc7SIjVgXIKP4grqa0baSB2pU98y PIYYyMvoLafuJ5psbnLnA\/nNjzAONwwbSMPn7s25W3HnkRPJkpA4iz+IM5xJXrN4jEQiOf6M1NBM PE0EJk95RBGP+ThKZ4THKHJ9FXblxeVMj8PvpS0jKwC2pgdqoIaZlZmqbwSRakyFfOrM6a1nbGYU 4AHQ+1ZasXSn9In0Hq0pwkr8HABofvhK5AV\/J7wglH3+4CAAMD0DJXGSN+IgRZ80VoOW5HUNSaKk O\/OaDH\/EMivqG8BQ+8sw5Asq2pdfLZ\/5hDj7G390e+a+cx7pqam9W0eoMyGF1cR92GNDOQAATeuT ekg+S3hMuk49yGTz3KUDJUYSpuOI8ohWWVFKX0hOSQ8wxxNAKyijVHJBMlXSnemqHg+qcKU7qdlv +rjVaPvlk0jOzfzN1MyG9CEjiMOLDi454Mqkya2FZQrPBw+ECmtFzaBcgacprSTVAi1gkknq6zX4 0GBkVZCct\/ftoNXRaK3iuHEf\/DA4Bc2BAwcO1RS\/rKCDK4MWBl4aT7rG5abkfs5h18GlIiuIp\/Sx 18MTD155kiLjgLuDigbr27kp7jUMfhfefnhT9dpoEOlaGJcT2zK2BuODiIJQuE23f3X+1eGXlW1n yXlda6fNTtPWEcWMMX6GMc17RQi1Qcif1HCLdIr8i6bWJr\/gUZqR7SPdNNcyp8QcDeDhuAd694uo 4k46m9T14\/gtTeX8pcmLE8+tGxMXA\/ihrgC0pvbi2fN3\/jMa6Mn5fNtF9RZVdVGaV79MFXQ9GASO o4miTXyY2CBxjzNJiMbjFXv+JS9IXpXUitakT4ef2u6DjrrK+SjjMYHjpk68K+fNwltMaznyPtn+ pOfpUWcry0kNfVr4lDeTh04hmi+7SdbUTMZ1AcPxEzaPGHxQb9b3rXZbKFan+gc2z9oatn3QO3I+ jkvrhtSbu5jM3P9HoREFVdKqRKc42oN0wWx7pdVMz6UGLmSH7sgL\/k4odaEHP2jJ5lNLnknWSFbQ mn6PBV26dzzXlM5BOIERYnpwPp\/nN\/iZLR0BVCVUta9qoEMmCVQ3qMaqhvCIa0d9v0Ydjd7R5Igj Bo0Sjb4d5EPuVxs0BPWI2\/q106+IrrhY0dOMpLs9L34ufB7FjECswAyEtEYbmBPQPiCKps0VDMjP yL\/uTdJfCg8W1i94C2QtaPvs1tJWE5h0umIoB00gIwK\/28+Cn16jx\/Nu1d96wLyHZBym0UfDX2Pk VZLXLKsjS5BFnyKzDNondE7qLDpBisq7jm8\/us2\/PrkeyUjJQkkn5oI\/QE2FGrO24udn89EmwrY3 XXm5r\/Tg8MO9V16Vc0GxqpOqdsJfXhnMKWgOHDhwqKZAv7qDgqACv4JFNF\/489mMnemzaHoUWEIV aPBJHzjVuqpd1Da5EkVo26zOsDqtV5G0L6SP9FFHpeyEX0BOVM62HHfaMSXndvaLrCeOtMtuPgCI 6SywjquutV6dmkShWvayXG+ZMY9kUYAQhPCW1tC\/+EJpTVp0TfRSdI3m\/368kngloTvN3oAGkAwi 2rMPpFAMIk2SP205oIZrTScJqel+XpTxNP2tlNQIZe6yWjJjCeG8lbz3vP30\/XaB9iEO02h6GU+T Z8LTTKbG3iPwCO7akxFL\/Iz4EXFZzMpBH3FTcX\/aUQKSQQBAr1fnvE6BrgV1HdQoqvm4Zuk5xSwT BrgYF+Niur\/S46V1StKor\/hG\/2vl13vR5+eDOPpDVH\/quzYRm24zXU9dCH1e9O3jPfk0qenVqlHb qXYLujIOPEEM3s9TCReDJojLidG1qrQqsmqvDVGIiScSjsbPa0FdHkLIBNE30sbEoAogHQg\/CgFU AdDnX2omlUiP0xFT+KjQQSEz6MrTwTOHxY9YP5Z0iY9LiH0ZM40+P7JUma2MR10\/MArqokaBZM7E 4aFjpKP7Y9Jlkn+Hf5p\/kb6uDOln6WfpeTqi4JvzzfmD6YhEGZIPkuuSx7QGHHc79kXs4P7UayyD jzhR0JvwmuCIbOkcle2hOkdtQ2g+NfbDofCe3u+PmxM3JfZzJPcDtCEdM5+H6gi1crXoMvJ52obZ XqpjE0DG6Kgl0kE6zP6V88QzIB0y6fP8sX1i2wSj6SQ95+alG2nXDzQl9yOvJHdE3nI6B1TP1Wmd 09m3ZMTVR8v7Tr\/H9PnXMNUYqbHjMtv3+5fAKWgOHDhwqKb4ZQX9s8BVGLPpbSAAYGdpEUIIaf31 NLefPh8ZxhjTlUVffLoqpIaGBAghJNn9F3b9X68XqSL0rbQ6jLEYlwoTmD\/xQJN20UYI8RHCzZnt MS5VSMP7rffvZ8\/\/T++XYAmW8L6a1oZUkApSkQ360f397PkpH\/9Xj\/fL97MA5+F8PZIVkV+UfzT\/ Qj\/Sw9FAw2CCweCb1ElrANqgTTsAgQj4wGcUviZIAKhrAMTAB+CREQdSRTyEmNf\/j+G7n\/9Pvg48 kIL0J0ZISvjdzxenoDlw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcO HDhw4MCBAwcOHDj8FvzjKwn\/16G8th\/VQAghha7R\/6eAMRZjTDvAAEA+gME9hptAFCZZHwghhJxz nv7b582Bw\/8FcCsJOXDgwKGaglPQ3wHOxZ9wpjpVhO\/ADx7S9DioC02gmYh0hEA2yAHZ0Q4mGOMk jJmOLAhZf7Mjyz99fUkY4xVMvrU1QmgVzbfGGMsUskoAEgHqsIq6Dog\/kuwChBBCqv9e1gUHDv+X wCloDhw4cKim+P9eQeM3+CV+RvOQn6\/yq\/3s0LH3cn7G\/4z5gWYtSD50CZTX\/iymPRSF+1RvG4po Opb3kb77R9e8MV7Ou0f0PN6z2xoLOUelSMYz+vu6OH\/3ei\/hE7hrBzM5D9waMOX9Y9oR56HJ\/XX3 9zQkaWvl1ysKKgxUSdqXayuXji5WNF2tR1lv796Nl5AOGYJ3ghTVSj+iwH+2izEHDhwoOAXNgQMH DtUUv11BK9dcIRmsFA74va7Yf96fFGP0mvlTJQDtgIIQ0kBIVOcb71fIS4YKKIU8ddKBwWfS8RlH zEJIF7IXM0NebXxAO2706zeugdFSuj\/1PVrHpbRfDFQ1F53l034N4Nvw\/KmCXZSbO2o8H7qJXu\/C 9X88XhHfYig5f3fUBY1K3\/y1+\/erNWvZWFl\/WTNL0oFjreWq\/at8go7LeVREnEdWmCnpMOEa1XRf J6YnoWpdNX31YMoTu8c2CF1EedbulKCgNXQEsf\/wofn7nCYkybmRm9EbY\/PbheR6BAgh67w1f\/V6 \/teBP+F4HES7rksfSYdJ+7gekXPeM\/QCvWDmNPbzKnkqEaTnI6iBGhhL6BMnAAG8YlxFSh1+qjvw S4xxXru+5A9uIIOKUCfC+SAD00LSQxAkIAEJdRUpj9AwxqUY0xEuQkgLofKR\/\/Z1\/lVwCpoDBw4c qil+uau3MpQVH5ZgEZZQxYsrsQg\/sK8ib8iFUFBhapTaYAr1RYxGBRlArg\/DKwDUnRWPKoKvQgpS 4FOa0Tb9WFrCnA5yfs\/m2YmtH6linjRhxW29DnR7dI7nWrVe4VA57OFUw9Q7SldS3ttpdD\/t+pSf lm6PPqNHFXH4kNBGvc6NnwMKoDv4VcWs3EHkVp8b\/a4H7+gp50ln0j+JupqSnoWdzvdZO6mK2UEM OMERhg+CC9CIUtfCZh86h1Keuaqmlu0ROkJZtWP58hWDDpLPc8+S\/Uf3TzEkNWqMcQHGR0mPN4SQ PkJFOvB\/BLgKx+Eq+jyFWAXpBe5ZTEZM49eN69PfY\/BeOS+sXYZjtmiSHovYWjZKwHQQdKhhE96q VjLpoDMrbo7HkrrLSBd2YxPjo8Zht8n9+59wDTHnJ04XrxT3BaKIIyLDa4bNWN1EzvPD8obkb9Mk itj+pUOwQ2QC6YGIF+KpePiBZcwhygF4JxWPWv5vX\/ZfBqegOXDgwKGa4rcraFyBK3CFGumZFpsU I4npvmusnJ+odXTu4aGDDOU8+1a6TbqlrkzO1Qo07mq6FEfKeffbvc71+vhgo5x3vdgjv2fESqJA cQEuwAUyqsj0kT7SZxSZDGSsgvaf5vfeb4wd6WrdZGnbbire9HV0l2ckm81cUDaIIFnpIq2UeDrz 76XouawzpS1fd92oyez\/UYNHm++1pC4K6AzAKmiMMcbPFBTQz9UUZSCDp7ZEwV3fd93zZr3eqnLe VNbh\/gQ\/oDX5I+ABAub9tvBWYUDiB1YgVjwEoj3CwaxPjSi7EZS\/k\/jDdR79\/PN65n7MDcnbLudG Kcbjjf8vKeZcnItzDQ7L+duRr8teNVi5Us63F+0rG5UxfK6cD2s\/u6FuNKyVc50CgxTVHswOhXgl 0qU0qVdMG7+1VmQOZtLayU7vux8nNf9jk46O8LXvT3zs+k76p\/XFNztBNYFyV\/dwaVhMqGhuezlf c2Nlyoo60z\/IeY0DNVvXOkrfr2et31WvP3SX89MzTrX3YcbPxiLjpsZG08gTu6bf+jobcsdbKJ7F 7X\/7NvxlcAqaAwcOHKopfllBYwmW4DfUR+w\/+NmZp9GbicI96bO7dHevQaflfE7ckJnDA+j7a300 LTJjeg6XtRfNE6nqkN\/Icwfvzb+zvX+unAdYv2v0bnUrYzlfOWndpfWTOzcm5yPGGONIOssrQAgh MenKfejYgbH7UqGfnGsEGy1B5swFhYEQjEERVsy\/wyFf4TUPUFdQmBVgCY8o1c036IeuUH61v\/\/K B2XNiasitHboyNBJSw6QDZbAErh2aCn8IDDGzzCmKwEhAEIhIJ\/4lIvfljyvyKI1YjUftTYaW5j3 jwMBW2OGdGgMZgy3hCA0S+mYzOcH56EtCCnVVtFLNXlGebZN9pus+jVbkvcmY4z3\/MIIoZpB1lTm ItWtTdxQOxbs2vXH7kGkxjw2btlNvXd0ezUzjTWSAcwOzACAHU+IkRiYOQHr2XVfIebz6uQ\/hFc2 l36e+z\/ule5osYvO+XzCmbjxZ+LKgRqgBR6RvnL6T7sasvplhmWuGk3GpCvWLzVYojWdzPJMvDil 6TRmhKuxX1OmOZrZgQasBw1K28jayToYUR7RPKxu2HBT8gQuu\/zH0sVX9tAa9T3cFgemviTX3wW5 IbcwJ\/gfAaegOXDgwKGa4pcVdEXvCvXyWKdJcn7Ybsf57f0G7pfznUUzM+e1odurNxWUCh5SjvNB H5h1dVo5wgAhozAmNOkzoF8F5bvyL7icdaO+3ecRfs+fDZpAFGgrvhe0WXmpJSjAjyjoev2dVtcf 8emVnF\/LeJwrRjBEzuvKXOMEa5m38kATwhjuCgbgx\/BKKIZuDK8JfGAUk4GTqS+6SvmQOnN6FA2k fGPpPuveJmuJb1j6uaR2\/Q1Lia\/7wZwHox+cOkNm7du5tnvXjndiB9lBMngBJNOqsAFIwZVPFJLe PJ1Rmj1pNkZlA1FV2Vrq8lDtLYzXKmPOfw9ogzbD06EFXsnwZKUHYBzchFhKS1oWDM0+RrmpjanE dFcyUXgIIYSsUyzhfwQYY4yTdMkcB0hBClI+uX+f9qampKrSlZiaz41Gpz9iRixLNf7QZucoxMoV fYD\/8heKQpAC1cNgn9qwvyqj\/578campnxEdkUg3SH2k+zRJzV9lpsoilablpAauPEcEAhCAgPrY kQpSQSp\/PUtFef\/bC7de3dJw+As57zq1u37PVLq9xibNupoPmB0IQciOyEAEom+ZtOo\/aXi74QvK 3216W+\/NZHo\/UvVSz6bsaNFD8V1h8L8CTkFz4MCBQzXFLyvoQNv3sQEn21yS82Ymdc85jaQr\/4Ra Ak+BL90ev4faCj9gwcBX+MWsC8WgyfA\/QB2yKB04u+ORzr0pP+Z+e8TtjX3IvG+rFK\/MNtP9V5Lj YVyKV9KVRdJ90qXSEQft5Pyw55F4uy5ziIJIW5Lg\/HkyVUA1OtUZIOvInI8XRMIEhheCHlujzrPO vMk7RPmjYdc35jM1aa\/73acZdKF8YrNFdfQvUV50Lm9KhqcwQc6vj7vmO+XZOPL6jtF7JpqsG0Y0 +WCfAQMmD71LanoDZw8IHpC2h8wJ9O3svadPzt0xcn5pwI2F1wOooPAq7Lxi+GPmejpAgIIPOgos 0UqGt4Ay7EdpxqPUDjGMZ6D2g1ojDRpSX7uBneE2o\/Kb9nQDqNbACTgBJ1BXRnpoeky6cAgRMue9 zt8+33joHTl\/0sF\/zEWxB9G47aP6CoVrYDLZYQOwgwvMAepBIXgxXBP0\/jQq+RbGo25SZoRSw6Xu iKwoyru27\/28aeETMuuxMmDV1pXOAcQIHOUfVRnd7CZ5Xpz2OvWvV+O+l+JBguGvQnll3ySr8epj iuwK5bzvhf76A98yb6iE8wo7+I5i\/hMyoR97\/+yO2t+3ZxR69MKo11HLPMlThyVYgiuOkO83UkEq SJ2OIKobOAXNgQMHDtUUP62gcSnGONu4rZzfqrjpfaOvDZlnNtDTTdNj5+R50BkuMlwIn4CdQzWA KgUFXaF0QF2oZKn+Tt2FujcpLywo1CpkXCBgBcPg6mWiGBBCKgjJSE32S43sM62RLdkmOhExiswb L3Ja1GUK7wBR2LzO2p1C91JXiaWtzQQVD3q47E\/pj6WtmfNZ9Gmv9RvpfDkfHjT8yVohTXe7Mu7s 9osh7vb0\/SVTn1fQ\/XdZ2D9Mi6lpD+wz7oneZ8rFuHK6OIcqbL+N9y+vjaFG666+ffw2nKC8YyMv 4cgXWcSXYpyqO0banFY1H864ueYwo8A6hfQaP6Ep5aUdStrkv6I8WhC688VU5nrrZdlFD6HXu0\/1 oHD\/oolnyQa1wAaCENHY\/6npKn7GyXrsykIFVwfGGONI+rx9r2MLrsJVuIrJXimCIgiuQWqq5YPL F5ePGhgi577evhN9A+utk\/NBvkMte3fuRuZUyotl8SFbDEg6YZuU7pla64E8gfMPbffUrEuPz3Pi HRWyNeW7WCSbxXArBJh9XjUBoFDhEjIVvh+loAnM5yOrK6niMa6OHpuHGWjGUN597tAxyJuOYGPb RfhdzScL82Ad7Fl1wqqJv5wXmGW0MNuxhtyf9fc3zFxv8ipZzvsW9NHwfkh91Q4LHDrYRcdTxfkB spH2m2lymnUjSy9z7oSPcj7+xegzo5pr0+yRvZKa0m7MmGKd2gcYzlxvFDhBMcM1oQwk8HV0gBus j7\/cqaxh2UTKtf21NmkvK6NOfX\/gA1+apLQXTkFz4MCBA4efw8\/XoDVBBtk88gttX26\/waFmLKk5 nV51u8Ftql+gh8yzQytGIaM9+AZbY8KFoBilUabEDUEGBpRG3Uh4mBBJuX2y4xyH2ZlEIaK2aBRC X5+F\/lP6VQWuwBVXiaI+su4outQtlKzEiy2LcY\/x6kc0SgovpXPSNbpSz\/xe61SLOqlEYzrtcDau v+9NqZzzdfie\/FlPyEqozjldcrrkCMnxUp6mXE15t5AozsOnj2Qc7DbUU86vj\/LpcBXXqiXnbUJ6 3FIh+hmgbUq3zTqMb7bd7h6rMFPjD7Z48\/L0Hep6iZjzZkcFMwJIKYnpKWB8pS7YQ73TccqDXF8f 811OeZ9FPTa13By9RM691\/cvW7R8GnGSyw7IgqQnjYkLJb5GvFmc1xxSA1dXVx+l\/vIT8aVaRFk0 t0x5qApfQxmUwRYv4vP+8nndIvdPdlh2TLa6AUk\/CVwfeD4wfXIrOT9nd+Hd6aqexGcS2SXO7uFg ww3keh1bNJIy92PomjmVOpFAatDaY\/WnGjGum5IRhRWIqaM\/GHjtfuEoykObvWqAGd+7o3f9WGhG ea\/oUfd1GdcML5lvL2XnZGqCLtSitNy3WMinnh04rr0pt4jxBZe2rtjGp1lwULeO6ztpd8qbp7e7 q8OMOCdcnd\/SiFH8kqGSbdKx1NXzoWXYp3MF5PGDFSO2Cg8f9iTPf+mu3Na1zOiIqZ6F3fUmkEqe oNCwoHtB1tYkTWSo7vAPw5kRmIZIs0zzI+WQADXAlOEVoImYtETQhDK8ABTB\/K8lGST2EDMKO2Zn TMtoxse\/4tWqpNWvL5Nx+f9axx9OQXPgwIFDNcVP50FjjMsxpjVQfBSvxUscCZ\/affzLcXtenZPz 4e88C1p3oy4KZwfrk7bUlACoBZQo+R4zWVdE6cTKuxVMyXJ+8G6nnf6Ubz572PewcDz5DTUXm\/tZ tHtEfB8\/mz\/9A9evUBMFAACTMlLjRgghZPLXV2rhSvwRZ9G0v0K\/wsxCUf2ucn5qwempp2pPJwr9 Vp97K44dpysJG3VoGVHBuEbao5583RTKhXfVW8vuUJ5oEDNHwtREb3U4n1JcSHl4rTeRsqGU+9ge E56Co6Tql9ohZW3iCpredn3EnZq7jNrOlHPTw7V3lfei7xd5lY\/HzErNquuF\/W3OVJL0wsXBi\/K2 Pj5FquDGPNPhplPex8n5hS4X0YVVoy7L+f2hj0ddCmtKbAemPa3MMzbwSZW2zZFudfVm0uPVvlwn is+M0GT1ZKMQ47oJq\/W+QUU85c\/K72aWMM+fhira4KpbQrqa93vfx2VoUgA5vy6tulzrwt9CsmYu O19seC7ah6yku3nBt2rnSDqisexVJ0ScQfdfeaWiO2a+D0W6n8FsIFV8C9LnL9n68uoJOXcqcW5a v9Frkk74LO9ZP7\/3NOvlRpNbcVeK6ZxHknHGfv829Pl12dg8i8eMUJtfacfX3U+5XpmhKWZW+okl lSN4zKxQ5LUg1wrGdfWy4aOPpcxa2zxIjzQeRrnhFh2vGsy3x\/lz\/a31N1LuleO1s00jyvnv+M\/4 jOuj+FDRx8IblJ8rPL3g9HPKRwSObjQqitbMO1d2ieumO5CEcfyvdfjhFDQHDhw4VFP8ckcVXIpL cSlVyEX9CgML9w4hK\/MWPpp9ZiaiaXbmW9Sc1SPp9pMK+k7pz+wv26vgVP4UytdHnVnvcwvTPNyR S24u0ziaKedNdZvVb7ZsgvKs7L8G\/B5jjKliQU0QQogqrN+NqpCqkKqQZiT74casG1Y31i+8Jecn jc9u27e5K3ElmNaycU9lsjm6Puh\/X59xzhi2No2EDZTn2mfaA5NWd6\/95cQCxjet66hbqMK4dHos GuaqQ\/t\/AOrGWyBl03pFkArMuq5SXHiSz\/QIPxq+YXwho2il0TwDCaOwWjXt8kCTWZnpWtRsngbj cuGXqHzATNp2ul+yqZSpaT597tuhKJHytPI4VWOmg0z7jNZ7+jmHENfGkF6DJwzZdHynnFv6Wfpa HjxCRhDIHJkj8x9XZKJzoqmiGVThJkYm9E1Qoc+L+kv148JxtIOI1QRrZ5sFj8jzzhvGW8y7Ex\/4 o8fDBRhjTFdClidWWFRoUpfF6dRTG0950RHZGt7auGWqNFun7j6XaZpMVoj76tZ7VJkRmIdx69Ha zOeve99gBmaczeL+VWE8ZgQVEvPmXjnzeT\/PetChKJTyeJ3wl8C4VNRnCbroMTVoOxdb6zrUVQ9\/ hC7NXNbkBPl8XHxdfRr7HKVPhBU0hvt0xAMA6TCU9tSURkn3SA\/2JS6uhKnxW+NOOJPvS0lSiUZJ c7oS1nZ9Hf06o2LIHIu+o360QY2og2TvjUETMgsV0xp\/YYTNKWgOHDhwqKb427t6y4TSEulxqvAW WSwULoy8QDSU99AGhxs1oy6F8tgKhwrG1xiwv8i\/cMAHouHm8+fPmZfVbB+5AOX8598M5RECAGCQ SUi2R9qkT29SI2eQPNt7I30f+q6iijV\/Ul6L3BtUsdpHOG5xFFHXSRerLnu7vblCFLYwTb2Besdr pMaIVJEKUvn6SicswzK8p4k6+UMBFICxjIw4ZC9lL2X6VDHsVN95asdnH5Lmd9z+1HSfuq3ID7VD q4ZqpUxNsceYQaZ6TJaKVZp9MY\/JhoCDKAbbMfwR1GdrliCEt7BRgXsCsxIOyqEImDkFWSupE49x AfFu85sAUwMuCyiehxhF9nrG0y4lzErMwDX+SdCYcvsFVtrtWtCej0NGDTo+\/D51jTTZ3GR4kx4b ibOb78ZvwK8TR9eulkM5lGsQ3zXSQlpI6xfmGJSyKn62JqrckUR5jgXn4gpcQVdCShqJU8WpdI7o 9JpTH05O3U5mKXzv33G6fd6D1PC7d+4V34dZGWoywXSJKfO\/xJWzVzQuW1PuN++53QNm\/OpwvuFx IdWT4D691SPBOobP8IzWZmrKWiq6q2TM8yGaW7aPx9TAg5u8uVhKsxrhrdYzfiWzTkBYG31wGlxG 0h+7qnZq6N3sHnFWdy\/o5tQ96DTJm8\/ITD+ZdqKHvpyvj96wZ9b0UeQJ0t9XY1PGftrzUKuPThKr 6FO6xsbyJlHu1rmB3tCmceR5mtNi7oXFxsOJz0Slhko3ldkhJCEeqSJVpPrjKxc5Bc2BAwcO1RR\/ e1dv5Z5ou\/i7RLvXh2nJuYM+31aluEGJnJvsNmhmUI\/u79KAiIfhB14S3+xGlQ3F6994esI\/BPwZ f8afqSK5duVq\/St7aY3rvPnZ0Wdi+hCncJtFbcvaMT5UPTv90\/pM2lbiooSHCTaUh4eG1g4RUF\/p tpyd23eNWrRYzmuvtdpqbbrVEL4CjDHGl+hKOIQQQgOoT1kZ2022FG8upl2iy1N5Y2uXOBOXSGFy wd1cRsE8mne7cg9z9O4GQ1tjpsbcfpf3VPU85gChCunSAP\/J2\/sqT4WWwHTQAAmsZrM\/zpnttS1h 8roLVmX0sh9DFWyfQ72WDIt9RVwMPRr2eNlDaw95vrRLtNK11iVRJ7MO6EA76ttHCCGkVX2yGJRr xkgfoW\/1bMSpOBWn0o4lgSPf33urcotc\/7YFW3punUqzKJwO1Z9b34S6XFoKWqW0Zlw8lU6ibSLG 937d8urty4zrQqNc453GLbqSc77NIr\/FEUuIplZtpaYqfEFf90321fU1Gk6E4N0L925dWUVr8MVd qnaH3qPn38y83R11xoXk\/qhlb21GsQrVNBwlpykvKy\/5gz+G8kC3l9NLGFdKYGv\/FWJm3QA6I60A Ot6ECRFLHhowLiWt5npWEjb7ThOsgJmzgFTw5DWk1P\/zreAKZg5E42DlxCFq9HmbH7bw4NL9Dcn\/ b5ADxmBlQNJuvucy4xQ0Bw4cOFRT\/O01aGWcjjv94MxY3z\/knP\/oU1aabReiAJvYOmU576Lbb393 P87XNAXL+b4F+3fve+dA0g7+bl9jTJcPzaOfzQ+V85VLl\/OWTd9MfkMn6k\/pO41Jz+Ll8BrzfqIF Wm7T3PY5jAK9tvxS2kVNquhO+ZwVnHdwIxqBl8nX4tf+QKrCCCFVhH5cAc64Ma3ntMuFhXLukN14 X39VXVLl\/Tg0vk4YU2M23ab9vJSZRY8\/+rnR8VLKh9yc+UaLqRlDIdSEIKWDasHXoQf5wKwMhbky ZwHTc+5w8Yp6OnUoPzf77NLHDennD0NgCCylz4cyEELqCFUf3yvOxhhjxkefDQBg3I5wExCDOIf2 9dYHBKiA3JGcEdkB2X0GL5TzLXqbwjZM3EKex4InBXcLwqnPum9yP88BzMo9jZYa\/TWYmu8bq9fO r5jsjxDVoEeBk+nzNGvynAbzYn1InnSz8hZhLQyoDxs1Qy3R\/gdeX71e5fzpHMiBHB2imHOX5V7O FXQl6X83zW7OvOVOa8K+Jx5cuDKR+twlcYIdMTfpOoxmy9qKhTJ6PJfrHic1mbRJtT0aF9n0P\/DD rnxmXQB0RvYSNv9cCHmgmB5tpZD\/roxCrMFjVpruT15hUUr1Mhx6vjvwzY3RJJ9b\/5xBPYNtb8gs ClJH6qhLbJ2v7Z5T0Bw4cOBQTfHbu3p\/DwbvDDQN3lFfYfLE6JMfqF4ATWf1\/urML2JZdrFF8UBD UgOG2SAGsepNxb1Wwu8CLsCluJTWANfcWhmy4o\/+pMrUvaCnSa9Quj1PhVfIU1SMP5Vna\/TI6LIx 8ykYVho9NT5LXR+Lli7InDfiIdEE1t1sFtt8yqAr1TZe3HdhbQRJkzBOMG5i8oS6Nox2GlsaZ9Me hcvyl85YYahFesY4YY9EPo\/OU+emZVmnMlkRA+b0fN43h\/Zwe\/96a8PbfRqSfDVxD1GlmOmQI9gv LJGwH4cBGADjWwUAxfS2dOADkwYYMzg0tfID5Q31nJu1uk59ydANBoNpKnE2\/0chf1WB\/G4oK0Lx R\/Fm8cxm5Hl8dv3JhCfXBhPXUuSZCBQupXMER80ORRzsRWvo7c91GtJpwF13ObfsYHmgxucXJnJ+ btWZ+acaXCEjqNtDbqncyqGumx55vTx7p9J0Quu6Ni1tmfv76W3qihTGlXHC\/6jRYT\/K21\/suKmT aTh5x+n55wdcXD+ezPGoNlBNUy0KpprSD1pAYh9mjAMA++HHYQEWYEGfT+OTxnONVU6SpRAY4zk4 0peMMMY2GssfEyElI4Z0n\/Sr6acHkpUSt7Rvr76lQV0ZB4tXDbq2la5k1T9jdiSpjxq5n8Onzqyh x+SdI4RKgZkT+mk4og8yxkVkFe2og6woj7sZmxJzgmb3eGQ2c23e5NnAH909p6A5cODAoZriH69B vznzJuntoOUkS+HJmzNpZx1XEV\/u1LQBMQOZrtATLu5Yvs2XZjVcqrgefa3KlMzD\/m4fNH6DU3Eq 9YVOGTyxx7gKf5IN0Wegt\/8AA6qg1LoKw4TR39hhMljBSoZbQbICV4K4SxWviqkBF7TLt813obwo uCi6iJlFLnxVtLqQqbAW4cK1hW4MFxcdL2LuZ9HjwlGFtpSXDSvfLGJ+z4tEhe0LmCwFg0H6zXWZ 42XEp6ekhVBu2so2P4vxKY+5Nr+5CeNzVffVvi5l8qVBD6ZjJt0sbWUi4K6Un+y7ObdqGuVHDh\/u cKfradLDsHZubX+rvcfIWkK0hneE95SOEKADzIfhNF3wS487EXVt\/Nc0Q7WvD8EyQQiZ1EecW5jb MyeAuiJmiaa\/mirYTBRmLV7t5dZj1YmLwfFoXd+6zPNR+qSkXwmTZv18rP8VP2alpWiUSL2C6dHZ eICbpjuj0DytW1e2YVwMlQ6VD0U0fRtuhF1tcXUw5Won1A6omdDvx0Kfxdl\/yNYRX5F5ZwtDixmR 1JejArbQMpr6vK0AILKCccIDgG0+qSEjhBDSoOsC\/m7gYlyMi6nr40sHFpoOCVEQBfss9sjpuLZj z3jLQokvbED7OZapK+n+VP9Qby2ZyxzAT6nm7PWdEyqEHGBGnNfjjx0vZ1wdYz71D7wQeo5kEzXa 4xLsWmfoUPhBcAqaAwcOHKop\/vkatLqBpoEm9UkWZJesL9kJREHz7OAq28NN5iDeJRbTGhIshotw UVeps13R7zvBRmAMxqGk5mpka+RpPIcqsIKcgiv5+6hkNQNzOwv2\/Zrs7ykAuEOAgmLOAWOF1\/VA D\/QoTe+aPi6Nycctm15WVbaVcl1b3TN6iyk3STHLMaUeANAQaNzSYPKEBRcFkaqMAoZhcAGYLAR4 AzMVanCaoKnQ0aMl7GJXAuLduClm8og\/dI5yjGSeokPzl5dcpB35gO+i1TOFqVhOG7jyidkeyiMj g17ld6ZcpR7Pw4rpYbnMfYngD7PhpC92+aTyjeXvaQsOQSeVqSrNIFzO1a4JrwoZX7Xmbs2zmudp GtzC9\/NezDVODJDzbRs3P920RrxKzo3jTTYaT6Cfv3G8cRuTAvr5X8m+NOHiqaFkTNMlo+uWHiVU gdd8UDujNpMHDcPAhe16DsMAgOlp7jyrQU5DZuWmaEvFgYo\/KFdrLpwkZFxBb9++jn3FPHBBxwMn BbhRH\/3M\/NnGczYcJyOMFrEtP3nWWbmevGEcuEOjPJII\/Z8RRSNQxFd99P9B\/Nde+N5Kxz9tj3Ea xlTxIoRqIJQx\/WvbIx2kg3QUsjUAgNomvoyIismcREvHFnc7H6Yuk6Ci55N2buzkJ+fNoFOOKtOx RqEf6heIlTreZEMH5sUNlfNUmP9+0tzipmhH0+ygui\/r7qmXso\/U9HEFlv3MSlJOQXPgwIFDNcU\/ r6BnGszQn0FncQteldQrZhQPOgYZCtkMEyX7pZsox22xGR7Nu6C02+bwu5AJQhCaUR\/pZ2\/Pfrv2 kfyuXUY7p+0YRiXOKLex98Yz6xpRJBIiV2Z\/fBAB26NOD\/SA8V2WjCpeWMR0RLk19vrya4+pIup6 pPvQ7m2pb\/JTv9QlyRl8cv354\/Iy8gIcyVqnwmUFiwp70Zpc1qLsZ5n7aE20YmhFgpjpoKJ9WydY l1HUmg80ktWYlVa6xboLdJm7q8vTraW3l+FJ+jV1mZpzt5vd7IYwWQ135t9dfrcn5cnTEmqktqS8 7jYXC02mBp4++cNyU+bzHx8wdsUEJnsD8sAE6jN8LKQC4+nBA2X9ZEz6njhbbCDWpc9LxfWKKxWX aXhI0Y4i98JxQKr2RbWKUos20aWsaZAmC\/lE9+fcoYFnoxhqG6rZpXZ47QPM+SBQBbY\/jBSkIIWv Yzw8AqYmLQhWHabKXN++F7tW7FhFebsWHbw7nKQK88y08zEX9Wgeuuoh1cGqw3Jo2p4ZavJfFOlX Fer3oJxNI\/Ks+FzxfhBJTzy102fGiVp9iLN\/tvpU+8kLW5AxEq8v7yn\/ZBXxWV97fSX78vnXJCtF PF7cRqy\/+j65H0cEzwQFoZ3hRyEAAQioj3uw+ZANww2WkzHNhLUT3t4a0ZoobI0Ybe+UTtRX3cC3 6WBVpscjSuCFyJjPo2RUQVces7L2fPO9AwuZlcKTRo9\/uOco7eCiulNtiJotrRggVaSO6lRuhh8E p6A5cODAoZriH1fQGoUaoRo76S96haY4QNwPyG8QCoOhwFSshGUqWSqnKBedF\/mIQpzWKe41+fed oBUAhNKaY6N7ri6NdTaRtLPmxS3mtszyIkXQY9cP9zsIzclaO+\/7\/ZcOZNKv9MP1m+szej\/8SPi5 MGbW\/UmNh6MeMD+T645uvLRJexupWjqFOhfX77+Q1rCO4ysKXas\/gRSkPKohhSCFaVRhnzY\/yfNx u+Yl5x9eJRdWrqE1OBMd06iaTFp1ol\/4tDsWdNZ\/cqupd6a60bS33JE5\/XOWU4WefSs7J8fOjijQ nPo5aVlJlqSmaNHFvMoynd6f8JMBjjEf6fl32zDwkz4z4giZGC7xY7IV9jTZea+0FeVQBFXwgFKd VB2hDpNPrNtQ10WvkOEeevl6Dgy\/pzuNHTHoTdW7q8esQzR\/Zx5jwXQtd9zl+LIuk28saKx6XpX1 DBlDDWBq8mACKQpdqCMU9P6fYQ9xbNdu\/mr+Bx7TAUZYS9hJfQJVhBMXTo6dGt+Otm2vBXWgTiqz lhXKANguiAAA8JfT95RRkFawPP\/KHFKFnZk1od6EcSuJ76Srietatw78BnI+q7zbhV7hQGrGsrrS ZClT4X6w7u3C15tpls20br5jfC06Ex+0yFsUXrFuAVm7KrwqzFOfspesTcUYV2HMfB9KIB5KbMjz qHZM6CgclkWe1\/0pB3ZcGNqLOPcP7NrXd+fTA\/Pk\/KD+UktfoB2CpFPx7DLGlaFfW6et7TtaM56N JmfMG0ezX9zNmyR7pKwn33CkilSRUQF1nfwkOAXNgQMHDtUU\/7iCVvVW9VBlVgqKNWRNMesKjAcx MOlTml2ES9WYlT+lQaXmpWFKO70Pvw0IIYRcsoy\/9jquwLn4A03j0rHS3aZT\/pBorJBzwQFBt1oQ J2rLaM9arZiard\/UJ3ceM+d\/IvBU3TM1BhANpperf0p\/9ROaRmIEp2EC0J5q\/z1P9quzwCtClrVY +sqCuByM1plrNWdqwIWrCo7lMSv5nJs7X3Aa8JJcTz3stMx5+EYmnw\/Y\/iiADXGVgqIXgCGE1ySu nFL9UptSg77kCP1Gj1jmPJgOMXrpD4uSDKD7q93Svi6Pcd0eWrN\/07Hmy4iG0XqnvVX7aARRbHnl ufa5lpqkJprzIqdDdn3aESQnJ\/tuth1V9DkPcybkRFOFlFOYI8u20CMrRz\/CxzWJ6+n2mYUZURmX qO+WN04lQ+W4IbkHQ1SHJY3wY27IB7AB5v5+F9rAZ3tyloiKvViPgp6b\/iy9LUXEJ4DqocPILqbv Txzhl4BTcSp+ZUlGQItvzTs7x3YaUcgTa3ad3t2cT+ZsGgyytbBjRiBwDpKA6bINlyCRXWk7JLPj ni5MBx0j9ffJbz\/SOZNDV\/Zt35cxjIyxcCmui0vf0bWpYsgGcTpR3EgH1UU6X8+2wAW4ABcUks97 nt8CWAKuK8gGAXBkyY3Gswh\/AJvBmHZEARvwg2BL+j\/WejCG3LskAft3ZwNxCpoDBw4cqin+cQWt Yqtiq2IbRapQsnZoMjD5s1gPEiCUcm0z9dsaTIeVokdFdsV6VAGBABAA3IV\/CEgdGaG6NEvh3lZf lzv4BeniJ2ghaCoYQAQcyN7LXGTh9P0WBZbZlsb0\/XpV+kP0V99gOy4ghMQT4C\/iy0orqmjHBYx5 Nlad1uw9Shx3G4ykTvMklbiEMOb+tujj+qhRLPUNw7XvHFAAApDgmoQbgiG4fCS+DK0wrXda83yJ whBa8ifXsdxCbDDiu5XLi5mVj87PXYOFjMvk5eJXvNcTaZZBT6ee23tkrm9C7mdDSxVLFdk5hXN6 DCy3Vnjti3jvDj8IPAyPwe7GxNcyXHNI\/qDRmaRqnDc8d3TuGeoSMZxuZGCkuO5OrODiUUYURLDp f\/cn+s6+y3wevWP76PVRuV0o53tg\/+GD8PcBx2GMMZ1TqJBV3KqwsCfXm22XtD\/Jn6blNRjcS+LN uGxQb6zDeonxK8gHX4VDlLIVctRIoWIP7Va5X2vCdMSZMWt3ux1P6MpeuD3n\/dwlVXRtZn+YBNsy I+AH8b2VxzgSY4wzab56R4TQ6GjWl7Ufav3pbSfgbwKnoDlw4MChmuIfV9DQBbpAF6rQeDkqFwTN 6VodWRnYALMSS\/+CtlSbcUHmDylwza9Pa464AlfgUX+9x9uvonKSaF0lk00hWCvQENB1jyDLl12T MT5XlV4qNipL06kP9Use8FvFvWZ8vQdhAS7AFTRtLzMns9vnQm\/SlXh+kznD5zRaR7rEZS\/Ji6h4 TfP2VGYIpqgxPQNzIedsOlPj53dUqeHWq5hoHnwKl+JSDbK\/\/9KTLxkSXZk9gBXYBrPMCrolkqKz S9f6HVq60XS85K0JM6670nS8BhbualpMmt3zk\/da+hXWJ06Ingt6GvZIpumGGGOMs8vI8\/CzXZO\/ B3QG+aJg6mP9eCGxfoLPdtKzY+6u2bNm1icmAGgV3zqvLV3oCI6P696ry8xo8BeonOP7Ua7aVrBH NZvyhBcJE+OYKn+rDV4JXka3C8j1\/uxKPaXtwQoAyhhftCM44uD+ZIQQui40PlTcmZzhWZUzs884 NCVOb8sBBlFGzOeD1uEkYGrO+CwYA3M9IIAkBU\/JR9SV7UmJl+A8YLJX+JuRO4\/Rw+ixJFch6WMT tMWRqmSEiAajaTwVGeND+jUgZ4QQiv7eSsp\/DJyC5sCBA4dqin9eQTuAAzjQrtMqpoLrgpp5a+Rc aoY\/4RI6S67fTWeOzij69vyMfGF+J6qowAAAmJVoGGOM4\/UV1+obVJClYwghhAxFvy0\/uDKrMq4y iZ6PwFp1loDJxhC3FL8SM3dZdYWaulo4k65WAyHU\/+vZA8o96rKys7ZlAs0bHld77NrJnvvIEVqp dlo2MpoqZqeVzcbbMLPoeDtYI2ZlW4t+bef1ZfTv1hPbPPceGEp81wZ7DTwN3n9uDAqYTxQqQsga 1X9fofg6EM3zJRuB9sBrXdWqrE30C9LT4uq0J2fOLKdhId4lowbq0\/RnOKsZ1\/tN7QYkLw8\/wAdx otZEOef15vXmdcr54XzdX4W12CbcNm8vmVXwiT195tz2QOKyubT4gte5nZNI3tx9DV\/BnWR7kq6S fCxpXVIazZ6Y7TDfbiGt+IObsXukRz\/KfZ\/eOXYnsS8ZIfWy7CPu+\/oOeV6wGIuxmN5fWAq7YBdN 30u8mpj8sdEUMsa7MuFK8pXhjZPl\/PVTv9Z+TI3XbrtJb1NGIfe1azOhzVjKndNtHtky+c84Auxg DnOD7oGmQp6FAGrAO0pRT5wHzNOC38AT1tVRqSU5Iy5ntncSuqix+ngdbESJgt6EX4N+APDDK\/P+ 18ApaA4cOHCopvjHFXTV5qqTVQvGkll4yRJJZKWVAVG8pSrlc8sGUq+teZ6ho0ESff8d+2uLr2ZR H7LrjkaRjc5MJOkNJiNMG5kOPkRrkCqgAmpVN\/6u66k0rjSqZGqMAieBsyqT3iY2FWezR1d7p3pd LV1hF9\/q2Penrs5LWiwqWxT4B+ly3nxeuztDzvBIvp3xJvPNNkyNGYbBJYV8WxE0xsmUaqZpnzCw orz76QEPZjBd1bdYbJq2bdwMoqlwfzwFe+2\/SDa4BI\/hWSlxsiKETBBisgeU5gSKS4qzSxo8z5Xz zYZ7TqNNTBHyKfKQ0ew1UHXTnp9xkbpSMkMz+Zk7vEliNcYY46I9JszxEdKtZKugfyt0HXWH696+ 2FPhj7fp7cGJWIql1uQPe3V2t9tlfJr4zMM0Qp4FF1DffKssry1t3OmujvkdrnmQP3ifnLt38OjV tE8YWUt55+WdgDs3OhJN++jiPfX7F7zeyLmhj8Bc1V5AXCu9Hrfa1iqEuljG\/bHAcxEzAyLoyp\/F Z\/KkUy5kTclk1iUcWHa192XG522nXrN\/TWYOpoNVE9x0IeVQAYVgxfBPkA7M9UELKGB7Up7Ou2tx m8m\/7pbbd11f35u0J8xmeAMNc5jEcgAYDP9nwSloDhw4cKim+O0KWrlDRVXzyorKzz315HzGpYlr Jvisfy7nPdq54sYX0Gs5122n0UWD6ULcvp57ggejT0zM9asMltKuyLOajUsYa0UX3q213tl+Z5px hpzbptXxt1u17LddJ5ZgCZZQ3+vRssMXDt2ls8qCxoLGAkMg+XRiI7ERmx6nZiw0UsM\/ejQAfB0f wA60Rthb3Gtcv6KaJI+41+VhjwcuZd7QEQ4A03EDb4EWCjssU1I0D0EPGN+tupHmQL0sysvjKpvz TVRJDfqzekb7dJ8xpIOIuciCZymieWv\/cQ3Q9BQrKFSISvkAH+AxXSunfkrFv45JJalyVu0Uqeb2 p8+PU4arhxpzBa8rXm99HT+CjEG8g72NvOEOUagYY4yTaM0cIYSQ9e\/ruANRAODFuIiUu3TngQhE BrSHJg94wBORtYLDH43MHFW5mcwpjEYjzg8fSKNUCj4V+5Uwcxjx4vjUjwdojXme6viBEy5tIbwn 8tRvNZpuv+f1lKnTjIA8j5rN1RzUhtHX896XWBUzzvDzNg8m3GdcFk8guFcQk+xhsa\/O6DpAR0R9 nvcd3meeL3F1PO7uO\/NOJB3Rhnieln24RWvsXi0bD3LPoPuT5EtPSa9Sft\/z9c5XTA3aIslpUd0n 9PPqFzvgwcDTB8kIASFkjybEMz6Z\/9vgFDQHDhw4VFP8dgWtXHM8dGt\/9L6xc4ni89JwsHE8SNfa d6vb3MWTUQzIELyByd\/FL1A4m1XQ6IW9ngNT41p5c+zQCUxe7oa5K9+tTFpI8mlxMp6E2+8jrga0 C51AjzOVXAl\/HZWJlQkiD8o12mrwNZmVkeK+4kox0\/FOTV1NQ01dyPbAU+gBjstwGS6j9wd2wTic pUOq2tJh0gOYVcy5cAUVM1wGMiiFH4dYaaWbAATArJtyPusKbZga5biw8Y4z85cSTWQlqtXXpNdM oog7TegEHWrdJnMCXo\/beLQ5GEDm4XXCdUfoNfUjms1tlYuK537awSThZMyjCwJ6Q+u3aayt+Zge \/\/nHGw5+bvT+eYO3sfeb+EA5RwghJJQqruX7nbAFEYgSqfFZAqog0SB3rGpwlX2VTRtSRfWz89vv b9B2lpxfD7k65mrfbmQlpUyn7EyFIRBFbmpWeUfMKOLrhRscNjLPt\/50zcVagZSXnBQJK9ZQ\/rjd u0nvmA459wzfit8wyR38VbpXdQdSF1Pv1t4v+5o\/ImOmc41WeC4bspOMaDSuahzR2P+UDFH3Vezf vW8bHeG0f9b+ePtSmmUSmh4iClbdRtIp3wnf9X37wZ1kZ6jsUR2kkko\/rymuK14uv3rfS87tfO2d HDKP0\/QaPXgDw6U0rUUd1GECcAqaAwcOHDj8u\/j9NejPOBtn05rcWNfBgYNcPJ7I+ZaGEwRT2C7P F6FKIYsjEYTAdCyAGwpZWAC9IYatmZrbGlwwZFbCa63DzngNnfV\/1\/tt8Nvl60jVq2pE1eIqvV2k iZmgjsBUIInxknOki3SRblUQfAVIBakgFboSctvzLRM33ZWSKp9uiW65vh7dXqwuzhIzilbtg2qI WhrNa8YV2BJLqCKpPFTZtVLgTrIOdmfv2L6Dv3OlnAsrNd8angaah30Z98FM128Yjp4otGpX7uih AzJgXR5l7N0EwP64r4ypSVqttutbn1mXaVPg2MSV0S9ltUum5I+gaW+Pp73gBxwaQl4\/2uR4\/sVx lFsuM\/PTnU7vn\/4uwzD9hDyStZHaJaC0jJnVHzBsbHsDpmt4nN3HHu\/iaFYE9sWfcSxb5QQAoJIf S7AEY6YDD19xS5Aq\/gWpIIQQPT\/Jdck9yRt6vPcJASYBm0aTrvRXCi+XXnlLXUlxJmEOYU1MyNrX ZmqOFnUZPT\/teMelnfZRxVzTyXi\/yST6elWgJFHCKN43VRHe4Uza441Tfu\/8mI4tKe0LNPNTaA+8 IWkj3Icn0GyXXWU+omPWNPvGyMLolnHNMzRROxaaQQdmBKKCPNnnWxn\/faUunbT4UpOfTb7\/jcpc MlxrWtGVj90RQrsDFFf+sYnZx2AN\/BnElYVLMcaYdnSBcgAAOifwpb9nIXli\/pNtQ1bmYjHGGDO+ cQApSBEds6sAH0SUI4QQ0hJ\/dWXv3w1OQXPgwIFDNcXv90HHwCl4T2tOsv5ivpixuar04A\/hD2G2 14IShcS0MkhXUNC9IeZPx2hC\/4k8IQteUT6ksuP2LkzP78sVBwcd+jyGdKDYdDYrMusWbdmhFW8Y aLS3gDiZ97baa7v37UviTW75uqV1SwmtmTr3dy5zXhe0Ws43W2wsW\/\/OkaylUnkrGCtgFGs5rlhV znTJVuMLZ6m1pC6GmFYfGkfv3ULS+Jb3XZa+8tY0fTm3uuu4slV76nLp6t2vy5QUur+CmJwOnxdQ rj1TN1yfWYmm4q9qos74WFFvELEdPGQxWCTbSfmjq7fMjzL6onRrYUAa03NPLUmjozGTFVFvRcPC lsmUN1zl3qsdc\/0udk2TO96ivKJr2ckiRBVtjEOk6ztTaiSPafXhM2ZcB7yTaLvsDeWaw\/RX5oVS Hu8R\/zZhJs0iwZ\/xZ\/z5A63Kl0M5iGR0peEx8IH7I4kCjusSPyN+Pa2hrq2x5ujaxb3JmKxPr25b u+s3InfMqdByeo0QPtG03ptaC7yYGQXHG90NemygHDLgHZpNaVhY\/JY4xkd89OT12tfnU\/6udsyA DzsoN6tV07Qm4wvuE9tnUG+mZ+P9TncFt5fIiM9lVK9R8aN2bSAdPfhn+Nf5HwJo3nFdqAt\/I5AJ QqwP\/gty\/trO\/tv+tRBCSDlrhS49xGkYs13Cv4DJtskEgKhaNI9OBBlgpk1HpCqgDdvr9FF8\/\/ci Hf8+cAqaAwcOHKop0K\/v4tuYNmv8xbFlmDh\/55b0dO57hr5udEJHosv4XHEhFNJsu\/+CUOTFKmbY ipexPoiiwLLSUiYLQNdI8w8txocMCWgWMK6A4sBy03KqLyDo2YenHxiF\/mZIRK3w7ZTHrPrU+hNz fikGmQ0zmYBe1xR3fXcm3Uv3tO5eHUaRJo1PmBnHKCIJggptRiF2lPSyHM\/05NOw1NLSY\/b\/vv6L nbeYEUlFWOGFRCldyVfUo\/he2RGqmdWl2jXMLWjNTWWiwFHAKOj8LdlzUpiu6SMKhlv1N\/5IXAoD Tw6ePPgeVWTJKGlCkqWjn5z7iu7uvHvXnWSdPI\/3P\/RqkAdZKSjZhfprOaiRlX6Oj+sPbcbMQVid tZ3uzCj+47sPpy1iZh1W2uwXlTKJwa\/ET26UMHMO14uO3FFn0s5cWjXSq7+FjlDsLtrvd9DIIXMg IcveT3sfTvPEzbTUz2ow97NPhldVGybf2M23Xu16TFIKLxOVIEYxJ4amR6cxz99NK\/+6\/haU34p6 PtJ\/EeUNVN293EbSGu\/cxvP2zo\/fOEXOLfjmIrOH+SQPfHLWBOH4HlvJKHLquJloNjNDcufVLevr TBp6526d+3UZvZek37UXd9zaKW66Afx\/AozxS4xpD0zxG3G8eHouqVFfuXqp7OLGDWSM43\/az\/l5 ix56cl4VKxZIYugcVv219QfWa0Br5iMdRruNvkxdLYYTDG8YWS3aD38TOAXNgQMHDtUUf3sWx5C+ o26NnrWf9F3eM+5AxYGuU0gWwDKLsbYTmS7LfOABbzWzA2UXQh6OYGvQd8e+3vyCmVO+EPc83v84 VShouWwmukdrnrULjDyNmPRcjzVOa5yYipPb1XpO9ZiaYOtOrp9cmfQtNBJmIsblULqwIq2C+f0M ux+\/LY45n7cWkVGRZZSLeAWiEqZCVm7IuypjFPXzLs9G3ma6gGcVpq2NZWr2g4sGNOj2kc4qTzg2 KWuZfQtSE5V1k0VgfiWZVk\/SSPrj4+ExZC2m+Lg4Q2xP0\/Rs3tsk2LolkzsibCMcLdxHZ\/VLY0t8 SsKFpGNKWFHovNCebW+QE6rAGAvNSFV6aOEwu0FOz0jNt85pu812cWnkip5P9Tfz59F0t6eTb2Xu dmpKltIVCLNDc67RlYuxf0Q4oLn0+p0PudqyedGnzpdG5DL3T3a9oKB4A3WVOH5UEwkvUj4hZ0b0 LEYBq4OqiiqNzoBMSX5xPuMq8vG5M+MWo6Cvr\/QT+zOff2UvQbIOk\/\/t0qCJU1tGQbde36PXOLrO EJLuxJUGJ9Hn8U7qLf6N4aPIERbWW+zzx7buZATTWMdtROOjMcQHEns3xip6mOMzOW93uP2OjoxL 6KTgxLvjVhPIWlyZRFoovbydXCEP8\/X4DZPI56O88lfZpaG8clbZxVTdUJVXlVe1w5DkM07ZNzFv 0oz7ZASoLtDfZPeUPg8u9q1WjXxP38835+cJmDmjVN+koGgDOqc2quPwi2OPNM4jr6elPkhZlUY+ gVo1alXUXrH3m\/k6PwNOQXPgwIFDNcVvr0Er\/yJDEhRAgSmpUV4efOHd+YMniOvhduj5m+e82s6U 8w7v3R56rKX7U1dVe6TGpMO93RahE87UKNVWmmuYLaR5yits1sasuzKC+GL5r\/gNVMaakWnkxNTE sER1mpXwuuZrp9fvqQvgndFb\/Te8emRW9\/P05JYpUdTXbb5OZ6quHT1+06XOAc60QyJ4HKh\/vj5T 8TMXGjUzYrI3eJfwDjClvGxEVZNKW8qjYhLNE5mVe2\/zI4IiGVdARGXSo0Qm3U\/aV\/Wa6kea3lY\/ 1aWzC\/\/DCDlveaVl15azH2XKeRPrJjfcZxeTGq1WSy1nrfanSZ\/1EL\/gjUE7V5Kq+9YVKxuujB1J quSdHrlnNNlOXSVWfc2tLaro+SS8+DT4E9OP4vG20NpBDaniX6Sxetsai0tkVuBTTppKxnh3spZ0 +8xtMds22ZM92hx3TUuiWWYwJGlSb\/0AytcvmryzYiflV94uFxxhRkBlRysWVuRR\/uDcm9lvmKf+ lsbLeW+Yz6e4AHcUMj5j3iWVVjxmBGWUa3TNnEkj7LCw560xjJMcvUc9eYzih0xIhkyGf4YIYPKV 36c8N7\/JZF+4nnNeb6KfSGqcvY36dOzT\/SqpoU+znzxzUsMFxBczdebMl7Pb0\/ff0Lg29SqTdt5T pxfq5XmUnKHXsjaabSbcoVXrOBwPGYwrogT4IM0jNXB8ATrBIjPyfEk9pfWl9WmNViaUghRTH7Ik XVosZe639KzkrOQsw6VSqZQZEUs1pFIp40SXghSkzByJ1FRmprC\/lZJt0mV0JalUIO0gnUO\/z1cr LgdeajaWuLbSfPKiBdfpiKN+WuPGbdn08GKQgCV8C1rwmZLCCXn7MhhXUzR+b3PZh67MPLLiuPbx pZZkrTNajtaj\/fl\/uccop6A5cODAoZrib3dx4ARcgSuYLty5IIWIeiTtrCAwPzffZwTRjK\/EL\/Vf nqG\/SKJAUaeKTlTButx2ee3agtZIbcPsUux6LaNVJCmYgZUlrfJaArDZCd\/rWYircBWuogohq1\/m \/cxRW4gmnrJ3ctIUx5lH5Tz8bkRmFKPA6h9zTq\/LKKRC6xyPXEZRWr82kZkwNcmmB5wn1O9KeZPj zubO1JUJtTPMtpszCoy\/FnVEjOuhykO2U8r8zH5w\/vjmI6NY3pyNUIlgbKhB0th2sUyXcbxMbYia BuWoReXkcsZHvv3dTOkcpgauPUX9rkYr5oZ1hrdQwrzfEPTY9Lr8xiUhJYx+WHrpwKO9HShv1MEh x5Fx0XQKatGtJV3nBrN0DtebxSjCJUf3dzC6Q\/n+0LUbsltTzsvOSm\/ApB9m8Yv7FjMulbTpn5dn MtkvXSb2Eoxm5jScTrpEtmLup6q22hktNtlDH9SBdeGeg1TowfA2UIGYERG8A10cz3AhCBXmVGrC fMx8XlfXnhy0gfm8VSNVIjCjINMGfFqe8pDyiZsmbxjHdM22cLFoYjmT8iV9Fz1ewLxufqXGInu2 h6ARjOQ9p1y2TJYgY+4v7AAXYEYMKAhd4zHv55nwgPea4VG83XxmfyiaB3xmbSDvLk+P14153Z73 icd8PrzrvExeMsM\/8DCffT2Z94y3j3n\/FJTJZ3q0C66r1hAyz3ebY10vDGdGvCgUiXjfaosuVkx3 BAMQgYzhnUHKushuWp9N2sJ8Hscyj33e9XYMcb4bqRhtMco4sRP+IjgFzYEDBw7VFH+7glYGLsIY Y5rOBp8BwI\/O4oMB5IBxrBrDDcDxE+kgojyL\/KeadwkIQahDZmnBGJIBNE4xp2Cl0NXYEtTAXJ+k P9wruLv5TvA+0mNuX\/f9suNj+jnIuWdIxwXDmOyEZ3vudTrjSPnioYvWzmAUpx\/\/2cgnKymv4V9z WK1etEOEbg39gwarS4iP+U3469w321qQGlbSm5jDsapWJBtAT0ttmeo1WgNuXNdhuSPzC+5R37nM mVHkNn0tPC2TKRe48VX4npRXeUpfS55RXnmhaksV4zrR3qm+U6MBc\/c0QI1NF4TCL+kHBFmK2R6g DqoK\/BbUhEeUSo7INkv7Ux7sH9spVp\/yufX2OG5k+qOsr392kz6TVx20+s2+MibdUP+lJG\/ayRDS 1XDa7mnCKbUWhJHT88w8kOVF5yQeLn1Q4\/66KUTTPcl6ct5vVQNyTdK1vIt6Mk0yK9J2Trfdo9l1 amngghjXB2AowtsYXgH6CndoADxX8Pm\/UqqA2gMfmK7WkAfxwPicSyOKd+cyitQv\/fbGvbGUz3w1 Z8NsmrUHV70v7b9EWz6CqoNOM\/sCymuPsE13ZlZuamppn9VnRwiPkTuPWQkJfBBDGsN5YAhsskY9 yGLX\/qLaUIQTmdc1IA\/YEQWA4kJDNQB2pStkQyYwK2FBE5BCvngxVCqsjSwHATDJLPgjWCJmTgvu gJ3CE8oDC1DsYJoMXgwTgBUw3y9wgkSg2Xrw4MGNaYcYRb7BY82hecHUd25dw6abzYMHdExlB+kg oD2WEELW3+rKziloDhw4cKim+Md7EiJdhBAqjlT860Pbv7a3r9WU6U\/yfxQ2CXsoti6KLuoyh8x7 rx65SntVw9nn5Dz7UcFCnGdKNGLvomHDFzE1NekcyQkJk6VQOqL4Wr495ciB54mmUC62EjcWM64D B32HYY7D3pL8YE+dVgtaSTeSHhd\/GhEEwxE4QmvqWUlZ87Mcm5Aq3Pv17+++v7SaBChfaffq9us5 1DWRUOvimwvjqStFdanUQcbUQJt7O79yYlwxA+a1P9PRj7mVGlDC+s7\/BD3FdZ\/IQ\/FlHKSosFOb Z6tnMj0Pl1497HvIgXKXty1XevYLI07UDve6\/uFdSWftYzdE7vd94kA0VX2Ra6YWs3L0TtjREYE7 mayFDChGNmIyK2Cmbq5uHn6GOJnxOVyKUTBxLg9bOGL4iCcaJEui76U+TgPUmQ8wE0owzU4DiAIM rGK2AsV+eQD5iKmBwiuwBKYGC4bAx4zr4113\/5LrjCLOmZAV8ImJgsCbZSOkjGso0SNhRgIzx\/Gx KOFJAjOH0Kmgq3sXJqvl8oQLGy4wNfXMucm2b5m0wM9ZWQYFTDoivx8\/SZXJl+aPUNnDZ\/aHZGgQ YhQ1Mkf30WLKeUZoBWLmHFA+kgAzAkV8pIcY\/Yiu8gYj5vuFHCCLyZoDXneEgMkqQXt4k1ER5XnZ edYFzIhgYPsxKsuZlcqq\/YTmmoxLCmpBNjDPI3gp8SgwhlCGNwIzYOaQSrsXbsxiFLaZn1kXM8so ktiOHiBVpBrP+noAAL6qmJXBKWgOHDhwqKb4xxX0r+I\/Pe9ovqw1QmwNBz\/Cvrh\/e9I3+OWjF\/We e44jvodNxzZu2IEHEh+pu23r6f2ZmrHTnGYNnRgXRsqGhPthTHZHSMTrc9eZNDGhjmqejO36Zwd2 rEISNxOLxcz2ahpqGqxrAgBAwQXxX0cEHxXpDMoxxvEYBxLXSQ\/osasHMCOUO5ACAcbEB1A0r2hX 0c1u5Ax3vNvacct6uvIsND9uWswRW+IDaAb1VzeEHweOVfqDCDLZrJQPiz\/u+Mj0pBuUNsp6ZMh7 MsIZ2H\/IH0NvzCZpJKFbQiHMinYo2aVxIvVqe1pUdElrWihkfNif9mT2C7lvSFY2Sg2kblK1PFaz KgBpIS3UPZpoUJyGq3AVTUPzEDU54LKOuoo+Rsf+EdRMSBS8jb3DJTc2z7gKQKGGDABKIxAeZrJD 8q1yAj+ZUy7bLtqR1iOPVJkPfN6bur7ZEjLC4nfgl\/Fr0RHV\/dq+c+6OGkRGVMGdQwYGL6b51b3a 1nnmzbgsRvcZB+PZGroIhGwNuPxh+Yiy8ZQfmXXg\/n6m484a7fUe6x7dIhqz3s56c526rKc+FD20 B+4yvuqGsBRZMcczAzO4ocANFbp8f4AFClX5LDgBrItmE5gBU0MHVRgFO2lPRP90v1XP7Oi6in06 B0N81tLnvcumvtMns9f\/HnXh6Sl9XszKUCiE2sCkMUZVhjz2YzrceBq0qHDlxZFZEfXLGqUahe9o +s8vdsPkFDQHDhw4VFN8V0HjAowx1i3+2utIHyGEfl\/XZIwxxkVqJgp\/vOVANVIMiEBUSTRZWUDZ yrIhw6zkfLVsZe8VT46QOmDUppg3mWOExCfdfcPgtwsYRcubwbvJ86b8SfydB8eZ9LQaN02Fqky+ 7U6Xndu27qP50LNHzvSf3rC\/OnmDFoQD46IQZ4ifindSXrlAVCWa5EgUGM7FuXghXQmFjJARMvqp lUe2AAlUk4mgDERaVGJ2Bndwp64Y3ca69XVdS0h+2\/iTE8omBlYSH8IK25l9Z5TSE27i6pRTn6kp 8mN5VjxGAUIs6Cr4eoOAx1alxVrSWOlGym8LXjk+Z3y526YctT8+4gj7HKoCpJN0FqfT9UzqqaaT tZcZtsk11e4zW6sgMWayNQxHmPsVnac8ITmxKjHXiyhwbILz8Jx00jMPIWSIUAF1\/ViCP8S1Iu6m 6bozzGZW7iaKcWyPMXZjG9IibNWFyqEixoVil1CvRhOmxokK0QZ0jvK0W8nHPzBd1wNjXsy\/yoyo Dtof3ri31XpyfiYLTQ1Mrx2hsxwV4AMjWhDFdkfvdvwtlSWkKj0mcfyQidFA01w0oUyhi3sZMBV7 ABCCCGgcN2h007ijyXwaw\/RHrRrNuCj28\/e23HOLKtK9Tw8UH7KaQDq6IEOUizyz6JjJH3JBGUr9 b+Ap\/GVgCZbg4jiyLqJ1vJdxGz8\/MueSfC5pw8d86my\/MuP07g09aBaHQ0\/nvi386P5U7qnmC5n\/ Dz6mx2YGMz702mct32l5ZpE7Nkdv1ekNggV0BKEBk8BC9NV1Fj8LTkFz4MCBQzXFdxX0zypkjHES WyMGEZiBKJP84vwpLasAFyhsD1AIlTTfGDIBoFUOSTcL9w4zDB07lazeX+mwPGZNowUkO6JuoKuk cyZdCdg5wvtZ36N055mv09fGM77NV7mPCs8yeb0zYPr5CaNOEk1k0Mwg2mAuVbhzbWcfntmJKuYO 9zq5dqb6GeAsNEWML9JtkXtgE2aWfcfAbeKtg2lHD1F5pafokhFxuuIKXIGrvNmu38AqVOX7hxDi IQQ1Fbb\/RlvvLyOiIjIishTX5Nc8sp\/UDDvtHLh8wNzR5H4umXZg0p5rDYkzdfyZPnO8mVn1mp3M B1sw+dVJ4Z+8PjE+6kNXrz2+zKz0GxQ8YdRElWsk0dlIbJxrvO52IXM91ghl0TmFHJyDA\/xIFdU0 zWB7Az9a4yxdVjQ7gelR5yJo+oeQyRJbk7wqZfHG9cSHM+T+4PJRXZqRKqZsoKy1zGMOrcImgyeY xN6QU80irU9aS0NJdszxGz7tTtR4c0zOT7qfqHV8xCzyhL2I8PXbO7A1yS6RDZZ2knWm5+O8rv7S eq7BJK\/Rp+Jk2tFB28ksh6G3Ub7RfpqV8R\/fP\/n+Fe4p7F9w2YFUhVE2T8ZT55HvsVpnoYGQ7dKu rJj\/G9gt+Io9Gg3DDUcYMa9nHcx0yzxC88WxK\/bAtRy2K+4wC\/4pIBWkgnSY\/08qcAWuiCLfn5G5 o8+OjWtCnp9OlZ0Xdx08nDwPr7q\/TH1hTdPvKjtW3qk0o9\/3kdkD181oE0FmFepOrjfCKfAy+f7C bciA8Z8bK5wP83n9KjgFzYEDBw7VFL+8khCn4mR8xZrkzUbvj3KJ3DORVHnPvDr18UybQWSlYGZA ZnnWNKqYDY4bWuofpC6Mvq37Xu1blEwU4fv774Pf1aQrv\/zqvxgdtpT6YDt59x4\/jlmZpnpFrZMG U1N7LXymdm0z5eqdeFcL9tMRwaqmaw6tWTGb+DaEe9Q3qZ+mvozA5\/UhAAALMklEQVRhMwc1GXDR h7hAJt+c1n0G47MUPlVPUWd8qX+CFKSgzdBl0h4Sxhe7t87ObTuZmvW+XodWHlo3kfzCm\/c1z7To ebg1\/Cb8aU5BD8oAmK7Fr0AEn5xIDS\/6XdSdSH5fkvZ3adp52\/O1epC1fp+vpmmnraY1vZqHrI5Y 0fEPDBo41HtY9hGydqvOaLtmdgVbSNfJ72WjlKqXbCiumk4SoMdcHtPae\/w6kufX5+kU9exG9Pim 52t485l854Jp2S+AqVm\/m\/7Mv4zxXRdFph5t3JfW\/Hcd2V14\/Fp3YlxRO64WpPY2egR7TuBDexQi hBBaxSZE\/+l+F+AQZoSoBzJoVMz6PHSAcd0ghAQISUkeH5ZijMV05WiJZ4lJ8XLas3L8gzGHR\/fc TdayTnk9XTiTqZkCHwQKKz8FIFBa6\/ltlEA2MB1c9tzZYb\/NmvJLna5dvnGyNVHdvD68tbwbz2U\/ cYRqBSzGVRhTlw5IoQpAnax9REKkpTBn8TeDU9AcOHDgUE3x0woaS7EYi+gv+u3CW\/o3jR4QhXdk 5DG1i+odiOuiNXSqPYQmbYCuvX53E6rXoKxZyYRCJj\/59eln064zaVE1NtZe4sDktzqfcTX3Ynya +ak5qWmMj\/PZwXvbfJh541G7h\/sM6EEVkrfGgPX923VZT27AaLQe7aQdK26Jb1pcv7OXuEDCbUM\/ he8aTvK8Wl1q86QNkzcMQhAqKJSfRPi1UGEIo6eEhcIRahZUgYzbPuH1pNa9yVolZIgMkeHv+wXH GGdjTNMCEUImbFdmXIqTcCmjAFXBElRplglSRapIlSpwjDHGkQr7Q8iZ2d\/3OniU4khcSlc+rumy yvmPhNfEB6K\/y15yx4KOAJzfeeziMx1WwA4cgcnmAAA7YGriwId4OE7pe98noWJmjkJ4t2ztSMMo MgaY8WJW2vzGw4lCRIbIEHmHjIe\/iC++dVsmbw5qAqQR3wlCSIgQzffGYoyxiNZ84SzshO19yBkP 8xr8aGDMxUaEtxlRd9Rl2gFFw0ezp+Z9+HEoPc+ZMZntPjen\/O22VzYvO2UTRbk9cFfgnpO1yNo\/ pIpUkXFl9o8drPoBizDGmHGRVQIAUP7fV0L\/feAUNAcOHDhUU\/y0gs6dmBOQ07M\/0agjGo2wnIAv kZpi36wRmn+sp9vzNPkZqkyNFQwhAt9W2KW2wsohQ5Cwa+1hFlaVjaY0yOBNt3uulJfOzv0QE0W7 OK9xXt9t7RQ6a1\/TpGZorUs+xJWBLJAG0sgks67KKxP38\/b675bsC5Vz1b1qC4Wp1Pdp39DhqiPT YQFqQqKCD\/gnkW2WlZ3FKLpIacS8MLPXpGq+0m51wtq11MeJBEiABNL5P3eU\/x1Iw6QPpJtoDzjv CQO31Td4T9YnzlTd2El9IvOGHqi3lE3bc\/+Ro1DgCNkSPuNC2d9iSbqASW+73P7CtdevHchKNVTA M+Z5xP1zNoXv4N2kt5pvFl8ql\/Nt9zZHbDKlLqPRA8bVmMB0bNEYpvlBk02rK4ESYL6PBRfy9fKZ bBYfzWOlRwwp37Fl9+g9yfOJr8NaZvPBdvbWcuDwt4BT0Bw4cOBQTfHTWRxP9z2p8Xhvb9LzwtG\/ 4YXW3YCkWfBa8kGVyRuGgD91\/NJTYFaQzHZsAAA3dq19xvw0jwQmzRmdrRR8MqE1zeMDT6r6WGwh aWQ8ES+Wt4TmgSFthFjFrAzlLI+bu65HX1uSQ3yv4W\/DG4Q\/oOka9s0cwHGf0k5+RkGnK96PzJjP Op8ZBVPjjxqfajQvovlcaSABicoKxZ387ypojHEaxjTrAiFUAyFa0y4LKTta6kEVtNpCjQsVrMej FspUeL5KoBAkCofQU6g5fwfIlaeFGRcO75WgK+v6r7xQNapqen2attEJAKD6KOgmOzzeNF28jKzN m39pYcGiPMkVOd+9d2fAjt39yP2smiSWia\/SdQLYAMdhpuasY6nzTOc8nVPYYrR96s7k+WROxirP +rXNVj8a76cP+gDgBBz+FnAKmgMHDhyqKX46i+PQmgOa+5vpkbXn2gW6ugY3mDfMgtm45Ju7LFRg yUqKGkAITLqXxlGNJdr7KTdoYbjSsCtdmcjL42nyCk\/RvDATAKhf8MO\/6FiCJVhCZ73LhpTVKX0W RLqcnZh2LPGozSiyvTt4hDD9X0Bdqm6o3ovZIR\/yWN8o5LBJBwASR0mUhFEsz8qenn\/M1NT3aR84 fSiRqZl\/xyf8PwgTgJyvpi9oaWk1194bQNZ6Vs0pC9NmerLgObL7fGZOA9XnjZYeVdwHjmaIHwBi 69KjFPpxgKy5ZAyP6SkJvSTzDRvSlZlq4WoGakkRSnGCSl1i\/k0IwRG0P5IRlVtWE+ShPpz4Lk41 PzfqwpUFJIukvHHZ3LJhVmTlH5rE80HzpaRDkXoL9e0axnTlHOqB+qDxzMre8QDQBzj8Q+AUNAcO HDhUU\/x0FsfjRQ9fP1QREd9BsOcN4Uuafgq1H9kGNmBmgUEA8KceZCyaQoyCjzgRzIDpyvw5Me1O IpMGVr+73eE6zZhsDzNkhIyY9KwvCIKfQTmtyWnu1YzTUn9BVhItfrS0wbK9hzbI+Ya8tWfXxk4k eWRtV7Z\/0p5xddR4UGtLLTa7oDxT9JnJn3008\/6R+8con3hpStbUEuraMPtg3tv83W2q+dThlzNl qxMQQqoIMSsXlV\/vhiah0+FEwbVs0bRs8FTaYeV91LPFZ0ppNogHtGsiuMzsQA+8EOPbhXaQqbSS zgcxPfP8696eXcb47Dvdal9zbPZ7+jw9gfNwj\/H1HgUEbPZK9byfSpyNuoFRsIHhGwFgA7xkXuf0 cTUCp6A5cODAoZriuz5ojHEVxlRhVkmrblVN703WJg3pMWjw0H0nm8q558vOg8YPVic1Rp2t+p1N 2a7AylkAfOAD05FQdKD8UjGTbHBXcvHkNoyJJjrrdt7WZ18\/kj2gd1AvXd+LpqP9Kr6Xf503IfdR ruZUUqO+Xvta9yuRtINDskHSq6RU2tHCIsJyuqVTPMmr7e3Y54x3m8vEN2ox2VLH8ilz\/gZgAOHa pMqKVJAKav9xHvx\/AuU0xKq4qpCqezT7YgFvfvnUVQfIrITkjfpS\/xXmN+S88SfPTeob6P5k7WTb gGkpGND26fxyZsRjuF2Y3v0udfmsHrbWbWtZU9JDg8\/nN+aP+HoaIwcOfyc4Bc2BAwcO1RQ\/oqBL MZO3CzLIAaBdr5NHJe35eKYb6dM7D8+NX7h8x0o5N3A0Xe54Q4V0yDCxtDhixdRUC5bnmn1msjM+ RSWOCGLyhtdkrFVbsevAATlv6NAINfJbS5zHyj5aDv+3Iesray2rRbt2vzN\/c+X1kbkkn+7N5zdd XxpSHzVvCG84fyxNJ2yp7anbekEk6enSeLbbbPc59HmFIEiHZJqmyClmDv8mOAXNgQMHDtUUP6Kg MU5iarIVAJBjtEyBa9C0LfHAKixuZEoSj185vCx60XzQXjlP1k+WJB2m+c7mYy28Lc7TGl+r463T Wtt\/Inl26hPU4zUaPCBValQT8VH9v54mxuF\/C8rpd1\/mMBjXggxkIGMSoOOgCqroHAA4gBqoMSv\/ xCAGMR3RIQ2kgTRo1+7vpe1x4PBPglPQHDhw4FBN8fN50Bgn4We05xpCyBq1oR0lcAWuwPdox5Mv +bIiIbM9Qm1o9sWfFJLyCXIKhsM3gDEOwZj6ogHACoCpISOk\/zu7znPg8E+CU9AcOHDgwIEDBw4c OHDgwIEDBw4cOHDgwIEDBw4cOHDgwIEDBw4cOHDgwIEDBw4cOHDgwIEDBw4cOHDgwIEDBw4cOHDg 8I\/j\/wE6hWw5Ok1SjAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNi0wNC0yMVQwNTo1OToxNSswMDow MOOuK2QAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjYtMDQtMjFUMDU6NTk6MTUrMDA6MDCS85PYAAAA AElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>ParSeMiS - the Parallel and Sequential Graph Mining Suite<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/marc-woerlein\">Marc W\u00f6rlein<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/alexander-dreweke\">Alexander Dreweke<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/tobias-werth\">Tobias Werth<\/a><\/span><br \/><strong>Start date: <\/strong>01.05.2006<br \/><strong>End date: <\/strong>31.12.2010<br \/><strong>Acronym: <\/strong>ParSeMiS<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>The ParSeMiS project (Parallel and Sequential Graph Mining Suite) searches for frequent, interesting substructures in graph databases. This task is becoming increasingly popular because science and commerce need to detect, store, and process complex relations in huge graph structures.<br \/>For huge data that cannot be worked on manually, algorithms are needed that detect interesting correlations. Since in general the problem is NP-hard and requires huge amounts of computation time and memory, parallel or specialized algorithms and heuristics are required that can perform the search within time boundaries and memory limits.<br \/>Our target is to provide an efficient and flexible tool for searching in arbitrary graph data, to improve the adaption to new application areas, and to simplify and unify the design of new mining algorithms.<\/p><p><\/p><p>Aufbauend auf den Ergebnissen des Projekts ParMol2 wurden 2006\/2007 folgende Ziele erreicht:<\/p><ul><li>Restrukturierung und Neudesign der gewachsenen ParMol-Strukturen zu einer flexiblen Graphbibiliothek.<\/li><li>Erg\u00e4nzung des objekt-orientierten Graphdesigns zu kompakteren, zur Parallelisierung besser geeigneten Datenstrukturen.<\/li><li>\u00dcberf\u00fchrung und Zerlegung der Algorithmen gSpan und Gaston in die neuen Strukturen und Einbau von Erweiterungen f\u00fcr das aktuelle Anwendungsgebiet \u201dProzedurale Abstraktion\u201d.<\/li><li>Entwurf und Implementierung eines neuen Algorithmus zur Suche in gerichteten azyklischen Graphen (DAGs) als Spezialisierung f\u00fcr die Prozedurale Abstraktion.<\/li><li>Implementierung einer angepassten grafischen Anzeige f\u00fcr DAGs.<\/li><\/ul><p><\/p><p>In 2008, the following goals have been achieved:<\/p><ul><li>Documentation and publication of the source code to enlarge the user base of the project,<\/li><li>Implementation of a specialized graph layout for DAGs,<\/li><li>Restructuring of the graphical user interface, and<\/li><li>Added support for clusters of multi-core nodes.<\/li><\/ul><div><br \/><\/div><div>In 2009, the following goals have been attacked:<\/div><div><br \/><ul><li>Optimizations for embedding-based frequency mining: A more detailed look at the pruning-related properties of the maximum-clique-test resulted in a huge run-time improvement, particularly for low frequencies that are of special interest for applications. This is achieved by an early detection during the NP-complete test that decides for a fragment whether can become frequent at all.<\/li><li>Improved distribution for clusters of multi-core nodes: Co-location of threads in the same memory speeds up parallel search. First results have been seen in 2009, more are expected in 2010.<\/li><\/ul><\/div><div><br \/><\/div><div>In 2010, the distributed stack implementations have also been tested on other algorithms and data structures.<\/div><\/p><\/div><\/td><\/tr><tr><td>&nbsp;<\/td><td><a title=\"PARSEMIS auf Github\" href=\"https:\/\/github.com\/timtadh\/parsemis\/tree\/master\/src\/de\/parsemis\">PARSEMIS auf Github<\/a><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"patesia\" data-href=\"#patesia\" type=\"button\" aria-expanded=\"false\" aria-controls=\"patesia-section\" id=\"patesia\">PATESIA &#8211; Parallelisierungstechniken f\u00fcr eingebettete Systeme in der Automatisierungstechnik<\/button><\/h2><div id=\"patesia-section\" class=\"accordion-body \" aria-labelledby=\"patesia\" role=\"region\" name=\"patesia\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/PATESIA_small_image.png\" alt=\"Parallelisierungstechniken f\u00fcr eingebettete Systeme in der Automatisierungstechnik\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0BAMAAADP4xsBAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAJFBMVEUAAACdAHYBAAAAejQA xMxGUAD\/fgAAAAD\/\/AAA\/079QQD\/\/\/+OEI9AAAAABnRSTlMA+qvl1TMa\/pNuAAAAAWJLR0QLH9fE wAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+oEFAgwLlxznsgAAAKBSURBVGje7dqBdYIw EAbgrMAKrNAVXMEVWOFWcAVXcMpSRIXcJfmTcOGw3HvVanPfO0ISIta5b4hhjEPRwyvq6\/HfUKOH oYhmSYKiRg9DEc2SBEWProafaVKBDeicEyjUIxWoSLuSuRIcwFIzFbrCTiKKNGaTXtllNGSTXtmF dNKmKVTKrqBTNumVXUM7hE7WEylbhU6PPi4LWW1pZMqoFV1KF6yqGxZdSJdcC3KKVqSL5A3mSzEt zuJN+kORJiqxWY6E6NF\/73TZNqtHKtAazZJERZEeo+u6rN4wQwciorO\/is0N0kDSSWOjzSjdx2Ns 1QMViPVYo7Gkk+b0zzLG15fLZfq53W7fRgNJFunrX8yPO9HXZ5y0GZqOSdNB6HF\/2L\/cz04xZ6Jb oAnpkDlpR5pCHWKADp6RD50x+OYkKzQ40W3R6KLahPYDo9P16NL3+72f3uofjwdKA\/Xo0qkQaaAe gzSQdNLxJCyOSZ\/xHwO+WUu03KPtS5MTvz6TG\/q\/7UVPh4cc46IN2CV69Nwq3XjVArI1ae852RBs 3oBGZkLiC549aOAg+YRJ2aZoeL6fdBX9uRgAlwU79PsFMALVaenY2JfA1mixibf2T7Zx2uuh95Cz RPPTKLyzLmRXejmmOO1s0qsxxc6ks0mvx1R0oicWVfEfT5To9XFWXMBIyrdOE30eG9JZ20mS5cBw 1aOTvbFu4Fci9JVB2n\/lzaZWNHQawx\/uvJWrGY30SfCDtL\/7MUWH9uxs92OLlrfrfPdjjI721EmD dOZNRxt0TW945ZWs1wU0LZ8qaF6fIo3f+IzQ8mZBk3bLdbzKlrfBSjR+Qz9ivx+a0VtEzTqxH90o fgG0D7QKTChHiAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAldEVYdGRh dGU6Y3JlYXRlADIwMjYtMDQtMjBUMDg6NDg6NDUrMDA6MDBsRmARAAAAJXRFWHRkYXRlOm1vZGlm eQAyMDI2LTA0LTIwVDA4OjQ4OjQ1KzAwOjAwHRvYrQAAAABJRU5ErkJggg== \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Parallelization techniques for embedded systems in automation<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/stefan-kempf\">Stefan Kempf<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/dotzler\">Georg Dotzler<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/blass\">Thorsten Bla\u00df<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/kamp\">Marius Kamp<\/a><\/span><br \/><strong>Start date: <\/strong>01.06.2009<br \/><strong>End date: <\/strong>31.12.2015<br \/><strong>Acronym: <\/strong>PATESIA<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>This project was launched in 2009 to address the refactorization and parallelization of applications used in the field of industry automation. These programs are executed on specially designed embedded systems. This hardware forms an industry standard and is used worldwide. As multicore-architectures are increasingly used in embedded systems, existing sequential software must be parallelized for these new architectures in order to improve performance. As these programs are typically used in the industrial domain for the control of processes and factory automation they have a long life cycle. Because of this, the programs often are not being maintained by their original developers any more. Besides that, a lot of effort was spent to guarantee that the programs work reliably. For these reasons the software is only extended in a very reluctant way.<br \/><br \/>Therefore, a migration of these legacy applications to new hardware and a parallelization cannot be done manually, as it is too error prone. Thus, we need tools that perform these tasks automatically or aid the developer with the migration and parallelization.<br \/><br \/>Research on parallelization techniques<br \/><br \/>We developed a special compiler for the parallelization of existing automation programs. First, we examined automation applications with respect to automatic parallelizability. We found that it is hard to perform an efficient automatic parallelization with existing techniques. Therefore this part of the project focuses on two steps to handle this situation. As first step, we developed a data dependence analysis that identifies potential critical sections in a parallel program, presents them to the programmer and adds their protection to the code. We ware able to show that our approach to identify critical sections finds atomic blocks that closely match the atomic blocks that an expert would add to the code. Besides that, we showed in 2014 that the impacts on execution times are negligible if our technique finds atomic blocks that are larger than necessary or that are not necessary at all.<br \/><br \/>As second step we have refined and enhanced existing techniques (software transactional memory (STM) and lock inference) to implement atomic blocks. In our approach, an atomic block uses STM as long as lock inference would lead to coarse-grained synchronization. The atomic block switches from STM to lock inference as soon as a fine-grained synchronization is possible. With this technique, an atomic block always uses fine-grained synchronization while the runtime overhead of STM is minimized at the same time. We showed that (compared to a pure STM or lock inference implementation) our technique speeds up execution times by a factor between 1.1 and 6.3. Although fine-grained synchronization in general leads to better performance than a coarse-grained solution, there are cases where a coarse-grained implementation shows equal performance. We therefore presented a runtime mechanism for an STM that also works together with our combined technique. This runtime mechanism starts with a small number of locks, i.e., a coarse-grained locking, where accesses to different shared variables are protected by the same lock. If this coarse-grained locking leads to too many non-conflicting accesses waiting for the same lock, our approach gradually increases the number of locks. This makes the locking more fine-grained so that non-conflicting accesses can be executed concurrently. Our runtime mechanism that dynamically tunes the locking-granularity makes the programs run up to 3.0 times faster than a fixed coarsegrained synchronization.<br \/><br \/>We completed this project part in 2014.<br \/><br \/>Research on migration techniques<br \/><br \/>Our research on the migration of legacy applications originally consisted of having a tool that automatically replaces suboptimal code constructs with better code. The code sequences that had to be replaced as well as the replacement codes were specified by developers by means of a newly developed pattern description language. However, we found this approach to be too difficult for novice developers.<br \/><br \/>This led us to the development of a new tool that automatically learns and generalizes patterns from source code archives, recognizes them in other projects, and presents recommendations to developers. The foundation of our tool lies in the comparison of two versions of the same program. It extracts the changes that were made between two source codes, derives generalized patterns of suboptimal and better code from these changes, and saves the patterns in a database. Our tool then uses these patterns to suggest similar changes for the source code of different programs.<br \/><br \/>In 2014 we developed a new symbolic code execution engine to minimize the number of wrong recommendations. Depending on the number and the generality of the patterns in the database, it is possible that without the new engine our tool generates some unfitting recommendations. To discard the unfitting ones, we compare the summary of the semantics\/behavior of the recommendation with summary of the semantics\/behavior of the database pattern. If both differ too severely, our tool drops the recommendation from the results. The distinctive features of our approach are its applicability to isolated code fragments and its automatic configuration that does not require any human interaction.<br \/><br \/>The latest results of our tool SIFE are found online (last update: 2014-05-09).<br \/><br \/>Parts of the project are funded by the \"ESI-Anwendungszentrum\" [http:\/\/www.esi-anwendungszentrum.de\/]<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"runn\" data-href=\"#runn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"runn-section\" id=\"runn\">RuNN &#8211; Rekurrente Neuronale Netze (RNNs) zur echtzeitnahen Bestimmung nichtlinearer Bewegungsmodelle<\/button><\/h2><div id=\"runn-section\" class=\"accordion-body \" aria-labelledby=\"runn\" role=\"region\" name=\"runn\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/RuNN_small_image.png\" alt=\"RuNN\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE\/YAAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAC\/VBMVEX\/\/\/\/\/\/\/\/29vbr6+v9 \/f34+Pjy8vH8\/Py0tLSgoJ+hoaHU1NSurq6jo6Pb29vy8vKsrKylpaXm5ubs7Oynpqb19fXv7+\/g 3t3l5eWGhoYAAAAWFhb+\/v5sbGwjIyNdXV0zMzPu7u739\/dISEdKSkoBAQGrq6v6+vouLi6+vr7w 8O8DAwMEBAPQ0NARERHi4uKvr6\/9\/fw2Nja9vb0nJycLCwvS0tLo6OgTExMXFxdRUVGtra3Dw8Lx 8fEsLCvPz8\/p6ekbGxv09PT5+fkqKinn5+fw8PBNTU37+\/z7+\/vAwMDq6uoaGhlXV1fNzc3X19Ye Hh7t7e2Ojo5hYWFBQUFiYmJcXFxgYF9VVVV5eXnY2Nh4eHfk5OTn5+Z9fX0YGBiqqqqDg4Oenp5Z WVlkZGSAgICZmZmoqKg5OTmxsbHd3dwcHBx8fHzKysppaWkGBgY8PDuRkZHg4OBUVFOUk5MxMTHz 8\/Opqam2tra6urqcnJyzs7Pu7u329vWwsLDFxcWVlZXS0tFxcXFGRkZ1dXXR0dGKiolDQ0M9PT28 vLza2trIyMi4uLjGxsZvb2\/Ly8vq6OjRzsy9t7SuqKSyrqvJxMLf3Nv39vb9\/PzMyMWIfXhPQTox GhIfDQQNAAAXBAEkEwxCMytsX1ispKDm5OOmoJ0uIRxlWVN2bGZuZWFZS0Q9Mi3U0M63sa5GOjWI gHzFwsL5+Pino6FhWFR+cmtNQ0C1sbD4+fl7dHI6KiL6+vlYUU6TjInb2NZTSEPl4+FmXlyRiIX5 +fj4+Pexqqb39\/aalZLPysgpGhTe29pgUUrGwb5cU1C3tbPo5uQPCQCrqalWTkuBdnBsYl76+\/qU JDvKLFKvKEZVHSC+urn49\/f\/M2j+MWL+MmUZEARJGhvgL1p4ITDX1NJZT0v7MGD4MF\/oMF3uMWL6 +flkHibi4N6DeHFpXlqknZvZ19X7+\/qXkI6dmZf7+vrzMWLV0tGCe3iMhoNSRT729\/b8+\/vn5eW6 tbLCvbrt6ur+\/v3ERcSaAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAHdElNRQfqBBUGOTol SbuTAAAV1UlEQVR42s2dC1wU17nAOTxCkCDIK3J2WUAYwey6eDeuLshLBbk8gguCYiQiIgYxsCJi QFuxSPBBok1s2iTC7NpcjdHGtHnd0KamafogaXJpm2tye9WkaTVt0qZNe29zb2\/vvb+eMzNnZnZ3 ZphZdsDv99M9c+bMzH+++eY73zlzziEkJJgCZEX7sUEF04qrBiTwW9UZWB4kkNucSWIJlECfzswS e7EE9mxmhRhJaFh4SEjELQBE3ho1JxrnRNwWFTMXJ2LjoubF40RC4pzEMACSIm4KYkaSb58fin5S IIQGRG1MRQkTgg1PQ4n0DAAWZKJE1gJ0O\/NvEmResiBFwYUAZOcgRLgIgDtM0AwtiwGIt6IM63xc KPemQmagIVwCwD\/YED11JwAZS1GOfRkAyx2IPo8xFJCbdBMhA5APEeMKpOl0aIFUAQCFRUjB9mIA SjD0yhK2mHHVzYOMoSkGenU6grdg6FLEakfmsdyA6FeWceXC19w0yACUIwVj8\/hHG1K5mTcP9GqW GVAibz4pWBGQrvVAxtDIpm9DmrRBM0VVArCmFJsHsukqB7qf6hK+ZFjFzcIM7sI2fStKMOZRw7gR pOm1yCdi83CuEYrW3hTISXVp65xIwbC+IW09QqQsWRs2rLdSZmjO35DWaEc59sa0jXNJ+btvAubs RuyaETMFGaHMbELIYTOcPHXybCMDUEkIzX4\/ZqR1fgtu4g+ZdWYQxzFbKPbHC12UCdOEY2aPuSy3 KX5+0\/IoTqUsnln4MXttUXB9SVPTPfObmirUUgcfOXxzs6O52mBYaSUqpSgfSl7P7D57tQEf4MgM Uwetg1XcY4WQf898bcOXmdvHyRZVqtaBGeTimELMZfYyCjOfSfbxVgRj1EDrwQziHbzmeKPw0rq3 M7FA4gDVaVoXZmBsaTY0Gwx51XbGKHhdYjaKtxTIKRhz2\/Pymg15zY7yDDAltT7MSBJKqkqqqsK2 QrEhE+VbhC1W3RRsDavCByw3gimhdWMmcpvYKOC2hTGJW9pQQwBtWbffGxMT1072NXgdNqvMYIfY 19k7cFZ4DmMiO2PxRiNkzRpu8z5uVpiNi2tqaoqLi+ug8LrBLPbZ38dQrmQaWfkkDskvXowP6Fwz BbSOzKu77C6XC\/8TmCkYxe6swZmwmkCzXsSMS9tdZluTIrSOzKDJCokXE9zazip2Z+QuvFVdxkKL XB5zQIwStJ7MINfgH29QvNl2Y0NeeQ8L7VtHKkHryoxb2ZyIIgzUOAQV8yIA2I2fA2vTPfyjILJE HlpfZmDck7O0KKeotNfEqxsWJaEdZbYyRr9m3qY5PVt7S4tySkuLGmJloXVmRrIqOXZvYeGC+1mX hyu\/jTi7j+pH\/ycioyDmwem5IbQwdu+awr3c4bpCG2ti9u2Pl9+\/kHd5rmK8ncqwJzgh3Ek0zbq8 Dd7H6cm8xIaN0dFVJldgP2+z9eFo8wtOWPRF9NsFYTXT29FDXN6UlUvQmDeTYMJ5wGfPgoL+RZX9 \/QMpfNhxEGeHRcXEYAu4E9k0MQ\/mNaXK2QMqy2Sgg8a8EQqSWijes7qVwn4D07ARM7Tu9rqnHC+X h9VNMcEeZerQF1rMDGFOpWgXqlwotrLgfDDs8T62jTOPfCHmY6NWOE8SWokjvrjGV6IrVDFD6Noc we9DLRev1hTFxPZgb1VYbRjj077kMvAuD4rbitKViwJyxKAV+gmVXqCKGcmuYrKzqpnPZKtp5x3Y aA5VO53Vh\/C9GXdZSTUu7rlBckAj9BCUFMft6pghtNeR3THtNlu6zWYzcZEp46RrGDTqAZyOMjAv wV2kkeCwteMDeoeSJKAVmDMc0tCwRSUzkizSvRUemZ1dUWGMY10e1ZDS1pZSzr515cMtbS2DjqEW lJVDXN46IzogsiKbO1y1Qe+2yJCkqmaG0BDjVTCORB9824ryOYCz53XeF1ANHVEqAxKlnhlJh7jk fmyt4ua3VGMc\/1OoXICirKAkKQ4naWA2DzFtj4QVW7bcv2XhkiEowJpl0Jloun5J3Jb7F265d602 RSPpz7f5yZG2vRqYVx5lioQeJhm+eD6wQncCJ83R2hStUpSYTayiQK6VrSkoSaOQ6kE1kwNi9IBW YKZMx7hCuFvMLNUpLad14ce3W0x3PfPd+QnVgnlI9PP6dUqK\/FZ\/8KElmK3phPmYUK6vp7ynpzy\/ tV2G2e8OTOiA\/PL8\/OGKmWC290dsorz1nCsEIUug8OAtcv28+POF2OUFF1qKuQ\/r1SnW88hKoYLZ AhU6S0UdqXB9AMxNIwO+sjhCLTMA88tFzAZo4oPrtXbSL0ZRJE5lfIqZdRbcPgj3aIZekCoR3pmL +tUyo1AjTMQM4SB\/0EF8ZqZhy56U68HhjAJyP1TaAnJAoVpFy4R39mPiQvcpMAvSiZmh5SifsTbu wC4Mu2n\/ijgTrmuGd6xYiBKUq3vHkq34lgxz4gb44rHZasM7g4wP2ywq1K2BGVn4clFmI1bwgyjR ju+nE4CKUmiBuA91bx7KqRa31JrU1uBNLumgA3YJZY7Z1TCP8LefFSnkZnEf9CNlBql4teUz1IZ3 OTKaFoV3m7Qxe8Wz+bKDVJbjZtnKEvE5atX6jv0uSebDoXwJY7tGZgjbRNDodWMHqUDRIJVibpBK tXeviWofXbD+iK\/sOpQiCu+ynertmUgL2UEGqUTiQSqUwiAVH2owTYlcqpkZwiEeGkkcev\/Scf\/G IgCSmUEqizmbbvbpnwpebViunRnCVtYv5OM00nR2L048BEASVoEZaXo54\/KqfE4VNOgoTfZMpLcG 7+sz5TmyMlAi0ekwpOF20B5nnmEQhUbhLXmG6pZwaehpM4PQ3gCYkb9m3uXk+U1sl09C0z1s+bAm ziaWzy\/xO1nwArzoZiXmPBmnWb0qgEsFMfyPruce+YDfLjk9Q+gMBBpoY+6o9JVFnYKz7us6dLhh oV\/wJ\/kOzhh06Da7xHVL+6c4TIF5BqCPS1\/YO9jTxAydSSqvHSh0rVXmym1KR3XmQSXoCnXX9qdW WXK3S+bKqQoHjSgyQ9fhQxKSlbpkdZCgZYO9eYHqWUFsA0ooGpxHn3RcXR4he4SiPSuLXen91uLx RtYdrveVzLoFsuWlmPMdKqmrFT4\/BqsLTyVzV61q5W9SOLVu0FLM2+R9kJ+Uypsd0I1Z4h3cZgRl qqHtuTMOLcMMSlRDWzrkz64PtBwzCDWphTYkzDD0MjlmAFrVQmcqnF8P6KReWWZQoBZ6\/wxD75Nn BmBQHXOa0gX0gM70ZxZ2RnapYW4NVbqADtB+L5s51SjeH1dvVya2t8coX0EH6NidPhCuSp8SHQWV ClJwbKor6DF63i8edBRM\/6w6Q4NUvwduDS51UKG5UQLLXDpTBxO6spFLtPi\/XNbKaZ1aN2gU10Vz yVSoq66DB43jDb69qC910KCZGMlOVK0vdbCgubiunozY0ZU6SNB8O0XoUNCROjjQovh54wxQBwW6 s1kEpkgdnLoxGNBezDNBHQRov7aV7hYyfegT\/m2rQf6DrD7U04aWYIZpvOPTh3q60FLM28QfpKSo a2YX2ucdZKTBq50iRV26N8DLBQVaBbMk9cFpQk+HWpI53K+YP\/Wh2YNWyQzAkNmnlDNC88WCBC31 Dkoyg37fpkx1qNaLeTMHDK2B2a\/XsTdc69WCA31CzTvIMvt3cwxqvZovdGDUWpj9vtW41s4K9Am1 76CUnuHwtJgDhdbC7P9NbJPWy\/kzBwA9PT0Pab2cFLRm6hr1fkNCz9NlDgxag6\/TQc+BQU\/LbwSN WRu0FPM6tf45CMyBjBaTZJ45ew4IWguzLnoOYDDhLPsNL2i11FqY9dGzduiaWbdnrykBqsrPut\/w gVZDPft+Qzu0euaj+ulZ\/URVRtTb81Ed9awNOt6klvmYQz89a5owDsAGtczsGG6dmLVBZzQO7es\/ Ef3AwG11DTkuJeZjLrz4QX5LTGVNdE1lYkuPidKPWRlaDBgeXWeTZQZR0DlYKe71WvVA0Jint9qE 8dY2uT6AhXXJTIkvP\/zIyZNfefSrX1N3xtDoysR9+7ZuGZirMPw0RCt0eMLazpHiXFXDcB97\/IlT o2M0Erfn9Nef\/Kepykf0bSgi3Tn29OOyQzZDNFHnztnQa8XGandmto1EAkVZdeaUm3afPfXUucGn z19A7GfPfUOpfG0dO2rBbLdzDv7IHMlhlSEhGqgrW717iHq7FQZygWcu0vTpZ7+ZwW596\/bnnvfQ nhdKZMvPw7NarIc2xo0si142EDPUjsnbF00PupjxYUvT6uIWFRy9N6URTx5y7pGzvMIX3PSLL\/2z V97dL3vo8Ueky5fhNRqWDouGpXy7eJMBQsuQXxdlSIhq6mE7XnWmQHhehX2tKKs+WgoB3H6KPvvc Y37Z0d+hx16RKv8lZBmO4TU+ubuHkClmLffJVQ0d2wiha6jJlyENXeoA8JfvjtOXpFbOAOAVt\/sJ \/9xO9NgypbrIKtHNtHtP2goJUUkddgTC9BGJk+53Qpffwg3g1dP097KBtNw25n7N7wHshPD49yWL J5Qj6gxVzD7Qhe0Qro+VPGlTPaTu9cl7\/Tz9Pfku3ANj7h945ySnK9TwC9Cr1Co6W4hKamMPhF1G mZPGZkK7z6e1Z+kXfwjk5Uf06Fe9Mrr8Fu\/z0tgR8aeZkBCV1HXoXo3yJ22Hplpxxo\/HJt4ASvIU \/ZR486gZ2r6oUHx3NXTwI3vVQkfbYS83eSZ+RJgOkTzCvey7DeJZtsD4Jv0jRWbQNOEWOb7V7dCu \/D1xHuTXfgwJUUmdD10n2NStzbCdeJDOpXApt8xPIjP3mMhP3BdeF7Yka83X6POClcahl1D5Jo2H mKWzVTDz1A9R5CNDGQ7r89l0KK6\/ejnHn0lysXyd5t2JMfGti+dfwyPN33764vlufhZk1cTY4yQd ngkdZJmrga7jgs77tg2SqmaRmb2vqZkJdSu0chMg9uAq0cLe836mIufmc4xQFr6O+ZfRs2SC9y1v 0ZOTLnrip7k\/m0Qp+uzbpNA5+uckiYyPvIUjuP4iJ9phgdDEPdbIXdC0Rgt0mZW3WLbVksik2UXO Urg99fA+AvEk\/Q6X+te36NHL7773b5Oes5NsYoxMWvmF+\/S\/c8luYYT0NryOABlu0YM39nEbdeyC hWqgGep5kBrgz4NlO5NmRz8T1CjYS4KQc\/RJLnWGHn33ytVr1y6\/P\/nBL6+hxIeTF7ioOmHC8yuu VCN0ZnDJQcxJ9LABT31P5DZqLMwyAKqgMXUDNBGPwX4lZvUyzKTJIhC5dgu3bEf4KTepjn89efnK 9Rs3rl\/58IOPrt24cePqb0bdxKNforkKJnYpzCIPqWMphDlkLg7+CnyYBCOoVH6keujwdGFNjSWY 08rGLyeYyHcZeeNseO40luTxUU5xv70w9u5VxHrj+tWrzO+Nax\/Tz\/HP4zXOpB2iyjD+4HZ+WQow t3urMEsxi5lZpBY62SF8N4vYBfkJfEYcSgqLG64jj\/UTz2kuuIu8OMlC83LtA950XqN\/xyb6vNbs kJU0ZiEHtUY918UuB8dq4q6czcR2C7cVdQmaaCHj8L47dpHk\/Z6+fEXMfPWXnvcf5vZ9Sr\/AJhZC uFUF9HFoOaYeuoaC4nlq4phfHMcdJBMO\/iBAP0d\/cO26CPrK5cnTv+X2nSHQW9RBD0LL3RqgIVQz dng7sfxPPON\/JM9ifPK9awLz9Y9Ghfr9M2Ie+4k74qU2+sRIzd0+Q24aoGuueuhoC7NOCIiQm0G1 mwmlukkN8YXxiS+TXX+iRz8SrPrKx5MXeJSXyYvYafda06RqX77J5TJb7EVpC8WjKvKhI1c9dLyd mdFZe8Qq\/b4ct67HZrKZVAp\/POV+mOz786XJj69c543jffcv+MN+TVxesgk2Cmc7KO4p7N3B52en wyOh6r1HhIlZy6JAZhBMrgu6cF3byj\/kc\/Sn\/N6OickPOeor73noZwUTOOvhehOMh2EOabOswlVu 9V33bZ+zZ6gcLzvGTzWea2eCD7XQyEPiYKi2mSy76C0pqDGEXs7IIrxKBCNn6OeF3Uc9iPoqxyxq zaBqnPQ4tUEX147DbZSd3aSPoWOjXfjiHwPhvVqgU+BK3NA6jhqJ\/mFmSTP7Ht1tNpDK69UJwagB eOn9yQ\/\/49rVK5c99POiJyUKmCrNJBhAkUG7eBrfgJMiz68HGuarhmZ9Hl6JocMuNTG8FUVi+Jbq 4F183lP0Z6ISD3pcH7z7mw\/fp98RzaZumhh7lKR\/mMMtItVvgaXevQXFDuhgotO1dtbwVUNH9rIr pLYhG\/Ntd+NQ7370G5mDV\/XhH\/24uA38nxdpz+jkmNdwlL\/Ql4Q+kTquCSjYCS9buZCpy3\/Vtins 4yDlwjFuRD2i7hafMgJHeoyn28Et0MHIY5foz8XF9r7soS9+U5yz1jP2jLCV4IRO3DzI7fKfqDW8 CT8E5BaZdYfVQiPqQier6njcPVgutCzuxCsB4b+VBlb3eo1kfHTM87D3Y\/6pl+OJvES\/Ke5h2D7F \/L0IGzQXaLAORtX7uMXAmzClq3xfTUlG\/EN1R7ArbWQUPAyLvIbX\/Y6+sEYB4i\/06B\/E29n1ysM3 U7nlqVQzM1Z9GFYz9WEsO4OQslaz363sKUxtOOCivKfRJ\/0X\/bP\/lmX4k9v9pHdOtAG67pctjyL3 3loAvq0NGnQYoI1VXWWWMO7SnsY25+Y6\/QZQfTJOf+cWGYbP3O5nffNQe9A+T6Y8cgAG\/OEjQQMz Q93ngocz2HPUtGSaDFZDaX4311Q+hhoVfv29vxqnLy6WZPicHvu5f+4+ClItUr1\/axq42V4lmpgZ 6hgLtPGdmkllTSX8m1XghIckBkG\/cYr2vCL1meWiW4IZNTJRNXDIv4ezrxdVkpg51KgdGqywUwaJ uHd1igv2SA7cvuOcmz49z\/99fNH9jFRxcOdSbHBeX1myb81CVliPlbVggUZmlnqkFMJMn8g6e0U6 Cg\/kvrzgzxfjL7\/9KvvUq7gvS6d8u0yJlGxDL7elvaV\/eezqyIjY3P1D2MXa2\/AzfT1WMzNLnXzc BeGRgx3Ew65eNozOmvMgkJWkT0+N0bTn9Pnfv\/PmxYkL0ZymT8qVX5TFfNkymGy7ek3M1x3rBubb 4\/cD\/DuO+NiaVnRSV2\/a5u6DdRsbcbdY6UHl4c9\/\/Qn+JOdmPsm5z44oahrLQ0NFwnqrdlsL+xrl BvA3+gRqEN1mE0Zt71y\/Q8Uw8\/D\/efxvPzj5lf99+Cna85KyprG8PhKV2pOVVd44lLiMs7tp\/OFJ 0h15+4G6wYYNXW1bO9cATfK1p93uM1NoWlKmwRwS2EhlkRifcLv3yGpa7vzTQ5bk1nYzn43Rn1+S 0rTi6YMhkmdUSX3G454YO6mMFnxiDQ9BUh4ZHfOBngm06XL\/eJz+G\/796\/9V3QzEKsHfeObP+Cf8 \/2cbVCt58C70d2vZejMhHebhAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA0LTIxVDA2OjU3OjU4 KzAwOjAwpTAYIwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wNC0yMVQwNjo1Nzo1OCswMDowMNRt oJ8AAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Recurrent Neuronal Networks (RNNs) for Real-Time Estimation of Nonlinear Motion Models<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Tobias Feigl<\/a><\/span><br \/><strong>Start date: <\/strong>01.10.2017<br \/><strong>End date: <\/strong>31.03.2021<br \/><strong>Acronym: <\/strong>RuNN<br \/><strong>Funding source: <\/strong>Fraunhofer-Gesellschaft<br \/><strong>URL: <\/strong><a href=\"https:\/\/www2.cs.fau.de\/research\/RuNN\/\">https:\/\/www2.cs.fau.de\/research\/RuNN\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><div>With the growing availability of information about an environment (e.g., the geometry of a gymnasium) and about the objects therein (e.g., athletes in the gymnasium), there is an increasing interest in bringing that information together profitably (so-called information fusion) and in processing that information. For example, one would like to reconstruct physically correct animations (e.g., in virtual reality, VR) of complex and highly dynamic movements (e.g., in sports situations) in real-time. Likewise, e.g., manufacturing plants of the industry, which suffer from unfavorable environmental conditions (e.g., magnetic field interference or missing GPS signal), benefit from, e.g., high-precision goods location. Typically, to describe movements, one uses either poses that describe a \"snapshot\" of a state of motion (e.g., idle state, stoppage), or a motion model that describes movement over time (e.g., walking or running). In addition, human movements may be identified, detected, and sensed by different sensors (e.g., on the body) and mapped in the form of poses and motion models. Different types of modern sensors (e.g., camera, radio, and inertial sensors) provide information of varying quality.<\/div><div>In principle, with the help of expensive and highly precise measuring instruments, the extraction of the poses and resp. of the motion model, for example, from positions on small tracking areas is possible without errors. Positions, e.g., of human extremities, can describe or be described by poses and motion models. Camera-based sensors deliver the required high-frequency and high-precision reference measurements on small areas. However, as the size of the tracking surface increases, the usability of camera-based systems decreases (due to inaccuracies or occlusion issues). Likewise,\u00a0on large areas\u00a0radio and inertial sensors only provide noisy and inaccurate measurements. Although a combination of radio and inertial sensors based on Bayesian filters achieves greater accuracy, it is still inadequate to precisely sense human motion on large areas, e.g., in sports, as human movement changes abruptly and rapidly. Thus, the resulting motion models are inaccurate.<\/div><div>Furthermore, every human movement is highly nonlinear (or unpredictable). We cannot map this nonlinearity correctly with today's motion models. Bayes filters describe these models but these (statistical) methods break down a nonlinear problem into linear subproblems, which in turn cannot physically represent the motion. In addition, current methods produce high latency when they require accuracy.<\/div><div>Due to these three problems (inaccurate position data on large areas, nonlinearity, and latency), today's methods are unusable, e.g., for sports applications that require short response times. This project aims to counteract these nonlinearities by using machine learning methods. The project includes research on recurrent neural networks (RNN) to create nonlinear motion models.\u00a0As modern Bayesian filtering methods (e.g., Kalman and Particle filters) and other statistical methods can only describe the linear portions\u00a0of nonlinear human movements (e.g., the relative position of the head w.r.t. trunk while walking or running)\u00a0they are thus physically not completely correct.<\/div><div>Therefore, the main goal is to evaluate how machine learning methods can describe complex and nonlinear movements. We therefore examined whether RNNs describe the movements of an object physically correctly and support or replace previous methods. As part of a large-scale parameter study, we simulated physically correct movements and optimized RNN procedures on these simulations. We successfully showed that,\u00a0with the help of suitable training methods,\u00a0RNN models can either learn physical relationships or shapes of movement.<\/div><div><br \/><\/div><div>This project addresses three key topics:<\/div><div><br \/><\/div><div>I. A basic implementation investigates how and why methods of machine learning can be used to determine models of human movement.<\/div><div><br \/><\/div><div>In 2018, we first established a deeper understanding of the initial situation and problem definition. With the help of different basic implementations (different motion models) we investigated (1) how different movements (e.g., humans: walk, run, slalom; vehicles: meander, zig-zag) affect measurement inaccuracies of different sensor families, (2) how measurement inaccuracies of different sensor families (e.g., visible orientation errors, audible noise, and deliberated artificial errors) affect human motion, and (3) how different filter methods for error correction (that balance accuracy and latency) affect both motion and sensing. In addition, we showed (4) how measurement inaccuracies (due to the use of current Bayesian filtering techniques) correlate nonlinearly with human posture (e.g., gait apparatus) and predictably affect health (simulator sickness) through machine learning.<\/div><div>We studied methods of machine and deep learning for motion detection (humans: head, body, upper and lower extremity; vehicles: single- and bi-axial) and motion reconstruction (5) based on inertial, camera, and radio sensors, as well as various methods for feature extraction (e.g., SVM, DT, k-NN, VAE, 2D-CNN, 3D-CNN, RNN, LSTM, M\/GRU). These were interconnected into different hybrid filter models to enrich extracted features with temporal and context-sensitive motion information, potentially creating more accurate, robust, and close to real-time motion models. In this way, these mechanics learned (6) motion models for multi-axis vehicles (e.g., forklifts) based on inertial, radio, and camera data, which generalize for different environments or tracking surfaces (with varying size, shape, and sensory structure, e.g., magnetic field, multipath, texturing, and illumination). Furthermore (7), we gained a deeper understanding of the effects of non-constant accelerated motion models on radio signals. On the basis of these findings, we trained an LSTM model that predicts different movement speeds and motion forms of a single-axis robot (i.e., Segway) close to real-time and more accurately than conventional methods.<\/div><div><br \/><\/div><div>In 2019, we found that these models can also predict human movement (human movement model). We also determined that the LSTM models can either be fully self-sufficient at runtime or integrated as support points into localization estimates, e.g., into Pedestrian Dead Reckoning (PDR) methods.<\/div><div><br \/><\/div><div>II. Based on this, we try to find ways to optimize the basic implementation in terms of robustness, latency, and reusability.<\/div><div><br \/><\/div><div>In 2018, we used the findings from I. (1-7) to stabilize so-called (1) relative Pedestrian Dead Reckoning (PDR) methods using motion classifiers. These enable a generalization to any environment. A deeper radio signal understanding (2) allowed to learn long-term errors in RNN-based motion models. This improves the position accuracy, stability, and a near real-time prediction.\u00a0First experiments showed the robustness of the movement models (3) with the help of different real (unknown to the models) movement trajectories for one- and two-axis vehicles. Furthermore, we investigated (4) how hybrid filter models (e.g., interconnection of feature extractors such as 2D\/3D-CNNs and time-series trackers such as RNNs-LSTM) provide more accurate, more stable, and filtered (outlier-corrected) results.<\/div><div><br \/><\/div><div>In 2019, we showed that models of the RNN family extrapolate movements into the future so that they compensate for the latency of the processing pipeline and beyond. Furthermore, we examined the explainability, interpretability, and robustness of the models examined here, and their reusability on the human movement.<\/div><div>With the help of a simulator, we generated physically correct movements, e.g., positions of pedestrians, cyclists, cars, and planes. Based on this data, we showed that RNN models can interpolate between different types of movement and can compensate for missing data points, interpret white and random noise as such, and can extrapolate movements. The latter enables processing-specific latency to be compensated and enables human movement to be predicted from radio and inertial data in real time.<\/div><div>Novel RNN architecture. Furthermore, in 2019, we researched a new architecture, or topology, of a neural network, that balances the strengths and weaknesses of flat neural networks (NN) and recurrent networks. We found this optimal NN for determining physically correct movement in a large-scale parameter study. In particular, we also optimized the model architecture and parameters for human-centered localization. These optimal architectures predict human movement far into the future from as little sensor information as possible. The architecture with the least localization error combines two DNNs with an RNN.<\/div><div>Interpretability of models. In 2019, we examined the functionality of this new model. For this purpose, we researched a new process pipeline for the interpretation and explanation of the model. The pipeline uses the mutual information flow and the mutual transfer entropy in combination with various targeted manipulations of the hidden states and suitable visualization techniques to describe the state of the model at any time, both subjectively and objectively. In addition, we adapted a variational auto-encoder (VAE) to better visualize and interpret extracted features of a neural network. We designed\u00a0and parameterized\u00a0the VAE such that the reconstruction error of the signal is within the range of the measurement noise and at the same time forced the model to store disentangled features in its latent space. This disentanglement enabled the first subjective statements about the interrelationships of the features that are really necessary to optimally code the channel state of a radio signal.<\/div><div>Compression. In 2019, we discovered a side effect of the VAE that offers the possibility of decentralized preprocessing of the channel information directly on the antenna. This compression then reduces the data traffic, lowers the communication load, and thus increases the number of possible participants in the communication and localization in a closed sensor network.<\/div><div>Influence of the variation of the input information. In 2019, we also examined how changes in the input sequence length of a recurrent neural network affect the learning success and the type of results of the model. We discovered that a longer sequence persuades the model to be a motion model, i.e., to learn the form of movement, while with shorter sequences the model tends to learn physical relationships. The optimal balance between short and long sequences represents the highest accuracy.<\/div><div>We investigated speed estimation using the new method. When used in a PDR model, this increased the position accuracy. An initial work in 2019 has examined in detail which methods are best suited to estimate the speed of human movement from a raw inertial signal. A new process, a combination of a one-dimensional CNN and a BLSTM, has replaced the state of the art.<\/div><div><br \/><\/div><div>In 2020, we optimized the architecture of the model,with regard to its prediction accuracy and investigated the effects of a deep fusion of Bayesian and DL methods on the prediction accuracy and robustness.<br \/><\/div><div>Optimization. In 2020, we improved the existing CNN and RNN architecture and proposed the fusion of ResNet and BLSTM. We replaced the CNN with a residual network to extract deeper and higher quality features from a continuous data stream. We showed that this architecture entails higher computing costs, but surpasses the accuracy of the state-of-the-art. In addition, the RNN architecture can be scaled down to counter the blurring of the context vector of the LSTM cells with very long input sequences, as the remaining ResNet network offers more qualitative features.<\/div><div>Deep Bayesian Method. In 2020 we investigated whether methods of the RNN family can extract certain movement properties from recorded movement data to replace the measurement-, process-, and transition-noise distributions of a Kalman filter (KF). We showed that highly optimized LSTM cells can reconstruct trajectories more robust (low error variance) and more precise (positional accuracy) \u00a0than an equally highly optimized KF. The deep coupling of LSTM in KF, so-called Deep Bayes, provided the most robust and precise positions and trajectories. This study also showed that methods trained on realistic synthetic data, the Deep Bayesian method, needed the least real data to adapt to a new unknown domain, e.g., unknown motion shapes and velocity distribution.<br \/><\/div><div><br \/><\/div><div>III. Finally, a demonstration of feasibility shall be tested.<\/div><div><br \/><\/div><div>In 2018, a large-scale social science study opened the world's largest virtual dinosaur museum and showed that (1) a pre-selected (application-optimized) model of human movement robustly and accurately (i.e., without a significant impact on simulator sickness) maps human motion, resp. predicts it. We used this as a basis for comparison tests with other models that are human-centered and generalize to different environments.<\/div><div><br \/><\/div><div>In 2019, we developed two new live demonstrators that are based on the research results achieved in I and II. (1) A model railway that crosses a landscape with a tunnel at variable speeds. The tunnel represents realistic and typical environmental characteristics that lead to nonlinear multipath propagation of a radio transmitter to be located and ultimately to an incorrectly determined position. This demonstrator shows that the RNN methods researched as part of the research project can localize highly precisely and robustly, both on complex channel impulse responses and on dimensionally reduced response times, and also deliver better results than conventional Kalman filters. (2) We used the second demonstrator to visualize the movement of a person's upper extremity. We recorded human movement using inexpensive inertial sensors attached to both arm joints, classified using machine-based and deep learning, and derived motion parameters. A graphic user interface visualizes the movement and the derived parameters in near real time.<\/div><div>The planned generalizability, e.g., of human-centered models and the applicability of RNN-based methods in different environments, has been demonstrated using (1) and (2).<\/div><div>In 2019, we applied the proposed methods in the following applications:<\/div><div>Application: Radio Signal.\u00a0We classified the channel information of a radio system hierarchically. We\u00a0translated\u00a0the localization problem of a Line of Sight (LoS) and Non Line of Sight (NLoS) classifier into a binary problem. Hence, we now can precisely localize a position within a meter, based on individual channel information from a single antenna if the environment provides heterogeneous channel propagation.<\/div><div>Furthermore, we simulated LoS and NLoS channel information and used it to interpolate between different channels. This enables the providers of radio systems to respond to changing or new environments in the channel information a-priori in the simulation. By selectively retraining the models with the simulated knowledge, we enabled more robust models.<\/div><div>Application: Camera and Radio Signal. We have shown how the RNN methods relate to information from other sensor families, e.g., video images, by combining radio and camera systems when training a model, the two sensor information streams merge smoothly, even in the event of occlusion of the camera. This yields a more robust and precise localization of multiple people.<\/div><div>Application: Camera Signal. We used an RNN method to examine the temporal relationships between events in images. In contrast to the previous work, which uses heterogeneous sensor information, this network only uses image information. However, the model uses the image information in such a way that it interprets the images differently: as spatial information, i.e., a single image, and as temporal information, i.e., several images in the input. This splitting implies that individual images can be used as two fictitious virtual sensor information streams to recognize results spatially (features) and to better predict them temporally (temporal relationships). Another work uses camera images to localize the camera itself. For this purpose, we built a new processing pipeline that breaks up the video signal over time and learns absolute and relative information in different neural networks and merges their outputs into an optimal pose in a fusion network.<\/div><div>Application: EEG Signal. In a cooperation project we applied the\u00a0researched\u00a0methods to other sensor data. We recorded beta- and gamma-waves of the human brain in different emotional states. When used to train an RNN, it correctly predicted the emotions of a test person in 90% of all cases from raw EEG data.\u00a0<\/div><div>Application: Simulator Sickness.\u00a0We have shown\u00a0how the visualization in VR affects human perception and movement anomalies, resp. simulator sickness, and how the neural networks researched here can be used to predict the effects.<\/div><div>In 2020, we developed a new live demonstrator based on the research results achieved in II.<\/div><div>Application: Gait reconstruction in VR. In 2020, we used the existing CNN-RNN model to predict human movement, namely gait cycle and gait phases, using sensor data from a head-mounted inertial sensor to visualize a virtual avatar in VR in real time. We showed that the DL model has significantly lower latencies than the state-of-the-art, since it can recognize gait phases earlier and predict future ones more precisely. However, this is at the expense of the required computing effort and thus the required hardware.<br \/><\/div><div><br \/><\/div><div><div>The project was successfully completed in 2021. In 2021, as part of a successfully completed dissertation, essential findings from the course of the project were linked and conclusions were drawn, and numerous research questions were addressed and answered.<\/div><div><br \/><\/div><div>As part of the research project, more than 15 qualification theses, 6 patent families, and more than 20 scientific publications were successfully completed and published. The core contribution of the project is the knowledge of the applicability and pitfalls of recurrent neural networks (RNN), their different cell types and architectures, in different application areas. Conclusion: The ability of the RNN family to deal with dynamics in data streams, e.g., failures, delays, and different sequence lengths in time series data, makes them indispensable in a large number of application areas today.<\/div><div><br \/><\/div><div>The project is continued within the framework of seminars at the FAU and extracurricular research activities at Fraunhofer IIS within the framework of the ADA Lovelace Center.<\/div><div><br \/>In 2022, time series augmentation was investigated. For this purpose, various generative methods, namely Variational Autoencoder (VAE) and Generative Adversarial Networks (GAN), were evaluated for their ability to generate time series of different application domains, e.g., features of radio signals, e.g., signal strength, channel impulse response, characteristics of GNSS spectra and multidimensional signals from inertial sensors. A novel architecture called ARCGAN was proposed, which combines all the known advantages of state-of-the-art methods and can therefore generate significantly more similar (effective) time series than the state-of-the-art.<\/div><div><br \/>In 2023, we investigated generative methods based on attention mechanisms, transformer architectures, and GPT with respect to their predictive performance for time series. To this end, we evaluated methods such as Legendre Units (LMU), novel transformer architectures, and TimeGPT to better forecast localization information. We could show that using appropriate input prompts and calibration, preconfigured GPT models can be adapted to new areas of application, to make the training significantly more efficient, and to also save energy.<br \/><br \/>In 2024, we further examine GPT-like models for their uncertainty, explainability, and adaptability. In addition, we analyze the feasibility of these generative methods in relation to various fields of application, e.g., forecasting and anomaly detection, anomaly characterization, anomaly localization, and anomaly mitigation.<br \/><\/div><\/div><\/p><h3>External Partners: <\/h3><ul><li>Fraunhofer-Institut f\u00fcr Integrierte Schaltungen (IIS)<\/li><\/ul><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Roth D.<\/span>, <span class=\"author\" itemprop=\"author\">Kleinbeck C.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Latoschik ME.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/109508344?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Social Augmentations in Multi-User Virtual Reality: A Virtual Museum Experience<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">2017 IEEE International Symposium on Mixed and Augmented Reality (ISMAR-Adjunct)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Nantes<\/span><\/span>, <span itemprop=\"startDate\" content=\"2017-10-09\">09.10.2017<\/span> - <span itemprop=\"endDate\" content=\"2017-10-13\">13.10.2017<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 2017 IEEE International Symposium on Mixed and Augmented Reality (ISMAR-Adjunct)<\/span> <span itemprop=\"datePublished\">2017<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/ISMAR-Adjunct.2017.28' target='blank' itemprop=\"sameAs\">10.1109\/ISMAR-Adjunct.2017.28<\/a><br \/>URL: <a href='http:\/\/ieeexplore.ieee.org\/document\/8088445\/' target='blank' itemprop=\"url\">http:\/\/ieeexplore.ieee.org\/document\/8088445\/<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/109508344.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">K\u00f5re E.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/106105164?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Acoustical manipulation for redirected walking<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">23rd ACM Symposium on Virtual Reality Software and Technology (VRST '17)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Gothenburg<\/span><\/span>, <span itemprop=\"startDate\" content=\"2017-11-08\">08.11.2017<\/span> - <span itemprop=\"endDate\" content=\"2017-11-10\">10.11.2017<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 23rd ACM Symposium on Virtual Reality Software and Technology (VRST '17)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">New York<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2017<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/3139131.3141205' target='blank' itemprop=\"sameAs\">10.1145\/3139131.3141205<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/VRST2017.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/VRST2017.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/106105164.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Roth D.<\/span>, <span class=\"author\" itemprop=\"author\">Kleinbeck C.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Latoschik ME.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202457309?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Beyond Replication: Augmenting Social Behaviors in Multi-User Social Virtual Realities<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">25th IEEE Conference on Virtual Reality and 3D User Interfaces (IEEE VR 2018)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Reutlingen<\/span><\/span>, <span itemprop=\"startDate\" content=\"2018-03-18\">18.03.2018<\/span> - <span itemprop=\"endDate\" content=\"2018-03-22\">22.03.2018<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 25th IEEE Conference on Virtual Reality and 3D User Interfaces (IEEE VR 2018)<\/span> <span itemprop=\"datePublished\">2018<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/VR.2018.8447550' target='blank' itemprop=\"sameAs\">10.1109\/VR.2018.8447550<\/a><br \/>URL: <a href='https:\/\/www.hci.uni-wuerzburg.de\/download\/2018-ieeevr-behav-augm-preprint.pdf' target='blank' itemprop=\"url\">https:\/\/www.hci.uni-wuerzburg.de\/download\/2018-ieeevr-behav-augm-preprint.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202457309.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Lugrin JL.<\/span>, <span class=\"author\" itemprop=\"author\">Kern F.<\/span>, <span class=\"author\" itemprop=\"author\">Schmidt R.<\/span>, <span class=\"author\" itemprop=\"author\">Kleinbeck C.<\/span>, <span class=\"author\" itemprop=\"author\">Roth D.<\/span>, <span class=\"author\" itemprop=\"author\">Daxer C.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Latoschik ME.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202460350?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">A Location-Based VR Museum<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">10th International Conference on Virtual Worlds and Games for Serious Applications (VS Games 2018)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">W\u00fcrzburg<\/span><\/span>, <span itemprop=\"startDate\" content=\"2018-09-05\">05.09.2018<\/span> - <span itemprop=\"endDate\" content=\"2018-09-07\">07.09.2018<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 10th International Conference on Virtual Worlds and Games for Serious Applications (VS-Games 2018)<\/span> <span itemprop=\"datePublished\">2018<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/VS-Games.2018.8493404' target='blank' itemprop=\"sameAs\">10.1109\/VS-Games.2018.8493404<\/a><br \/>URL: <a href='http:\/\/doi.ieeecomputersociety.org\/10.1109\/VS-Games.2018.8493404' target='blank' itemprop=\"url\">http:\/\/doi.ieeecomputersociety.org\/10.1109\/VS-Games.2018.8493404<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202460350.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Nowak T.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/thorsten-edelhaeusser\">Edelh\u00e4u\u00dfer T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202456629?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Recurrent Neural Networks on Drifting Time-of-Flight Measurements<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">9th International Conference on Indoor Positioning and Indoor Navigation (IPIN 2018)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Nantes<\/span><\/span>, <span itemprop=\"startDate\" content=\"2018-09-24\">24.09.2018<\/span> - <span itemprop=\"endDate\" content=\"2018-09-27\">27.09.2018<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 9th International Conference on Indoor Positioning and Indoor Navigation (IPIN 2018)<\/span> <span itemprop=\"datePublished\">2018<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/IPIN.2018.8533813' target='blank' itemprop=\"sameAs\">10.1109\/IPIN.2018.8533813<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IPIN2018b.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IPIN2018b.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202456629.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202456963?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Supervised Learning for Yaw Orientation Estimation<\/a><\/strong><\/span><br \/> (<span itemprop=\"datePublished\">2018<\/span>)<br><span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_202456963\"><span itemprop=\"issn\">ISSN: 2471-917X<\/span><\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/IPIN.2018.8533811' target='blank' itemprop=\"sameAs\">10.1109\/IPIN.2018.8533811<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IPIN2018a.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IPIN2018a.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202456963.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202396010?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Human Compensation Strategies for Orientation Drifts<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">25th IEEE Conference on Virtual Reality and 3D User Interfaces<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Reutlingen<\/span><\/span>, <span itemprop=\"startDate\" content=\"2018-03-18\">18.03.2018<\/span> - <span itemprop=\"endDate\" content=\"2018-03-22\">22.03.2018<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 25th IEEE Conference on Virtual Reality and 3D User Interfaces (IEEE VR 2018)<\/span> <span itemprop=\"datePublished\">2018<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/VR.2018.8446300' target='blank' itemprop=\"sameAs\">10.1109\/VR.2018.8446300<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IEEE-VR2018a.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IEEE-VR2018a.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202396010.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/mutschler\">Mutschler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/202458153?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Head-to-Body-Pose Classification in No-Pose VR Tracking Systems<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">25th IEEE Conference on Virtual Reality and 3D User Interfaces (IEEE VR 2018)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Reutlingen<\/span><\/span>, <span itemprop=\"startDate\" content=\"2018-03-18\">18.03.2018<\/span> - <span itemprop=\"endDate\" content=\"2018-03-22\">22.03.2018<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the 25th IEEE Conference on Virtual Reality and 3D User Interfaces (IEEE VR 2018)<\/span> <span itemprop=\"datePublished\">2018<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/VR.2018.8446495' target='blank' itemprop=\"sameAs\">10.1109\/VR.2018.8446495<\/a><br \/>URL: <a href='https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IEEE-VR2018b.pdf' target='blank' itemprop=\"url\">https:\/\/cs2-gitlab.cs.fau.de\/i2public\/publications\/-\/blob\/master\/IEEE-VR2018b.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/202458153.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Roth D.<\/span>, <span class=\"author\" itemprop=\"author\">Westermeier F.<\/span>, <span class=\"author\" itemprop=\"author\">Br\u00fcbach L.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Schell C.<\/span>, <span class=\"author\" itemprop=\"author\">Latoschik ME.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/228802089?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Brain 2 Communicate: EEG-based Affect Recognition to Augment Virtual Social Interactions<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">Mensch und Computer 2019<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Hamburg<\/span><\/span>, <span itemprop=\"startDate\" content=\"2019-09-08\">08.09.2019<\/span> - <span itemprop=\"endDate\" content=\"2019-09-11\">11.09.2019<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Gesellschaft f\u00fcr Informatik e.V. (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Mensch und Computer 2019 - Workshopband<\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.18420\/muc2019-ws-571' target='blank' itemprop=\"sameAs\">10.18420\/muc2019-ws-571<\/a><br \/>URL: <a href='https:\/\/dl.gi.de\/bitstream\/handle\/20.500.12116\/25205\/571.pdf' target='blank' itemprop=\"url\">https:\/\/dl.gi.de\/bitstream\/handle\/20.500.12116\/25205\/571.pdf<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/228802089.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Roth D.<\/span>, <span class=\"author\" itemprop=\"author\">Br\u00fcbach L.<\/span>, <span class=\"author\" itemprop=\"author\">Westermeier F.<\/span>, <span class=\"author\" itemprop=\"author\">Schell C.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Feigl T.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Latoschik ME.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/229464640?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">A Social Interaction Interface Supporting Affective Augmentation Based on Neuronal Data<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">Symposium on Spatial User Interaction (SUI'19)<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">New Orleans<\/span><\/span>, <span itemprop=\"startDate\" content=\"2019-10-19\">19.10.2019<\/span> - <span itemprop=\"endDate\" content=\"2019-10-20\">20.10.2019<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Christoph W. Borst, Arun K. Kulshreshth, Gerd Bruder, Stefania Serafin, Christian Sandor, Kyle Johnsen, Jinwei Ye, Daniel Roth, Sungchul Jung (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings of the Symposium on Spatial User Interaction (SUI'19)<\/span>, <span itemprop=\"publisher\" itemscope itemtype=\"http:\/\/schema.org\/Organization\"><span class=\"city\" itemprop=\"address\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"addressLocality\">New York, NY, USA<\/span><\/span>: <\/span> <span itemprop=\"datePublished\">2019<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1145\/3357251.3360018' target='blank' itemprop=\"sameAs\">10.1145\/3357251.3360018<\/a><br \/>URL: <a href='https:\/\/dl.acm.org\/citation.cfm?id=3357251.3360018' target='blank' itemprop=\"url\">https:\/\/dl.acm.org\/citation.cfm?id=3357251.3360018<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/229464640.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"softwareleitstand\" data-href=\"#softwareleitstand\" type=\"button\" aria-expanded=\"false\" aria-controls=\"softwareleitstand-section\" id=\"softwareleitstand\">Softwareleitstand<\/button><\/h2><div id=\"softwareleitstand-section\" class=\"accordion-body \" aria-labelledby=\"softwareleitstand\" role=\"region\" name=\"softwareleitstand\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/SL_small_image.png\" alt=\"Softwareleitstand\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA B3RJTUUH6gQUCAA5AOYt\/AAAHY1JREFUeNrtXWmQVNd1\/rpnhllgFmDYBxiGHbEMQmIXSLKtFUlE VsWyZMWKLZWdOBU7smNXEieOU065kpTjsp1KUnGVHdmxtdiOZElgSyiAWIUQCBDbiG2YAYZhmX2Y vTs\/vvP1ME80zNLTy9P9\/px+233v3tf3u+ede865gIODg4ODg4ODg4NDXxBI9APEDOnBNADA\/JXp AIBZi4IAgIIxPJ41lLL+POWh98IAgNMHOgEAVWc6E10Fh4EjmOgHcHCIJdIT\/QADAEeXwvGjAABj i+4AAIyZeDcAoKBwIgAgNz8XAJCZw6vC7a0AgFETLnFHx3YAQFfgZQDAhbMV3B\/qSnQFfQJpAeEo +weKHuU6hnbwFVJXhx5XtAQAsPT+PwUA3P4HpQCAeSuoC+cP67Azw9e8viPE0enE+1kAgDd\/dQYA sP13PwcALF78HADgf\/7z2tc7REM0Ru7tdX1F+OrrHUM7+Aqpp0NPmHobAOCex\/8aAPDoV6hDjxh+ BQDQZT1WNotwmD0\/ECEAHg8EyeAzFlCWzB0JABg76SsAgJ2\/V9v8wqTTqa8NLyP3d0Qb6EgYBhxD O\/gMqcPQOTnzAQALV3wLALD26REAgILhtFpEY+TAh1SzgJ3HLTF6WhpLWPM52rNbW74CACg\/xDYq \/+AniW6CJIG3QZPqG8MxtIOvkAoMnQEAWPXwZwAAT32bU35jitoAACE768O68vXRfR5\/hIxoMtKp K699mtsXKz8HACj\/3gU7\/7VEN0iCEPDIUH8LGkw4hnbwFZKfoYPpiwEAKx+YBwAoGKVnpnWir8wc DbpeGmFmFhno9k9mAwA2vfQkAODsSXMGwXsm\/W798DJzUsMxtIOvkPwMvfC2UgDAxOnDAABZOWTE yPxQjIlDjB8M8g5FUzkSTJtfCAA4e\/I+nWlyT6KbaJCR1FYNLxxDO\/gKyc\/QE6ZwBi9\/OO3DaQEy RFeMdGcvvOVlZHLHrFvY+d96Oc2OLDR5xmR1glsq26S5FaLFI2PlW+EY2sEhXkh+hh6Wp2dU5zNf jEH+6BYPBYO8UfZQb1uJCeeYjDdD85ti3vKlAIAps2cAAEaMGgcAqKuh3by87DgAYN9bm+y61j7e JyWsG4JjaAdfIfkZur09MhfYY798MWJv5aAMRnxBuCPcJf9qMZyea2ScW4S68or7\/hgAsPrhNQCA kjlk5sJxfKe1F2gNOnX0IgBg2NDpAIBt639s5bREKT+a3TklmNoxtIOvkPwMXV3RAABouULGCdkz BwJiyNgyR4SRrdyq07zf9vUFdkaRSY0Yk0zWeJ6nzaSYfbjnPOngIpUmz3n1JtN7nD9izCwAwH1P PAYAuOMRWl2y0pusfYiJxZQ3LaaunRagc0pjfR0AYP\/2n92oJTzbSW3dEBxDO\/gKyc\/QZXvKAADn TlF3nVCSB6Db12KwdOkuc7AuP8qYw72bs+xIockCk\/LEFvOONimrh5h6qskjJsX08gWRj4isJodN 5pssAQDMWjgTALDkblY4PZ33j0RQhns2RCDA43c91gwAOLjrswCA\/dtP2xlbTUbzngvf4HhSwTG0 g6+Q\/Ax9oWonAGDv5ocAALNuLgUAZI2TGcJ03gHOHHqtG0JFGUeGUGiX7TlhUszZaHK9STGu1xoy zGS9Z7vTc\/52k5dNZpik7rz03me4N4v7w+hl\/a2dppeOsB33mLSUUvi953kHGiOYEDiGdvAVkp+h pZtufPElAMDUuZMBAHc9WgAAyMw060cfmTocIR7+CEb8ofljw3Nkrk2\/KbPz5FUnBrtiUrqydOMO DAwVUfbzfhlZV6x+w3pZHux81rOjXSOIGmCByVqTb3vqmVJwDO3gK6QCQxNVFRsAAK\/\/YgIAoKb6 TwAAj3yJdtjcoe0AgM6Ad0YxSl4O206L7GXn3vgSme+FHzD33dG97\/a47sNt1mByoMx8I\/B5Dmyv BACsWjMWAJA1XmaeniOUoJGnuYHPveuNth7ldevwN5s8YLJ5kOszKHAM7eArpA5Di0l2bWDOuWoS FTrangQArF7LLKPT59FakGHWhrCHsbtjltmZz5\/PBABs+S3PW\/\/sSQDA0b3SmcXA4nK1WbvJw4gP WP9332T918+m1eOBp2i1GFvY2qO+etq6K7SG\/Po\/hgAA9mzabUfE1KpPpkn5pjiGdnBINFLCgyoK yDhFUxnjN3km82fMKGWuu+JZPJ47kgyUYQTUWMuv94oPyOCnj9QBAPZvOwoAOFdu1B+xL6vTi\/M0 Yyhd83dxrjefZ+bC2wEAS+97CgAwoXi2tQff6akjPO\/UIVpFtrzCKPULZ45aObJ2pHnkcyar4lyv GDaOg4NPkMoMLahT3g4AyMl9AgAwcgyZKcsiTYLpPK\/tCnXf+stk4PpLZOxQSF\/7YqY0T\/l5Jk+Z fMmk7NGJwcTp8hGhj0bOsElWP3rf1VygPb299X07r91TguopK41y+PU1siUp4BjawVfwA0ML+lp\/ zKQtfxXxO5a1QrqjGFkMNdazXz4X+vo\/ZHKbSXnXJQsmm3zCpJhY0eAiL81sZnqOy5djr+d8ISVm Dh1DO\/gKfmLocSYV8SHdVv7FM0yKkYaYVKdWW8hH4pzJdSZPe8pNVkinvsuk\/LcVWaN6ial3mJSO 7bV+CNeO7UwyOIZ28BX8xNCLTWrmTjF6shuLeUd49ouJ9FUv3VMzZtKl5XWXKtDzq75i6AKTW0zK 79obo+n9bzgd2sEh3vADQ08wmWvymMloeZujMZA3QkMMXmJSdtpjSC2onrIC6ZtCMYzVUc6P1epW cYVjaAdfwQ8MLd1ZESON\/S0oCmQVmWIyVZla0LfEXJOKleyxIutVSAlmFhxDO\/gKqczQymuhmUBF Yw\/WmidenVozih8kuiH6CL3zEs\/+E57jgmNoB4dEIZUZ+laT8u+Nte4cDX6xfmimtNSkZgqVldRr 5UgJOIZ28BVSkaEnmhRTyj+5sx9lDQSyfiiXHXX3gPlOFJXQdyS3kL4lbS30ATlz\/JRta2S5dMM7 DQ707uUDI5+PA57jjqEdHBKFVIr6FmPIz1nWhXgzs0AddOq81QCA+SseAACUrqT1ZdJ0Wl8ys\/l8 oRDJo\/o0mXz\/28ysf2Ar842U7fk1AKClpeKGd44NxLwXTY4yqRHnQt+KSw44hnbwFVJJh5bdWbqz \/JMHO2NRT4yeyBnDm1d\/DQBw\/2eX2TafIyOj50q30RCwti\/bT118\/c\/KAQD7t34LAHB49\/641qvb j3y6SW\/GqJTQpR1DO\/gKqaBDq9NJt9OMVnyZeUzRNADAvKXfBwA8\/lXG8M0tpd+1vKhDN8h+qqyn yus8ZwGtH3lfpl07e+gPAADpGV8HABzY8c6g1mvRavqDNzfSH7ziGJ+ns4P1HZLN9m5SctJBm4mN CRxDO\/gKqcDQ8ndW1HZ8Y\/oKR1O3vGkxMxQ9+LQxdSmjvlvDJAUx8o3yUncf548OY+wJkzjT+Ydf 4v0aLn8HAFB95q8oKxSNPVBdls87oYR+0cMKvgAAmL6QsYirH+R\/4oP9ZOxzFS8C6LbCdH93Jcq6 1IvKOTj4BMnM0OpsmsEqNxkv3dmYbNp8AMCSu28HAKz+BGMMWwa4poug6zuN6ceOoU5+5yPjAQCH dn0VAFBd8Q92hWIb+8rUvNGYiUsAAJ\/41D8DAB59hhmhxhRy5Ouy8xobGZO48X\/\/AgDwxnO0Mu16 \/V8Ho7FjBcfQDr5CMjO0dGd50cU3X\/HIMcwJVzT9bgDAkrsZs9geiQKP9Qq2lG1W7uI7WN+5y2gX Lj\/KlWBbmn9kV8gO3zumzh3O6O\/5y78JAPijb7B+ufm8T5uNOGEzw2TZigirH+SMaGc7s7xWHKHV o6pCOnVS2acdQzv4CsnI0MqToXwSZ0y296Os\/mN6KWckR47jKlFFk8lkssLGeuVaQWukZAR4pxkL mIF\/aB6ZsqV5rZ35vMnzvSo3PZ0Z\/+96jDn88vNpxegIe73quB3qoswtYLvPXUJGn3LTIwCAqgp5 Oco7z\/t+EuKt5xjawVdIRoYeb1I6c7wiUXpiXDFHihGjqTunW+agzhhZN6JB5WomcchQ+noE0pSf WpEyyl23zVOCMkApuyhJKzePdubCcSwvZGusRO7nIVKtaxiy\/ZnZrH\/+SM3YrjWpfChaMzyh9mnH 0A6+QjIxtJ6lwKQy6cdXdxZyjRCzc8jU8f6Wz7A77t\/GNcUbahbaETHgEpMfM6k1uw+aVLZVPn\/1 uc0AgEvnyMyisq5IxWzk0drhRt1BO7HdiL\/mvHIG6r0sMqnIG8UmXh9Ds8nsM26l3\/gkc\/K7cJbP e2AnYxub6zVDrAe9bo49x9AOvkIyMbQy6CvquKG\/BcUENRfJCPmFZKJAJIYwWoah2EC6bHuAZLPy fvqMvP075nE+d6rczpSO\/FuTskvLLU46Nxk9LZ3te\/Dt2wEAi+6kT0peLhk7kv3ZqpVu9Wxr5X+k \/DC3Tx6+HOU+yiwlhtY3AAtsb2Y585Yx4mjB8ocAAMPH0vpSMIL1ra9hZqcxk7ga2eHdmwAAH7wn r0N9W12TqR1DO\/gKycDQeoZ8k4pxS4zuLJy32L\/ho8hIraFiAEAgONjPRWYT1VSdou9Ke6tmKGX1 kb1eDFnrKafnCHelkSvkbn\/1FwCAEWPpxXfnJ2nnzrWAlfQM3r+pjk\/w\/k7uf\/FHtHdfPHfUc5+g R\/ZEezOfMy9vOQBg3lJ693380\/MAAOMsbXU4TMbNyOT9K4\/z\/KH5qwAAoa5vAACOH9inkk32WFnA MbSDr5AMDC3dWWtP1yX6gQAAJ\/ZSly8cy7Wxjx2YCQC4qZTM0G66bqzs0dKd06y8+hbODB7eRUZu rPW2i5hJuf3E2NePKDl+6BUAwLPf5Yh47iTt2ZNm0MwwbDivLz\/CkWHrK7Q2HT+gVcDE\/PrvyPtR DaGYT73PAgDA0nsfBgCsXkvvxeJZioyJhPBQWLWmzqVZZUgWvf5OH\/k8AODsyX8EALQ0KTpepBy6 esPBwRdIJENnmNRMk9b9S6zuLNTWk0HK3t8IANjz1r0AgOkL+BUeDPA5bxRDeCOEI0xvVgHbv+kN \/jqyl74Sba3elV317hTB0zdLeU31zwEAL\/xQ1oNHAQBZ2fRybG2RD410dzGxRgIvQyuPh+zkeh7O \/C66kyNx0XSOAGnppOKAh1MjzWiXz76JI8KEEuYB37P543aC1oj54OorHUM7+AqJZGj5BKhH1\/a3 oEECKeLsKa6qtX\/bywCAkllPAgAW30WGSQvw+bv6yNRi5qAxs3jv7a3Ubdf99CwAoPLYSTvijdTR jWQV6u9cpiJg6L3X2vKgpzzvmucaWXV\/ZV3VDGVPX46cHI40mVn8rw3JtHZLN2uOx5wcLTt1br6V G1ZuwzUmf2Wy8uqHdHDwBRLB0NISpTvXmUwO3dmL9mbOTO149ZcAgIx0fnU31uurndaQYUP4Vd8h f+Io5YmBMhRLaAx4aC\/b5ef\/RKvGtnWK8q7zlKB3Jnu0\/KEH6m1y3ORbJpVBST4iYmqNpLIy6Dm9 kTx8nitXuMpW9Rna81ua6S1YMCJs9b\/mZREfkpDd98wJ\/j86O9UemildZfIFwDG0g8+QCIZWFLc4 rKa\/BcUVbW38in\/j+X8DAFy+QOaoreZX97zltH5MnEHOyculziufiJBRUFML2\/ziWZLJ0b386n\/z Ba7Bvect5bSr8jyBGFirWCn3XKz8xWW\/ltVDM4JakVaMqPd12XOd9zkF1mP\/TpY7dQHzgYwcR3t1 dnp7j1K6rcr89dJPGLlUtp9Tlp3t+t\/IHq7\/05CrL3dw8AXiydDq4WIYMUty6s7RQZ1wz0bmtTh7 jMxaMpd26lm3sH6jxrO+QzLZxiEL\/ai7SLvxiYPUzQ+9w\/Iqj0mHlY7qjcmTr4sYco\/JwYoQafDI \/oLPt+M1RokXjCTjtjTQSjG9lPXKH2k6t\/0tDuwkZ\/\/ye4wyP3XYa0URGTdfvd8xtIOvEM\/80FrL Q95h0eyrqQb5UtB+G0y7AwCQP4JMkjGEUvkumuppFWlpFrPIrqsZP0WEiGw0sslP\/HWTYvRUgXTd LwIAps5hvabMKwYA5I0YZe3DdjiymxEwlceUbdabl0VWF80Uvn51ozk4+ALxYGgxjDm+RnrauURX PsaQjqtYv6kmZW\/Xt4K80AKe47ImaMSS7qr8F7s926kGRamrfTTDpyj\/O01qpJJd2xsh5M15+KzJ k1cfdHDwBeJh5dDaHbrXxf4WlOQQo2w2KSZVrJ18EMTk3jzLFz37ZY+WvVl231SF2kGxj\/qG0reA RqpZJvW\/0ciW6dlWxqazV9\/EMbSDrzCYDO21O0snTHWrxo0gBpEXWqVJMXPODa7z5vZLdci6dYvJ Nz31FTaZVHvJG1Pt5vVdEbO3XV2IY2gHX2EwGVo9S0xdnujKJgitHtlbaEST7inySbVvEOnE0pn3 RjlP9d1nUl6Z3hhFtaPX+uGivh38h8FgaDGyZgT19Z+UqyYlMepMitmmeo6nClMXm5SPyo3yWcub rrcjWw\/vPsfQDr7CYDC0mFm54MoTXckUh0Y4fdUrkkS644W+FRc3aCZP2Ulj7b99TTiGdvAVBoOh 9XUqe6LTnWMDWQHkXSbrgXTIZNOpZ5tU7OGOGJd\/zTVcHEM7+Ar9YWh6zZXMYizd5Dk3AQCGj6Lu HAjQytHUSK+6y2fYQ8v2cA2OxibFrKVapEqyQDroEZNiwmTTqYtM6j3H+rmuGeXuGNrBV+gNQ9P3 YOaCJwEAt629BwCw6kHOtY+dTLtheob3OvagxtpSAMD727ki61sv0Yvs7Q0\/5fH6fYluhBSFIluU FXSu53iimFpecrealM5fF4+bO4Z28BWiR6zkDCMzL7qD+XgffWYFAKB0BaNxg0FbJSnt+hl7lMMt ZIkXqis5Kmx4gfkaNr\/8HQDA4V3vwGEgkBffPJPlJqvj\/BwrTC43+YrJsn6U1Wc4hnbwFT6sQ2dl c4av5CbmnXj8a8wddvMqWi3Cka\/LnswcDl+b7ZX3OM1uVTSF\/tB3PDwZANBc\/23KOo4Ep8u2waE\/ UCyeIjkWeI7Hi6lHebbjGmnjGNrBV+hm6KF5ZNgxE7l+3Ge+vhIAsMiYOaQVRqPkQY6eFzlg13Er ZIxdPIPlPvB5Rv3W1TwDAKg8YffrfC\/RjZOiUP4OxSTGi6nl\/77Yc59L\/Sir33AM7eArdDN0Zhbt hwtXPQIAWP2QrSFyA2buLXSdyhFTT51G3a90Jf199215GgBw+uh37crK3t\/E4SqIqTXSaa1wvcAb +SX3FfItkc\/J6\/0taCBwDO3gK3QzdEcH1+FbdDuZMiONPbxzgMzsRTSmnm9myymzGUN3+uin7Yrn TVb08g4OPaFYvH0mvTp1rJhamZ\/0R6lLRGUdQzv4Ct0MPXvhMgDAtFLmhVBkV6yY2QuVq8zt44qp s0+ZwzU9dm3gunYtTUvtDOlmdQlus1SFYvNk\/ZjvOd5fplbGI\/lu6D6x1tF7BcfQDr5COpbdS6rM yhkDAMjJi2+EieYbs9LI1ZnZynzPnt7SpLwU8q\/1ZqV0uDZIVvOXcxQunsXtoml83++\/zbzLB7bR n3rMJFqbMobw2+nQO94VYaNhhkmNtesTX2kHB58gPbLWciDIWMDsLLM7x\/lJlNEtLd2sKpG+ph8l JpWn4kqvyv2oYXyJ1iKnTjtu8loAwPDRtBMPzefxj3+KzH3zSn67VJ6kf3XtBXo9Vlf+luVkcG2T CxXRIozk\/6yvroRGzDiGdvAV0rFjHbl4+Rr6J9deYs\/NLaD9crCZWkaUK13sXC1NZIKONulkiqFT fmXl+3AMfTWGjyoGAMy8+csAgFVrbgMALL2fY9+YQr1PvVEyasAsXSHLdlp+kr48O15lRv2db5Cp L1X8l50na5PXuqExNt7+1z3gGNrBV+i2Q586RPtkRdkTAIDiadzfaR061vZoed+lWblVZ6nDn69g fonmBm+WSWWhdJ3waqSlTQAArFzzLwCAJ\/6SM75TZ9NrscuirtujzPiGI++XI+LkEo58RX9Oa9O0 +Z8BAOTlkcFff\/6bduVkkwomXZfopgDcn8PBZ+hm6IZLhwEAh3aUAwCW3Uu7dDCodfZi49PRzQj8 ETQt+uRBbp84KB1Mq2UFPNKBoP\/xsnu+DwB44hvMeVc8k9aK7tmE67+37v380WXvJxhgCfMtRPBK M1fKbWrk\/u3rdtp1GkmrkARwDO3gK3QzdHMj\/Y7f3Uw\/1lu2PgUAWLTarA2BgflFhyMJ18M97lx1 jrratnX8ej51WKsaye6Z7tl2M4QAMGM+\/dY\/+03OpE6eyRm+SMRnP9+Tzg\/Z9Zm2Eu7ST3B\/zXnm ZXl3I6m7rWWDXZkU6046hnbwFT4c9b1\/J1f4XP8zZuLJHU5vt5nzjQGMYUO9ZACvzixrZVMzv45f \/SkL+L8XmWGnvVUxaCpYdmetb9eGjzY4M7fkHmaimlXa0\/cmHCOrVMQb0srLzjSdejmtUbfcSd15 +7rDdoWsUH1dSyamcAzt4CtcI7ddmFaG3\/\/3DwAAaWnseQ9\/gf6zk+ewp+ZmU2o+z6vZRlZmth+d 1nkuVPGeb77Amar1zzKPRN0lZdPs9JQgO+cJkx\/tGcIAmO11wW2Mlg\/KkN\/twR7zOwJAl73hkbbs 4Lxl9AnZvm615\/4bTSbkPTmGdvAVomcf7QiRMV\/+8d8AAGqq\/w4AsPw+rgiqGMC8kdSKsxlogkCQ PbmjlT27qYHblcfYg7evo51006+PAgAunVfOM+nGYhjlapNdWjq0xoSPJmbeOgcAMK6YZOTNLRjr Gd1IDKht5+TyPY6fwpEzfzhffH2tZg6Vr3pPIprHMbSDr9Cb\/NC0C2955e8BAHs3fxEAMG3BEgDA rFvI0KPHs8fKn7mhlj258jhn\/A6\/Q+vFmeNiWq0Jor6vzqV1DmUPUU+PawaepEVWDhkxfcgAC+on gjYCpw\/h+8rItvdXq\/cmv3WNvE29LjsWj5eYVnFwGBz0ZY0VztU3NfwQALBv6xqTWjdP1ghZKaQT q4e2eMpTZxITi3KkI2vVpIMmQ3AAutrZrl0JWlwskqMwFLbn0HvRAyk\/x2iTjqEdHPqL\/qyCpXy\/ ysy+0uQEk7JOiHm9VgvvPdWzpSPvM\/m+yY+2VcOLqpPlAICa82TIyTPM2hGUrw3Pi5W1IxzxvqNs vcL7Xa6ib03dRTFwh0nN7BYkonkcQzv4CgNZSbbW5BsmlT9D9khFA6vHqvPIa06xgooSVjR3QjLu pAwuVe8DABx+pw4AULqCkSRIH1x\/cY23dRd5nyPv2ooO4Ro7EvTIhPivO4Z28BVisda3rBlHTWpd umEeqT4ub6xGz7ZD70C\/490baAVa\/dBaAMCU2fYtMkC\/daFbd7aZ3zDf3\/EDtGq895b8n6VDe31K EuK37hjawVeIBUN7oR7a4JEOscTujS8AAF7\/JX1rPvVl5v4bUUhrg\/Ju91WX9fqv6\/oj73Im8LWf 0MpVXXlMV5jUPIS+kZy3nYPDQDEYDO0QHxwHAGx4kVHfTQ3fAwA8\/lXa+ydZNtEOXD\/C6EMRRXZc 0fhlB2ml+s2\/c6Td+ppW\/FUWWJGiZno1n3ARCYBjaAdfwTF0qqPygy0AgMaavwUABAPMbbdiDXMB 3nwHfWhy06hbeyOMNAMYMEa+WE+m3f0m\/xubfkN\/9C0v0+sxHNZaN7JaiRT17XTGZFxXkBUcQzv4 Ci4bkd8wuojZQMdO\/DMAwNxlzLBfPJPMO3IcmVUrB9dfJlefP0PurjhC3XjftnIAQHkZZVdHTZQ7 5pnUjO\/LJhPiv+4Y2sFXcAztXzC2L3sodeq8Ecr7TV06I5N247Yr3G5soFWk4RIZuq1VM7myK3v\/ KxZEGrE3y6enDAmEY2gHX8ExtP8x1eTHTMpv3cvAsn\/IWuH1mlPMoLwnZc3YYlLekgmFY2gHX8Ex 9EcHhSYVA7rQpKwUmumTfVlMLW9K+b8rxlO6clJF4zuGdvAVHEN\/9KDZYa1iVWBSVgsxtWIEtZKC 7NDyf05Q2Pn14RjawVdwDO0geK0aPdczTBE4hnZwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBw SHH8P7J\/08m1IQiqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI2LTA0LTIwVDA4OjAwOjU3KzAwOjAw lH1C0AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNi0wNC0yMFQwODowMDo1NyswMDowMOUg+mwAAAAA SUVORK5CYII= \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Software Project Control Center<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/adersberger\">Josef Adersberger<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/tausch\">Norbert Tausch<\/a><\/span><br \/><strong>Start date: <\/strong>01.11.2009<br \/><strong>End date: <\/strong>31.12.2015<br \/><strong>Acronym: <\/strong>Softwareleitstand<br \/><strong>Funding source: <\/strong>Bundesministerium f\u00fcr Wirtschaft und Energie (BMWE)<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Prototypical implementation of a new tool for quality assurance during software development<br \/><br \/>Modern software systems are growing increasingly complex with respect to functional, technical and organizational aspects. Thus, both the number of requirements per system and the degree of their interconnectivity constantly increase. Furthermore the technical parameters, e.g., for distribution and reliability are getting more complex and software is developed by teams that are not only spread around the globe but also suffer from increasing time pressure. Due to this, the functional, technical, and organizational control of software development projects is getting more difficult.<br \/><br \/>The \"Software Project Control Center\" is a tool that helps the project leader, the software architect, the requirements engineer, or the head of development. Its purpose is to make all aspects of the development process transparent and thus to allow for better project control. To achieve transparence, the tool distills and gathers properties from all artifacts and correlations between them. It presents\/visualizes this information in a way suitable for the individual needs of the users.<br \/><br \/>The Software Project Control Center unifies the access to relations between artifacts (traceability) and to their properties (metrics) within software development projects. Thus, their efficiency can be significantly increased. The artifacts, their relations, and related metrics are gathered and integrated in a central data store. This data can be analyzed and visualized, metrics can be computed, and rules can be checked.<br \/><br \/>For the Software Project Control Center project we cooperate with the QAware GmbH, Munich. The AIF ZIM program of the German Federal Ministry of Economics and Technology funded the first 30 months of the project.<br \/><br \/>The Software Project Control Center is divided into two subsystems. The integration pipeline gathers traceability data and metrics from a variety of software engineering tools. The analysis core allows to analyze the integrated data in a holistic way. Each subsystem is developed in a separate subproject.<br \/><br \/>The project partner QAware GmbH implemented the integration pipeline. The first step was to define TraceML, a modeling language for traceability information in conjunction with metrics. The language contains a meta-model and a model library. TraceML allows to define customized traceability models in an efficient way. The integration pipeline is realized using TraceML as lingua franca in all processing steps: From the extraction of traceability information to its transformation and integrated representation. We used the Eclipse Modeling Framework to define the TraceML models on each meta-model level. Furthermore, we used the Modeling Workflow Engine for model transformations and Eclipse CDO as our model repository. A set of wide-spread tools for software engineering are connected to the integration pipeline including Subversion, Eclipse, Jira, Enterprise Architect and Maven.<br \/><br \/>The main contribution of our group to this project is the analysis core, i.e., the design and implementation of a domain-specific language for graph-based traceability analysis. Our Traceability Query Language (TracQL) significantly reduces the effort that is necessary to implement traceability analyses. This is crucial for both industry and the research community as lack of expressiveness and inefficient runtimes of other known approaches used to hinder the implementation of traceability analysis. TracQL eases not only the extraction, but also the analysis of traceability data using graph traversals that are denoted in a concise functional programming style. The language itself is built on top of Scala, a multi-paradigm programming language, and was successfully applied to several real-world industrial projects.<br \/><\/p><p>In 2014, we improved the modularity of the language to make it both more adaptable and extendable in terms of structure and operations. This not only increases its expressiveness but also improves the reusability of existing traceability analyses.<br \/><\/p><p>In 2015, we evaluated and documented our approach in order to emphasize its core attributes and to show its effectiveness. The three core attributes are:<br \/>- Representation independence: TracQL is adaptable to various data sources at which their data types are available statically typed.<br \/>- Modularity: the approach is both modifiable and extendable in terms of structure and operations.<br \/>- Applicability: the language has a better expressiveness and performance than other approaches.<br \/><\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"tapir\" data-href=\"#tapir\" type=\"button\" aria-expanded=\"false\" aria-controls=\"tapir-section\" id=\"tapir\">Tapir<\/button><\/h2><div id=\"tapir-section\" class=\"accordion-body \" aria-labelledby=\"tapir\" role=\"region\" name=\"tapir\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/Tapir_small_image.png\" alt=\"Tapir\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAQAAACXxM65AAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA\/4ePzL8AAAAJcEhZ cwAACxMAAAsTAQCanBgAAAAHdElNRQfqBBQIECVeJWPiAAAdc0lEQVR42u2deXBV133HP08L2oXE vq\/CYMCA2eLgxDH2NAGy0KRpm6ZNkybTadqpyEz6V6fpMtNpM+10plOYaZvppLGTthlnc+ykEBM7 jhPHGwYbg1mMkAQI7RJa0L7c\/vH9\/XSeDGKTdMHu\/c28eU9P955z373f8zvf89sOJJJIIokkkkgi ibyjpLG8sfx2X8OdLBm3+wISSSSRd6KkbvXEixG0AA1AOzADyATygRJg+S23\/O6UREfHJLeEuyMR PAe8CJwDeoBshOhiYCmwDlgPLAfmJ+hOEB2X3DDWaiPIOACNO+EXwJPAy0AnkAtMAQaBCKF6GXAv sAFYbK9CYN7\/U3QniI5JrouvtyJoAi4DNcAx4E3gItLNmQjNvcAwQvWAfT8NWADMBN6DmMlMxEzy gCKgaA\/M2ne7b8PkS4LomGRMRL8ZwavAS8AvEZqHkQ7OBxYBdwN3IaTW2etnQBvS01kItd3AamAu MBUxlHyE+MVIn7\/beXeC6Jgk62pfnorgceB7SB\/3oicybO9Z9j4b2AZsRGj+OVCBkJoC6u24EuA4 0vMLENr77O8uoAN4OYKl72J9nSA6JrkC0ZURfAv4LvAWYhBT0BMZsmP6kc4+DBQgHfx+4CHEOg4B tXZuhJCbQ2Aas4FS+387Ae2pvdCwAmbvud23ZeIlQXRMcgWi3wB+gFAG4sPD9hpCyCxESO5BqO9H q8PlCNVTEd8+h\/R0C0JwHkL8EDAHsZVaoBKososZLIeKciiLkYUMFkPGNBg4DznDk9NHguiYZBSi z0bwNbQSnIKQOmQHDdoxmYgPr7L3QoTyQ4hxrAG2AysRc2lGXLnYjs9GI6Er7fwpSOdnIV09DzgT wYpJQnXTTr137dd1VKIVa8YL0LUdCvonvs8E0THJKETXIb16CfFgZxR+UDZiDHcBmxEKWpCebUR8 uB74GELxvdbmEDAdjYLZBDtIHhoN09BKcRCNgBaE+uMRrJ0EVJ\/eDyeAs4gVLUG28xnbYO6ngUcm vs8E0THJCKLr98tOcQGhCYS8CK0McxDCS+01HbGGLju+Ctmm++ycXQjRjcBRZP9oRugtsbab0OjJ RSvGdmujDrGcXKA6giUTiOqXIngM\/dYqYD7woP22S0DPN6Bh48Rz+QTRMckIos\/tlB\/wBELcIqSf W5Eu7UI6uhsxhEqkUzvsuz47pgYhcSOwAlnm6tFIecveSxDq3aY9HSiz7xoQ0nusnVy0Wi1eATMq xvdjayKp3yeRfgbNGUNoJHWhUdVTDiSIfmfKCKLdltyJkDUH+EvEcasRGl+3VxXSaS0IAf4atvdq 4BW0UlxL4OOt9t5hx7nnphqxHWcbGWgUddq5F4HWM\/AXaL6Yg7zsq4DFN6G\/zwBPodEIwSK5BNgE \/CcabVMm4UYniI5JRhDdhnRtZH\/XASeRvfnjyPZRg\/guyE5dYK92YBYB2b1olfg00r3TgYeRru5E HD0DWe\/qEMJa7e8upPvbrJ1L1scJNBL6EOtZA7wPeDWCzTeA6uYyeNT6K0Qjq49gt0mh+aMJrREm WhJExyQjiO5GTzmFUH0M2AccQZx4E3rSnUjX1aCn7xa5DyOu7fF4dcAP0epxBdKDy4AdiH8P2fmn kMWwydo9i\/h2H9LPfXaR7YRR56gfsNfBCNYdgDm7xv6hh8+IbThxSSE0b0R2mSPAeWR\/yZ2EG50g OiYZQfQlhA7QE+1Gergd6cZB4H40IzcgJLejld9MhLYNSH92IlT2It1bD\/wUuAch\/j6EnDnWVylC s3typtj15BG4dLG15x6fCI2aFxESK3bC45HazLcfNoxGSi3wrwi1OfZbChBz+YD18z9opCyy65po SRAdk4wguobg\/XBd7SvBsyi2Yw1C43GE4FaCHj2LUNeDZu9BhLxhNCIuA79CiK5DurHIjn0T+D5C FAh1Hmddap89PqQfobnT+mpDiH467ViPP3Hu3mht96GVYKNd6\/vQ3PGqveYhm8u8SbjRCaJjkhFE v4GeeIrgve6zVw\/SY\/8LfBTxakdUI0Fnv2jf+fGXCfpwFvIlLka69iDiz6fQStP1bx6ByXgGQYa1 kYfmA\/fQdCBEt6DR53NJj72nCCPAEeXZCTuA3Xbuo2gU5dg5CyfBBp4gOiYZQXQFQm8muvuDCCXD CG2nEDKmI922G6H0TUJcRiVCULG1OYAQWYz0rbOMt5CN+iIh+sn7dCvasF1cP0JZlbXlrKHXrmcY 6e4MpMeno5GTae24PWaA4OnZBZjbkANoNM+za\/PYlYmWBNExyQiipyJk+MwOQkwKPeVm9MSfQV6S LcBCFG16N4r+r0IIGkC6MwOhMBNx7G7EaeusrQ0ImdX2t88LGQSbSx9Bd2cglPr1pY+EfDRi7kP8 OBeNsNet\/XrCajAXxQmeQFbGGYy2f0+GJIiOSUZ5wfsR981DKBxE+i0HIasaIb8fsYaPAr+BkFMG nEYWv3aCfixCNo5i5D0\/bn0sQkxiEDGXi3buOaSnc6yfXsR9tyO0PUeIAXF2Mwh8CvgS4s2voxXh fDTankFzSSsaVQcJo3QAzUX9CPXnJulGJ4iOSUYQPYhQ14UsdV+yz\/+CWEI2gVm0Ip3YglCxFiHb eWsPQmU70olL0YjIAX6NsILzLIJcFJn6OvLyvG5teBjcMmRhy0UryS5kC8E+FwCfBn4M\/Ju1m2k\/ bq713YlGYxbi\/d12TDYaNVmEUTjRnndIEB2bjLLeud2iC6GnDPnl3kBPPYVQDdJxnjm7EiFkM8q+ Wo508AAaKcNIL7fZ+cOIR79g3+UAn7VztyJP9TGEvHrEDM4jdlBJ4M1T0ajZiJjQccRosq1N90fO sj4vpv1wj\/fOQ3MAhEirVyfhRieIjklGNNGySE\/fbQqbgC8infVVQhSSezemIORkIF1XQLD2XSbk umQTYqndlpKDRkiv9d2HvDBfQHF7Z9FouYCQXY1G3HRrO0WICRwE\/tqu+ZvIru2x3O4tKrZ2T6ER 6FbKYbQWWI1GwkU0kh8C\/hCYWwFzV0zMjU4QHZOM6OgFSP85v\/wlsgncj6x1Hpfn3mNHZCnS7W0E r4Zn07o1LV0yCfaEAvu7z459CqHrvWhu6EZIO4VYyQl79\/MzEKvZgvRzHwGpKcRs3NP9d2ikvIHs Ok123Z5bc5pgrXwJ6f31ZdCwd2Li8BJExyQjiHZd6rEdPejJLgB+y\/721VMB4tKeKzhA0Ifu3chC qPaV5iUC2iHo+Mt2rPsZWwkrS8\/QdUtinr23EOqEeHSrV1dwhpOZ1sZWpIurkBVxt70fQ6PoEFqd XrZz6xCXB2gph8PlsHicsX8JomOSEUQPoKc8RLD1\/gLN2H+KUD0dIaAKPXmPq3C9m48Ql2XHTiFE 8BciPdxvxy+z\/jwqtQ3ZQgqQx\/wgYhtes6nD2liNePtca3c98q63InvICwTPC3Yda5AX\/Nv22\/Yg Hdxs133ZjhsijIZT1mYuslVvOQOvAffe4ooxQXRMMoLoFoJXO4V03QVkZ16BbBQ77fsfIZ02QMgG KEEryXnILnw3QsNLwLMEbt1v\/\/9dFGl\/GjGAdchW\/SyKv+hHetvtFgXWRgPy930BjbYWu96V1uYc 67MK6dpO5CGfgtCebe3fbde8Ha1kKwjRpb6KrEZz1iK7zg3A05FG47KbRHaC6JhkBNFzCPkrRQg9 EZrdv45sDZ8HPoJ02RGEgjpC1YJGhM5XUWWEPkZz2iKEsIUIWd9H+riH4F3pRZ7ujyDOe5rAIDIR wk8h3vwVZFlcDXwGjYrP2W85iEbaJYTm89b\/MEK2j74a+\/9WNAf4nPIKwQPfZP03olH3HuBYBPfc BKoTRMckI4jegNB5Aukl58WdCGXPo9n8U8DfINR+k2CLuECIDhpI6yAXIes8wVPzkp3TiNDsMRUd dvw24HcQGpfYuSCd2okQ\/TXEAkD6\/Dm0mpyGVrNLEYpa7BqbkN51hlNj\/6tEI2AeWgE\/bf3lEXh\/ JWI5BQjxh9F8djDS3HAjWQcJomOSEUTfh564Z8CCEDqAEFON0Nptx2xFNuSXkaXtWUZXCXPvtdtE 8tAo8Q7bCDYLtx3754WEaFW3XYD0ZA6BbZRYO0cRkn+IVnn32ys37be8iUasRypNs88ei70S8e1u tH7II1grCwir3CY0b52x93ZUp\/V61SoTRMckI4hehVZLF9HT8rg5EKKa0ax83L4fRFz0vfb+McRx qwm5IM7NPfoIpPMyCavPXIKNotj6PYF8lYeRLp1q\/78LMYwh5NluQyvDafa\/8yhe4ycomuqjiF0s RHr\/LoSsVdbmr6y\/bPt9F9DIXoqQPUDg7Q\/asa\/Z\/fH5ZRCNspoIFlwD1QmiY5IRRN+Tgh9H4q0e beSx0hHioNX2nou8zbMRalYjj4zP0h5zUYEYxgmEgmY0w38IISyFZvnHkVWww\/o7m3aBkX0fobli BmIdKcSbv4JWbv+OmEen\/d2FLHA+6nbY9543+QTi2u32e1rsGrbZsfMIcYg7UV77s8hO32btdNpv XYBWi9eSBNExyahIpWVIp51FiBggVDoAobcI6S3PBz+GEOGVwOYjXb8NIf23CXF0nk\/u0UUgy+CX EXN4BOlN9yE6t3YPzBk7\/xhC1FRU\/+kVZNsYJlSVbEDzQCXS5yuQ3boJ6eIapIeX2W\/KJOSF70Y6 uRChddjauUjIzRkkxKpUYvWj9o+dGZYgOia5Yp48YFUcj6An2I0QuxatCE8C\/4QQ43y5lBCv4XYN txP0WBsFBKbh3vNipGfvRfbuOrQaLEW69SfAfyF\/ZaGdPw3N+Nl2XQVIt04neHFASAMN2Tn2\/wE0 X\/TZd\/cgf2Ou9fc+66cw7X40I6ZxArGaejQy65Cuz0Co\/3Wk28fK4k0QHZNcUfduLVpFnUOz61T0 xBYiD8XPkcUsj1C14JK9e4xHN0LyEKFKej9BL\/tDbyFUOpgDfMKOnUWo0LsD6dDjSBc22t9ur+60 4xvtvYlgV\/ZcHPfQrEQ82etFrUc2lZWE7ATPILiE5oR\/RqO4Ds1fHhceEfyMHgm77ho3OkF0THIF ohem4BuRnlS9feexFcXoSc9EyClA+moorTGPVnKmkU2wBGKfpyA9iZ1fj\/TgEMramoZ0agqh9L3A AwhBryF7htf1yLa296ER8xSyv3i0aT5C9FJCdeBZSA+vQ6yjByHaMxIaEP\/\/FhpJXonBsxWmo3nl PCGm\/DjS8WNJguiY5Kr1oxcjO\/AppEdBusurLC5DXNtjoXuRLvd8ly471i14EHK83R+Zg\/T5gPVT iHR\/FgFdbYRoooeQRW4RISbjpPXxJ0i\/99t1lKFV6Sn7rtCu+X7Ebubb9XWjlfBZtKqsQqOhC42S Vrt2z3dsRny\/FOnqe9HqspYQmXUhunqeYoLomOSqiC5Dsc7VhBxC329lF4qL8PiMUkJkUxZiBo8T amN4bdN+gofd9fUUgnelG63YPOK0k8BScpBt5UeETAKPmetJe5+FVqVTkceoHunwOcgH6fmHtchj dBjp\/GPWpvs4\/dogeFq6CTbqo9bXOrTCbLD+m+2eXS1eL0F0THJVRC9KwQvGPIqQ7vS878cRz25D fPI3UTX02eiptaM4iZ1o5j+NUDMDtddPiGt2lBcjxHQQKoR57Q7PmCpFiPFM2z7ETryaQj4aCdXI MteF7M8P2vVlWP+NyKr3S8ReqpAu9shUj7zqtnvhq9mStHuQhRC9Fa1aW+yazyBd31EO58pH+xIT RMckWWP9Y1sKDkXBG3IEffYIniGk23zltQqhrQfN6msQivsR5\/42shectmMKCRmyKUJcHozm4Y5+ 58WZSNdesusqRDaLfGujGSHrJNLDP0W6dDdiUh5FdQHNP3mIkXjtave4e72SXOvHrZkzgd8neJRO EvJ\/jqHRcRmNwHRJEB2TZF3rn1tS8GQkPlqNnmw3IfekG6GnEPgHQsy0V57JQAxmHfDnhAhUjxvJ tHN8D5cLyMbiNfA8Qqkb6eNOQm28HDQy5qAV2VS7Ro+E8irBvnJ8DTEit52fIsTVrbX2O5CO9ezZ zrS+ZqAVqscM9gDfQQzGLZN+f2YR1h8uCaJjkqzrHVCGZtcKpF+HGJ1x2oBm3mGERLc3u9\/wFaTf n0eRmzuRPvco\/WKExgcRok+imd3jQ4YQCr+FmE4ToTpNEfJVliLEPoF09ApkpfPcRo9YOori+RoJ FW9WIz39e4SarAeRrm5HaN2CMom3oPln2O7FRcJIKCLEoDQjpKd7xhNExyTXRfRqYx8ViHN6DrVb 3\/qRjoXAez1rwPehBSH\/e2h153mCfkwhIb\/ckZyBkLoDzfKfQVGgFwk1PZajFeBUtBPSd5EeLkKo XoNQWYtWiW3Wj3vqPd8Qa3MRQm2+\/a4LaH3wYWsry447h0bWALJpD6AVomcPtKER8fZM3URikOsi GqS3FhNWaT6TZxFmV2cRfkyhfW6z47yWv2d39aed53Eb3QidXtmgE61E1yPL20cQYgqRnvXqM19B +rkNMYQ2tPo7TRiBPlKct3v1MM8XP4bmkmLELnzno2xCzbwWhNTjaC5xr3sOQn49IXbx54hzn4u0 QkwQHZPcEKIXpuCxSAzE81xAKHG9\/Dn7vB89yc3I9vsoiqtwFgJC7TSEct\/lwmOn2+0Yr1DgcXKe sZtN0PePIJ3seY5uj\/bIfq9T7Z4fX+V6rB8Eq1snQuVyFAvtsR5VCOm11k4bsl+32N8+Sn3F3GF9 9SH2ssj6SRAdk9wQokGe8PVINzUxev+sIaSfPomimbbY\/3PQSmsr0pe+gnIfXT7iut3Wlue4YOe6 J8PzwruRveQJFMPsEf+lhNiRMkJlXq+Pl4NYga8WPWfcvd3H0VqgDI3GlYhJ\/QhVtXmD4M\/MJeQ\/ 5hFq\/LmXxVe\/fk\/SGVkiMcgNI3o+spL9FOmpTEKU\/iDytb2OULkdIXujvW9GlrNKwmx9N9LTL6BI ffdBuj712s\/PIh26Aenc5xDKBpGNOL2+0lS7xs2Eqo9eey+F9L9ndF1EiHO7ylGE8FK7zuftuprT 7kEBQrDXOvX6fs5mnGf7HNZEGKEJomOSG0b0khQ8F0lXe3WvdKlHCBpG9o1cxEW99tLTyJ7xxwgB 3wH+Hs3qbmP2uk3OTlJolNQQ9r89RpgbBtCKrcnO9UjWXVy7Ym5NpFXfITRiThJ8i30oNuQZhHbf x9ytjA0ELg6B8xcQorFy7He3EzzpCaJjkhtGNGhGXoVs0A2EGA1vqA8hpRgheilC9+PoSf+YEJ\/X T9Dxrj9BaHB7di5Xxs\/1EyrLFCFGcxkhfxpC5fXqP7tFrSZSFmwbIbPLc+DTd07C\/k7Po0wf0V4z 1cVtMUvt5cckEoPcFKKnHYAHdkpnHkJPyfP4fIchEKK3EdARIWbgeyJ6lRpHrNcKcZtCIYpvm47m hBTS8+6Z9pVdLyGLtY3g6b5ReXsW1akoWNy8rwaCL9Rr5fm1+wrU4w8L0YjrQvPFJwl1qhNExyQ3 heg5u5SncXan+OUUwqzraJ6NnuwO9OTzkYXLc7AjFG\/htUl9d6I2O24h8FfAx1Oy+\/5LBP9B8FJD yP5qQ4ieTYjDzh7HzViVhvBnI8XWHUO8utL677L+HkS+0Iso8tT190zktXk\/8ImUdtCDBNGxyU0h GoTqVyI9vccIWVDZhEzTEoTwQeShfgrZceehUfAw8oA8hnTyYlQ58QGkw73Sbf1++FtURcE9NW7l KybMD9lopfkHwEM\/mJgbs92uoWEvdJfL3tFl178EWLwLZh64+rlPoUyBdEkQHZPcNKIBFlbAvWWy GXhmlu9NO4DsHo8CH0T22PsIVQJ2IOQ+iewcWWgEbALWvI0F9OyUPk636qXXfIJQF+nPkPWtYN\/E 3qDZe5iQ\/WcTRMckt4TouSuku94o1yrR9adzzAvIyvZBwg7JZwgV17+KbMqglVw1yph9uyxNwZei EAfnq0SvAAlC9lxkk+gE+mtv9y29uiSIjkluCdEg3fXDcqGrk+D99piJakKs3GLEQg7bd+45z0Ke iVV2zNVkpf3\/BCHjK93O0I1szPvQ6Nh0GpquwQhulySIjkluGdEgy1QJIbLIG+wjZLmutOPmI1R6 LswwGgGrUFbVjgaIpkCqf3Qfm5B+v2DH+9642YjRtCLf4TnEzRdy56EZEkTHJuNC9AxCVKjnE7r+ nIX0bg7ygL+FkD6T4C1+GFm41gDZs+HyA8gVkyZL98CGvbI5VBCqJXh1hByE6gvWZgt3piSIjknG hejsPZC7N\/jIMgl7Hj6M7A\/1aJX4GkLiRuCPkL26hJDzHQGF27gC0bP2wam9YiceJeV1TDuR1zsP oX0O4tN3oiSIjknGhehURahWcBkh2usqlSHUvYVy+rqRDfoIoSqYW8S8LsfGMUptrUqpMs5+ZPfw eka9SL9vIlTV3Xq77+gYkiA6JhkXomceEGvwODeQvuxGnhP3rTnq3Q93GiG5hrBz\/ZvAws+isNSr yAyE3qOEHZJzkUp3L8sGRkfZ30mSIDomGReiQajyPVf6kU3Da\/l7XvdUhLQpdmyEEN9AsMpV23dj yWzkoSklxLu593s68pK\/iFD9RAS7J2Fv7\/FIguiYZNyILiLkjbj4zvZeM3qQoKuzCBGjvmOxe5bz rtHPohR822L\/vEJueiatV3vMJESX3kmSIDomGTeiSwhRpDkItUUEdHq2Vi9CeqEdFxGQvxrx37nX 6Ws5sgSetHZdDfcTKsUMEtjNnSQJomOScSO6mFBrNAshtwPFcTQiRrAKWdcK7fiVKIZ5M9KvVYhT F16nr\/nIIuh7B6RfvO\/TcgkxnNoI5t1BzCNBdEwybkR7JRmvBervNSg+r8xetYhj+36ul1AsxjPW xhrkNb+WzE\/BP0Yh68lzCb0uKmg0tXLnSYLomGRCVoYuvhpMoVVfLWIJQ8hTnQ8cQNlOXXbcNPv8 Mlr51Z0Ze+fiujPwjbS\/I8Jeil6fyWOv09Vzc9n4dtecCEkQHZOMC9HNZcou9bw73wuwAzGJKqR7 29DKrQ0xFK9ekx6fUWBtpMrG7q+jLFQrcK+MV1rwvcoLkV+yBIhmQKr59qMZEkTHJuPzgleEvbzb CdH7vcgb3Yt0+Gtp5zhbmIuQ59mrXmH9Wk8+m1D10feG8ShTr3O6ya6nG8iYx+jU19soCaJjknGz jkUoqr8beUnaEVLXIduwV6npIWRklaL9WRYwunpAJpDx\/Nh9+d62ixFPd2tgprW70fqtRNV5c45q xH3oDlghJoiOScaN6LtTcNR2FvYd0YoR6jbPht6GUInL\/YodKAc7heLxnD1kAtGKsfuan9Iuxh9A K8r0TKypKNvL6\/w3oBGTw9XrOcctCaJjknEjGmD9NXSge62nE\/bwzkTxHguQZ+WcfZ8DDM++dl93 oWzUGuRn9Pp77nu8gKJP+9CccAY4XA615bfXmpcgOiaZEERfS1xn++Is375binYtvgz8NyH76nqg W5SC45HYThXBYlhJ2MltFqLPVYRKZgvivKtXkQTRMcmkI7oIReF7zdABhLjdyA7yM2TBcz2e9ciN tTkbrSRdRw8i1uMWvV5CpfK5jN6r\/HZIguiYZNIRnYeQuhzljOciNH+esMtnB7JFl3B9HQ2QtwcW 7w07FQ1aP7WE2tBuA\/Fd2oriuqNjSILomGTSEb0sBV+O5BXvQv7DuUg3H0J8eoiww9Bw7\/XbnLUP 9u8NFX0HEZPx3Y28Jh0E\/2Xpruu3O5mSIDommXREN5fJLvG8dXbRPmcQKqy7he8XwPovouJ415EF qEpCF\/LcePyde3u80u4StCvF7c49TBAdk0w6omdUSB+vQEwg3eHh0Z8pQhWbszfY7qwDsH2nmEor waZSgjwsaxHTWYZWk7dbEkTHJJOOaFDMXAlapfne3dnIupZH2IeqmbDP7fXEd5Q\/HYWd6IaBzIqx 40JupySIjkliQfTKFHw9kjelhVDt0MUr9TpTuNm23wmSIDomiQXRoHgL3\/W4Fa3i5iGP+Uykn+ch pvBulATRMUlsiJ63Bx7cK8R69OdChOY25P+bCdx\/B1aPmQhJEJ1IIokkkkgiiSTyrpL\/A+nwT+yW YUQ8AAAAHXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBUaGUgR0lNUO9kJW4AAAAldEVYdGRhdGU6 Y3JlYXRlADIwMjYtMDQtMjBUMDg6MTY6MzcrMDA6MDCeguTQAAAAJXRFWHRkYXRlOm1vZGlmeQAy MDI2LTA0LTIwVDA4OjE2OjM3KzAwOjAw799cbAAAAABJRU5ErkJggg== \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Tapir<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2006<br \/><strong>End date: <\/strong>31.12.2010<br \/><strong>Acronym: <\/strong>Tapir<\/p><h4>Abstract: <\/h4><p class=\"project-description\"><p>Tapir is a new programming language to ease systems programming. Systems programming includes networking protocols, operating systems, middlewares, DSM systems, etc. Such systems are critical for the functioning of a system as they supply services that are required by user applications. For example, an operating system supplies an operating environment and abstracts from concrete hardware in doing so. A DSM system simulates a single shared memory machine by abstracting from the single machines inside a cluster so that a (user-level application on a) cluster can be programmed without having to program explicit message passing.<br \/><br \/>Compared to application programming, systems programming has a different set of requirements. The programming 'style' is also very different from the styles used in programming user-level applications. Finally, the performance requirements are usually very strict in systems programs as the complete system's performance greatly relies on the underlying layers of systems programs. Bugs in systems code have also great repercussions on a complete system's reliability. Combined, we can directly conclude the following when using high-level languages for systems programming:<br \/>- High-level languages, such as C++, C#, and Java 'hide' implementation details from the programmer. A programmer for example no longer needs to know how exactly a method call is implemented. This knowledge is, however, required when doing systems programming.<br \/>- High-level languages supply functionality that is neither required nor wanted. For example, when programming an operating system, automatic language driven exception handling or garbage collection are not wanted.<br \/>- Systems programs require no high abstraction levels like common high-level programming languages supply. Likewise, the libraries that a given language offers can simply not be supplied in a systems context. Usually this is due to the system itself supplying the functionality that the library is to provide.<br \/><br \/>The basics of the Tapir language have been created. While Tapir has some similarities to Java, C#, and C++, all unneeded and unwanted functionality of the above have been removed. For example, Tapir has no automatic memory management, no exception handling, and no type-casts. Class and object concepts have been kept, but inheritance has been removed. The resulting Tapir programs can be verified by means of model-checking, even while the programming is still being developed. Verification is made easy as code pieces that are implementation details can be marked as such so that they can be safely ignored by the verifier. Tapir code can be executed in parallel for example also on a graphics card without the possibility of the common programming errors associated with parallelism can occur.<br \/><br \/>Even while the language is still being developed, a prototype DSM protocol has already been implemented in the Tapir language. We have evaluated RDMA-based DSM protocols so that they can be added to the Tapir language. Tapir's semantic checks are implemented by means of model-checking. Model-checking, however, is a very memory intensive analysis. This made us write our own Java Virtual machine, called LVM, which is especially suited for managing large numbers of objects. LVM outperforms standard Java VMs as soon as swapping becomes necessary.<\/p><p>2006\/2007 wurde an den grundlegenden Spracheigenschaften von Tapir gearbeitet. Obwohl Tapir an existierende Hochsprachen wie C++ und Java angelehnt ist, wurden alle unn\u00f6tigen Eigenschaften und Funktionen entfernt. Beispielsweise fehlen Tapir Speicherbereinigung, Ausnahmebehandlung und Typwandlungen; Klassen und Objekte k\u00f6nnen zwar definiert werden, jedoch ist keine Vererbungsbeziehung zwischen Klassen erlaubt. Das mit Tapir spezifizierte Systemprogramm kann mit Model Checking-Techniken bereits w\u00e4hrend der Entwicklung auf Fehler \u00fcberpr\u00fcft werden. Ein prototypischer \u00dcbersetzer und ein Verifikationswerkzeug wurden 2006\/2007 implementiert. <\/p><p>In 2008, LVM was optimized both for sequential execution and for distributed execution on a cluster of workstations. This allows for faster verification of Tapir programs on clusters and for faster running of scientific Java programs.<\/p><p>In 2009, the Tapir language was itself improved to allow both easier automatic program verification and to allow more efficient code to be generated. For example, the language has become easier to verify because code pieces that are implementation details can be marked as such and be safely ignored by the verifier. The efficiency of the language has been improved such that selected parts of programs can now be executed in parallel for example also on a graphics card without the possibility of the common programming errors associated with parallelism can occur.<\/p><\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"vvip\" data-href=\"#vvip\" type=\"button\" aria-expanded=\"false\" aria-controls=\"vvip-section\" id=\"vvip\">V&amp;ViP \u2013 Verification and validation in industrial practice<\/button><\/h2><div id=\"vvip-section\" class=\"accordion-body \" aria-labelledby=\"vvip\" role=\"region\" name=\"vvip\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9888 size-full\" src=\"https:\/\/www.ps.tf.fau.de\/files\/2025\/12\/VuViP_small_image-2.png\" alt=\"V&amp;ViP \u2013 Verification and validation in industrial practice\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAABfWlDQ1BpY2MAACiRfZE9SMNQFIVP U6UiVQcrqDhkqE4WREXESatQhAqhVmjVweT1F5o0JCkujoJrwcGfxaqDi7OuDq6CIPgD4uripOgi Jd6XFFrEeOHxPs675\/DefYBQKzHVbBsDVM0yErGomEqvioFX+DCAbvRhRmamPidJcXjW1z11U91F eJZ335\/VlcmaDPCJxLNMNyziDeKpTUvnvE8cYgU5Q3xOPGrQBYkfua64\/MY577DAM0NGMjFPHCIW 8y2stDArGCrxJHE4o2qUL6RcznDe4qyWKqxxT\/7CYFZbWeY6rSHEsIglSBChoIIiSrAQoV0jxUSC zqMe\/kHHL5FLIVcRjBwLKEOF7PjB\/+D3bM3cxLibFIwC7S+2\/TEMBHaBetW2v49tu34C+J+BK63p L9eA6U\/Sq00tfAT0bAMX101N2QMud4D+J102ZEfy0xJyOeD9jL4pDfTeAp1r7twa5zh9AJI0q\/gN cHAIjOQpe93j3R2tc\/u3pzG\/H5rPcrcBau2DAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA 6mAAADqYAAAXcJy6UTwAAAAGYktHRAD\/AP8A\/6C9p5MAAAAJcEhZcwAAXEYAAFxGARSUQ0EAAAAH dElNRQfqBBUHCi1TMzFTAACAAElEQVR42uy9ebxlZ1Xn\/V3Ps\/c+852nmudKJZWkMgcSAgkgMwSF AA6ooOLQrY1z2w5ddiutdrf6itoq7dCiLTIIQZlkCgESyJzKVElqnqvuPJxpD896\/3jOrbpVdYdz KwVBmuXnEOuec\/bZ+9lrr2et3\/qttSzfkW8HEcA83yfxrSDyfJ\/Ad+Q5y3cDNwMhMAX8PbD7+T6p 78h35EIkAj4COECBGvCjz\/dJPZ\/ynW3q34asAnYAwTl\/7wH6OLPTRsDGeb7fAVwPFJ\/vC\/lGy3cU +ltfrgH+Avhz4IZz3uvBK+usWLzy23P+9sPA3wK\/hX8AviPfkW+6GOB2YC\/enVDgCF7Bu4ErgJ8H Ts55X4EHgNfhLXUX8ONA3HovBT4NbHq+L+478v+eWODXgYyzFfZR4P\/iFd2d897sqwF8Dfg74NQ5 750Abn2+L+478v+eCHAVXoF1kZcDErwVTpf4bAb8Nd5yf1uKfe6H+I58A2UYH8i9mPMDwlPAfcDn gE8AnwUewrslDbx\/fe53jgC\/hLfu35HvyPMi3wWMc7Y78S\/AG\/AB4FylFaAAbAP+PfAEZ7slDwCd z\/cFfUf+35EiXuECvHJuBD7DGaUcwytqB0snxYLW9\/+WM0FhDdjZ+h0Bcsxvyf\/NyrfNhXwbiAB3 4AO2Q63XVcBtrfdGgN8E\/rjN46XAPuBn8K7lW\/HW+0eACfxDshYP4\/0P4PHnewG+I99e0gf8M2cC vRm8RZ11M\/4bUL6A4wqwFfgiZ1yPidYxZ4\/9S3yHBvEduchyC3CA+dGJrwP9z\/H4r8a7LPMd\/06g 9\/legIsh38kUfmuI4AO8oQXe\/zs84jGfVIDvwXM4XsTC9\/SLeAhwPlkNDD7fi\/Ad+fYRwbscPwXs wrsbs9ZzGu8yzPedK\/GZv0mgiofyfhefSZxPfpazMekR4JN4JCX3fC\/Cd+TbUwaB\/45XUAUeZH53 o4JHMM51H6bw3I35cgw3zfncAeB7gfzzfcEXU77jcnzryUl8gqTZ+vcIHrE4V8rMn8Ku4BU3nOe9 cXxWEbw\/\/XV8ULhcMXh4cSWwHu+ydPMtoE\/fge3alC9dcUWpZOgohJJrKpXU2Q4RKYqqRbWIMXlU l5d5FXECTfXWOMO5popO7tyzd8Xnp2dsG5qmy\/z73PcW+8xicjOegz2fz13HW\/2PP4fjPyf5jkLP kQeuvVZsmgZ5a3OxaiGDXOZcToyJFAbFyNoMOlBdYWCVQi8iOUT6gC4ViZb5kyneRz4FNDBmeiKJ T\/VG4TYrkkOVAWtX\/vzq1Ztf3tNz0qg2i1BrNpvxK3fvrh5X\/SLwg5wNuU0DX8UnU86VbjxnGjyq cSNwjOVZ6XVAaYH3CnhsW\/iOQn\/z5Ynt26WeyxlErDhnLOSMtT2Z0XUom53KejFmnYqsALpVKcRK CJJDKIjf1i3+v6GAQRaHc50qk2lKwzkEtGxtWrR2Qz3Lskemp3n\/8ePmqWYzX1MN8AffuqlQ+FUV 2YPIoSzQp2xYPHzn9u0jb92z50+ONZurM9UbMrDqg8m\/wltIN8\/Pz+VTrwHeC7wd+H3gy5xxcxaT tZx5KOaTjXjXw7VxrIsu\/08rdGptpKqrEVkvsDFVvRToFyd9CL1ANyLdeL80WkpZ25GxJOFnn36a vXFMAPLdvb3hj61eHT45M8N\/PXiQkSw76\/PHsyw61Gy+bH2xeJWD8UYmw4qOB1F04sOXXbZvIkn+ 4q8OH\/6Xu2dm4sNp+gieNjqfMuXw\/I9ZMXgr\/Wq8+\/B24MklTt\/gH4Rwkc9son1fWlqvi6b8\/08p 9Klbt5skMeXRRtgbZ25FYsxKYDOqm1RkC3ApIh2qGhpEAqMY8Ysucmb1Z\/\/\/5YoCx+KMp2LvDcTA wWaTVB0rcjmGooiRev28731sZKR8Q2dnKW\/MGgUFyRSdUjjQEYbPvnvjxqd\/1qe5I6u6udvaUWZm ptbv3p3MOcyt+DKu+eQo3u1ZSkqcXfI1n6yjfYW+Dl+M8D48E\/A5y7e9Qt991WbpI8wnqSkdmwp7 c4FszNCrMeYlwJVG6BHEimDE6yrWCKGByBrC1q2xAoHxdzIwgl3glipwqN7gn0+OcXN3Bzs6y37\/ Vf96tn42YHGw2SDFsbYQsblY4Il6nQBvsmZt9cPVKv86Oiqv6uuTSAx4N6cPb2GvEf\/RusKTTvhi zWSPZMXC7seuvupk6JrV63ftXjWt+st4IhJ4aK\/MGcW7FngF8I9zfnY+6QYGlljyjSytVxbvv78f j5L8MPCTwN14t+mC5dtSoRXkrsFBG3V3hwWTzxGwVQJzXeK4LctYD9InQpdAOTIEOesVODRema0R jAgiilF\/xFnLDJwx2ef+rirPzNT4xWcO8tWJGW7oGOf3tq7j8o4yRnycNJKcHasdTlIakrKuXORH VvWyIh\/w9HSVe6eqzNrqaef4y5Mn6Q5Dbulu5UxEmN00FIyoWoHtKmZVPdXXA3sDIw8cy+Sxosj3 Tqve0jrcCeAgXolnFXolPiEzjOdXLxTQdXLmoVhIynjcfCHFFHzB7h8CG1r\/XosvPPgT4P\/DJ4ou SL5tCP4K8uNDQ3Lz6tW2NjQUFTtLayWIXoQxb8hUXq9wqxWujYysz1l6igH5ciCmFBmKoZAPDbnQ kCvkyHV2EFVKBFGIMYJRxeCVePY1n4zECb\/4zCE+Oz5NBhxtJuyvNdhczLN7psqfHzrOXx8fZTw9 2wg+PF2lmcSsLxXoDgL+6dQYo9nZbuV0lvHQ9DRb8nkGouj0+UBr\/\/cnlsMrXZ+qDg0nyYb3HTn6 yofq9ZschBbSAGac94PPTah0AFcDz+AVflapBa8nBXwd4\/fiY4rF5PN4N2aWaMWcY23AJ4Su5mzX pIQPWlcBX+HC8PFvH4bV01u2mKhgCmOmsBFjNgHXK1xnDVdakb5QCCILkRUCgTAwRFGIjUIkn0ei CAkjJMphikWwAZrEaL1GNjqKm54Gly16Dpkqf7T3CL9+8PgFX0fImcwHeDgh4Yx2dVnLa7q7eF1f L2vyBXLGtqx\/K5+tylSS8Oj0NB8bHua+avX08XpEsglV4xa\/78\/iKaefwSv5VXjluxFfObOyjcs4 iU\/a3IOvqnkMn8i5HPhf+MTPgsuIV\/hfBEaXu37\/5hX6ie3bhSAopUHQo+I2OJVbBV5gRHZYoSMw 5HNWbM4K+dBiA4MJAkwuhykUMIUCUunAlEtIruCtnmmFf6poHJMeOUx68gRary15PkfrTV7zwBPs jdN5349EuLlSoC+KSNVxtN5kV71JY4FNfpU1nMrcWUoOsDmXY3U+z7Z8jk35ApExTCQJu+t19scx z9ZqjJ6DmCwDS3sC34HpGrzVXMNziIPxpKgvAS8FXsbirq4CH8TzWsaW+4P\/ZhX67sFBUxgaCow1 hVD0GkRuzVReYYQ1kaGzGJhi3mICK1hrMVFIUCgghQKm0oHp7ERyecRaJAjAGMSe74FpmpINnyI9 eoRsdGTJ88pU+b19R\/jtA2esdKc13NBR5h0r+9jRUaY3CrAivq+AU040E746NsE\/nBjl4Zk6dfXa XRL\/AIy7s7V9btYiAII5FjpRXVRpLYtHfXMkYXF4brmStH5+KQTkFPAWfIC47OTMv9mgMN\/TUxRj tiLmpRn64lDYWghkXd5KLjRIaITQCiaXw\/b0YLq6MMWyV95chIlyYO2C\/vBZYi3Y9pCoqSTlgckz 8dD6fMS7Vw\/ylpX9dITzLLeFjjBgcynPqwZ6eN+h4\/zV8RFGUkdNOa3cs\/LqngrrCwWenKnxwNQM VYX0nM\/0W8uV5TJ9Ycg9k5McTs7Yd6XtNN7FVOblHO+TeB\/6gjKN\/6YU+ms3hlKQ\/iiLB4YUc40V uSm03BaKXBIaioVQTM4INhdiC0Ukn8eWSpjuHkylA8nlWCg5ojrP+jmHq1ZxU5PoLD4853MZcLDW IGcMvVGAIPzD0ZN8bnwagJVRyO9vXctLerrIGTP\/LWqdjhFYkY9494bVrMxF\/LeDxzmZZGd95QXl Av9h7QpW5XMEItw3Oc1\/3X+MPfUzCb4bKiX+49pVrMgVsBhunujgV\/bvp6pKXoTv6uhgd7PJs40L irnOWh3OvqKL0QF1GPhT2t5Ezpd\/Mwr95SuusLZGyQV2izHmJVbkTaHlqoKVYinw1tgGFslFmI4O bN8ApqMDUyx5q7yUqKJZBs5BmqJZhsZNspFhsuFTaO2M\/6yQCKTDzdjd8cju0tONhB35iK3lAl+c mCEDuq1J\/8fmNUe+q68nbn3nPBEIFc3hQZScQFQJbPRDa4YCVeQX9x45TbMrCTxbbfCqR57hbQPd \/P62Dby4p5MVx4ZPK7QBru4o8rKBTuqZUk2Ul\/Z28V9Zz\/tPnuTVXd28pr+fZ6pV3vXss6QsSxI8 +nEc7xcfwpdy1fFZyE58UmUQ73OvxiMjyzn++3iOtY3\/JhT6vu3bQ4EeE9orRMw7QivXlwIZKgTk Q2sIrGCCEFMqYQeHsF2dSKGEBBbMPH7xrJVV9QoMaBLjalW0XsdNTeFmZtC4CUmSappkoClIhpCg jKOM3zc+3fF0I7kE4NFGzKONMxjzZaXCPdd3d7xfF4efelV1pQgRjtUgKxD6ApHut6zqz\/3zyHj5 C5NVC1BVqLYeiy+OT3G0GbM2nyM\/5\/oiI9xYKWIEClYIRSgFymsGurmyXKIjCDFiuLRc5qZKhbun p9tZ\/gZwF\/Ap4H48j\/oU81tRg0++bAG24wsHXk97TSL34ll89TY+u6B8yyq0rlghe1etkskss6p6 ubHmJYHwXaVQrstb6c0HYkNrMFEO29ON6ezElMqYUhnJ5eYP8OYosiYJ2mjgZqbQRsMrcr2mpKm6 Zuw0iZ1krgbukCJHEQ6J6kGFYwLTmWrjfYeO\/yfgknN\/pyAcLav+cQn9ciOOzzLOsap8enSyuGum 1rG6EEUv7+nKNhdyqVGpqGgJKKnSVbK27+U9nS95YKr2iqkWUWlWTiYZ+6p1tpYK9IaWEE\/bKxvD +qJHagwQWZ\/dDIylI8hTTZVqCirCJcXiogrdbS07isWjV1cq\/+Nws\/khl2Wn3jYxkb5lcd\/W4aG2 UTxc9yE8VPfv8JyR7kW+ewC\/Azwnpt63rEI\/PThoNMt6gMvzoXlNzsqLQ8OOYiC5yIpPelQ6sJ1d 2N5epFzxirxYkKcOrdVwrZfWqt4SNxpoEmeaJDWB46lyXJWjVjhqVA8inFA46jI5Ejp3qvjlB2N8 xD6bCFjHHMSorjz2mena51Z+9dHxec5iO\/4GXws04cjn8d1FHwU4uGaNVHqLedNZ7OqyZl9naC+Z itPTzRWLIrqjXKhWAussFH9y9UBwST7HmHNsiEI2FX2+ZHYZZnP6kRGsUUQc945N8ZHhhUoU4api kR8bGkp3dHTU8sZcIqovMM59PenqOsmBAwnticOn2O\/BN7h5G74E7Erm97VfhIfq\/ie+2v2C5FtO oRXk2HUr7JTYvqa6GyORNxYCubUYyFAhkJyxBhOGmI5OgoEBbHcvUijMG+xpy6XQJIE0xTWbuMlx 3MQkbmYaTeKMLJtxqtOiOoZwSFWfbqb6VCPVx4tW9hcCbZiUrAFZmDbTwnB9dqvNgN\/DJyBuB34C 70c6vHJOzHN5sz0wXsmZB+AGfHHsTwKsPXwYok2N0Y7k1JcnZr58KsmeoNUttEfk5O0DPf\/8I6sH pi\/vKK1xsP7qzkrv1Z2VLqAsEC70QItAIYCD9QZ\/duw4Y+58cE+AmysV\/v2qVWwqFgPxPIs3qMha DYJKua\/nrqmh0rFKkk\/kwQeXY0VjfIPJx4Hfwbsi50oZ+A\/AI\/h2Dhck33I49N4XbC1EUhiqqb01 dfKj5VAuLQd0BNZYGwaYYgnb04MdGERKHoYTc\/4Dry1F1moVNzlONjlJNjEBLnNkWazO1VHGVfWR RuYeSTN9qBTySOI0Jk4aR07V4vF9++Lb2t\/+\/hnPHEvxluZ983zmXXju8bkE+Sl8Fu7cqmyDz6y9 C6BX5D8\/ev3Vf1DKm9AZLTQSNlorVxctN4rIDqesPFRvdAZGTEcQULSGYE6qfiJJ+IXdB\/jAqfM3 Dgu8tbeXH129mo65QbSqA+oIxyPhz0qB+4w6t7\/aoL5j164LoX2WW2vzRuavZ9yDJ0rtb\/1bWp\/z dF4faD7JAlyRbykLrSDPaHGrw7w8EvmeSiSX5yzlwGBsLsL29mH7+jGVCpIveGVewCK5eh03Mkw2 NuqDvWYMSayoVoEnHdyTOZ406NMu4+RENRtZ+cijy85MzZG5N6e6wGf6mZ8cb4EVnK\/QXpla8PGo arD6voemAZ7dtElMJZzKFXOHMxvcpxnrD9SbL\/13T+55Z2CNDuYi6QwDri4V2FEpMZALuX9imk+P TMx7Yrd2dvIjq1adrcwAIgbVIsraGH4wS8zqguUfQ8Nji1znYlIFfhn\/sL6J8\/lE64CfwzPxNuJ3 p\/Wt16rW+v17fLX7eXIhCj2rQRetxGYnyJuvubT4pASbisa+JTDyXZFhR85KZAzYSuW0MtuOTgjP YPRn4cfOef+4Oo0bG8dNTeBmZiDLUlRHgScUnkB5JFF9dKaRHa6Ojk2sKHWntYOHLvR6BB\/Fz7VW CzVE3If3D899v9Z671wJ8BZtds0t\/sFpbt67F65k5li0onqs2n3EJeFT\/+3Qwevvnam3FMTrWskI HYElMoZq5piYJ+t4a1eFX163mt4wJJ1\/FQSIVNnuoFTPTGCt+9hjV+949PKHHx2V5emCAoeBX8DD ey885\/0QeCde2Yut19ykjMO7bF9iHkRkuQotv\/DWt5rugQGS3l63c+fOi6LUr7niik4ndns+MK8K rbwtb2VjLhCfls4XCFasxA4OYQrF89wLVUWdgzRBa3Wy0WGykWHc5CSoZnhf9pAqjyH66Uaa3jM6 Xj+27bGn5wQ3By\/01Ct44vztnCHcGGAz80frn8Jnwt7KmcCoCvxvPMvtXOni7BYGswOBPinwILto wHGF4w7v6lx\/7gGqTqnGCyPOm3Ih\/2XTaraUiswkjloKiTvnxM+w+qzCpgx9C5gcRssPX3XVV59I kvHtTzyxnGTIXKX+Bzx9dK7MKvJ8YvDu2Wo8keosaduHfuDP3yXHqmFOpbM\/sLYsMFOBsULuZP26 H\/+LCyqheeDaa006PR0VyuUXhYF8XymQW8uRrAqNRCYMsB2d2FWrsb19Z\/gWc1wMVW0hF3WyyQmy E8d9sBfHjszFiI6i3K\/KP6Wpu1+MnmwkUrVPH0j6R0ef68MYAH+Ab7A4cM5afhZPs5yPLbYO+CF8 6686vrfzh5ifiHM1niR06Zy\/Zfgn8Pfx\/OFZuRFP6lnLMuS3Nqzk369fhQg0M6WWwFSsJLqo2U1B h1EeNPDXkmVfzIJg8roHH1yuHuTx7sd\/YvE6xXOlgS8n++x8N6UtSY+HQaGzc50LzfchvBzY33D6 92ncc9+H\/\/Id42\/+kb9e1sXs2r7dJM515irlm0uhvLUUyksjKwOhNYEtFrDdPdjBFZiODk\/tPMdX VlVIErLpKbKTJ8gmxtFaDc2yWFRHFb7mHJ8XeDhz8bPJ8PHxzr3jWVeSXCxXKcO7DvOV8+8AXgJ8 jPMJboeA326t\/ezck\/nOyeK31q3z\/H0jZyc2BK\/Qy+p\/d2tnibet7Ccwfm1zBmzoseupWGlmC+ag A5BB0JsdOLG2R7Ps4w9ce+3odQ8+uBxL3cQT+1+Oh+3alTweKblwhXYDmTGxKzlkowg3qsoGFYlj F0xnIyseYLmEbJFSYLi5GMobi4HckrcMBQZjKhVsdze2fwDb1b1g2lobDbLREdz4GNnYqMeSVWM8 9fE+nH7Kpekj+Ynq8Y7Hn42XdW7tiQJfwBeXnisDwDvwGbaxeb6XsTRfYQ0eCpyvCKOKz9rNSgG4 jGWkmktGeG1ft\/ZG4WlLYUQIreeVqIKIUk8XpJwaRLpV9Ub\/Vakavx4nl7mGh4EPsDyFZqHPt63Q R4+mrreXSZB9qhwF7UPkpVg50VG02Z\/\/8c\/cPznSk\/3SEn51o1KRvevXlSQXXhoE5k2lQF5SCFgV BNaYfN5jy339mHLFs9zmXr0qZCmu0SAbHSU7fgxXnYE0baI6hvdDP426uzR1j5A1kvzUqW9kOf3n 8MWdZXw6+CjeTejCQ08\/A7yH+XtkLCSzfe5+G++egFeSR\/Gd+TvxfTcOz\/lOJ\/4BaFtWRGHz5u7K aCDSCVqcdZQFXz9ZCn11sKrSyM4otarSdI6TcczRRoPJNO2PRG7pjaLSiihsfH37pV\/uUB299Mnd 7e6Eivejf4fltQvejLfUZxnSthX6iXB1eo2mR0MjnzbKSkFfAzqIyPeKla6VrmdsdSdH\/nDnztq7 F1HqQ5euLUQSbguN3F4I5bbIyKogMIEplggGB33wVyyd7y87h6YpOj1Feuok6YnjkCSKuroq+1Du TR0fQJLdhbA2mv\/iM+30mHiucgLPVZjAuxIGPwvwl\/E+4c\/jLfGf0n71xQZ8l\/03t\/5dwwdPf9e6 X1vxRJ65x5vCWzmLD06XKpHCwTNrC\/lP412jS0DLItjZ2vZAlHLYqlqMvVKnqhys1\/ngyZN8Ymxs Np1ngM4AbttRyG+4ulJ635v6uv\/40SuvnFkGTj2GjyXe2sZn6\/hWafMmX9quKbzrrrt4++t2OJFo AozD+2urEXoE+gxUxGT7hopTE+\/\/5NfmvRAFGVu96pJCYF6Tt+ZNuUDWWyG05bJX5oGh0+y48\/Dl JMaNj7eI9qMQNwFtoDwF+sHM6cdoxLtcY3q84yt72k3PPldxeKWe4Ez93JN4f3a2Icu1eCWdLUNa SAK8Mv4uPuCZpWj8H3zX\/mbr+MOc6fN8enVax\/8C8FTrdxftj5FT\/ad3r1\/5PkEmROgUvyvkQU7b ahFf3W6BVOGZmRr\/3+HDfHZq6rwtxwHH07TrQCO+VjWbuKW\/87E\/OXpyOfdhAHjtIu9n+BT6b+GD 8U\/BeYU8y88Ufub3\/qNozg4RmhcAPyDozSgdIPsU\/q9T\/SjJ9NMzq47pW97yodOLfvwF14bW0uMM 77RG3hIYLrXW5mxpVpkHMaXyWZZ5FmPWRt0r8\/FjZBMTuCQmydTVUo6Glr\/Jk32g3hzd310baeQe q7FMXPRiSx6PTHzPnL85PO3yM\/iuRntbN2M2C3Y5Hi25Be+uzN6XFPjP+HR5u26LwUNeN+LT6a9k nq3cwB17r7jszu7e3Aor9kYRuVXhlSJs4jTCIShK5uBkI+VHH3+Gr85Ul1zcvsAe\/cH+3p\/\/ybVD H9\/y9V3tsudmg+iuc\/7eAO7FK\/FX8LvRgvHHshMrr\/yl31Hg+Kf+9NfvFiiAlBBuQHW9IK+xImMa 5KuV8VXHWjeEL2zdGgQhvVEgL86U1wpyVWAMJl8g6OvD9g9gypXzU9iqaLPp\/eXhU6Rjo7g0I3HK TKJuItYkU2qRuvpAXtJc7\/OuzOAt8rmWxuCzXO\/EB4vj+FJ9i0\/nzk2enHt\/fgjvTuyjPZkdZ\/F5 PDHoc8xTlOrgmQ2PPZkAhyZfcvWYFTmIsSh8l8AagZw31oIY2DU9xVdm2ksMTqbZykdnat+3v5Y+ ufuSS3Zf8vTTaRv3ZRK\/+3Sd8\/en8an\/Pe389gVXGGQkEyifVSefQnkMxIJeLujtQvASrRf69r\/n 1w3Apu6Oihh7jRHzrtDIlYEVJIo8J2M2ADwXlnPOK\/Pper5RNMuInTKdKJMxQaoypMrbEpFXnkoq QwdG1hq99XnlpxSBd3N+8\/AmZ4q3Bd\/bYgPeLalwph1WzPmWeAseSbnQ61roeydOr3WW1jJll6j8 tSh\/h6dyNn3WSknV8bcnl66nnJUEpK7cMpnqbXGx2LN306Z29KzG\/P04ltUn74IV+nU\/9TtZ5uyY g39y8LeIPANiFF4gRr47CIIXP11IOr\/20hdGlYK5Kmf1XaBXiUjZ5AsE\/QMEq9dgOjrPczPUObRe Jz1+jPT4Udz0FGQpKMQZNDNmU7QFha1OzQ83s\/BHZvIdq5+dXhP9h+ePdLWGs4fDO3w5\/4vxiZb\/ zRnSzVx5GE+bfFnrc3MRDMVTTi+kw\/65aeO5cpoM3fWVx1znlx5qNGuNJ526D2bKe4EnQGqA1jPH iXh59S0zadoZwB0x3DZRqZT3r1u31D1JmB\/6LbEMT+I51YA9cd9ed3yketzAVxT+CTgJUlK4QYU3 RHGy2RBsr6fuFuB6gU6CQExHB3Zw0LsZYXh+0qTRIBsZIRs+NcvF8G8IrRZdvtUnLVYkHoN9dazh 99Rd7+q3XNP\/fDXQeQaPcHwdr4jP4hGKB\/HVGD+J96\/PlZ34SVRfwafGf92vJXHre\/+JC2u8siz3 q+fru+rNidr+1GWfz9CPKfoEEF+IdbAiJjTmMkReosZcOd7dfbGLbueV58S2+6X3v583vOEN2c++ ZPPBRq58p0CHCG9Q2GTQF1unY5XOYsOONm4GBhAJTKXiSUZdXfPizNqok42NkJ481rLMZ\/x\/AfJB KwpXZSaFxAmqWlFkO8oPpkaygq78fLXXPV0cHc2+yT614hMeb8P3bf5XfOXG7JaZ4RM\/c2WKs8kk DTwu28BTJj+A97kvRGrMgwS0pMI55B4BfXY6iQdK5QOZy\/5JAttEMAVrtm+KwsIDy\/jh\/iiiaG0n cAuq0zEc+frmzUdv3LNnoeA2ZH46aRXaL398rlW6+vGPf1xv+\/nfb0axPhOo\/j3o3cC4ZG6g2Gi8 tRJwe97KDkQCwhDb04fp6QEbnM\/LcI5sbIzs1Cnc1NnKDK1uV0DOCpVIKAfeYvt2oFJUuESVtyvm jXvWrl312OWbou9d+013P2bnl\/wX5m9te25wc4zzaZgxvnHin3I+RNeuzLIAFzJa83ZA2rJnj3Y8 uTcuZLIvS7OPZsqHrcjTb1vR13atX16Ey0slitZaYAsiLw2MuTnXWenVwcGFdG52iu65Yli4wfq8 H74YoqXANjRzexT5Z3F8NYrjtP\/kcG+pVltvhJIEIUFfH6a7G8nPU2HinLfOI6fIJsbPU+ZZEfGN FCMzR6k9\/i\/in\/Btinx3Cm+UqND\/X7LS8z734xw5iY\/mZ3Hr\/VwYr3gxMfiEz99wNrFprmxc6Msy Nqb5yUZTx6cOaZZ9QlX\/\/obuyuGXdbWXyFufy\/GS7m6sMSASyZnAdvPegY6FXI8O5ueibMKTsN5C G5nEi3azX\/AzO93ewkhV4uxrPWMTXxo8PnykMjIuYbMZGWsw5TJ2aCW20oE5p8GLJglucoJ4317c 2BgkS+Px1gg5K3REhkoIUat7oYqUFS5zIt8XE72zPrR5y\/HrBwP91qnOOYxPIuTwCZDX4DHq5yoG j5q8E4\/bfgyv1AspwYtZZE3kiSe05\/E98bTO7HHO\/XMlCP7iPVvWPnV7bwfBAt8yeGX+rxs2sCqf P3NwkQpwTabyxumoePUCP3kl50N24I3ULfgd62F8NdAWFgh2L2rw9C\/\/8iD\/SQm6mvUtlbHJG6KZ ap\/JnEg+j+3rJxgYxOTPd5NcrerhuRPHIW6f9jCbyWqRxUidN3kiErYWp8chMzWKp5L14czvb57S 3zxwMa\/4Ocm5jVqei1SA78MHkz\/FmTkni0kdn+RZNNj8g0Oj6c4NQ7VUONkfRSuuqpT6A+g40Yhl ck6H1B5jeH1PDz++ciVbisVzA33Buz4FxYz+8ODgUz8zMJD+2cmTc6\/\/l\/DB\/WLSg+fI3IS35vdz jn99UUuw9lUqkq\/W1oVHG5eEIv1GMFiLqXQQDA4i4dkPlaqiaYqbmCA7dQqSBFWtiUflLFAQkSV3 kXzg3RDFMZNA4s1xEbhUkXdkaplIuj4ZT2QH9NbjTu563pMvF1vK+AqPly3jO1vwHfQX6wcNQC7K Go3E7TfYD24uFbJf27Tmbe9YPdh9qN4002lKKIZuG9FhIqyYhcriInxG9EWhMQ+kvhh21tXqxitq OxLiC4vX4+c5niUXzUI\/cO1KowND+b5CeHuAfK8RVmKttd09BENDmO6eszgap5V5dITs5AkfBLos xT91D+Hn8\/WA5Fqx4Lwy26\/ZtCA98J3yM++kh0AHyAqHKaRB9Mxks9AcPz7pHrtYF\/6tIRk+1X39 Mr5Txq\/xl1kYCQHgN\/ee5D+uHnDGMS7GNgMjg71hMLCxlM9vK5dkcylPfxShCJnK\/E+Hb05pxVen p6BP\/viKxvRfnGiAzwTevsxrfgiP658lF82HLtKdCyS8LFOuFWGDiIQmynluc2f3+YQjVY83T4yT TU2iWZaoX+DPOtz7Ff2QIA8BE9qGPZ0NFMuhUApbOLXX9hJwmSqvTone1NDOlT9xXeHbptF7SxrA bpbXdcjg+Sar2\/lw11ce0+m9p6ZSTXc51U8D+1FPuBM8j7pgxccyC0iLuzckwjWRlSvzdqgDn4y6 4wKu+asLXdRzlv3rMOVi0NMZBq8T5HoRKRAEYrp7sN09SPH88jCNY7JTJ3yL2mYT0DHQT6XOfWri 1InPmTj7Z3wS4sugI2d1SVxowQQKgdARCpXQV2C0HqGyIleAvDOT4M3lbOu26YHSt1Kg+FxF8YFg O4N\/5sp6fNKmrSzkiuPHdWS0eVzVfc4pn1TYg2oKihUohr73xxKSU9iWKa871OCSPPwYy9tZwD+4 n5vvjYui0JUVW\/OVINxYCuXmwMgGRJBcDtvXi5RKfh7IOa6GVqukJ0+i1SqqWgOeyZSPxc1k79rH j8ZRIsMuc\/+q6McQHuIMRXNBmf2NyAqVUCidjVMXFLYo8lYn8qq9KzesefTKjdFNvd82Sv0E7ROY 5sob8WjIkrogoJseezKrauNY4vjXTPm680kfBz4\/kLdCtNCUsNkdWul3Ki94cLp2e+ZRmeUOLH2M +SkEz02hd4J8du1ayRVKA4HIbSJsELQoUYTt7MZUOpHwzLn6olbFVaukwyfRRt1PooRnUT6TafpI VJ2YFNDo6w9lGk6dyiT5FxwfVOUBVWpLmenTOLUVOqKWUp\/BqQvANsW8NZPwu60trvib7pX2eSY0 XSyZRS3miuL94yreIMyHaHTirfR1tLFjCWi1NlKbria7xxrp5+JMdwHN2VF3+QAqEQtOCWudVDSV pqs\/MTzyI8n8CZ5m63xn8Emmuckph3c3js137OeEcrxsA3RUNHSY9cbjqYOICPk8pqfH95o7t+1A 7NtxZaMjaJoqwgQqX3WqHw0wJzt3HTqdUen83DMpMDJx69WftmJnEMnUyM3idMmKDGt8irwzEgRH NYWmEwGKqnqpiry1SdThOnv+9nB15pAy9c1Ok38j5EP4VgcpHts+IvBMFNjHBHkqTtPXO0+COtci Xo3PSn4f87dTOEu23n\/K7b6keyIpFL7cHbENXyq2HghCEQoB1FIly85fUAUm01T+z9Gj3Q\/U5m1h F+P533+BR2Iubb3W4\/F7g69WmRdufE4KffWGbSbRaAiR7SBbBYpYi8nnMeXy+R1AVXGTk54KWquj RlyWyx1TkV3NUyf3rvja7nnLprruevho9SXX3Z1FpsNFYeiU62yz2bmUOTEi5GyrlAglSyBVfKCo ehkgmQYnxnTdZ4MXDB\/iaye+WZUu3yg5iedPx3iFHn\/ql7+\/lGY6iJiZ7\/2rT9z52Oj4a4FXzfPd a\/HK\/kv4qpdFZdvTT6fAialbr\/06KtsUGRChQwRCpxSskDg9r3FN0zn+\/vhxPjY+vhC08jTw5\/gE 1CE8r1s4MyOxwiITby9YoXeCjNZzUU8hvBa4VcQPcpQw9KMf8gWYY501y9BGnfTEcd9AHEhLRZ1c MVirdlamTvR0ux8trZL\/\/fnPz2sljZqT1UT\/r\/aUx1w+fHdubPKFYb1hpQ0IpDAHp66mEPsNrAxc 7jDvUkfuVNL\/qX3bGns3DE38W8apU+DBnTt3yo3JsWhFVluXojvUmMsE89DfvP0Vj1z7h\/\/4O3iL Ol9K\/DX4lmT\/Ed+ZaMkHvJHGD+eCXKcRrkRlK0IUGKEUKk3fOx7wnuWxRoN\/OHGCj4yNLcQ2GgF+ hfOnyiqe07Jkq7YLVui3r1tnSoF0glyFcC2qAeKJ+97VmBMIOoer10gPH8JNjPuWXfm8Tg\/2y+iK \/o1THZVLGoP9PW+6ktH\/\/fnPz3uthbvvc8Ovva02vqL3gbRQuL9UKmzvOHaqK6zWRNzC+ncmUFQ6 I4PgmEkhdgI+rbpF1Xx\/qlKZLq76y90TnWMv4WD8pW9x90NB7v3ZF\/BUcGmk1pQy1UgVsSKuXDum XWE6KCKvUeXlCP0qRGEhPIzHnX8DPzrt3LYHBm+p\/wZf2\/hBPHKy4FpMN\/PjhUifEvgSaBewyoif cRMZaKA0nOOByUn+z8mTPFKtzqvMFqYi+L26t8gXvPYXHBT2buwJQ2s2CGwRpZ\/ZgCIIkSgEpFXw oGi9TjY87F2NZhMVsiy0M5N9nclMudCVhubqMDQ3Ss4UP7jzjgU9if5PfFGPbVgzNtbb+fT4QN\/R qZWDSVIsuHau3geKnEVoap1kCbgU5LUp0Vua0rHyt6\/vDtRPaP2WDBb\/6KdfLf\/wyz8hhzpvzBGE 68DcbjA\/ZsT8e0HeYUz2tiDLfto43gpcoSIuCaKjtVxlCh9U3Ql8eJGfWIVvo\/D3+JrEAgsk4Tbd f39Kmh5N1f0LsBf1Vt0IWFGOxw3+4sgRfvvwYR5YQJkB1gf20XcN9n6ACxy4OSsXbKEDcWUn4YuA y0BOM1G02cRVq0hHExHxBa4jw6THj\/k5f86piIxkYbhnulLpjaNwHcK1AiMmdfs7CwPP4KPceSUx YZoUor1pED6bhMGGzBrTt+\/wtG00KyzxgBoR8haIfBOVmeR0oFhW1R0g+UyCQjlZ9\/HpodwzlRMn Lnh4zTdSQtMRViVbI\/XaixBeoHANIr0GwiJa7zXaDJwbBM0UecQZ85E4F97dCGW2y3kJuHmJn6ng U+kvwZOCPoyvUTyOZwvO0EIfyskjkyPpjvvj0D7YdLpuJE7WPzFT4+6xKf7hxAjTbVicCWXDdOq2 4d2Nb14HfwXhuktsVYNeMVyDso45T+\/s5FWiCFMo4qamyEaG0erpypNUVfe7wH4hDYNVKlISWAly jRpzfVjsP9FasHnFqcskk+HE2mMz5WLGUL8pTkwdLh8f7kV1UNrYdXJW8AiiognECojkUd2iyB3O SO3A0FAjWZE\/ysMH4ueywBdb\/uRn3lqwQWmNKLcpvAnlGqAD8fdARFSM0TpBJuqeBrmnVih\/NCE3 ecXL70rxu87bWYQ+eo4E+MTH9fhGOgfwkNkwvoyrIfcS5WRX9+XlwnVdge2cTFKeqTWYamvv9DKV ZSu+NDX9up\/q6fj6n45NTV3o+ixboQ9euomufKEjNHarqm4AOkDPQOnO4aYmcfUaiPHjhNP09HAe \/JO9O2vGdyaB6QDWqjIAuhYj3xNr9sjn\/\/zXxkwUuNvecX7DmmLScImNhl1gTqSBzaY6ygyvWfFM OFNLclMzr8DjqgsqtYjvc5W3nv+hKPhAcZYQf6mDtyci+YDKh5\/csvrwpauOpM93oPjBO+6QkVXl wER2rcJrFX5QkMsUAj81xa9\/U4RhYzGWLM2y0SRzJzpco7a+NhWNfnBb8QXrjlx6\/6FTP5K1wyc4 X1a1XnCGz+0A01Q1D07XLthFS8COpNn3H8uyO\/H9RS5Ilu1D9w+UCSLbr+h1IAOImPnI+jSb0Kh7 OuisMnveykHgyUKteagp4TOo+RTI4wgV0CsMeqUmDLpGMu+5ZdPlzGT1USd6CiRxRnS0v1dH1q95 VI18EHRJbrGIYIxPvnRGhnJwhk+NiC8SEHlzIsEPx5WuoQPTnfb59Kd37kRmVjSsWNlokDcbke9D 2IIfdCVzOTKpU2pJxkySBY3UbUTZ0U+4wxjeHGfuFy8b7PmDyJorLsJpzQ61D1v\/fc7rM6na+2St +dM8h6Gfy7bQRgOcmh6FK5ifkL2wqKhTfTxTfdjUGzM2s+LEfdkIO0CuAO0FuS2DoybTEeZpKHKb bzPW\/PSf\/No4PgKvxGHQNbxyoDbw9N6PR41mEbgFYf2S1yJCNAennmrh1CpSRvVSQFKiw+Os\/ULp puOHuGfkecGpB+s\/LHGRHqPmRuD1iFwqi4xKc6qIqunUrL8LvbncTPLG6erRan3tg4dPbqqn2bda Fc9p2Z+kL8L793ddyPeXdWEKcmR8uhij6xQuE7RjGd\/OFB3PlHsPTWb3Pz3WbJ54eF9j9FjymCL3 qsqziBgVXirCi2M1Qw\/\/t19ehBVnxhXZj9BAZKBayJUObtt8L07fh7o7UT2OLl1caUQohobOyNDR qnxpEfXKglwB\/DsluP1ovHLj\/kvXfdPT5L\/w+tcbG+bLVoOXtqzzjdLG3D8D0iWuOEB6uc3SN4Nu +pfH96549PhYO9bvYXzG8e\/xNZAX1L21wwg7ygV+bKiXv7tkCz\/Q10duiVHUCfRF8DNXivS1+TPn Xnf78jmQsFhenTquUO+rtk3DbPEwHhPYX5+ZqVYff1x\/6G\/\/VsdmZmKFRwXuEpgG7VK4IhC56kgx LOzcuXOhWcZ10Al8MqELMV1jKwZSTPYYoh9V5ROgJzwbbGkJLXTMdT8ARCJENqrK9zpn3zBT6Bza P7Y+XPFNdD8uv3ZDPnBsBXkz549vWFR8owtpJMi+DD55cLL62cDIUrvMLnyznL\/EE4fejm86OTtl YMmmLysDe\/zN\/d17fmfTmsm\/u3wzv3XJem7p7eQdK1fw2u7uRb9rIb0kl5vZUCpdEAK3rC+98IYc cc6uNIZLBQpIu\/dVUajGqT4QZ9mRFzz77Bkle+979RO\/\/+tPmrx8TpUX4gdZ7hDhxUZk19ZS2vjg B+\/I5vbJAzBIXdExVFLQPkEH0kJoZuqTU71R5ZGGsTkwTZDXo6xGlob0Iqt0RN798C0SEPUZxcsc fE8TK852fOQj1604\/MIHjifAN6z12F+\/+4cls8YkzcYGVH8QuE58CVJbkgGjBEyj0wG6q1PdR164 dcPRr+w\/vnuq1vjJ1GnvPF97HK\/M97T+HeMr1+\/DQ30vxU\/lWrHYb99Uyf\/2b21aUxkqRN8XiFyR KWCVwXzEj69axVSactfU1HnbZ8kY7ujt3ffGvr5PrQjD6p27di173ZZloZvVzRIGrAoMl4rM20Nh flEygbFM9WvVZnr03LfjKTvlMt2NcpcIEwIrFL3OGLmuXJCuxtFV5x3SZW4C5SBoXZA80G3irO+B 170qCL\/06KSLG\/er0w8rfELRQ7RhWTz3w1eTny689W04iyBXKPKWVIK3FNLB9dMrV35DiwQSQZyR rTh9BcqrBIZooxztjAgNDJNi8qPYjr0uGL7uluum\/uxXf\/IfXnH1tv8+UC6cy53ej69H\/CLn98Fw eIhuH4tAqqfXMeaukrH3GOQIkBqB0AqBQH8U8h\/WrOEVXV1nWdMr8nl+fe1afdfq1cnqQmGNGHMh naLaV+gTr7jS2N6ojLIKZTXLikSlDhzJB\/IsU83z+pf9wRe+QJa4YUXuUpXj+ETTOoEXGdXBfO\/E eeep6DSix4BmqxSiaIwMlIu+TF5OjU26LHsU1Y8Cd6N6pF1bmrNCKThDPfWXIEXgEoU3O2Neuneg b91916zxKdGLLP\/9F94euCDoFyO3ILwCX1VyQTc4hHK36LZLbPry3rGR717XnHnDztfeHP3nV7\/g 3htW9x8KRBRPAvqPLFAFArBz507ZumrVTBQESzW9mbm70TjUEcl+IxzEPwg6WyJnRBjK5XjXypVc X\/LtNm4ql\/nV9eu5tbtbIpEhUd0kzhWnw3DZwWvbLkclyYUu0M14QL6EIu3eSkVPOXgYZGLLM8+c h1zcfffd\/OLrXzQmTu4Vy+OgaxCGRHiJVXOXPbXmIOcMWkyMq+WMHRFHDCqoFhUZyFIXAdWOZ0+4 eKw26TatvScp5WOFERHeAdLBIr7\/aZw6EKw5i9Ak+G13u8KPZSboyUvnP+7bbg5t6D940XDqP\/jl N5liYjsl4GaUO\/CjF\/Ltu3dnSwkN1ppsa8653zFxloWQoqQv3riqdt3qoa+\/76uPfOpjD+\/+l5FE P8k8u9jf\/9mPSyVZEUZWyyt++Pae3\/hf\/zc9OTaxsJ7kwkM\/\/dJroyTN6qQ81VLqskAYGN9IPRVh VT7Pr65fz+5qles6OylZO6tOHWrMynxgB09s23CKx55ZViq87SfAiQaqbABd0cJr2\/4Rpzo2E7vd Uw23UM2bvv4X36NZTWqq+mWFx1VVRF2\/iNxQyp9f92ZruQbKhEKsiqpIKbNmZZYLT1uyaHTKxZVi HeQRUf0Y8EHQJcuUZosEQoGOFvfjNE7tucRbgO9OXPC99XzHwPhEl7lYOHVR80UJ7CUgr0XMlSCR XKAyw+mBLs7BjKL7gHsEPgHyz1Gp+Okfe+1tf\/jhF94ynzLLH\/zBK02x0VcK1G1F+YG1K\/p\/85ar L73KmoXV5sUbVobfdcm660d7KsF0nO1PHccBJwJ56\/sSzq7xUD7Prb29lGfrTf3LCnQKupYwbN+t bUnbFlocoQgbFVnR7nc43TlbTiWpPhLHbmaxTwcNYi3qfRguR+RK0LKou1nEfPnOP\/iVp0M7w2t+ 5r0K8Npf3pl95k9\/rQocBdkGFNTSh57tCnV8\/j4HTE695NrHRPVDrWt+qYhsWPKaxbsf\/ojKdOJb xapSBi4VJK2rnTho1\/xrfFO0X+851U4f5Hnlg3fcIdllm4JaY2yjw92u8ELQXp\/KX0Kh52b9zlH+ BsIpNXEEB8vKJztFH1DRaYU4ETM8Y+3Jl95991nn\/LH3v1M6TvUEWSad5O1NTuTlwHUY2X755rUd n\/zqQ9Qa89NtBjuKSRDaYr2SSyJ1uwV7CEgFcqEBK\/ONbzzrWkSF7tSxWTS6l\/lnpi+sQ+1\/VEJg gywR4Z6zzgrUDRytFNJner\/26KJVya\/YuTP9zHt37hPhfiW7DrhGYIequyKywSNGK8PMCVjE2VjR o4hOIxQE6VOj8\/r2HV96cGL6tqvvQU2MJz+9AWQIWXgNZnvpFULBu5qOmVTmuh87QHJOJXciHvp4 dFVxn3YduDA+dTdSjyfWILwKldcLbBKRtgLPltlo4CufzqpGiRFOOaOo1FXNfe\/673\/5iSXv9FR\/ LstF64EbHfIm4GaELgHT191JECx8Wk2nj1l0X7G3WO0Nw2mB\/QKTCgUrYgJRFlNp9f\/TlcLWxFfs L0vacjl2gqSqocKgLis7KBnKMYEj6VTaVtNqVVIcT6J8zfcn1hLC1dbINcZG55YOZYJOC8SoFlD6 jC4crKoJmybJdgn6T4r+K+jJ1rTZJSWag1OfGYRGXmGzIt+XqXnlMVse2j+8LmCZ7scf\/8oPykR3 pce57IWK3g6yumVA2pFY4BSqB9AFu5RGCKuNSNd73vMys9D5\/fmfv0s+8t5fK4UabXZiXuvE\/IgK t4J0eWIOdHeUuXbbRtYN9hJarz6BwFApl67r7Th+Mk4\/oZo9Ta0WG3Eq6CmUgwKpCFjDgq3EAFqJ \/DKwQpxbdiDcloW+\/QXXRo1U+0qRdLOMWXiCpgiHVPWgMzNtKXSt83ASjPU8m4uK94J7uXoa4wtU 9Lhz6f2f\/KOfrs+6HSouVuW4QasgQ8BKpwvDPR2fv89psTg9fc3mByWMQJjCM9ZWAnYxNTyDU\/uG 8j5QFFFPPb0UNd\/fJOzSXMc\/fP2aNYdveOhwWzj1n\/zUHcZqLi\/oyxRuR7kCoSRLPBSt6TMKHBM\/ QGcc4UXMMwhUIFCkHyu9q+TSwt\/+j3X1H\/yFvzrrvD54xx1Sbg6WjLE7RHgjfqzGOoHi3DPp6azw 7u9\/AxrHhBPj2Nr0YZdkdx+dqf\/t3pnannx\/13CjsxNt5IpHrqi4lU8eOGFU9wI7xBfkExhIs\/kX Rvy2XgZWiTHF3Vu3mkueeUbbdeXaUuhymhRiE60tQMUuCwslA44qcnjI9bl2Zmp\/zw\/9pQK1T\/\/x f96LyD0CAwpDgm5TzdYGkp+m1VBFkRSRKZWsCRqhdKi6RbdpqdXc2MzUpC2VHjZRlCJBCfQVgizZ D24u9+MMnxpBpKCqlysSxIRZ5Ho\/NL0yO1A5dmxJ6x9EhYJRfBCI3IRHBNqw8Ipv9KLPGhvcmaWu AHrJ\/BfdCmaVoWQyHXRp8TDnBIH5S7ustdyk6OsU+S6Bjcj57QWMCPlcBGFAEFqCtPNk4NzjBece qOTt1IDm+qU6vgMxK6YGe56pnJycqYyMHZCWq2jFW+gF3Q7v5gWq2oHqUDWKyg+uWDHN8fb6Wbal nHljC6FhLW1wCM5Z8kxVT4hyjGPHljUA02l2AuVehZOgAbBKxFwrFM5UfKtLWwM3Gz540ryodnzh f7570a2q+5ED6NjEhEuzXarun1D9IujSTxtnmq7Pg1OXgG0Kb1YrL3t2sH\/jV65duWia\/Oe+66Yo M6wGXgtyo8DK9pQZUDLQvaLcGyCPiU94xIt8XhRdoZKtlLB+liH73J\/9Wjm3YuhqFbkdX6EyrzKf vRBCmsvTLJaiRr7Q11GbueLSk8Ov7hoffmsuTn7AZtwRNNMXzPRUVIUjswptWm7HksCNEBojK2wY dJrenraNaFsWuidv8pllpUj77oY\/J2IHJxsuPlU+fnxZgVIyLmPS5R411uxD2ITqShF5mUPv+cQf \/cpocSznqs1qHIbBURE77Z9sjQQdzFzYwSIZLQHlqaOqHJ1ovOyKr2RZVEVkHPSHWjj1ooHiLE5t xM\/6mWnh1CpSVtXtTuVdIqa3Uwf\/8QtXhIe39R5M5gsUV1+yfhDMi\/Dd\/te3i+wrKMKMwJdQPlEd nZiwHeUZkUWLWg3KSlFd7Zw8OvvHT\/6vXyvHmVwhIu8U5DUisrKNUzj92Nk0XZdv1F8eZNkaA9tN Eq\/wp8exMM4GkpCGqjuumBifYJGgjasUCKxobxhQ0qB9W9iWQqshEpFukeVkBzVTYVKQCUvQWC6c tdfZ7DJJxwR3P8hlCFsVLld0jVp7sNbLdD2TVIwZC7yFBjAqUszyYVvnKaBTFGqCPoqqCFJG9HaQ gUW\/10I\/IqNUWtyP6VbXU1o4tSLfk6CZyZf\/bnyk+wSMn3Y\/du7cKas4bKmZF6hv5D00W3HSpjRR 9qrykLpsj+kqNzKnhwJksVFVIt6\/HsJgd+7cKVt7CYzLrgL5AZCXMX\/D8fnu7elXvlYtF2emN4nq EGBBhxF2qfI1Uf2CyXSPUSkijOG5KJHQxjakBKkykCqV2EVtB9ntmXLf3akPXUbLJiVFGUV12hi3 7Nq8n9u5Ux3plEO\/pKp7USxIH5irA2fWWVxYcTkSp9MITb+8EqnYAZWg4+H\/+YNtFbl2fP4+V7nr \/il1ugvnPoDTD6O6r91eep77Mbfpuic0qXc\/bm+66HsP5FZvmbilP1SQ9\/zKZllZP1iUpr0W4ZUi XAUU23U1FKWF7HzZqe6ayHT6x3\/3fc4YUweJdYETbz2Dq0DWWJHo+n5X7rb6IsS8TUReKbBa2kZW ZhUaVJ1NrHW1cuVAGub+UpD3KLxXndzpmtWnL\/vTj8wI1EGHgaYVn4Ft4xdyiqxxYrqsMRfX5VCV UKALkeX0IEtE9YQqU55st3xJCloPE\/uUdboHdFzQHMiNahgVlW4iLRQkLIAOtEYARoKsNupWzrju w0\/9ynfX+W8fbeu3O7704MT0rdffJ2gCGqLySmBlWzh1gK9CQ8\/GqZUdqoQQ6OH6yo+yI3+oI95m 1Zr1OH01Pq3d204P7DnSAI6gem+apPtro0cyAFEHItMgE\/jxDudafGlRfgeDMFgp6gZE7O3AK0DW sSyocfajShzlSW1YiwvF3VE+\/uiq\/cO7CnHYWP2+951Zd9W6iBxRuNQIldM+9CJ3RkSsqvbgXOl0 c482pC2FFpFAhbKgQdvXLZKAHkPdZFvdYM6R3\/\/9nSYyLsJJGbSuyDi+D9oVgijCtd5ia8lnCgWE HLBJhBvquQ49vOry4\/\/yB5eNZnEyefsv\/96SJHW1UjNJ+ohaW\/SKrK8EBv1Q0cUlF\/g+JIpDz7gf BYVLFHl74szU4Vz\/p3vjXp0umpsUbgPZsExXA1HGEHY53LNZOjrFJt+Yp+ZiLdnolCBHULbOe1xB jDH9xXLxhSJyPcrNgqxtn5Vz9sFASPJFUBVEbRqFMt4VlGtZo++JX\/q+XKYmb6zW6nuO5grj1SNA nXY5AqoChAo2tbbt82tLoZ1QMLAKkeUEhQ6kASSq0rZC3\/kX7zZhrRxJkHZTN5tF5BZFbhXoA8nh mWd9qGSIBOoD58ivARWBF6vY67A6LMreMJDPhZG9+zN\/9KsHqTVmJhuHsrfs\/NC859Px+fucwsz0 i3Z83QZhQ40MA9+P4v3DNnDqrpw53UsvdiKoloFtGfKjmQQbSvX67lo+\/H41chXL6brpzzhV7zt\/ SlI59DN\/\/C+nXTmXpo4wOo7qIYQNrbU69xxtPp+7oljI94qYdSCdXFD93pyFMCBOy0GSbg+S+DZr uM5kuikzdq2gaxTz8PRg30P5iVosrSSW4NGhlEWNdCAwaIypLJ37n\/Oldj5kwTgotNMiYM76pygn jciUnbVXS39H7mxEJaxsE8ytInIzsEmRVYqUWr9vgPLsJc69UvEk\/rJ4H7YHzyFeBdwgxnxZgvAT 5WjFovCWgOrM5FRcLu2Kw0iFoF\/Rl4GsWcrPNSKE5gxOPZ20lBpyonpZJlQKkzOj+XJhazMKy755 U9tFEg44KcKDmulj02P1s0r94yhSzZhS0XERyeY7ahiGkstFvUZMRZAFm8csT5QgifOVqYkNYZK8 1WRpCnQJWgJIg\/CRRkGmvIOm9dnZ0LPdShdRDAtUVDW\/0ES0+eSizlg5R1JERpsJtbS5tBH42P99 p\/nEWF8pR\/7lInIr8CKUbQj52bTrckSQAOhptafapMg68kFow\/Jnv\/iHP3fwtnf\/\/oLNbHjkgEZX rJ1s9HQ\/aq37RzCpoC9D2bgUgDqLU3t0T2chPRApS+Y2FcdmNnSUCsFUZ9k08tFyggun6FMudZ83 jqN3P\/HsWRBd44mDGm9ZOxJGwVFBkrnPiQgEQUChkCeXy0XGmOX2Y15EFHGZNUlcNmk6IOgxlMeB EYSTaWDvj8QdADagy6pNFD1TUd62fMMUuvX0qXNomi3ucvyP3\/pVE4zZTgNXisg7EF4I0kNrR7hg 8qQgLf+3C+RGhbJYyLLCZz\/9P37uQG6mI2lVkZ977spjh1Q5NFW\/7Yp7nUR1xSQivAk\/3XVpnNoK PoQ+o9TiNAqn63QdG8U4Zby3kzgMcLMmawFRD1xMOKePHD8yfA\/TWfVj999\/9nl\/4otu7O2vP9E\/ 0H\/QBDRUzxwyCEKKpTyFQp4gaPuWKxCr6ph4kuECAbKQGUsjymfOJvuDLPt80Gx+VjI5MDk2OnyT XdWsPb2rK4uCNSwHuhWZTYMvS74lytm3dZiCFa40Rn4C4QZ869SLe25CqCJbVMwPOysvM2HUW+1f \/DcENDWFGU15CNUPo9yJ6uSSP9WaWBAaOc2nnk33SpYRTVbpPD5G1\/gUYZYuQdpQRGmKsMsYHiOZ nqJWO28P3gkaFYOqtWYUZIZWZi4Ig7OUefbc2pAE9CjoR1F9Pyx03UIW5qh19bjJnv6JsZ6B3U1j H0my9OTxZ4\/E8pd\/qS2q4jdFlnxcFaQ293G\/iPLn73qXrOmzxoh7gaj5fpBbEOnlIs9PbImglEAu UTFvwkaj0ow\/8wuvedXMs8dOKPv3652Tk+ctfCtQrE7feu3DQCZ+fvbt+Ja0rarD+dfGtNg4vvD2 dEYRkzqiqSqdRpAsY7y3k2YuQuc\/TqowLMhHRe1Xdv7TXQtiWF2dvRnCsKBPi8jKMAo7CoU8hUKB ILDtKjKopooeAd6Pyz6uYleJr\/6ep7BWwAhOJABdQUB539C6+lt+9rcynocWaotaqCe2b5e9l18e Zip5vgG1cyvXloKgozQoYl6oIrepb2j9jXODTk\/FkisRuSXO0h1SMKvLxXx\/YcOGBbm3Atpx14MT qDyiykcUPqm+KXhjid\/zZJ7AT+fylS8eIzOpIzdRpePUBB0TM0Rxguh8aRGZAR5XkYfyM8HhRS8w y5RMx0XYEwa2ms\/nyOdzy1NmL2MCd6nTz1bT+HERhhXGVHUxH9iCDClm0Ngs\/5u\/+ZbnpdPUospT qNXQXC5KlXz4DVDoQmepgOo1GXIDyJrlYrIXKEahG+WFjTiRWrP2bKKN6SRMxr77+m1j6kRFXF1V mohtlHL5yVij6b0jo021MmOmag82ivnpyJoTAm9B2IJqDl8dvuCPzh0OSqtBpKQZucka3c7vgFNd ZZpR6JtI+q+lwFFBP5Nl7kjl8LFFMwz5oqAa1kIbDOeiMM7ncwThsuyDojqj8BhO\/ylLsqen6rmk FBHjpwNsZCGo0SeHKqLaX8i05yq7pUkblfYXWxa92g3793NicLBuh0ozHrm7ePLF3\/wNkwidauRl Cjvarc64WNft1G1vxvHGLEubqpkDlwqSiSExJjhqjD1pjDlhA\/O4TZpPbegMj\/7wVH2qN59v\/ETa 2LOe\/EcCY6oGeaegG4GCTzAs5H5Iq+m6IGhr5guQZOSmanQfGyFIUkYHuokDS2tQ5QjKgxnuzgCO 3\/7P\/7zgFr5z507pKbvIhlmniOlCCGb95Xats6JNgcdRPgY8ODAzNv7a3\/gzPvMnv5EIjKss0aRG saj254WVlJrDtDEB4KLf2MXeFFBOnsyq29e2V26yHOkiMi5bldngEpA2STEXT0QkH4VRvrOzg+mZ GlkL6xTBFXL5FYVCvmaMqadp+uJm3Bx36p6y1twfh8Gjf5lGe\/7TVONAoVz4XBDQYYTvEdjGEokS PxwUyqHvT+3iVkYxdUSTNSoImTVM9HQSR4Gqn5b6mXw1OflDf\/L+RZWjr++UMa5\/rbX2VjAvQ+hZ 5paqKCOK3qfI57PR5tgNO\/8sA\/iMUgcOItSY148+c4kgA5kNVxotPMnyBoFeFPlG4tCLSjOUMs5s FRhkOU1rLpKICIV8xMqBXkZHx6g3GlhrKRcLprNcqRRyUQUR0jRdFwUBU9XqZbVG46pqbWbPtNOH fiEf3Peqit3\/2lr6kRymKcKbgStAo8W8M5H5cWqTZOQmZuhSh0A201k6UcvnvuzgniQMF8VvP\/Xe X42MyGaMvg7kDmA7y6gsajnuNVH9goh+RgwHpp\/Yf\/oBsomraiB7nJrpJcABi7BCxWxMXXYRse72 5Zut0HLbtm2Fxw4f7nn\/xz6\/7Q233XB9pVzqMcYsqy3Ccz6J2bkrYUhfd6evwADCwNJRrtBZLhG1 8FpVlXw+h1Nd0WjGQy5z16vqdZlx674w3fzMIZM88wMu97E+a3JipABsFBZ+QOfi1JyDU9MKFDud iqk1alkujI9MTJT2p9naH3\/VLQDinIpg4izORv7yrq\/WP\/lHv5IDuxbklQhvRORalhnvKDRQ3Wtw n7Vp\/KC6ZvyWD52hB4jL6iQcIBfVFj2QYFAGgNWpcfm3ve1m+cAHvvpNRTraY9vN\/vc5oHdbBgak Iwyiybi6MVN36zMHjrxsZHTrVflcbiiXWwaloYUCZM6Rpilp5nBzOsUH1hAGFmvtkv6jDSyFcpFc Pk9gLSKGIDCYc76XC0KKhQL5RkPqtXpOVbekWdZXc7p1dxj94x8j9\/xsIHfmg0BDpz9u1a2cXbT5 fv30A2WgI\/J7vfOtfGfdD1OuNYcakXltFtnB0NipVCDLstA5Z4zoMQL59D\/\/4S8cCQKzUlVeA\/wA IpexXGVWdcApkE8iPJQZHUvFneVhJjauieb2KEy0iortAutqgG6FFSTa8YNbrjnxAb46fyD7DVLz thQ609n8+2wmvq2VAvwwrEBV1vR1RxP16qZnj5740UacvqyWJCsVqYhI+6mr1hCiOE05dmKYp\/Yc Yvfh44xNV8kyRzEKuGTVAJvXrmLDulV0VMpYaxZUahHBWkupWCSfz\/kHJM1aw23PfEaAQi5HuVCg 2WiizuVQBhx6S5wm\/SP5\/KV\/VSrfdXN\/97HOJB1dPTk1VKzXjclmG73P\/\/sLDAfFOCXXTMudzty0 UdmRFE11VMTV00Sq1eqUiLm\/XCo8GNlihzp5BcI78H1GLsR1OwV6j8DHYtIDr\/vp\/36eAk599VDS ecOGcQnt44hsBFnPQpCviBHVvsjIJuktHgMmECciVmaV2OEf3kXjsgvIEkK79FHPKp8dUdtuBi8A um1AsRYlPPHskaJzurURp9dlqttETJAr5LB2eQnBZpKw78gJ7n\/8GZ7ac4iDJ0eYrjVwqkSBZXhk nMPD41SThMs3r6ezo4y1CwMoYmSW40CcJKRZdnoXmCvWGG\/F\/U2jtQ5dzrkdzTguHm42y1+P0\/yA tQNpEMoqm9LpYozqoibg3OGgrkU9NSDl1OWVNF8NTG8zEKazjMy5\/WFo61s2rl2pRrYCrxXkEpab jPLXmAg8gcrHQZ953b\/\/nXldird86EP6hVt\/rplo\/mngMMLaJfSgCzHrnQ0eBCacEKnTPvH03tOz LJY6Q\/FLkS0HkGhLoY0hUd\/Bpp+2mwZKCG6lgU4NjBmdruaB1c739QiMNRTyuUWV7VxJ0pTDx05y 78NP8uVHdzM2OUOWZaef5DjN2H9qlKPjUzTSDGsMV126mVJx4fhI8FXMURiiTv3x3PlLODvGYh7t LCRpur3RbHYfn5jKJqOoZybN5FIRLhWhE8WqLgmdnTscNHGAQjl1rK82SUKhmaWuGQZja9asOrll 87ob8VOqrrxA\/D4Fjir6lUyTf+3Q2qKDeqajZpZvlp8GOYDywsWeUoVuNbIZseXW2hUQXatIQRXc QmU1Z4sDpgQaZhk60t52r9oATojIGtpWaPW0SQhMprTc71aR0iw9vD2MdNbVmKnWeWjX0+zavY\/R iWmyeRQvc0q9GfP0oWMUi3k2rFlJIZ9joSoeESEI7GnXxMz2WDvvc6f\/Z77D2DiOV8z42dXBUYTE WNSGbM9SKmQEs5Z63mO3fOp5cGqrUEqUTWlGDnX53rLZtnntmlKpeJ0gl3IBboaqok5j59yzzrnd tZHx6df89p8taghHxvqz1SU9qH4SVlOUaBGl7kLY6NDKB++4Q3Rkn8Xrjc1U2zW5icIwqtOZa3+c VnsEf3XOYGJkWZmfUJAhEe0IA\/ecIYw0zRibnObxA0c5MjI+rzLPlYnpKodPjDA6NkFPR5l8fuHn cDZ4NNYQ5ebfNdIsI0nSed0RgCxzQZqkZE5pGMNJgdAGBMAlmc7CcYuK51N7nHqu+2FRKk5YEwRS KVXWFAr5HoP0XSjcqao0m01pNJpR0kzCw25yyUYunSHadG4sMnIMYUSh0KLozreeZUVX4aSztmVL wMjePCqrEQoKC67hOQdRfKo9M8tQ6LYcWBHTUOE4y5ryKaHCKgedxrZTuL641OtNjh0f5tTENPVk 6RqzNHNUaw3GJ6aJ4\/YSViJCsEAQ2YwTGs14wZuhqmeedvHj1Q4Z4aHA8pgNGTOGTFiyvNIaz\/3o iIRKBDnjd7JAhIqKXdlIe8ojk+tsrV7ywxbbX0NVJXOOOEmYqdZsrVYfaDbj3miivuT9efPP7VSX ubqKPAuyC1k0aRKK0hWo27imj64MUxKRtfiSNLL2TjsFRhGpShBcXIVOlVoKB9UzzdoTz53tVpFy Qxq2lAuSfBRMiCw8JXYxacYxY+OTJG0o86xkzlGtN0jarXhwSpa5s5RWVUnSlEYc04jj9qxLSxKB U2J4NAjYbwMmxdByjZdYOl9NXj6nmY1xSjhZNblDJwhHxrGNpi9kWcY5ZWlGo9EkbsbWZa4X6E6l 0JbByavLUD2i8CRLG7eciKzJhK5WQUEPEGXqEY42TjkxcFRUJ+90WfjGF+wovv7aa5d0pttS6PGm a04netzpMiy0qsXzmrtzmclft35DdcPQ4FPW2lOz86CXI2mWUW00lnQ1zjoFp6RJii7htHkykLde 9WZMnCQkaUqSpjTjmKlajemZKs1GY1kKDUIT4YQI99mAXUFIVQwObf3fAt9q7RD5FvW0HHqlFoBG gj0xTu6ZQ0THR7Czu88S56XqA95Go0mtWsc5tQh9KvQWKoXgXa97yZJKXWo654wcE+FpoNrCsBeS yIlZrWK6nVBUnzKPXPuwRSKWsVPlIBjvK62vFIobegpLJyzaUuha3cVxyphvLt7mDfVFYyHIQM6W Br4\/rDUnZuoHNXO7gMOItG9qzxx0WZ8OAku5XNBwEcaZqpKmGVmakaQpE1NTnJyY4NTEBCfHxjly apgTIyNUa+1vTueeshPhpDE8bi0PBiETYnDemVxQEc8dDlqZO3IuTrDDk0T7jpI7dALTjJdouex3 nvGJKYZHx6nWGiRpSpapybKsN6s3163p6S7efumliw7QfNF\/\/F3t6KrPiOphfKPCBRdFIY+yuWN6 eouIWSs+KBTnIHVL71IKHMuFKx4sFd9li4Wf6yjkbixVgiXb67YVFDZF6nl1R5xKXRDaLyrHgg6B rHhnEO752bGjU5Vi4Wu1ON5iRfpEqNCmloZBQKVUbBu3NkYoFHL093WTLywcEKoqjZZVVlXiOMap UrcWVEmSpK1dwYhgzcJN22IRhjE8ZaBslQ1k9LT67yyFU88zHNRb6lMTnk2Vj0j6u8nyuXl\/P8sc U9MznDw1xsTUDKYVsFpryJxbNTU988JGPS72rOo78IZs61TumWfSD82jc54A+HvpZ\/7414ZVzFMi sgnfKXQekRyiGwrN5kbfT8Xr2mmXY4n1TIX8kVxw1bQ1PQqPqMjBdHE+NtCuQufzja4wOawqo+qb hbcH3SmBwFrEracUfvVSiHOrVn\/9iSNHCj3lUgbcmjnXZUTskjhtPsfQQC\/FQh6RqSW3\/q5SkXWD ffT3dku0SGcwVaVarVGvn3Ht0yQhTZbnFRljMMYsqpxNhKPG4CSkLsLlKXSoWxKn9s1szu6llzhw 9Rh7bIxcmiGZIx7oISu2gI\/W8dI0Y2amytFjpzg5PHb6Oo0RAmtR1c1Jmr1NlWsLuWDfms2rjrkt K0d+Is3GjTCZSHJq1ae+NrVzrg4aGRbkPpQbkfPHhbR+PkQZDJrJJc6YomQudC1lXiyiaXHBtRnY 4lhgt84IuzTTz46dGL\/nsLVLxl9tKfRN996rYy++PgVOiO9R1lYXfwGryEpRVqEF83VIbkqSU5Vc 7tM37dg2Y0XWOecuNdYuuZXkciH9vZ30d3VwcmyCan3ha7PGsHawl8vWr6aQixZUllm\/st5oEMcX NCx1zg1sA1MXb6GGRXjcBgSqbEuVDmklX\/yB5j02eJy6MmeOYuyAOMGMTBHZI+AczVUDuChkFh5r NBoMj04wPDpBY84YCeeU2KUA\/aA3CVyPSAPDqCgHsHJAkYOhyT9+6tUv2fdjiZsuhTpZL0eNmVo6 VS5Ez4KMsUj2WBQTZtlasbZTkzRInJIthcAJZCLSsKICe9LM\/WOjmX5h4uFHm\/e0AY60zaMYjdNU MMcqkYyUTNtzVqzAKkXWjKVBsPfaa5ubHnww3dbbO371pRsOhmF4ODBmvfjxDosfyFq6OipcunYl YxNT7Dt+at7FsdbQXSlx2eZ1XLltI8X8wlBtljkazSbNZpN0Gb0f5j2\/IMCGSzeWUvwW52fX+Xah l6uPnmdloUPM8qkrLZbebINIacbYE+NEraRQvKKPNAqJk4Tx8SmOHjtFvd5YyF0PQILZZBcejViN mGtEpA4MYzhgLQ9lQXhXpzH7Hrp\/1\/RNL9gxHETBSdTUkHncDlVAxaTZCslcH0qQupa7tIQ4EU1E xnNx+uGmyGeDWv3Yhle\/xP5UIOJUsj\/7ly8ueLPaVuhGTCJG95RCOYYfXL+0eNNScqqrp4xsdujT QH336KjmotyMteYQIlWWmOs8a\/3KxTzXX7kVl6Ukcczh0YmzlNpaw2BvFzdevpWbrr6M\/t6uReeB ZFnK1HSVeBlQ4EJirSEwZsmuWqpKnKVMN2Mmk4RpazHFPFcElo5GE1nCX7dGyPn25SBKNWlVvjQT 7PGxFoyQEfd3MzJd5diJEWaqteUge5GIRCLS2TrftYhcYgJ7pVNuqVXdU5lWv\/7wk3uP79i+aX8U RifwpVlnW2lVgkbTmGbci2pFQZpZK6W\/qAgqTISqd\/fHzS909fWMp6Voi0vddpAuA5\/Hj2ieV9pW 6DDQVIQDVjiROcUIbaWtW9KXC7jC+kpiD8iLq6PmsAo1FqtdmnuyQcDqoQHiy2LiNKXr8AmmZmpk zhGFAT2dHaxbNcB127ewdqifYAkOQJJkTCwj8bKYGAQr595TRdXhFFyW4ZwjU0eSZiRxTC4MaHR3 cGqwnwljiMYnKIyNo9niWcVZnFpbSMlsRpE4wZ4aJ1RFG01q9QbTUzPLUeZ5lx3oMiKdKrJZ4QpR 2TgyMv7Unn1HutavXZEUCvnzdMGoUqg3JGjGJVWMU4id0kbpk4oybNQ9eqxc6FXNtgiyXYxsVad1 UR5a6mTbkjB2KaHdnzk9lggustJGU9TWxQn9ldBcoZi7gRGAvMmmE5XdEEzg\/bAlQXMRIQwDtmxc R39fN9ccH9Zjp0alGSd0dZTZsHqInp4u8rmcJxIttGItbkij2eTU8BjN5nPzn1snh1NFnDt9\/FmF zoA0ScnSFOfc6bEOK4f6Wbt6BZ0DvZwC3GiFlXFCVK1Cmi2o1GcNB20RmmYDRW0kBMfHKE1M0xEZ CoGhaQzLazt2zm+dvkJCYC3CqjRNv2vfwaPHyuVi96oVkRhzdobVOKVcq1NoNCJUydT7\/Is6dqog aKZM78tFpVNh+E6nXK9ojwiHXJbdmabZ+GKHaFuh3Uwt01xubExyJ4tWxrvzdJk2WV4i9IFcYdSV \/1cJ+ckq2nD1mrGdewU90Wrq2NYIL89hFjo7yhTyOVmzapDMKYG1FPIRQRDQTjvhJEmYnqkyNjFJ vExE47xFtJY0TanVaqdvqlMHtIhPYUipWCC0ligMyIch+WKezs4KuVzOB7j5CLoqmC3rGThwmPzE NLJIG9lZnnZolc7IN4icDRQ1zShUM1Y1DSYfsrsQMWOEbPn6vMBPSwBUUNbFzThI0kxy0Zw1V8U4 R3GmSjRTwzlHI\/NKvZRkIozngw1HC9HbYqGsaBHksAifEeGfYpceWfRetHsVW\/bs0Yd37Ihdokcj q\/tBLlPVYptuR1HRNbVUt96y\/fJj3Pf4+Gt+5o\/ST\/3pb0wAe4CrBDYsZ1UDGxAUAoqFZU3JOA33 zfI8ms3mMrN\/54vzlgUbBuSCkEIuJAgDwigkDAJsYLHGEljPqQ6tPf2+Okez2cS5jCyKMF2dBKsy us1JiqNjsIT7cRqnPmeSgHFQThxDpDSNcCgXMGkM2cUrdRNUC9VanVq1RhR2nH6YxTnCRpNwpo5t NEmcEmeeNrrovQEa1pjJ0HY1jXQrJKIcBP5VVT9kRZ75P5+\/b9EM17JqCq969FF99JqrDgbCI6ps VKHY3vKIVbQPI7d0ROFe8PP0RLOaqLkXkSt9C9hvjqRZxvjEFCdOjpAuiz4+54pEiKKQcrFIlAsp FPLkoxy5MKCQy5HLhYRRiDVm0VhDnfPIRxbjMoeUiuhQP2kY0K9KYWISknRJpS4GvqAPcVSTVi89 hY4kY0PV01AP5QJGrPHE3ovQZkWBqakq46UpOjrKp3fGMEkpT04RVWto5sgcNJ0uqdAIzISG0cBq CqMKDwp8Fdzn\/uQTd93Xzjktt0hW89adMgR744x6zneBaksEinkrOyKxK\/atX\/\/EhgMH3L861xDV XWrlGVRe3KJDfkOrZVWVer3J6NgE4xOTuCxjrv\/nnFvSYosI+VyO7s4O+vu6KZeK5OYor0ibuPQ5 kqQZ9WZMVC5h+7oJMu9H58cnFvWpZyWyUPENgdHZanKFUpqxtua5I0k+YLrF\/LsYUqs3mJ6pkzl3 GksP0pTKVJWo2URREqc0s8WrVFQVFWga06xac0yRRxT5kHPpfakmx9o9n2VXfc\/UmqeyUvBMI5Px XmMGbGuQUBs5hSKwQ5Gt2tPxwNHi1olj9VyyOj91WCntAn0GlW2tLvzfEFFVkiTl1PCoDwbjmCAM KBQL5KIcolBv1GnGMVmazZvy9u0Pcgz09+pQXy\/lckGstecV1l7gCZIkCfUkRnI5zEAfaWAZUEd+ YmpJpRZ8q7GOOdXkcytf1tYTrMLefMCknVXq53bOcZJSbzSJ44TQBhiUXL1JaXyCoN4gdkrTsbT\/ LIITXCyyb9LI3yWZ+5ySPjszWZ9prH6obVx1WQotoF8PC41a7I4UQvOYUx1Slb627qOIFaXbGr22 pyP\/uCuFX3vHL+2sA\/Gn3vsbXzOGdcAq2q6IWb64LKM2U+XY8VNMTs\/Q0VFh9dAAvb3drQIAJY4T pqamOX5qlJHRCer1M7RfAXJRxNBgvw72dVMpFj3OfRFbMGRZRr3WIAxDasU8anoQp\/TJUQpjE8gi CSARz7MRgXLE3OGgWIVykrFKFYOyJx8ybmfRj+cmSZJSq9bJRxHFLKMyPUNUqyNpSjODerp0watC konsKzr3wRnlA7Xp+rFPPvx4c7hWW1aAs2wLHSUJBMGIhYeccq1D+zzU0cbKiIpRLjdWr2oqu9SP Y1Nx8QE14VfA3CwqNyDtIR7tyhmYznOqq9UalXKJlSsGWLtqiM6OMmHk+R4uc8zMVIki367u6LEG zvmtNJ\/P09PTyUBvF+VSEbuM2R\/tn6vnXyRJQhqF1HMRowM9BEnqd4eRUXC6pKXOW1+DonNwaqtK KXGsIqFuBKKACfvcA8U0TZmeqdFRLpKPEyrjk5gkYRZ7brYRpgjUAtG7h5rJZ48PTxz42O7dZ0Zt LUOWXVz5c93d0l2K0jAyZMr1gqwODaat7dbfh7LCRIY+qrlw\/D2jk+5XNu1IZnrydRXTRNgo0M0y 2hu0I0mSMjI2wdHjwyDCxnWr2LxpLR0dZcI5fZONMeRyEcVCHlCOnRhGgVKxwGB\/j65ZOUhHuSRB EPgx69\/ABjm2BfmlYUitVERzEYWpGWyWLarUs\/ciNEJoPT6etYpTrULooJw5jIG6MTRFnnOgaAQG igWGpmfo238I04xpZnMymYuLEzheNvxVT5Dd\/xMPP1694PNY7he2PvMM5al6bSp2h6djPZA4nfAG sO2HqQBsDo3clKzo6wDY\/id\/Qj1tDluyz4m6LwH7VYkvRi+SWS7w1HSVk6fGSNKMocE+hgb7iMJw wVtYKOSolIuEYUi55K35mpVDUioUZBlj8y74nOM4JokTnGsFc1HIaHcnR9euoprPoyI+eF2ETy2t GsWOyFAJvILPDiwspo7VtYRNjYQOp5jnsNhpkjIzXaUyPkFpfArTOu9aAo2sDTOrWlPV\/XGm+8NE Jp7L2l3A7BK08+mns2YzG1fl\/syxr+m0Pafdk\/4DgY2C3KrKwNHLLw10cJDbf+6\/x2k2fVQzPoby adADqMZzWssuS2bdjCxzjIxOcOz4MFNTVfK5iO6uDkqlImYRSM0YQ6GQZ7Cvl\/VrVjDU30ux1Ufk QoI\/Yy1RLiJf8C1ul8qzOqfESULcKvvKgPHMsdspT5mAYWNIPUF5UVTG9\/3ADwcNzhQJ2FaguKqR srmR0N1CKS5ERBXbTOgaGafcws4z51GWRclIrQdSYDgU7kY5sfL+h59TluuCW9i+e8UKF4XEGbJZ kS35QKJluB15IELMnigfnMoq+ep7jp7Sv\/\/01913v\/TFI0Ego0Ykw5PQKoi0Pxv39FopzThmdGyS o8dPMTo6kRkjydBQn+3t6ZJ8PreoYmZZRhL757S7o0Kh9fnlKLOxhjAKiaKQfCFHIZ8jiiKCMEDV ++tLXIQv3A1DJqdmODk8xqHhcU42mqBKAYhQAhbn1cyOxzCtaZez7ocBQqcUnP+dhhEas+OpluF+ lFA2OselzSYdtRrOKc1MmUm1HXZdJvBU3ro\/L0py4I+OnXpOPIQL9lO3WRs\/nuq+FN2jMOpUSoJK mzc8QBi0wisUOWbUjOFZldrMkloxiR7S0DVUjKjqK5zTSxBKgV26E\/1sSVW93mBqusqx48OMT05n WZpNdlQ6p3t7O4fy+WhJJCVNfcOZSqm4LDd5tnTKWEsYhuRyITawhHNS8s75GqQsy0gXYfqlrYJW FeHEyRGGR8apVutYVRo2IBPh0hQGXEa4CJ96VnIWWoPrzmQUVSklGetUyQRcK6PYLvphFHoULk0T yi6DzJE6pZq2QUTyveWmgIP1Zro7LDQu2HeelQtWaHnwQb1vx466EdmVWntfLdUVxUAiyxJx0uyb qp0KtyjydC2UA9rff1CGh933\/crvOqDx0d\/9tcdTnZps1tMjTuRtURheVSrlS61IrHWY2ba0Z1yM NMuYmprh+IkRJiamXb3ZrGepG62UCwfWrR6crpSKHdbaRRVaFeIkoRkn817LuVXhs\/+0gXcrcrmQ KIqIovBMOvgs6y6+l16W4ZziFoHi6o0mw2OTDI9MUKv7Il3XqrJ4xFiqAVyfKr3OkdOl0Y+cEUxu buWLR0PKiWNDLSHnPKTXLvrRpY41LmNtmpEnI3MepqulbbgbviH6E6r6terkdPXaXQefcxvy59Q1 \/98NdakaExuRolO5ObISWdOekRYRI5BDsMaYE41y8OzvHB05fWf\/8XN3Zy+97JIaZMfGJqtj9UaT er2xYXJqJppplUw1Gk2SJGWmWmNycprh0XGOnxjh1KkxJianaTSak2ma3utU\/37zxrVHVwz13RiE 4YDI4kPanVMmJqaYmJj2frY539Vwzj88zTjRar1BM0kkikK6ujtac02CM2VZ87gq0pq1os6dbrY+ \/333ccBMtU4yh0SlIjQE6ggOX5yZV1\/ztsiat7pDwWxcO+t+CBA4JdcaDlizs+jH4jfzEpexPcsY dBkB0Mx83WNziWBQfWutGUE\/Y8R9ciLNjv792NhzxgGeEzS2buKEGy31HpnKdz4K+nSS6fbAUDbt 79E54KoMedGw5B5\/4vrL922\/\/\/HTdUIn\/+j\/xNf++LWHxtnyUK6Y3xhF4SvSNCNzGbVanTTNECO+ 3UAzplZrxrV6YzRN05OqegjYj3L\/pvWrj6xfM\/SiIAzW6FKZSCUFPdZoxiMTUzOFwNotgTWBtb5e MHOKU9\/C1zlHkmaSJKkfbJnPEwZBW7MATYsL4o+RLuh6iDHkooBiLiJJkrOKERRhXOBxa32HJmBF lhGy+C45F6dmTtN1q0o5TlmpSiKCyQWMWYOb52BWlT5VNriMFS7DtnzzZuaRjaV5\/BKjuh941MCe V+3Zc1GGRDwnhe4+OKkw2XxwxxUHnIn+tZExYA2lQJZ0506vi0Cfwgvzgd2Xd+bDx6699sTKBx\/M AC774B3k92w2V1ZMt0rQq6hNWn7l1HSVaq1OkqY4p7Usc6dq9fqeNMv2ZE53WysPFEt277Y1q6dX rlnzCpCrgC5ZaiqtUBPky2mWPTA+PtmZOX2NtWZdaG0XIrk0S8nmyeNGYUCj0SBNUoLALkphnbXW QRAQRUoQNsnS+bueGvHFrOVi\/jyFBt8iYRy4NwhoAiHe\/QhZGMKa5VP7wlsAZTr17QVEodJyP6yC my9NrkoF5VKXsT7LKDmHKDQypZEtFQhqa5llRuAelF1OZWapVmTtykVJXnSFnJzBfX4mMS8JhRV5 S960Eym3HOHA6JbOyL4yy\/TJJGAaHyjQM7rFJmXpFDEvE+EVIIUgCCiVDPl8rkUkwmUu2xs34088 8fS+v5+cnJ500BS0VnAm7u8ZKip6hYhcsuQJKQ50ApGvVkr5T2UpJs6SxyOJXqea3QC6WpU8flc+ 61hJmlGtNZiZmiYILWHg54ad62rMKu1pC5+kJEnqeSOtjpbnuSci5As58nGMrdfPe6BUhIYqT1mL ClyXJPSpWzRQPFN4y+k5itOJr3E0QDHNWFNXnMDefMi0kdOBYgQMOmVdltHjHAbvukzHvsnk4kss IDgxZkKMfs3Uq3tGp5vPraBzjlyUyVP\/32Q1O9nXEyPSAQwCQ2HLR2zHoW7VfpaMkU4jHPiRgfzI m2+5yTVWregSsbcZY94EXNGqdcMYg7WWIAiyMLRTYRh+oFDMfXjN6hVP\/swf\/M34A88cqN7\/9IH4 537kjfkoF27D2LcKXIPIgu6Gek7zKKL3Inpnd9fMU598aN+kde5EFEZPqbrdqgwjYlEtCdJqFn3G EKZpRpIm5MKQwBpMq4fIbMA6q8TNOKFWrTEyMsHxkyOcHB4nTlPfrLFVA3m+UhsypzTjdP6CXhEa QE2E2AhlhQLK6c4xizR9NwKBORvSEzykl1clh1K3hlgEA6x0jmvTlLVZRlE9LbSRed5IW9mwcn5G ukv3STG4s+Ye3f\/FXaN618VQRC6ShZZq1T2ZMe6s+1wzM1tFuCSy5HJtBoggBrRf4DZr5PHBUs\/0 2PrVh+vCJjHyapDL5mPhqVIV4RHQLydxstvF2Vn2IW\/zHSA3ApsQKS9xEqmgh1T5jDj2veyn\/nw2 AhsFRt\/52hsP5ST\/rGAfU7gOdIsgm+BM8+84SRkdm0YQKlMzFMvF0\/NbVFWzLKPZTKRWb9BoxFRr der1Bs04pVjwbL8oCnzDmrmrI4IxkM+FFIt5zwacx+1REcYEHhdL3hccMtAG+uGHg4JTgRahKXbe 2lUSz\/DLRDiQCwiMsNk51rqMMl6ZE6fMJG2mdkOLdlea6aq+IwijN\/9xctGsM1zEoUFpljUV+1hm ecA6bqglbAwiotkpz0sqtkiE6iDwCrEyXXDpg1PIizP0BQj951ZTKxoDRxQ+jcpT7tSpevPZMz27 H3vvbwTHRftBXojfNRb\/eZhQZZem7t5KzY2c+37BTU+ojR4li5\/JJHzEirlclGsUdgB9CD2odMZp Wjg5MiFjk9OUigWKRV9AOute1Bsx9UYTlzlcy3IDNBoxtbBBqZgnnwvn3dnCMKCYzzETBjgXz5v1 VoQZgV02wE\/xSRnIUsLWhxezMHOnc2mLempVKbdwahXIB4atLtWKdzUkaaW4q2k7FFHQjiLJUI9r rhrQuJh\/7uX258hFU+grH3vMfQIafVdf\/SURVpPqD+SsHTKipi1\/+sz5XKdis1Ktvi1Isxe50KzH jws7+77BcdCv4NwnnZs8dPt7\/vKsKPkgaVdowq0o16nQu9CvtxLrTmC3IJ+zyrGbf+U956Vf\/+RT TzogBpIfvu66XR1dXburJvlUEOiQMeZqg7kB4XLQtanLylnTRc04zU1MzsyOYRBQ1M2fys+co9Zo MFWtEQQVwnmgPmsM+VxEuVho9eKb37g5vKV+2FpqAjcAPS4jahOnnjvzJZ6DU2+ZiSkHwkAIoag4 hVoKM2l79YIahaQr+2isGcplpcJqrBQ++ME75C1v+dBFCQhnFeiiyWtA70vTA2rCexLHldXEVYxI pdBue2gRUCoI1xWmZrYWa43urGLz2Zx2BH5skSYCjyt8nGZ6+DU\/\/97znnQjZpOiNyPSsxiyIeBQ JkEfzxK9R4NkqYhb\/+aBBxIgeWtHR73r+u1TGoXDWH3Qiu0XY9al6q5UZS3OXZbBVtqckhvHKbVa g45S8bw+1WdG0QWUS4VWw8WFd2snwoTAs1hyFq5U6Nds0cmgs9U2kfgaRRGfUfTlXEohycgjagIR RWg6pZaqL8xd4to0sGQDXST93aTlYlGtXamqHZwcsPhe0BdFLuo44t8EfqpSSQijJoJkKpeK0G0F Y9vs4yHiiy+NuooEYT6NIpNEoWeX+Y\/EArsVvTNL5HP7942Mf\/K+B09b5y+\/6EXy9p9+TZjlSi8W 5I0ga4VFEikqDeAeVD5xKJn+2nAtTD71+a+0db1PNJv6+v1HslpYnJmW6ZHOsOuYDeyhLHMHEHlK 4DFFH1HV3ap6QtFJvKubQ8XqaQgLOUP+VawxhGFAMNuYch7UI44TkiQ9a2LXPKtJA5hqJUiKQEE9 s26pWxGYVlNObSVf8IhIKRDJWSFRmGnb1RC0lCPZuoZksAdXyFkRqRrNHixm9tj1L\/iuxqfuumt5 yrbQeV+Uo8yRq\/fu1ccuHzyShoOfS5y8sJpKl0EHrIgEZunhOf42QFit2+4jx8iMIbOWWjGPM8ap L568V4W7NayN\/Ls\/\/vOznu4j3\/1yWwqS\/kjZKiIbWawCRjUFTip8TnD3\/\/jP\/8GyiTE7QXnqKQCF p5vAcOsFwI+95oYCWW6tMbLVGrNBjGxW1bU+9a8loIhIESiDFpIky0\/N1Gw+ioiCAHNOlsq0pnGV inltNGPSenPRBdUWTn1\/4L02i9LnHNEiSn3ecFBRqolQCqHY2m3rKdTaIx+h+RA32E0y0ENWKs7u xAVBtkDw0Ho\/kOpbB4c+azFAH8idTKO072iciz7UVOk1mb4kzDRXFMHSnlKjSjhTo2\/\/YdQYshUD 2ijk6og8oejdKE+ZrHGer9uRIzKYbSJmO0iZxSmyM8BjIvo1l8qBi70WAI200QzUHggJjzmjXxU0 ylKXj5Ok36lbZ42sDmywKgjtBkFWqGp\/HKflRhLnCi5XCk2QO3e1jBGiKCIMA6Sx9FQBFaGusMta EuAGTejVjEBZEqfO2dbsF1Fy1lvuRurJR3E7uT2BrKeDxpY1JOUieoY2m8\/ErMOYrrGLWBj9DRmN fN2D6GffeVUzKJlD0XTjpI5PTpmR8X5JlYIVFthJz10HJMuIqjP0HjpCGMd6auXgyWY+99E4MF\/N krT2mp9\/71lL+je\/t9NYKIO5AbiWRSZEKZqJcJTM3Sma7X31f3jPBY3KWEre\/6+7HJ5JePr4d4Dk tm07nnWUnw3yNm\/CNJ+FUhRsTjJXkEi6wzDaYq39buAGVc2f608XcqGUCvksbiZZvRkn7TQXmRBx T1urIqQ3JNgedYVANZJFOrH5QUaz\/amhkSoTsS7J1UAVFXHa11lN1g8Vk55Oq3PrL4W8wAYV11mp zFy09f6GzfqOr95SdiTb3VRtlZ4oFGytga3VsaLkpf3R3qKQn5xGMpeZOJ5JomBMq9VpK9Xz1rM3 auREo00YuQwYYIEYoVUzMKzoY2j2QDOpTnyj1mE++RAou3efpeSzsn31avP6m28oFHP5Z0RkJbAG j3WfvpbWBFwtFQsTaZbtrzebuxRdAs8VVRgdF5k+KGIvhzUV5CoLlwjawSJW0je59wHgTKrtcTVa cwazztKxtK+r20Xh0Dn92fIKaxHpjNLnPlRqVr5hCm0k68UEr0o7Oy4TpWinauihE4RxAytKaFpL 1c6lOEc0M2N7avVVzphrpNE4ktdkl67onpHj46fXNmeDihq5HtgKsmBLJUEThceAzwaaHTg+PbmM 6V7fWHniyBF94cyO2mp1B8DcC7IRGMKXrp0lhXyUhUHn4Xqz+ZHJmfpokmaLoAXqAvSksWYin6Sm 4OK+EPMyQe5QuEFUOwA73w1x6jsfTSWeFrqkMqsqIlURHs26KruTjtJGRPo5W99CYFBEhqJIKrSa Dz1X+cYptJEKfsppf1opmeaGlZhGzPTJETSOqYRCZDwIB224H84ZzVynge9BTGdM+H\/TS9Y\/cWjd +om1X3s4\/eQf7QyUpA+4XmHtwrgzmQjDqH7VqXxh5tD0zDv+599cNBz0Ioj+7098gj\/9pR9JVeVR EVYBN4HmmAM\/ioiI0BuGwco1K4eC7mrzwP2P7F1QKaIgIOt+Mv3Ax0cdwPduX99Ie7v+xZigZoyE wDUInZxjqZ0qiYOJ2C3NcT4jjf+\/vTOPseo8z\/jv\/b5z7jorM8PAAMaACZuxwVviyo6X7E6iJI2y NIlStVUbJVWrqlUVq41SUildpa6q1CZd0qpO22CnTeo1i01cL7EJGEwwGLMMAwMzwyzMzL1zl3O+ 7+0f584wAzjcCQMDSR5pdK9Gdz3nOe991+cFDhiRrXFbc7cPgnsFues85zUEXSmp1OrH\/vL39xTD ODpYUHf\/\/X\/2Y5+PS0bo5NSogqgGlqi5Abt6GcY5ONoHmixtD8yFU0iTX19QS\/IT\/E4RSTns1oag 8iIw6F2l0YbhGoV1JBuXXvdgK+wEdlRVB6uNC+ekbXGucWRklOYwfWJhQ26PCAdJdpk0nnVMrKAL Qys3tzam92x9\/vn+el9\/4d5uN7ChY9AvuOYZIGeNtAEbOIsTVZeUtUv1kxlEjqeEB0MjT\/UGmZEw WbrpzvO4QGGdV7lNjCumqpxcGwfjMPstaZO4dIT2rlcl+HuB24GVPgwWRe3NC8y1i\/OiGujJQSTy 5EMlbYQ63Q8hSSRdA7zLiLRIKnPd6Ftv\/c6uSilXDoN7QJYg8nr1g4qoHvXot8TKD4yV0oe3bLmS rPMU\/vzLD+rmzZsrn37HTQdR2apqOkRYe56HdgpybzVy277wsbv7\/+Cr2+pe11X0kQmtS4sJGjSp p0x1GCRuhjIeJb0dUT3pOVUV4XAgPJg2+nB7HB3eXynEgTT2kiwtWCqcOTe1WYKbENMpQereVMAo afof\/7vPHxc1vWEUd0fiuie0NGZGW\/xLwJYLnK85LaxMx913vamSs7bHGOk3cBKRHm9Nj0H7bBwX GJsIfCXOiGICM9mXewFST+pgJPzPA0tFpNNbS9SQX1ZqarhPxSyR1yW0jij6NPC\/7\/rMH+7\/j4e3 XZFknkRfXx\/33bUxwktBxGxEdbGIzMzciIQKGdBDYSrf+\/iLL1\/QF1UwA2\/e1NCUa1se2OAuEfNe gXUKOUh0PKoeitGZRqULHyj1Bk5Y4amc9V91rnzgX3bsLX362Z3+E\/fdtUBENpD4zFOxQE1UoRGk C5F1CDcAawVZgXAtQheBbQtsuinIIu3GV963+Fr30O7dr\/txLpmFPl7Kx12p0oCz6e8Z5DlUrYI1 1Sid6h+8TirV+6pOPz7uWQTYplAIzIUbaKafydpuj81W6WjrHx4bb2tbM5HPZt15BGAUjVC6RfUJ VA5fqu8918iEplKNOKbqnxPoQuS28zyswVrztmw2c+ST73ln995XDvgdhw+fc9Kfuhvp7FtmBtub 8qEJ1ovIfQjvFvQNCDn0jGU+XettrqtwoqoCBSP6RCD6kPFutwniypbadaBeB7DyvMB6Zq6TmQFB DKJtKM3AOm\/MvQjjAnsRvp3OyvPBpkWv\/ee6Xz89IE\/Hv3n\/nnM+3SUjdO2nIa79TQnE\/eDmmyWg cjommFDswqpy91ikSyOvQWOY7Lm21Efsmq1Oq+ry7OiYW\/bakfRAZwfjrc1U89kz5fJkuvgYwndA d2Ti0eFL9b3nGr+05Sv6V5\/+hYIN7LdTmfQyi24Gwumxm0AG5GavftP1i\/LPre+6eWjHlw5PZTwU hLVrZUjDMFgULLPG3q3IB0xCsIW11mlxCpVYGYvqJzPJNtkhhO8DX7dEL8TGlde9cHDq2dXI9YeG Z62Y96nqNSI\/ampIDEIKptpOGlGaEb3OwH0mnf6v1lTqySZ99zFlT\/XsvptLGxSeB7fs2KFA8cVN mw4Y8d9ExFQd93hlKTUOp+2slnsiqkFQKgeN\/afwsSNXKjPesYBiPkcUBnihKsqrTnnCWH\/i7t\/6 m4tfqnIZcfBkyXW2ht0LM6kfovQgLINpfUYiBrTFiNzQ1Nx0Y2R4jqQKCsDQbauMCdJNKQlvEMOb Qe4QeCO1xUCo4nxSyi7GsyBz7eUFdorykEN2rd+x9xxj0djSVypOLD5mkcOIXAu01\/3qyfqaRiCv SKdAhOJSTr718p9+\/ASffWBGsHnJfOgL4de6uqqo9gqcRiTnoSPy5KhJTtvaJMWshF2cI1OYIF8o kK7GWBSDOBVz0BseLbvq\/1SaBopf+++Xrmjf+Wws37iR9dfk4kACL5hWRZaD5qePT6hiEMmKkfGo FO3b7IqFR0wsv3vjmpZ0tuF6scEdIvJRI\/IBYANIXiQZ+q16ZcLBaM3NqCvto+pIejC+J\/Agzj1s RAb\/oa\/vnGP7r994iYMv3iEBphGkE1iCyCxVu0RIfpk6BNIq5vRY0Hbkgce+N8M4XXYLPYlbd+7U J264odBizLMBGBWxCncWIpZEXlNOIRcKgWhdAeOU4oV6pFym6WQf2dFRJtpa3URzY0\/VmmML97ya pjhYObSCaNWRuWmGuRzYunWrbtiyxW3Q4f2j1ep38f5GoJlpxZaa+9WlyqacYc0HVy6JfENTOjB2 Pcj7jfAmhGUoeZAAdEquqxglAWClruCPyaauAUF3KfKg9\/6p3tHR0fd3d5\/3WhBBH\/qjaiHTYJ5x hsWIaUC1ESSHMDmnJiSNZGEtS3VOh2TS0KoNimxGpNfgnwRmiNPMm4UG+Pf+fv3Hvr7qr7a1jQQ2 OGGMlj2y1CmtkSLOJ2PhdlqpvK5uPQXjPLYakZoo+4ahEVpODISpcsk5NWO55kz5cyuv87\/S1cW6 iYo8Mk0D+krFtm3b+OzHboz7hzWlaCewXKDprIcZg9LoHWuGCy35KH6HiPy8wO2S5O\/z1Jq1nJ+c AzwjY1DnFa7AKSs8JqJb1evThZGRwXcdPfojS+8fXLlCm1oyY97aQwq7aoFeL8mOnX0oh5MBZUqa 8DI1zdeeOumSqAJmMZxW8Y888OjT49PfZ94s9HQ88qEPDb\/3sce2pzJ+CElZV43fXqnEG5zXIPLQ GEIumBzkrB\/iPUG5FKKsAloxZmVW7FvQ9n0e2WnV71ve0jLM0NCcjwJdCtzyqS\/pV+7\/VDdinlDv byQhdghgvacxiqWjVF7eUSh8KF+p3oNIm6i2A4kwX22gNfZJCXsiVkpuVv6ygh62hm9a4Ruhsmfd rl11Bdgf+fJXPVD627\/45SMrdVGfCaUREzSLaGKJRY0RzatKDqUNkWtA1wPrFVYI0jatf7wqSkVi Ll+WYza4raOcH\/rEWxaDXZY7OUjQP3TanBwajUcKzRNRHFAbxswESbl8skW4Lvc6+coWaEdpBa4X kW5R3tCSlu23L2t99eTizf1jUTy85oU9V3z2Y8SHY80p\/4p695L1fkXa+a68i022GtNSLtNenEg3 jxe6wiheJKihNjww2ahfdUrJKYVqottcZ5m0lrHSV62wLY3\/uqX6so69Ml7f08+8zm\/89j87koC1 QFJsmYHntmyR0SaXkay2qzfrEDaguhKkC8gnStYyhup2Z\/05P63zSuhv\/cnnLCmfV5WNKvatKvK2 YlfH2qCjtTG1uMOG+7ut7R+hUK5Srig552kKE3lYW68LMm1xZE2osxnYKMLaQOR9Ci9ZY3Y0BKnt hTtv3uGtqZaKE5Xj1bjSlHHR6mnpp\/nGoXXrArvtyczQiqVxX0vrdoGbGqrxwkUTxVRzsUi6EmFU kcQftclXToyB857yZLGknimTGlTVC0wI9IVWvtQQ8Hgc0yOmWl19YO7jkNuBZ0NbnrDRCedMvxH5 v2pVM0biltDQiWjgkKKgp1Kj\/py+0zlr25st\/vgLbzebW25tEhvciuhHFHkH0CpIVlSNiSKC0+Ok jvcTHBvAjE1gY0fKJDJW+SCx2EamBYSz1212qjqmibDNoCA9gu4vxn5\/KfZ7G60cSUMlEO+LJnJV nFvUL559+5grpZ\/zQUHcpk0yGAQ2HUQ2sN7YtLFDJbNYrLmpIWVXY82mSip8k0JnyjkbxA6pDcFO tkYricZGOa71Y9Tci3rJjGqsSVput4GtoTFPNoeVXpcer67Y1n3ZLvQvfvH3zOrm07bB51NoKBoZ pzIev\/t3\/jo++zzMG6G\/+VefyWVt6\/XeBL+own2CXDvjAV4xcYwdKxKeHCTsG8KeGEJiRyiQsZAJ IBtIoqg5yxTfuVCHUlTodUqvKj2BcFzQY6gOKJx0yslyNDHyWnCgfOfTbk71JGZ8krVr7ejiXGuA WQLSifoujCyOlSUeWRUinWPsNgoAAAe3SURBVCIsVdEFgD1H4kETKduqU8o+IfQsfWWASFWPAk+j +l2ce8an031v3L59DvZIXzrMm8uR0tY2j7lX4S3A8nMeYASfCvHtLfhsCt+UJ8xnCE4OEY1NENVO UiVWskEyKpSyiX89C7HIaRCL0CTQFAjrAFDKCkcROQ4ctdCTt\/lTN7J5qHCPFlEKiow54531UnAu ntXoRRiG2Vi1EdQGKo0qpgEhV0DzFtPpVVeKsEzELEdZHgiN0wOHs4nsa0HfpJ9cihPhxLqJnFh2 D4wDOwWeVtVH4pGR3bd3d1\/RRJ7E\/PnQ1rQicptA24XCO5fNoJ0BLpchEwbYvmFkfIK4EiUTFF7J GMiHQtoq1iTVGcPFWm3SwAqBpSQjXZGKRALDICOKDiD0WGyE4aQ1qYHZGEEPrUZkMZBSWIKwSKFN kBYgg5BCCFFChPNOrmuNxJ4kFVd1yWTJhEvEF2fZGzsBDAP7UH0AeCGK455Kd\/dVU1mdN0KrMQ1i uE6VLDqlEXh+iMGnQzRopJxaTtDerOHRfpGTQ+JKVfFeJfZQ9kraJOP2uSApoRt0RtfDrPgtSK3d carMLMn8VgcQIVIhkWhWlDIilVldPqopkovGaDJjl669V1h778nPMe0pcEbwgCmLXIyTvHLkE2LX 6w9NXYBCDOwzqt8Vo4\/7qn9lsFgcOV0qRR+9hPHCXGPeCG3U96rKvwmyUdHl\/IguLKhJGRtL1JDz PjATKsaRSTXY3sFOGS20e6+pqhcmiV12kDJKygjZINmwOicb2BKahUAoyXbc5HP\/WF7OeaatL\/AU 1eRYRK7mcnklcmcW9MyWeWoNLhNG1XzmoInir2UHxx4NbeXw\/pf3lT88awM\/\/5g3QheKw6cac60P Y8ze5OdWmy\/4pCSk9S6bGZcFzRWpRM12aHSljJsNqFuh6DUeSXlPYrElIXXkqY3gQyDUXJJJddT5 OgL1ISFwUqb2mpA2ckm\/cskls34\/TnRaIzLVhiylpjzjzTnjjHm1a+fj+8aHh\/2HryKrPB3zRuhi tVxqzHJAVV9LWjy1fmqJqIqgxoj1zmR89abYyFsjb96D6jKgWSHrFFNSoeTAoKRMIvKdsZC2OpXy M1M\/7sJ5WqkvK3zNBE+ua3O1NFvF1bayOijXyD1bqCpYgwsDonya8oJGxtqaGc1nAi\/ShYi5c3j4 kmVvLgfmjdCf\/Pw\/nVG\/ugj8cMMGIZC9Egb9Fv+8U7kX4XaQjUBDzU81Hqh4Ia71+lqB0CR+QzpI 7geTgeSZ2d0pXESuewam54hn\/j+5nSxNxzUSV2rW2OsZn3lWfsAZpzsmMJUon3HFBU1mrL0pKGfS qSgMjDemqjCIyiXRJrmcuCJK3xeD6\/fuVWD8VFtbsf+argGPGURkByq3qOpNiFxP0n8bqqqJa36L AFWXZENCp7UmqMQtsTW3xEpC8smpL2vkdTe31gtVcDVhkElxcefPFDxinelezCbAm\/EmtXskAxaj wGtqzQ+r2XT\/eC6dL+QzN0RBuE6FJpB+VX0K0d75Pp8Xi6ue0JPoGBryDA0VFV7uvbXrlVOubVdM sFnghmS4VFao6ipUm2rTxjgSEp2R3E62SJ1NaGCK8AgzqpP1wk+5EQmhvU7erxHZ1+7PzeHwwKjA CREOe6\/7Ud1nKpXthQnpPrJ0QUujtTcJrFJoENVh1O\/2sfbM93m8WPzEEHoSAqrbT8TdtzQeS7ng lBGeSYmudsotserdIrJcE5mDJiCPajDdaZ4qDfsZPYu1m8TyBTVSzwaxnvF7p9tP5az\/\/fjwqE6Q EHlM0cNG2Bkavh\/Ffpf3vpiquvLC8YnopZUdpXTU+O3Q8hQBoopPx1F0\/ETpqsk3vx6u8Bj\/4rHz lk0Sxj7jlYbYmLZcKCsqXq6PPD8niQ5FGyJpVAOoLY+qU09hNpjTlMF0vzjRsKiSNLrvN6LPpq3s wemBKHan8mFlvP21vmLr6OhVmbWYLX7iCT0dw5s2mXJIw5Cno+zoQmSpiKxWWCmwmkSkpqlegfJ5 QxJZjgHdwGvAfuCwqh4LvD\/ekran0nZkrOv5I1e9xZ0tfqoIPakee2jlShnO5cRVKhmTzy81IstF ZKXAWoUOEdqBBZr0T7eQKBalJi13Yh9fZ73DbLIg5wkwp29urVUlY0l6K8YERhEGFDkN9Asc9t4f UtVDLoqOl6vVQiaOfVcc63uPHePlqzSXfDH4qSL0hbBnw4ZQwrAtDLk2wq6pOF2lqqtIVEAXIGSB gGSDcHpSDpzkNqBOd2UKiaWNSVwGX4sJSyLJLheUCoklPg70WMORnNE93slRG7uBN+zefeXPjl1m \/MQFhReDTKUSSxAMqfqCqBwSJV3TZg49LDKwPGW0uepYArKUJB2YJuntaIWZK0wSZaxaWlumbZ04 gwgoKPRJInA4bqA7FE44GImV4wInUC2hWlGhEouWHK4y3NP7U+dO1IOfWeg68cKaNblMLteUCjVd iaXROd+o1iYWG7I14s\/wvVU1bUSyiDqgpCpnzy56VJOATiRWqBoYzRlf8LjyRFnHKz09xTvGxq66 nor5ws8IfQnxg7VrU5lMJqthIS71VSq3HTt2VQzjXs2YpdjHzzAbvNLfH0kUjRfsqdKjx45d1T0S Vwv+H9wqfINwUqBvAAAAGXRFWHRDb21tZW50AENyZWF0ZWQgd2l0aCBHSU1QV4EOFwAAACV0RVh0 ZGF0ZTpjcmVhdGUAMjAyNi0wNC0yMVQwNzoxMDo0NSswMDowMIfeyAMAAAAldEVYdGRhdGU6bW9k aWZ5ADIwMjYtMDQtMjFUMDc6MTA6NDUrMDA6MDD2g3C\/AAAAG3RFWHRpY2M6Y29weXJpZ2h0AFB1 YmxpYyBEb21haW62kTFbAAAAInRFWHRpY2M6ZGVzY3JpcHRpb24AR0lNUCBidWlsdC1pbiBzUkdC TGdBEwAAABV0RVh0aWNjOm1hbnVmYWN0dXJlcgBHSU1QTJ6QygAAAA50RVh0aWNjOm1vZGVsAHNS R0JbYElDAAAAAElFTkSuQmCC \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Verification and validation in industrial practice<\/h3><p class=\"project-type\">(Own Funds)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/feigl\">Tobias Feigl<\/a><\/span><br \/><strong>Start date: <\/strong>01.01.2022<br \/><strong>End date: <\/strong>31.12.2024<br \/><strong>Acronym: <\/strong>V&ViP<br \/><strong>URL: <\/strong><a href=\"https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/vvip\/\">https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/vvip\/<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\"><ul><li>Detection of flaky tests based on software version control data and test execution history<\/li><\/ul><p><br \/><\/p><p>Regression tests are carried out often and because of their volume also fully automatically. They are intended to ensure that changes to individual components of a software system do not have any unexpected side effects on the behavior of subsystems that they should not affect. However, even if a test case executes only unmodified code, it can still sometimes succeed and sometimes fail. This so-called \"flaky\" behavior can have different reasons, including race conditions due to concurrent execution or temporarily unavailable resources (e.g., network or databases). Flaky tests are a nuisance to the testing process in every respect, because they slow down or even interrupt the entire test execution and they undermine the confidence in the test results: if a test run is successful, it cannot necessarily be concluded that the program is really error-free, and if the test fails, expensive resources may have to be invested to reproduce and possibly fix the problem.<\/p><p>The easiest way to detect test flakyness is to repeatedly run test cases on the identical code base until the test result changes or there is a reasonable statistical confidence that the test is non-flaky. However, this is rarely possible in an industrial environment, as integration or system tests can be extremely time-consuming and resource-demanding, e.g., because they require the availability of special test hardware. For this reason, it is desirable to classify test cases with regard to their flakyness without repeated re-execution, but instead to only use the information already available from the preceding development and test phases.<\/p><p>In 2022, we implemented and compare various so-called black box methods for detecting test flakyness and evaluated them in a real industrial test process with 200 test cases. We classify test cases exclusively on the basis of generally available information from version control systems and test execution tools, i.e., in particular without an extensive analysis of the code base and without monitoring of the test coverage, which would in most cases be impossible for embedded systems anyway. From the 122 available indicators (including the test execution time, the number of lines of code, or the number of changed lines of code in the last 3, 14, and 54 days) we extracted different subsets and examined their suitability for detecting test flakyness using different techniques. The methods applied on the feature subsets include rule-based methods (e.g., \"a test is flaky if it has failed at least five times within the observation window, but not five times in a row\"), empirical evaluations (including the computation of the cumulative weighted \"flip rate\", i.e., the frequency of alternating between test success and failure) as well as various methods from the domain of machine learning (e.g., classification trees, random forest, or multi-layer perceptrons). By using AI-based classifiers together with the SHAP approach for explaining AI models we determined the four most important indicators (\"features\") for detecting test flakyness in the industrial environment under consideration. The so-called \"gradient boosting\" with the complete set of indicators has proven to be optimal (with an F1-score of 96.5%). The same method with only four selected features achieved just marginally lower accuracy and recall values (with almost the same F1 score).<\/p><p><br \/><\/p><ul><li>Synergies of a-priori and a-posteriori analysis methods to explain artificial intelligence<\/li><\/ul><p><br \/><\/p><p>Artificial intelligence is rapidly conquering more domains of everyday life and machines make more critical decisions: braking or evasive maneuvers in autonomous driving, credit(un)worthiness of individuals or companies, diagnosis of diseases from various examination results (e.g., cancer detection from CT\/MRT scans), and many more. In order for such a system to receive trust in a real-life productive setting, it must be ensured and proven that the learned decision rules are correct and reflect reality. The training of a machine model itself is a very resource-intensive process and the quality of the result can usually only be quantified afterwards with extremely great effort and well-founded specialist knowledge. The success and quality of the learned model not only depends on the choice of a particular AI method, but is also strongly influenced by the magnitude and quality of the training data.<\/p><p>In 2022, we therefore examined which qualitative and quantitative properties an input set must have (\"a priori evaluation\") in order to achieve a good AI model (\"a posteriori evaluation\"). For this purpose, we compared various evaluation criteria from the literature and we defined four basic indicators based on them: representativeness, freedom from redundancy, completeness, and correctness. The associated metrics allow a quantitative evaluation of the training data in advance of preparing the model. To investigate the impact of poor training data on an AI model, we experimented with the so-called \"dSprites\" dataset, a popular generator for image files used in the evaluation of image resp. pattern recognition methods. This way, we generated different training data sets that differ in exactly one of the four basic indicators and have quantitatively different \"a priori quality\". We used all of them to train two different AI models: Random Forest and Convolutional Neural Networks. Finally, we quantitatively evaluated the quality of the classification by the respective model using the usual statistical measures (accuracy, precision, recall, F1-score). In addition, we used SHAP (a method for explaining AI models) to determine the reasons for any misclassification in cases of poor data quality. As expected, the model quality highly correlates with the training data quality: the better the latter is with regard to the four basic indicators, the more precise is the classification of unknown data by the trained models. However, a noteworthy discovery has emerged while experimenting with the lack of redundancy: If a trained model is evaluated with completely new\/unknown inputs, the accuracy of the classification is sometimes significantly worse than if the available input data is split into a training and an evaluation data set: In the latter case, the a posteriori evaluation of the trained AI system misleadingly suggests a higher model quality.<\/p><p><br \/><\/p><ul><li>Few-Shot Out-of-Domain Detection in Natural Language Processing Applications<\/li><\/ul><p><br \/><\/p><p>Natural language processing (NLP for short) using artificial intelligence has many areas of application, e.g., telephone or written dialogue systems (so-called chat bots) that provide cinema information, book a ticket, take sick leave, or answer various questions arising during certain industrial processes. Such chat bots are often also involved in social media, e.g., to recognize critical statements and to moderate them if necessary. With increasing progress in the field of artificial intelligence in general and NLP in particular, self-learning models are spreading that dynamically (and therefore mostly unsupervised) supplement their technical and linguistic knowledge from concrete practical use. But such approaches are susceptible to intentional or unintentional malicious disguise. Examples from industrial practice have shown that chat bots quickly \"learn\" for instance racist statements in social networks and then make dangerous extremist statements. It is therefore of central importance that NLP-based models are able to distinguish between valid \"In-Domain (ID)\" and invalid \"Out-Of-Domain (OOD)\" data (i.e., both inputs and outputs). However, the developers of an NLP system need an immense amount of ID and OOD training data for the initial training of the AI model. While the former are already difficult to find in sufficient quantities, the a priori choice of the latter is usually hardly possible in a meaningful way.<\/p><p>In 2022, we therefore examined and compared different approaches to OOD detection that work with little to no training data at all (hence called \"few-shot\"). The currently best and most widespread, transformer-based and pre-trained language model RoBERTa served as the basis for the experimental evaluation. To improve the OOD detection, we applied \"fine-tuning\" and examined how reliable the adaptation of a pre-trained model to a specific domain can be done. In addition, we implemented various scoring methods and evaluated them to determine threshold values for the classification of ID and OOD data. To solve the problem of missing training data, we also evaluated a technique called \"data augmentation\": with little effort GPT3 (\"Generative Pretrained Transformer 3\", an autoregressive language model that uses deep learning to generate human-like text) can generate additional and safe ID and OOD data to train and evaluate NLP models.<\/p><p><br \/><\/p><ul><li>Application of weighted combinatorics in the generation and selection of parameters and their representatives in software testing<\/li><\/ul><p><br \/>Some functional testing methods (so-called black box tests), such as the equivalence class testing or boundary value analysis, focus on individual parameters. For these parameters, they determine representatives (values or classes of values) to be considered in the test. Since not just a single parameter but several parameters are usually required to perform such tests, representatives of several parameters must be combined with each other to be used for test execution. Well-understood combinatorial methods such as \"All Combinations\", \"Pair-wise\" or \"Each choice\" are usually used for this purpose. They do not take into account information about weights (attributes such as importance or priority) of the parameters and equivalence class representatives, which would affect the number of associated test cases (e.g. due to importance) or their recommended order (in terms of prioritization). In addition, in the case of the equivalence class method, there are scenarios in which a combination of several invalid classes in a single test case could optionally be explicitly desired, completely undesirable or limited to a certain number in order to specifically test fault combinations on the one hand, but also to simplify fault localization on the other. There is reason to believe that by considering such weights and options, more targeted and ultimately more efficient test cases can be derived.<br \/><br \/>In 2023, we evaluated and compared known combinatorial approaches that take into account weights when combining parameters or their values. Based on this, we developed a novel approach to generate and select parameters and their representatives in software testing. The proposed method uses a weighting system to prioritize the individual parameters, their equivalence classes and concrete representatives, in a set of test cases. If necessary, their interactions can also be specifically weighted in order to allow certain combinations to occur more frequently in the generated test cases. To evaluate the approach, we defined a suitable prototype data structure that represents the various weightings. We then implemented evaluation functions for existing sets of test cases in order to quantitatively determine how well such a test case set satisfies the specified combinatorics. In a further step, we used these evaluation functions in combination with various systematic methods and heuristics (SAT solver Z3, simulated annealing, and genetic algorithms) to generate new test cases that match the weighting or to optimize existing sets by adding missing test cases. Simulated Annealing was the fastest and gave the best results in the test series. Although the SAT-approach worked well for small problems, it was no longer practical for larger test cases due to exorbitant runtimes.<br \/><\/p><\/p><h3>External Partners: <\/h3><ul><li>BMW AG - Bayerische Motoren Werke \/ BMW Group<\/li><\/ul><h4>Publications: <\/h4><ul class=\"cris-publications \" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Gruber M.<\/span>, <span class=\"author\" itemprop=\"author\">Heine M.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Oster N.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Fraser G.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/287982136?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Practical Flaky Test Prediction using Common Code Evolution and Test History Data [replication package]<\/a><\/strong><\/span><span aria-hidden=\"true\" tabindex=\"-1\" class=\"oa-icon\" title=\"Open-Access-Publikation\"><\/span><br \/> <span itemprop=\"isPartOf\" itemscope itemtype=\"http:\/\/schema.org\/PublicationVolume\"><link itemprop=\"isPartOf\" href=\"#periodical_287982136\" \/><span itemprop=\"volumeNumber\">figshare<\/span><\/span>  (<span itemprop=\"datePublished\">2023<\/span>)<\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.6084\/m9.figshare.21363075' target='blank' itemprop=\"sameAs\">10.6084\/m9.figshare.21363075<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/287982136.bib\">Download<\/a><\/li><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\">Gruber M.<\/span>, <span class=\"author\" itemprop=\"author\">Heine M.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Oster N.<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Philippsen M.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Fraser G.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/306952315?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Practical Flaky Test Prediction using Common Code Evolution and Test History Data<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">16th IEEE International Conference on Software Testing, Verification and Validation, ICST 2023<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Dublin<\/span><\/span>, <span itemprop=\"startDate\" content=\"2023-04-16\">16.04.2023<\/span> - <span itemprop=\"endDate\" content=\"2023-04-20\">20.04.2023<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">IEEE (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Proceedings - 2023 IEEE 16th International Conference on Software Testing, Verification and Validation, ICST 2023<\/span> <span itemprop=\"datePublished\">2023<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1109\/ICST57152.2023.00028' target='blank' itemprop=\"sameAs\">10.1109\/ICST57152.2023.00028<\/a><br \/>BibTeX: <a href=\"https:\/\/cris.fau.de\/bibtex\/publication\/306952315.bib\">Download<\/a><\/li><\/ul><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<div class=\"wp-block-rrze-elements-collapse \"><div class=\"accordion-group \"><h2 class=\"accordion-heading\"><button class=\"accordion-toggle\" data-toggle=\"collapse\" data-name=\"wemucs\" data-href=\"#wemucs\" type=\"button\" aria-expanded=\"false\" aria-controls=\"wemucs-section\" id=\"wemucs\">WEMUCS &#8211; Methoden und Werkzeuge zur iterativen Entwicklung und Optimierung von Software f\u00fcr eingebettete Multicore-Systeme<\/button><\/h2><div id=\"wemucs-section\" class=\"accordion-body \" aria-labelledby=\"wemucs\" role=\"region\" name=\"wemucs\"><div class=\"accordion-inner clearfix\">\n\n<div class=\"wp-block-table-wrapper\"><figure class=\"wp-block-table\"><table><tbody><tr><td><figure><img decoding=\"async\" style=\"border: 2px solid #ffffff\" src=\"\/files\/2020\/03\/WEMUCS_small_image.png\" alt=\"\"><\/figure><\/td><td><div class=\"cris-projects\"><div class=\"cris-image\"><p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"data:image\/PNG;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAABGdBTUEAALGPC\/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA\/wD\/AP+gvaeTAAAA CXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH6gQVBx0sIbeFUwAAEdBJREFUeNrtnXlwVtd5xh\/t u\/i0gNjNYgSIVWyGAEYGOxnsGMdbumTaSWaaZGq38V+dZqZjZ9rEndaddLpkJmM3mbSJ6ySTOvFu 44ANBouIfQuLwIhVgNC+7+ofz\/vq873ShwRe8Hx5fv98fFf3nnPuud95znve9z0XQAghhBBCCCGE EEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBC CCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEOLTJmFgYGAA ALq6e\/zQrW6TEDdMSkoSACDxVjdEiI+TZP\/HY\/\/0PAAgPTX5pgsT4tOmt68fAPA3f74RgBRaxBmD cpyZngYASDNb5KMyYJ\/xZpF\/1u\/LlkRITKRWJSfxs6+fSuaKlphw\/Tvot3JSk4O\/hx673jsiXEyK nZ\/gPWQf3T29gfNSU4KWgBfT3dtr94FA+xMTgtrr5w3eTyJLkEKLuOJDw4RDIjcrHQDw1DceAAD8 euteAMDOQ6cBxB7Zfvyfn3gUAHD41AUAwE9eeZ8VJQ0\/dvr7We\/3Hn8QANDd0wcAePKHvwEA3D55 HADgiT+9Z1Q39NyL2wAAleevBo4\/+fVNAIAx2RkAgGdffBcAcOp8zajK7TKF+e5ffgkAEMnJAgD8 \/XMvAwBa2joD53\/57uUAgBULZgAA\/vX5twAA1dearltPminX03\/1MADg6OlLAID\/fnXnda9LNmV8 eP1SAMDyedOHPa+2sQUA8MvNuwEAZy5dAwAk2PPLyeTzf\/yPNgAACiPZgetdEf36AyfPAYg+\/6cf f4jfE4PP+4l\/ecGO87zvfIPPIy01JXDe0z9+DQBwrYHt\/LP7VgEAFhVPDZz3nWdfAgA0tXQEjkuh RVzxIYXmyGnr6AYQVc6NqxcCAN47UAkASEwK2lRuUy6YNZml2Ej1EZWa8rtAeWHclnIb\/p09h3g8 eXhbvqa+GQDQ3BpUxORkjs2Oru7h6wmVt3ZJMQDg2JnLAKK2XyxmTy0CEFVmJ90UJqzQAwje78AA RsXAkO\/Xv3DWFM5g33zkrsDxQ5WcIU+e4\/1NKIgAAJbOvQ0AsKxkGgDg9AXOUEUFOQCAb3\/tvkB7 t\/zu9wCARJthFxdPAQCUzuHn\/hNUaDeC+\/rdhg81NDSxx\/o9hDsq9nnDH5ZCi7hiiNO511bDByvP AwCWzOGILsofAwCoa2odtqCHNywDEFWqHLPF58+cBAA4fOrisNd9ce3CwPdjZ6oBRJU+zNaKYwCA PcfO2nnBv4ev8+9JIRu+ZPqkQDs7u3owHO41uGfV\/GH\/npGeevO9\/xFwL8LXHyoDEJ2Zvvtfr\/J+ LPI76G0wSXtp234AQ70Mdy6ZDSDqDfm7H7wIAOjp7Quc99oOn0GTrX8\/XDpw6WoDgOiMmWRS7e3w z6rqWpZjM5yvsdxG93Lrmvl7u3i1PlBRLOWWQou4YohC+3j2kegKPXPyWADRVbIrX2YaR1imKdVP X6NX49F7lgeud1sr2WxwH4HLbDXuynC5thFAdGQPaZ9dmJDoI\/76JISuO2Qzj9v4ZUupTG+VHx32 eleMWWZDn71EZZk2qRAAkJGWglvBNx9ZByDqNfjJy\/SCuL93qDcq+N2V13XOI8TeT1GlTBi2lN6+ oHL7TPZvP\/9tqF4eTw6tvZ41b1QY99b48399x2EAwGvvHQqelzT8mkcKLeKKmIkbjc1tAID2Ttpm 65bNAQDsOHgKQNRrcNuEgsB17v+9cIU2z\/zb6f0Ijyj\/7n7XzbuokAkjaa79eXAkhhRkIOxOSAie 1tDcDgA4Ze1cMY9+4pe3HWB7Qn7Re9csYH1WwI6D9Pa4Qmemfbo2tN\/t5CLvd97vyXNXAIzsrQnj tuuuwx8AAJbMnQYA+Efzg7\/5PhXyvf2V1r+8zmeGwXZZ\/zyygX5wV1g\/7xdv77b28\/tX7l0JIGqL +xrn\/7Yw7uFrsdWLZgEApo7PD9T38nY+r96OoFdLCi3iipgK7ZGe81fqAABzpk0AABSMoR+20SI0 m9aVAohG+Dyveot5I4pvGw8AWLlgJgBg12FGHOdaeT6y9x2ziFPi9RX6j79wR+AzzI9feg8AcLzq sh1JCNTT1Mp2+yr7a5vWAABKZkwEAHxwkZEzV6LVi+mvPm2KfqmmIVBfZsan7OWw+0i2frpS1\/yx FHv6Iv3RvgZ6oGzJsJ\/v7DkOAHhj5+Fgs+zzDnvO4Znihc0VAAB\/vAtmcuYOe4lesZnSc0l87VZq azHn9VD9jhRaxBUjJj+\/uv0ggKhCl5p3YJ95Lcbl5wIAtlQwouTuwWNV9Ce7DV46h9ftsIjj\/esW B+ppamsfVYP3Hz8LADhvNrorltu4l2uDuRIJYYVu67By2P6vbKQtt3EN\/eH\/+fMtAIDcLOZ8ZGcw grllN2ecPs82M7Iz0mO09JPNx4t6J2jzD4w2FBkDt3k9XrDn9+znBbPor7\/XIsbrl88FAMyYROX8 9xfo1UgMeSdiNti6JSlGbg9ixBFGixRaxBUjKrQrYUs7V52LZlNpaxqCEcO3d1GhfTy598Kz7tyG dsXLy6Utvsuy+Eabp1t5jrbsHlPqkcavO1e83Da7D9+D9u7eEwCAz6+cByCaO\/HV+1cHyjljtnVa aEePRxrD9IYibOHIXCzC5YfziF2J\/XgkJxMAkJXJfu3p6Rupihtqh\/f30dNvAgAee3Q9AGDOdM7Y nuPhNu\/f\/sevQu3lZ9imfsqyKR1\/jp5v7d6Xn71RDgD46evlgfNjZn1+LHcvxGeEEWUj1ZTMI2Tz LatuWQlXna7c\/SEbzm2f3UfPAIgq9KayxYHzfmu290jKfLNkhPzEXd3BSNoea98XLFfjgXVczU+d QD\/zW+VHAERnkIHuoGLGUuhTF6lsq0vpRy21me1sdZ31z\/DtXWp+YKfK8pXDvLOHNv39d9LLtPFz 9Je\/ZF6CG+1Pf16xbHFX2HqLT4SP+4zkEeNw7S3tXYH7Th7c2RKk1xZh3o60kJ\/a6YiReyOFFnHF iArtI3f7\/pMAonnP7hd0BY7FKcu3be\/kCL1jPpXacwlabeSOFrftslx5Q0rkfnDPDXGb3Qlnj11r 5FqgqppKuNYU1YvddYQRNPePh6\/PjJFt516UB++i4q8ppT\/bvSxbK+jPdSXyiOoX1y4CAHSYd8gj dGEb\/N29fB7LLdLp2XJTxzOC+CPzx7dbJM0juysXsv8z0ukdefN9RmjXL58TaMfzb+wCADRaZHXi 2Ejg+mbz57d38PmlW07Lk39xP4CoAjvfeuZ\/AUSV1nespCQH7+sfnnsFANBgM8Gmu5nF6TO8TyBP \/fDXAKLK70ihRVwx6pdwnKxiroArlNtObrPFwpVh+z4qzcbVtPU8Atk\/gv80bAo+aHvm\/DPMj36z HQBw3No7xrwATm\/Ij+z38eZO2sqPfZmreJ9RfAbxZvT3j84P7Yr6\/ec3AwC+\/dV7AQD3raECu183 nBvhO4ae+Z83AuWEcRv5+z9j+V8qoy29ejFnmO899tB1+\/V1y6b0\/vXIr\/uXn7I9mGF8RvnBL7de t30jc3NrppGWBlJoEVcMvtvur5\/hrtxY7+VwHY3Yrmm3kWobgvnRsXC\/75hsKmaL2ZJdIa9BGM\/K i+RmXvc8r913Aft7Gzx7zr0R9U20zcJK64pXYLucXaHbQtlcrlCFebmBchpCq\/8h\/WcdOL6QO38i OezHAWtGYytt1at1TaPqzzC+ly\/LbPrCPO4R9Bmy0\/zWDbbjqM1s9MSQd8P7y3d7eyTSd8B4JHYg hlfL88t9xvHjnk3p9flaJTGUlVd+iGsWXwt5LtAE6zen3OIXnfb7+daf3M1ybqjXhPiMM2qFFmI0 xNzrF8qijLV2SoyR3z4Q4zxfE0mhRVwyuEQttj1zN7rjQYhbia9hfG+nFFrEFYM2dLzT28NVfXLK je0w6enmdSmpt+b9G1HMljRFSkj8hGdS\/1l8Qjk2nxRSaBFXDAnzHD\/KCFJSZh4AoHgGs8SqTjN3 oKWTkcKF80uGLbCpnjkRSWn0G1++zIhdfoR+26ycCIBo7N8niLDfdbTvYY51vXPmFPOdu\/r495qr 3EmzdBl3qmTbzpRwOe3NjQCA6mvMB2+1HTWLFw7\/BqWbbd9ozzu4tyLQry0t3Es4cxZzMIrGFt5Q u4bW7\/3Nf7y9ZRsA4PP33HVD9zHSfcV83qPtp37+\/uotx6QgkhP4uxRaxBVDFDolhcp54SwjMa7Q 3aZwHkmqPMFsseI53GO2Yzvft7xwARWssY7506dP8T0e8+dxR0iGDai9FXwraVcPI0Kly1YAAI4d 4QzR2cVI3cLFzNk4tJfn94G249TJ3DFxpYb1TJjIvW\/TpwV3B9fWcsaYt5DlzC4ORqhOnmBecX0j FW\/iZF5\/8QxzT1wRm5qo1LvaGBFctYq7zrdtZU5D2QbmgJw8XQUAaK5nu3rs\/iZPY1ZcRyNzWC7X sbySYmaRVZ3lzp5I\/lhr58zgczEbft6C4LsAd5ZzJ4dHLneWs59SkvmcShex3xNSOBP1djCy22Hp xOftOXvEdslSZrclWxZcRxvPP3D4qP0+mL1YMpvtO3CE\/dffy7XGmrV3AgAqKioCx1PSuUOpp5OR 3BWrPgcAOHH0IIBo5Lh4Dmf+mmrubWxtbbPnzt9fUWEEAHDO8s3Lylif67oUWsQVMVOl5ppCdHdx R0p+HmPptfWNAICR1th5hXxv8fQZVFqPQHa0c8QVTKQSTp9Cpe3u4PEJppCTJtAvvmc3R7rndKxd y3e6bdvOrLqicaznwgW+sy6s0CtWrQUAtLZQaQ7u55t5Jk2dxnp76DVYtZI2dUU53xFXUkLbNDOX b+w5dowz0oypbO+Zs8x3zisqCvTTbVOYT9xsWX4XL1Jp6k2Rs9J4H2V3Ulne2vw2AGCKXXfuHPPL wwodE8sFOXmSM0phAfOhu0wJu\/tZX1WlKXEL3ysyaxZnqk67\/9wc5m7s2x98h9yevfvY7+vKAACX L\/C+r9bxdzBowxdwhrhQzfz39AyWV7qIM\/bRo9yZNG327QCAGlubNLaw3wryuWarrGQuR569\/2WF PZfDh\/jW1Okz2e5IId+jEra4pdAirhii0O5dGD+JtnP5LtpoK5bTxr1mCh2OxfvOhTCDq9bBvWSs svYabUxX6GsNzOLynRoYsLdjJqZauzrDJQMA5s6lDZ9UWTls\/e9s5Xsj1m\/g\/9GyYD4V44opRE9P MJuuze9jcLXte9z4bYzZuBV7qayuXDvfp7KvX09butqy9BYtZP73wSNU+IT0YP50chLrKSkpCT6A EejpogJHTJGTE9hfE6dS2d1Wzsyk7dzfwTVCTj5ntFzbdR+JmDdr5jQAQNV5\/p8uFy\/wM8vyvf19 JM020+WPZRZcfTOf27gIZ6Qc+x8OGm0NEX1cQS0dzNkwf7rf\/wdVZwEAXR3B\/ztl8Afk3pgY7\/+Q Qou4YkiksK2VIzArm+6I2lquygsLqQQt9vc0W3XXmW2Ybnv8snN4XUKC7RK2kZqVZfm1GVSMdivH \/bvjx1Opm5sa+fdOKvL4IipBYwPbkZdvNqLZrF5\/JI9Kk2nlO319XL1fucJVcbJ5ccaZ7d3Zzvob m6g0BYVjrWOoeEnmLWhsoO2ZaffRaTZqJBIBANTUXLNyx9p3r4\/9kpLku5cTAuX09dLdcNW8Nbm5 tEWzs4P\/l0tzE+v3GSzRlM2fiwve1ausN9HqG1tI\/3RvD2eeftOwVOuHpkYvtyvQL3X1PD62ID9Q bloGlTjR+ueKvc\/bdwYV2ZqiqZnPd0wufw8t9j3DZgzP3+7t7rLzOYMUjmX9vgbIsd9Ts80Eublc y1Vf4gzi3q1BwYcQccQfTC6H+Hhxr46\/qCkrM\/0jlPbxIYUWQgghhBBCCCGEEEIIIYQQQgghhBBC CCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQggh hBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEOIj8f\/zrOWdcq\/w3gAAABl0RVh0 Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjYtMDQt MjFUMDc6Mjk6NDQrMDA6MDBEXo58AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI2LTA0LTIxVDA3OjI5 OjQ0KzAwOjAwNQM2wAAAAABJRU5ErkJggg== \"><br \/><span class=\"wp-caption-text\"><\/span><\/p><\/div><h3>Techniques and tools for iterative development and optimization of software for embedded multicore systems<\/h3><p class=\"project-type\">(Third Party Funds Single)<\/p><p class=\"project-details\"><br \/><strong>Project leader: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/philippsen\">Michael Philippsen<\/a><\/span><br \/><strong>Project members: <\/strong><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/oster\">Norbert Oster<\/a><\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/ronald-veldema\">Ronald Veldema<\/a><\/span><br \/><strong>Start date: <\/strong>15.10.2012<br \/><strong>End date: <\/strong>30.11.2014<br \/><strong>Acronym: <\/strong>WEMUCS<br \/><strong>Funding source: <\/strong>Bayerisches Staatsministerium f\u00fcr Wirtschaft, Infrastruktur, Verkehr und Technologie (StMWIVT) (bis 09\/2013)<br \/><strong>URL: <\/strong><a href=\"https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/#wemucs\">https:\/\/www.ps.tf.fau.de\/forschung\/forschungsprojekte\/#wemucs<\/a><\/p><h4>Abstract: <\/h4><p class=\"project-description\">Multicore processors are of rising importance in embedded systems as these processors offer high performance while maintaining low power consumption. Developing parallel software for these platforms poses new challenges for many industrial sectors because established tools and software libraries are not multicore enabled. The efficient development, optimization and testing of multicore-software is still open research, especially for reliable real-time embedded systems.<br \/><br \/>In the multi-partner project \"WEMUCS\" [http:\/\/www.multicore-tools.de\/] new methods and tools for efficient iterative development, optimization, and testing of multicore software have been created over the past two years. Innovative tools and technologies for modeling, simulation, visualization, tracing, and testing have been developed and integrated into a single tool chain. Using case studies from different industries (automotive, telecommunications, industry automation) these tools were evaluated and improved.<br \/><br \/>Although several well-known methods for test case generation and best practice coverage measures for classical single-core applications exist, no such methods for multi-core software have established themselves yet. Unfortunately, it is the interaction of concurrent threads that can cause faults that cannot be discovered by testing the individual threads in isolation. As part of the WEMUCS project (more precisely: work package AP3 [http:\/\/www.multicore-tools.de\/de\/test.html]) and based on an industrial size case study, we developed a generic technique (called a \"testing pipeline\" below) that systematically creates test cases to find and analyze the impact of concurrent side effects.<br \/><br \/>To evaluate the new testing pipeline (including the automated parallelization of sequential code) on real world examples, our project partner Siemens created a complete model of a large luggage conveyor belt, including the code to control the belt. Such a luggage conveyor can be found at every airport. The case study's model is used to automatically derive luggage conveyor belt systems of different sizes, i.e., built from an arbitrary number of feeder or outlet belts. The hardware of the conveyor belt is emulated on the SIMIT simulation tool from Siemens and the control software (written in the programming language AWL) runs on a software-based PLC.<br \/><br \/>The first step of the testing pipeline converts the AWL code into a more comprehensible and human-readable programming language called HLL. We have completed this converter during this reporting period. In step two, our tool then transforms previously sequential parts of the AWL code into HLL units that are executed in parallel. When applied to a luggage conveyor belt system built from eight feeders, eight outlets and an inteconnecting circular belt of straight and curved segments, our tool automatically transcoded 11.704 lines of sequential AWL code into 34 KB of parallel HLL code.<br \/><br \/>In step three another tool developed by the chair then analyzes the HLL code and automatically generates a testing model. This model represents the interprocedural control flow of the concurrent subroutines and also holds all the thread switches that might be relevant for testing. The testing model consists of a set of hierarchically organized UML activities (currently encoded as an XMI document that can be imported into Enterprise Architect by Sparx Systems). When applied to the case study outlined above, our tool automatically generates 103 UML activity diagrams (with 1,302 nodes and 2,581 edges).<br \/><br \/>Step four is optional. The tester can manually adapt the testing model as needed (e.g. by changing priorities or inserting additional verification points). Then the completed model can be loaded into the MBTsuite tool, a model-based testing tool developed by our project partner sepp.med GmbH. This tool is highly configurable to generate test cases that cover as many parts of the testing model as possible. We ran MBTsuite on a standard PC and applied it to the testing model of our case study; within six minutes MBTSuite generated a highly optimized test set consisting of only 10 test cases that nevertheless cover 99% of the nodes and 78% of the edges.<br \/><br \/>In cooperation with our project partner sepp.med GmbH we built two export modules for the above-mentioned MBTsuite. One module outputs the generated test cases as a human-readable spreadsheet, the other module outputs an executable test set in the Java language. The exported spreadsheet contains one individual sheet per test case, with one column per thread. The rows visualize the thread interleaving that gets tested. The Java file holds a Java class with a test method per test case. Every method holds a sequence of test steps that discretely control thread interleavings. This way, each test case execution leads to a unique and reproducible execution of the parallel System Under Test (SUT) written in HLL. Each run of a test instructs our HLL emulator to load and initialize the SUT and each subsequent test step instructs the HLL emulator to execute a certain set of instructions from a certain thread. During this fully controlled execution, each test case emits a detailed protocol of its execution for the final visualization step.<br \/><br \/>A plug-in from sepp.med that creates a visualization layer in Enterprise Architect's UML editor visualizes the resulting log file. Colored nodes and edges tell the user which control flow paths a test has covered. If a test case \"fails\" (if a race condition or a logic error is found in the tested program), its graphical trace ends at the failing statement. The tester can then follow the control flow back in time in order to understand the underlying reason for the failure.<br \/><br \/>We have implemented a prototype of the full testing pipeline and demonstrated its applicability to an industrial size case study. This tool is a major contribution to testing concurrent code for embedded systems. It is a contribution of the Programming Systems Group to the \"ESI initiative\" [http:\/\/www.esi-anwendungszentrum.de].<\/p><\/div><\/td><\/tr><\/tbody><\/table><\/figure><\/div>\n\n<\/div><\/div><\/div><\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Ongoing Research Projects Completed Research Projects<\/p>\n","protected":false},"author":4991,"featured_media":11276,"parent":10074,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_rrze_cache":"disabled","_access_permission":"","_rrze_multilang_single_locale":"en_US","_rrze_multilang_single_source":"https:\/\/www.ps.tf.fau.de\/?page_id=9614","footnotes":""},"page_category":[49],"page_tag":[],"workflow_usergroup":[],"class_list":["post-10131","page","type-page","status-publish","has-post-thumbnail","hentry","page_category-general","en-US"],"_links":{"self":[{"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/pages\/10131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/users\/4991"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/comments?post=10131"}],"version-history":[{"count":9,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/pages\/10131\/revisions"}],"predecessor-version":[{"id":11278,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/pages\/10131\/revisions\/11278"}],"up":[{"embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/pages\/10074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/media\/11276"}],"wp:attachment":[{"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/media?parent=10131"}],"wp:term":[{"taxonomy":"page_category","embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/page_category?post=10131"},{"taxonomy":"page_tag","embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/page_tag?post=10131"},{"taxonomy":"workflow_usergroup","embeddable":true,"href":"https:\/\/www.ps.tf.fau.de\/wp-json\/wp\/v2\/workflow_usergroup?post=10131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}