# letao **Repository Path**: MagicWingMI/letao ## Basic Information - **Project Name**: letao - **Description**: 一个全端的,Web层基于mui,服务层基于Node.js,,数据层基于MySQL开发的手机端手机鞋品网上商城,模块化的构建,高效的AJAX接口,一个大开眼界的学习项目 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 电商项目 >**学习式项目** > >1.包含主流电商业务逻辑的移动端项目 >2.学习的主要目标是掌握移动端应用开发 > >**[直接看项目环境搭建](#dajian)** ### 项目准备 #### 项目介绍 ​ 乐淘网站是中国主要的运动鞋、皮鞋网络零售网站,聚焦在垂直的鞋及其相关商品领域深耕。 ​ 凭借雄厚的资金实力和在电子商务业界的诚信积累,与Nike、Adidas、Converse、NewBalance等国际大牌深度合作。 ​ 保证了产品与专卖店同步更新,让您不出家门能最快速度买到当季新款名牌鞋。 #### 功能介绍 | 平台 | 模块 | 功能 | |:------:|:-----:|:-----:| |移动端web端|首页|静态展示页面模块| |移动端web端|分类|一级分类、二级分类| |移动端web端|商品|搜索中心、商品列表、商品详情| |移动端web端|购物车|购物车管理| |移动端web端|用户|登录、注册、账户管理| |移动端web端|收货地址|展示、添加、编辑、删除| |-|-|-| |pc端后台管理|登录|管理员登录| |pc端后台管理|用户管理|用户权限管理| |pc端后台管理|分类管理|一级分类、二级分类管理| |pc端后台管理|商品管理|商品录入、删除、修改、展示| #### 项目架构 | 系统分层 | 使用技术 | |------:|:----| |数据层:|MYSQL| |服务层:|NodeJs(express)| |前端展示:|mobile web application,pc management system| #### 开发模式 - 前后分离: + 一种是前端先写一个静态页面,写好后,让后端去套模板。 静态页面可以本地开发,也无需考虑业务逻辑只需要实现页面即可。 不足是还需要后端套模板,这些前端代码后端需要浏览一遍,以免出错。 + 另一种协作模式是,前端直接去写模板。 这样做的问题在于,前端编写过程中很依赖与后端环境,需要依赖后台提供的接口。 这种模式可认为是**前后分离模式**,也是**接口化开发**。 ![前后分离](data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAEBCAYAAAA3ndFoAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH3woVERkJ/fNjrQAAXclJREFUeNrtvXecZUd5p/9UnXBzx8lZmpFGQqOAMlkICRmJZDDJBmNwWmyDF3Zh7cWBdVgc1+Fnew0YY2CNwYARORtJiKCIchyNZiSNJvR0vPGkqt8f55zbt7tvd9+e6Z6+d1SPPpruvifcOnWq6lv11ltvCa21xmAwGAyGVUaudgIMBoPBYAAjSAaDwWDoEowgGQwGg6ErMIJkMBgMhq7ACJLBYDAYugIjSAaDwWDoCowgGQwGg6ErsFc7AScLjVlu9YzDvPLuRKx2Alby0cScYncKP+6yc8oJkkYTL/WNJUgAQgiEKRbPPMwrN5xkpludGJF8ptrEH2hfPMX0v2L2kVO/QItej9TQOvJZ6IUprahHHtWwTiPymj2ZSb9CpCOEEMfdo9ZoSk6BjHRQM9IDWmuEEBSdAo6wZhXY1c761nTEv9ejBo3In05/mys0IBHUI49a2Gh/4qyLQhVRDWso9IpXLIEg1BGVsEak1Qm9266mG9un+fJZaNDgSpu8nUMKwVJbHg3YQpK3ctjSoqOmS8R10JE2JSffdgQz//dpHGlRsPNYQibfN7uwx38LBHk7ixQrOwuykKXnVBCsnh0hpS+m9SVEWrGv8iRH6qOMepOMNMYZ9SYph3W8yKMR+VSjOo3IT67TTPnVaUE6gbQU7QKutFFaI9IyKwRaa6QQFOy4EnU3gkbkUQ+9lrzVc+qgBqQQeJFHLfQ6ahhDHVEN6yfFdCoQRMn3RVovqpe9SLd0aWanp12aWvM/FqRsIgxLT70lLApWFqvZuVscrTW2tCkmgrS4EibjGhELYMHJYyEXFYOclcG13On7N8XQoZCIVSqiWcslZ2URQpCxnFikE1HLWC5ZmSFrObjSYcDtI29nKdn5BQVPo5t9y14Vp54TJJ38m2b4/spBfjhyNw9NHeBIY5SDtSOMepNM+BXG/UmqYaM5SoHpRlZpQGhsYTXvq7TqKA3TdxKkOhZpFX9P8pmYUXA0kVYzKkJ83mr6lKRmhJm9PSlmpSsxf6rEFDrdEGqkkMg2Qq60RjNTCAQCKeSSxEEkFVodxyBeQFx5m52DVczq5aSlk95peT1ZCCFmjkZnq1SiBQunOz6xXVmZNn+pGV8hkCzWn9RaN0fnIm6xO0N3LptxuVdJukSzbqTf3Wy9NLiWS9ZyEQhcaZO1MkghyFoZXBkLUcZycIRNySmQtTIU7Cx5O0vRyjOc7Wc4M8D67BBrMgOcVtxCv1uc8VztOu3dTs+a7B6Y3MdnD3ybn4w9xKNTB3iqfpRIKaykMRVCIIkbJFtYFOwcRTtPzsrEL9h2my9Ko3GETZ9TTCrU4lmSmoRCHc144QKohg3qkTfvtVJIvMhjwq8gV6GwaDSOZVOyC1iLmD6U1tjSouTkcaS94Lk6qQIDThFXOvFoccbxzhGAQuNKh5Kda+kRd9ySnPR8PVlo4pFCn1vAFlZXPKkUgkpQpxLUsDqyNrQ7JxaMQEeUg8RysYiTgEYzGVQIdIRMzhVz7jotZrWwQS302nak2qUxVCHloLIk06+UMs6LsNZsj2amZKbpTWvd7DSnn6tktJPWg+REIjS2kJScAn1OgQG3jz6nwIbcGjbn1rKrtJWLhs/h/MEzZuRRr4hSzwhS+ip9FfDJfV/h/z3+Ve4Zf5RQK1zpIICCk2N3aTunl7awPjvM2swgQ5k+claWjOWQlRlcy0mG1s4MQbKwyNmZZqFejEgrGspDadWsNOkr9yIfTwXzXisRBDqkGtZXraBYQpK1MrFtfJF8t5KeW9r4iXnPjStR3s4uS0OZdhSyloNcgonm1CZuWiUyNn0JSTeIrxACL/Tj+dkTMH+n83/1yOtsjghNLWoQKjWvyDQFSWsaysdXYYe1Ljb91sMGCtVxXRVC4EUteaHj9sKLfCIdp1PpiPGgQqgiLGER6YhxbyoWwLCGrwKqUYNqWKccVJkKqox7U1TDelOglFZorVCA0hEaWJsZYHtxE6cXN/OCdc/mNVtfQp9b7BlR6glBSjOzHnn83UP/xof2/gdj3iQZ6TDo9vG8dRfwovUXs72wgXXZIYYz/RTtAlnLXe2kGwwGw7yoZI45dbpSWuGpgFBFBCrA12FT3OqhR0P5jPmTHK4d42h9nMPeMQ5Un+aRqSeohx4aja8CIqXYkBvm0jXn8Mu7XssVGy7uCct11wtSmolKa/5p7+f50/s+TiWskbMzXL3xct56+ivYWdrCxtzaNtfqNr0s0dalclnT3HGOrnbWd54JK51nhqXTbT1e3fJvt3J8rd3yPNNsQUiXoxzP6EVpRSUZPU0EFUbqYxxpHOOOsYe4eeQnPFE5TKBDGqHHswZ28v5zf4mXb37BSmXrstEDghS/rJHGGD9943/jwcl9DDglfu7063jXWW9iTWYAoGWCftrRoNsqrMFgMMxHO5P0dOs8LfdNh502lIMaRxuj3Dp2Px9++HPsrTxFNaxz3sAu/uk5H2BXaWtXm+96IHRQ3IP48ch9jDTGEUjOHzyTd531RtZkBmLvNuJhb+r11fSkMRgMhh5BtPkvbtfStk1iJT8hdSLSTc9DpTUlJ8/O0lbetP2n+OuL38tFg2eTtTI8OLWfT+z7StplX+1HnZeuFqRpR4aQ28bupxLU6HPyvGLLi1iTGURrjSVkV2ewwWAwrAQzhSvujE+Lk+L8od28b88vULLzVIIad4w+QCPx/u1WB6GuFqQUrTVTQYWG9slaGXb374gPGB0yGAyGJqk4Qdxubi9sYn1uuLnOMo3C0q10uSClPvmKMX+KSEVIIae957pT5A0Gg2GViRcpRzrCFU5zkXG3joxSulyQYpTWVIIaoYqwhUXJKQBGjwwGg2EhNJq6atArrWVPCJLWigm/TKgjLCGxVzXkjsFgMHQ7sQB5kc+YN4VKAttmZXevzeyNll20RFQQFpkkU80UksFgMMxPOagSqhBLSvrdEjk7A3Svp11PCJIf+XFARh0HRbSSgKhdmqcGg8GwqqThm440RgmJyMoM67KDXd9k9oQg1SKPQIVIIbCFdUKxsgwGg+FUJx0BHWmMEaiIrOWyLjtMt/fie0KQZLI41hKCAbe04ptgGQwGQ6+Sui+EOuJwfZRIRWQsl3XZwdVO2qL0RMtejepJ+HeJLeyutX8aDAbD6hNLUqgijjTGCHVIrjlC6m7X754QpErYIFIRlhA4lm1MdgaDwbAISkdMBmUipXCFw7Dbt9pJWpSeECSSHUglkgGnNGvTK4PBYDDMJtKaSb8SL461XIYz/audpEXpiZa9HFQJdRylQcqeSLLBYDCsKgrFscYEoY5wpc1AxoyQToh0rqgWNpo7LWal2+H2wwaDwfDMpR55TIYVIqWwpU3Oyq52khalqwVpGhHvOY+kzykgeyXZBoPBsEpM+RW01tjSYsAt9USEm+5PITARlBOTncASlvGxM3QtnXgwdbOXk+HUIUq2obCERdHO0+1rkKAHBEmjaSR7zYNAoVY7SQbDvHSyJMEsWzCcDCwhk6hrcQeoF0pd1wsSTG/XK4WgZOfNwljDqrDYuCbdc2ah6zTxPjUGw0qjW35GRD0xLu+Jlj3ey0MjERSsfMscUi9ovqFXSE1pNb/Bx2//Dx49tr/5udIKARyaOsr//dG/8tDRffGxZEkCQD2o8+4v/jHfePgmIDaZwMxS+t1Hf8iffO8fqXi11X5cwylPPO8eqohxbwrdA9al7hckDb4K4kovBAhtdMiwIqSmtIztcOsTd/Pfv/xB/Cho7sKptObf7voKH7/9C4Qqiq8Ronld3slxzoYz+Phtn+feQw9jCcmTE4f4xX//Lb732I8BeHrqCLc+cQ+2ZVP1avzlDf/Ep+/6ymo/uuEURDPdmQ9USC8MzLtWkNK8U2gmgzKhihCInshUQ+/hhT5lr8pEfYpAhbzhguu4/an7+OJ936biVWkEHh+//fN87NbP8V9f8DZ2rtlK2asw1ajQCD1CFVL1a/zy5W9gz8bdfOHebzNWm6Ti1/j6Qzfw4JG9RCpEKUXGcqn5NUZq49z+1H08NvrEaj++4RTEEXbzd9G9Tf0M7BO/xUqR6jtESjX/MkuQDCvB3978Cb7+8A3knSyWsNBohvMD/NVN/8y/3P55AhVycOIwjdDjY7d9jo/e8hlsaVH2alyx6zKuPesKPnv317jjqXsJtaLq1fjeYz/k3S98OxdsPJu/uuljfOG+bzFSGaPq1/jpj7+Duu8xWhvnkq3nxssaTOE2LCP9bjEpyxAR9oRDWBcL0nTllEI2/enXZIaa+yGZ6mtYLn7m3Gt48a7LCKMIL/RjB5psET/0Y7OckGRtl4KbZ6I+iRcGOJZNqCIGc32sLQ7zy5e/iTd5r8CxbHJOlopX5ex1u3jeaRdzeGokCeHiYEubRuhRblT5t598meH8gBEjw7LjSps+J48lBKGK8FWw2klalC4WpGmmvZIEtpBGiAzLhkYjEJw2vJXPfu8bfPmB71DMFJAiNg/XgwZZ2+X3X/qb7Fy/kz/89t/znB3P5hXPegl/eeNHeWriEH/1qt9hvD7JH33n7/jpPVfzuvOv5V3X/wHbBjexsW899aDBQK4ECCwpcSyHRugxmOvnXS98K0EYcrQyyrri8Gpnh+GUQpC38lhC4quQcb/MkNvd8ey6WJBiI53WmnJQJSLCEQ5Km2WFhmUksQXXgwZ3H3qQ8zc9i/e88G0IIbCkxVMTh/jtr/4Fj40eYOvABh4e2cfGvnVEWvHQ0cfYN/oEjcAn7+Q4WjnG9x77MVee8Vx+dOBONvdv4C9u/AjffuQHDOb6UVoRqIDJepnBXD+OZeNaLoEKed15P8U7n//W1c4NwymEJSTD2X6kkAQqoBJ0v2dnFwtSjEZTSxbGShJHu9VOlOHUISlMUkj6syWkEFT9Ora0QAjqgUfezZFzsjiWTV+2SN7JYQlJKVNkMN9PqAKKmQIXbt7DwckjHKuOM5wf5LwNZ/LO57+F373qnWRtF601H7v9P7jjqXv54LXvpT9bJFQRYRTiWM5q54ThFEMKQdHJYQmLUIVM+OXVTtKidL0gAanvosGwYgghkELw5fu/y+1P3oMlLaSQTDXK1AMPS1porRMHm3hyWGmFUtMTxacNbeFo5RgPHHmU4fwA/fl+HGnz0Pg+an4dW9p86+GbOH14KyPVUQ6MHySMAjb3b2DH0JbVzgLDKYbEoj/ZridQEeWgutpJWpTeECSDYYXRWhNEIb942Rt4/1W/1hyFPz15hN/4jw8QRAFCCGxpIWZFCknXIW0b3MQdB+/jvsOPoLSmL1Pgpn238e4v/TFFN8/R6ig5O0PZq3DNh3+B7YObGSkfY/fa0/jyL/1zPG+FsQAYlo80ckikI+qRt9rJWRQjSAZDghSSh47s5bN3fw0p4sWwRyujjNcnsYRFpBRjtQlqXj2+IFWO5Of64hoeHdnP0fIoZ607naKb41GvwhWnX8pvXflf+J1v/BUXb9nDT597Ddd85K387lXv5EhlhP935xdROkIKUx0Ny4cQAlc6PeXBaWqAwUBceS0huePgfUx6ZSwRm+zG6uMcq44DkHUyvOD0S9i1ZjtKK7TWSCHjBdtotgxs5Dk7LuSRo/vYMbSVHUNbuffwo9iWhWu72DJeEyKEiN2/LQvHsnGkqYaG5SQWIEtIhjMDSfmkJ/aRMzXBYCA22UVa8aYLXsH/fMk7sK24apQbFX7ls+9ntDbOQLaP//aiX2peU3TzVPxa03V8Q2kNf3Lte/nzGz7CF+/7DlIK/MAnY2eoBw20jmPi+ZEPCLzQpx54SSy87m8sDL2HTmIwaq3xozD5tHvLmhEkwzObRAs0mon6FK7loNE8PPI433n0BxwYO8gjxx7nDc9+OUIIDowf5NN3fQVb2tzyxF2ct/EsMrbLvtEn+O7eH1Hxa/zbT77M01NHWFcaZvfaHeSdLBLBRH2Kql9Dac2x6hh9mULsGJGMtgyG5SYu3pJAh0wGsZdd98qRESTDM53EjGFLi2vPvoKCm8OSFuO1Ke586n6qfpVX7bmK5+64EICyV+Wugw9iScll287n7Ze+HlvaTDbKPHx0H0fKI1y45Rz+5Pz38dIzn8+/3nk933zkZiKteOWeq9jYt5aBbIk3X/RqfrD/Tn64/w5sYWNJa7VzwnCK0Dq1abU44ETahA5aAbpZ3w29RlqabGnzlote3fz88u3nc/n28+ecv2fDmfzbm/96zufP3nwOz958zozPlFacs/5MCm6BUqYw4/5/9FPv4V/v/BKHyyO87KwrmvZ9U7oNy4UUkj6nmHhv9oZZuKcEKd0AzRg3DCuBbu6sKWZ+ppnhqdQM66/jrVBm7wCbmt+kkFyw+VlcsPlZzc9b7/NzF76Sn7vwlav92IZTmJzlNnXI6oGNTXtGkDTEG/TZOUw0O8NK0G5rccHc0CBNk8g8XkszxCvZwE8KOef8dO5IJC7mBsNyoxKHm1BFTAWV1U7OovSQIMWVus8tIJIhqDDCZOhyWjfwm40UshesKIYeRwqBp0LKYffHsuuJbllrhTYiZDAYDEtAz3Vw6Fa6PoUajRf6KK2b2/EaDAaDYWn0QsvZ/YKkNVNhlVBHSCFxhYmKbDAYDKci3S9IaKaCCqEKsYRFv1tY7SQZDAZDz9ELkx1dL0gKTS2sE+oIS0oKTn61k2QwGAw9Ry8EA+l6QYqUwlchcQAMScHKrXaSDAaDoWdIA/pasvvHSF0vSKEOUTrCEoK8ne0JTxGDwWDoBgQChcIWNoNu/2onZ1G6vnWvJuY6KQQlO98TIdQNBoOhm5AIbNH98RK7XpBqYYNQKQSSrO2adUgGg8HQARpNLWw0Y12pHphE6npBqkcNQhVhCcmA02dMdgaDwbAAqewoHXsox2s4e6Mr3/Wt+4Qfr0GajgPWC9lqMBgMq8/0Plu6J4IKdL0gxXqfRGE2WmQwGAwL0tp1nw7aK7DMHNJyMB1IteQUTVRkg8FgWICmyQ6NpwIUGlva9DmFGce7ka5v3ZsblwlBzsr2iCXUYDAYVotYciKtGA8mUTrCkRZFOz/jeDfS9YIUqLDFO0SbKSSDwWBYBI1GacX+yiF8FZCzsmwvblztZC1K1wvSVFCJ1yElprsuFneDwWBYVWIhiqc4bj12H/dN7EVpRZ9TYHuh+wWp6zfoC1SIRs27O6fBYDA8k0m957SONzG1hODmo3fyR/f9ExN+mT6nyIvWX0TJ6f7A1F0vSPE2z6udCoPBYFhddOu/Ov69dUdiIQRHG2PccOQOPvTIZ3lw6nH8KODCobP52R0vwxIyWSPbvZ37rhekklPAllYyj9S9GWkwGJ5ZtArEMt90zl2laMpO/K+Y/v2p2lEemnycR8oH+MHI3fzg6E/wowBP+Zxe3MJvn/t2zuzb3vRW7ma6XpD6nAK2sFdlUdfi32iGbvOzsgW/u6uVYanoEzi6mix7Ay9m/GgSqpBxv8yEX2bEG+dIY4wj9VGerh/l8crTPDp1gH2VpwlViBBgCYurNz6HX9z1Kl68/pKVSesK0PWCFGnVFCNB3DM4WcVz8dfX/S/Y0D1o9Clpfk476yfS4IkTOLqaTDsRtE93qEKqUb05OglVRDmoJbsYqCS0DwQ6oBxWaYQB5bBGPWxQCWuUgxq1qE4trDPpV5kKKoz7UxzzJhnxxvEiH1tYSCHRWtHvFrlkzR5esuEyXrbpeWwrbOiJkVFKTwhSWotTWRLMFaXUoFcPG1Si+glWDkGkFZWgiq/DtvcSCGpRg1pYP2mjN4HAi3yqYR2FbpsPMF19FZqMdCnaeeRJFHKtYdAt4Uhn2fMmfs+aolMgK91lv3/JLpCxnGVPM0mjcCr75szX8GmtmQwqBCpECjHjjaXbI0z6sTft7OtlUs8qYW3OfYUWeDqpD3NEQeApn3JQnTFvotFYQtKIPKaC6rztRKBiYYhU4lA1q5gJEbdNtbBBpNW87zVUIfXIT/ImvqYeekQ6QmlNLWqgtCbSEfWogacCGpGHHwXUogaNyGumX6TPIQQSgRQCV9isyw6xZ3AXz+o/nQuHzuLCobPZWtjQzPtecgjrekHakl9Pzs5iIfjh0bt4xy1/hCWsuBDMOTsuhA3lL+rPrhc4IIRAaUUj8glV1LbIChF/lxf5LQW+08ZxKefOJFQRDTVdSOe7iyAWJEfYZKW7hIbw+NOWXquBgp3DwmpWxOVCJ1+TtVwcYc/beV7qd6ZPnJMZbDl/tTieZ0nvnbGcntgC4Hiez498wqRO6jZnTDfc02Wkta7VIw+l1Jz7SiHwVIAXebQrm4GOkjqok/qQHo9HJ2mD3opAEOiAeuglf8++qyDSIY3Ij4Vuvpeu49A8QszajTW5oUIhkfGSFTEdVy51LoA0tE/8l0wlJ5kvEkKSs7JoIG9lGc72syYzwIbsMOuzQ2zIrWF9dpj1uWG2FzayvbCRjOUCsTOYEKKnxAh6QJCkEIQ6ItKax8pP8pOxh+bviRH3XDoZHekObCeWkMnsYZtzk8p0IiOx4+3dSyE7/tbUpNAZyzewVy2m1nm/SRyv+InE+3KB+x9nRVS6XRDK6S7HieSQQoPW6BPR/K5iuvGXLXUhjj6ZxqCMP7OSMttc4j7r3cV1reXOevr+QkhaS/zs9yNb7t16XyEEFrLl7KaDNALRDEOm59xTYwmLklM4ru6Z1pqcnaFk55MRoMa1bEp2MXHQUhTtPDk7gwDydo6szOBIi36niGM5FO0cWStLyc6zNjtAySmQt7MU7BwlO0/JKbREXpgmFaJeDbHW9YI06JY4o7iNx8sHUWj63eK8BURrTdHOUbQLaNSc49OFSzOYHSAjHZRWLMTsNm/aHKYoWDkKTi4Z0ndYbIVAa40trFV12Jj5TPFIq648qkGNRG07f6Z5nnOh7/MjnzG/3DRFLPWbxLwjI0moAya81AS09Lxo96kiYjKo4iuf453TaL2qF31GF0pza6PvCJuSU8CVDlorpuNRTpvdhzJ9OLKl7Cc/VGJS63MKZCx31vH4936nSMZyZ3S04vtLhjJ92MJmuqbH7YIlJSU7T9bONMVuWk5j56mslWmawptnzFMwNbGIFuwslrBm5I1GYwu7OVpJBS4j3WZHyZU2trQRgCMdHGEjhSBruVjCSo47C5aR+Nni/E297npViFKE7mSosMo8UT3MofoxOmm2HGnjSCduTNu9zaSMZS0XS1odjZTmwxYWjrSXbK7TxAvYXGnHk5FL/N7jNUctdr9QRwQqWPneuxBEOsKLgpW4NZFS+CpY2NzSKcmwW2uNr/x4TvM48VVIPfLo5eGR1nGgzoKdm7ccTpdta049jP+MG952o1hNbLpyLRsLq21euZbbsqZm+joBZKTbplGOR0SudHrKhJU6wbQ6dcU/xQk7kXQrPSFIBoPBsBy0G+VNm/qOz3zc8VlLmMc99aSmwyfvBUFqb9df4KFOWspO0M21C0vdyS0NXV/0lj21XfjKj4tOR93HzwIm3+O8+TO3me8dekKQDAaDwXDq09szYAaDwWA4ZTCCZDAYDIauwAiSwWAwGLoCI0gGg8Fg6AqMIBkMBoOhKzCCZDAYgNjl3/jcGlaTrg8dZOh9prddmA7nMr3ZWPyXTKIhqBlbjZxYrEBD52h9/Ot7DIblwqxDMqwone7FEqoIW556kbB7gVSMDo1Wybk2A6XMaifJ8AzFjJAMK4pAMO5Pcbh+jKmghqd8IhUx6PbhWg5HGmM8PLmfCb/MYKaPrfn1BCpgU34du/t20OcUVvsRTmlSMfrRfYf5py8+wJZ1RX79Z85l7UAOMKMmw8nFCJJhBdF899CtfPqJb7K//DRj/hS1yCNQARuzw2TtDE9UD3OwdhRH2EnQWwdPBZxZ2sa5A2fw2m1XcfWmy0/JfYRWm9Q2sv9QmT/9xE+48c6DDPVled2Vu1g3mCOKNJZlFMlw8jCCZFh2UjPdscYEH7z/n7nl2H302QWkjncUkgL2+QfjMP1YrHOHkgvjvZvyVpZDtWPcNf4woY64YGg3G3Nremor5m6nufWCgE9/+1Hue2yUTWsLKKX5wo2PsWltgaG+DEprpBkmGU4SRpAMK8bhxhij/gQFO0fezaIyAiEFWoMdJS5dUiAyFlgCIoWINEJpXE8yqPuItMKL/NV+lFMOnQjNLfcd5qs/2E+kNJYEpeBD1z/A4bEav/f2S1g/lDeiZDhpGEEyrBiWkPEGhFqjLYEcyiAsGQuRij3vhBRgy3gBQrwPALoRoUYbaJWOiExjuJzE/QDBRNnjn7/yIAcOlxkouiiZxbYD+vPwpZv2I4Xgt37+IjavLaC17qm9hAy9iREkw4rR7xawRbxls0AgbBELjxJgtewVqzWEyUWWiD9S8e6hGengGO+7ZSN1vI8UfPzrD3PjTw5RyNooYePkBtE6gtoxSnn48vf3M1n1+e2fv4izdwwmewYJ4+hgWDGMIBlWjKyVQQgZt4JRslVvOnnRsi4JmDMIindQ1xTtPFnLuCEvF1pppBR8+aZ9fPRLDxJFioxrYbl9CDsbr5TPKaiPU8jCDXc8zWQ54Nd+Zg/XXLY1vodZs2RYIUykBsOKYQsLGzlrc8UltGRCI4Q0jgzLhErE6J69o/x//34vUxWPnCsRdgHLLSLQaK2QThErN4S0bPryNvfsPcYH/ulWfudDt7D/0FSzs2AwLDdGkAwrhi1sLGmhltp4qXiOaTqSg2n8ThSlYzF66miVv/7MPex9apJS3kZZWezcIEirRWQ00i1g5daA5VLMWYyM1fnolx7kd//xVvYdnEIkkTUMhuXECJKh60h8GwzLROpRV6kHfPj6+7npJ09TzNkgHOzcIMJy4km7mRchnRxOfi1kSuRzNkN9Ljfe9TQf/MQdTJQ9hBBL72wYDAtgBMlgOIWJ53sE42WPv/70PXzqW49iSY2UEis7gLRzc8Vo+mqEncHOrkFkh5CWRTFn880fP8kf/PPtjE42khiE7a6cO65NOxqLBXFtPWe+8xY8hunQ9CrGqcFgOEVJnQ+ePFLh//zb3XzjRweQQuNaFrj9SLe4gBilN4k9JC23BAioj1LMWVx/4z601nzgly6lv+jOcXQQ86RloenA9Jx2DhNz7r/AfUS7BBh6AiNIBsMpSNqA37t3jP/10Vu58+FjuLYg4zoIp4SV61/K3UALLLcvNv/Vx8g68LnvPUalHvC7b7+YbetLM66YaoQoDf1ZuykyVT9ipBKgFFgWbO7PYEsxI72R0hyc9IlU7ArjSMHmARcpBCpeR41SmslGhBcqhgoO7qzwRjVfUfUjBrIWjm2MQL2EESTDCmNsJyebdBHr08eq/Mkn7+D2h0bIuRa2bSHcEnZ2IPWrX8JNFTrysJ08ClCNcYpZydd/8AT9hQx/+KuXksvYScQHwW9/dT8jZZ8Pv/4MBvIOE/WQ91y/l5v2TpK3JVrArzxvE+943iYsGa9tKnsRf//9g/zDjQfpK9hNEfuvL9rCrzxnE1knFpcjlYBf+/TD3PbgGO9//Rm84zmbmo8iBPy/2w/zNzcd5CNvOJPnntbfst2JodsxgmRYMSIdEWp1fCv8k0uMnB0PAj9UfOXm/fzgnsP05R1IXbXDGmFdY2WKCOmyeA4L0IqwPkHkTyLtXOyVZ+exdZW+ostXfrCfPbuG+IVrz2oKw9OTHk9PemigESpe97H7mWyEfPItZ9OftThaCfiXWw9ztBywqd9l32idt/3bwxye8vmL1+zkrPV5LCG4/0iV3/rSPm5+bJL/+/ozGS44eJHiwITHwSM1/vhbB7hkS4mLt5ZQOi42Y7WQR0Zq1PxotV+EYYkYQTKsGIEOUVoh4xUuHfdShRSxbQaIVyGZ/m2npHHnDhwq89EvPYQlBHUvQqk4cK1lhWRsDx352PnhxMNuAVESApRCBZV4A8WwTlTz0Rr8IMJxJIdH6tx2/1F+4dqzmh2JomtRdC36sjbf3zfBjw9M8e9vO4fn7OgD4FnARVtL5B2JFyr+6oan2Dfa4Mu/eA4XbJk2/52zsUB/1uYVH7qXs9YX+INrdyA1ZFyLbWcPMlYO+ONvHeCjbzqLwXzcnGVswUDObpoDDb2DMbAaVoxAhdNuwUscJaU7yvoqINSmp9spaS5bEmw7dsteN5Rjw3CObeuLrBnIobRABTVUUGdxY1Y8uaOFQEqJ0oKJqQZT1QYZ18K2JGsHs2zfWJrx/ZHWRGn0dtdCaLj50XF8FZeHSGmKGQtLCvaNNvj6g2O89ZL1XLAlHulEShMlInrV7kFeed4avvnQGOO1kELGouKFXH3GID938Tquv+0In77zSPO7tYZImdF1L2JGSIYV45g3QaADpIxj18V01kxo4tHRZFChGjVYu9oP0yOk5tGt60u8+43nce9jo7zs8u1YlmSg5PLDe47wJ5+8E6UVWvmgI6Yj286PRBJGAa5rs3n7ILs293PJOetAQ3/R5epLt85MB/Egt+xFXLK1j5+7cB3/+7N7qQaKt166kfO3FONlzxom6iHHygE7h7Pxe4/3rwdozkm9aNcAH7vlEAcnPbYNZoiUJlSa/3n1du4+WOHvbz7IT509xGnDudh0ZwZHPYkRJMMKcoKtQnK5MF3dJePYkte+eBevuWJn3CFIOHi0ylApw7GJWuzyrRVIuYgeaYTQ1BohW9eX+Kt3P58ztw40nRFEG3/vJAwrqbb8n9edQUbD5249wt994wDve8Xp/OJzN7JzONeMIpF3rLklJo61iyMFXqCoBVHTrbseRJw+nOOvX3sG1/7jvXzwW0/wkTftxrUlSplC04sYk51hxTjh0DLarCk5EYQAKQWa2FVa69gMBi36s+grSha+ao1SmoxrsWVtEceWM8So9X4asGTspp0uUs1IwV+9aTc3ve8i3vycjfzj9w/ytn97iKNlPzbpAceqQXNBbXMDweT/I2WfjCNZU3BRTSuwoO5HXLatjw9edxof+/Ehvv3IOHlHmK0yehQjSIYVRJ+QIV8IiFAmPM0Jkoq6EOKEoxhoBUEYzXmtgtihIlKx80o9iHAscKx4FCVFPNQ5bTDHv7ztHD73y+dy+xMVPnXHUU4bynLm+iw/PDDV7HuEkcaPYgeNWhDxjYfG2DyQYVOfixeqpqNLKl6/8rxNPP/MQd7zhb08eqxOzpUo1fFjGboEI0iGFUQc/+hGk2xnniEjndV+kJ4nfQ1SxLv2NnsKS30/ibCJNhdLIXBtyaEpj9ufKHPJthKljM0jIzW+88jYjCgMZ67LUfcV9UAxkLP51eds5vp7jvGH3zyAIBYy14pHWf/t+sd4esLjfS/eRtaReKHGsURsMmxJxZ++/DQqXsRn7hzBFgLbMqOkXsPMIRlWjIzlIJHTprdOSWw9Gk3JLpIz+yGdMOniUC+I8LwwNmkJCSw2f9TBvRMngpsfn+S7949x+6EKezbk+flLNgAwVY/41B1H+eLdo2wccPECzc2PT/KWS9fz+mfH7ipvvHAdI1Wff77lCHcfLHPBlhIC2Dda58EjNX7/p3bwgp39yfdpRqZ8RkvO9PZaGi7b3sfvXruDX/zbu7HzNr4ZWfccRpAMK8aAU4p3jEXDEswn8d59cWOi0LP2UzKcCPVGQLURxCa0ZdoePhW7Y9WA2w9MsWltjv/+4i2csTaP0nDxthK/aW/lH258ijufqqCVZs+GAn/x6p04ySgm40jee+U2XnD6AH99w5Pce6hKGGk2lBw++eaz2bkm11xj1Z+zedeLtrChz8WxZhp5fv6iDRx6fZ1aEHH6UHa1s9uwRIwgGVaMZpunQSvVYuZZRGD09A8JZoJ6GfEChRdE5NykIV+GrE2d+F69Zw2v3rOm+bnW08fO31TgQ2/aPefaVMxSF/DLd/Tx6V84Z+55OpmHAvpzNv/jqm0zjqdFxBbw/pefNvPYSc9lw/FiBMmwYjgyNtkp4thqc7Ytn03aOikNUbKFuZMnI93kBNO0nCh1L6TWCMlnMrRIwbLcWydmVkhcvkX7YynTc1Hp3/OcN+teQOLoImgXjCF1gpl9f0P3YwTJsGK40qFgZ5Peb7wLrFjCRLNGk7OzZKxYkEzjcuIstgXEid57PglY6NjxnCcXGDVLM6LuWYyXnWHFEEDRzmMJGQtS1GFPXMW7r2k0BSsXX2/mkQyGUx4jSIYVQwrJ2uwQtrRRWnUuSMniEoUmb8cT0ye8yNZgMHQ9RpAMK4YUkuHMQOxp19yTuoMLk3OUVhTsXOtHhhOl3d7ii15g5mIMJwcjSIYVQwAFO4uUsclOLzZCSh0a9PTCJUem05xGklYNQRzvzmBYYUwpM6wAqYO3IGu5yHQOKB0gLdrd1i2/GSFaTixb4tjyOEygJxB1w2DokJPuZddpRVho7clSKtNK32epFbub7rNSeSOaPwUlq4DFtFNCZw5Qc09q5w68nM/Uy2udOnpXiUt9IWNTyDporTgehVFKE0bzr3I+2XXqZNTvTsvGQuemx060/eumvJnvPidSl066IC1HxV+uxuNUS0u33UcIges48QyEphkSaCntYDp7YUl5wjMZvSw6J/pc6SlpxCC92JqwNkghCCJFuRayfuj407Icz3Oy7rOUeyx0bnrsRNPUTXmznPdJ6UiQtNZEUTTns/RnMwR98rtt23MSqrUmCALCMGx7TCk1oxfhOA6ZTGbOuUopqtUqURQtmhlKKfL5PJnM3FhonucxOTmJUmrenktrWkqlEq7rzjmnXC5TqVQWTYvWmkwmw+Dg4JxzoyhiamqKer2OnMdWn6ZFCEGxWCSfz8+5TxAETE1NIaXsqKDk8/m2z+R5Hr7vN793oWeyLItMJoNlWbMOJvcJgkXTMR9WGmct1FS8Kra02p7XmkbHceamhbgsBEEw73tO/1+oDKf3CcOwo7yRUmJZVtvzwjBEJeGoO8njds+ktcb3/Y56u1pDLpdproMVzRAa6W5289wjPVdYycJVTRBGbe6v8TyPIAja1u+0jqd/O45DoVBoWxcmJyfxfb+jEUVfXx/5fH7O5/V6nUOHDrVtb2a/z0wmw/r168nlcnPSPTo6ypNPPkkYhvPWzTTd69atY8uWLdi2Pec7nnjiCUZGRuatc+n3CSEYGhpieHh4znHP8xgZGaFareK6Ltlstu2zpWWvv7+fbDbb9j61Wm2OSLbWg9b75HK5Oc+etuezdUEkOwu31qWFyvBsFhSk9Ib79+/n9ttvn2uaETP3HYmiiGKxyAtf+EIKhcIMsfI8j1tvvZW9e/fiOE6zoAkhCMOQRqPRvE8Yhpx33nk897nPxXGcGWkpl8t86lOfYmxsbMZ9ZiOEIAgCrrnmGi6++OI5w+mHHnqIb3/723ieh23b894nDEOGhoa45ppr2Llz55z73HTTTdxxxx3k8/lmhWuXFs/z2Lp1K2984xvJZDIznn9iYoJvfvOb7Nu3b8YxYMY9lVJIKbn00kt5wQteMCdvDh8+zGc+8xnCMJz3mYQQTRF+5Stfye7du2c8UxRF3Hvvvdx6663NgrRQ3mzYsIErrriCtWvXzriPUoqbb/w+Pz7yI1RJLViZ2xc+wJJMlSe5/fu3cOdj95DL5OakJf07iiJc1+Xiiy/mrLPOmlOGDx48yM0330y9Xp/zTI7jkM3GzhdhGJLL5Xj+85/PwMDAnLx56KGHuP/+++cVmta6sGHDBi688EIKhcKMY57ncdttt3H48OFF8yUIAs455xz27Nkz59jExATf+973FqwLQgiiKCKTyfKya17EQH+BjGvR8NKOQudDViklDc/n8Mg4Z+8YbEZWECIuCz/60Y+4++6723YAoyjC8zyiKEIpxe7du3nZy17WbDDTfB4ZGeH6669ndHR0RgPW2takZTiKIq688kouvfTSOfm4f/9+vvrVrxIEwYJ1IYoiHMfhuuuu46yzzppThu+44w7uvPPO5vlzimnSaDcaDU477TSuu+66ppik96rX69x8883s3bu3rXi2psfzPPbs2cMrX/nK5jOl9zlw4ABf//rXqVQqWJbVtuyk7alt27z0pS/lvPPOmzNgeOihh/ja177WFM50MOA4DrlcrpnXYRhSKpV4+ctfzvDw8Iy8CYKAW2+9lccee6x5fhRFTQFL8zx9pl27dnH++ec326z56GiENDIywt69e3Fdd0ZDmsvlZlSEKIoIgmDehjntMaYFLb0ul8sxMDDQbCiiKGJgYGBGAUh/d12XnTt3sm7duraNZarItm2TyWTYuHFj27Rs2rSJSy+9FN/3521004Lf39/P+vXr2xbKPXv2MDw8vKA4pnkzNDTUfCGt9ymVSlxyySXs3LlzRiVUSlGv15ujwVRIdu3aNacXBjAwMMDll19Oo9FYsKFL0zk0NNfuIqVk7dq1bN68uVnZ5subMAxZs2ZNswGa8b6kIJPJEFk6Dq4KSWC6xUpb65fEvTAVRViWjWVb6JadQNM0pHmklKLRaLS15TcaDcrlMmEYznnfnuc1R7lRFJHL5QjajOyUUkxNTTEyMjLvCKr1fWcymeZoavaxY8eOMTIysmiv0fd9pqam2j6T53lUq1UajQZRFC3Y6EZK4zd8ck6JrGtTb/jx5kawcPSg9Fi6E6wWtE4hpUmyLIuhoSG2bt3ati5YltXs0Wut2bhx44wynD5bX18fl112GaOjozN62mljmZLe//TTT29b1rdv386rXvWqReeAWkdIrelI03zZZZexa9euZmO7UB6XSiX6+/vnPFMul+Oqq67i0ksv7Wg+ZrYVJf198+bNXH311VSr1XnTkj6TlJKtW7e2/b7169dzySWXNNOdlp/Zop8OMOYTkbQtbxWpRqNBvV6fcZ9Go8Hg4CC+7y8qSEJ3MN5PTW3tXkS7UZPjOG0zIm002t1ndqFqd+/ZL24xTtU5g5OB6nB3s3bvKW2/gijkzx/8OB959D+ItCIznEf0OYs2gGrUQ034jATjfOw5f8Brt1yJFwXYcqaQpI1V62fzmQaiKJpjXmimt015chynrZliofvMRkq5oPm603JsWVbbDkir+XAxtNa4rsP37jjE737oFkYmamTzJezcEEh7gV37BGhF1BijPDXB5rUF/vBXL+OKCze3/Y6FLBamPnYnre+sXQd/vvfWrj2frwzMVxdm09EIyXGcRZWtEzq1Iy6GKdgrz5JNbDNIAl9aEk/5SS+V6UUGSwrYoBGWxLVc5Ak4NSxH2UvnltqJw1LvM988wlKQUi75PhlXks3Y0yPNJbwLKQV+EDE22Wh7TreJzqnqRbvcedxuNNYJy9Wet9JxzepWN0FD9xKpiNHGJKEKcWyHtqGZW9GAlWwrqkEiqQS1+JDubEVSNy0X6MTR5WSlRetYUFzHJuNa0y70HVa9GTFZe6S+nmoef8t5n+Viua1VHQvSqZqhhpVDa82YP0moIjIiE0f67mS3gxYX5UAlHm2ceO+728rwyW0wddtfO7pSCKSIh7dKs+A6JMMzi+Vuz02kBsOKEWnFqDdJqKN4S4DFRkjt7pFsNWu6McvIEjNTJOMpKQRBqBgv+yzRAmUwdIQRJMOKoVDUwnpzyzY63AtJWAIhBQJBJayjVsBu/kxFqXQ90NLyszXkk4m8blgpjCAZVozJoEyQjI70Ely+pZAIEUdm8CKfUMdebaYZPHE8P6ThpYvKO4y+3hIMSutpb3GDYbkxgnQKoNEorRaM9RafM8+6BR1fv5T7xtcs3JqNe1MEKkQiOx4dpYikrZRmG+plIX1T1UZIpR4kwbtl04FksasFOlmXJshmrF7xazD0GGYL81OATib843Pmfq7RyZbPYsH7zl7P38k20ZN+deb80WKXJKFpHGGjZIQZEy0/DT+k7kXxGmUh6ahPqol38NUaxxb0FU58CYjB0A4zQupxtNbcNHo/73/wX/nR2ENzjqejmC8fvo1/fPyb1CIvvi45LhB8+LEv84f3f5xK5DevC3TE9Ydu4b/f9y/cNv5o4hwXX1UJ6/zd41/jz/ZezzF/asb9WvH19OJPYcXftujzoHEtB8e2zFzFClBvhFTrAVKKDrcCiUnHz0IbBxPDymEEqUdJxWHUL/Onj36B//2Tv+NvH/tycmxaINLzPn3wZv5s739QDhstRzS3Tuzlgw9/ht+76x/45tGfJJ+CRKC05u/3fZX33f9xJsNa07Pq/z15I++8+8M8UTuKLeYujEuNbGW/RqSSEVIn7t7TN0AgzPhoBWj4ETUvRMh0VNzZi5Et65aMg4lhpTCC1ON8f+wBHq8d4WfO+GlumdjLw5WDTBvZphlwCqxz+7FaNs9TWvGvT9zA2YO7uWzrldxw9G6qoRc3U0Lwmk2X85Fn/wb3Tz3JNw7fgRSCB8tP8ccPf5Y3bn4+f7Xn7Qw4hTiaQpu0lcPYZNfcfqJDLGSy7sVI0nITRgpLJlFRkR0Od2JPBqU0ti3pK5x4lAmDoR1GkHqQWAAEkVb8cPRBtmaH+Z3drycjHD791PeTs2aOMJRuCXKacNSb4nuj93H54Bm8YdPlfOfYPdwztT/+Dh2Pla5bfxHn9+/gL/d9mX3Vw3xo/zfwiXj/7tfjSBuVpKUdtrDjcD8CtEVHjZ8mCUHTFE7Z8rvhRPH8aNpnTgpER01A7F2ntMa2JMVcPPVsuguG5cYIUg+Szq08WT/G55/+EZcOnsn5fTt4Vt9Wrj98K6N+ue0oafYnXzp0K8e8SV6y9nx+etPlPNU4xleP3AFMOy0MukXeveuV1MIG77znn/jx2CP8zpmvY0/fNpTW88aX02jKYZVARwgkrlz6RLgUkkm/TC1qNO9pODEitcQ8FJCOkLQmFqR8MkIyr8OwzBhB6kFSG/53R+5hJCjzguGzAXj1xst4rHqYuyYf76it+MLhWzi7tIU9fdvYkV/P1Wsu4LbxR/FU0ByVRFpx7fqL+B9nvIav7fsyp+fX8hunX5csVo3vkwZBnfGf1lTDOlHiZedgd7TjqyCNGJyEro98/Oj4N/kzzOR45n+SrTibI6RC1njZGVYGI0g9Rux+LahGHt86+hMu6NvB5YO7aSifSwfOICsdPvHkDUnD3npN6x3gJxP7uHNyH88dOhtXOlTDBles2cOt43v50qHbmqMwS0gONcZ4YOoptg6eyb1T+3lg6skZbt8iSdOM/8T0rrUCgSvjrcw7cZyLtEIRgQZbWvG2E4nIpQ4bpnN+fJyIP4JOBSlnVosYVgZTsnqOWF5uHX+UG0fuJlQ+V/7w99FoQhVRbYxyx/ijPFw5yJnFTYRKYYnYSSDS0yFj/v3pHzJSG+GTT3yXrx29E601494kk/4k/3nsXl6x4WIyVixU773/49wx8Rj/eNG7+YOHP8P7Hvg4n7vkfWQsB0EsIJWgihASV9pIIXGkjSVkYmYTZKRDRQSJSnYeYlpp1SJyZhbpRDkuT3qtQccdBCHiqOEGw0pgBKmH0C0OBF8/cjuOsPjIxe/FlTa+CslbGR6pPMVf7P0iNxy7n93FzbjSJlARD5SfZHNuiEG3wIg/xVcP38arNz+PXz/9OnwVh+bJSJuPP/Fdbhy5m4mwxgZrgE8dvInPH/whf3zOm7l2/YVUwho/f8ff8Iknv8ev7riGQAX82f0f5/on/5O8nUMi2Zxfz7OHz+TWY/c3F96OTYwTCYHosHet0RTtHN86/GNqUZ037fgpzh08g6KdjyMGCIFzHPNSz3TirSeWQjOAXbwcwBLYtjGsGFYGI0g9RDq2eLI+yreP3sVzh/fwig2XzDjn3L7tfHT/t/no/m9w9drzyVg2/zlyL49XDvN7Z78BW1h848gdPDC1n9876/Vctfb8GdeXwzqffOJ7/OuTN/DqjZfzgQc/xbUbLuI3T385SmteseFSXr7hYn73gU9y2eCZRFGdzz/xHR6ZeoKCnSPQIQ9OPc6PRu5KNhOToKHWqGNVHaycveDSF4mgEXmEgYeNzURjkq889X1uPvoTTi9t5coNl+BFPgU7x5tPu44BtzRDqA0L49pyOuRTR8qUrj8SKKVxLEk+kzQbJssNy4wRpB4irf83HruPqaDC1evOT8xw06OnAafA1WvP46bR+/nzvdfznaO3o7H47d2v42e3vBCAG0bu5vy+7Zzft5OoJVadQHDJ4C6uWHs+3zp6F3dNPk5BuvzKjmuwhIXSipzl8s6dL+ee8b38+d4v8LYtL+S0wkaeqB5hwC2htCYiIlBxAE+p4zVIImMh05AzeuGnDK2Q0FEQgOtk0Mk2FiONCR6c2Ec98tBasSYzwOu3v7S5V49hcaQQSZQGgdYRuoNIqVpPh3FqDUFl9Miw3BhB6iHSUcCrNl7K1evOZ8ApYM1qjC0h+Z2zfxZPBYQq5D07X0HWctmSW9NsQP5sz9uRQjJgF+bMy2zODvOly3+bRhQS6ghH2gw5hSTQafxdLxx+Fj968f/BVyHDbgkV+RxqjPFY+SnydhaJwHEdRNEGX8UmtsEMwpWL98qVRuRs7OEsOgLhCFQ1JD8VO5jXIg8/8tlW2Mj67DAymacyI6TOKOZt+vLO9Bbmi72QJFSQSnaczWaWd8tqg6EVI0g9SMnOUbJz8x4vWBkKVgaAdZmBOceH3b5F7p+ntEDJEAiG3VLz76s2Xk7WzvKH93yYO8cepGQXsKJkR/I12WRjvk63Oki+I2vHPflIQRT71VXDBhnL5eVbXsKvnfl6zh3Y1UyPoTNsy8KxJVGUjHrilcjM+3Ja9kCyLBF72JnsNqwQxtbRg6RbSegFjqf/tdsmIj1GJ9fPc55qOUcIwQvXXcjfXPxertpwGdWoQRCFiPGA8FgDgiVuCJdMlqlAEY40oBJRjzzydo5f3/0G/vKi93D+4JnGVLcE0twv5hxKORelIA6Z2sHmRqlZz/jcG1YYU6N7EIFYcJ+g1vVAUog5W0Wkx+jk+nnOk7PWHWk0zxrYyV9e/N95445raCg/jrBQCYmO1NCNsPMtzIVAR5potIGoKsphlZKd53f2/CLvOutnY0870yoeF5Ylse3EHV+p2KV7odeS+j8kC5Vdxzbu94YVwwiSYVlIRWlLfh1/edF7eO85b2Uw20dDeeBr1LFGLEqLNWYCiBTqWANRjaipOgNuiT847x38ws5XkZFO7L1n7EZLJM6vUsGhr+iiojT+QifCHg+LLEuQyxhXe8PKYQTJsGykouRKh/ee/VY+cP47WJ9fQyWqo3yFOuahg2jhkZIQRFM+uhpSUx79Th/v3/NLvG7HSxFCNE2EhuMj40iyjoXSxB52iy5U1mitmhFCpGkxDCuIKV6GZSUVJY3mdVuv4o8v+HV29W2joXx0I0Ida0CoZo6U0ol1IdCTPpSnPfzed87P85bTr5sWIzMyOiHyGZtC1iZ2stOdhW5IzxEgO92xwmA4DowgGZad1nmlazc9nw+c96tsyA1T1z7UFdGYB5GKR0rJtjygUZM+0bhPFEZ4KuAN21/K63dMrzMyYnTi5LM2hVxs9qRlDdqiJFNNtgkbZFhBjCAZVhSN5uqNl/Oes99M3s7SUD5UIqLRBtqPELYEpYnGPPS4jwojKmGNl29+Ie86601NBwYjRidIkn2DpQzD/RkiBVqFoMPEBLqAMOnpSN/9RdcMkQwrhlmHZFgx0lESwJt2vIxxv8zfPvQpKkGNQiVLFGl00UV7IZRDfBWb6l699Uo+cP6vsCW/Id5zycwZnTDx4lZNNmOzfjiPHyiEVslIab6L0v6qQiuN61oMlrJGjwwrhhEkw4qSipItLX5t9+vJWRn+/pHPcLg+Sq7uEtUjLCGpRR6OZfO2Ha/knWe9iY25Nc3ArIblIfVfWNOfI5ux4l1ggxrKLSCl3TKfJNAqQEd+7NCgPCI0rmOxdjBrnEoMK4YRJMOK0xQlYfHLZ7yGLYV1/MUDn+ThyQNkLIdAhZScAm/f9SreddbPkrMyKK3MwtdlJhX3y/es55JnreO2+48waHuEtWNYTj52KtERRBFa+egoAhRSKIIwNtntOX0YSNclrfYTGU41jCAZTgoCkewyK7h8zXkUnTyhCtEojtRHec22l/COM1+fiJE2YrQCCBGHADptUx+vftFp3PXIMSr1gJwT4vu1JDK7QusIpSCM4p17vUDhOpLXvvg0tm8orvZjGE5hjCAZThpCpFuUw6bsGqpRnSvWXMxrt13Js4fOos8pGDPdSiPiXXtf+fzTUErzD5+7lwOHK+QydnPPo0hpinmXs7f1MdSXZbgvw3PP28jLnrstiRRuRkeGlUFofVx7SBoMJ8Rj5Sf5ydjDPGvgdJ7VfzqA8aY7SaRLYcNIcfuDR3n0yUkOj9WYrPgUcw4bhvJsXFtg03CefM5hoOgy3J9d7WQbngEYQTKsOirZWt2MjE4es+eAokhR80Kyro3TZkdYnVxg3pBhJTGCZFgVNDrZUVaYUdEqotOtyVvUKf0s/iT517wiw0nACJLBYACM55xh9TGuTAaDATBiZFh9jCAZDAaDoSswgmQwGAyGrsAIksFgMBi6AiNIBoPBYOgKjCAZDAaDoSswgmQwGAyGrsDEskuYuRpLt/ltvg/mud9qP1AP0rHXcYcnLn7awmcYN+jeobPVlPo4jhzviR0g5vtTzPjwmVQMT+mFsdNPplv+bflFYMLVGI4btdDmdsfDEoviapfck9mICyGesR0ErZPQTdB86adqFI1TRpDitkE3I0cuRWi0hoYXotAEocYPIiAOv5/+nu646QUKFekFWwOlNA0/SuJ/rXbOzEUASoEXhETqZAQ01ViWJONY8RYI7U9BSoHrWNhJROn5cGzZNt5aK5YUZF1r7n3E9HdlHQsp527fHRchQT5rDAjdxEKRJPwgIoxU++sAP1AEoWq+/1YE8RYbQagWbNyDMLnHMiAEZF0bKUWy3QpxxHUBjiVxHYkUAseW2NbCZb0pWCIut70sUD0tSKkICZizi6UfRoyXfaYqPuWaT90L8fyIci2g5oWESeGq1gLCSDNe8ZpCUm0EAHhBRKUWxtsmiDg6crUWEIR6wZceRoqpqo9SaQ1a2Sxe6g6eaaTnci0gDNWK7wCq0bi2RangIlsEKS55adS0WLSKOQfXtprD29k5pzXksza5rJ3s7zP3+5SGjC3pK7i0y3utwbYFpbyDbck599BaI6VksJRpfkdrDmnAsgSFnBML4wKv17FjIV5I80WSZscS5DL2gmUr/SrbkkmD1qm5avkQIu501f2QaJG60PAjvFAhaZ9NAogiTdUL5u8YCajVA2qNMO5A6Om8iOumoFzzaXghzNMgV+shdS9se0wgKNcD6n7YtiObVuGaF1JvhG2fYTaLvRIhBf1FF1tKQqWxLRgsZoBYqPI5G0tCNuMwUHDpK7pkXZusa9FXcOgvZijl459DfZkZ91ZKN/Ol1+hJQYrbMT0jww+P1jg8WuOpkQpHx+scHatxeKzOsYkGoxMNqo2Aaj1gbMrDD1XcMCaCobRujoBAxHu+xN2OuV2ydCS2cLZyMrNV6zTtS0PKtAlY+bTGaZz1/W3MMLOfQwiBnGlSR+m5jbC0ZjZnM8wcze9KWpbkh9LxBnRSihlC2fo96ffPPpbK6GL9jc5yNi4vji0pFZxFx6sacG1JMZ/BSkX5ZLU9Sb0LlaZS9wmC+UcVQgiq9YC6Fy3aa1/osGbuM6a/pmW/+S5o6eLoabOqkGLOu1JquibPbsB1crz1fCFolgXRPKd9ezC73M5+Vk1cviw5nWildTJiTztF8e+pSAohyLkWwwNZ1g7kGO7PsnYwy+a1RXZsLLFuMM9pm/pYP5Rr5k2a7l6h5wSpVSNGJxvc+sBRHnh8jEeemODAoQqPPT1BrR4mojJdIOPo0vG1URS/7HzWxpJxT9e2JLmM1ewxS0uQc21sKzEfaZAy7r24jmxWgjnpAywpKWTtaWFbQQSCbMbCcSxaLJZdy3T64tGo70ezEtxsahBC4AcRDT9qm9+paU1rTa0REkRze+tp5W/4EZ4fzW0kBNQbIX4w0xSTmhY9P/7+dpXa8yMaXrRghssFGqY5JALdSZHRgFZpmk/2G09yfp5euNaaOGm6pdPT9oHRaCK18APbychRyrklQApBPutitRkpShmPgltSnPyusWVc30W7l5MIRS5pH1IrzOwckCJOl2PPHGULEZsI617Y9toUpaFaC5o7KaukHCsNYaioNQLCSDFZ8ZMpgOm5NBFnX7OTlXNtNq7Jc87pw1xwxhouPnstF5+9rvk+emW01FOClApKtR7wjR8/wX/efpBb7j/CodFq3DAx3Ssu5hzWJD2JwVKGQs6hkHPIZWz6iw5ZJx0WC/ryLrYtyWdtbNtCax0LVTYVpLiVSEXMdawFBclOTE9SiAUL5IkhmgUtl7V60jkjjFSzQW+XeoHAC0JqXtQ0Q8w9SaCVoloP8SNFG71BA3WvvbAIIajWArwgmtmDTn6v+2FsCkr2Amo93PAjao2gfaPcck7DjxbJifg9BoGiUgt6qkc750k0ZFyLXMZatGuutcaxJIWcM++p8cjRmu7gMXMayJKCYs6JhaPl5ehEVPqK7qwr4mOOFdf3dnOIaBLzsY1lte98pp3WQmbu/lECQSOIqHlhXEfnef5IQaXmE6m4bVFKU63H87pBFCXTA4rxskfNC6nWQ8o1n8mKx3jZY6oacGy8zuHRGjUvxLJk/F1a86zTh7nm8q28+kWns3NzX9d3VJt51yuClIrRw09M8OEv3M83b3mSyYpPWpjWD+U5fVMfp23qY9PaAsP9WdYMZFk/lGOolKWQsynmXbKutdqPsiJ50/1jo7n0csO7Eigdd7Y6HlF1IUpD1rUWdToxHB9KaSYqHmNTHpMVj5GJBk+PVHnqaIX9h8rc+fAIY5MNpBRESvOiZ2/ifW+5kPN2DffE9iI9IUhpU3v/vlE+8NHb+cFdh3AcietYPPfcDVx01lrO3TnM1vVFtm0o4S5SGea4685wpWTugeOg2198L7F8JVQv4dOlnDA/Ipnc6GRe6FQrMp080+y5vuNCHNehDlLXwVfPN7Jr/rNU2qyBbJkLWsj0dmi0yn2PjXPr/Yf54vcfZ3zKo+6FPP/8jXzwHc/htB4YKXW9IKWqXvdCfvP/fJ+v/+gJchmbHRv7eMPVu3jJxVvYsbE045p0YrzVV3/6ibv7hRhOPTqpYE3DUVfXxiWwbIuXDa3MLSO6OT+WalUYKb76gwP87b/fwxOHy0Qa3vJTZ/B7v3hp07TZrR3mrl9oIQRESvPFmx7n+3cdwrIEOzb28cFfu5yLzloLJFsu6+keRC/OpxhOXTr2aVjKyYZnJHPLyPToO3Xisi3Jq154GoOlDO/9ux/y5OEKN911iIMjVbatL672IyxIVxt6046AH0R865YnqTVCSnmXn792NxedtTZx240nhKUUPeNJYjAYDMuNECQjoLhdfN4FG7nk7HU4tmSq4nPHQ0eTE1c7pfPT1YKUKtJUNeCpoxVqXsjGNQWuumRL03vFiJDBYDBMI9I1d0pz1vYBXEdS8yKOjNXj46udwAXobkFKFCmMFGEUh9cYKLhJCBpBd2etwWAwrB6WJRnqyyQu5YogXGz5werT5YIUC85UddpXf/aqeYPBYDC0x7HiNYphpClXwxO/4QrT5YIU4wfJwkgEMl38ZTAYDIYFaYbiWg73+pNAlwtSnIGlgottxaE1okh1EEvOYDAYDE16pBff5YIUk3EsLCmIlGJsqhEHPQSM8c5gMBhOHbpckGJZtyzRDJYahGrRYIwGg8Fg6D26XJBiCtk4Gjc63jQvDVZpZMlgMBjmp9fayJ4QpHTBlxDxKGn2VgEGg8FgmCb1X2hu+NgDDg3QQ4JUKsRbRATJbqzQM/N0BoPBcJKJBWigmGl25HuB7hakRHGkEPQV3KZjQy3ZYtxIksFgMMxPrwhRSncLUppIIVjTn8VxJGGyYRV0b8Rag8Fg6A56S5G6WpBSvRFCUMzHu0IqpanVu3/FscFgMBiWRlcLUjOREvoLLrYlCSPNZNXviVXHBoPBsPpohAApu7+57/4UEpvsBvsyOJYgVJpyLUBNR8QwGAwGw3wkseyqdX+1U7IoXb9BHyQmu5wTL45Vejo+k8FwEkm3226GrtIg5MwNIZXSC241nW4mKaWZADWcHKSQhJFisup19W6x0DOCNB0+SGlNvREkJrsuzllDT5KWq9mVtnVH4oXKXSo06caRs3+P96qZeV+EKcmGFSQpvL1gsusJQQKScEECpZlhssPokmEZmW9kIwSUqw3+8dPf58lD47iOxdhkjddcfQEvf/G5aK3xg4gP//vNvOiSMzhv92ZUsmVK6z3veeQgD+87witefC7ZjNPVvVVD76OU7qkmsusFKc3MbMZKFnjpnvOtN/QGI2MVPvLZm9l7YATXsZumYUGySWQYMdifZ8uGQWxLUipkCSPFxFSdgb4cliU4Nlbhr//lP/n9d17H9k1DHB0t88+f/yFXPecsLj53O3c/dJDrv3MXL3vBs6hGii/95z1sWNvPiy87c7Uf33AKkbabfUUXmbSbvUDXC1Kas6W8m+wXb7YtNywvqTnuyOgUn7j+Fl5+xbnsPm09dS9AJiY2P4gYHijwmpdeQDGfablWM1luAGBbFv/rXS/nzz/6bW649WHe+urnUKl6fOTff8COzcNcfO52hgfyrBsukck41Oo+N932KKdtW2MEybC8JO1mIReHDuqVUVL3C1KaUCmmM7Q3xN7Qg6xf089vvvXFbN0wOO85aW9TE3uADvTlePzJY3z433/AY0+OUK56HD42xRe/cy+/+sYXsHXjIH/+z9/hazfdz4GDoxwZLfNz/+1j+GHEkWOTnH/2lp5pMAy9RZSE/RT0RrPZM4Kk6Y0MNfQygiiKGB2vsn64j0ipeIRE0sOc5T0ngCjxmBsaKPDqq87jqcMTWJZksC9Pudpgzxkb+ev/+Toee/IYWmsyro3jWDQaASPjFb5+432x08NqP7rhlKS1XPWCY2fPCJLBsNK4jkWkFL/xh59h3XAfQRgt6HQghWCiXOOnX3IBb3n1pXzvlkd4wcVn8LwLT+cfPnUTG9f2sXaoyNqhEhecvaXtPV754nOTCPYhrmOqo2F50YCQ4IeKsSmPbjfemRpgMCSEkUIIwdte8xzO3rmBWsOfscZoNkII/CBk+6ZhLCn51s0PMjpe5fzdm/nkF2/l2hedw+33PcGNtz3KQClHpHUcIDiK1zLZUpLNOARRxCuuOJdfet3zVjsLDKcgAlBa4yX7yHUzPSVIxpfBsJJopbGk5CXP2c2OzcNLvv7iPduYqDSYKNcZHshz4TlbOW3LGq649AxyWReA79+xlx/f9Ti//rMvopBzCSNFpBTbNg6t9uMbTmEEAqsHbHY9I0jxKvnVToXhVEZrTRQppiqN+Ge1gR9E06tXmf4phMB1bfJZFykFtiXZvmWYqYcPsvfAUdYOFxnsy/GsnRs4Y/taokjhBxGf++advPDiXVz13LMIwgitIZvpmWpo6Fl0T8zBd31NSEdFxybriUmlV7LW0Cs0y9hEhUgp8jmX2+47wLs/+HkyjkUm46DUdJmTUlCr+wz25fgfv/xSnnfhTgB2bBrmkceP8MBjh0BDqZDj9nsP8Ft/eT0NPyRSirGJKkP9BT77jTsp5FyOTVS5aM82/umP3rygedBgOGF6oNnsekGCOB+jKFmkaCqtYYWIIsXu09bRX8xy90NPMVWp8ck/ext9hSxKxzHqtI6dGY6OlfnE9T9mZKzcvH7Tun4OHp5kslxnw5o+SoUMTz49xhnb1/LLr38+f/mx7/DGay/mxZedyRve/VH+6y9cydNHp/jq9+6JozpYosunnA29i0B0f+Sg3hAkQeKyKIzZzrAyaK05Nl5ly/pBCrkMQsBwf4Eztq2lVMzOOb+Yz7B2sIhtWc3r1w4XyeddJsp1XnjJGWzZMMgjjx9l3XAfZ+5Yx9qhEgOlHFs2DDI8UGD7piEyrkOxkOmJ3quh9xACtALHEvQXXbq9u9MDmhmjm/8YDMtHusjV80O+dfODlApZclkX349QGly3fZ8tk8z7NMMLCcGW9YN84k/fygsvPoPb7jvAbffu5+hYGY1molxvziNVax5aa8rVBpPlemwO7O52wtCjxLHs4piKrm2tdnIWpSdGSDMwFdewAuw/OMaD+w7xqqvPSzYzE4SR4ls3P0CxkJ2OzpAshB2bqHJsooKTVPKRsQqP7D9CECpuvO1Rvn/HXvY/NcrzL9zFQCmHEILJSp26F6A1jE5UKRWyrB1ScaNhhv6G5SRpJ8s1v+mT0wtFrGcESaT/pMFVeyBzDd2PEPGWJh/6zE1c/dyzueKSM4B45PP4U6P8zSdvoJTPECnd9LOzpGB8qka9EfCKF58LwP6nR/nYf/yIg4cn0ULzN+9/Ha988Xl8/ab7+eFP9gHw7LO3smPzELmcw/Mu3MmDjx3m7ocPgjD7IxmWl7Q0eZ4iHoD3RvCgnhAkTRyiJQ2s6tjSrEkyLBtKaTKuwxuvu5i+Yg6AtUMl3nTdRfzxf30lhZZgqiljE1Wu/+7dDPYXALj4nG1c8kdvnnPe1o1DnFttkHFt3v0LL2l+/qE/+Fn+4V9vZN8Tx/iZay7ESvaqMcXasJzE7aTGkpDPOqudnEXpDUFSmqmaTxQqbBlPzjUFydRgwwliW5L//Z5XzVhpdOVlZ3LlZbvn7fgMDRR4+2uf2zS1zfb+TD9/7rNP47nPPn3OfWxL8htvuYJf/7kXIa2emco19Bjplj2WJSnl3a7vyPeGIAGeFyWutyLe9MwokWEZmb0GqNPlBfNv6Lf49VIIsEw5NqwEcbmq1P3puaMemETqma5ZuqeHlNN7fIAZIBmWh3Z1dbnqr17gc+PMYFgJ0vaxXE0FSRD1QFnrjRGS0pSrAVGksKSgkDNbPxuWl3blabnKmFjoc1OQDSuIEKLpiNMLIap6YoSkgXqyLkQIgS2lidhgMBgMixBHF9HYlqCv0P1ODb0hSFrT8AIiFYfvL/VAxhoMBkPXIERPxErsakFqnYurNUKiKI73Vco5zc8NBoPBsDi90F52tSClKK0ZL3uEkcKWkkLOjJAMBoNhSXT/AKnLBSlRdKVhsuoTRrEtdKCUSQ73gOQbDAaDoSO6W5BStKZSCwijCNuWFHLd7y1iMBgMhqXRE4JUqQfUGiEQuy+6ThzQsgdGoAaDwWDokC4XpNgkV/dCQqWwLMFgMYPbDLViJMlgMBhOFbpckGLBqdZCwjB2+S7mXYSJjGwwGAyL0muz7N0tSInuTNZiDztLSvqLLpYRJIPBYFiUXmspu1qQ0sys1sNEkATFrNMTC7wMBoNhtQkjFW/bQ2+IU1cLUspU1Y8FyZIUC47ZzMxgMBgWQSnNWNlrBvBVPWC/63pBakZpSMIG9RXcaUEyumQwGAxt0cnu2po4pl0vTHV0rSClYq60ZmzKIwiSSN9Z24yQDAaDYR7ibU3in1PVOAZoxrEYagYU6F66VpDSXNMaKskckm0Jhvsy2IkgGVkyGAyGaTTxdj1CxGJ02wNH8byIbMZi+8bS9EldSteHPNBaU6n5hEojpcB2LLOFjMFgMCTEo6F4SCSlQEhBtR7wqW8+zGMHJ5BSsGE4z1k7Blc7qYvSG4JUDwijeF/4gWKmuemU0SWDwXCqo5v/pH/r5gEhBEKAQICAci3g0Scn+MKN+/jC9/ZRbQSsGcjyxqvPIJ9JItx0ccPZA4IUhw6KIhVvzmcluWkU6YSYXch7BmFeu+HksfxbNug2v7U53CznseC0FnrBTKeu8bLHyHiDp0Yq3HzX03z39qc4OFLDDyIyrsXPXbObV73wtJ7oyHe9IKlkhBRFGlvE2/BGSqO1PiV2jRXNf5ZyjTjhXs7xfG8vEU/s6rYH2jUEC2bFIvkkWFzbj2/Wc7maj+W4z8Kx9TvJgxnJWb7TOivLOh4ZLLXNWP4mRrT5re3hJg0votII8PyIWiNkquoxUfEpVwOOjNd47KkpHto/zqNPTdDwQpSCIFLs2tLPa644nf/ymj1kHCtej9Tldb7rBQnA8xKnBluwbX0xcV/s8pxdYYJQndD1YaRo+BFKJcLe0jObF60RUuAHEQ0/WvZnyjhWUnFaak5LW6q1JuNKMs7CxVZrsC3R3htzhYrNytx2ue66HPcRi96l429ZjaqbfGcY6fYdlXmoeSFhqKaFbL5LE0UWYrpuRYlzQesp1WSjUcT0pqOgqXshQaTx/Ag/jPCDiEotxAsiJsse42WPaiNgshowMlHnyGiNcjWeW0fHHfco0hRyDru2ljj/jDW87iW7eM6e9c1kd7sYQQ8IUhgpwkjjOhI/UHzqW48yVHJRip7XJKV0s+B28iwCQMeVpOFFLLEPOf2XEPhBSLURoNTSCqoUgrofUan5i1fSDpOW6k8+Y5PL2vM2GFprclmHnGsjBAucB44tKRVcWrVWa03WsXGduc6lGcci41rN80VyHykFpbybtDe6OdLROp7TzGVtrMQUshBZ1yLjLM2pVWnIZSxyro3SeknFPW2A/EBR88I0q5eMJn7nkVJUauH87bGASCkajYgwShvw2WcLNPFWMrMb62aaietFrRERqQ46XRrqfkQQKaRo941p+gRBGFGpBSg131kznwdgquYTBKrjOiIAP1RN4ZkhSAKmKgFBFN9vquYTBvEzlmsBfhhR9yIaXtjsTLW+99ZkawWhUuSzNhuG82xeW2DjcJ6dWwa49Jx1XH7OemxLJnXkxC0qJ4suFqQ4I4NQE0aafMbGDxV/+ok7iZTqei3qZMAxXVA6fZqZ9udOr1Jaz1mlLecxX0QdLOcWghUJ36RnpVMm39OalypZ7AeJR9HCKZ2Tf9NzZzPzMuva5DLWDNNTKkj9xcwck5TWGtuKdy+2pJj3haRpzWUtsq7V4ZxEfDOlNYWsTT5jx43oceS5H8TmnvlNhouVJJ0IkmayGjRHAe2IlKJWD5MGd55GXsNk1ZvTWE+fI4iixEyf1PN2KWz9TMyeZGk5q1leUpNdmzLTrn6kWIKO8r217M6oH8noJfaCi0ftQpBYJmbOB013sARBEGFJSSnvkMtYFPMufXmHbMZmoOSydiDHYCnDuqE8m9cVOG1jidM29jW35onTtHQT5WrTxYIUY0lBwwuYqvoEkY4LaQ9kcppCrRayvus5jWMn5DM2rmt1dJkG8lmbnGvROhCbbx6lr+g0Jz9XEykEtUZI3QvnjEBEMqqaqvpNZxdmHQ8iRaUezHnQ6XmEmbZ8L4jwgvZmyPGyN28605HUgiSNTToa7XRhdyrASumlzdGk6SJ+1sW+T+tkVf+8J7SkW8/8Eq3iNLbm7XzVU6n4O6xEFBbNNjG/jMb5noqNbn83AbmMQ9aR874jpWMz1+z60fLoi6M1rmuRzzlzRu0SQT5r49iimYa0TmYcK2kbRHMknM/auI6VjKgtSoXYIlAquPQVXHJZKxaiwTxZ12qXlJb86yTx3UX3ClKSm4WczWuv3MUNdz7NuTuHWDeYi4f70NUmu2SkTD5jT3sGLk/GkMskcy0dXpHL2Iv2ztMeZ6ngNEclq5W9qbmp3ghp+FH70ZjWTNUCVBubY2rHr9bDGQ2EAIIottc3p6mSB63WY3u9mHWfKNJMVr05E8ICQRApqvWAULXcawHSdJVrQddMMGutcW2LfBIBZcFHmC3uJCbF7OIjP62hmHeak+sLnWdZgkLOTkxO7fNJJ0IybZZqm+PNutIm+U3Bz2edJYxe58lDN85DPavTJ4Fc1saxZWJ+i829qfDQIkhZNz6vU9LRXzrSijsEx/cM3YLQS5nhWyVqjZAnj1TYur5IPtu9GmroXbQGP4xmNCZxgwWVmj9DoBOrPJFS1L2QSHUo3onA1RrTgrTalS+db8u61nGZYTOuJOvaizoKaE0yUpALdnZSM+lSGuZTCZ1YTGYNROf8Br0vPu3oCUFqpWkeYPUr80K0m4hcifv3zo2Pk+PttS70iIIZcxOpaavbHv2ZTBp9oL1rREyndeukvFex1EPzO1I8k+kJQWpOs5hFkYYVRC/5wIl+WzeU5pOYjiV4qhmemfSEIBkMBoPh1OeZaag1GAwGQ9dhBMlgMBgMXYERJIPBYDB0BUaQDAaDwdAVGEEyGAwGQ1fw/wMAMqPdlz4lAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMC0yMVQxNzoyNTowOSswODowMCDWaogAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTUtMTAtMjFUMTc6MjU6MDkrMDg6MDBRi9I0AAAATXRFWHRzb2Z0d2FyZQBJbWFnZU1hZ2ljayA2LjkuMS0yIFExNiB4ODZfNjQgMjAxNS0wNS0xOCBodHRwOi8vd3d3LmltYWdlbWFnaWNrLm9yZ5kTMrUAAAAYdEVYdFRodW1iOjpEb2N1bWVudDo6UGFnZXMAMaf/uy8AAAAYdEVYdFRodW1iOjpJbWFnZTo6SGVpZ2h0ADM4NcSmAdkAAAAXdEVYdFRodW1iOjpJbWFnZTo6V2lkdGgANjI41cIHWAAAABl0RVh0VGh1bWI6Ok1pbWV0eXBlAGltYWdlL3BuZz+yVk4AAAAXdEVYdFRodW1iOjpNVGltZQAxNDQ1NDE5NTA5XmUo2wAAABN0RVh0VGh1bWI6OlNpemUAMzMuOEtCQkbSgdEAAAA3dEVYdFRodW1iOjpVUkkAZmlsZTovL3J1bi9mb3BkX3RtcGRpci9pbWdtb2dyMi0wNDQxMjI2MDBbMF2/GKwrAAAAAElFTkSuQmCC) + 不管哪一种开发模式都需要对服务层**session**有所了解。 - 了解session + 在计算机中,尤其是在网络应用中,称为**会话控制**。 Session 对象存储特定用户会话所需的属性及配置信息。 这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失, 而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时, 如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。 当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。

