设计模式七大原则

74 阅读30分钟
设计模式七大原则有:
1)单一职责原则
2)接口隔离原则
3)依赖倒转原则
4)里氏替换原则
5)开闭原则
6)迪米特法则
7)合成复用原则
单一职责原则
对类来说就是一个类应该只负责一项职责
接口隔离原则
类之间的依赖关系应该建立在最小接口的基础上,如下图:
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwwAAAELCAYAAAB05QHqAAAgAElEQVR4nOzd51cU6Z/+8f0/9sE+2ge7vz179juDGCaY46gzo6MCKuaAimQlmDChYxoDIIiACqIYCYIgQXIGSZIl55wbOrx/D5AecWTG3ITP65zrzNikaqiurqvqvqv+bc6JHt7M4tM9xBcpEUIIIYQQQkx89e0aVv7Ry9u9YDj/9q4Hw3KkMAghhBBCCDEZVLWqWXjq3WVh1MLwNFsKgxBCCCGEEJPBRxeGmlYVQRkKiUQikUgkEolEMkGTWT748YXhef4AK8+3S8ZIfj7dxMpzbTpfDolEIpFIJJJ/yrJTjTpfBsn75dLT3o8vDBpgUCUZC+kfUFFWXkVXT7/Ol0UikUgkEonk76IYVPOysATFgErnyyJ5v3xwYVhwqofofJnDMJao1WoqKyvp7+/X9aIIIYQQQvwttVpNcXExarVa14si3lN1q5qlZ9+zMMw72cM2jz4qmuUPPJZIYRBCCCHEeCGFYfzp7NNw8F4/851GKQyngxQMxy1ygIJaNWqNrhdbvEkKgxBCCCHGCykM41NNm4Zb8QOcCf6zGwzn3xo61LR2yx90LJPCIIQQQojxQgrD+NfVr6G6VcXwOYR/O/agmxOPenS6UOLvSWEQQgghxHghhWH8C85QYHCxnUHV0L//zfF+N473u3W7VOJvSWEQQgghxHgxVguDRqNBoVDQ1dVFZ2fnpEh3dzeDg4Mf/LsKylCw8rwUhnFFCoMQQgghxouxWhgGBwfp6Oigp6cHhULBwMDAhI5CoaC7u5vOzk5UKtUH/a6kMIxDUhiEEEIIMV6MxcKg0Wjo6+ujo6NjTC3Xl6ZUKmlvb//gswxSGMYhKQxCCCGEGC/GYmFQq9X09vbS2dmp60X5qlQqFe3t7SgUCjSa978MqhSGcUgKgxBCCCHGi7FaGHp6eiZtYejv75fCMNFJYRBCCCHEeCGFYeyQwjCJSGEQQgghxHghhWHskMIwxqhUqi92Say2tjZKSkqkMAghhBBizFOr1RQUFNDe3v7F9o0UCsUHL5MUBikMOqdQKKirq6O2tvaLpL6+/oMviSWEEEII8bVpNBoaGhq+2D5RbW0tXV1dH7RMUhikMIwZGo3mi0YIIYQQYrwYS/tEUhikMAghhBBCCDEqKQxSGIQQQgghhBiVFAYpDEIIIYQQQozqUwpDT08fSanZRMWmfFRi4tOob2hGF6PLpTAIIYQQQgjxHj6lMNx/HM7m3QfYY33io7Jlz0FOXbiOUvn1L14jhUEIMcLbE8EGBwcpLy9HqVTqcKmEEEII3fuUwnDZzZdLbr4olcqPSnhUIntsTujk/VgKgxBCS61W8+rVK1paWrSPdXR0EBISIvfvEEIIMel9amG47Ob70T87KjaFPdZSGIQQOqRSqcjLyyMwMJDm5mbt4x0dHQQHB0thEEIIMel9rcJQVFLO9VsPeRD4jPaOoZ8lhUEIoVNqtZrs7Gz8/PwoKyujq6uL7u5uuru7qampISgoSAqDEEKISe9rFIa+vn7sHP9g5Xpz1my0wtc/GJDCIITQse7ubnx8fPDw8CA4OHhEAgICCAsLQ6FQ6HoxhRBCCJ36nIVBqVTS2tZBXX0TrW0dqFRqALq6e9iy5yAr1pmxYp0ZF5xvAh9XGDo6u2lr7/pLPnTitBQGIQRKpZKcnBz8/PwoLy+no6NjRHp6euQu4UIIISa9z1UYunt6eRD4DHO7UxhuscHC/jQPA5/R09uHYmCQm3cCMd5hh9l+J9Iy84APLwwqlZrb98O4fM1/RFyu36eguOKDll0KgxACGNoIpqenExISQmtrq64XRwghhBhzPkdhUKnU+D96isFma+1ZhBXrzDDcbENYZAIAA4OD1Dc209Lart1B/9gzDEFP4/jj6h3+uHqHS+7+lFfWoRgY/KBll8IghNBSKpUUFhbS1NSk60URQgghxpzPURja2juxsD89oiwMZ9+hc7S0drzz6z92DkNNXRPPnqfgfuMxeQVlH3UfBykMQogR3r4PgxBCCCGGfI7CUFvXiOFbZxeG85uxOc7X/GhqadN+XXtHF61tHZ806bmmronE1NyPfn+XwiCEEEIIIcR7+FyFYfVGq3cWhhXrzFi90ZL9h89z2X3o8/cdOkdsQrpcJUkIIYQQQoix7msUhuGsXG/OyvXmrFhnRlRsihQGIYQQQgghxrqvWRjejBQGIYQQQgghxoHPURh6evuIfl0A3jcNjc1SGIQQQgghhBjrPqUwOF/z48CxSx9UFN6M87XbWNid/qirHH0qKQxCCCGEEEK8h08pDFk5BTgcvcge6xMfFQu7UwQ/jdHJlQylMAghhBBCCPEePqUwaDSgVKpQKpUfHbVa/QWe1T+TwiCEEEIIIcR7+JTCMJ5JYRBCCCGEEOI9SGGQwiCEEEIIIcSopDBIYRBCCCGEEGJUUhikMAghhBBCCDEqKQxSGCY9pVJJW1ubzmbgCyGEEEKMZVIYpDBMKmq1mtraWtra2rSPdXZ2EhMTQ39/vw6XTAghhBBibJLCIIVhUqmsrCQwMJCmpibtYx0dHURFRUlhEEIIIYR4h+HC0NHRoZMbqOmKFIZJRq1WU1FRgb+/Pzk5OfT19dHf309/fz+NjY1ERkZKYRBCCCGEeAe1Wk1fXx8dHR0oFApUKtWkSG9vr/Y5S2GYBDo7O/H19cXV1ZWgoCCePHmizePHjwkJCUGhUOh6MYUQQgghxhy1Wo1CoaCrq4v29nba2tomfNrb2+no6KC7u5uBgQEpDJOBWq0mMzMTf39/ysvLaW9vH5Gurq5JdYpNCCGEEOJ9aTQaBgcH6evro6uri46Ojgmfzs5Ouru76e/vR6VSfdDvSwrDOKZUKsnIyCAyMpLubvmbCSGEEEK8L7VazeDgIAqFgv7+fvr6+iZ0+vv7USgUKJXKDz6oLIVhnBscHOTFixfU19frelGEEEIIIcYVjUaDWq2eVPmYEShSGCYAjUYjw4+EEEIIIcQXIYVBCCGEEEIIMSopDEIIIYQQQohRSWEQQgghhBBCjEoKgxBCCCGEEGJUUhiEEEIIIYQQo5LCIIQQQgghhBiVFAYhhBBCiHFMoVDI5dXFFyWFQQghhBBinGptbcXCwoKKigpdL4qYwKQwCCGEEEKMU1VVVfy///f/KCoq0vWiiAlMCsMEoVQqtacj6+vraW1tBUClUjEwMKDLRRNfmFqtpq6ujt7e3g/+2uH1480MDg6iVqu/wJIKIcazgYEBmpqaUKlU2scGBweprKxEqVSO+nVKpfIv25l3bXfEx/lchUGtVmu3/Z2dnVRUVGj/1n19fTLkaZKTwjABKJVKQkJCKCoqQqPRcO3aNfz8/FCr1SQnJ3Pjxo2P2pkUY5NGo9Fu2NVqNR0dHTg5OeHk5ERdXd2Ijw1v/Pv6+igtLaWoqIiioiKKi4tpaGggLi6OCxcujMilS5coKyvT8bMU451KpWJwcFB2MiaQlJQU9u3bR319PSqVCrVazatXr9i7dy8NDQ1oNBrt9mnYwMAAISEhI7Yx586d49y5cyMec3Fxob29XYfPbvz6XIWhuLiYuLg4lEoliYmJbNq0if7+fpqbm7l48aJ2H0NMTlIYJgCVSoWvry979+6lsrISHx8f7t+/T3FxMTt27MDX1/e9zjJoNBoKCgrIzc2VI8xjlEaj4cWLF5w/f57Tp09z+vRpTp06xZ49e/jXv/6FiYmJ9vHTp0/z8OFDlEolBQUF2NrasmnTJubNm8fu3bu5ffs2ly5dwtTUlPj4eGJjY4mPj8fU1JTnz5/r+qmKz6i4uJjq6uqv9mbf3NzMiRMnsLa2Jjc3V3YyJgCNRsOFCxewsLDg4sWL2m2Mvb09S5Yswd3dndu3b3Pz5k3u3buHQqEAhibjHjt2DA8PDxISEkhISOD8+fPs3LmT6OhoEhISCAwMZO3atdTV1en4WY5Pn6sw5OXlYWBgQGBgIGlpaRgaGtLT08Px48extLSktrZ21NeySqUiOzubmJgYYmJiSE9Pp6GhQfYldGC4uH9uUhjGOaVSyeDgIG1tbdjZ2XHv3j1u3LiBm5sbu3fv5ujRo3R2djI4ODjiNPK71NbWsmbNGn799Veqq6u/0jMQH0KlUnHjxg3Mzc3x8fHh5s2b+Pr64uvry7lz5zh//jy3bt3C19eXEydOsGPHDvr6+lCpVKhUKnJzczExMaGrqwu1Wo2npyfHjh0jLy8PFxcXWlpaOHr0KFFRUbp+quIzUSqV7Ny5k3Pnzv3jNgCGhphUV1f/7RCTf3Ljxg22bNlCVlYWbW1tH/19xNhRXV3NunXrCAgI4NGjR9rtjrOzM6tWrcLNzU37WHh4uHZHUaVScfbsWRITE7XfKyQkhMOHD2tLRX19Pdu3b6e+vl4nz228+9TCMHw2sL+/n4cPH2JmZsazZ89YtWoVjx49YtOmTbx69YrBwcFRtwsNDQ0sWbIEY2NjbGxssLGxYdeuXcTHx0tp+II0Go32dTT876qqKurr6z97aZDCMI4NDg7y+PFjjh8/zrFjx7Qv0lWrVrFy5UrWrFnDvn37OH78OMePH+fp06d/uxPw6NEjrKyssLOzIyAgQF7kY5BKpSIgIIDHjx/T0tLCnTt3qK6uRqVScfr0aS5evKgdC5yXl8fx48dHbEzy8vK0hQHAy8uLY8eOERYWxp49e+jp6ZHCMMF8aGGoqanh6NGjnzQ85Pjx47i5uX3014uxRaPR4OzszDfffENpaSm9vb2UlpZSUlJCXFwcxsbG+Pr6EhAQQHh4uHb7AkPbrFOnTnH37l1KSkooKSnBw8MDU1NT8vPzKSkpISEhAWNjYykMH+lTC0N6ejqnTp3i+PHjODo6smvXLnbu3Mn//M//sGvXLnbs2MGxY8c4fvy49sDS2xoaGli9ejUpKSkMDAzQ19fH7du3sbe3lyHRX1BdXR2xsbHaUSQajYaMjAwKCwulMIg/KZVK8vLySEhIIC4uDj8/PxYvXsx//dd/sXbtWu7fv09UVJT2NHBBQcGoOww9PT3Y2try8OFDAgICsLe3p7+//ys/I/E+Ojs7aW1tpbm5mePHj7Nu3TrS09OxsrLC2dlZu5FQKBTaowxqtZqWlhZiYmLYuHEjJSUldHZ2jigMVlZW9PX1SWGYYN4uDHV1dTg7OxMeHs7evXvZunUrAQEBDA4OkpyczMqVK/mP//gPVq9ezdWrV+nt7aWqqopLly6xadMm7OzsyMjIQK1W09fXx8WLFwkKCuLkyZOcO3cOFxcX/vu//5sZM2Zw9OhRWlpaKCwsxMnJifXr12NlZUVmZqZ2PW1tbeXGjRts3rwZExMTnj17hlKpRKFQEBMTg7W1NVu2bOHatWs0Nzfr+Lc5ORUWFrJ8+XJmzpxJWVkZ8fHxzJw5k2XLlrFgwQL+/d//nf/7v//jf//3f5k1a9aIoUUqlQp7e3tmzZrF8uXLWb58Ofr6+vznf/4nS5cuZfny5SxatIhZs2ZJYfhIn1oYqqqqiI+PJz4+nrCwMMzNzfmf//kf/uu//gt3d3fCwsKIi4sjISGB5OTkdx5MGC4MGRkZwNDfPSgoiH379tHT0/NJz0+8W0tLC0+ePCE3N1f72HBhKCgokMIgRhocHKSmpgZ/f3+srKy4desWzs7OrFmzhv3793P69GmeP38+4ojPu+Tn57N9+3aqqqooKyvD2NiYqqqqr/QsxIcqKyvDy8uL4uJiHj58qJ3DcuPGjXd+fl9fHx4eHmzbto1//etfWFtb8+DBA9zd3Tl27BhBQUE4OTkxODgohWGCebswlJSU8MMPP3Dp0iVSU1N58OABCxYsIC0tjfb2doKDg1m5ciUxMTFUVFRQU1ODqakprq6upKWlERAQgKmpKUVFRfT09LBp0yY2bdpEUFAQZWVlVFZWYmJigqOjI0VFRXR3d+Pp6Ymvry/p6em4u7tjbGxMR0cH/f392NvbY29vT1JSEkFBQezcuZP8/HyioqIwNzcnPDycpKQkjh07hoODgxyt/Mp6enqwtrbGzMwMc3NzysrKyM7OxszMjJaWFkpLS3FwcKC2tpbS0lLMzc21V+mDP4ckxcTEaK+IFBAQwIEDB+jq6mJgYICKigq2bt0qheEjfWphUKvVdHV1kZCQwIkTJzhy5Aj+/v5Mnz4dBwcHDh48yN27d6murh515EFDQwO//PILbm5uRERE4OPjg42NDRERETJa4QtoamrC39+f0NBQ7Xa6pqaG6upqoqKipDCIkXp7e7ly5QqrV6/mxIkTZGdnMzAwgJ+fHw8ePKC6upq7d++yc+dOjh8/PmrL12g0eHl54ejoiEKhoL+/HwcHB1xcXGSy4hjV1NTE+fPn2bZtGyEhIXR3d2Ntbc39+/ff+fnDV1OKi4tjy5YtVFRU0NnZiZubG46Ojri5uXHq1Cna2to4cuSIFIYJ5O3CUFRUxJw5cygvLweGduh2796Np6cnAKWlpWzbto22tjY0Gg0BAQFYWVnR3T30vjA4OIiTkxPe3t50dXVhaGiIk5PTiLOXR48excvLCxjavvT09GiHytXX12NoaEhxcTHFxcWsWrWK4uJi7bIUFBTQ2NiInZ0d9+/f1+5sNDc388svv5Cdnf01fm3itf7+fiIiIsjOzsba2pqysjLi4uKYOXMmJ06cwN7enjlz5nDkyBEcHBz45Zdf/nKGYfgCDJWVlVRWVmrnYZWUlFBZWUlqaiobN26UwvCRPqUwqNVqoqKiMDAwwNTUlJCQENrb20lLS2P37t20tLQQHx/PoUOH2Lx5M69evXrn92loaGDp0qXY2Nhw4cIFjhw5gomJCQ8ePJBL5n4BhYWF/PHHH9y7d4+wsLARCQ0N/SIHfKUwjGNKpZLnz58TGxtLb28vSqWSrq4url+/TmpqKkqlEqVSSWVlpXZc4bu0tbVhZGTEmTNnyMjIIDMzk/Pnz7Nw4ULZgI8xGo2GxsZGKioqKCoqwtnZmdOnT1NYWIiRkRE+Pj5UVFRoU1VVNeLv/uYcBo1Gg6urK6dOncLa2ppvvvmG8PBwLl++TGpqqg6fpfic3nWGYfgI/zBbW1uuXr0KjCwMarWa69evs3z5co4cOYKjoyNHjhxhw4YNXLx4kY6ODjZs2IC3t/eIn/lmYVCr1eTm5nLz5k1OnTqFnZ0d+vr6pKWlkZmZydatW0cckYahUvLbb7+xbds2HB0dcXR05PDhwyxdupS4uLgv+wsT79TR0aEtDGVlZZw9e5bff/8dJycnFi9ejLOzM15eXty5c2fERPe+vj4sLCxYtWoVJiYmmJiYsHjxYvT09NixYwcmJiZs2LCBBQsWyPvNR/rUMwwFBQXcvn2bhoYGBgcHUSgUhIeH4+npSX9/P0qlks7OTtLS0rQXzHjb20OSAF6+fImhoSF5eXkf/dzEuymVStLS0oiJidEezPnSpDCMYx0dHVy4cIEzZ85w9uxZzp49y8GDB/nmm2+wsrLSPjYcd3d3Ghoa/vJ9njx5wvTp0zl8+DCnTp3i1KlTHD16lDlz5hAYGChnGcaQ/v5+/Pz8OHToEIcOHeLgwYPY29uzdetWvvnmG8zNzbUfO3ToEMePH6ewsFD79cOFoaqqiuLiYqqqqoiKimLDhg38+OOPvHjxgv7+fjkiNIG8qzBs3ryZzs5O7ef8XWG4ceMGe/bsISUlhczMTG1qamro7u7+x8JQUlLCmjVr8PT0JC0tjejoaH7++WfS09N58eIFxsbGf5mbMDg4yMaNG3F3d9cexMjMzCQ7O3vEcouv583CoFarSU9P58SJE9y5c4djx45p57y9fUnH9vZ27OzsSE5OprOzk87OTvz9/bG3t6epqYnOzk4KCwvZvHmzFIaP9CmFYXiI2Jv7EcMlcNWqVX/Zjzh37hxxcXF/mQ/5rsLQ29uLkZERYWFhn/wcxV8pFAri4+OJiIj4Ku/ZUhjGsd7eXqKjo4mKiiIqKorIyEgcHR2ZOnUqCxcu5PLly0RGRmo/npCQ8Je5DD09PVhYWHDmzBn6+vro7++nv7+f3t5ePDw8sLa2lsnPY4hGo6Grq4v29nba29tpa2ujsLCQ3bt3c+rUKby8vIiIiKCpqUn7cYVCgVqtprOzk4iICKZNm8aKFStwcnKioaGBU6dOcfjwYQwNDbWTpwYGBmSi2gTxMYVh8+bN2jv6xsbG8ttvv2kvtdrf309kZCSlpaX09PT8Y2GIiopi7dq1NDc3o1QqycnJYe7cuaSlpVFVVcWiRYtITk5GqVTS09PD7du3ycnJ4fTp05w/f1579rS+vh4/Pz8pDDryZmGAofcOR0dH/vWvf3Hjxo1Rx6mXlZWxa9cuampqtI/JZVU/r08pDMOvyeH9hKioKO7cucOiRYtYvXo1hoaGBAcHaz8WHR2tHc74puHCkJqaikqlQqlUUlpairGxsZyx/oIUCgWVlZVfZZ6IFIYJQKPRaMf+btu2jVu3bnH37l22bNlCbGzs397SPS8vD0NDw3fe2be0tJStW7eOOmZR6M7wtZezs7PZv38/x48fp6GhgUePHrF9+3YuXbpERUWFdiNSVlaGmZkZK1aswMbGhvDwcEpLS/n999/ZsGEDL1++xNjYmMzMTNRqNUlJSbi4uNDX16fjZyo+lVKpZPfu3Zw/fx6VSqU9g/DmjreDg4P2MqjV1dUYGhpy4cIFEhMT6ezs5I8//sDBwYFr165x4cIFHBwcqKiooKenh82bN/9lsv2JEye0JaKyspK1a9dy+vRpvLy8OHv2LAsWLCAjI4PBwUFu3ryJpaUlbm5uXLhwARsbG2pqanj58iVWVlZcvHgRd3d39u/fz6VLl+QAho68fYahrq6OY8eO8euvv2Jra0tkZCStra0olUrt+41arSYwMBBbW9sRByBCQ0M5cuQICoUClUpFVVWVTHr+BJ/rxm0ajYbOzk6uXLnCgQMHKCwsxNLSEm9vb1paWv52p3R40vPhw4fx9PTE3d2dffv2cerUKSn5E4QUhnFMo9HQ3t5Obm4urq6u2lP4PT09DAwMEBQUxNatW3FwcCA8PJzy8vK/nEZsbGwkNTX1nRuCwcFBUlNT33nNZaE7TU1NBAUFYWdnh4WFBY8ePdJe5k6lUlFWVsbFixfZsmULoaGhqNVq2tvbCQ8Pp6ioiM7OTqKiotiyZQtmZmYUFRWhUCiwtbXFzMyM06dPs2nTJry8vD7p5l1ibNBoNKSnp2uvmtHd3a09oj8sJydHO/FYqVSSkZFBSEgI+fn5qNVquru7SUxM5MmTJ0RFRWnvGq1UKklJSfnLQYX8/HztQQi1Wk1xcTFhYWFERERQXFxMSkqKdp0dGBggPT2dkJAQIiMjtUfL1Go1FRUVPHv2jNDQUNLS0uQKSTo0XBiSkpLw8vJiy5YtXLhwgYqKCqKionBwcGD79u3Y29trL41bWFiIsbHxX4a25ufn8/TpU/r6+vDx8cHQ0JDt27fLTf4+0qcWhr6+PioqKggMDGTPnj3s27ePgoIC1Go1hYWF7N+/n61bt+Lr60t2dvY7x8z39/cTHR1NYGAgwcHBPH36lKysrH+8QqMYP6QwjGPl5eVs3ryZBQsWsHXrVp4/fz5igqtaraa8vBwnJydmz56Nk5OTHDEe54avsWxqaoqHhwcNDQ3vPHukUCgIDQ3lzp072h3DN+/P4O3tzdGjR0cc0aurq+Px48f4+PgQExMj64oQQqujo4OTJ0/y+PFjzM3NCQoK0g4p0mg09PX1ERsby5EjR7QFISUlBScnp79ct3/43jBqtZr8/HyCg4OpqKiQ+XIf6VMKQ3d3NxcuXGDZsmUsX74cd3f3v/y9enp6uHv3LqtWrWL16tUUFBR8rkUX44gUhnFseA7Dy5cv6enpGXVjq1KpaGhoGHXnUowvGo2G3t7ef7xrr0ajGXUilEqlkqEdQogPMjyfpK+vb9ThKcNX54M/h06KL+tTL6v64sULkpKSaG5uHvV9RaPR0NHRQVlZmZx5nqSkMAghhBBCjFOfaw6DEH9HCoMQQgghxDhVX1/P6tWrqays1PWiiAlMCoMQQgghxDilVqtpbm7+KpfWFJOXFAYhhBBCCCHEqKQwCCGEEEIIIUYlhUEIIYQQQggxKikMQgghhBBCiFFJYRBCCCGEEEKMSgqDEEIIIYQQYlRSGIQQQgghhBCjksIghBBCCCGEGJUUBiGEEEIIIcSopDAIIYQQQgghRiWFQQghhBBCCDEqKQwTjEajQTGgpKO7n6bWbuqbu6hp7KSqvp3y2jbKqloormimqLyJ4opmyqpaKa9to6qunZrGTuqbu2hq7aGjqx/FgBKNRqPrpySEEEIIIXRICsM4o9FA/4CSts4+qhs6yC6sIyqllAfPcvF4kMJZr+ccuhKGxelAdhx5wOYD/qy3u4OhzW1WWdzi1703WLbbiyU7PVm224tf995gleUtDG18WW97h80H/Nlx5AEWpwM5dDmMM17P8bifwoPwHCKTS3lRWEt1QwftnX1DhULXvxAhhBBCCPFFSWEYozQaDUqVmu7eAepbusgpricsoQivR2kccQ5n84F7LNjmwXQjZ6YaOaNv4IyegTPfrnFBz8CNKWuvo7/em6nrbzLV+BbTNvgwbYMv0zf6MX3THaZvujv0341+TNt4m2kbfJhqfIupxjfRX+/NlLXX0TN0G/p+a4a+/1RDZ6avdWbhdg+2HLyHo8szPB+m8jS+iOyiOuqbu+juHUCpUsuZCSGEEEKICUIKwxgyqFTR3NZDfmkDoXGFuNxJxOpMECvNbzJ3yzW+N3ZjiuFV9Ayvob/+BtM2+vHd1gd8vyOAH02eMHN3GLNNI5hjFsUcs+fMNY8ZikXs68QxzyKOeZZxzLOMH/qvRRxzLeL+/JzXXzPH7DlzzKKZbRrBzN1h/GjyhO93BPDd1gdM2+iH/vob6Bl6MMXwKt+td2POlmv8ZnEL67PBuN5J4ml8EfmlDawaCGMAACAASURBVDS19jAwvHYJIYQQQohxRwqDjmgAtVpD/4CSxtZuwhOLOer6jE0O/izacZ3v17vy7eor6Bl5MH3THb7fHsCPu0KYtecZc8yiXxeB4R3/r5u5FnGvS0U0s/Y840eTEL7fHsD0TXfRM7rOt2uc+X69K4t3erL5wD2OukYQGltIY0s3A4Mq1Go5+yDGhsq6dv64Gcfxq5ESyZhPZHKJnL0VQuiEFIavTK3R0N7Vx8uyRh5H5XHochjLdnsxY50reoZuTFnnxfRNd/hhRyCzTSN0Wgw+OK+LxCzTZ/ywI5Bpm+6gv86Lbw2uMs3IhZ/3eHPE+RmPI/PIL22gvatPyoPQqcyXtczd4s43q67wrcFViWSMxpV//XaRiz7xss0UQuiEFIavpH9AyauaVu6GZmN1Jpjle7yZse4q3xq6M22DL99vDxg6e2D+/PWwoTFQAD7DmYg55s+ZtecZ328PYNoGX/QMrzFj3VWW7/HG6vcg7oS+4FVNqwxbEjqR+bKWuZvdmb7pDrNNIySSMZlZu8P41uAqF29JYRBC6IYUhi9IpVLT2d1Pam4Vpz2iWbbbm6mGzkwxusa0TX78aPJkaHiRRewb8womaobmScwxi+ZHkydM2+iHntE19A2dWb7Hm1Me0aTkVNLVo0ClUuv6TycmieEzDDO23h8DrxGJ5N2ZY/6cbw3cpTAIIXRGCsMXoFSqKatqwTc4E5OjD5m92R09AzemGvvww44gZu+NGj/DjL5ULOKYvTeKH3YEMtX4FnqGbsze7M6uYw+5/SSLsqoWBpVy1kF8WVIYJOMhUhiEELomheEz0WiGrnJUXtOGm38ya6x8mGrkwpS1nny37SGz9oQz1zxG5288YzFzzWOYtSec77Y+ZMpaT6YZuWBg7YuLXyLltW2o1HLGQXwZUhgk4yFSGIQQuiaF4TMYGFTxsqwRZ79Elu/xRt/QBf313vy4M5g5ZhNnTsLXemP8YUcQ+uu90TNw4RdTb1z8EskvbZB5DuKzk8IgGQ+RwiCE0DUpDJ9ApdZQUduG+71kVpjdRG+NC/rrb/LDzuChyctj4I1mvGaO2XN+2BmM/vqb6Bu6ssLsJlfvJlNR2yZvmOKzkcIgGQ+RwiCE0DUpDB9Bo9HQ2d3Pw2e5GFj7om/ozFTjW8zcFSrDjj5z5prHMHNXKFPX30Tf0Jl1+/14HJlHd68CuRy5+FRSGCTjIVIYhBC6JoXhA/UpBknMqsD6TDDfG19Fz+g63+8IYK6cUfiimWsew/c7AtAzus6Mda5Y/R5EYlYF/YpBXa8SYhyTwiAZD5HCIITQNSkM70kD1DV14eyXwMLt1/nW4CrfbXvA7L1ROn8zmTyJY/beSL7b+gA9QzcW7bjOJZ946pu7dL16iHFKCoNkPEQKgxBC16QwvIeBQRVpudVsO3wffUNnpm3wYbZphExm1lnimG0awVTjW0wxcGbXsUek5lbJZVjFB5PCIBkPkcIghNA1KQz/oLWjF7+QFyzf4/36rMJDmdA8RjLH7DnfbXuEnqEbP5ve4FZQJi3tvbpeZcQ4IoVBMh4ihUEIoWtSGEah0UB1QwcOF5/y3TpX9NffZNbuMLnh2hjLXIs4Zu0OQ3/9Db5f78qhK2HUNXXqevUR48RkLwxbTmew/UwWC6w+7usXWCew0CZB589jokcKgxBC16QwvINGo6HwVRPmpwLRN3RlxmZ/5phF6/xNQ/I3b6hm0czY7I+egQtWvwdR8KpJbvgm/tFkLwwHr78kLrsFJ58iftqfOOrnrTmSypbTmSy0/rMcLLBO4PjNQu5G1bDkb75W8umRwiCE0DUpDG8ZGFQRl1HOBvu7TDF04/vtj5lrEavzNwzJP2euRQzfb3+MnuFV1tveITb9lby5ir81mQrD4n0JLLdLGpGVB1M4dqOA0JQGNpxMH/Gxn2z/LAE2rrkk5LXi6F2gLQ0LrOI5easQ/+hqFu8bu2cZ5lvGMd9yfG/DpTAIIXRNCsMblCo1IbGF/GTiiZ6BGz+aPJEhSOMucfy4M5hvDdxYutuLp/GFKAaVul61xBg1WQrDfKt49rvlEZHexPOsZp5nNROf00JmcTux2S2kvGwj5kWz9mPPs5rxCa/SloPF+xI5d7eEzOJ27K/lY+uWh4NHPr7PqojMaOLg9ZfYu+dj557H4n2f52zDLw5JLLX98O+1yCp6REFYZh3O2v13WTCOS4MUBiGErklheG1gUEVoXCE/7fJCb60nM3eFMs9SysL4TBwzd4UyZe11Fu+8Tmh8oVxBSbzTZCkM8yzjWX0khZ3nsthxdijn/Usoqe7G4nKO9rG3M88ynkU2CSzZn8jifYlYu+Ri55aHT3gVfpHVxOe0kFfeyd2oavwiqrnxtPKjdvLfzkLrBPwiqjnpUzRiGNQ/ZZn1UzbZ3uQnq2fax5ZbP2Wj7S0WWI7fm2pKYRBC6JoUBkClUhOeUMTindfRM/Jg5p5wObMw7hPHzN1hTDHyYNluLyKTS+SNVvzFZCoMb8fKOZdXdT2c9CnC0btAm4PXX/KLQzLzLOOZbxmPtUsu/lE1bP09k/lWQ3MXFtkksHjf0ByGO5HVLLVNZKF1AottEpj/xs+Yb/UBeePrFljFs881l82nMt77+Sy1DmeHvTtG+/1HnGGQwiCEEJ9u0hcGtUZDQmY5v1ncQs/wGjN3PUXOLEyczNwdhp7hNVaa3yLxRQVKlUyEFn+azIXhiFcBTe0KgpPqCYivIyC+jsiMJoqqujE6mqb9vJUHU3B5XEZQYj3bz2Zh65aHnXse9tfy8Xk9JOmAx9BwJDv3PMwv5/DT/kQ2nEzniNdLHL0K3isO1/JHTJ6e/wHP5SerCPY4OLPbwRWD/Q9Yve+RNutt/dhoe1MKgxBfmEqlRjGgpK9/kJ6+Abp6FHR099Pe2UdrRy/NbT00tnbT2NpNU1sPLe29tHX20dHVT1ePgp7eAXr7B+lXKFEq5b16rJnUhUGj0fCisBYDa1/0jK7JMKQJmLkWcfxoEoKeoTurLX3IKqjV9WonxpDJWhgWWMXjFVpBVGbTiKsj7TibRXZph/YMw3AWWiew+VQGG53S8Q6twDOkAq/QClJethKf04JXyNBjniEVOD8q47dDKey9lM3NsEp8nlW9V64/KWe5XdJHPZ9l1uGYHbiE2YFLbLD1YYOtrzbGtr6stAlg/jjetkthEGPBcCHo6RugvauPqvp2XhTWEplciv/TbK7eTeJ3z+ccd4vk8JVw7C6EYn0mmL1OAZgcfciWg/cwtrvDels/Nh/wZ4fjA0xPPsbq9yBsL4Rw8HIYx65GcPp6NFduJ+AbnMXT+CLS8qp5Vd1KW0cvPX0DKAaUqOTg31c3qQtDbWMne048Rs/AVSY4T+i8Lg0GrlicDqKxdXKs3+KfTdbCsMgmgdDkBq4FlY+4B4PJuSzSC9v42f6vO+7rjqfh6F3AUttEFtkksPpwCjEvmjnjV8zqIykss0vSDlUaHma0yCbhvfOpV1r62ToUE3t3Vu17zALLmNdXR/ozuv6df0qkMIivTaVS06cYpK2zj8LyJqJSSvF4kMrhK2FsO3yf5bu9mLvFnZkbrvLdelemGrkwxdAFfSM39I2uob/WA/2119Ff54n+Oi+mrvdGf/0NphrfRN/4Jvrrb6C/3hv9dV5Dn7P2+tDXGF1jipEbUwxd0TdwZsZaV37YcJXZm9z4ycSTTQf8cbj4FNc7STyNKyS7qI7G1m56+wdQylzFL2rSFob+ASWud5KYauTCd9seMU/KwsSORRzfb3/MVCNXLvnE09s/qOtVUIwBk7UwbDyZTkJuCxZXckY8bnYpm/TCNpa/VRgWWCdwxq+Y2xFDV05avC8B18eveBhby/oTadyNquaIVwHzP/IGcO/Kz/ZJH1wiVtgEsc3OkyVWETr/HX/OSGEQX5JGo6Gvf5DG1m7ySxuITC7B61E6By+HYWx3h8U7PZm+zpVvVrvwraE7ems90V9/g2kbbzNjyz2+3/6YH02eMGtPOLNNI5i9N4rZZlHMMYtmjvlz5prHMNc89vUl6uOYZxnHXIs45lrEMtc8hjnmz4c+1yx66GtNI5m15xkzd4Xy/Y4AZmy9z7SNfuivv8mUtV58a3iNb9a4MtXQhQXbr2Ng44vNuSdcvZNEaGwhWQW11DZ20ts3gFojr5fPZVIWBqVKzePIfGZvdmfaxtvMNR+/l9uTfMibbgzTNvgya5MbgdH5Mp9BTMrCsGRfIu6B5fhH17DkjUugzreK59jNQuJzWlj21tCglQdTCElqYO/FbOZbDd2XITqzmU1OGSy0ScDRu4DozCY2nEz/LMu40DoBr5AKTP948UFfN98yjqXWz8b1fIV3RQqD+NzUag2DShUVtW08jszjqGsExnZ3WGLiyXfrXNFb48yUtR5M3eDDjC33+WFn0FAh2BvJHLPnQzv/FkM7/1/+NTBcMmKZY/6c2XujmLXnGT+YPOG7rQ+ZtvE2+us80TNwYbqRMwu3e2BocxuHi0/xDc4kr6SBfoVSysMnmpSFIaeonl/23mDKWk9m743U6RvBIpsETM6/YPXhlA/+2p/2J/KLQ/Jfstjm3Ufl5lvFs9Q2kV8ckkYMQxj+2E/7E0c9QrjQOoFd57O0V0r5kOU0cBy6S+yiUZbra2a2aSRT1l5nlcUt8krqke3H5DaZCsN8y3h+O5TCxXulxOe0sPNclvZjvx1KwfhEOo/iankQUzviyP6SfYncfFqJf3QNP9snsf1sJtFZTZzxK2bb75nsPJeFtUsuSfmtPIip+cvZiY+JgWMq4amNrDue9snfayJECoP4HPoVShpausksqMU3OAvTk49ZvOM6M9ZdRc/QjSnrvJi++S4/7gxmtmkEc8yi3ygGun8dvDtDZyuGikQkP5qEMGPLPfTX30DP0J2pRq7M23qNbYfvc/1hKknZlVQ3dNDTN4BGdgA+yKQrDD19Azhdi0LPwIUfdgZ/9ZV78b4EltomaWN0NJWA+DpCkxvYdiZzxMeGb4D026EU7K/lc8jz5VCuv2TnuSx+v13Mk6R6AhP+TGhyw4hhBkv2JWJ2OZuj3gWc9y/hblQ1D2Nr2X4mk18ckvntUAq7L7zAybcIr9AK7Rv0T/sTRy7nsTSeZzVz5VEZy+ySRnxsqW3SqGVgvlU8Dtfyic1u5ojXy886ZOFj8+OuEKYYuHLqWhSKAbmp22Q2mQrD5lMZhKY0kFnczr6ruSMOGhzyfElSfisZRe3sv5r35+vXMh5L5xxyyjrYfeEFi/cl4hFcTlFVNwHxddyLruFaUDnugeX4hFeRXdrBfrc8jDf68IvJk6FtiWkEe1ddZuOGW8y3iGOp6TNMV19ho/GtoW2iWTS717iwa40LC82imWcZz+9+xdx4WsmCD7gHw0SOFAbxsZQqNU2t3cSklXHG6zmbDvgzd8s1vl3jgp7RdaZtusMPOwKZtecZc80nzpm5uRaxzDaN4AeTYKZv9mfKOm++WePCzI1uGO27zRHnZwRGv6S6oUNGG7ynSVcYUnKqWLTDg+mb7rweT/f1VuCF1n+euo/OGsrzrCYyitqpb1WQWdyufTzmRTOeIRUssE5g25lM/CKqCU9tpKiqm4extZy+XcTtiGp8wqvY6JTO1t8z2XAynSdJDRy/Vaj9mSsOJhOVOfT9vEIruHCvBGuXXE7dLuJlRRfpRW0k5bfyNKWBG08r2XYmkyX7E7l4v5SoN5YzKb+VhtZ+0gratI9pk9nEubslLLBKYIHVUEl5Mz/bJ3H0RiER6Y1sdMoY8TFdnHWYaxHLtI23WbDNg+TsSjnLMIlNpsJgeDSVc3dL2Hw64y874kttE1l/Ip01R1L/8po0OpbGsZuF2gMYvzgMHUBYdTiFXxySXt/UbWhew54/XvDboRS2G13j8OKDLNsTxpHFBzmy6ABOc21Ytf0RFivOc3jxQU7PsWTdJj8clh7j2AJbTs21wsTgKott4nH0LmDL6fe/B8NEjxQG8SE0Gg39CiUFrxpx809m7X4/ftxwFX3Dq0w1vsl32x4xa8+zP88gjPOLAvxTtGcgTCP4fnsAUzf4MMXInRnrXFhhdpOzXjGk5FTR3auQ19ffmFSFoaOrn/3nhy6xOcv02VdfaRfZJHAtqJx70TWYXcrGyjkX04vZmF7M5oJ/Cef9SzC7PPTv8/4lhKU2sMgmgQXWQzviu86/ICy1kaW2iSywisfzSQXXgsqxdcsjIL4OQ8dU7j2v4cStIu3P/PVAMpEZTZz3L+Fn+yR+tk9iyb5EDnjkE5fTzO4LLzA8mjpiLPPC1yVl7+tlM7uUzeP4OsLTGrF0ztEu85vZ6DQ0dnnL6QwexNRyP6aG+zE1BCbU8TSlgYextURlNvEo9s+P3Y+p4YxfsU5Kw6w94egZumPmFEBze4+uV02hI5OpMHzVbZ1ZNA5Lj3J6jgUn5u1n6Z5n7DJw5eQ8G44utGfFziA2r/fm1Bwrfp9twS8mT1ixM4hjC+34eVeozpd/rEUKg3gf/QolFbVtPI0r5OClpywx8eSb1c5MWevJjC33mLUn/KsfKB2LmWsRN1Qetj1Cf503365xZe6Wa5g5BXD3aTaF5U2vhyzp+i86tkyawqDRQNDzl0xf68J3W+7r5BKqi2wSOHunmIv3Sll3PA2v0EpMzr9gkU0CQYn1+EfXaI/i7TyXxe2Iaha+cSTwzcIwzzKe668Lw+nbRSTlt7LcLumdhSHmRTMvSjoIT2skIr0RJ98iDnjkE5ba8M7LJ76dneeyyHvVye2Iahyu5WP/Onbu+Wx0yhgxtOHXA8mYX85h76Vs9l7KxvNJBdmlHdp/vxmzS9nsOJv1l/kUXyUWcczYcp/v17sSEluo69VT6IgUhi+XJXsjRwxNWmj+nPUbfVmxM4h5lvEssIjFaPNdfjUZGho63yKO5btCWWj+XOfLPtYihUH8nUGlioKyRv64FYeBtS8z1rqgZ3SN6Zvu8qNJyOszCRP7LMLHZq55DDN3P2XGlvtMWevJNCMXfjb1xtHlGUkvKulXyLDlYZOmMLR39WF9Jhg9Q3dmm+rukntLbRNZeTAZA8dUbjytJDm/lcOeL4nMaOLKwzLtGP9FNgn8dihF+//bzmRyxq+YpPxWrF1yMT6ZjlfIn4UhNruZZbbvLgyRGU24PH6F8cl0PEMq8H1WxQGPfBJyW7BxzWXvxWxttp35c3LyfKuhcc9J+a00tit4ntVMZEaTNkn5rbg+fvW3ZwiOeheQVdIx4mfsvZiNyfmsoUnWOtxQzN4biZ6hG3YXQujuVeh6FRU6IIVBMh4ihUG8TaOB3v5B8ksbOOsVw+KdnkP3QVjvzQ87g94YbqT79XdcxCKOOWbP+dEkhKnGt9AzcGXWJjcOXg4jObuS9q6+ST9JetIUhsyXNSzZ6cm0jX46b9o7z2ZxJ6oaiys52Lvnc/xmIdGZTfzuV/zOz//FIQnnR2WEpTZSVtuDf3QNx24UcDOskmvB5fxxr5RHcbUs2Zf4zsIQkdGIk8/QY+f9S7gdUc0Bj3zK63t4FFdLXE4LhZVdPIipxfXxq6FhS/sT2XUhi2fpjZTX9fIsfejMxp9J4ohXAR7BFX9bGE7cKqS0poc7kdXahKc18qKkQzuMSVeZaxHH9M3+/GTiRV5Jva5XUaEDUhgk4yFSGMQwjWbo4i0pOVWcdI9iiYkn3xq4MnWDz9ANaCfQxGVdZa5FHDN3P2X6pjvoGboxd8s1bM+H8DS+iNaOXl2vAjozKQqDUqnCzT8ZPQMXZu4O0/nK+OuBZFwevyKtsI0L/iUss03iWXojx28WvvPz51sNXV3J7FI24amN/HogmcX7ErjxtBKP4ApuhVcRmFCH8Yl0HsfVvbMweD+tZJ9rHveia7gTOVQYEvNaMHBM5Y97pcTntrDmSCo/7U/kp/2JOD8qo7CyC+/QSrxDK6hu6iM6q3lEMora/7YwzLeK5/KDMp6mNLBkf6I2tm55vChpHxOXTJy1Jxw9A1fc7yWjVMqVEiYbKQyS8RApDAJgYFBJQmY51meCmbf1GvpGV5m+6Q6zdodJUfgCmWsRyyzTZ8zYch89Q3d+3HAVk2MPCY0rnJSjEiZFYWhq7WaD/V3019/U6Sm6Ba+H+JhdysbaJZdbYVU8jqtl/9U8skra8Qgux+z12H6zS0OTiX9x+HOOwfAchp9sh+6X4B5YzrXgcqIym2ho6+ekTyFXA15h5Zyr/ZpVh1NIzGslIbeVsNRGItOb+ONeKcduFBCaUs9y+yTO3CkmLqeFFQeSmWc5NOnZ3j2f8/4lLLVN5IJ/Ccn5rdi75/+Za/l4h1b+bWFYapvI47g6PILLRzxu45pLcn4rvzgk63yDMMc8Bv31N1ht5UNTq0x+nmykMEjGQ6QwTG4DgyqKK5u56BPP/G0efLPGlWkb/Zi1J1zn6+bkSByz90YyY8t9vjV057v1rjhcfErmy5pJNcdhUhSGhKwKZm505/vtj9Hl5cN+2p/I77eLuR1Rrc2dqGoS81opq+3hQUztiI/djqhm1/k/73S66/wLnqU1svNcFhZXclh/Ip2jNwrIKGrnZUUn5pdztFdUGv6a9SfSic5qwuhoGotsElhkk8CSfYm4PH7FzbCh65y/XRjmWQ6dHRi+9OIF/xJe1fUQnFSvzZOkepLyWv+2MKw9lkZsdjM73rhB1DzL+KErNGW3jIGNQDzzLOL4bttDZqxzJS6jXNerqvjKpDBIxkOkMExOGo2GlvYefIOzWGPli56BC9M23mbWnjCZn6CLWAwXB3/0DN1YusuLP27FUV7TOilelxO+MGg0cP1BKnoGrszc9VTnK9zifYnaYT/L7JLYeymbxLxW3AJe4RlSgZNv0Z9Dg2wTtTv5a4+l8fvtYmqa+sgv78Q7tJINJ9MJTWnAJ7ySxLwWzC8P3bDtZ/skDBxTWWA1dDQ/JLmBn/b/ednUJfsSeRhby9m7JcyzjH9nYXgzF/xLiEhvxPhE+p85mc4F/9JRC8NC6wQuPyjjYUwty2xHXonpqHcBT1MadP63GM7MXaFMMXDB9U7SpJ/UNNlM9sKw+nAKRsfSPvpKZYtsElhm9+l3dpb8faQwTD49fQNEpZSw+YA/09e6or/Oix93hcjQozGQuRZxzNoTzlTjW+gburDGyofHkXm0dfZN6NfnhC8MPX0D2JwN5lvDa8zeG6XzFW2e5dCb7MpDKRzxKuBZeiNuga9YeTAZB498nqU18jiujj1/ZLN439CO+PazWcTntJDyso3rTyowu5TN7gsveBRXR1hqI9vPZhKf24K9ez4/2SZy4lYhtyOq+fVAMjfDKnF9/GrEjZp2nX9BXHYLm1/fGOl9CsOTpHrtv4fnVLxr0vN8q3hWHkzm7J1iEnJbMP0jm/mWQ3eM/dk+iTVHUrkdUcWDmBqd/x2GM3tvFHqG7licDqSrZ/KNS5zMJnthOOCRT1RGEwevvxxxCee3s+JgMkZHR845mm8Vj517HteflI+4j4vk80cKw+ShVKkpKm/ipHsksza5Dw2B2fqAOWZyueGxlrkWsfywI4gpa72YauSC5ekgkrIrGVSqdL0afRETvjDUNHawfI83U41v6fwU3nyreLb+nolXSAXJ+W08SarH0jmHZa/vqzDfauiI35WHZaQWtHHev4QFVvEst0ti94UXGDimsuJgMlcelpH3qpP7z2swcEzlJ9tE7j+vIbO4ndjsFjKK2zl+s5B1x9OIzGjC9GK2dhmW2yXxNKWB2xFV2jf5Dy0MaxxTuf6kgtSCNtwCy0fsaGw+lcHzrGZelHaw3y2Pha/LxELrBE75FpFf3kluWSf7r+bp/MX+5otef/0NfrO4RWVdm65XWfEVTfbCsPT1AYbIjCYMHFNH/TwHj3xis5uxvJKjvfTzAqt4TvoUcf95jfbgxtv5xWHoviw2rrl/mx1ns/62sEz2SGGYHAYGVQRG57PGygd9Q1dmbLnH7L2ROr+yo+TvEsccs2i+2/aIKUbu/LTLE/d7yXR09+t6dfrsJnxhyHhZww/GQy88Xa9Y863ih+6aHFfLiVuFo076XWSTwH63PI7fLPzLUIHF+xI5e6eEqwFDZyWGH199OAWzS9lYOuew/WyWdq7C+hPpI84ALLVNxMm3iK2/Z2of2++Wx62wylFv4mbjmssf90q1//7tUAr+0TU8jq9j25nMEZ9rfDKdG08r2XXhhXbHYjgrDiSz91I2G06m6+ZmbX+TGVvuMX+rB+n51XJ3x0lkshSG+Zbx7PnjBbfCq7SXN773vIaA+DruRtcQndU04tLHdyKrufSgVLsTv9w+Ce/QSlJetmF+OYed57LYfeEFboHlhCY3sPdiNrvOZ7Hz3J87/vMt4zE5n0VIcgPRWU2jJ7MJr9CKv2x/ltklfdRd4BdaPefNuWo/WUWwet9DFliO3zHfUhgmNrVaQ3VDB85+icze5M63htf4YWcQ86QojKvM2h3GlHXeTF/rwsHLYbwsa5hQr9cJXxiiUkqZsc7l9YRn3a9Q8yyHjra/vTP9roy2U/3mhOSPyXyr+BE3TJtvFa89EzDa57999G+BdcLQ83jXco/DI4Xf7whg1kY3nqeWyTyGSWSyFIZ5lkMXQLBzz9fmWnA5r+p6cPQuGPH4cKxdcoe2Fa+z3C4JR+8CHL0L8Iuoxj+6hvjcFl5WdHH/eQ13o6rxCa8aMV9qofXQgYvhuVijZenrK7+9uQ3xDq3giFfBB515WGIVwQZbH5ZY/XlzzuXWT9loe4sFluN37LcUholLqVKTnF2JydGH6Bk4M22D7+uby0pZGI+ZYxbNjC330DNwxWjfbQKj8yfMJVgnfGEIiMpnmpHLUFsfAyuTZGzmR5MnfLfelScxBVIYJpHJVBjejpVzLoWVXey9lM2Os1nabDuTOXQX9tc78LsvvODi/dIRV1pbZpfEcvskTvkW4R9dmy6c3QAAIABJREFUw4oDyUOPfaYJ0AusEzhxq5DdF168993gF1tFsdXOk/W2fiPKgRQGMVZ19Si4FZTB4p3XmWLkzg87Apkjk5rHfeZaxPLjrlCmGF1n1iY3LvrE09TaPe73LSZ8YfAJykTfwJmZu0J1vhJJxm5m7Q5jqqEz98JyUI/zF7V4f5O5MBzyfEljm4KQ5AYCE+oJTKgnKrOJ3FedrD02NMF5vmU8G50yuBlWyf3nNWz7PXPoPjGXs7G4ksP1JxWEpTVg5ZyD2eWhx3eey2LxV54Evdgqkp327pg6XGH1voes3Beozdr9d9lkd1MKgxgzNBqoru/g9PVoZqxzRX/djTFxU1nJ581s00imbfRjioELlr8HkVNcj2ocv34nfGFwvZvEt2uuMGvPM52vPJKxm9l7o/hm9RW8H6fLG/IkMlkLwwKr/8/eeXc1lf1v+zU9v8HynXHGCvY+KqDYe0MIHXtHsdORojQV6U0EpaWRACn03nu1N+B6/ghEIlhmRgjIude6louTxLR9cva996eI8UuoJUfbxfqTuaxwkrLCSYr1bQ2FNX2s/aIAwnInqX73ISa7meisZqKzm8kr66GgovfzsaxmglLq2HAqd0Lfz0q7VGyO38D6+G12OQezy/menp3O99joEI2pkMMgaJKouqEL60txzLL04n87H7LAOsPoY0xgfFh4LJM/dkdhssmLLU4R5GobjD38/rV+ecPg+0iOySZPwTAIfJP5R5/x20YP7sUJhmEq65/uDk1Xw7DEXkKCpJWQ1AaDHIH911TklfWOWQBh02kFth5aVjnLWOYgZeOpXJ7ktnE7qpqNp3SmY5mDznhMdFEDU9sc/naIY7+LH+vsEzCzzcLUNnsEUzseXDAMv4b6+wcoqmzlwNloftvkxe+7o4S+CtOAhTbZ/Lk/ARMLPzbYhPA8t4r3H6Zeh+hf3jCEJRYw08JzUjRtE5i8DIckPX6qmfJxhtNVg4NQ3vCKisZXfOr/se9wuhoGy7NKJIVdOHgXGhw/cktDfnnPKMNgKhJz/n4ZEc8aWTxU8OD6Q1255e2X8glKrtMnSf+s1/ijxSFGssE+lj0uAQZJz78CgmGY+vrwsZ/nuVVscYxgpqUvf+6LN3qpd4GJJIe5B59gYnmX5QcCefREw5t3H4w9LP+RfnnDEJ8xnPScOAkGjMBkRZf07ENydplgGKaoBgYHCUtrYOuFPAKT6qhpefNd4zAdDcMSewl3oqqIzWlmhdPnXANTWzGng0oRa7tGdWdfd1xOkqwVR58iTEU6Y5Gl6uTAUBnVaw8reapsx2JEL4fVrjL2XClgr7vqh9h+KV+/22FmJ8E/oRbr25p/ZBpMbXNYaZc6pfMVxkIwDFNb7z984mGKmsV772Ji4c9fB5KFkqnTEl2H6JlWwfy51QePcAkvplCz2F/eMGRMwrKqE81YtcwX20nY665i6yTsiWAM5uwdKquqrBb6MExRDQwOcj+1Xv+d7rycT3BKHZWNr/j4aWDMx0w3w7DGVc6Z4FJytF1Y39aMOC5jw6lcIp41Ei9pMejcvNRByq3HVcSKW1jtKmPrxTyS5a3cfFyF1Xkl2y/mcfSWBnlxNyGp9fqyqjYeWhKlraTktv0QoWkN+p2NjacVPFW2s+1ivtE/s8mAYBimrt5/+ER8Rgmme+4yY3PQUHKzYBamM/OPPmfW1lD+t9mL22Fiel68NfYw/SH98oZBVdo8aRq3GYNljlIuhpZz9JbGIFZ5pbOM2JwW7kRVC4bBVszvOx9hutuf/JKmUWNoYGCQsvpXSIu6/xV5Zb0U1bwwCtXNr2lof2sU2nre0/fqI32vJ4aelx8ITK4z+F4X20nYcTkfn7gaqppej5psTSfDsP1SHvGSFgprXnAqqMRgIeHsvVLyynspqX/JqcASg1V9Ww8t2uo+bD20rHCSEvq0gcaOt6Tnt5MobSU8vZGwtAbiJS2UNbzUd3Ff5ihllbOMlT/IaheZ/nkvhJQTkd74rxq3/YoIhmFq6lP/ANHphSzee5eZVsFD/RWMP54EjM8C6wxmbw9jjpU3fpFy3r2f/DkNv7xhaG5/warDwczcen9axgsusZfgFVONtrqPU0ElLHPUJSYud5Ry70k9d6KrWeYg1TdX+t7/t1iUyRLRr1XRYaFNNjOt7rHRNpT6lt5RY2hgYJCmjreUN7z6VxRWv0Be3I3MCDwv6CBZ3moUYnOaiUhvJDy9YUIIS2vA1kM75ne82kXGiYAS6treGHy308kw7LicT8SzRmw9taOaK/59Mpdjd7TsvlLAUgfD23ZfKcA/oVbfXG3LeSUHb6jZ6ZaPxVkFq5xlrHCSstJZxsnAEqwu5P2n17nEXsKtx1Vf/S6nI4JhmHr6+KmfNGkFy/YHYmJ5l3mHnxp9HAlMLhZYZzBrWyhzrLy5G6XgzdvJndPwyxuG128+YOeeyG8W/sw/+tzoA8QYrHCScuNRJTE5zdx6XEXoU93kSlXRi6y4m7A03d/n75cZTBbMbLNZbZeCmehzPPDfDnFYOj7iV9pSnX/0GSYWfoiuJPBynOIJBweNw8DgIAMDxqF/YJD+/onj46cBglIMdxiWOUo5dENNeHojDe1vR9XAnk6GYZGt+Kvd2b/Hj3Zv/1lJz2aif57w/CsjGIappf7+ATIV1ayzvo+J5V3mHpoaRVcW20m+GnFgJhr922Em+nnn/FjPN9ZrMROJf7j7u+k/uO+o5/kXRRf+DfOPPmOm1T3m7/Dl0RMN795/NPbw/ap+ecMwODhIULSSGRbeU+ak/ZmsOy5njaucZQ5SNp9Tsv+aChsPLTYeWpJkrTzKaNL/vfdqwYiTKwcLx0h2OQcb7ChscIhli1MEv5JhmHswBRNzL7weSIWmbVNYI3MYltpLOHhdTXR2M40db/kg5DAITGEEwzB1NDgIOfk1rLW+h4mF/1CFxp93vVzlIsPirBJTkZiVTjL2XC0Yk91XCkZVO1vhJGXpVyIJVjhJ8Yqt4ey90jFvvxhSxrE7hqHNJwNKcAsvZ6Xzz2/U6OJfjEdMNatdP78HU5EYe+9C7j2pN8iz+ho2HlpispuxPKv8oedc7SrT76SeCS7lYmg5i+0krHaRsftKwb82H99j/pF0ZloFY7rbn6g0Lf0DY1+vjK1f3jAAyDX1zN/hxx97Yn7qiTvZWWwnwS28nMeZTRy+qWaZg5SlIwhIquNOdLXBscV2EsxsszB3eMxhVy/W2CdjZpulZ6ND9C9lGBba5PDHnmh+3+JFdl6NsYeqoP+ggcFBHmY0sv+aipDUBlq73333MYJhEJgKfM8wvPvQT3Xza2pa3tDQ/pbW7ne0D+UQvXnXz7sP/Xz4OMCHTwN86h/kU79uF/BXWB/51D84aRZ6Bgehoq6T7a6P+M3cl78OJPGzr5X23oVkqTtx9S/m0A016XntPMvvIFvTxbP8DnI0XdS2vOapsh2r85/DA5fYS7gTXc2NR5X6wgQjWeUsI17SyrWHlWM+b2puGxdDyzET6f6vxfYSXP2LkRR2cSqwhMX2kjHDmpfYSwzmGKMZexJ+MbScVEUba1zlmIp0xReWO0o5HVxCgqSF1S4yljpI9bsAK511k/q97p8JfdqAsqyHo7c1Bsf3uhew41K+YUSFSMydqCr8E2tZ7SLjTHApfgm1rHGV4xNXQ6aq84eNx79h/pF0TCwDWbY/EHFB7aQ0DdPCMHT2vmaby0NmbrnHwmPTK49hjasct/ByApPrOBlQQmRGE1FZzURlNaOt7iOvrEf/d1RWM1ciKjB3TsLuhDtHj99hr0sAe0ZwyNWbLY6/jmFYcCyLmVb3sHQIp7PntbGHqqD/oMFBaOl6R2PH269WRfpSgmEQmAp8zzC8fveJ/PJeJIXdiAu7yFR38rygg1RFO0nSVhKlrTzJbSNF3kaqoo2MAt3EUlbUjaK0h/yKXkrrXlLf9oamTp3hePnmEx9/sJ+JMVVQ0UtGQccPn/Pjqb6X73C8lsRMSx+dWRiH0qkrnKS4R1QgKexC5Kll3XE5Oy7nE5XVzO2oKiLSG0mWt7H/msogpMZUJOZkYAmFNS+4ElExanKvMwwtXI2oGPN5U+StuPgXs8ZVzq3HVfgm1OKXUEuCtIXIzCZ842u596Qeq/OfJ9WL7SRcCCnj8Yg5xpeEpDaw5dzoifiJgGLixC2scpax/oSc4JR6orKaydF2UVL3gujsZh5l6BZDTUViDlxXEZPdTJy4hThxCynyNho73qIs6yFe0qI/Psy9J/UGZaAX2eoaV2ZrurgUWs7JwBICkmq5GVmlryr3o6GZ/44c5h56gomFH1scIyir6TD2cB6laWEYPn4awC9Szm+bPJl3KNXoP/4TzRJ7CRtO5bLLrYBjd7RY39ZwNrgUbXUfNyMrsb6jwfq2BhsPLYdvqlnl8JwDLn7sdglirX0Sa+yTDVgq+nVyQeYeSmWGuTeB0YpJs0olaOIkGAaBqcCPhCQNDuryhj71D/Lh4wDvPw7w9n0/r99+4tXbT/S++khn3wdau97R2q0z1nWtb6hqfk1p3UsUpT2k57WTJGslJkc3ofKMqeFmZBV3E2t5nNlMel47T5XtKEp6KKt/SWv3Ozp639P94gN9rz/y4vVHXr39xOt3/bx938/7jwN8/KTjU7/u9Q0M/rydjUEgJruZTWcUuD+opLLpx5s2/my9//AJv0dyZll68fuuxywcxz4LSx2kHLmlYdNpBX+fzGXLeSVu4eWoK/uoaHzFkVsaNp5WsMZV/sXjJFyJqOBxVjM3I6sIT28k4pmOyIwmyupfIi3qJjy9keN3i1nqIMHGQ0vI0waqml6Toerk2sNKbDy03ImqwtGniMM31XjG1qCu6uNKRAXrT+bqn2+Zg5THmU3ciarGemjuMZLjd4vJUHWw/5qKRbY6U2PrqSUsrYEMVScVja8IS2vgyC3d/OTYHS1+CbWk57dj51XIsTtazIcm/cscpKw9Lme1q4w1rjJOB5eSW9LDoRtq/j6Za8AaVzmrXWT6nK71J3OxPKtky3klNyMruRlZxbWHlcSJW8hQdXLjUSWbzymxPKsc9Zn+XHL4c38iM8y9OOOVxqs3kysJeloYhsFBXXnVZQcCmb09YlxP5MmIqUjMqcASzgSX6pOA3B9UkKnq5MgtNfuvqUatNqy0S2W/ix8WjpGY2f6iuzI2Ofxv50NWHgqiqLLV2MNUkBEkGAaBqcBE5DAMDmJQtGA4dOnDpwH6Xn+kpesdlY2vKK17SX55L/LiHp7ld+hJz2snPU/3b5qynWR5G8/yO8hSd5Kt6UJapKvcpizroaCiF01VH6X1L6lpfk1z5ztaut7R2feeF28+GhqMIZMxltHo7x8kKKUOM5Hu+rXlvJLYnBbaut9NaLjVp08DxGcUs3CXP7O2hrLAevwqCZrZSXSIJKxwkhIvaSFZ3kro0wayNZ0U1rwgLK2BZFkrfgm1Bs0Qzex0oUTrTshx8i3iSniFnpuRVagq+0iWt3ElvIJjd7QssZew/5oKt/AKtNV9PM5swtGniA2ncnmc2cSD541sPJVLbE4LPnE1o/Ijhg3D1yqebTyVyxNFG/uGDYOtbpX/SngFj7OayC/v4cajSpx8i9h3TcX+ayruRFeRktvKoRtq9rmr2Oeu4u8RJmWRrRjLc7pO9trqF9xPbSAopZ6glHqCU+q5E1XN2uOfJ/1L7CVcf1RJorSVJGkrqYo2yhte0db9jtrW1zzL7yBZptulS5LpQra+lgfyM1hok83vux/zvy0+eEZIJ1XlpGlhGABevHqHvXsSMyx8mTfNaiGbn1GQUdCBi18xi2x15RWTZK0cvaVhn7uKTFUndl6Fox630i4VK6cIlvxCOwojmX8kHRMLX1xupoxbdSRBk1uCYRCYCkz2pOdRuxrv+nnx+iO9rz7S0fuetp73NHa8pb7tDdXNrymrf0Vx7QsKKnqRF3eTpe4kQ9XJU6Wut8fjTF3obIKklVSFLkb/eUEHYm0XeeW9qKv6KKl7SWn9Sy6FlRuE3qx0lmJ9W0NaXjvdLyZmsqUua2GDbQgztwSOa6+FtUPx9I+zmrkTVc2GU7nES3ST9f3XVAQm1xH6tIH911R4x9YQkFiLmUg3cQ9IqiUqq5nQpw2sOyHH1FbMptMKNp7STba/DEka/kyHKyMNhyQttZdwMbSchxlNZGs6iclpprzhFQ+eNXLrcZXBCvw/NQwjGQ5J2umm66OTJNNN2NPy2snRdCEu7CJH20W8pAVX/2L94yzPKUlVtNHW854bkVU4+hbpOX+/jOcFHWz+IgRqtYuMdSfk7LycT3h6I8qyHpLlbTS0vyFV0c75kDK2nFey/oSctcfl/6rS3D8932dtC2XhLj9SxeWTJp9h2hgGgCficuZY6Zq4TZddhuFEp0RpKyucpKw7IScsrYE7Ubr+C8OVEXK0XWw5PzqO0NQ2h18lX2EkC21y+H1XJH9u9SYpu9TYQ1OQkTTdDcPwFv2/ffzioYRGY7+PX53JbhjGQwMDg/S+/Ehz1zuqml5T0fiK/PJestRdpCraSVW0kyBpxcZDO2b5S/MzCjxjqnn1dnwbYrV1vsT6Uhy/bfJh7sGUcR0HK51lnA4qITy9EXlxN9sv5ZEoa0VW1E1sTgt55T3kl/cSm9OCvLib+0/qMROJWe4o5eqDCjxiqimpfYnV+TwW20m4E1VNkqyV9Sdzv5vD8ETexvVHlVicVeDoU4T7g0pC0xrwiavhakQFVyIqOBNcalCZ6d8ahsV2Es7eK6WgopcHzxqHEpwlBnhEVxOQVKe7zV7Cckcph2+qSZK1ItZ2Ud7wipOBJey4nK/n2B0tacp2A8NgKtI1tbwcVk6KvI04cQu7rhRw9l4pceIWvGJqEGu7SJC0cjKg5IeqM/0M5h1JZ8bmADaKQimsbGMynPXTyjD0vXqHnXsiJha+zDucZvSLwERw8LqabE0nB2+oWeOqMwuqyl5uRlZxO6oKz5hqIp410tz5lpDUBpaNUT3hV2TuoVR+M/dFdDVxyrRlF/TzNd0Nw6mgElLkbVjf1nyz5vhSB4nBNv4i288lDr1ia75a6UTg5zAdDcP3NDgIb971czHUcIdhqYOE3VcK8IiuRlPVN67J0B8/9eMXKWemuSdz9sZMWHNYW08t4sIutl/KIyanGa+YavZcLSAgqZb7T+rZc7UAr5hqApJq9b0MzES6XEZ5Sbe+etKm0woSpa24hVew1lU+pmEwE4nZejGP/PJeVBW9XH9UieU5XfNGcWEXF0LKsDynxOKMAoszCrZeyNP/HvybkKTN55Rce1hJbkk3FY2vOHuvDBsPXV7DcL5FxLNG1JV9aKr6uJ9az0pnGQdvqFFV9vLweSP73FVUNr4iU9VJgrRVT6qinbyyXgPDoGtuW0OyvI3jd4v1VZluRFbi/qCCxXYSLM8quf24insp9QZlXsebuQdT+G2TN6c9n/LmnfH7M0wrwzA4OIiysIGl+wOYvT38l+/8vMRegk9cDaFPG1hirxv0T3LbyFJ3EpbWgFt4ua4Hwx0t5+6XkSBtxeKswuive7xZaJPN7O0RLN57l1xtvbGHpSAjajoZBlORWF/6cJgNp3LxT6hFVtTN7isFBreNrDl+JriUFHkbu9wK9JMzM5GYy2HlRGc3j2kYTEViHH2KCE9vJORpwzfxT6hl4+nx++0xneK7pIJhGFtv3vdz/G4xi+0krHCSceiGmnhJCw3tb3n7oX/cn7+wopW11veYaRU8rnkLXzLSMCTJW1FX9fG8oIPi2hcU177geUEH2uo+QlLrDZqffWkYFtmK2Xk5n91X8lntMnqHYbGdhNNBpciKumnqeMvNyCqisprJVHVQVv+SmpbX5Gi7kBd3o6rs5XlBBwmSVv3//08Ng5lIzPn7ZWSqOnmc2USitJXVrjK2XszD1b8YF/9i7L0LsfcuJFmuC1Fy8C7U53Psc1exykXGGlc5mqo+zt8vY/9Q7sP+ayrsvQtH7TAssZewy62AvVcLsDyrxGIo+Tklt01vjnTH8oa62yu/2tzuZ7PwWBb/2/GAedt9SckpY9DIhVmmlWEAePv+I24BGZiYe/LX/kR+xXCbYUxtxVicUWB5zrDM2fBkYOSgX2IvYcPJ3Ak7EYxHDn8dSGKGuTfXgrP48HH8LyqCJq+mk2HY616AV2w1fkPlEP0TarmbWEtAUh3PCzq4m1irv80voZbLYeX6MoJ/n8wlOruZbHUXB6+r2HE5n91XCvCM0YU77nMvYJdbPjsv5+uNhqlIzMEbam5GVnHjUeU3uRBSxrovdjAW/8tOq6a22Yz8XV8qesY6+/ih48b/Hv4NgmEYW6+HdhiuRlTwVNFOe8/7Cat29/rtB854pTHDYvxDkb5kpGGIzm7mQkgZyx2lXH9YyZ2oalY6y7gQUoZ/Yq3BNX3jGIbB1FbMMgddInSitJUrX+wwbL2Qx6EbalJz23DxL2als5SjtzRkazo5dEPNCicpgcl1PHzexEonGcscpPoiKsscpERlNeMWXsEut/xR2HpoyVB1GIQkLXOUsu64nJMBJfqyqqYiMSLPQgKT6/RVkQKS6vBPrB3z81njKqei8RXiwi6eKNr0ZBR0kF9uuMNgcUbBg+eNBveTFHXT2afLuxFrDf+PJFmrPu9jItD1Z7jLVucH1DX3TMjY/pqmnWEAKKpsY631fUwsA8Y1QUlg8jF88m0ShVFc1WbsoSjIyJpOhmHbxTxOBJRwMlBHUEodVU2vuBBSpj82Ehe/IoMJ+7rjcq5GVHA5tJy4nBaSZK0oSnuoan5FsrxNn6y6ynlEZ9Z/+VrN7CT4J9TqV49/9HFLRBlYOUWwTPRMf2yV3RO2OYViZptl9O/g3yIYhrHV3z9Iffvbcc9TGEtJ2aXM2+HH77six6XfwtcwtRVzIqCEgopejt8tJlXRxumgEhbb6SIK3B9U4OxXhLKshzvR1fpzeKm9BEefIkrqXuLiX8wKp8/hx8Ox/aqK3jELoCyy/Zz0bCbShTJmqjsJT2/AM6YaSWEXR25pRj1mmYOU2JwWxNoufT+QkTxVtlNU8+KbSc/DvycbTymG8i+rWOog4e53DENBeS82HlqDcqq7rxTw9IsdBjOR7rdt+D6bTuueJ1vTqauOJGtl95UC/e3rT+b+q4WM/8KcffHMtvTC95Gcj5+Mt8g5LQ3Dp/4BkrJKMd19l9nbwlh4bOpeSAR+nAXHMpm9PYz5O3yJfVbEp/7JUXlAkPE0nQzDl4g8Cymte8meqwVYXVDq2XxOaVBmefulPM4ElbL+xFDHVXsJS+0lLHOQcP5+GQ+eN7LSWcYSe4nBJOS/MDz5cfYt+uGL8xJRBtucQtnlHMxi20z98VV2T9juFCIYBkE/TbXNPVg6hDPD8i7zjz6bsHEwHOYn1naRW6Jr0qcs7eFyWDnbL+Xh6FvEsTsaHHwK8Y2vxc6rkEM31Cx3lOIRXY24sAvf+BoSpa3EZDdzMqCEnZfzsfMq5P6Teq49qGD/NRUHrqs4dEPNUgddJMJSBykp8jZc/Ir10Qg2HloyVZ2UN7wir6yHe0/q2eteYLCjMRyS5ORbZBDuOMxw6M+B658Ng6mtLg/ldFCpgWFYZCtmlYuM7ZfyWO4oJSilHv+ErxuGvPIedl8p0H9ua1zl7LumIlXRPqpK0mI7XfEGi7MKfXlZe+9CLM4oSJLpmh5a39ay1lU+Zjfr8WbhsSxmbwtj5aFg1GUtRkuAnpaGAXTJSl4PpMy29OaPPTHTpmrS9CWHOXtimG3pje8jOe/eT/yKlKDJp+lsGFzvFtP14gNPctv0JQvT89pRlPZgOZTLZCoSs8stn0cZTTx83sTWC3nsvJzPTrfPIUnxkhb2uhew0013fOuFPIOLqsUZhS5c6SvsvlIwZqWlL/MovsUSUQZ7nHWd6Dc4xLLaPkWPuUMUO5zuC4ZB0E/Rhw+fuB0qZqaFJ3P2xU/o7oKZnZizwaWcu1fGahcZVufzuPW4ikRpK8nyNoPSo8+HemN4ROsqIp4MKMH6tobFdhL+PpnLhZAy4sQtpCp0980o6CBD1UG2ppNn+R3ceFTJUgcJlueUBCbXIS/p4cgtDfbehWQU6HpveMZUs8utgG0X87gTVUWKvI2tFz6HOy22k3DsjnZUR+VhljtKOXRDbRCOuNRBwtUHFUiLugl9OroQy4aTuQSn1FNQ0cvlsPIx/981rnLkxd3scivQ/5bcelyFuqqPZ/kdBpXh1rjKuRJewcPnjUiLukmRt2HjodWHY248lYtPXA3ykh6y1J14xuhCvib6N2De4af8tskHu6uJvHj1zihjf9oaBoCWjheIriZgYu7Nn/sTJ/TEF5hAbHL4a38iJubeiK4m0t49Pca3oO9ruhoGU5EYr9hqckt6sLqQx4ZTuWw4lYuDdyFFNS8MLuCmtmLWnZAj8tSy/5qKLHUnOdouxNouKhtfUdX0Sl8TPUfbRZy4xaB4gvvDSrI1nfrbRyLWdpFR0PGfiy2ssnuC3Ql3bE7c4ICrLwdc/UbgwxaniCndgFIwDJNH5bUd/G0TwkyreywwQnTCyByBRba6Sfna43L9OTyS9Sdy9Sv0Zl/kBJnZSVjtImP9ybEeJ9fvFq5xleHgXciRm2qWOUjZeFqByLMQy7NKg2IHSx0kbL+U/593Gc1EYva6q3DxLx61EzD8/m09tDh4F7LmKxWLlthLOHpbwwqnz7fvuJyPs18ROy7nG+yCrD8hJya7mZjsZlz8i9lwanTI0XJHKXuuFHA1ogK38AqjVIVbaJPN/3Y8ZO42H57Jq4yyyzCtDQNAUVUbm0ShmFj48dfBFME0/GIstMnhrwPJmFj4Ym4XRmGF0NFZ0GdNV8Ow2E5CbE4LD541Gkw+9l9TUVDRO2bpwHUn5By4pmKVs67u+RpXObE5LVx/VMlqF12y41IHCaucZQY7A8u3m7cXAAAgAElEQVQcdceHQ5m+ZO1x+T/KUxgLU9tsLBwfs8/Fn9V2KZjaZn/B1P5dFwzD5NDHT/34PJQxw8JrwhOdBcaPxXa63czv5VyZisT6ruLGYN7hp5hY+CC6kkBP35sJH//T3jAMDAwiVdWNMA3JRh+8Aj+PuQdTMLHwZ5MoDJm6ftJ0TBQ0OTRdDcPGU7lICrs4frfE4Pjhm2ryy3sMmi8tstVdKE8GlhCa1qCvXnQxpJwnuW3sv6bCN66WwzdHJz1OJKa2OZg7PGaPSwBLRRMXVz4RCIZhcqiyvot11vd1XXiF3EeBCWa44ez8nX5kKasnvMzqtDcMAP0DgzzPrWLZgQBMLPyZeyhVyGmY4iy0yWHuoVRMLPxZcyTYKCeXoMmv6WgYFttJuBxWTqqizSChcJGtGFf/YiRFXaNidNe4yvVJksN5DdmaTkSeWpY5SvGNr9V1jD0hN3iesRIdv8XwY81EYi6FlnPwhvofVSQxs81mnX2CQdLzr4BgGIyv/v4BAqIV/N9GT/46kGT0MSEwPZl/5Bm/mftwyvPphFdMEgzDkD5+6ueJuJwVh4IwsQwY2m4UTMPUJIe/DqZgYhnAsv2BPJWUC/0WBI2p6WYYhksr5mi6cPIt0h9f5iBlhZOUe0/qSZG3GSQamtlJuBJeQZy4hfUndDHOUVnNXH9UqY953ueuQlbcjVdMtX7ib+tZyN3EOvyHej58D4/oar2BWXtcTpqyXV/lZLojGAbjq6XjJVucIpixOWhCm7QJCIxEl8vwgKX7Aymt6ZjQc0AwDCM0bBrWHL2Hibkvf+6LF3YaphgLbXL4c188Jua+rLO+T6qk3Kh1iwVNbk0nw7DptIKApDq0VX3cflxlUJnodFApzws6qGh8hfuDSoNYXl1eQx8nAkr0pqK58y1Ple08Uej6LyTJWpEXd1PZ+IqjtzX6x527V8aZ4NIf4kRAiT6Z8FRgCY8zx+4gPR0RDINxNTAwSFJWKX9u8+GPPdFGHw8C05u5B1OYYe7N9XvZE7oYKhiGL9Q/MIBcU89W5wfMsPBhzt44IVZxirDQJos5e2OZYe7NVucHyDX19Au9FgR9Q9PJMBy+qSYtr51z98tGJRlvu5iHR3T1qIZOpiIxNh5aHjxrZIWTFFORmCM31biFl+PoW8QuN11VlCX2ElY6y7gVWcXREQ2cTEX/jEW2unCkG48qDXZApjuCYTCuXr95z2nPp5hY+DLvSJrRx4PA9GaBdQYzNgexyS6M5vYXE3YeCIZhDA0MDlJe24H91URmWXrzv50PmX/0udEHicA3TqCjz/nfjofMtPTB6Xoy5bUdwoVV0Hc1nQyD2VDzIrN/WJHIVCQelevwNX7WjsCXlZamO4JhMK4q6ztZfSSY2TsiEEKVBSYDf+yJ4c+t3qTLKiasxKpgGL6iwUFobOvjjFcaf2zxZsaWIOYeShXKrk4yhpObZ1oFM8fKm9OeabR2vjT28BE0RTSdDIPA1EUwDMZVRJIKE3NP/jowtasornKW4RZewfZL+fpjyx2luIVX4Ogz9o6e2VDJ0S8ZWYxg+6V8ApPrMP+iQdtyRynrT8hZf/Lb/MzFgU2nFZy7X8oqF9mYr/vL177IVtdrZrWLjDWuMla7GLLGRca643LM7Iz//Y1k/pF0TMy9ueT/nPcfJqYRrWAYvqNXr98TkaxizZFgTCx08YsLrH+tChxTlQXWmfyxOxoTcx9WHwnmUaqG3pdvjdY2XdDUk2AYBKYCgmEwnt5/+MSh87GYWN6d8pEG+9xV5JZ0s89dpT9mcVaBrLh7zBBAMzsJtp5aPKKr8Yz5jEd0NYdvfq5gdvimmixV56hyzM5+RciKu/X5Ts8KOiiqfUGmqpMnijaeKNpQlPbg7Fv8U96fqUjMxdByJIVdHLqh5trDSoPXPfzaD95QG+RprXKWEZnRxJPcNsLTGwx4+LyRbE3npCvAsNAmm9nbwtjiGDFhi6SCYfgBffjYT15xI9aX4phh7smsrSHMO5yKsDVpJGxymHc4lVlbQ5lp4cWxy/EoChuESkiC/rEEwyAwFRAMg/FUVtPB8gNBzN4ezkKbydUtfNvFPCLSG3HwLvqh8sNng0uJeNbIshEFD5x8i8hSd7LLLR/zMwrMzyj0ZZXN7CQcvaXhUli5HrfwcpJkrdyOqtKHNx6+qSY9r31Ul+djd7QkSFvZ6ZbP5nNKHHyKKKl7yYmAEjafU2J1IY94cQtngkp/yuex3ElKvETXTNLmjpa88l7uRFcbvP44cQu3o6oMPq81rnKyNZ0Ep9Sx75rKAFsPLTmaTg7eUBv9+/6SOfvimL/DH5m6nomoGi8Yhn+g7r43+DyUsWRfACbm3vy+O2poxUEwDhNDDvOPPuePPdGYmHuzZF8APg9l9Lx4OyEni6BfT4JhEJgKCIbBOBocHCQmvYhZFl7M2Rtn9HEwEjM7Cb7xtdS3vSE2p2VU75Qv7+vqX8yzfN1Kv/uDCs7fL8P8jILo7GZK618iKexCXNhFYc0LbkZWYjY0oTYViQ3CeZY6SPGIrubODxiGA9dVRGY2scpZhplIzO4rBWiq+jh0Q42ZSMwSewkPnjVy+icYBlORGAefIhSlPWy9mIeNh5ZsTSfmZxQGhRWuPqjgZmTlKMOQo+lEXtxNVFazAfGSFsobX3FoEhqGeYfT+G2TN94PZHz6NP4FXgTD8A/17v0nZOp6nK4n89d2X2ZsDmDO3lgWHBPClMaTBccymbNXty381zZfnG4kI9PU8+79xMTuCfo1JRgGgamAYBiMow8f+7ng+wwTc+9JVx3J/IyCLE0nHtHVPC/oYO/Vr4fMrHSSkaXu5FFGE3eiq/FPrEVS2MWDZ7pwmwPX1Vic1a34J8tb8Y6r0U+oV7vKuBRWjldsNV6x1XjH1ZBR0IFnTPV3DcPBG2oUpT34JdTiFVtNeHoDDe1vePi8Ea/YanzialCW9vwUw2B1Pg9FaQ/a6j4sziqw8dAiKeziyE0NW84r9fgl1HIzcvQOQ5a6k8DkOvZfUxkg8tQiLuyalDsMC45lMmNLENtdHvLqzftxPx8Ew/Av1ffyHanicqycIjDZ5MnMLcH8dSB50m1ZTm1yWHgsi7kHU5hldY9Zll5YOUWQnF3Gi1fvjD0EBP0CEgzDZ8x+IKRBwDgIhsE46u57w+6TkczYHDipru2mtrqu7NmaTjaeziU8vRGP6Oqv3n+Fk4wMVQdHhkoebziVy5PcNkLTGjgTXKo/95fYS4jMaMI79rNh2H9Nhby4mzvR1ZwPKeN8SBkXQso4dFOtf9y3DEOOtosrERWcDynT74gEJddxPqSMi6HlZGs6/7NhGO5Er67qQ1LYpTcMdW1vKKx+gaqyT09t6xuDkCQzOwnrTshJy2tHW92HWNtlgKyom8qmVxy+qcZsjIRpY7LQJofZOx4wb7sP9S09434+CIbhP2hwcJCWjhfcfZzL+mP3mWHuycyt9/lzf6KQGP0fWWCdyZ/7E5m5JRgTc0/WWd8nMFpJc8cL4YIp6KdJMAw6zOwkiDy17L+m+sdlV4dZd1yO+RmFYDzGAcEwGEdlNR2sPBTE/3Y+ZDKFHi+2lxCe1oBPXA2L7SScCChBVtTNxtOKMe+/wklGpqoDR58i1h6Xs+NyPsnyVqwu5LHhVC4Hr6tZYi8Z0zDYeGiJF48OeRp5nn8rJOlRRpP++E63fDRVfRy4rlutX2z330OSTIee53lBB85+RaQq2vWGIUfbxa4rBaw7IdfjEVOtD0laf0KOW3g5tx9XEZhcR2BSHQFjEJJaj2dMNdcfVnLwunpS/cbN2RvL/zZ78VRSMe7ng2AYfoLef/hEcXUbfpFyNtmFMdNSV4Z1zt44oYX8PyKHBdYZ/Lkvnplbgpll6YO5XRi+j+QUV7ULHZsF/XQJhkHHEnsJF0PKyFbrVvvMRGObBlORbnKw+0qBwUqbmUjMzcgqrj+qHLNEoqlIzLoTcjaeVnyXtcflk2oVbzIgGIaJ1+AgZCmrmWPlzZ/7E40+BkZieVaJWNvFsTsa/d/qqr6vTrxXOMkQa7tIVbTxKKOJeEkL+RW9WJ1XsuNyPs/yOzh3r4zljlISpa0GhsHZrxhFaQ9esTUGlYZEXoXf3WE45qFFUdqDb3wtnjHVhKY1UN/2hgfPG/GMqcY7tgZFyX8PSVrmKGXzOSVrXGWkKtr0hiFb08mmL0zU1YjPOQwWZxXceFTJtYeGPMpoIq+sh5uRVaNuO3ZH868XVcaDuYeeMMPcC49wybj/NgiG4Seqv3+AhtZe7kYpMLcLZbaFJzMsA/h992PmHU4TOkZ/hYXHsph3OI0/dkcxY/NdZlt4stE2lMAYJW2dL/nUPyCUShU0LpquhmGlk0xXH30E5qcVeMVU8yS3DcuzSoPbhicCy52kBCTVIi/uxvq2Rr9Fv9hOgk9cDZdDy/XHRk76V7nIeJTRhKK0B0lhF6rKPtSVfciKuymte4m8pBtJYRd5ZT1EZzezxvXbjeLMbLNZbDt9fk8FwzDxGhgYJDxJxSxLH+Ydfmr0MTCMqUjMrcdV1LW+ITytAd/4WgKT6iipfUlKbhvLHaWjHjO8w2DnVchKZxlbL+SRLGvF6rySJfYSzt8vI6+sFzuvQjLVnXrDMLx6H5hsuOI+XH50if23cxiuPqhAVdHLvSf1BCTVEZXVTFvPO+IlLQQk1RGYXEd+ee9PyWFYZKsrj6o3DHc05Ff04hFdjVt4hZ5EWSueMdUjQpJ0CyZOvkU4+xWx2F6Co28RT3LbMD+jYMOpXDacymWViy5xe7ItZsw/+gwTCz9cbj3hzdsP43pOCIZhHDQwMEhdcw/hSSqOXIjFbM9dZlj4MGtriK4M1pH0SRUPaQwW2uQw/0g6c/bGMWtrCCYWPpjtucvRi7E8SFZT39I7IVn/gqa3pqNhWGIv4UJIGXHiFuIlOnK0XUgKu0iStfIsv0N/PF7SQoK0hYuhZfrJwRpXGXcT63he0IGTbxE3Iyu59biKTFUHKfI2bkZWcTOyklOBJfrJyypnGTE5zVwKLWfzOSVhTxuIymrm8E01lY2vsPcuZPM5JVcfVJCp7mT9SfmI15zDclE6ZiMMwnr7eCwdH2I6icJExhPBMEy8Pn7qxz0oi5mb/SdV/4X1J3KRFnUTk93MlYgKPR7R1RRU9HLgusqgx8Ai27FzGBIkOsOwyFbMUgcpl8PKcRwqsTpyh+HLCbKZnYRbj6u496T+u4bBJ64Gv4Ra/f3GIyRpJCMNw5bzSjxjqvGNr8UnrkaPX0Itth5ag8/o75O5SIu68IqpwdRWjIN3EeUNr0iQtup/B93Cy43+3Y/FwmOZzNwSxN5Tj+nseT2u54RgGMZRAwOD9PS9Ja+4kTthYtZa32OmhScmFn7M2hrKn/viWWCdMWQefvULXw4LbbJ1IUf7E5i1LRQTSz9mW3qx+kgwt0LF5Jc00fvyrXBBFDRhmo6GYTh21/KsUk9sTgvJ8jZ2Xs43qCiy+ZyOjadyWWSr22FYYi9hlbOMve4FHLml5urQhCU9r50ESQtXhlbyTgaWsGzIMKx0lhGV3YzjUHMon9gawtIa2Hg6l5K6l/rOs05+RWSoOkYYhhzW2Cex2zmQ5Xafq9RsdIhhu1OIYBgEjZvevvuI3dVEZmwJnlTRAcfvFlNY84JtF/MMji+1l5AobcUjunpUWKBuh6ETR98iVrvI2HYxj0TpZ8Mw/Luw0llGhqoTr9jqr66kL7aT6EOTFn+jStIyBylRWc2cCf5sBn7EMCy2k4xqAPejDBsGy3NK/W7AWHy5U+DoU0R182ueKtuxOKPA0aeIp4p2rC7kYXlW9xv4ZRfrSYNNDrO3hbLO+j61TeOb+CwYhglSf/8ALR0viUzVYnc1kVWHg/l9sxe/mfswa1sYc/bGMe9IGgusM1lo84tcBG1yWHAsk3lH0pizN5ZZ20L5bZMP/9vsxcpDQdhdTSQ6vZDWzpd8+NgvhB0JmnBNR8MwFuHpjeSWdHP9YSVXIsq5EqFr0OToU6Rv8mQmEnMlooJ7KfXsdMvXXXRtP9dp94qt5mJImcGFevj//9Iw+CXUEpxS9x3DkMM6+0QOuPiywSHWwBwIhkHQeKu77w27TkQya1vopIkIWGIvwT+hFt/4Gv2q/TCmIjEnA0t4lNE0KixphZMMSWEXyrIe0vM7yNZ0ohrKYVhkq9s1WGwnYePpXOTF3VwKLTc4f5c66Cbxq11kmJ9RkCBp+W4fBpGnltySHnZeztcf23E5H0VpD/vcVax0lrH9Uj6J0lYDw7DtYh6xOS2scZX/489nlbOMZ/kdXAgp42RgCc5+RV/F3ruQpQ4S/j6ZS5KsFb/4Gh5lNJEobSUivZH0vCHDcE6J5dDCidWFPDaczJ10YUm/73rE0v2BFFa0jus5IRiGCdbAwCC9L99SWtNO3PNizvs+Y5MolD+3+fKbuQ8zNgcxe3sEc/bGMvdQ6ogdCOMPyu8xvIMw91Aqc/bG8b/tEczYEoSJuQ9zt/uxSRTKOe904p4XU1rdzotX7xgUOq4JMqIEw6AjNqcZSaFuS94jWpfUmJLbRoaqg7VDF25TW7F+mz8ouQ6Rp5ZrDyu5MRSSlFHwOSTpRqTuuIt/McscpQaGYYWTlDixbifiW4Zhld0TrI/f5oirB1udwrByCtezz+WuYBgEjaua2l+wURTG/3Y8nDSLeKYiMZtOK746mV7hJMXirHLU8ZXOMp4XdHD+fhk7Ludz5JaGwOQ6fULwuuNyApLqSFO2oyztYfeVAoPntPcu5Fl+B88LOpAUdiEr7ubYnc9hPUdvaRBru/SVlDacyuWpsp2wtAYDY7PaRYaTbxFrXGXsuVpApqqTZ/kd7L2q0t9nw6lc7qfW/yvDsPmckhxtF3eiqrnxqAr3BxVf5UxwKRtP5RL6tIEUeRsWZ3Sf6+ngUuLELeSX95Kh6iBzBNmaTi6Flo8ya8Zmzt5YFu7yR6auG9cmtoJhMKIGBwd5/+ET7V2vyFRWczMkh32no1i025//bfbCZJMnMyzvMntbGH/sjuavA0nMP5LOgmOZLDyWNfQjNsE/ZDa60KKFx7JYYJ3J/CPp/HUgiT92RzN7WxgzLO9issmT3zd7Ybrbnz2nHnP9XjbZeTV0dL/m/YdPwgVP0KSRYBh0E4KnynauP9J1dx3mSoQun+DLC/die92qnINPIf4Jtfgn1nI/tZ7i2hckSFvxT9Qd80+o5UpEBatdZHrD4ORXhI2HFrG2C8uzSjaczEVT1YdbeDkOPkVce1ipNwwr7J5yxNWDg64+WDk9YMsXrLFPMvpnN1EIhmHiVVXfxdL9gfy+O4pFk8Qw/FuWOkhw9Cli/clc/Tm/3FGqXylfYi/B/WElVyMq2HYxb1SVtG2X8vBP1O1sXAwtZ+uFPINKQZbnlFwOK9eHKC13lOLiX8zWC3mjXsuX/Q9WDyUTD9++9rgcB58iljr880m55VklF0PLWXtcbvBb9jWWOkiw9y5k+6U8g9e33FHK2uNy1p/IHcVyp9FJ5cbmrwNJzNnqQ5q0YlwXYQXDMIn0qX+AvpfvqKrv4qmkAs9wKfbuiZjbhbFkXwB/bfdjhoU3v1n4MdPqHrO3R/DH7ij+3BvHX/sTmXswhXmH05h/9BkLrDM+G4tjWbpJvk22zmQM//jZ5LBQbwCy9fddYJ3JAusM5h99xrzDacw9mMKf+xOZszeOP3ZHMXt7BDO3BPObhe71/LXNjyX7ArCwC8PePRGvB1LSpBVU1XfR++Itn/qF5GVBk1OCYdB1jM0r68HFv9jguEd0NcnytlH11xfZijl6W4Pr3WL9pMH6toYsdSeHb6ixPKvUr8ANhycNG4bbUVWkKtq4+qACs6ELs2dMNc/yO0iStXIzssogh2GNfTL7XPzZ6BCDqe3U2GkdDwTDMPEqrmpj7nZf5uyN5dfPMRSYysw7nMosSy/inhcLhmG6amBgkJev39PY1oe6rIV0eSURSSquBmVy6HwMKw8FMcfKm9+3eDPb0psZFt6YmHtjYuHLjM0BzNwSxMwtwcy0usesrfeZtTWEWdtCmbUtjNnbwpm9LUz399YQZlrdZ6bVPd39twQxY/NdTCx8MTH3ZqalN7M3657nz63eLD8YyIGz0bgFZBCRrOKZvBJNWQtNbX28evNeuKAJmjKa7obBVKTrGCsp6uLvodXHYe6n1hOd3Tyq8slKZxkPnzfiFq6Lc/77ZC6J0lauP6rE/LSCp8p2bD21Y+YwnLtfivVtDatGmJDhOOL1J3Jx9iseI+k5mV3OwSwXpf309z9VEAzDxEtT3sLvm734c1+80b9/AYFvMf9IOjPMPXn8VCsYBkE6DQ4OMjA4yMdP/bx995Hel2+prO9Eqq4jIaOEoBgl14KzOOXxFFu3BPaejmLH8UdYOT3Awi6MDTYhrDlyjxUHg1i6L4AVB4NYc+Qef9uEYG4fhpVTBDuOP2Lv6Shs3BI45fGU6/eyCY7LIzGrBJmmjqqGLnpevOXN2w98+NjPwMAgg4OD4xo3J0jQeGm6G4ZNZxQ8yW3jakTFqES+x5lNeMZUj3qMyLOQRGkrm04rWOogwT+xlseZzaxxlbPUXsLdxFpS5G2sP/HZgKx0lhGdrauYojMH8jE5d7+MDNWXZVXFLBFlYCbsMAiGYQJVUNrMDHMP/tyXYPTvX0DgW8w/+pzfNnrwIEXNgGAYBP2ohvMiXrx+T2fva9q7X9HS8ZKm9hc0tPZS19xDdWM3VQ1d1DR2U9fcQ0NrL03tfbR2vqS9+xVdvW94+fq9rnKR4AQE/cKaroZhib2E/ddUJEhaiM1pYf0J3QTdzE6C1XklR29ryC3pxi2iwuBxFmeVpCra9fHK5++XIS3q5kRAMfbehTj7FeMZXU1Z/UsCk+r0ccgrnWUkyVuRFHaRKG39KvLibqRFXaMMw3RHMAwTr7yiRv7f37cnXZdnAYEvWWCdwf/bcIewxALBMAgSJEjQeGg6GgYzOwmngkooqXtJiryNLeeV+monZnYSgpLrqGh4RUZBB1u/qPXuG1+LWKsLX1rlIiNb00lZ/UvS89p5+LwRz5hqbj+uIiCpDk11H/vcddVPVrvIiM1p5vz9MizOKL7K8bslhKc3fLfT83RDMAwTr/ziJn7beEcwDAKTngXWGfzfBg/Ck1SCYRAkSJCg8dB0NAymIjF7rxZw9l7pmKUL17rK2XJeybrjo2/b567Sd0k1FelKIJqfUbDuhNyg9vtSBwmHb6r1E39TkZiNp3JH5UN8yWI7CWtc5ZOuzrmxEQzDxEtd1sIsC08hh0Fg0jP/yDNMNnnwKFUj5DAIEiRI0HhoOhoGgamHYBgmXoUVrfxh5c2cfXH8alWSTL/Dj95/5H3MRN/v0LzEXvKvyqV++Vom6jMy9vf0o8w7nMZMC0+i0wsFwyBIkCBB4yHBMAhMBQTDMPEqrelgwU5//tgTMyn7MCx10O3GfY0vuz0vstXt4B29reFkYMk3cfApYpWLDFORmK0X8jh+t3jM++1zV+l3A7ecV5Kh6mTv1YKvvmbXu8XES1rY6Zb/zV1EMzsJS8dojmZ+RsHxu8X/qqnbt1juKGWNq5y1rnL+PpnL/msqTgSUjKocN1mZe/AJ/9vsTVJWqWAYBAkSJGg8JBgGgamAYBgmXnXNPaw+fI/fd0VOOsNgKhLj5FtEsryNeEkr8ZIWA1IV7Vx7WGnQXG2Rra4pWpa6k6isZoJT6glOqdd3d76fqvs7OruZ3JIefQM3kWchwSl1PHzeRHXzazJUnfrHDneO3ueuYst5JWl57Wy7OLpZ2zAWZ5UEJdeRLG8bs6nbIlvdyv7R2xpCnjaw/VK+wUr/wRtqpEXdWI7Rzfq/fJau/sWkyNtIkraSW9xDqrKde6n17Lycz7ovKrmtcpFNut2HP/clMG+7L5mKaqHTsyBBggSNhwTDIDAVEAzDxKu96xWbHR8we3uEruHpJBgHw5iKxFwJryAwuY7tl/LYetGQ21FV3E+tH2UY1rjKyVR1sONyPmZ2EszsJJy9V0p4WgPLHaWY2UnYc6WADFUHm8/pJuVmdrqdCVf/YrLUnRy4pkLkqdV3cPeIriYys4kt55U8UbRhNWQENpzK5UJIuQEXQ8u58aiSRGkrHtHVBrc5+hTpd0UszylJlLaSo+1i95UClthLWGIvYdNpBVnqTn1zyMV2/y28aRjLc0rsvAo5ckvNs/wOjtxSs9RBVzEuU9WJsqwHZVkPeWW9PMpo+m7o1UTzx+4ozPbcJa+okfH8dRAMgyBBgqatBMMgMBUQDMPE6+Xr9xw8F8OsrfdZaDO5eoDoDEM5NyOrRpmCRbZiTgeVcv/J2IYhQ9XBkVsa/j6Zy98nc3F/UMHjzCbMzyj4+2Qux+5oyFR/NgyLbMVsPqckSdbKiYASNp1WEJPTzI1HVaxyluETV0NUVvMow7Djcj7RWc1EZjYRmdnEU2U7lU2viRpxbJjHmc34xtewdkShhQ2ncglNa8AzpprYnBbixS0ky1pp6XrHk9w24sUthKfrdiH+y2dpZidh3QldKNJOt3xSFW0cHfp8Np7ORVnWw/G7JWy/lM/FkHIiM5u+W7xhovnfjgesPBRMWW3HuJ4TgmEQJEjQtJVgGASmAoJhmHh9+NjPac+nzNwSyIJjmUYfAyP5L4YhW9NJpqqTtLx20vLa0Vb3UdX0mvShvyVFXWiq+vSGYfM5JamKNgoqern+qJIbkZUkSFpo6nzLtYeV+CXUjmkYTEVigzyFg9dVZBR0sO64nFXOMj0rnXW5EovtJJiKxKw7LufwTQ3LHKQsc5Sy6bSCfe4q9rmrsPHQoijpwcGniH3uKvZcLfjPq/0WZ5U8ymgiLa+dbG0nLV3vyNZ0kZbXzu2oKvLKe9gzlJdhfVtDeHrjmPkhxmKhTTYzre6z2TGC5vYX43pOCIZBkCBB01Q6WVwAABu1SURBVFaCYRCYCgiGYeL1qX8A30g5szb7Mf9IutHHwEiGDYNnTLU+NGgkF0PKvrnDcOiGmrXH5aw9LudqRAUPnzey4VQua4/Lsb6tIVPdqTcMh26qySvvRVHaQ5qynXhJC34JtURnN/PgWRP+XzEMX3Lwupqq5tdIiroRF3YhLuxCWtRNlrpTPyFfZCtmr3sBzws6iEhvxOp8HiucpPr3ZXlWSY6mi60X8wzer5mdLmRptYvsh1k19LhlDlI2nlaw9ric8/fLaGh/w6nAEjaeymXzOSW5Jd2T2jAssM5gxuYAjl2Ko/fl23E9JwTDIEiQoGkrwTAITAUEwzDxGhgcJCGzhNmbvZh76InRx8BITEViLtwvQ1zYRUxO8ygyVR0EJtX9kGFwC9eFJG0cMgxHbmkMchiWOUixPKtkraucEwG6xorLHKQsd5Ty98ncr4YkfcmxO1qyNZ0cuaXh4HU1B6+rORVYQl5ZDweuqwzem9X5PLxiajh+t5i7ibXEZOveV0ZBBw3tb0iUterfa2RGE7vc8rH11JIsbyVN2f5DRGc3GyRorzsu56mind5XH1GW9XAxpIzVLjLkxZPbMMw7koaJuQ8XfJ/x/sOncT0nBMMgSJCgaSvBMAhMBQTDYBzlFTeyYKcvc/bEGH0MfMm6E3L2XC3A+raGve4qdl0pYP81FUduadhztQCLM4pRj1l7XI6suBtlWQ+Swi4khV2UNbykof0N0qJuJIVd5Jf3oh4RkrTCSYq9dyFngkt5nNmMtKibM8GlnAwoYcOpHzMMZiIxbuHlJEhbDBKVt13MI1vdyc7Lo/MQlthL2HYxj91XCth1pYC97gWkyNtIz9flYOiPXy1gravO/Oxyy2f3lYIfYs/VAlYNhTMtdZDgHVtDjraLHE0nd6KqyNZ04uJfPOl3GP7an8QMc0/ux+ePa4UkEAyDIEGCprEEwyAwFRAMg3HU0NrLRlEos7aGTLpKSYtsxex0yydH24WTbxFmIjGOPkUkyVo5dEONmWh0bsP6E7lIi7px9Cli+6U8tl/KwyOmmticZnZfKWD7pTxc/YvJ1nwOSbI4qyDkaT1x4haUZT1UNb0mTtxCzNBjPGOqefh8dJWkkSx1kBCe1sid6GqDvIZdbgWkKdvHzEPYfE6pT8ZeZKvLgRBru3DxL8bOq5Adl77dy+FHMROJcfEvJlvThZ1XIUnSVnZczmfn5Xy2XshDPqkNQw6/73rM75u9UBQ2jPv5IBgGQYIETVsJhkFgKiAYBuPo1Zv3HLscz28WfiywzjD6OBjJGlc5jzKaSJS1su6ErrrQ+hO5BCTVoSjp4egtzagJ9fZL+UgKu7AcUQHpdHApYWkNLBlqlLbTLZ/nBZ9DkoYTkhfZijl/v4yHz5tYZKs7ttRBwv5rKmw9tN80DLuvFJCl7mT/NZXB8b1XVTxVtI+qOrTMQUpgch0RzxpZ7iRl7XE54ekN3HpcxXJHKXcTa0nP72DDqf/eWG3tcTmPM5twCy9nw6lckqSt+spLS+0lqKv68Imr4dy9MoKS64jMaJo0hmGhTTaztoaw8lAQXb2vx/18EAyDIEGCpq0EwyAwFRAMg3H08VM/HuESTMy9mHswxejjYJil9hI8o6tJVbT9//bu/B/q/Y8C+PdvupYkskVK3e693WLIkjXLxFgi7bfcNrltxr5VlKUQ2fcZa/aolKQQSSmELHO+PwwTt71bxnKej8f54Y5JI+M+3sf78/68FL+Bn83mvZWIyHiMkoYXH0xUPhxzF+nSZ9i89/1v9L9UGIx9ymHiW4FNfhU4lfAAWVV98AxuxqGYexBdbFbMc/hUYTA9XIOC2ueIyepULLQNZ+IZfAfZ1X0fLMBFF5tR92AQdqfqsd6nHEFJD5FcLD9nYexTDquAWpQ1vUB4xmNs2PPfZjEYeslLw8Y9Fdh6oGpeYdi8txIPuoZRWNePVEkPiur7kVXVO+/fT6n/X3AvgqogAvvOZf/08wsACwMRrWD1d3tgYBsOdcs4aDmmMcyizBqHG/hlu5iFYYHJZEBpbQe0rUKhaZei9MuSDL3kC/CQtA5ImwcgPNf00ef96l+JK/lPUVzfD6uZg71mR2qQWdGLU1cfwGhOifALa8HFG4+wya8CXsHNiMx8jOKGfpgersF6n3Icv9KGgtrnyK7qg7R5AJUtL5EmfYbkkm74h7cqXpO3uBnFDf2KwmDiWwHf0Bbk3X6OzMpemB6uUXwN9qfqcCbxIUobX+BqYZeirKzzlGLrgSrcLO9FcGoHjLzkheZh1zASi7oQmt6BsJsdiMnuRHF9P1o63sD9fBPWi0phMudOVht2F2GLSzYMZ75fxu7F2OKajXWe8v/e4F6M31yyYORROu/fbeuBKtyqfF8YzI7UIKWkW/E12RyvxbkU+fwJZZeFdZ5S6LhkQ8MiBDfy7/z08wsACwMRrWCN957B2DESqqbnoWZ6gWEWbVS3n8eF+HIWhgXW/2oE2zyvQN0yTunzGNZ7l+NM4kOU3xmAZ3DzZycdmx2pQVZVL/ZHtsLIS4p9Ea3Iq3kO879uz3ver/6V+OOA/DfsR2LvIS7nCfZHtirmItifqseBqLtwCmzAzhN1MD1cg01+FYqPG3pJcfxKG+4/GUJWVZ9i+JrlMfkuwJW8p4qysM5TvrNgc6IOUZmdCL7xaN6dimYX5WmSZ7A4ehuGnlLsDWtBdFYnzia342jcPbgENcIpsAGOp+tx4foj7A1rwe8uWdi36ShMhAXYuLsQezcHIFDXHdbWl2HkUQqv3wMRqOsOK5t4GLuXwOe3kzi71gVevwdi/Zzv6dYD1cip7oPtSXlhMPIuxx/7q+b9O39s7oWyommXAhOXGNx99HxBfhZYGIhoxZqYnEZX72t09rximEWfgcG3yv6RWXFkMuB4RBFUzUKh65av9EXir/6V2Hao+qsO/G7xr8TGPfLLfYx9yrH14Of/nNGcAWpzF/hf+rtMfCtg9Xct/pzz+Q295NOaTT4xFXn9zKVMH7wGb/nrNJrzeeTP/fB1bNhTAWOfchiKJBD9EQT/TUfh+ccZ7Dc5AlvLWPy13h/CbRcQYOgLW8sYnNN2htfvgTi84QC2O1zHEeP9ENglvf9aZ3ZL5u54LNbou5dAzSIawr/T8XpobEF+FlgYiIiIiD5BWvcYWlah0HJMU/pCkfl4NrnlYc+Wk9i36Si2Ot2EkUcpnMzDcXDjIWxzTIORqAwOFlHYb3IE22a+j6YO12G5M0Hpr/17stY5C+pmwYi+UYOpqekF+TlgYSAiIiL6hL6BYdgdSIb6jlgYiMqUvlhkPh5DURmM3Ysxe1bBUCSBsfv8y8jklyC9P4titBS/nyIJNGyuwtAhAo33ny3YzwELAxEREdEnjE9MIiSxEqvMQ7DWOUv5C0ZmRUdPWAAVs3AI/07Dm+GFuRwJYGEgIiIi+iSZDKi/2w1jpyho2CRwl4FRYiTQckrHaosQ3Ci4A9lC3B5pBgsDERER0WeMjk3A+3QmVExDoSdU/uFnZmXGwKME6pZxsPZPxODQ6IL+DLAwEBEREX2GTCZDQeVDrLYQY439DaxT8kwGZmVmrfMtrDIXIy6tFtMLuLsAsDAQERERfdHr4TG4H78JNYso6LsXKX3xyKysGHiUQn1HLLaJLqPtcf+Cv/9ZGIiIiIi+QCaTIa+8DTrWoVhjf31F7jIYeknhfr4J/yS3Y9uh6s8+d3auw78fN/+rBsJzTdiw5+MzGpiPR3tXBtTMgnH2sgTj7yYX/P3PwkBERET0FV68GoHr0VSomoVBT1ig9EXkQsfQUwq7k3XIru5DRkXvvCnO/87uc00IvPYAv+2rVDxm5F2OY5fuo7CuH5s+MdRtdljbl7KYpi7/7OjPnF34TRinlN0FgIWBiIiI6KtMTU8js+Qu1lqFYrXNVRh4lCp9Mfkz86t/JRwDG7DrzPs4n2mAZ3Azkku64RfWMu9j9qfqFROZHU7V4/b9V7hR1oNth6qxya8Cm/wq4BfWgqyqPmzxr8QmvwqY+FUoJjuv85TCMqAWN0p7cKuy95PJrOyFOLUDv/pXfvFrMPHOh6HnUr6zlQRajulYJRDj0s26BRvU9m8sDERERERfaXR8An9HFEHVbPnPZXAKbEBScTeul/bgemkPCmr70fZ0GOnSZ4rH5iY2+4niMiRDLymcgxqQW9OHcyntuJL3FEnF3Siq78fDrmEkF3cjqbgbcTlPYHnstuLv/H1/FfwjWuEX1vLZeFxohonv/F2Kzd552OSdC8XwNk8J7PbGwsRr6e4G6QrzoWYeAWFAGl4Mjijtfc/CQERERPQNHnW9xHbPK1C3jFvWuwxG3lL5LoCvPN7iO5A0vcCfB6sVj83Nlpnf+P/qX4mdJ+pg5F2OPw9Ww/yvGuwKaoBzUAPOJD5EWdMLuJ1thHNQA5wCG+ZdtiRf6H/7a93snQsn/wj84ZMx5/NIYO8fs2QLg4GoDBo2CdC3DUdRdfuC3xlpLhYGIiIiom8wMTmFq1mN0LYKgaZdCgxWyAFo4bkmtHePIKm4G9cKu3CtsAtJxd2IL3iKHTO7BIae8oPRRXX9OJnQhs0zlyLNZk/oHWRV9uK3fVWKx0x8KxSXMn17JNjinQ2XfSGw8kuAsVcx1nuVYL1XCYy9iuHgH71kC4P2rltQNQvBEXE+ht+OK/U9z8JARERE9I36X45AGJCGX8xCoeuWp/TF5UJEdLEZTe2vcTjmHvaGt2JveCvOpbTjTscbOJyqVzzPyLscLkENiLrVCZegRsTnP0VqWQ9Sy3ogaXqBB13DSJP0KB6Ly3kCi6O3v+s1GXsVY5d/GHwOnIaTfyQc/KMUcfSPgvO+0CVZGPTdi6G2IxbbPK/gYecLZb/dWRiIiIiIvpVMJkNZbQf0doZjlXU89N1LlL7I/Jkx9JLifEo7sqv7sHHO2QGH0/LDzTbHa+c/31OKLf6V2HHsNpwC5QeinYMakF3dh4SCp3A8XQ/7U/I4n2lQXM707ZHAzDcFu/dfwPY9N7DZO3deNnnlLblDzwaiMmjaJUNzRwhu5N/B9LTyLkWaxcJARERE9B3eTUwhLr0O2lah0LRLhoFoaS1MvyUb91Qgp7oP4rQOGHm9v6WpS1Ajyu8M4Pf9VR/8Gdd/GnGtqEtxOHnXmQYU1fdjf1QrhOeaPntb1m+JoWcZBL7JsN8bjU3eS3u3x0AkgbZTOtQEYhwKzsPA4Ftlv80BsDAQERERfbeBwRH4/ZMFVbMQaDtlLNuBbrvPNaH2/iCcAhvmPS481wRp8wA2752/Q7DRtwJX8p4i/OZjGHmXY/PeSqSU9uBscju2HqhCQsFTxGR1wtjnx8xTMPQsg+me6/jD5yZm75K0FKPrlgsVQThs9iXiUdcAlHjOeR4WBiIiIqLvJJPJ8KDzBXbuS4KqIBw6rrlKX3T+yBh6SSH4qwY3pc8QndWpuG2qkZc8/hGtKGt88cEgNuG5JuRU98EqoBYb91TgbHI7bs0Me9uwpxzCs42oan2Jg9F3FXMY7E7WITb7Ca4Wdn1VwjMezysqhp6SJXf50dzo7S6CumUctghjUdHYqey39jwsDERERET/UVXTE5g4x0Dd8hL03YuVvvj8EdngUw7RhWbk1PQhXfoMfx6sVnzM4XQ9TsS3oazpBVJKurFhzk7B1gNVyKzoxfnr7di4pwKHY+7h3pMhxOU8wcUbjxB2swMx2Z1oeDiI5kdvYHuyDus8pbA4ehuHou9+dfZHtmL9D9qhUHYMPEqhsfMa1lqHIimnCZNKGtD2KSwMRERERP/RxOQUEnOaoLszTH7v/GVwCNrtbCNq2waRXNwN879uf/CxgtrnuFbYhZ0n6hSPG3pK4SW+A2nzAHYcuw1jn3KciG9DTnUfYrM7cTy+DW5nG+EU2ADXfxpxvbQHh6LvftdtVb//VqyLKwaiMqyxvw41s2CcjCrG66ExZb+dP8DCQERERPQDDL8dx+noEqibBWO1bSL0PZZ2adjkVwGXfxph8q/Ljb6Ujb4VsDle+1UD2H7fX7Vsdgm+tyxoOaZDXRAC0cmb6H+pvGnOn8PCQERERPSD9A0M40hIPlaZi6Fpm7Ss75zE/MeIJNByTIeKqRiux1LR1tmv7LfvJ7EwEBEREf1Az/rfYO/ZbKiaBcsnQXuUKn9xyiyuiCTQ3pUJVbNQWPsnouVhH2SL5ZZIH8HCQERERPQDyWTA02eD8D6dCRVTMdY4pnKngZkTCdY634KqIAyWe6+h6f6zRV0WABYGIiIioh9OBuBxzyt4nLwJNUEItBzTWBoYzJYFFbMwCHwScLula1FMcv4SFgYiIiKin0AmAzq6XsLtWCpUtssvT1oOd09ivi8GojJoO2VATRCG7V5XUNHYueh3FmaxMBARERH9JDKZDPcf98PvnyxomIdAw+baspnTwHxDWfCQ3zpVxVQM+4MpqGvtxtQim7XwOSwMRERERD+RTAb0vxzGmdgyrLEMwSqry9DbXaj0RSyzMNH3KIGmXQrUBWJ4nsxA+5MBTC+RnYVZLAxEREREC2D47TtE36iBvm041HfEQsc1F+s8JUpf0DI/L3rCAqyyjscay1AEhBXi+culucZmYSAiIiJaIG/HJpBW2ILNrjFQEYRDe1cmD0Mvy0ig45oDNYsYaFuFIuRaJV68WpxD2b4GCwMRERHRApqcnEZxdTss/a5CzUwMTbtknmtYRjHwKIGWYzrUBGH41S0GSTlNGH83qey33X/CwkBERES0wGQy4P7jfhw4nwttq1CoW17CWpdsrBPxEqWlHF1hATSsE6AmEMMtIA1VzU/wbnaVvYSxMBAREREpgUwGDA6NIuFWA9bZR0BVEIY1DqmcDL0EYyAqkw9jM4+Erk0YguLK0DcwtOQON38KCwMRERGREk1OTaO2pQvCv9OwSiCGhk0CdN3yYMDdhiUQCfR2F0HTLhlqghCY70lAjrQNo2MTyn5b/VAsDERERERKJpPJ0PP8DcKTq2DkGAlVQTg07a5Db3fRIlgUMx+LgUcptBzToGoeBS2rUByPKELb435MLqH5Cl+LhYGIiIhokXg3MQVJXQeEAWnQtBBDzSJaficlXqa0aGIgKoOOay5WWV2GhrkYAp94pBe14O3oO2W/fX4aFgYiIiKiRaZvYAgJtxpg6XcNamYh0LCOh45rDi9TUnL0hAVYbZuIX0xDsEUYi9CkSjzufrmkpjZ/DxYGIiIiokVocnIaHV0vIb5aASOHSKgKQrHaNlE+JZrFYQEjgb57MbQcUqFqHgFdmzAcDs5D84PeJX+71K/FwkBERES0iE1MTqHmThd8g7KgbxsGVUEYNG2TZg5Gc+jbz4qBqAx6wgJoOaRCzSIKWpYhcDx8HbnSNrwdm8DyuP/R12FhICIiIlrkZDLg1ZtRSOo6cPBiLowcoqBiFgoNmwTouOSwOPzQoiCBrls+VtsmyqdxW4dBdDIDt8ruoW9gCFPTK6kqyLEwEBERES0ho2MTqG3txqGLeTC0j4CqmRirrK9AxyUb+h4lvFzpeyKSwMCjFLrCfKy2TYKaIBS6NmFwC0hDfsUDDI2MQ7ZMZip8DxYGIiIioiVodHwCVU1PEBBWiF/dYqFqJoa65SWscUiFrls+dx2+sijo7S6EltNNrLK6gl9MQ7DOPgK+QVkorGrH4JvRFV0UZrEwEBERES1RMhkwMvoOzQ96EXm9GpZ+V7HGMhSqZmFYZXUZ2rsyoe9ejHWe3HV4Hwn0PUqg45oNDZurUBWEY7VFCP4UXUZgTCmqm59gcGh0RZ1R+BIWBiIiIqJlYFomw5vhMeRXPMDBC7nYIoyFhnkw1MwjoWmXLL9kaXfRitx5MBDJ73Sk45aHNQ6pUN8RA3WzizB2ioLHiZu4nncHvS+GMDU1DW4ofIiFgYiIiGiZGR2bQNvjfiTmNMHrVAY2OkdDTSCGqnkkNKwToOWYJr/L0jIeCDd7lyNtpwystrkGVYsoqJiKYWAXAZejqYhNq0Xj/Wd4PTTGkvAFLAxEREREy9T0tAwjo+/Q2t6H5Nwm+ARmYr1jJDTMg6FqFgL1HTHy3QfXXOi7F8PAo3RmONxSuoRJAoOZQ8v67sXQdcuX7yJYxkFNEAYNczEMbMPhcCgF0Tduo/5uNwaHRjE1vbyHrf1ILAxEREREK4BMJsPo+AQedQ0gvagVf0cUYee+JPlQOLNgqAjCscrqMjTtkqHllA4d1xzo7S6c2YVYXAXCQFQGvd1F0HHNhbZTBjTtUrDK+gpUBRFQMQ2G3s5wCHzicfBCLpJymnC/ox9DI+PLfiLzz8LCQERERLQCjY1P4Fn/EGpbupCS14wTkcWwP5iMDbuioW0VBhVTMVQE4VDbEQsNm6tY43AD2rsyoeOaC73dhf/akfjBpWDOjoHe7kLouuVhrfMtaDmmYfXORKhbxs2UgxCssQzDesco7PC9ioMX83D5Zh3KGzrxtHcQI6PveJejH4CFgYiIiGiFk8lkmJqW4d3EFLqfv0ZxdTsikqvhfy4HVnuvYYNTFPR2hkFzhxiq2y9AxTQYauYRULeMhYZNgnxXwiEVWo7p0HbKwNpdmVjrfAs6LtnQcc2BrlsedIX50BUWQNctDzquOdBxycZa5yys3ZUJ7V0Z0HJKh5ZDKjTtU7B651WssroENYtIqJiJobL9AlabB0PHOhRGjpEw9YqH1+lMnL8iRY60DR1dLzH+bhJTU9OYnpbxTMIPxsJARERERB+YvYRpYPAtHnS+QGVjJ7LK7iE+sx4X48txJCQfHiduwto/EX+4X8JG5xisd4rGOvso6NlGQMcmHFpWYVhtEQp1QQhUTIPxy/ZgqJmJoWEh3xlYax0OPdsIGNhHwsgxCht2xWCLMA47fBMgDEjDoeA8nL0swaX0WmSU3IW0vgN3Hz3H84FhDL99x3MIC4SFgYiIiIi+yeTUNMbGJzA0Mo6Xr9+iu+812h73o+VhHxru9aDmzlNUNHaitLYDhVUPkSNtQ0bJXWSU3EW25D4KKh+i9PYjlDd0oubOU9Tf7cGdB72439GPJ88GMTD4Fm9GxjA6PoHJyWleVqRkLAxERERERPRJLAxERERERPRJLAxERERERPRJLAxERERERPRJHxSGoFsjOJE+otxXRUREREREi0J+8zvsDHn9vjCMTcjwZpQn0YmIiIiICJiWAa/fvu8H/xNdHsNsDl8fR+XDKUyzPxARERERrQgyAPefTeNczjt4x7/vBrP5n37ACOZmh/gt2vs4FIOIiIiIaCV4MyqD55UxGPw9vxfM5oPCYHh8BIWtk8p+3UREREREtAC6Xk7D5PTHy8JHC4N+wAhymiYxNiHD67cMwzAMwzAMwyzXjE3I8PTlNNaf+I7CcKt+HOuOvWQYhmEYhmEYZpkm6NbI9xeGVyPTqO2YYBiGYRiGYRhmmabj+dT3FwYiIiIiIlr+vrkwGASMILeZhYGIiIiIaCX4UmH4P6Rz6OOyxK+2AAAAAElFTkSuQmCC)
类A实现了接口中的所有方法,类B通过接口持有类A的引用,使用了方法一和方法二,方法三和四没有使用到,这就违背了接口隔离原则,正确的做法应该是把接口拆分,同时使用的方法
放到一个接口中。
依赖倒转原则
高层模块不依赖低层模块,两者都依赖于其抽象。抽象不依赖细节,细节依赖抽象(面向接口编程)。
里氏替换原则
所用使用基类的地方都可以用子类来替换,应尽量避免子类重写基类的方法。依赖传递的三种方法:1.通过接口传递(方法中通过接口持有对应子类的引用)2.通过构造方法3.通过setter方法
开闭原则
对拓展开放,对修改关闭。添加新功能时,对调用方的代码不需要修改,只需要在提供方添加相关配置或添加相关方法。
迪米特法则
又叫做最小知识原则,如果两个实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。
合成复用原则
又叫组合/聚合复用原则,要求在代码复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现,如果一定要用继承的方式,需要遵信里氏替换原则。