WEB架构

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlQAAAE5CAYAAABWGr4wAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nOzdeXxddZ3/8dfn3CX70n2hm6VQarGQW5RRcZzSFBRlRBlRAREdRx113EYdl1HrMuI24/5zGQcUxaVYlWFEShNAERG1LVYsW9lKW6BLmtybZr/n8/vjJm2SZm1ucnLT95PHJeee8z3nfO5JmvPJ9/s93y+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiISAQs6gBERERkCLelZ5LlC2CngxcDJUDvr7FepW2Q5eHeD1d2NHyI90NtG6psFmgDWo9+tTbcd9Bp/8oFFfvHEG9exKMOQERERIaQ5RrgpcfmHpNWPpOz3kqAaUffOhirSTAHOD9P5zhuQdQBiIiIyCDcDezcqMOY1MzXsMFjwxccX0qoREREJqvbG6vAS6MOY5JLUNkyO+ogpnxCVVJS8jepVMqB8p518+fP//iqVaueLi4uXhJdZH1jKykpWbBy5cqHGIfvSa/zFB9PbGM9loiIHKeOeDLqEApCkUVeQ3XC9aGaPn36K2fPnv3eBx544Ny2trbHoo6nR2tr6+6//vWvp0Qdh4iITCJJC8gWTN+pE9qUr6HqrbS0tGbRokVXP/roo69rbW29O+p4REREhtRuehq/QJwwCVVRUdGcpUuX3vDUU099qqmp6af9NhcvXLjwq6tWrTp45plnNi9duvRHQNVItvc0gVVWVr74mc985o6ampq2ZcuW3QTM7Nm5rKxs7YoVK7bV1NR0rFy58tHKyspjnkbo3cS2bNmymxctWnRN7+3Lli27ZcGCBV8eYbzTly5duvHMM89sOf300x+rrq6uHey6DNa0N1KDfbbhrkvP9unTp79+1apVBxYsWPCl7kMm582b96nTTz/9sZqamo7TTz9919y5cz9K92PBs2fPfuuqVasO0v2kR0VFxTlnnnlmprS09Nk1NTXtlZWVF/QKr/SMM85oGuh6i4gUhISdMPfpQnfCfKOe8Yxn/CSTyfz6qaee+mz/bYsXL/52SUlJzUMPPXTGPffcsyQWi81avHjxF0e6HWDmzJlv2LFjx5r777//5Hg8PnfJkiVf6dmWSCQqH3/88X/atm1bZTqd/sWiRYu+MVSsDQ0N10ybNu0ioKftfG5FRcW5+/bt+/ZI4lm6dOl3Y7HY9Hvuuefke++997kVFRXjllAM99mGui4AlZWVtdu3b1+6e/fujwEsWrToW9XV1S979NFHX7Zt27ayhx9++FUzZ8584/z58z8GsG/fvm+0t7ffv3Dhwo8AwYIFC766Z8+eD7W0tPyxsbHx59OnT7+859gzZsy4uKur60A6nb5lvD6/iMi4CjReZKE4YRKqjo6OR8vLy88GpvfbNGvGjBmX79mz522tra27gQNPP/30f1VXV188wu0A7N69+yPA062trXv27dv32erq6gt7tjU2Nv68paVlR2lp6cpsNtuUTCafASQGi7WhoeEXANOmTTsfYM6cOa9uaWm5u6Oj468jiGd2dXX1hXv27Hkf8CTw5FNPPfWp/ueoqalpS6VSvmLFirsAUqlUJpVK+Wmnnfan3uV61ve8esqP9LMNdV0A9u3b9wUgDTQBM2fOnPm63bt3v+Xw4cN/BjpbW1vv2rt378dmzpz55u5d/NFHH/2nGTNm/NOCBQuuymaz6f37938NYP/+/d+orq5+GVDRff2uPHjw4LcpoMFbRET66Go7Ye7The6E6ZT+yCOP/PNpp51206mnnvrzBx98cB3QAVBaWroIsOXLl98zwG7J4bb3LHR0dOzuWe7s7NwbBEE5uWaq7Pz586+aOXPmGw4fPnyXu7d2FxvqiYT2hoaGH1VXV7/q0KFDN06bNu2ynqRhBPEuBGhpaXmoVzxN/Qtu27atGHJNbytWrLhr69atFUBz/3L91/eU73k/3Gcb4rrQHefDPculpaWLActkMn/tHUNnZ+dD8Xh8Nrk/AMKOjo4dDQ0NP509e/b7H3zwwRfSnTA1Nzf/uqOj4/EZM2a84vDhw7eXlZU9b+fOna8e4DqJiBSGwEx/EhaGEyahAtp27dp10cknn/ynJUuW/Pdjjz32OgB33wdw3333LW5tbd3Vf6fhtvcoKSmpam1tbQYoKipa3tnZuQfIFhUVnTx37twP3HvvvSs7Ojp2VFZWnl9dXT3sTf7AgQPfPfXUU+vKysrOKCoqWnbw4MENI4knm802ASSTyZM6Ojp6lhcMe3WOw0g+22DXpVeRsGehpaVlb/c+y3s/NJBMJk/u7Ozc3VO2qKjo5Orq6r9vbGzcOHfu3A/t3LnzNz1l9+/f/83p06e/NpFILG5qavo5EPl0BCIixy3A+vzGnBoOANvB9+NBSIDn/vOQXProgOEYZgGGEWIEYQy3+cBqcqOmTyonVFViS0vL3p07d75i2rRpr5o3b96/A7S2tj7R3Nz8m3nz5n2ppKRkIRAvKys7o6ysbO1ItveYPXv2VUBlUVHR8jlz5nzwwIED3wVw9wRAcXHxYmDarFmz3jGSWFtbW//Q2dn5xEknnfSVhoaG68jNXzRsPO3t7Tvb2tp2LFiw4DPA9OLi4mfMnTv3fWO/escayWcb7LoM4snGxsaNixcv/lZZWdkqIF5SUnL2vHnzPv7UU099vrtMbMmSJd8/cODA1x955JE3lJSUnDF9+vR/7DnA/v37ry0rKzt75syZbzhw4MA38/dpRUQkL8zfQ0fny4lVXsmd5ZeztuIyaisuZ13lFdRWvo7ayiuprXxd7n3F5Zxbfjnx8itoOfx6YtkLwW845phh9PV4J1INFQCtra2/37Vr11sWL158dXt7+0MNDQ0/efDBBy9ZunTp15cvX77DzJKtra1/feKJJ97fs89w27uPe9eqVaseMrPihoaG65588slPAHR0dNy/b9++ryxdunRjZ2fnnn379n21qqrqgv5xDeTAgQPXLFiw4PN79uz5l97rh4tn586dlyxduvS7NTU1T7W2tm7ft2/fN8rKyp4z2PXYunXrcXV6HMlnG+y6DOaRRx65YsGCBZ9eunTppng8PrOjo+ORffv2fXb//v3fAJg3b94H4vH4nL17934aaNu7d+/7Fy5c+LXW1tZbWltbnwAaDx069POysrLVzc3NvxnqXCIik94kSBTyzu1akgnIZuAcoC6dJdcNpwOjA6eLXJea3Ks+kwSMknIGra3LeuTXSU8PjNFwfZBOVFFelxUrVvz5wIED39m/f/9XJ/K8IiJ5t7lhERZ/fIAtHUAnUDbBEeXDDtx2Y94OdGDWTujtGB1g7ZhnCS1B4EU4ReBJsCIgCV6E2Rk4s/ocMYydxHlleyP5NN1OuBoqmdJmzJo169XxeHzO/v37rxm+uIjIJBcWO7GuvuvMvkpR24epm3mYc9KXgn2PgurC498inr2WNdMahyy2wWOUE6dkf4J4MkEmFiceSxBkvwS8sk/ZSVCTp4RKpoyampo9HR0du3bu3HkRqi0Ukakgifdp5nJ28tvyd7G+oueBnh9Qlz4HePMAe09S9mWysS9Tl+5Z4eQeOurpkA4Qh0yuFS1bnGvqSzqDtvkVqclPREREBlPfchLetbvXml9SW/nSPmXq0v8IfGdC4xoLt1sI/FbcGruf7Mu9nBDzkBADi2OWwMIEIQnMErglsTAB9kpgRd+DBnOpLX86ks/TTTVUIiIik1XWvV9j3tnc5EVcYO0AuBu3Zi6IvsFrFMz/TGgPYd5BEHYQxjow7yAMOwjiHZh3EVqSIJvMfbUkHiaJkSQMkuAvoH9CpU7pIiIiMqjNDVVYvH9fo9vAPwfBLsxfi/OBSGKbTDpsNhdURDruoBIqERGRycrdqM+0AkVRhzKpxZjFmsoDUYZQQE8FiIiInGDMHPhV1GFMcr+jouKYKdYmmvpQiYiITGbedSUW+w8IngteBiTAE2AJjrY0Wff/j7Y8eb9tfZfztS5KjvEjSireyVnWGXUwIiIiIiIiIiIiIiIiIlLQJks7aGHLjQPyftw+Cl4adTiTk7WAf4q1FZ/p7mQpIiIjcUfjNNqDq4CVQDFGMWH3V6MIJ9ar9EB9nkbyfjTbBuKDLI9m2+BljSxOO04bAW04bUAbxn10+gd4UVXDCGIcV+qUng/1zV8C3nHsz4Uc5aXAp6lPnwS8PepoREQKRkfwHeAVR947R1OcE+W20/M5jf4p1znEbR5w4cQH1ZeGTcgLvzLqCAqHvTbqCERECoa74ZwfdRiT3Hms98jzmcgDmCJ0HUdOzcwiIiN1e2MVUBZ1GJNckhcenh11EEoE8kNJwsjpWomIjFRHPBl1CIUhiLwLkxKqvDAlCSOnayUiMlJJ0326QOgblReuJGHElHyKyImjpqZm/urVqxPHfYB2/c4sFEqo8kPXccSi7zgoIjJRzOytYRg+lUqlrkmlUi9dtmzZ6CY5TqiGqlBE3uY4RegviJHTtRKRE4qZTQeuBK6srKzM1NTU3GhmG83s5i1btrQMuXOAkZ2IKGWslFDlh5KEkdO1EpETWYWZXQpc6u4tqVTqV+6+MZlM/vLuu+9OH1O6qy3AdKsuBPou5YeShJHTtRIRySkFLjazizs7OztSqdQtwMaioqL/veuuu3IjfwdmJ8zgnQVOCVV+KEkYuSCVSk3lXw9uZm/asmXLd6IORPKjpqbmbjN7TtRxyJSXBF4KvLS9vZ2amprNZrZx150//dOB570q6tjyrQm4DzgIhDhOLm0MMbz7veEEgHW/C8jlLPPJTcETG/ToEVFClR9TNUH4LuYb8Fgn7l24dxLv/urxLvCuIz/4AUbWgiPLXWE5MU7F+TZ9f85CJuE/hDwyd/9vQAnVFKFkSqJguTlPnTCcevcXtzexrmLDce+/OX0tRt9ZNzo9HGtYY6WEKj+yTMlr6S1kfT90HV2VWwygK0lgRZjFMUvQZQmCbAKzBFlLEFgC95Bjr01269atU3KgulQqdTnwfeC6qGOR/Nu6datqomXUUqnUp4APj6BoO3CLmW1MJpM3Hmny++wrF41nfJEw/x516Y8BBxioQdMxck/Px3ACjBhYAB4D5gJzjtkn8Mi77k/BJCAKlp2alVT2VgJ767DF3CHonq3TARvyWkT+Qy8iMkm0mNlNYRhuTCaTNw3YKT1eHJLtGmDXgrYLeBizDKFnu5Mqx7ub/I5O/5xr9cjdXALwOB48jfmzgWl9jtihGqopYqDM2J/ArQ7jb4AVEx5SPpj9ELdrIGwnJCQgJPCQkBDzLGHCCTqtu4YqDhYnsARkc8tmC3D/IlDc66hKqETkRJYGbgQ2mtmmYYdNCAf4a934GWHXu4EmLPFO8I+PS6TjxXw9VZU/5SzrHPW+N+4tpaTi2+CX9VmfVEI1VfT7Rtp1/LbiCtZbyAaPMa35+5i/JprQxsC9FPMK8AQxz5KNZwm9C/MsWJagK4sHMbAE9GryC4MEEAdv5dgO+5H/0IuITCR3bzCzG8xsY1NTU93OnTvbR7xzp4f97tT3cUfFK1lvPb9LP0Fd+mTgivxFPM7cfkhj5ofUZVrAQzhSK9V7uafZz3otx4GiAVuEYtnI/1hXQpUfvb+RbcRa38L6itwP+yWWZVPLvxHrKryECi7CuejIz3PQLxfqmXFHTX4iIgNy9/8XBMHHt2zZMvraGIAi936/NXf0Sqa62R/ACyehgt8Dv8b8QHeTX5hr7gtyX4EjTX0eBhhB7ok/i2PMBX8l2MI+R2wNI/9jXQlVPhjZXglzI38363Cf7R2NBykpDym4KWr8xxD7Hzxsw8jmaqa8C4tn6fQsAVlCYgRBgqAr1xndLIFlE5jFCYMSzK9DTX4icoLatm3b3jEdoMPDfs9FP58/eaJvc5kX1pOoZjdj4c1kgzQxwtzACe4E2VwNVRYnhhGzgE4MMyPsTqjiTMftWeB9E6pYZ+T3FiVU+eB9mrHmclv6xcBNR9YUl11EwSVTAFYEYTnmcYh14d0JlYddxLqb/sximCcIgyRBNoFbEoIEoSUxL0FNfiIixy/Z1UG2T0Y1l8bMBjZlPkKyq5ls/IoCq50C9/W4rcf86B0hsKOtHj0fN8vRO2cMwAd//qtiTuT3FiVU+dE3Mw7tJ9Rl3kvI/Zg/F7OPFOhTgC/PvYxj86BeP/xHmvmCo+nT4M1+kf8VISJSMP6uuon65hbw0l5rLyLmF+USrYK8t+RbM8+lLeoglFDlhWf7VcSUg3/zaJ2UfuCPMiVUIiIjZeZsTt+OcUHUoUxedhc2dOfdiaCEKh882Ij5u6IOozfrfoLUbZK1NJpvjDoEEZGC0mlXkuSL4CeDF2NWjFMMR16DDTo73GC0Q20fbttACUz/dcO9H/s+xr345HiKXglVPnSWf4BkJgu8GKgEuocNIMGR1mDr9cPpRxrGeh1loOXjXlf26F/AjOZnrDpy0l5lPA/rei33/svAe5azQCe5sdU7yY298ivaK0YyYrCIiPS4oGI/cHnUYcjQlFDlwwXWDry3+zUpnNo9AbGmyxARERl/k6w9SPIkGGRZRERExoFqqKagVCp1ZEyS1atXP3vLli13RxmPiIiMwXoPeH7zhzB/M7muJJNFv9HNe0Z59r7rHe81R1/fbda9Pbd/9/qg1/EG2Kfv8e6gtfk/uHD+0FP4TAAlVFPTxT0L7n4xoIRKRKQQuRt1zT8ojOnLBumrPlTHkz7FbaCVwx3vBZSULQUivz5qDpp6zMwu7vX+YoZ/0kNERCaj3zZVF0YyFSW7iPUeeT4TeQCSX2edddaZ7v6MXquWnnnmmWdEFpCIiBy/w6Y/iIdXzAsPz446CCVUU0wYhhf3XxeLxY5ZJyIiBSCuhGpkgsi7MCmhmnqOSZ66+1GJiEihianLRqFQQjWF1NTUPBM4bYBNK1Kp1IqJjkdERMaoVTVUhUIJ1RQSBMGgNVGqpRIRKUCqoSoYSqimkKGSpqGSLRERERkbJVRTxOrVq08GBn2az93PfPazn710AkMSEZGxiqnJr1AooZoiRtKkl81mVUslIlJI1ORXMCJ/zFDyw90vtmH+kHH3fwA+PzERiYiIDCqTe3l2wOlqcgNSB7mvZuABuZxlOpCMKuihKKGaAmpqahab2XOGK2dmz6mpqVm8bdu2xyciLpEp4oERlbrNi/GmlWRtJWan46zEWAyU9noVAYeAp8H3QfB07vh2Fx3tf+CCGenx+hAik4bbxayr+Nnx7etGfeZq4Mo+68Ph5qsZf0qopoDuBKlP9VQqlXKArVu3qrpYZAy2bt060FAkObelZ5LlJcDLyDafD0HpkX+Jg//Lm5N79Z73zCGZcOrS9+L2awKu547y37Lewjx9DJHJw/w71KX/ldwfF8dOfpyTAEuAJ3LLJMCS1GcSYCcfM99f1pVQiYgUFHej/vBa3N9H1ms50hd1zL/PDXgW5s/CeTvnZPayuem/sdg3qC1/eqwHF5lEWsglSdOADrBO8A6gE/NOwiCLeVeuOZAQc8d7mv08ALJRBj8YJVQiIiOxwWNMb/4H6pvfD56agK7C8zH7GIQfpD7zLYKuj7JmWuO4n1UmP7Mf0hX7AMn2DGH8nbivjzqkUTH+hXMrfoHZ6P8KWe8B52SuBl7XZ72a/ERECsDm5mdhzdeAr47g7Enc/4Vs7FXUpd/P2oprj+tGJFODsZ+S8jfyPGvtXvNx6tLPoH+CMZk5P6M+00ZdOk3fpr4w1zk9cAgNrLtT+pEO6nHITGOgEQqK1OQnIjJ5bfAkM5o/iIcfJtdEEaXZwHepz7yRTZl/5vyKeyOOR6Lg/KpXMtW9zm/FrHASKnwbZrfjdODehZGFINfEZ5Yl9BAMAgJCLPefBYRhArMFwEXAjD6HzKqGSkRkcrr58Dzizf+HeyrqUPo5hxh3U9/0D6yt+lXUwciEO4P1HvR5YMHs+RHGcxyC79CS+S7l8zr4O7IjrnF1NzalpxG3mcDL+mxTp3QRkUnolqZTCLKbgGdEHcrAvBS3G6lP/xNrK6+JOhoZRx0eEuuz5gzOyXyLuuZ/p7i1hdbkG4E3RhPc8fKvU1L+dbIZqAfq0lmgq9cry5ExqAiOvOozMeI28BhUk6CGSiOli4j0dmvjamJ2J5M2mToihnM1mzP/jruGR5mq7io/AHT0W/tGCJ+iragBs/+i8O/lMXJjtJUBVeQG76zuXq7oXl/CJB3Qs4dqqERk8rpxbyklFWcDLwDOAV8GzCP3yxfgKZxdGLswHia0TcTLf8sa6zqu893WtIysbSb3OHdhMP8k9ekM8OWoQ5FxsN5C6pvuwG3tAFt1Dwcw7qe5vCnqMPTNEJHJxd3Y3Py3BP4u4CXdA/sNZh7GPODs3GQV/gGymUY2Z35FzH/MmoobR9w/46aDlWTtfymkZOoI+zz1TXextuoPUUci4yAbv4JY17V4cEr302+9h4899mUYfsz6wcvnpnYZRfkBDfTvrP+64d4fxz5+HyReyiXWvxZvwimhEpHJ4TaP05W+lPr0uwisZgxHqsb8NYS8hvr0PdSlP87aihuGTayK4v+Ns2IM541SArcN3NyU4kVVDVEHI3l2XtleoDbqMGRohd7uKiJTQf2hxXRlbsfsezCmZKofOxP4OfXprdzSfOagxeoa1+F2Sf7OG4nFxO1q9acSiYYSKhGJ1ubMJXjszxjj+Oi3nUkQ/o66zKuP2bTBk1jwlfE794R6GXXNL4w6CJETkRIqEYnO5vQHMP8Juad5xlsJ+I+oS3+O2/xod4dpmXfiDD4BcqGx8MNRhyByIlJCJSLRqGu6DOOqCM78PrLN/8fmhio2NyzC+FgEMYwjq6W+6TlRRyFyolFCJSITb3Pm78AiHJDSzyeI/54gdjW5MW6mmn+NOgCRE40SKhGZWLd5MebfJ+q58ZzTBhnbp/C51bLe9ftdZALpH5yITKxs+s3AgqjDmOKm8/zDK6MOQuREonGoRGTibHqqDOxDUYcxoczfTcjvj7wPmIbbjdBvhrb8n/dvgb+M6zlE5AglVCIyceIlr8eZHXUYE+gxgsqvsbbfVDh16R8Bl4/vqf05wNfH9xwi0kNNfiIycUJbF3UIE8u/NPC8gjaSpxvTYzz5iZS4FqyKioqXplIpnzNnzrsm4nwlJSV/k0qlHCjP86GTs2fPfu9pp512z5lnntlSU1PTvnLlygdLS0tT43jOSUUJlYhMHOOMqEPIkwzuryOw04GrgMcHKPMHOiq/OeDetRU7gJ8PsCXE+BnOC8i2zAf/8RhirBzDvjJBZs2adWV7e/vD06ZNuzLqWMag9NRTT7112rRpr9i9e/c777nnnunbtm2buXv37rdls9nmfJ2kqKjolJUrVz4IFOfrmPmkJj8RmUhTodbkrxD+PeuqH+l+/yHW+79zzuFzIfuPGIfIBj9hXflvhpw/sMvfSJyfgdVinI1zE9nwa5xf/eiRMu6XUtf8FObHU3vRfhz7yMSaXlVVdeHDDz/898uWLbuprKzszMOHD98TdVCjtWDBgk8HQVBy//33P4+jP3dtTU1NmyFXK5aP8wRBMKOoqOiUfBxrPCihEpGJsd4DyJREHcaYhfY2zjuSTOWstxCo636NTG4S4x90vwZm5mzw9zI98ypg3igj1STJk9ysWbMubW1tvS+dTm/KZDK3Tps27crDhw+/C3JJyIoVK+7auXPnBQsWLPjPoqKipZlM5tadO3deARwAKCsrW7to0aIvFBcXr+zo6NjzxBNPvCWdTm/qPnwwd+7c982YMeNNyWRyYVdX19MPP/zwRe65HL+qqup58+fP/2xxcfEz29vbdz766KP/2Nra2vPwRPHChQs/P23atEuDIChKp9M3PvLII28Bmgb4GImZM2f+42OPPXY5I0jiez7X1q1bK4DmfutKgLZZs2a9Y+7cuR8MgqD64MGD39q9e/e7AFasWHEXQCqVagXYunVrz7yVg8bbc+zHHnvsDQsWLPh8Q0PDD3qOl29q8hORibHeQrCWqMMYs8C/xY17SyfsfNPSx5NMAfbnvMcieTVjxowrGxoavg/Q0NBw7fTp0y+l3/hsM2fOfMOOHTvW3H///SfH4/G5S5YsOTLvZCKRqHz88cf/adu2bZXpdPoXixYt+kbPtoULF/7njBkz3rRr164rtm3bVvbAAw+cH4bhgV7Hfdtjjz320m3bts1tb29/dMmSJd/u2bZ48eJvl5SU1Dz00ENn3HPPPUtisdisxYsXf3Ggz5BMJk8JgqC8sbHx7nxck6KiopMXLlz45UceeeTyP//5z7MbGhqu69l23333PRdg69atJb2SqRHFW1lZWbt9+/alu3fvHreZEZRQichEOjB8kUlvOSXln5yQM23wJNjHj2tf84JrOjqRlJeXn15aWlqzb9++HwIcPHjwZ0EQlFZXV7+kd7ndu3d/BHi6tbV1z759+z5bXV19Yc+2xsbGn7e0tOwoLS1dmc1mm5LJ5DPIJWTVM2fOfPvjjz/+xkwmcyfQ2dHRsaOtre3xXsd9X2tr6x7g0IEDB75SUlJyOrmhPGbNmDHj8j179ryttbV1N3Dg6aef/q/q6uqLB/oc8Xi8qHuxMx/XJQiCDsCLiooWAZmWlpY/DrPLiOLdt2/fF8g96DFQLVteqMlPRCaO+70Yi6IOIw/eSV3z96gt3z6uZ5mReQfOsuPatyuuhGoSq6qquhKwM844476edWZWPGPGjCsbGxt/0bOuo6Njd89yZ2fn3iAIyo1fYBgAACAASURBVMklPtn58+dfNXPmzDccPnz4Lndv7S4WKy0tXWpm8ebm5m2Dnb+9vX1vr3OkAQMSpaWliwBbvnz5QD8/SaCj94qWlpbHAS8vL39Wc3Pz7SO/AgNrbW194tFHH33tggULPjdnzpz37N69+62ZTOaOwcqPIN6eOB8ea2zDUUIlIhMnsD/gfkHUYeRBDPfXA+8e8R7uNmQn9QH3sfNgdLt028d5JbuHLyYRiU+fPv2yPXv2vLupqemGnpUlJSXPXbJkyfeAWb3WVbW2tjYDFBUVLe/s7NwDZIuKik6eO3fuB+69996VHR0dOyorK8+vrq5+NYC77wMoLS09ZQQ1PH307Hvfffctbm1t3TWCXRrS6fTmOXPmvG8kCZWZ9fSzKqW7D1UikajqXebQoUPXHTp06PqFCxd+dsmSJdf/5S9/mZuHeMPhYhsrNfmJyAQKfxV1BHlj/usht7sbdemL2Jz+JXXpvdRnuqhLN1Cf/gt16Q/yOx++g76FA/ZbGUFst486eZMJU1FR8aJ4PD7j6aef/l5bW9tjPa9Dhw5dn81mG+fMmXNZT9nZs2dfBVQWFRUtnzNnzgcPHDjwXQB3TwAUFxcvBqbNmjXrHT37tLa27m5sbLxx0aJF3yorKzsDiJeVlZ1ZXFy8dLjYWltbn2hubv7NvHnzvlRSUrKwe98zysrKBp338oknnnh7WVnZc5YuXfrTsrKyZ5GrrJlWXV398mQy2WcKpJaWlvuz2Wxm7ty5r+teVTJ79uwjk3kXFxcvrqioOAfwtra2nUEQFJOrPSMMw0MAZWVlzwemH2+840UJlYhMjNs8jjEz6jDy5I90VAyeHG7wGHWZ7wE/x7iAXKfyAJiGczrwaVoy27itaejmvHMrb8bta8C+UUXnVkNd5m3c3DR9VPvJhJg1a9aVmUymDmjst6nr0KFD1/cek6q1tfWuVatWPXTaaaf9IZ1Ob3ryySc/AdDR0XH/vn37vrJ06dKNK1eu/EOvp/sAeOSRRy47fPjw708++eTNNTU1zQsXLvxuGIYjGr/pwQcfvAQIly9fvqOmpubwwoULr6E7qRlIe3v7Qw899NDqbDbbtHTp0ptramrazjjjjMdmz579brNjBrZt3bVr12UzZsx4y+mnn/7Iqaeeekvv2N09vmjRou/U1NQcnj179jseeeSRy+mupm1vb3/gwIED3162bNn/rVq16khT6WjjHS8TfkKZGN2j0vZ+rFTGWSqVuhz4PnDd1q1bx3lakQLhbtzaVIPHrgB/NTAn6pDGYDvwE2K+gTVVO4csWdf0cbCPjuCYe+nyZ3UPoTC49R7wvMOriIW1OOcA5wAzRnD8TqAeYyPtdgMXVOwfwT4yCQw0vIBMbupDJSL5d+PeUkrL3sStmX/Eg9OPsx/Q5GF8kbWV7xlR2Rv3lkLw3hF+5vnE7E3AZ4YslRvn6p7u1xdwN+qbm8GHG74hAbwI50Uk/VvUpW8itC8MO+ioiIyamvxEJH82eJK6zFspKd+J2xe7m7cKX+gjHz+rrPKUESQ6R5kvGHU8Zg6jiCknAF5K4LdTn7mbusYTbF5FkfGlhEpE8uPWxtXMyPwZ/Osc10CUU4R39u8XM0z54HjH7zl8nPsBPBuCW6hr+tqEDlIqI9ba2vr77i4bau4rEEqoRGRs1ntAffrfCIPf45wWdTiD6CA3LUbPKzu63YMq3EfWH/GO6ieAHSM/dHjLqELZ1LKQzek3kJfJj+1tlJZvYfPhmrEfS+TEpj5UInL8NniMaZn/xnl91KEM4a+srXhWnz5Dm9KnEeO+Ifbpy/zt1KdfxubMDZjdQKzsdtYc8/RSznoLuSXzVgLfBBQNWOYI/wlB5eYhi9y4t5Ti8nVgtQRei3flN2l1TsOyv6EufQG1lYMOoCgiQ1MNlcgJZPXq1TNXrlxZnpeD3eZxpqevwyZ1MgXGl47pgH1+5f3ALwbeYdADLcT87RBupiv9z0MWPa/i17i9CGewpwHbgauornztoIlZj+Lyr2H8AvO3j2MNYDnYzdzSPOFj94hMFUqoRE4gYRi+p6ioqDGVSv0+lUq9/uyzzz7+ZqNs5lNgr8pjeKPlGF8E28Tgj9Q9RFXF9wbcEvABBp9/zHH+F7cvDbjVbPiBOddV3E68YgVmlwD/BXwP+DbO+7HscmorP8RZNnT/qVsyL5y4hNVLCcJfUpd+7sScT2RqUZOfyIklSW4esLOBszs7O7+TSqX+bGbfSSaTP77rrruGHg+px61NFxDyb+MZ6DCaMH8Na6tyg2tubliExS8DXgM8C6wF9424f3LQpOXcygeoS38Q+ChH+yM1YVwN4deprc7N/VWXuRP8OnrNCwbM43Dz2cDtQ0aZq326vvs1egEvP679jl8R8H1u23cma2arM7TIKCihEjmxBUCNu3+9ra3ta6lU6j53vzqZTP7g7rvvfnrAPW7cW0po/zOxYfaxBziXtVUPHlmzbvou4Crgqtzo4xW7WWNtwx6ptvI/ucm/RvLwCyA8iVjbxmMSidqKn3JrUwuh/fLIOudOasuHnnomL+wq8NeTlw7oI3YyYdHngLdO4DlFCp4SKhEBwMwMeKaZfaGzs/MLqVTqIeB7sVjs2j/+8Y9PHClYWv5WnEEnK50AMwl98EEphxvFvL8LrB2oG7JM1ub2mVfCw3dNyMCYteVPszn9KYzPjfu5enN7E5sbPtOdqIrICCihEsmf+d1fL0ulUpcNWbIwnAJ8KpvNfqqmpuZx4IedM5Z8/16PtKkPoIiA/4f7eROS1NzkRVjzx3p107qW86r/NO7n7VFW8TVaMu8ETpqwc0IMi78deP8EnlOkoKlTukj+zB++SGEys8VBELy2Zd6iK2AyTHBstdSlXzMhpyrK/Av4oiPv3esHLXvbvnJu8mGGShjATZlZg45z1UgIPDjgtvH1ugjOKVKwVEMlkifuviXXasZv3f3rUcczEHe/PAiCl4xil0Z3vyObzb5z+/btj/LZ2/5z3IIbLbMvsumpGzh/7lhGDB/a5oYqnI/0O+81bE7PobbiC0dqyOqaV2HZt5C1y0lmnPrM/xH6BtZV3jDosetbToKuy3EuBn82dZmd1Ke/QxC/jjWluwG4+fA84ulrwdaM22cc3OwIzilSsJRQieSJHW1+enzbtm0/jjSYQdTU1JwFDJVQuZk95O7f6+rqunb79u27+23/m3EMb7Tu57w5w89nt94Dnp9eB1YDNgfz3Th3c6jiLi6xoUdMv3NahnMyDwJn9VobYHyOW5vPpC59C/BmCJ9L7wom90sxLuXWxrM4t3rLwAfv+grOK468NZbhfIZs11XUpe8A/gTZN4HlZ9wwERlXSqhExN19RxAEV8fj8esGfbovZ7I0azoWvnvYPlR1jesg8zWwU3t2A8CA6Zk/sznzLtZV3D7o/ustpD7zr7gf+0Sf+6XApUNHGXsPcGx/urrmOXj494PsZcDfdr9EpECoD5XIiWubmb0tHo/P2rZt2+lbtmz5r2GSKSDSp/sgN2TC1cDfs7Z665Al65oug+Am4NRBSpyBeR31TS8e8jhrK36D2z/kzmuje+rN/ZJc017/9eHr0R+0IlOK/kGLnFhu7K6N2rhly5am49i/HSjOd1DDOAh8msA2saZ8x4ie7Ks/tBi3qxn+d1wMt+u4zecPOW7VuoqNwEbcjdvTJ5MNvgZ+/ghij+Nd7+C2fZ88siZhRhv/NIJ9RaSAKKESOYFs27bt18BYBqTcC1TlKZwRsseorfivUe0Sxldjnhy+IADT8Mx5wP8OH4o5sJO69BPDlj3q/WSLjw4/MHSvLREpUGryE5FR8D1RRzAiFg49z15/7qNMEm10xxeRKU8JlYiMQvCbqCMYGd83quJZv29U5W2YiZFF5ISjJj8RGTm3X2D+iQk+6So2ZzZhXo8Hv6K27N5h+1HFqm4jm/kzcMbwh+dO1lUNMrRBL3WNS7HgFTivwHnuSKMvYH+NOgCRQqIaKhEZudqye4EHJvisCczPAz6Lhdupz9xHfeZjrPfBf3+tsS5i1AK3D3PsR8jGXjlkglaXfgF1TVsheBjn83BCJFOAfybqCEQKiRIqERk5MwdbH3EUy3FfzzmZ1w9Zak3lAaorzgM+BBzot/UBsI/R2vwsXlT25KDHyE0H89ncoKAnlEeJVU7KwWlFJislVCIyOr8t3wC+LeowgE8OO2/eWdZJbeVVVFfMB5aTZQVdPoPaytOorfgEF84feqT1uvTZnDA1Un38B2usK+ogRAqJ+lCJyOist5C6pjcDdwCjnwg4fx7nxXSMqORZ1snxTDActv6FWOljwJJR71uo3G7hzvJrog5DpNCohkpERq+26o8Y/xxxFO8Z0SCfY3H+3MMQvmlczzG57MWD17PewqgDESk0SqhE5PisrbwG+Hwk53b7EbWVd03IuWqrNwPfnZBzRasJD17EeWV7ow5EpBApoRKR47e24t+Af5vgs3YSxib6nO8FG7q/VWF7mjCsZV35X6IORKRQqQ+ViBy/XJPb56hvegK3bwPlE3DWBLGuj7LB38Yl1rcP1abGZxAPLsF5gNbmW4btdA6wuaEKS6zDfAlZv4Hzqh7qs/1PnqAx85/gpXn9FJOGb8PCl3PetMejjkSkkCmhEpGxW1v1IzY33InFvwm8eALO+EamZ57JzYf/gXTpQaY3vxz8zcAaenpVlZQfpi79dWorB6/N2tz0DczeAJ7EgcA+T116O3AdXbHvY5k0hzIbMC6YgM800bKYX8XByk8ek5iKyKipyU9E8mPd9F2srXgJ2Ksx7p2AMz6PeHYb0zOPg/8YWNNvexnwPm5rWjbg3rc0nYLZW4D+kyivAj5LPPsEsdL7p2QyZfyMLKeztuojSqZE8kMJlYjkj5lTW/ETzq1YBf5i8DpgPJ/EmwPMHSoisrxrkC2vG+bYMWDBccY1CVkL8G0IzmBt5cWcX3l/1BGJTCVq8hOR/Mv1rboZuJmbMrMo8pcAF+KcC1RPbDDB67m56aO8qKrhyKoNHsMywyVUU8FunNvAbqCk7RbOmZWJOiCRqUoJlYiMrwsq9pMbduC7uBu3NM8i5ssxluOcgjENrAz3MvAysDKw7mY4nw/MG1sAXkrMvkR95ndHV2UWUni1Tw3AU+AdYB1AB5DB7BAeHsI4REgDgR3CfB8W28qa8qcijlnkhKGESkQmTq7mal/3645hy9elPwe8b+zn5bW4v3bMx4mS2xdZV/GpqMMQkYGpD5WITF420c2Dk5h5a9QhiMjglFCJiBQE2xN1BCIyOCVUIjJ5OepE3cM7fzd8IRGJihIqEZnE7MGoI5gkfse66buiDkJEBqeESkQmMZuYCZAnuzD4aNQhiMjQlFCJyOS1tuwv4E9EHcYQDgHjPDSB/5jzyuvH9xwiMlZKqERk8jJzLPifqMMYwueJ+QuAx8bp+NvJtr5xnI4tInmkcahEZHIL7Ftk/X3k5uabTHYTa/sqa2Y3sylzNjH/BfDcvB3duRvjJZw/93DejimF6bb0TLJ8Aex08GKgBOj9NdartA2yPNz74cqORv/ppnyE24YqmwXagNajX60N9x102r92DyAcKSVUIjK5rSl/irr0J4DPRh1KX/Zu1sxuBuD8in3c5ueSzXwKeA9juxkB/nXaDr+fC+e3jDlMKXxZrgFeOr7TYuZVPpOz3kqAaUffOhirSTAHOD9P5zhuavITkcmvoeJL4NuiDqOXn7O2fGOfNWusjdrK9+L+vO5JoY/Hb8HOpbbq7UqmBAB3Azs36jAmNfM1bPDY8AXHlxIqEZn8LrEOPHsRuSlroraD4vbXdU+jc6x1Vb+ntmodFq4G/hN4YOjD2S6wrwDPo7byBdRW3JbvgKWA3d5YBV4adRiTXILKltlRB6EmPxEpDOum76K+6ULcNkFkU9I8DuGFnDNr+AFH11ZvBbYC76UuPQM4lcCnkQ2KCcJWsCba7aHJ0PdDJrGOeJJYwTT1RafIIq+hUkIlIoVjbdUfuDVzDqFvAk6a4LPfh8XXsbZ09FPA1FYeBDSmloxe0gKySqgKgZr8RKSwnFvxV2LBWcCvJuycbj8iln3ecSVTImPRbvnq0C3jTAmViBSeNeVPsbbiJWBvAQ6O45n24n4Z6youZc20xnE8j8jAEqb7dIHQN0pECpOZU1vxLbzrZODTQFP+js1+4EO0Np/Cuqof5u24IqMV5G3IARlnSqhEpLCtm95EbeWHaW2ej/kVmNcDHcdxpGbgBoxXcLBiAbWVV2noAolcV5vu0wVCndJFZGrIJT/fB77PpqfKiJW8AILngJ+CcwrGAmA2kAEOYr6LkIcw24lxF1UVf+Qs64z0M4j0F5gVznieJzYlVCIy9eSma7m5+zUmqVTKAbZu3aqmF5l4AUY26iDy7gCwHXw/HoQEeO4/D8mljw4YjmEWYBghRhDGcJsPrCY3avqkooRKREREJo75e2jvuoGS6R38mg7WWzhkeXfjdmI0P5mkvCRJNvgG2Kv7lAmjr8dTQiUiIjJZTYJEIe/criWZgGwGzgHq0lly/R47MDpwuoDkkVd9JgkYJeUMWluX9civkxIqERGRySp0H+Q5vw6gEyib0HjyYwduuzFvBzowayf09lwyZe2YZwktQeBFOEXgSbAiIAlehNkZOLOi/hD9KaESERGZrMJiJ9bVd53ZVylq+zB1Mw9zTvpSsO9RUE/t+7eIZ68ddmy3DR6jnDgl+xPEkwkysTjxWIIg+yXglX3KToKaPCVUIiIik1US79PM5ezkt+XvYn1FT7+jH1CXPgd4cwTRHSf7MtnYl6lL96xwIOz+2pMYxSGTq5vLFuea+pLOoG1+RWryExERkcH0r3kxHhigE/cfKaSEyu0WAr8Vt8buJ/tyLyfEPCTEwOKYJbAwQUgCswRuSSxMgL0SWNHnmFnVUImIiMhgsu79GvPO5iYv4gJrB3JPwN2auSD6dGIUzP9MaA9h3kEQdhDGOjDvIAw7COIdmHcRWpIgm8x9tSQeJomRJAyS4C/gmIRKNVQiIiIyGGs/3O9WPZNk5lfUNX0Ogl3cmnktziuiCu84vQ/rzn88APNcQ18QkGv5AwIHNzDAc8NS5TYNkjephkpEREQGVTstTX2mHSjqtXYN2BrwQfOLE06JaqgkD1atWrUgHo//+0DbUqnUN3u/7+rq+tT27dt3T0xkIiIyJmZOXfpXwEVRhzKJ/Y6KivxNjn6clFBNAcuXL39y586dF5nZnAE2H+mo6O5PL1++/G3bt2+fwOhERGRMvOtKLPYfEDwXvAxIgCfAEnBklCrr/v/RUau837a+y/laFyXH+BElFe+cDPNwKqGaAq6//vrs6tWrf+7ubxmm6M+uv/76qTcrlIjIVLZuehPw9qjDkKEV0EBgMpQwDDeOoNhIyoiIiMgoKaGaIoIg+LW7NwxR5GBVVdWvJywgERGRE4ia/KaILVu2dKZSqRuA1w9S5Ibbb7+9a5BtIiIyWd3ROI324CpgJVCMUUzY/dUowon1Kj1Qn6eRvB/NtoH4IMuj2TZ4WSOL047TRkAbThvQhnEfnf4BXlQ1VIXChFBCNYWY2UZ3HzChCoJAzX0iIoWoI/gO9BprqntYpiPLJ4Kez2n0T7nOIW7zgAsnPqi+1OQ3hTQ1NdUB6QE2pRsbG+snOh4RERkjd8M5P+owJrnzWO+R5zORByD5s3PnznZ3/78BNt24c+fO9gkPSERExub2xiqgLOowJrkkLzw8O+oglFBNMWY2UNOemvtERApRRzwZdQiFIYi8C5MSqinGzG4GWnqtajGzTVHFIyJyghvbfTZpuk8XiMgzOsmvLVu2tKRSqV8BFwOY2U1btmxpGWY3EREZB6lU6qPAC7pbD36+ZcuWJ0d1gHYz3akLgzLfKcjdjzTxjXDATxERGR9x4Fx3/7q770mlUnekUql3rV69etGI9k6ohqpQKO+dgpLJ5C87O3PTGpWWlv4y4nBERCTHgHOAc9z9izU1NX8ws41mtnHLli0PD7hHgKEJwwqCMt8p6O677z4ydMKdd96ZiTIWEREZmJk9B/isu+9cvXr1tpqamn9PpVIr+hTqatN9ukCohmqKcvdrOXGGfBMZd6lU6vdRxyAFacFICrn7mWZ2JvDJVCqFu3/SzH66tas9TUK36kKg71I+uBu3Zt6P20fBS6MOB+AvrRncgdKK10UdS461gH+KtRWfwUyJnhQMd3/azOYAZ0cdi5xQ3gactPDnX/7JE5d8KOpY8q0JuA84CIQ4juFAiOHd7w0nAKz7XUAuZ5lPbgqe2KBHj4gSqnyob/4S8I7JVCHUVVIRdQj9eCnwaerTJwFvjzoakZEKgmC5u68YvqTIgN4MXDnCsoeAO4GNQRBct2XLlk4+X794Et1a8sPtTayr2HDc+29OX4vx2j7rOj0ca1hjpYQqL/zKqCMoHPZalFBJAdmyZUsToOY+OS6pVOqlQ203s91hGP4M2Lhs2bI7r7/++r5d0EP3EU1NXEjMv0dd+mPAge6aqb5ynzgAYjgBRgwsAI8Bc4E5x+wTeORd95VQ5Yc6DY7cVPvVICIyWg+Tq4Xa+Kc//emPdDdvbNu27diS8eKQbNfERjf+dgEPY5Yh9Gx3UuV4d5Pf0emfAwzLLXsAHseDpzF/NjCtzxE7VEM1VShJGDldKxE54XTXRF0DbNy2bdt2RtpHJBygnPEzwq53A01Y4p3gH89rsOPNfD1VlT/lLOsc9b437i2lpOLb4Jf1WZ9UQjVFmE2m/lOTnBIqETlhhGF4Q3d/qPuO6wCdHva7U9/HHRWvZL31JBCfoC59MnDF2CKdQG4/pDHzQ+oyLeAhHKmV6r3c0+xnvZbjQNGA99tYVk1+U4MrSRgx07USkRPGPffc88cxHaDIvd/Anjt6JVPd7A/ghZNQ5fok/hrzA91NfmGuuS/IfQWONPV5GGAEuSf+LI4xF/yVYAv7HLE1VA3VFKE+VCPmulYiIiPV4WG/AQKez5880be5zJ8zwVGNjdnNWHgz2SBNjDA3cII7QTZXQ5XFiWHELKATw8wIuxOqONNxexZ434Qq1qkaqilCtS4jp2slIjJSya4Osn0yqrk0ZjawKfMRkl3NZONXFFjtFLivx2095tBTrxTY0caeno+b5Wh1RQzAB+9dUzFHNVRThJKEkdO1EhEZqb+rbqK+uaXfoNEXEfOLcomW+u8CzTyXtqiDUEKVH0oSRs5qampeHXUQ42Sqfi4RiYqZszl9O8YFUYcyedldk2EGDiVU+aGEauQCM/tR1EGMs8irnkVkCum0K0nyRfCTwYsxK8YphiOvwe5Bw92bhto+3LaBEpj+64Z7P/Z9jHtxf80AZSacEqr8iDwzHiffxXwDHuvEvQv3TuLdXz3eBd51ZM6lACNrwZHlrrCcGKfifJu+P2ch8NOIPs+4M7N2d/9K1HGIyBRyQcV+4PKow5ChKaHKjyxT8lp6C1nfD71G6c0tBtCVJLAizOKYJeiyBEE2gVmCrCUILIF7yLHXJrt161Y1jYmIyJSipqp8qMsc7tdhUAZ3mNrK8qiDEBERyacpWKsShYEmZfQncKvD+BugMGeqN/shbtdA2E5ISEBI4CEhIeZZwoQTdFp3DVUcLE5gCcjmls0W4P5Fcm38PSIfK0REpKCs94DnN38I8zcDiajD6aXf6ObuEHR/7bU+1zXEj5brtc26t+f2714f9DreAPv0Pd4dtDb/BxfOb5nQTz4AJVT50X/U2uv4bcUVrLeQDR5jWvP3scnRaW5U3EsxrwBPEPMs2XiW0Lswz4JlCbqyeBADS0CvJr8wSABx8FaOrQVVh20RkZFyN+qaf1AY95BB+qoP1RbWp7gNtHK4472AkrKlQOTXR01++VCXPghM737XRqxtFmtmNx/ZvqllIbGuXZHENvkcpLZyZtRBiIgUhDsap9EeNEQdxiTXxm8ryo6dkmdiqYYqH4xsr4S6kb+bdbjP9o7Gg5SUhxTcFDX+Y4j9Dx62YWRzNVPehcWzdHqWgCwhMYIgQdCV64xulsCyCczihEEJ5tehJj8RkeNz2Ex36mEV88LDs4GnogxC36Z88D7NWHO5Lf1i4KYja4rLLqLgkikAK4KwHPM4xLrw7oTKwy5i3U1/ZjHME4RBkiCbwC0JQYLQkpiXoCY/EZHjF9eE8iMTRJ7PRB7AFNG31iW0n1CXeS8h92P+XMw+UqBDVb089zKOzYN6zbvkgDkQHE2fBh+0VjVUIiIjFcP0W7MwKKHKC8/2q4gpB//m0TqpgkymxonpV4OIyEi1mpHUPaQQFGAz1CTkwcaoQygY5rpWIiIjFdPDY4VCNVT50Fn+AZKZLPBioJLcOCHx7q+xXKHe7eB+pGGs11EGWh7Luv58gOWxrOu13Lt9z3uWs0AnubHVO4E08CvaKz48SHwiIiIFS5mviIjIZFXXPAfCSJ9eKwix+ELWlO6OMgQ1+YmIiExWavIrGGryExERkYmWyb08O+B0NbkWtCD31Qw8IJezTAeSUQU9FCVUIiIiMnHcLmZdxc+Ob1836jNXA1f2WR9G/zi9qhJFREQmq9ua55INn4w6jDw7BNzX/fXYyY9zcnPE4oncMgmwZO69nQxe2ueIYewkzivbO2GfYACqoRIREZGJ1EIuSZoGdIB1gncAnZh3EgZZzLtyzYGEmDve0+znAZN0gGglVCIiIoXE7Id0xT5Asj1DGH8n7uujDmlUjH/h3IpfYINPqTGo9R5wTuZq4HV91qvJT0RERAbVv8nP2E9JxWKeZ61H1tWlv0v/BGPyayM3PmHvpr4w1zk9cAgNrLtT+pEO6nH+f3v3HtxYdd8B/HtlWa9ra2VZ1sOr18peP1a2bDlNSUqmbQIZpswkkGQKTCCQEpgmaUqnD2iaSQphmJBtmEAhGWDLZAkZJm2BWTpp0yx5DCHpbCHpell2zWJ75bUte7WS0VzrBwAADTZJREFULMuSrGtfrXT7hyTQCssS+4i99vezc2dknXuvfufsePzTPfeeX/Gq1rtXKGhSOfDhFhZHJiIiogYo+O9zkikAUJRfQBAuo4RKGYUgvAwFMhTlbLFaoao4xScIeRSUAiAAKqhQgFD8J6hQKDRDEJwArgfQfs4p8xt/hYoJFRER0eVjCPcpKtwnvFOxXhCu3MB4zoPqKWTTT6PFIeOPkW946k9RBBxMtUEtWABcd05bXtnwhIpTfkRERJvVwbQVTcqZqnefAlRfhU7KQtLcAUF4CJf3Qt15FMuUlbc83l6DCqqKrQm11qCSBSuubY39LoKthQkVERHRZlW8CVvC2onEWXCmqWgTJFSXc0ZLRES0td0nFCAov6rRymQKAAScQKZlaaPD2PIJlV6v/8DIyIgCoKX8Xmdn59cDgcAZnU7n3bjIzo1Nr9c7/X7/BC7B/0nF5+jOJ7YLPRcREV2AvPpWCMrPAWEGUGYBhEvbHIB5AKcBRACcARCFgBiAOIAFAAkUF9BcBJAEsITi03VpABkAy4CQBSCh+OTdKgC5tOXwzhRc+Wm8WpQ1tkLVlq/azq6x5ao2uWpbPXdTjgDqq3GDIL/HUb3otl12azab/9Rqtf7dW2+99ZGVlZVTGx1PmSRJ4ePHj+/e6DiIiGiTKa4AfvVGh0Hr2/JXqCoZDIag2+3+3tTU1G2SJL260fEQERHR1rBtEiqtVmvz+Xz/EYlEHlhaWnq+qlnncrkeCwQCC8PDwxmfz/dDADsaaS9PgRmNxj/Zs2fPWDAYXOnu7v4xAEv5YFEUr+rv7x8NBoOy3++fMhqN11THVznF1t3d/RO3272/sr27u/slp9P5zw3Ga/b5fC8MDw9nBwYGTplMpprfbGpN7TWqVt/qjUu53Ww2/1kgEIg7nc5HSqfUOByOBwYGBk4Fg0F5YGBgxm63/yOKT3fAarV+MRAILKC4uBtaW1s/NDw8nDYYDO8PBoOrRqPx2orwDENDQ0trjTcREdHFtG0Sql27dv1bOp3+ZSQS2Vvd5vF49un1+uDExMTQkSNHvE1NTR0ej+fhRtsBwGKx3D42NvbhEydOdKnVarvX63203Nbc3Gycnp6+c3R01JhKpV50u92PrxdrIpHY39bWdj3eearD3tra+pFoNLqvkXh8Pt/TTU1N5iNHjnQdO3bsg62trZcsoajXt/XGBQCMRuPVR48e9YXD4XsBwO12P2kyma6bmpq6bnR0VDx58uSNFovljs7OznsBIBqNPr66unrC5XJ9DYDK6XQ+Njc395VsNvubZDJ5wGw231I+d3t7+6fOnj0bT6VSL12q/hMREQHbKKGSZXmqpaXlCgDmqqaO9vb2W+bm5v5CkqQwgPiZM2e+bTKZPtVgOwAgHA5/DcAZSZLmotHoXpPJ9LFyWzKZPJDNZscMBoM/n88vaTSaXSgWhlxTIpF4EQDa2tquAQCbzXZTNpt9VZbl4w3EYzWZTB+bm5u7G8UbFU9HIpEHqj8jGAyujIyMKP39/YcAYGRkJD0yMqL09fX9tnK/8vvlrbx/o31bb1wAIBqNPoTiDZJLACwWi+W2cDj8+eXl5dcB5CRJOjQ/P3+vxWL589IhytTU1J3t7e13Op3OB/P5fCoWi30HAGKx2OMmk+k6AK2l8fvswsLCPqx/IyUREdEF2zY3pYdCoS/09fX9uKen58D4+PhHUXxaAAaDwQ1A6O3tPbLGYZp67eUXsiyHy69zudy8SqVqQXGaKt/Z2fmgxWK5fXl5+ZCiKOWSAU3rhLuaSCR+aDKZblxcXPxRW1vbzeWkoYF4XQCQzWYnKuJ51+Oko6OjOqA49dbf33/o8OHDrSg+8XGO6vfL+5d/rte3dcYFpThPll8bDAYPACGdTh+vjCGXy02o1Woril8ACrIsjyUSieetVus94+Pjf4RSwpTJZH4py/J0e3v7J5eXl18WRfEPJicnb1pjnIiIiC6qbZNQAViZmZm5vqur67der/dfTp06dRsAKIoSBYA333zTI0nSTPVB9drL9Hr9DkmSMgCg1Wp7c7ncHIC8VqvtstvtXz527JhfluUxo9F4jclkqvtHPh6PP93T0/MzURSHtFpt98LCwr83Ek8+n18CAI1Gs1OW5fJrZ93ROQ+N9K3WuFTs8nb5hGw2O186prfyoQGNRtOVy+XC5X21Wm2XyWT6eDKZfMFut39lcnLylfK+sVjsCbPZ/Jnm5mbP0tLSAQAbutAbERFtD9tmyg8o/sGenJz8ZFtb240Oh+OrACBJ0mwmk3nF4XA8otfrXQDUoigOiaJ4VSPtZVar9UEARq1W22uz2f4hHo8/DQCKojQDgE6n8wBo6+jouKuRWCVJei2Xy83u3Lnz0UQi8SyKa4TUjWd1dXVyZWVlzOl0fhOAWafT7bLb7Xdf+Oi9WyN9qzUuNZxOJpMveDyeJ0VRDABQ6/X6KxwOx9cjkci3Svs0eb3eH8Tj8e+GQqHb9Xr9kNls/lz5BLFY7BlRFK+wWCy3x+PxJy5eb4mIiGrbVgkVAEiS9L8zMzOfdzgc95vN5hsBYHx8/AYAhd7e3rFgMLjscrn2o6IsT7320nkPBQKBib6+vtdSqdTB06dP3w8AsiyfiEajj/p8vhf8fv9rqVTqYKOxxuPx/S0tLX+YSCT2Vb5fL57JyckbNBqNIxgMRrxe73OxWGxf9bkrx+Pw4cMC1pjuq6eRvtUal1pCodCtmUzmZZ/PdzAYDEo+n++ZaDS6NxaLPQoADofjy2q12jY/P/8NAKn5+fl7XC7Xt0vJJQAkFxcXDxQKheVMJvNK7U8iIiKiTeNClx3YqjZyXPr7+1/v6Oj4y9/15xIR0fa1ne6hoq2vvaOj4ya1Wm2LxWL76+9ORLQxSl8411SaNbgcaaxW611ms/kWnU7XIwhCkyzL01NTUzcpiqJZ7wGorYAJFW0ZwWBwTpblmcnJyeuxRX9hiWhrKCdNFU9a61GspbepaLXa3d3d3f91/PjxANaPz9DT0/OSIAiqcDj8V5lM5lUAzTt27PhAPp/PqFSq6iWLLnU8REREtF1s9oLzjcbndDof6evr+z8A2jrnuaDbQDbzeG27m9KJiIguA+uW4SonFu3t7Z8dHBw8PTg4OC+K4lU2m+2vA4HAwuDgYKStra1yIWWV3W7/e7/ffzIYDMqDg4OzBoPhfcD65dEqFn+W1pmmbLZYLJ+LRCL3A1it17G1kqvqRKmjo+OuwcHB00NDQ1JFabL14qlbIm6NUmdERES0FdS64uJ2u/f39/e/IYriEIBmvV7/wYGBgZnOzs77K4/buXPnQwBavF7v9wOBwBm32/0EgBa32/2k3+9/e4Fnl8v1sN/vP9na2nolgGaNRrOntOQNTCbTJwwGw++hmJQ8PDAwEKoXXyWNRrOntI+9gX621EuotFpt18jIiFJaDqjVYDC8v148Ho/nmZ6enl/r9XonAMvu3bt/5vF4vld5jNfrfRaAEefWvr1oeIWKiIhoc2mkDBcAYGFh4TsAMrFY7AdqtdoajUa/CSCTSCT+VavVdqN4r7TJYrF8aXp6+o50Ov0/AHKyLI+trKxMA++9PFo1tVpdnubLXYzOq1QqGYCi1WrdANLZbPY3dQ5pqERcVamzi443pRMREW0iDZbhAgCsrKzEAaBQKGRKP0cAIJ/Pl0uBqQ0Gg08QBHUmkxld6/PWKSHWUIKUzWanASgtLS2DmUzm5YY7WoMkSbNTU1OfcTqd/2Sz2f4mHA5/MZ1O/6rW/o2WiKssdXYpMKEiIiLaRBotw9Wocskyg8Gwu/pqz/mWR6uSSKVSP7XZbHc3klAJglC+z8qA0hPZzc3N50zDLS4uPru4uPicy+Xa6/V6n3vjjTdqTic2WiIO73Hc3itO+REREW0ujZThapgkSeFkMvkjt9v9ZOmeLLUoisM6nc5Xr4RYoVBYBABRFK8EUHPpg9nZ2S+Jovj7Pp/veVEUB1G8YNNmMpk+odFo/JX7ZrPZE/l8Pm23228rvaW3Wq1/W27X6XSe1tbWDwFQVlZWJlUqlQ6laiBrxdNoibhLjVeoiIiINplQKHSr0+n8hs/nO6hWqy2yLIdKZbgeP8/z3exyufZ2dXX9tKmpyShJ0olQKPRpWZbHyiXEcrncXDQafWzHjh3Xlo9bXV19Kx6P7+vu7v5PRVFSR48eta11/tXV1YmJiYn3Wa3We30+30/UarWtUCgsS5L0+vT09J1Vu0szMzM3d3Z2PmKxWL4gy/JcMpl80Wg0fhQAFEVRu93upzQajU+W5alQKHQLAGW9eMbHx2/w+Xzf7e3tHRMEQSNJ0vHZ2dl7zmesiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIguqv8HrsrPTRxnhr0AAAAASUVORK5CYII=" alt="" />