环境搭建

> 一般在进行前后分离开发需要配置好本地开发环境, > 也就是说需要在本地搭建后台开发环境,node,java,php,等后台编程语言,提供接口支持。 1、项目后台编程语言是nodejs所有必须安装nodejs软件 2、下载源码需要依赖的外部文件,其实就是包。 ```text //cd 进入项目目录 npm i 或者 npm install ``` 3、创建数据库直接在数据库中执行建库脚本 **letao初始化.sql** [数据库初始化文档](docs/letao初始化.sql) 4、修改数据库连接 ```javascript //修改models文件夹里面的db.js中的数据库链接信息 const pool = mysql.createPool({ host : '127.0.0.1', user : 'root', password : '', database : 'letao' }); //a) host 数据库的ip地址 //b) user 数据库的用户名 //c) password 数据库密码 //d) database 数据库的库名 ``` 5、启动项目 ```text //cd 进入项目目录 npm start ``` 6、访问项目 > 在浏览器中输入localhost:3000/m/index.html > > 即可访问主页(切换到手机模式) **注意** > 项目下的public 文件夹中存储着手机前台HTML文件(m文件夹下)和PC后台HTML文件(a文件夹下) > > a文件夹和m文件夹是 HTML文件夹 > > **需要保持项目结构** #### 接口列表 ##### 移动端接口列表 [前台接口文档](docs/前台接口文档.md) ##### pc端接口列表 [后台接口文档](docs/后台接口文档.md) ### 移动端web端 #### MUI介绍 - Mui 是一个ui框架 针对移动端开发的ui框架 只能适配移动端(流式布局) - 学习官网 http://dev.dcloud.net.cn/mui/ - 官方文档 http://dev.dcloud.net.cn/mui/ui/ - 组件展示 http://dcloud.io/hellomui/ **特点** - 最接近原生APP体验的高性能前端框架 - 轻量 追求性能体验,是我们开始启动MUI项目的首要目标,轻量必然是重要特征; MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K - 原生UI 鉴于之前的很多前端框架(特别是响应式布局的框架),UI控件看起来太像网页,没有原生感觉,因此追求原生UI感觉也是我们的重要目标 MUI以iOS平台UI为基础,补充部分Android平台特有的UI控件 - 流畅体验 下拉刷新 为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机上, DIV动画经常出现卡顿现象(特别是图文列表的情况); mui通过双webview解决这个DIV的拖动流畅度问题;拖动时,拖动的不是div, 而是一个完整的webview(子webview),回弹动画使用原生动画 #### 首页模块 1. 页面骨架 ```html 乐淘首页
``` 2. 轮播图 3. 导航栏 4. 商品区 `学习目的:搭建页面骨架,使用mui轮播图组件。` #### 分类浏览 1. 分类页面 2. 菜单区域滚动 3. 一级菜单渲染 4. 二级分类联动渲染 `学习目的:全屏页面,使用mui区域滚动组件,异步数据交互。` #### 搜索中心 1. 搜索中心页面 2. 搜索查询功能 3. 搜索记录管理 `学习目的:完成页面,本地存储,模版引擎使用,关键字搜索。` #### 商品列表 1. 商品列表页面 2. 搜索查询功能 3. 商品列表渲染 4. 列表排序功能 5. 上拉刷新功能 6. 下拉加载功能 `学习目的:完成页面,模版引擎使用,异步数据交互,mui下拉组件使用,mui上拉组件使用。` #### 商品详情 1. 商品详情页面 2. 商品数据展示 3. 商品尺码选择 4. 商品数量选中 5. 加入购物车 `学习目的:完成页面,模版引擎使用,异步数据交互,mui下拉组件使用,mui数量选择组件,mui消息弹窗组件。` #### 购物车 1. 购物车商品展示 2. 购物车商品删除 3. 购物车商品编辑 4. 购物车下拉刷新 5. 购物车总额计算 `学习目的:mui完成页面,模版引擎使用,异步数据交互,mui下拉组件使用,mui滑动列表组件,mui消息弹窗组件。` #### 用户模块 1. 用户登录 1.1 用户登录页面 1.2 异步登录 1.3 登录回跳 学习目的:使用mui完成页面,异步完成登录逻辑,异步登录回跳业务实现 2. 个人中心 2.1 个人中心页面 2.2 个人信息展示 2.3 退出功能 学习目的:使用mui完成页面,异步个人信息渲染,异步退出交互。 3. 用户注册 3.1 用户注册页面 3.2 获取短信验证 3.3 用户注册功能 学习目的:使用mui完成页面,短信校验业务,异步注册交互。 ### pc端后台管理 #### bootstrap介绍 > Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。 > Bootstrap 提供了全面、美观的文档。你能在这里找到关于 HTML 元素、HTML 和 CSS 组件、jQuery 插件方面的所有详细文档。 > 还有很多基于bootstrap的插件,如paginator,validator #### 管理员登录 1. 管理员登录页面 2. 异步登录交互 `学习目的:使用bootstrap完成页面,异步登录交互业务。` #### 首页模块 1. 首页快速搭建 2. 菜单功能 3. 退出功能 4. 数据可视化 `学习目的:完成页面搭建,二级菜单交互功能,echarts完成数据可视化,退出业务。` #### 用户管理 1.用户分页展示 2.用户禁用启用 `学习目的:完成页面搭建,二级菜单交互功能,echarts完成数据可视化,退出业务。` #### 分类管理 1. 一级分类管理 1.1 一级分类分页展示 1.2 一级分类添加 1.3 一级分类删除 学习目的:使用bootstrap完成页面,模态框添加功能,模态框删除功能。 2. 二级分类管理 1.1 二级分类分页展示 1.2 二级分类添加 1.3 二级分类删除 学习目的:使用bootstrap完成页面,fileuplaod图片上传,添加功能,模态框删除功能。 #### 商品管理 1. 商品分页展示 2. 商品添加 3. 商品修改 4. 商品删除 `学习目的:完成页面搭建,fileuplaod图片上传,加功能,模态框删除功能。`