阐述各服务器用途:

1、haproxy        实现后端Web服务器负载均衡

2、keepalived    实现对haproxy的高可用

3、apache static     实现静态页面的访问

4、aoache dynamic    实现动态页面的访问

What is Keepalived ?

Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities(能力) for loadbalancing and high-availability to Linux system and Linux based infrastructures. Loadbalancing framework relies(依赖) on well-known and widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. On the other hand high-availability is achieved by VRRP protocol.

1、安装Keepalived

~# apt-get install keepalived

2、配置Keepalived

一个功能比较完整的keepalived 的配置文件,其配置文件keepalived.conf 可以包含三个文本块:

全局定义块

VRRP 实例定义块

虚拟服务器定义块

haproxy

安装配置链接

配置文件:

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon # Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private # Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3 defaults
log global
mode http
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
maxconn 60000
retries 3
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http listen stats
bind 0.0.0.0:1080
stats refresh 30s
stats uri /stats
stats realm Haproxy Manager
stats auth admin:admin frontend main
bind 0.0.0.0:80 acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
acl url_dynamic path_end -i .jsp
use_backend static if url_static
use_backend dynamic if url_dynamic
default_backend static backend static
balance roundrobin
server websrv1 192.168.20.178:80 check maxconn 1000
server websrv2 192.168.20.179:80 check maxconn 1000 backend dynamic
balance roundrobin
server dynamic1 192.168.20.177:8080 inter 3000 rise 2 fall 3 check maxconn 100
server dynamic2 192.168.20.181:8080 inter 3000 rise 3 fall 3 check maxconn 100

最新文章

  1. CatchPacket网络抓包软件
  2. iscroll5实现一个下拉刷新上拉加载的效果
  3. 【精粹系列】Mysql精粹
  4. 网页中显示pdf
  5. C++ windows遍历目录
  6. Docker基础技术:Linux Namespace(上)
  7. UICollectionView 简单应用和实际操作
  8. VS下遇到未能加载文件或程序集 错误
  9. H264格式具体说明
  10. gitflow 在windows下的安装方法
  11. .NET:从 Mono、.NET Core 说起
  12. java常量和变量的定义规则,变长参数的使用
  13. raise()函数
  14. MySQL 笔记整理(11) --怎么给字符串字段加索引?
  15. IntelliJ IDEA安装ideaIU-2019.1
  16. js时间国际化
  17. odoo开发笔记 -- 多对多字段追加数据
  18. 4.GDscript(2)关键字,运算符,字面量
  19. 【资料收集】PCA降维
  20. 【UOJ#22】【UR#1】外星人

热门文章

  1. 【数组模拟的链表or复杂模拟】PAT-L2-002. 链表去重
  2. 关于TCP/IP协议的记录
  3. React 之 render props 的理解
  4. JavaScript事件——拖拉事件
  5. 题解 [51nod1340]地铁环线
  6. webservice的soap
  7. 利用QSystemSemaphore和QSharedMemory实现进程间通讯
  8. python合并多个txt文件
  9. 实验1C语言开发环境使用和数据类型、运算符、表达式
  10. A^B Mod C (快速幂)