编译protobuf的jar文件
1、准备工作
需要到github上下载相应的文件,地址https://github.com/google/protobuf/releases
protobuf有很多不同语言的版本,因为我们需要的是jar文件,所以选择java版本下载。以下以版本3.1.0进行举例说明。
如果是在linux64环境下编译,可以选择以下两个文件,第一个相当于java发行版本的源码文件,第二个是一个编译好的protoc程序文件(如果想自己编译protobuf程序文件,参考上篇文章protobuf的编译安装)。
- protobuf-java-3.1.0.tar.gz
- protoc-3.1.0-linux-x86_64.zip
如果选择在windows环境下进行编译,选择以下两个文件,同样,第一个相当于java发行版本的源码文件,第二个是一个编译好的protoc程序文件,只不过windows下面的程序版本目前只有32位的。
- protobuf-java-3.1.0.zip
- protoc-3.1.0-win32.zip
2、编译
1> 在linux环境下(需要提前装好maven)
将以上两个文件分别进行解压,然后将解压protoc-3.1.0-linux-x86_64.zip获取的protoc程序文件复制到解压文件目录protobuf-java-3.1.0的对应位置。
注意位置相当重要,在以下两个文件夹中
src目录下面直接放一个protoc程序文件
java文件夹下面的core/src文件夹中也要放置一个protoc程序文件
之后,cd到上面所述java文件夹下面,直接运行以下命令即可
mvn package
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAs4AAADgCAYAAAAT1eBDAAAACXBIWXMAABJ0AAASdAHeZh94AAAAB3RJTUUH4AwVFDgD7R4dYwAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAgAElEQVR4nOzdeXxMV//A8c8siWwShBCktkbV0ipabX61tNXWXrSUlqJ4RCxBW0HFXkrtVGjwWGqtpWopQmwRghhLSGSQWBPZJ8lkmcnM/P7IIkjiToylT8/79cofSb73zLnnbt+599xzZI3tXjUhCIIgCIIgCEKJ5C+6AoIgCIIgCILwTyASZ0EQBEEQBEGQQCTOgiAIgiAIgiCBXKVVk/+zZ2o9rF90jUri2Ab/QvVVabfTtariRddKEARBEARB+BeQEzGfPq958HEdD3rPVqMr+Jc1r/oeQvVQoqpGlbqalo55C1ftwXqtmqBNbXHOv3ctc6Z9YASHlzbFFgAlNUbve7wcrZq/ZzYoSNRl9u50nLuO3fFqVNoIAoMX0r9VRR5Ki9OO8X3t3Lp2/voAWvFaoyAIgiAIgvCcKE26VBJj40nIefRfem4tG0CPHQ5U7buEBYPuMqPtNM5r0riX/nCkfSdfBnsEMTMonWJz2exgprebyUVt/h9M6OOj0QMoKtFmxWamtYlk7ch+HLnlQGMvX0bsXYuNx+f4XcjMW0SH5n48AHaJmRgt0ACCIAiCIAiCIIWy+H+Z0MVHo45XoovJghwNd8IiUD+SNGPQEh6qpMvc3mxssYwofTHF6TXcvlzE8oBVnS8Y0rkMId8OZ+HmeIyAKjSG8qpt9BnvwYaeh9CIu8uCIAiCIAjCC/T0LweaMgibM5Mgt/8wsnOlUhQox7Fpa2oRwd/HEh/cRc5QE7AvAdv3PqKW7VPXUhAEQRAEQRCeSgl3nKUzxAWyZMEgNk3qS929q4sOcmjH8vvqB79nBjK01mCC0xQ41awA2qvEphXufKEjOTIBKrhRwRrIsERNH1DYl8XOSo4MwJRDVpoWnVHEiBgRI2JEjIgRMSJGxPxbY57EMsPRmXRE+f9CoNNXeLZ1LrrQ7GCmf9iJHs3zft6fwnltUYHPgwPN/3uSY3fPcvTuWY7e207vOlYiRsSIGBEjYkSMiBExIuZfG/NkMuOFyaYOLX4n5rGXA/MpqTF6N3+Ov4FXTS9OFuqjLK/ag3XhI7n40YfMOmukzri/2ND1CGt0/eh+8Wvae4WSmb+8TySD64zg9GN9nOU4f7WJg/4KJr/anZ0x+am/LY0WBrK262H6vz7+sSTbrsUc9v1dm/l1u7PjnsHM1VbgVL8Jr1W2yv3WYUjn5tlLxGaYRIyIETEiRsSIGBEjYkTMvzLmySyYOGchd2nPwgu/0NDWGjb0lJg4g9VrXmw5N5T737bGK+/lQOzeYPS5bXS/NIS2PQ4+9nLg0yXOgiAIgiAIgmCeErpqyLCuVBP3hvWo6WoDSieqN6yH++vVsC9mKWPcYX5bn0w5M+98669tZdluHc0XL2bEVx40bvEJ/VcspY/bdX6fcUKMqCEIgiAIgiC8cCW8HGjFK54r2TL2lbzfqzH+0C4wnMC7ej+OpRa1TCbhS/0JHzIBV3NqYYjjwICe2M6YzODFa+hrY0JzOYClnSezSpVpTkmCIAiCIAiC8ExI6KrxchJdNQRBEARBEITnSSmzdsS5SiX0OWBITyI5/SVOQmXWOLk4YSUDW2dbCw0JIgiCIAiCIAhPJjOZTAU9iO/N7UTXiRHoXmSNSuLYBv8YP5oV/OESU93FHWdBEARBEATh2ZM1tntVvHonCIIgCIIgCE8gejsIgiAIgiAIggQicRYEQRAEQRAECeQqrZr8nz1T62H9omtUEsc2+Beqr0q7na5VFS+6VhYhL1uLtzu1xt1RfJcRBEEQBEF4GcmJmE+f1zz4uI4HvWerC70YaM2rvodQPZSoqlGlrqalY97CVXuwXqsmaFNbnPPzPZkz7QMjOLy0KbZA7syD+x4vR6vm75kNChJ1mb07HeeuY3e8GpU2gsDghfRvVZGH0uK0Y3xfO7eunb8+gLYUvbPllT5hjjr8QT2STrJl6xg+cbfNnYLxBbFp4s38TeNoUfnFfxGQ2b9Kx3nr2HU/t43O3T/Ghg1eNC4nknpBEARBEP69lCZdKomx8SQ8No6znlvLBtBjhwNV+y5hwaC7zGg7jfOaNO49Mm22fSdfBnsEMTMonWJz2exgprebyUVt/h9M6OOj0QMoKtFmxWamtYlk7ch+HLnlQGMvX0bsXYuNx+f4XcibBMWkQ3M/HgC7xMzcqbnNZVUO16pKIid+w5QjOsrWeJOOE8cyK6ACmjfHEfKvn6bQljemr2HagFT+Gj+UKWeTUFarT7MmWaRklqrFBUEQBEEQ/ieUcAvRhC4+GnVYBNExWZCj4U5YBOrwu2gL508GLeGnlXSZ25uaJfXz0Gu4fTkCdVj+z1Wi72djAqzqfMGQzmUIGTachetPoDq+n/8O8GLdHXf6jPfA6RncCk6/foUroaGEbF/F9AFriav0CZ+9afsgwMqFd8csYtPNCFRaNSGRm5nwzWvYFaqLssYXzAs7T2je3eugi2sY3bXaw91dZDZU7zCcn48eJTgv7sztvUz/onLu3XSH5syIUXNibwfsqc3w81cK7ob/ObYOBbOX27jx0fRV7LyvRqUNJ+DobHq94/TQBpS7eNBviT+/h50mWJN3R11znFnty0m/m25VhSatXMjcPZ3ZSw5w9tRZTm1by5IftxCdnV+X+oyKUHNwYWNs8hdz92SH9jILP3YAoMwbQ1kefhGVVk1w2BqmrtzI/mQ1IREr6NfEHpnEGKnt/KR1l7t247/panaOe/VBmyqq0eOEGlXg51Qq3JBKV9r/foLQxN2M/r+yL/RJhCAIgiAIL48SptyWyJRB2JzZxPpPZGTnbYzaZu5dSTmOTVtTiwjWHEt8cBc5Q03AvgT6dP2IWraHOJ/x1DUtlikjlWyssLHKS5FkZWk6awt+fRLZ5OPJ7Eio2XU4Pn6rUdz8hKlH0zABhkQVOyePZtOdBDKtqvLOiCkMW7eIew17sCnaACip2mcxm/xak7ZvBYsHnONmgh47V1dMqmQMANqLzGvRlvUeP7LSrzbbv/Bka1QOYEIXd4scAHl53l+0hTm9NPw1bhizbjjQbNh4xgTUwertXqyNzO1gY1WtNT37tyB52U9MOXSDxDQTNs6OZJxLK/5JwKNyklBfTse29Ze0rhPK3utZ0pctRFn5TRpXv8HiTtNJ7LuUyV3ULOgxEPl3Sxi+4DP2f7iBVAkxMTlS2vnJ626KD2H/RfDp8A4VZ18jxgAyx9dp+TpETT9HcuHd1uYV3v/IBbmNCy3+rxKLT6TlPhkRBEEQBOFf7ekTZ8AQF8iSBYPYNKkvdfeuLjrIoR3L76sf/J4ZyNBagwlOU+BUswJorxKbVjh70ZEcmQAV3KhgDTyTxFmOTdXGdJnUGzfNYebmdQmRV++A98ByHOndjV/+SsIInAuJxqFVAIMHNmLO0WC0gCn9Oke3Xs8r6yJXbrnwSftxtKhnx6boNHBoypAZrVEEfE/fHjuJK2qeFlMmCdeuk1EtlRyySbh2nRvqh9M0hVsHvL6uSPiYL5n2a24yffJELC5hq/n2uzfZOvhMoeZJ4fKWrewPySxdk5g0BHsP4tdVC5l+MYivt61nw6+/cyAk3uyJcUy6eK6eOUtYuesY28YTfjKIm1uuMcz3dSpZQ6qEmJgcCe0sZd1z7hO0MQKfGZ15u/Jm/rpnwKbehzQoE8Ouw/d4qKdS+jkW9Z9N/LupBPwWLZJmQRAEQRAACyXOmHRE+f9C4LB5eLbdxcGiYh7t45yTyl1tUYHPR5P1Z1Hl/3LnAL90+JHjCbmJu02d96itsKfRxhBCH11Q64qtHLRGULq2oN+skXT7qB6VHY2kxWfjhJJ0m9zn/lbVm9GovJGLq48UnTRLZFO7OTW4w6ZjsQUJnkkTRuAlIx2avIGz1RkyLJjdGZPOsqJLS/5o8AGdBw9gVKAXw3ZOxGvgRm6U4guMyWgit1eQCWOOEeSyx7o/lBTzpHaWJoeYnZu4PNOXzz5wZvf6FKq3aU65+KMcupr9SKye2H3+zN9n/roKgiAIgvC/yzKJM2BKDsbfL44NY7sSWdStyfw+zumP/sOA5mYy2LtSpawc0vPvOltTvm5FSLpE0jO45Rfu04MJgdDY1x/fN+5yWZ1e0E1EJpMjI45tvQayIfLhDzdmxuU+1reuxdfbVjHU5QCLvH7mVFQmZWp3ZOr6AYWCTZgwUbq3GB/1eLL5bBnQXD7IuhGH2LZ6GKuPT2bSwaP0X3UPIyYMRlBYK6XVyWjAYHxCIxQXI6Wdpa7R3QA2BU1gyqAPcdkWzDsd3dAc3MO1Z9gNSBAEQRCE/x0WHF9MR9TKRZx260P3huYMqWYkNfQI0dSjXUvnBxWyc+fjTyuSFRJI1DNIbDLv3ODGFRV/Dvdhv1M/Jn/3OmXy/pd14xTRuNC0oYm7Ede4Uegn+mZqbt9km1q81xCuLZrNup1nCL8YxoWgyyQV+gz9vXNcTlHQqG8LKj2hSUy6DPTYUs7+8U2SdeM0N6nGe62qFHzTkTk15MNGcjTnLpL4TPsSmMgIP0porJyqDSrmvlinTyU2Bcq9VgMHCXtQ6l99eMd1JKcf+9IkIUZCO0tmiOfY3P1o3+5PlxataVdPw7E1l3j8wYeSyp8OZOSkL2kohuATBEEQBCFPCXecZVhXqkGNyg5UdbUBpRPVG9bDXZPGvauPjKyRxxh3mN/WJ7N2SGVSzKiE/tpWlu0exM+LFzNCsYgjtx14a8hE+rhdZ0WvEzzLEeKMCUdY6HuGP+dPpuvar9gUlYPh9m4Wr/LE78f1+Ln8ytYDalJwpGpdRyJWbSIs1QTZtzl3DYYMHkb361u4FJONlVt9ygGJ+YWnh7J86ik+njefdVsbsmbjGW4m5WBdwZUKCYHsDIwjvwdH9s1Qoozd+WzSQMKXXSS9bHVcUw+z/UAsObd3s3S9F4tn+jNRvpCDUQ685eVDB8cLzJ973rLdv62q0f7nIdQMP07o5Vgy5OVx7zKMblW0HD98O7e/ryGOkC3h8JMPE8fq2RScgFX9BjhZsh75pLSzZCZSg/zZdvNPBvh/jzJ5N/NURfQXcmiK92of2jlCq8wz9Jh9Q/RzFgRBEAShpMTZilc8V7Jl7Ct5v1dj/KFdYDiBd/V+HEstaplMwpf6Ez5kAq7m1MIQx4EBPbGdMZnBi9fQ18aE5nIASztPZpWqlC+5Sf9wYrb8wrZxfzBk4vv8/e0RNEYNp0Z3wzNqHEM9R/HTIBsgm8QLu5m9ZQthqQbIvsaaL0fhNH8Eg9d3wckKyMkkOSqUY/fz0yw9t3/7D1/GD2HYd93w/u8AygDGlGhOzT/P7kKJs/HeHqYNe4efpg5nxnYFZNwheMY5/jwQC8ZkgkZ8yZjEaYzwXUgnOwNJqj3M/XTqY11JnppcgUlXkfd/mMXA6rlDwmmjzrDHuw/z9ybn9TrRc9PPizFVf2b06Lks+ZHclxzDg7l4/7EBwZ+OpHY2Q2YEm346xde/vUvMgt8JK+oueNYtTgTG07ZdMseD47HwGgmCIAiC8A8lM16YbOrQ4ndi/mHZgV2LOez7uzbz63Znx72nePNO+NexfftHtu9vxu9vd2f99X/Yji8IgiAIwgujlFk74lylEvocMKQnkZz+EiehMmucXJywkoGts60lO2gL/+PkjrVo8JoD8kpv8/WC3hj/+w1/3hBJsyAIgiAI0impN4p1V0cBcG9uJ7pOjDB7vN7npmxL5tzwo1nBHy69wMoI/yS2jT2Z+3c3KuXEc2m1D54/nkH7b59dXRAEQRAEs8ga270q0gdBEARBEARBeALR20EQBEEQBEEQJBCJsyAIgiAIgiBIIFdp1eT/7JlaD+sXXaOSOLbBv1B9VdrtdK1qzmQrgiAIgiAIglA6ciLm0+c1Dz6u40Hv2epCLwZa86rvIVQPJapqVKmraemYt3DVHqzXqgna1Bbn/HvXMmfaB0ZweGlTbAFQUmP0vsfL0ar5e2aDgkRdZu9Ox7nr2B2vRqWNIDB4If1bVeShtDjtGN/Xzq1r568PiJe7BEEQBEEQhOdGadKlkhgbT8JjI3PpubVsAD12OFC17xIWDLrLjLbTOK9J494jk0bYd/JlsEcQM4PSKTaXzQ5meruZXCyYqM2EPj46d0Y2RSXarNjMtDaRrB3ZjyO3HGjs5cuIvWux8fgcvwt5k6CYdGjuxwNgl5hJEZMXCoIgCIIgCMIzUcLMgSZ08dGo45XoYrIgR8OdsAjUj860ZtASHqqky9zebGyxjKjiJnPTa7h9uYjlAas6XzCkcxlCvh3Ows3xGAFVaAzlVdvoM96DDT0PPdNptwVBEARBEAThSZ7+5UBTBmFzZhLk9h9Gdq5UigLlODZtTS0i+PtY4oO7yBlqAvYlYPveR9SyfepaCoIgCIIgCMJTscioGoa4QJYsiOG9SX2paysrOsihHcvvF+rjnLAcj7IACpxqVgBtDLFphTtf6EiOTIAKblR4qd9YFARBEARBEP4NSuiqYQaTjij/XwgcNg/Ptrs4WFTMo32cc1K5qy0qUBAEQRAEQRBePpZJnAFTcjD+fnFsGNuVyKLm7C62j7MBzc1ksHelSlk5pOffdbamfN2KkHSJpOL6TQuCIAiCIAjCc2LBCVB0RK1cxGm3PnRvaM7YykZSQ48QTT3atXR+UCE7dz7+tCJZIYFEZViuloIgCIIgCIJQGiUkzjKsK9XEvWE9arragNKJ6g3r4f56NeyLWcoYd5jf1idTzsq8SuivbWXZbh3NFy9mxFceNG7xCf1XLKWP23V+n3FCjKghCIIgCIIgvHAldNWw4hXPlWwZ+0re79UYf2gXGE7gXb0fx1KLWiaT8KX+hA+ZgKs5tTDEcWBAT2xnTGbw4jX0tTGhuRzA0s6TWaXKNKckQRAEQRAEQXgmZMYLk00dWvxOzGMToLzc7FrMYd/ftZlftzs77hledHUEQRAEQRCE/3FKmbUjzlUqoc8BQ3oSyekvcRIqs8bJxQkrGdg621qyg7YgCIIgCIIglEhmMpkKehDfm9uJrhMjKGpQjJeCYxv8Y/xoVvCHS0x1F3ecBUEQBEEQhGdP1tjuVfHqnSAIgiAIgiA8gejtIAiCIAiCIAgSiMRZEARBEARBECSQq7Rq8n/2TK2H9YuuUUkc2+BfqL4q7Xa6VjVnspUXQ162Fm93ao2744v9niJ3+4qNhdovaPW72L3QGuWzpvrnP7L8YiihWjWq5DPsOuBLq8oKM2NeJrY0Xnqaf9TxJdET9+d/6HEqCILwYvzvXi9eKha6NsmJmE+f1zz4uI4HvWerC70YaM2rvoce2pAqrRpV6mpaOuYtXLUH67Vqgja1xTn/Gipzpn1gBIeXNsUWACU1Ru97vBytmr9nNijYMWT27nScu47d8WpU2ggCgxfSv1VFHlqltGN8Xzu3rp2/PoC2NL2zFZVpv+kYIQX1iOCIajU+vethLytFeRLYNPFm/qZxtHjBSZ4xdg8/vN2JHu97sfl26cuRV+7AvGvhD7al5iw7902nRzOnUj3CUNTswcw1/ahzeTk+HXox8POx+K0/TZTGYFbMS6m44+sF7IeW8sT92RLHqSAI/zNk9q/Scd46dt3PPd+du3+MDRu8aFwu94pR5q3x7NMG49PMptBCzrQPVKMKaI9TwTlRho17O4Zv3sWhFDUq7SUOhixjRNfqhZLMJ8UUn5NsH12rYHKLJ9VZaoxZis3HLEjhzDtjl7EjVo1Ke4WAw9P5rJ4tZl92pJQjJcb2DXyuPbotTjGhue3TrunjLHRtUpp0qSTGxpPw2DjOem4tG0CPHQ5U7buEBYPuMqPtNM5r0riX/nCkfSdfBnsEMTMonWLrkR3M9HYzuajN/4MJfXw0egBFJdqs2My0NpGsHdmPI7ccaOzly4i9a7Hx+By/C3mToJh0aO7HA2CXmImxNGsss6Z8bVeszsxg0KgzZNlV5LXPhvLD8s24Zrdh9B/xpSv3n0Cv4c4VDVjrSMh6inKsnXB1VXBpTE+mB+XgVOMtOk0Zz7jdjsS87s3xZPP2xjJuTagpi+b3qf/lYLi+1DEvo2KPr//l/dASx6kgCP8jbHlj+hqmDUjlr/FDmXI2CWW1+jRrkkVKpnlnB+u63/DryQm8GbWLZV4LuJJii1vzFrg7yArOM1JigCJyEiNZMXfIkVxny61XvuLzMUtR8ornMpb61iRkxnfMD3Okle8EJv+t5P5b4ziVIvXaLaUciZ+lsMXRzsTVCb2ZGJCam0OadKTceJokpRgWujaVMHOgCV18NOp4JbqYLMjRcCcsAvUjSTMGLeGhSrrM7c3GFsuIKi6n0Wu4fbmI5QGrOl8wpHMZQr4dzsLNuQmDKjSG8qpt9BnvwYaehyw+7bYhOYpwVRhaIOx0NPYfBuD9bTPKbv0bjQnkLh58M7E/bVq/SW238tgqgZxYDvTqxNi9Kbkb18aNjyZMYcSgFrzikEPC2V2s+uEnNp/W5G4Qh+bMUP9Ou7w79MPPX2F43uffnNaW7j9fz/3i8KRyAGQ2VG8/iGFjvqBls6rYAjlJavaP6s+krfcxSC3HYoykXY8k8kIaXLjAFc2bfLi3IfWrKDmerAeb+ow6v5MO+7vT0fs8WYCVuydbzg/nVpfmeAekP9Y+nmev4Jm7dQj+/G2G7kuTFgNg5cK7oyYwcugnvFZRge7uOXZNn8i8dVfJyNt3pGxTebnG9Jo3kX5dGlGxDKBPIybYH+9ufqifwXH8pP1QWeMLZu+ZQKta9sgB7fVgtk8az5IddwvuRkjaV5/UPgoXPvhlLsM6N6Kmqz1yjGguB7DmO1/WHE82b38WBEHIZ1WFJq1cyNw9htlLTpCbp57l1DYzy1FUoe1CH5okrmfQR1M4m58U7N1tXky+EnISSXW21Ho9T7b16TWqMRl/DGDcjGOkmiD4ii1vnP+OQR3mcXp9nLRcQUo5Uj9Lbkd5m0zuXLhMZJj2SZ9crOd57S4hcZbIlEHYnNnE+k9kZOdtjNpmboomx7Fpa2oRwZpjiQ82WoaagH0J9On6EbVsD3E+46lrWjyjjkwdyOSygkcIVtVa07N/C5KX/cSUQzdITDNh4+xIxrm03EREXp73F21hTi8Nf40bxqwbDjQbNp4xAXWwersXayN1oL3IvBZtWe/xIyv9arP9C0+2RuUAJnRxt3K/2UopByVV+yxmk19r0vatYPGAc9xM0GPn6opJlZybNEsq5xmQKSlbqxmdh/4fZSI2cizajNSp2PYxoL2tlR4jK0vTWVvw65PIJh9PZkdCza7D8fFbjeLmJ0w9mrvNnrhNsaPxz7/xffsrLPvPN5yMzsLKuRq1KseS8DwywiL2Q0Oiip2TR7PpTgKZVlV5Z8QUhq1bxL2GPdgUndtN5YnrJaV9FA7U+fBdaietYMKwE6TY1qS1zwRGbJURVX84RxKN0vZnQRCEwnKSUF9Ox7b1l7SuE8re61nFP5kugdzl//iipRVqn5WoirmTJiXGYnW20Ho9T4oqTWjqmkPYtgiqjN/J/sExTGu9mKPRY+j5SR1s1schJdWSUk62xM+SO1ahnDKLJAcXnB1ukViqSfie77X76RNnwBAXyJIFg9g0qS91964uOsihHcvvqx/8nhnI0FqDCU5T4FSzAmivEptWOOnWkRyZABXcqGANkrZmKcjtq9Cgx/cMfNPAxZEXSHtoz0/h8pat7A/JfGw5hVsHvL6uSPiYL5n2a27ScPJELC5hq/n2uzfZOvgMGaZMEq5dJ6NaKjlkk3DtOjfUevPLcWjKkBmtUQR8T98eO4krYr+SVI4F2w0UeGw7hyr/V30Y/u1WcvXxpiqehPaREiOv3gHvgeU40rsbv/yVhBE4FxKNQ6sABg9sxJyjwTz4Hlv8NkVmRblqjpAQztnA01xMMgAqQs1YpdIqbj80pV/n6NbreVEXuXLLhU/aj6NFPTs2RacVKqH49TKnfXTRwRzZF4SWIM7erEnL45/TtqENR45mSNtegiAIhZk0BHsP4tdVC5l+MYivt61nw6+/cyAk3qw+vFZVX6cyGk6pEigutZISU+DRnCRhM/1en8CFDIl1ttB6PU/KCtVxQsOleCNOtaph46ykShkNdxLBvpoz1jIKntA+bTkGiZ+lLOtI5n0lbTYcoIMMMiMPseYHX1YcjH/yNsz3nK/dFkmcMemI8v+FwGHz8Gy7i4NFxTzanygnlbulvyv/1JSf+BNU8PnxnF0wlAmr70reUDa1m1ODO2w6Fltwp82kCSPwkpEOTd7A2eoMGRJyCinl6Ks3o1F5IxdXHykyabZkfaQzcen7XkwLysauUg3e/GoEIw5spswn3VlwsoS+7s+ATZ33qK2wp9HGkMcPFK0rtnLQSnkQYkrl5LgZHPvLlxW3OnPxj23sWLGBvcGx6J7RCj1pP1S6tqDfrJF0+6gelR2NpMVn44SSdBvpL59Iap8iltPHRBCPAxWdrMxeL0EQhHzGpLOs6NKSPxp8QOfBAxgV6MWwnRPxGriRGxLv6JiMBoyYSry2SIkpkH2SmZ1mcyn/87MTiS70SF9KnS2xXi+GlrNebWg/Sc/9WHs6P9NySo7RhS9ngPtyQEFZ9/foNn0OI3euIqdpN1ZGSExanvO12zKJM2BKDsbfL44NY7tSZK+AYvsTGdDcTAZ7V6qUlUN6QRd/ytetCEmXSHoGN7WMIVP5dkQIqRnJxN2KR1uq58wy899ELU05RlPuqeCJyZ+l6iOFkbSoSNSX0oAwLpy4Ttl3d9HbuzG/nQxCiwmDERTWymdeJ5lMjow4tvUayIbIh3cWY2YcyZJ7D5nIDFvLyNf30bBzVzr3/oJxB4YwYv80Bvdeh1rKV3EzlbgfWtfi622rGOpygEVeP3MqKpMytTsydf0Asz6j1O1jNGIEZGK0d0EQnpoBzeWDrBtxiG2rh7H6+GQmHTxK/1X3MBkNmJBjpSh0tZApsFIAegOYICfuBomUozYyvXAAACAASURBVG79CshP3C3yciglpoA+hegLYYQX1cdZQp2NZsW8HHKS7qDBCdeK1ph0KcTcBcq4Ud0ZtGcTJSeZUsox/7MMpKmDWOs1mfc+XUzHjtVZExElsQvg8712W/CSqCNq5SJOu/Whe0Nzhl0zkhp6hGjq0a6l84MK2bnz8acVyQoJJOoZfHMzam5zLSySqBulS5qzbpzmJtV4r1WVB8PXODXkw0ZyNOcuklgoPzHpMtBjSzn7x5tbSjn6e+e4nKKgUd8WVCqmac2pDyYD2XooU87WcjuATIZCDiZD3qlCn0psCpR7rQYOzzjxyrpximhcaNrQxN2Ia9wo9BN9M1X64548puw4Lv2xnJ8++5SP264l+9OxjPzA8ZnUvcT90KYW7zWEa4tms27nGcIvhnEh6DJJZn6GxdunhP3Z8pRU/nQgIyd9ScNih3gSMSJGxLzYGHOYyAg/SmisnKoNKmIF5CTfIQVn6tYrNKSprRuNakDq7WR0gDHuFPsvwusj+9DQoejbMVJiLFXn0sW8WIbYc4TGKGnw+Rs45jWP0u19WtY0cPXAdR5+h6747S6lHPM+qxB5oeH+zFy/53XtLuGOswzrSjWoUdmBqq42oHSiesN6uGvSuHf1bpGPvo1xh/ltfTJrh1QmxYxK6K9tZdnuQfy8eDEjFIs4ctuBt4ZMpI/bdVb0OmHxETUswXB7N0vXe7F4pj8T5Qs5GOXAW14+dHC8wPy55x/qT5x9M5QoY3c+mzSQ8GUXSS9bHdfUw2w/EEuOlHLSQ1k+9RQfz5vPuq0NWbPxDDeTcrCu4EqFhEB2BsaZVR/0SVy/moGynSf9esoIM7o8KEdyC8gpW6MWNetmYetSi3cG/ED/Gsns8b6c+1mGOEK2hMNPPkwcq2dTcAJW9RvgZInGf4Th9m4Wr/LE78f1+Ln8ytYDalJwpGpdRyJWbSIsVeIOJHPk7Uk+/F9cMCHnb5NqcKDGR6/jhJb4lBfQay37NueuwZDBw+h+fQuXYrKxcqtPOSDRjGIs1j751SppfzarJAkcmuK92od2jtAq8ww9Zt94fOQOESNiRMyLjSmJVTXa/zyEmuHHCb0cS4a8PO5dhtGtipbjh2+jB4wxx9l52oDPrNl4Ziwl6K4Nr/f9kc8rJfLn2iu5SZb+Fju+W0m3gAGsOFSBZQv3ER4np0L9pjTQ7WDBskh0UmIK6uWEW4N6JBfup5YVz83rieiUT66zlPV66WReYeOC83SfNYfpkdP4I6wsLSd8j3vcn3jteWQI1JK2u5RypMTIHGg0YjDNki9x9VY6sop1aTV0FM2trrJ0z13pbficr90lJM5WvOK5ki1jX8n7vRrjD+0Cwwm8q/fjWGpRy2QSvtSf8CETcDWnFoY4Dgzoie2MyQxevIa+NiY0lwNY2nkyq1TmvG32HBmTCRrxJWMSpzHCdyGd7AwkqfYw99Opjz8Ov7eHacPe4aepw5mxXQEZdwiecY4/D8RKLEfP7d/+w5fxQxj2XTe8/zuAMoAxJZpT88+zOzAOgxn1gTTO+E5iZ50JDFi5HLLucWqGKrccKeuu0xAbJ6P1vG3sADBpiT1/glV95uB/UJPXv0zPTT8vxlT9mdGj57LkR3JfLgsP5uJ9C6dXRg2nRnfDM2ocQz1H8dMgGyCbxAu7mb1lC2GpEr8OyMtQRlGZFmPn0tc599Z+5p0LHB7nyfyTL2A/zL7Gmi9H4TR/BIPXd8HJCsjJJDkqlGP3zTgtW6p98osraX+2tKxbnAiMp227ZI4HxxedmIsYESNiXmxMSeQKTLqKvP/DLAZWt0cGaKPOsMe7D/P35g11qb/F1q/+Q7kFPvRctY5Bcsi6fZZtQ4cz/3j+OzMm0oN/od+Hd/Ce8i3f+nfFHtDdu0DAwr1YyUBnkhKTV68yHkwI3PVwXa8v5ou3F3EdCXWWsl4vnRxuLRvC0LI/MW7kfBY5GEg8s40p7ac/PoZzidtdSjkSYuS2VKjyBp1GD2BERStAy72QABZ2mMW6cDMS3ud87ZYZL0w2dWjxOzH/sLGk7FrMYd/ftZlftzs77r3ks8cJ/0K2NF56lFVvLeKfeHxZijhOBUEQnkRcL563p7k2KWXWjjhXqYQ+BwzpSSSXagy950RmjZOLE1YysHW2YP9cQXhG/lHHl6WI41QQBMFs/8rrxfNkoWuTknqjWHd1FAD35nai68SIl3YMQsq2ZM4NP5oV/OHSC6yMIEjwTzq+LEUcp4IgCOb7N14vnicLXZtkje1efQlfvRMEQRAEQRCEl4t4iioIgiAIgiAIEojEWRAEQRAEQRAkkKu0avJ/9kyth/WLrlFJHNvgX6i+Ku12ulY1Z7KVF0NethZvd2qNu+OL/Z4id/uKjYXaL2j1u9i90Brls6b65z+y/GIooVo1quQz7DrgS6vKCjNjXia2NF56GnF8CYIgCCX7B14vnis5FTrOYV9qKMsH1yj95DIWusbJiZhPn9c8+LiOB71nqwt1RLfmVd9DD21IlVaNKnU1LfMmYpFX7cF6rZqgTW1xzs8JZc60D4zg8NKm2AKgpMbofY+Xo1Xz98wGBTuGzN6djnPXsTtejUobQWDwQvq3qshDq5R2jO9r59a189cH0Jamd7aiMu03HSOkoB4RHFGtxqd3Peyf0dzQNk28mb9pHC1ecJJnjN3DD293osf7Xmy+Xfpy5JU7MO9a+INtqTnLzn3T6dHMqVSPMBQ1ezBzTT/qXF6OT4deDPx8LH7rTxOlMZgV81Iq9vgCkGHj3o7hm3dxKEWNSnuJgyHLGNG1+os5YVri+BIEQXiEzP5VOs5bx677udeMc/ePsWGDF43zZqQr89Z49mmD8WlmU2ghZ9oHqlEFtMep4Nos5Zz5pJjic5Lto2s9mHn3CXWWGmOWkq4XCmfeGbuMHbFqVNorBByezmf1bAvNrqegvMc3TDpwmKB0NSptGPuPzuLLt8qaf122fQOfa4+2zykmNLctIliO4/99x8bUR7eVJcmxq+lOZYUjteqWLs8ALHaNU5p0qSTGxpPw2LiBem4tG0CPHQ5U7buEBYPuMqPtNM5r0rj3yNzu9p18GewRxMyg/IHKi5AdzPR2M7lYMEuPCX18dO7MMIpKtFmxmWltIlk7sh9HbjnQ2MuXEXvXYuPxOX4X8gawNunQ3I8HwC4xs3QDjMusKV/bFaszMxg06gxZdhV57bOh/LB8M67ZbRj9R/xLOnC5Beg13LmiAWsdCcXOdymBtROurgoujenJ9KAcnGq8Racp4xm325GY1705nmze3ljGrQk1ZdH8PvW/HAwvemIPKTEvo+KPL7Cu+w2/npzAm1G7WOa1gCsptrg1b4G7g+zF7IOWOL4EQRAeYssb09cwbUAqf40fypSzSSir1adZkyxSMs07y0g5Z0o+rz6WkxjJirmTN9GHlDpbbr3yFX+9UPKK5zKW+tYkZMZ3zA9zpJXvBCb/reT+W+NyJxSxrkXX2UNpoF7LL73CSLFvwGfTRzF2u47Ihr6otEV9YjEUtjjambg6oTcTA1Jz8zqTjpQbjyYOMuyaeLJk+ze4PNN7WDnc8etDl6DKpF9Rk13aYix0jSth5kATuvho1PFKdDFZkKPhTlgE6keSZgxawkOVdJnbm40tlhFVXE6j13D7chHLA1Z1vmBI5zKEfDuchZtzE1dVaAzlVdvoM96DDT0PWXzabUNyFOGqMLRA2Olo7D8MwPvbZpTd+jcaE8hdPPhmYn/atH6T2m7lsVUCObEc6NWJsXtTcnckGzc+mjCFEYNa8IpDDglnd7Hqh5/YfFqTu0EcmjND/Tvt8u7QDz9/heF5n39zWlu6/3w994vDk8oBkNlQvf0gho35gpbNqmIL5CSp2T+qP5O23s+d8U9KORZjJO16JJEX0uDCBa5o3uTDvQ2pX0XJ8WQ92NRn1PmddNjfnY7e58kCrNw92XJ+OLe6NMc7IP2x9vE8ewXP3K1D8OdvM3RfmrQYACsX3h01gZFDP+G1igp0d8+xa/pE5q27Skb+JEUStqm8XGN6zZtIvy6NqFgG0KcRE+yPdzc/1E/zZeNRiiq0XehDk8T1DPpoCmfzd/C9ux+Ok7BNJe2rEtpHEATB4qyq0KSVC5m7xzB7yQly87eznNpmZjlSzplSz6tQYk4iqc6WWi8pbOvTa1RjMv4YwLgZx0g1QfAVW944/x2DOszj9Po4jLprrP7gfVbr9XnXhmOcz36XVr83401XJaprhbJxpSvtV29lWrtk1nfuxfwTaQ/f9JTbUd4mkzsXLhMZVnzGLa/8Mb5/DCBzcn/mdNnMDDNvBZd5YyiLNg/mnVdsyYwK5mCINc27NaPc/aP4feXNmnNaZG5fsT5iCvXyltH+0YdP+p0io3BBChc++GUuwzo3oqarPXKMaC4HsOY7X9Yct/wsjiUkzhKZMgibM5tY/4mM7LyNUdvMraIcx6atqUUEa44lPljBDDUB+xLo0/Ujatke4nxGSWU8JaOOTB3I5LKCxx5W1VrTs38Lkpf9xJRDN0hMM2Hj7EjGubwdTF6e9xdtYU4vDX+NG8asGw40GzaeMQF1sHq7F2sjdaC9yLwWbVnv8SMr/Wqz/QtPtkblACZ0cbdyv9lKKQclVfssZpNfa9L2rWDxgHPcTNBj5+qKSZWcmzRLKucZkCkpW6sZnYf+H2UiNnIs2oy7wcW2jwHtba30GFlZms7agl+fRDb5eDI7Emp2HY6P32oUNz9h6tHcbfbEbYodjX/+je/bX2HZf77hZHQWVs7VqFU5lgQL3+SWu/wfX7S0Qu2zElVx3wolbtMnrpfE9hEEQbC4nCTUl9Oxbf0lreuEsvd6VqnON1LOmZLOq5aqs4XWSwpFlSY0dc0hbFsEVcbvZP/gGKa1XszR6DH0/KQONuvjyACM+sIXKgXla1VCro0mKvGR28E2r/D+Ry7IbVxo8X+VWHwijcJLyh2rUE6ZRZKDC84Ot0gsaiIWq+p0WTmDxvtH0+u3azT5zPz1UlZ+k8bVb7C403QS+y5lchc1C3oMRP7dEoYv+Iz9H24gJmY33711GpsybnTf8hudimwgB+p8+C61k1YwYdgJUmxr0tpnAiO2yoiqP5wjiZZNnZ8+cQYMcYEsWTCITZP6Unfv6qKDHNqx/L76we+ZgQytNZjgNAVONSuA9iqxaYVXTkdyZAJUcKOCNfCMEme5fRUa9PiegW8auDjyAmkP7fkpXN6ylf0hj891rnDrgNfXFQkf8yXTfs1Ngk+eiMUlbDXffvcmWwefIcOUScK162RUSyWHbBKuXeeGWm9+OQ5NGTKjNYqA7+nbYydxRezDksqxYLuBAo9t51Dl/6oPw7/dSq6aMy28hPaREiOv3gHvgeU40rsbv/yVhBE4FxKNQ6sABg9sxJyjwTz4zlz8NkVmRblqjpAQztnA01xMMgAqQs1YJamsqr5OZTScUiVQ3BMu87Zp8etlXvsIgiBYkElDsPcgfl21kOkXg/h623o2/Po7B0LizZrcQ8o5U0pMgUdzkoTN9Ht9AhcyJNbZQuslhbJCdZzQcCneiFOtatg4K6lSRsOdRLCv5oy1jEeeHMqwbzqY6RNe4eLkoZx8tPtk+jkW9Z9N/LupBPwWzaP3hZRlHcm8r6TNhgN0kEFm5CHW/ODLioPxee2qpHq/2Yyq9RfeXx0jxVC21Otm0sVz9cxZwspdx9g2nvCTQdzcco1hvq9TyRpiMlK5F5kK1kYSn9BHQxcdzJF9QWgJ4uzNmrQ8/jltG9pw5Khlsx+LJM6YdET5/0LgsHl4tt3FwaJiHu1PlJPK3Rd4tVZ+4k9QwefHc3bBUCasvvvkgy2PTe3m1OAOm47Fkv8AxKQJI/CSkQ5N3sDZ6gwZEu5SSilHX70Zjcobubj6SJFJsyXrI52JS9/3YlpQNnaVavDmVyMYcWAzZT7pzoKTJfR1fwZs6rxHbYU9jTaGPJ7kal2xlYNWyhdOUyonx83g2F++rLjVmYt/bGPHig3sDY5FZ+EVMhkNGDGV2E4W28cs1T6CIAilYEw6y4ouLfmjwQd0HjyAUYFeDNs5Ea+BG7khMaeRcs6UElMg+yQzO83mUv7nZycSXag7npQ6W2K9zKPlrFcb2k/Scz/Wns5Fxshx9BjGkr+8sP/vYAb8eqOIRF5P7D5/5u8r+lN04csZ4L4cUFDW/T26TZ/DyJ2ryGnajZUReuSubRkzpRZH+w7hfKplLo4mo4ncEZJNGHOMUKgHQGnoYyKIx4GKTqUeg6NYlkmcAVNyMP5+cWwY25UiewUU25/IgOZmMti7UqWsHNILuvhTvm5FSLpE0jN4F8wYMpVvR4SQmpFM3K14tEW8vPVkT7dhJZdjNOWeCp6Y3FiqPlIYSYuKRH0pDQjjwonrlH13F729G/PbySC0mDAYQWGtfOZ1ksnkyIhjW6+BbIh8eGcxZsaRLDkpNJEZtpaRr++jYeeudO79BeMODGHE/mkM7r0OtQU7A+fE3SCRctStXwH5ibslbNqn36aWax9BEITSMqC5fJB1Iw6xbfUwVh+fzKSDR+m/6h4mowETcqwUhc52MgVWCkBvAJO0c6b08yqgTyH6QhjhRfVxllBno1kxTycn6Q4anHCtaI1Jl0LMXaCMG9WdQXs2sdCNHTnlWvvgv/MbjEu+pf/EYFKe6qU9A2nqINZ6Tea9TxfTsWN11kTcxOmDvrRwqgh/nqXDQ/ELOXL7AwbW+4HQEtu1CEYDBqOUFpN4RTQaMQKyZzAKsAWL1BG1chGn3frQvaE5w64ZSQ09QjT1aNfS+UGF7Nz5+NOKZIUEEvUMvrkZNbe5FhZJ1I3SJc1ZN05zk2q816rKg+FrnBryYSM5mnMXSSyUn5h0GeixpZz9480tpRz9vXNcTlHQqG8LKhXTtObUB5OBbD2UKWdruR1AJkMhB5Mhb8fXpxKbAuVeq4HDMx6+OuvGKaJxoWlDE3cjrnGj0E/0zVTJTxHymbLjuPTHcn767FM+bruW7E/HMvIDR4vW2Rh3iv0X4fWRfWjoUPSJwKxtWgJLt480Sip/OpCRk76kYbFDM4kYESNi/jdizGEiI/woobFyqjaoiBWQk3yHFJypW6/QUGO2bjSqAam3k9Eh7ZwpJcZSdS5dTOkYYs8RGqOkwedv4Ji3Wkq392lZ08DVA9fJv1GurNGdWX/0Q+k3gP/4lpQ0m7lN5YWG4MNIyp7RdG/eiR4FP72Ydx64NJsBbeZypRQ5W+pffXjHdSSni0u4jToyssHG2d5yd3xLqYTPl2FdqQY1KjtQ1dUGlE5Ub1gPd00a967eLfLRrjHuML+tT2btkMqkmFEJ/bWtLNs9iJ8XL2aEYhFHbjvw1pCJ9HG7zopeJyw+ooYlGG7vZul6LxbP9GeifCEHoxx4y8uHDo4XmD/3/EP9ibNvhhJl7M5nkwYSvuwi6WWr45p6mO0HYsmRUk56KMunnuLjefNZt7Uhazae4WZSDtYVXKmQEMjOwDiz6oM+ietXM1C286RfTxlhRpcH5UhuATlla9SiZt0sbF1q8c6AH+hfI5k93pdzP8sQR8iWcPjJh4lj9WwKTsCqfgOcLNH4jzDc3s3iVZ74/bgeP5df2XpATQqOVK3rSMSqTYRJfZQkc+TtST78X1wwIedvk2pwoMZHr+OElvgUC/da099ix3cr6RYwgBWHKrBs4T7C4+RUqN+UBrodLFgWic6cbVoCi7WPORya4r3ah3aO0CrzDD1m33isH52IETEi5n8kpiRW1Wj/8xBqhh8n9HIsGfLyuHcZRrcqWo4fvo0eMMYcZ+dpAz6zZuOZsZSguza83vdHPq+UyJ9rr+QmhlLOmVJiCurlhFuDeiQX7jKaFc/N64nolE+us5T1spjMK2xccJ7us+YwPXIaf4SVpeWE73GP+xOvPflD6Nrz1oQfeCdzLz9uS8Klfj1cADChT7zFzZjMB11YStqmMgcajRhMs+RLXL2VjqxiXVoNHUVzq6ss3XM3N05zm2uawhV0xC0NUNzl+tVYMp9FzpaTxNULGhQ9hvGfb0yc1lbCJfUwfwbcp1QdBp5CCYmzFa94rmTL2Ffyfq/G+EO7wHAC7+r9OJZa1DKZhC/1J3zIBFzNqYUhjgMDemI7YzKDF6+hr40JzeUAlnaezCqVOW+bPUfGZIJGfMmYxGmM8F1IJzsDSao9zP106uOPw+/tYdqwd/hp6nBmbFdAxh2CZ5zjzwOxEsvRc/u3//Bl/BCGfdcN7/8OoAxgTInm1Pzz7A6Mw2BGfSCNM76T2FlnAgNWLoese5yaocotR8q66zTExsloPW8bOwBMWmLPn2BVnzn4H9TkHZx6bvp5Mabqz4wePZclP5L7ol94MBfvW3g3N2o4NbobnlHjGOo5ip8G2QDZJF7YzewtWwhLlfh1QF6GMorKtBg7l77Oubf2M+9c4PA4T+aftPR+aCI9+Bf6fXgH7ynf8q1/V+wB3b0LBCzci5UMdGZt0xJYqn3MkXWLE4HxtG2XzPHg+KJPbCJGxIiY/42YksgVmHQVef+HWQysbo8M0EadYY93H+bvzRsqTH+LrV/9h3ILfOi5ah2D5JB1+yzbhg5n/vH8d2YknDNNUmLy6lXGgwmBux6u6/XFfPH2Iq4joc5S1sticri1bAhDy/7EuJHzWeRgIPHMNqa0n547hjOAtStvve0Ezh356UjHh5ZOWdOT9l6hFFzFStqmclsqVHmDTqMHMKKiFaDlXkgACzvMYl34MxqdS5IMzk8Zz+a60/jKbxlfZ8dw6icVfwXcf+41kRkvTDZ1aPE7Mc87ZX9Kdi3msO/v2syv250d917y2eOEfyFbGi89yqq3FiGOL0EQBKF4/+zrxT/R01zjlDJrR5yrVEKfA4b0JJKLGq/vZSGzxsnFCSsZ2DpbsH+uIDwj4vgSBEEQpPhHXS/+iSx0jVNSbxTrro4C4N7cTnSdGGHxMQgtpmxL5tzwo1nBHy69wMoIggTi+BIEQRCk+CddL/6JLHSNkzW2e/UlfPVOEARBEARBEF4u4mmsIAiCIAiCIEggEmdBEARBEARBkECu0qrJ/9kztR7WL7pGJXFsg3+h+qq02+la1ZzJVl4MedlavN2pNe6OL/Z7itztKzYWar+g1e9i90JrlM+a6p//yPKLoYRq1aiSz7DrgC+tKivMjHmZ2NJ46WkscXw9ef+RU6HjHPalhrJ8cI3HBt6XvN3/oceXIAjCP5vlrhdCCSx0jZMTMZ8+r3nwcR0Pes9WF+qIbs2rvoce2pAqrRpV6mpa5k2iJq/ag/VaNUGb2uKcf02XOdM+MILDS5tiC4CSGqP3PV6OVs3fMxsU7Bgye3c6zl3H7ng1Km0EgcEL6d+qIg+tUtoxvq+dW9fOXx9AW5re2YrKtN90jJCCekRwRLUan971sH9Gc0PbNPFm/qZxtHjBSZ4xdg8/vN2JHu97sfl26cuRV+7AvGvhD7al5iw7902nRzOnUj3CUNTswcw1/ahzeTk+HXox8POx+K0/TZTGYFbMS6mY46vMW+PZpw3Gp5nNg1iZM+0D1agC2uNUaF988v4jx66mO5UVjtSq+/g2kLzdLXF8CYIgPEJm/yod561j1/3ca8a5+8fYsMGLxnmz1kk/H8qwcW/H8M27OJSiRqW9xMGQZYzoWr1QkvmkmOJzku2jaz2YpfUJdZYaY5Zi8zGJbN/A59qj63WKCc1tHwmUY9+4H7/GRLKt0DqbT4HjGx0YvGId26IuEXpnMe86FP63M++MXcaOWDUq7RUCDk/ns3q2hSbNVlDe4xsmHThMULoalTaM/Udn8eVbZZ9NdwgLXeOUJl0qibHxJDw2bqCeW8sG0GOHA1X7LmHBoLvMaDuN85o07j0yJaJ9J18GewQxMyidYuuRHcz0djO5WDBLjwl9fHTuLDSKSrRZsZlpbSJZO7IfR2450NjLlxF712Lj8Tl+F/KG7Tbp0NyPB8AuMbN0A4zLrClf2xWrMzMYNOoMWXYVee2zofywfDOu2W0Y/Ue8hQcuf4noNdy5ogFrHQlZTw4vlrUTrq4KLo3pyfSgHJxqvEWnKeMZt9uRmNe9OZ5s3t5Yxq0JNWXR/D71vxwML3piDykxL6Pijy9LyuGOXx+6BFUm/Yqa7Ef/LXW7W+L4EgRBeIgtb0xfw7QBqfw1fihTziahrFafZk2ySMk07yxjXfcbfj05gTejdrHMawFXUmxxa94CdwdZwflKSgxQRE5iJCvmTt5kIFLqbLn1yvfU1wuFLY52Jq5O6M3EgNTcfMykI+XGgxO/lctbdPhuFMOGvYczEFXKj0JmR73hS/jVtxYRazewZvhSom/f5XrBlLZKXvFcxlLfmoTM+I75YY608p3A5L+V3H9rXO7ELda16Dp7KA3Ua/mlVxgp9g34bPooxm7XEdnQF5W2pAqUgoWucSV80TChi49GHa9EF5MFORruhEWgfnQecYOW8FAlXeb2ZmOLZUQVl9PoNdy+XMTygFWdLxjSuQwh3w5n4ebcxFUVGkN51Tb6jPdgQ89DFp9225AcRbgqDC0Qdjoa+w8D8P62GWW3/o3GBHIXD76Z2J82rd+ktlt5bJVATiwHenVi7N6U3B3Sxo2PJkxhxKAWvOKQQ8LZXaz64Sc2n9bkbhCH5sxQ/067vDv0w89fYXje59+c1pbuP1/P/eLwpHIAZDZUbz+IYWO+oGWzqtgCOUlq9o/qz6St93Nn/JNSjsUYSbseSeSFNLhwgSuaN/lwb0PqV1FyPFkPNvUZdX4nHfZ3p6P3ebIAK3dPtpwfzq0uzfEOSH+sfTzPXsEzd+sQ/PnbDN2XJi0GwMqFd0dNYOTQT3itogLd3XPsmj6ReeuukpG370jZpvJyjek1byL9ujSiYhlAn0ZMsD/e3fxQP82XjdKQsP8Y3L5ifcQU6uX9XftHHz7pd0rydNyCIAjPlFUVmrRyIXP3YM0QngAAIABJREFUGGYvOUFuLnSWU9vMLEdRhbYLfWiSuJ5BH03hbH5SsHe3eTH5SshJJNXZUutlSXI7yttkcufCZSLDiso6bXAf9TNDPS6ytpcPTfxn8UoRUU8mw+H9ccwfI8PPoy1b1Y/drgHb+vQa1ZiMPwYwbsYxUk0QfMWWN85/x6AO8zi9Pg6j7hqrP3if1Xr9/7N33/E13f8Dx193JLIkCCF2aFRbWqqtUetXqkb5GqUoRVHE1mHUnqU0Vo0GNWrWqK1U7KAV1wiJXMROZIiMm33v/f2RISGJc+XS9X4+HvfxkHjfz/mczzk3930+53M+n4wc5SjnkuvQ6Oe3eMNdi+6q8iuIF/nd/ew99JnMCQTMnkWYz3iGtdnC8C2WpmhqnGs1xoMgVh2NepTgJeg5sC+S7u2a4GF/kHPPMxMwpZCYAiq1KusWgk2ZxnTu1YDoJdOYdPA6UXFm7FydSTgbl540q4tSf/4mZneJYcfoQcy87sRbg8bw9YHK2LzdhdXBKWC4wPcNmrO23jcsX1yJrR/1Z3NIGmAmJfxW+pWtknLQUrr7AjYsbkzcvmUs6H2Wm5GpOLi7Y9ZFpyfNisp5DlRaCnu8RZuB71IoaD1Hb1jQG5xn+xgx3DYoj1EVptbMTSzuHsWGkf2ZFQwV2w1m5OKVaG42Y/KR9GP21GOKAzW+/ZEvW15myeefcvJGEjauZfAoGUbkX9HJreD8MYfu4ouaf2BXqBwdN/1I67+gmkIIkae0B+gvxWPf+GMaV/Znz7WkvO9M50Pt9i4fNbRBP3I5ujx60pTEWK3OVtova1I7l6KINokHTm64Ot0i6okFVJK4PKY5zcxmzE71qPbMGypB428+opT5Op13n2ZUmUIkXD3Nr5PHs3DLLVIATak3qeWeRsCWIEqN2c5v/UKZ0ngBR258TedmlbFbG04CYErN/uWqoahHCdSGG4REWTIM88V+dxc8cQaM4b4snNuXDRN6UGXPytyDnFqw9L7+0c+Jvgz06IdfnAaXisXAcIWwuOxJdwrRwZFQrBzFbOF5daGpHUvxWqcv6fOGkQvDzhOX48x/yKVNm/ntdOIT79OUa4XXJ8UJ/PpjpvyQnsScPBGGW8BKPvviDTb3+5MEcyKRV6+RUCaWNJKJvHqN6/pUy8txqsWA6Y3RHPiSHp22E57L+aSoHCu2G2iot+UsuswfUwPwabGcK082Vd4UtI+SGHXZVgztU4TD3drz3Y4HmICzp2/g1OgA/fpUZ/YRPx5de+d9TFHZUKSMM0QGcsb3Dy48MAI6/C3YJatS0j5psdwLjgVbE1G5XPQLIcRfyhyD39C+/LBiHlMvHOeTLWtZ98PP7D8dYdEYXpvSr1CSGE7pIskrpVISk+XxnCRyIz1fGcv5BIV1ttJ+WZO2sDOJ97U0XbefVipIDD7Iqq/Gsez3iEftYTYXPMF3fJkmb2mJPrALn8XHCYkvTPU+kxi7ehXmkBZ4n01CW6wsLsRwMcKEi0cZ7Fy1lCoUw50ocCzjiq2KrLvB6VQ41urH1LHluTBxICctGfL5gr+7rTP+2pxCiM93+Lp0pX9z19wLTfZj6nut6VQ741V/EuesPX7FAtpmPhw36PEPP8bqhXW4NXcgI1feffqHLYNdpdpU4A4nj4aReTPBHBOA70UTLm++juvjUxsUoBybsm9RvaiJCysP55o0W7M+ypm5+GVnOtVpR8/Ww/De7MBn+zcytK4Tz+kZyzzZVa5LJY0jjdefTp9xw6BH9/AAw18Bh/Lu2Cs9y82xnBw9naMOfVh26yirfhpB23dLYfuid0gIIf5FTA/OsKxtQxq/M4q9D99huK8fO9Z1oZIF0zqZTUZM5J/0KYnJknySGc3a0bV+xqvFDwRnu6WvpM7W2C9rSglcSm/PWtRxqkrDGr1YGlyD/ttX0LOqdRMAdWF33Owh5Jf1/Hb0IsFn/dgycgJ7Y8rSomsVCuWINnDGqyktq3RiZZ53vtU41xvM4t8G4/iTF8N/uG7ZxccL/u622oOL5mg/fBaHU3dUO8rnNodK5niigIxX0D0STABGYm5Gg6M7pQpnr44tRasUhwe3efAcutpNpyfTs3Yr2levR32XevT95iD3Ld6OykpJ4lPKMZnT/xQ8dRSMteqjhIm4kGD0FwM477ub1QOH8tPNl+g0tEbGVGdmjCbQ2Gqfe51UKjUqwtnSpQ0darXI8Wr36QGiFY8eMpMYsJphr7zLp71WE1ysBaP3H2Pflk/xdLDuXphNRsyosdFkK1elwUYDmIw8e5eAZPlCiL8jIzGXfmfNkK60bjCf2P9NZELn0qhR9vcwLfw6URShyqvF8kxclMRkSX3IjfMBBOoyXpdDefKZvrzrbFnMi2YkTn+c1V4TOZ1alQ8/LGud4QUZzGkpGAGnkk6PZj5LieBWJDiXc0ELpD24QwwuuBe3xZzykNC7BkzaYpR1BcPdKFKyvuPUFGk8kuV7B1Bo6Wf0+voIDyyeLOvFfXen19hqUghZPp8/ynWnYzVLpl0zEet/mBtUpUXDbL3VDp68/0Fxkk77EvIchmmYYm5zNSCYkOsRGJ7hCdak639wkzLUbVTq0fQ1LtV4r7qamLMXiMqWhJtTEkjFniKOTza3knJS753l0kMN1Xs0oEQeTWtJfTAbSU6FQkXsrXcCqFRo1GA2ZvzlSY0l7CEUebkCTs/5L0jS9VPcwI1a1czcDbrK9WyvGzdjFd9FyGRODufiL0uZ9r8PeL/5apI/GMWw/3O2ap3Tou/wEFeqVM02fZx9OapXgNjb0TmutvM7f7KYUkhIBjtXx7z/QD6P454nLSU/6MOwCR9TLc+pmSRGYiTm3xFjCTMJgUfwD1NT+rXi2KDs76Ep/BS/XYBXhnWnmlPuyZCSGGvV+dliXjB1tqnzLH5z3sfdHHedS2FQ8YPquGT8l8qxAq+UhvCL90kFjGFn8Q/V8lqH13HO2Li2XH0aVjRyZf81Mjv3tRU6MvOXnmgX9+bzcX48LMAMsy/iuxvyHeOswrZEBSqUdKK0ux1oXShbrSqeMXHcu3IXQy69eKbwQ/y4NprVA0ry0IJKpF7dzJJdffl2wQKGaOZz+LYTNQeMp3u5ayzrcsLqM2pYg/H2Lhat9WLBDB/Gq+fxe4gTNb1G0sr5PN5zzuUYT5x8058QU0f+N6EPgUsuEF+4LO6xh9i6P4w0JeXE+7N08ine/96bNZursWr9n9x8kIZtMXeKRfqy3TfcovqQ+oBrVxLQtuhPz84qAkxuj8pR3AJqClfwoGKVJOzdPHin91f0qhDN7qGX0rdlDOf0pkCYNpLxo1LZ4BeJzauv4WKNxn+M8fYuFqzoz+Jv1rLY7Qc279fzEGdKV3EmaMUGAmIVnkAqZ96eMJJ3w/04fe42sUYnKjR5BRcMRDy07qg1U+gxtv9hZOTMWfRPWMTxu3a80uMbOpSI4tfVl8n+EHC+509mUNoDrpyPQdNpEJ9/auYPQwncYg/x64H7j2KsctwVcqrF0JUjaeEMjRL/pNOs6zxxQ0diJEZi/h0x+bEpQ8tvB1Ax8Bj+l8JIUBfFs+0g2pcycOzQbVJR+Pcw9RbbvlhO+wO9WXawGEvm7SMwXE2xV2vxWso25i4JJkVJTFa9XCj3WlWisw8ZTYrg5rUoUrRPr7OS/XqhVE5UH9KPt6IvcuVWPKriVWg0cDi1ba6waPfdrPqo7N2oUKkYNk7lcbYBO/dKeFazIT40hNvZe9jyO+6JQWz+MZjO4ycxfkgiy4+l8trQSTTU+vPt2oxhFomXWT/3HB1nzmZq8BR+CShMw7Ff4hn+K167M6f9daTm2K94J3EP32x5gNurVXEDwExq1C1uhiYqu/n6Ar+7Id/E2Yby/ZezaVTmZCVlGHNwJxhPMLRsT47G5vaeRAIX+RA4YCzultTCGM7+3p2xnz6RfgtW0cPOTMylAyxqM5EVOkueNnuBTNEcH/IxX0dNYci4ebR2MPJAt5s5H0xmXXDOj4zp3m6mDHqHaZMHM32rBhLu4Df9LL/uD1NYTiq3f/ycjyMGMOiL9gz9qTeFANPDG5zyPscu33CMFtQH4vhz3AS2Vx5L7+VLIekep6br0stRsu8pMYSFq2j8/Ra2AZgNhJ07wYrus/H5PSbjRE/l5mIvvi79LSNGzGHhN6Q/7Bbox4X7Vp7U2BTDqRHt6R8ymoH9hzOtrx2QTNT5XczatImAWIVpoboQhTQlaTBqDj1c07v2E++c59Do/niftPJ5mHqLzV0/p8jckXResYa+aki6fYYtAwfjfSznfOj5nj9ZEjg3aQwbq0yh6+IlfJIcyqlpOnYcuJ8tpoDH3RJJtzjhG0HzFtEc84sg1yMuMRIjMf+OmPyoNZhTilP/q5n0KeuICjCE/Mnuod3x3hOdnkAp+ntoJt7vO3q+d4ehkz7jM592OAIp985zYN4ebFSQYlYSk1GvQvUY67szZ12vLeCjt+dzDQV1VrJfL5LanmKlXqf1iN4MKW4DGLh3+gDzWs1kTeCj5LHQ64NZ7tuZYpm/8FrCOi8IGdeMTt+HPDq++R73FK5935uh9lMYMcqH1dPAcGU/C1uP45eQzMg0bi0ZwMDC0xg9zJv5Tkai/tzCpJZT0+dwBrB1p+bbLuD6IdMOf5hjCw9Xdaallz+Kvnlf5Hc3oDKdn2hu1eBnQp/rAg3W59BgNvv2VsK7Ske23fubrx4n/oPsqbHoCCtqzkc+X0IIIfL2z/6++CcqyHecVmXrjGupEqSmgTH+AdFPzPv3N6KyxcXNBRsV2Lu+iHGaQhSMfL6EEEIo8Y/6vvgnstJ3nJaqw1lzZTgA9+a0pt34oL9sDsKnKtyQ2dcX81bWLy7+hZURQgH5fAkhhFDin/R98U9kpe84VQ2Hl/6Gj94JIYQQQgjx9yJ3Y4UQQgghhFBAEmchhBBCCCEUUOsylyg26Nk9uSq5Lfr3t+HcFJ9s9dUZttKutCWLrQghhBBCCPFs1AR50/3lerxfuR7dZumzDUS35aVxB9HlSFT16GJX0jBjIRZ16U6sNeg5vqE5rpl91ypXWvoGcWhRLewB0FJhxL4nyzHo2TvjtaxEXeXoyYdz1rArQo/OEISv3zx6NSpOjrQ47ihfVkqva5tP9mOQ0dlCCCGEEOIF0ZpTYokKiyDyiXkDU7m1pDedtjlRusdC5va9y/TmUzgXE8e9+JyRjq3H0a/ecWYcj897lZdkP6a2mMGFrFV6zKRG3EhfiUZTgqbLNjKlaTCrh/Xk8C0naniNY8ie1djV68Di8xkTWJtTiLkfAYBDVOKLn2BcCCGEEEL8Z+WzcqCZlIgb6CO0pIQmQVoMdwKC0D+WNGM0EOivpe2cbqxvsISQvNaZTI3h9qVc3g/YVP6IAW0KcfqzwczbmL4Uo84/lKK6LXQfU491nQ/+LZfdFkIIIYQQ/x0FfzjQnEDA7BkcL/c5w9qUeIYC1TjXaowHQew9GvWoFzlBz4F9kdjXbYKHfYFrKYQQQgghRIHk0+OsnDHcl4Vz+7JhQg+q7FmZe5BTC5be1z/6OdGXgR798IvT4FKxGBiuEBaXffBFCtHBkVCsHMVsgQRr1PQRjWNhHGzUqADMaSTFGUgxSYzESIzESIzESIzESMx/NeZprDMdnTmFEJ/v8HXpSv/mrrkXmuzH1Pda06l2xqv+JM4Zcgt8EZyo/dNJjt49w5G7ZzhybyvdKttIjMRIjMRIjMRIjMRIzH825ulUpvMTza0a/EzoEw8HZtJSYcQufh1zHa+KXpzMNkZZXboTawKHcaHJe8w8Y6Ly6B2sa3eYVSk96XjhE1p6+ZOY+f6RwfSrPIQ/nhjjrMa16wZ+99Ew8aWObA/NTP3tqT7Pl9XtDtHrlTFPJNkODWazb28lvKt0ZNs9S9dz1+Dy6pu8XNIm/arDGM/NMxcJSzBLjMRIjMRIjMRIjMRIzH8y5umsmDgnoXZrybzz31HN3hbWdVaYOIPNy15sOjuQ+581xivj4UAcXmfE2S10vDiA5p1+f+LhwIIlzkIIIYQQQlgmn6EaKmxLVMSzWlUqutuB1oWy1ari+UoZHPN4lyn8ED+ujaaIhT3fqVc3s2RXCrUXLGBI13rUaNCMXssW0b3cNX6efkJm1BBCCCGEEH+5fB4OtKF8/+VsGlU+4+cyjDm4E4wnGFq2J0djc3tPIoGLfAgcMBZ3S2phDGd/787YT59IvwWr6GFnJubSARa1mcgKXaIlJQkhhBBCCPFcKBiq8fckQzWEEEIIIcSLpFXZOuNaqgSpaWCMf0B0/N84CVXZ4uLmgo0K7F3trTQliBBCCCGEEE+nMpvNWSOI781pTbvxQaT8lTXKj3NTfEIX81bWLy4y2VN6nIUQQgghxPOnquHwkjx6J4QQQgghxFPIaAchhBBCCCEUkMRZCCGEEEIIBdQ6g57M1+7JVbH9q2uUH+em+GSrr86wlXalNX91rYQQQgghxH+AmiBvur9cj/cr16PbLH22BwNteWncQXQ5ElU9utiVNHTOeHPpTqw16Dm+oTmumX3XKlda+gZxaFEt7IH0lQf3PVmOQc/eGa9lJeoqR08+nLOGXRF6dIYgfP3m0atRcXKkxXFH+bJSel3bfLIfwzOMzlaXbMX3VwMf1SPmDNv3TaXTWy5Z3e+Fao5hn8GPkW/ZPXqjypWWvnp0B1riolLWPln7fn8+7zjlUR+3D/g24AJnDXp0hmCOX97Mt980o5y9yuJ9Uzm+xIffr2Hn/fS6nL1/lHXrvKhRRG3BfgGosPNsweCNOzn4UI/OcJHfTy9hSLuy2S6snhaT93HfOsIjawLxp9VZaYwQQgghxPOmNafEEhUWQeQT8zincmtJbzptc6J0j4XM7XuX6c2ncC4mjnuPLZvt2Hoc/eodZ8bxePLMZZP9mNpiBhcMmb8wkxpxg1QATQmaLtvIlKbBrB7Wk8O3nKjhNY4he1ZjV68Di89nLIJiTiHmfgQADlGJ6UtzW8rWBXd3DRe/7szU42m4VKhJ60ljGL3LmdBXhnIsWmk2rrx98lXIlQoe9gR+04NZ/raUq/shn47+gc2NptOlzU9cT1JakD2vT13FlN6x7BgzkElnHqAt8ypvvZnEw0TLWsq2yqf8cHIsb4TsZInXXC4/tKdc7QZ4Oqmy2lxJDJDLcTeRFHqHNMV1tt5+CSGEEEIURD4rB5pJibiBPkJLSmgSpMVwJyAI/eNJodFAoL+WtnO6sb7BEkJS8yguNYbbl3J5P2BT+SMGtCnE6c8GM29jBCZA5x9KUd0Wuo+px7rOB6287LaJuGvBBJ+Pg/PnuRzzBu/tqcarpbQci85rBx6nsH0UMfIw6CLnj8Vx/tgRDh2N5peDX/J12914bQhXdoFgU4o3G7mRuOtrZi08QXqeeoZTWyysiqYUzeeN5M2otfRtMokzmQ2/Z5dlMZnyOe6K6myt/RJCCCGEKKCC3+s2JxAwewbHy33OsDYlnqFANc61GuNBEHuPRj1KEhP0HNgXiX3dJnjYF7iWuVNpKVypDm0HvkuhoD0cvaE0aX6ezBj81/HLFVve6laTwkpHbKQ9QH8pHvsGH9O4sh2WD/RIp3Z7l48a2qCfvxxdHlcrSmKsVmcr7ZcQQgghREFZZZCoMdyXhXNDqTuhB1XyGpvr1IKl97ONdY1cSr3CABpcKhYDQyhhcdn7VlOIDo6EYuUoZvUnFjXU23IWXXwgRy+u4ctmd/lp0HKuJFp7O88oNQL9zVQ0pStSNJ97AjmYY/Ab2pcf/Gsx9cJx1q4ezoe1S1j8sKdN6VcoSQyBukjyWlZGSUyWx4/7zam84WBBna20X0IIIYQQBWWdp6vMKYT4fIevS1f6N3fNvdBkP6a+15pOtTNe9SdxzpBb4Itg5uKXnelUpx09Ww/De7MDn+3fyNC6Tn+vHk2VZbUxPTjDsrYNafzOKPY+fIfhvn7sWNeFSg5Pf28ms8mICXPeY9UVxmRJPsmMZu3oWj/j1eIHgrON21ZSZ2vslxBCCCFEQVltWgJztB8+i8OpO6od5XPrDswc6xqQ8Qq6R4IJwEjMzWhwdKdU4ezVsaVoleLw4DYPrD6CwkRcSDD6iwGc993N6oFD+enmS3QaWgMH0hNDM2psNNkSV5UGGw1gMqIsYywAmxK8VN4G070bRD/x0ObTGIm59DtrhnSldYP5xP5vIhM6l0aNsv1KC79OFEWo8mqxPE8OJTFZUh9y43wAgbqM1+VQnnymL+86WxYjhBBCCPH8WDHvSCFk+Xz+KNedjtUsmVvZRKz/YW5QlRYNs/VWO3jy/gfFSTrtS0iC9WqZK5UKjRrMxvSMLi36Dg9xpUrVR1PUYV+O6hUg9nZ0tin7ng/7NzrxUdVUzqzVEffMSbqZhMAj+IepKf1acWxQtl+m8FP8dgFeGdadak6593gribFWnZ8tRgghhBDC+vIZQavCtkQFKpR0orS7HWhdKFutKp4xcdy7chdDLlM9mMIP8ePaaFYPKMlDCyqRenUzS3b15dsFCxiimc/h207UHDCe7uWusazLCSvPqAGgpnAFDypWScLezYN3en9FrwrR7B56iQTAHHqM7X8YGTlzFv0TFnH8rh2v9PiGDiWi+HX1ZdJHGljQPjYulHutKtHZh6YkRXDzWlTGtGwailStTvWHUOqtFnQf3xm3UzMZtu2+8in3bMrQ8tsBVAw8hv+lMBLURfFsO4j2pQwcO3SbVMCkZL9Sb7Hti+W0P9CbZQeLsWTePgLD1RR7tRavpWxj7pJgUpTEKNj3FO3T66xkv4QQQgghXoR8EmcbyvdfzqZR5TN+LsOYgzvBeIKhZXtyNDa39yQSuMiHwAFjcbekFsZw9vfujP30ifRbsIoedmZiLh1gUZuJrNBZ+Ym9lBjCwlU0/n4L2wDMBsLOnWBF99n4/B6TPgoj9Rabu35Okbkj6bxiDX3VkHT7DFsGDsb7WOZc1Ra0T6F6jPXdmbMe1xbw0dvzCUl+wK0biTSbtorVgOHWeU4sGMS4Ofu5acmuqzWYU4pT/6uZ9CnriAowhPzJ7qHd8d4TnZ6AK9ovM/F+39HzvTsMnfQZn/m0wxFIuXeeA/P2YKOCFLOSmKfv+zUU1FnJfgkhhBBCvAAq0/mJ5lYNfibU4rG0fy2HBrPZt7cS3lU6su3eU+d2EEIIIYQQokC0KltnXEuVIDUNjPEPiI7/GyehKltc3FywUYG9q708GCaEEEIIIV4YldlszhpBfG9Oa9qND3ruD789M+em+IQu5q2sX1xksqf0OAshhBBCiOdPVcPhpec9uZoQQgghhBD/eDLaQQghhBBCCAUkcRZCCCGEEEIBtc6gJ/O1e3JVclv072/DuSk+2eqrM2ylXWlLFlsRQgghhBDi2agJ8qb7y/V4v3I9us3SZ3sw0JaXxh1ElyNR1aOLXUlD54w3l+7EWoOe4xua45rZd61ypaVvEIcW1cIeAC0VRux7shyDnr0zXstK1FWOnnw4Zw27IvToDEH4+s2jV6Pi5EiL447yZaX0urb5ZD8GGZ0thBBCCCFeEK05JZaosAgin5jHOZVbS3rTaZsTpXssZG7fu0xvPoVzMXHci88Z6dh6HP3qHWfG8cxFNHKR7MfUFjO4kLWCnJnUiBvpK79pStB02UamNA1m9bCeHL7lRA2vcQzZsxq7eh1YfD5jJRBzCjH3IwBwiEqUxS+EEEIIIcQLk8/KgWZSIm6gj9CSEpoEaTHcCQhC/1jSjNFAoL+WtnO6sb7BEkLyWgM5NYbbl3J5P2BT+SMGtCnE6c8GM29jBCZA5x9KUd0Wuo+px7rOB5/DsttCCCGEEEIoV/CHA80JBMyewfFynzOsTYlnKFCNc63GeBDE3qNRj3qRE/Qc2BeJfd0meNgXuJZCCCGEEEIUSD49zsoZw31ZOLcvGyb0oMqelbkHObVg6X39o58TfRno0Q+/OA0uFYuB4QphcdkHX6QQHRwJxcpRzBZIsEZNH9E4FsbBRo0KwJxGUpyBFJPESIzESIzESIzESIzE/FdjnsY609GZUwjx+Q5fl670b+6ae6HJfkx9rzWdame86k/inCG3wBfBido/neTo3TMcuXuGI/e20q2yjcRIjMRIjMRIjMRIjMT8Z2OeTmU6P9HcqsHPhD7xcGAmLRVG7OLXMdfxqujFyWxjlNWlO7EmcBgXmrzHzDMmKo/ewbp2h1mV0pOOFz6hpZc/iZnvHxlMv8pD+OOJMc5qXLtu4HcfDRNf6sj20MzU357q83xZ3e4QvV4Z80SS7dBgNvv2VsK7yrMsua3B5dU3ebmkTfpVhzGem2cuEpZglhiJkRiJkRiJkRiJkZj/ZMzTWTFxTkLt1pJ557+jmr0trOusMHEGm5e92HR2IPc/a4xXxsOBOLzOiLNb6HhxAM07/f7Ew4EFS5yFEEIIIYSwTD5DNVTYlqiIZ7WqVHS3A60LZatVxfOVMjjm8S5T+CF+XBtNEQt7vlOvbmbJrhRqL1jAkK71qNGgGb2WLaJ7uWv8PP2EzKghhBBCCCH+cvk8HGhD+f7L2TSqfMbPZRhzcCcYTzC0bE+Oxub2nkQCF/kQOGAs7pbUwhjO/t6dsZ8+kX4LVtHDzkzMpQMsajORFbpES0oSQgghhBDiuVAwVOPvSYZqCCGEEEKIF0mrsnXGtVQJUtPAGP+A6Pi/cRKqssXFzQUbFdi72ltpShAhhBBCCCGeTmU2m7NGEN+b05p244NI+StrlB/npviELuatrF9cZLKn9DgLIYQQQojnT1XD4SV59E4IIYQQQoinkNEOQgghhBBCKCCJsxBCCCGEEAqodQY9ma/dk6ti+1fXKD/OTfHJVl+dYSvtSmv+0iqpC3vwduvGeDo/2zWIulxX1mfbp+Mr6+DwXOujptiHs9kX68/SfhWwfLFJ8WLJ8RJCCCH+LtQEedP95Xq8X7ke3Wbpsz0YaMtL4w5PmcAJAAAgAElEQVSiy5Go6tHFrqShc8abS3dirUHP8Q3Ncc3M01SutPQN4tCiWtgD6SsP7nuyHIOevTNey0rUVY6efDhnDbsi9OgMQfj6zaNXo+LkSIvjjvJlpfS6tvlkP4ZnGJ3t3HZdrnXRGfTogkZS1c6y8uzeHIr3htE0KPlsCbwpbDdfvd2aTvW92Hj7mYqwsD5qHCp6UlLjjEcVl3/GLQeNK++MWsK2MD06w2UOHJrK/6rapy+ZCYAd5Tt+zdxTJ/nToEdnuMDe36fRvrpjthhLqXF+9wvWx+rRHWiJS7aCVE6etPZey57IjIud8z8xvF2553TR+Q88XkIIIcS/lNacEktUWASRT8zjnMqtJb3ptM2J0j0WMrfvXaY3n8K5mDjuPbZstmPrcfSrd5wZx+PJM5dN9mNqixlcMGT+wkxqxA1SATQlaLpsI1OaBrN6WE8O33Kihtc4huxZjV29Diw+n7EIijmFmPsRADhEJaYvzW2h+INf07G2Eyq0OfcrHkiO5GbyMxRaEKkx3LkcA7YpRCa9iA2mcWdxd9oeL0n8ZT0venctp6V8/yUsGleR09O/wDvAmUbjxjJxr5b7NUdz6qEZSMOotSNi5zxGjb9LWokatJ04hHGbDQTVmM5li9fQUeHwZn8Wbv0Ut8cnbFE5U8d7LZNbB/Fj384cvu3EG14TGfnzMhLebs3Sy9aek+afdryEEEKIf698OrDMpETcQB8QxI3QJEiL4U5AEPrAuxiyZ6xGA4F/aGk7pxsV8+tyS43h9qUg9AGZryvcuJ+MGbCp/BED2hTi9KDBzFt7At2x3/iptxdr7njSfUy9HL19BWWKu8PVjDrk2K+AIPT6SFIyM3+7cjSZuoLt9/XoDIEcODKLLu9k6/Fzqs30UD0n9rTCkUoMPnc5q+f611GVs26payt8xPcB5/DPHIpxYRUj2pWxfu+kgvpkDQuJ9efXE3vY/uOTw0IKvT6QpYEX0Bn0+AWsYvLy9fwWred00DJ6vpmtB9fGjTpfz2fDzSB0Bj2ngzcy9tOXcXj8WGndafnzCfyjdjHi3cKW9wDbv0qX4TVI+OULRk/fwdHtPzOjyxyuurWlb6sSGccjjbvrJzNt2gYO7j/GkbWLmDnrMpStgUfhx7aooD7qku8z7pfeJE7sxew/Hq9PJd5rWpTQZd+yfJs/gWeOsOHLmZwxVaJedeX7p6SdlRwvNG783/dr2HI18xy7wuE/FtKrQVHpnRZCCCGsrODfreYEAmbP4Hi5zxnWpsQzFKjGuVZjPAhi79GoR73ICXoO7IvEvm4TPOwLXEsLq1SU+vM3MXtoac5NGcTAjmPZaWjC1wdW0K1KRspruMD3DZrTbcAxkrnL+o9a06FWCzrUas6gH2+R2YFvjNKxfeIIBjTpwKfNB/PTlap0XzOf9hWtPDZbQX1Mobv4omYLOtT5nA23ci9GW/INapS9zoLWXZjp/wqt25pY16kPS27UZvDc/1FKC6gKU2vmJhZ/VQbdpP70/qAvM3dqab14JV81fCx5tCtP/SZuqO1epsG7JfJb4z1XmlJvUss9jYAtQZQas52Tt5bQzOjHkRsaXm5WmSdH1mhxfvk9uvapQsqJnVyIfuweyNPqY1OWtsunU+O3EYz88SrJj99CSYnk6h0z7i2a4emkAtQ4v1EfD9VN/ryczx2Xx2upoJ2VHC80TlR+rw6VHqxnfIdeDOo2hQOmpgzZPJWGrpI6CyGEENZkaR6TK2O4Lwvn9mXDhB5U2bMy9yCnFiy9r3/0c6IvAz364RenwaViMTBcISwue1d2CtHBkVCsHMVsgQRr1FQZTblWeH1SnMCvP2bKD+lJ58kTYbgFrOSzL95gc78/STAnEnn1GgllYkkjmcir17iuT32iLHP8NY5svpbx0wUu33KjWcvRNKjqwIYbcdartJL6pMVyLzgWbE1E5XPP35wSwZU/zxBQ5Bqm5hEEnjzOzU1XGTTuFUrYwn3XVgztU4TD3drz3Y4HmICzp2/g1OgA/fpUZ/YRP7JG5MSfZX6vWUTUieXAjxlDcyygLVYWF2K4GGHCxaMMdq5aShWK4U4UOJZxxVYFCRnZqrZSL36+OIaXAaIPMvmTjdx+fIP51kdL2Z6zGO6xg6Fdj/LQWPjJCqXdZUf/KdTdPZ6fL73Lgd+iqdrhDQKGf8KyAMsGUjytnUMTlB0vgJQbfhzedxwDxzlzsyINj3WgeTU7Dh95gR8cIYQQ4l/OKokz5hRCfL7Dd9D39G++k99zi3l8jHNaLHcNuQX+9ewq1aYCd9hwNCyr59gcE4DvRROt3nwdV5s/SVCYAWrdG9Bz5jDaN6lKSWcTcRHJuKAl3u7v3xtoNplJvylhxpRmArUKFWBXuS6VNI5UX38a/8ffZHDHXk224TyphO3zwXtfQWtj4IxXU1pOSOV+mCNtcolIu72VL+uco7RnTZp/MYLxR+aTWmcgu25nH6icd33U7s35epIHR3oM4FxsXn3HahzKelCm0B0OLtxFUNF38VQVo+6n7ai+ZQ5/PrB85H1e7fysUkODiMCJ4i4yB4cQQghhTdZJnAFztB8+i8NZN6odwbk9H5U5xjn+8f8wEnMzGhzdKVVYDfGZiYctRasUhwcXeWBpN6VVFCx5AcDWg0+2rGCg237me33LqZBEClX6kMlre1ujglbwlD00GTGankwEVSo1KsLZ0qUP64JzHhxTYjjRz/LUZh7SHtwhBhfci9tiTnlI6F2gUDnKuoLhTNSjMemQ/qDlRR13Luo4czyCsvrv6fVROfZ53+CJZ1+foKbo//WggUtx+PUMrXL83zwO3/4/+lT9irOa+ny9shvG6e8zasFN0ljF6nntmOs/iwlDd9J+wjMsWZ9HOz9J4RlpMmECVH//azMhhBDiH8VqiTOkELJ8Pn8M+Y6O9hq4oPR9JmL9D3ODgbRo6MrOjRHp45wdPHn/g+IknfYl5AXfbU66/gc3aU7dRqVYdDF9qIbKpRrvVVcTs+cCUdlyRXNKAqnYU8QxlyzFzoO61eDq2Fms2X4zvZx7HjzIbaNmI8mpUKiIfYEGnudbn0ymFBKSwc7VMd8TIHZHd97ZAaCmRLbfJ10/xQ2aU6uame92XH3KTA9aSn7Qky514vh93i8EPLQsqzaGncU/VEvLDq/jvPsYsWbQlqtPw4pGrky/Rp4TkZhNmM2g1qofSzfzqo+Jh7tH0LF29insnKizdD0jNLPo3XMngQmgqVSFl5wTCbkUlZWMp4XpOHMbanm6YgMWJ855tXMWhcdLCCGEEM9XPt/DKmxLVKBCSSdKu9uB1oWy1ariGRPHvSuPzayRwRR+iB/XRrN6QEkeWlCJ1KubWbKrL98uWMAQzXwO33ai5oDxdC93jWVdThDzDPM1F4Tx9i4WrfViwQwfxqvn8XuIEzW9RtLK+Tzec87lGG6dfNOfEFNH/jehD4FLLhBfuCzusYfYuj+MtOTbnL0KA/oNouO1TVwMTcam3KsUAaIe32jqA65dSUDboj89O6sIMLlRLNKX7b7hPD4jWn7yrU9mUNoDrpyPQdNpEJ9/auYPQwncYg/x64H7ittnwYr+LP5mLYvdfmDzfj0PcaZ0FWeCVmwgIPswB6daDF05khbO0CjxTzrNum7ZOOfEy6yfe46OM2czNXgKvwQUpuHYL/EM/xWv3RkXWdqSNBreEfebl7l5Pwl18ZeoP2AE79gEsXDnnZzby6c+xpjbXI3JHuxMuThAc5drV8JINAP3TnPqztd0mTOGj75Yi+6+LRX/N5TPqiZzbvZVLJ75Tol8jtfTe9KFEEIIYS35JM42lO+/nE2jymf8XIYxB3eC8QRDy/bkaGxu70kkcJEPgQPG4m5JLYzh7O/dGfvpE+m3YBU97MzEXDrAojYTWaF7LqlI/kzRHB/yMV9HTWHIuHm0djDyQLebOR9MfnJowr3dTBn0DtMmD2b6Vg0k3MFv+ll+3R8GyVdZ9fFwXLyH0G9tW1xsgLREokP8OXr/8fQxjj/HTWB75bH0Xr4Uku5xarqOXRYmzvnWJ0sC5yaNYWOVKXRdvIRPkkM5NU3HDoWJM6YYTo1oT/+Q0QzsP5xpfe2AZKLO72LWpk0ExGarcdItTvhG0LxFNMf8Ip4h0Uvj1pIBDCw8jdHDvJnvZCTqzy1Majk1Yw5nQG1PUY96dB4yiArFNGCO487J3/i++XesC3qs/7eg9Um4yMI2X6H2HsywnR1xBFLvX+bQ+N58u+n+M80trmCjBTteQgghhLAKlen8RHOrBj8T+g/runJoMJt9eyvhXaUj2+5ZkloKIYQQQghhOa3K1hnXUiVITQNj/AOi4//GSajKFhc3F2xUYO9asLHAQgghhBBCWEJlNpuzBqTem9OaduOfYVaAF8W5KT6hi3kr6xcXmewpPc5CCCGEEOL5U9VweOkFP3onhBBCCCHEP4+MdhBCCCGEEEIBSZz/CdRFeHPQOEYNqkohaxdd9E06zxhHl2p2Vi5ZCCGEEOLfRa0z6Ml87Z5cFdu/ukb5cW6KT7b66gxbaVda85w2pqbYh7PZF+vP0n4VePbFi61QjrYYb/b5lHYNS1h9AQxN8Xf4eEhn6rg/n6U11IU9eLt1Yzyd5RpNCCGEEP9saoK86f5yPd6vXI9us/TZHgy05aVxB9HlSFT16GJX0tA5482lO7HWoOf4hua4ZuZFKlda+gZxaFEt7AHQUmHEvifLMejZO+O1rERd5ejJh3PWsCtCj84QhK/fPHo1Kk6OtDjuKF9WSq9rm0/2Y3im0dnK6gNqHCp6UlLjjEcVlwJ0zVurnH8muzeH4r1hNA1KPq8LHAANRet9yoT9hzger0dnCOC3IzP5uGbhnO2tceWdUUvYFqZHZ7jMgUNT+V9V+1wWslbjWKMnP4QGs2WERx4XKxqcX29Fv2Vr2BJyEf87C6jj9Cx1z29bCvfrqZSU8/QY57brcv3c6Ax6dEEjqZp500JxO6fvv/O7X7A+Vo/uQEtcnnmd+7zKsVYbAvavM/Lq4/t+irG10//S4VSb6aF5tM/xzlj0EVDQhionT1p7r2VPZPo2jp//ieHtylne+aHkeFl0TIUQ4t9La06JJSosgsgn5nFO5daS3nTa5kTpHguZ2/cu05tP4VxMHPfic0Y6th5Hv3rHmXE8njxz2WQ/praYwQVD5i/MpEbcSF+1TVOCpss2MqVpMKuH9eTwLSdqeI1jyJ7V2NXrwOLzGYugmFOIuR8BgENUYsEWm8ivPgCkcWdxd9oeL0n8Zf1TlpXOj7XKEXmy9aDdrIG8pl/Nd10CeOj4Gv+bOpxRW1MIrjYOnQFAS/n+S1g0riKnp3+Bd4AzjcaNZeJeLfdrjs5aTMXGrSatvhjOoEF1cQVCctueyoGqgxfywzgPglavY9XgRdy4fZdrFi4N/9RtKdovK7WPgpj4g1/TsbYTKrQ5/ybEA8mR3ExW3s4ZDYnDm/1ZuPVT3Ao0MU4+5VirDQE09jg7mLkythvjD8Sm/60zp/DwesbC7wmXWNTqYzYVepRO2np8xESf9sTuOk+M4n1U0IYqZ+p4r2Vy6yB+7NuZw7edeMNrIiN/XkbC261Zelnp3EhKjpclx1QIIf7d8rk/byYl4gb6CC0poUmQFsOdgCD0jyXNGA0E+mtpO6cb6xssISSv9ZRTY7h9KZf3AzaVP2JAm0Kc/mww8zamL6Os8w+lqG4L3cfUY13ng9Zfdjuf+qjLdWVt0CSqZvxs+KU7zXqeyrHUNho3/u+7OQxqU52K7o6oMRFz6QCrvhjHqmPRmJSWA6iL1KDL9+Pp2bY6xQsBqXGE+vkwtP1i9EmP4mybf8+eh0Vwtknf1sph37DaL+bRBYSNG3WGj2XYwGa8XFxDyt2z7Jw6nu/XXCEhc5G9wq/SYfYU+nV5HVdNIqGXIikO3LKw+bQVPmLW7rE08nBEDRiu+bF1whgWbrubftfCqTbT9T/TIuPuxOBzlxmc8d6bU5rT8dtrjy5StO60XLmZKS2iWdumC94n4vK+AMtNylVW/l99VqamZrTFUc4l16HRz2/xhrsW3dU0sH+VLsNrkPBLb0ZPP0qsGfwu2/P6uS/o2+p7/lgbjgk7PId/y8B6F1jdZSRv+syk/BMbU+FUfzTeX6tYXK85m/XPeimkYFtK9sta7aMgxhR3h6sBAPn8TVDUzunUJd9n3C+9SZzYi9ltNzI9ty5gBedGvuVY0oZP25bagaJ2idw5f4nggFwyblM8d86e5U7mzzYV6Tq9LSXOzMLLO5CkHMEqinRcz/7pAfR8fSqXsy+QqqQN7SvxXtOihC77luXbLpMCBH45kyYdF1CvemF+vBz1qO757ZeibSk/pkII8W9X8JED5gQCZs/geLnPGdamxDMUqMa5VmM8CGLv0ahHf4AT9BzYF4l93SZ42Be4lhYxhe7ii5ot6FDnczbklVFqnKj8Xh0qPVjP+A69GNRtCgdMTRmyeSoNM8atKCoHB2p8+yNftoxl8+ef0qNRJ/p8PJ4VG/4k8vGLkOt7WNCjDwM/nsC+1PcYunkidYtk9G6pClNr5iYWf1UG3aT+9P6gLzN3amm9eCVfNSycfktV48b7y9cx5mMbDo8cxJCuk9l2KY1nGURhjNKxfeIIBjTpwKfNB/PTlap0XzOf9hUzSjNc4PsGzek24BjJ3GX9R63pUKsFHWo1Z9CPt3IudW1XnvpN3FDbvUyDd59tHLcpKzEC0FDUowRqww1CotK7+TSl3qSWexoBW4IoNWY7J28toZnRjyM3NLzcrDLpowySuDymOc0afMVq37Dc5zNXl6DxNx9RyuxG592nOWMI5Oj5lYzoUN7CW+QKtqVgv5RSUo41tqWsnQGbsrRdPp0av41g5I9XSc7rSulp54aCchTv11O2pXYuRRFtEklObrg6Pe1To8a19SgGvnOXVUPWcsOC6ytFbZgSydU7ZtxbNMPTSQWocX6jPh6qm/x5+bE7f/nsl5JtKT6mQgjxH2CVJ8KM4b4snNuXDRN6UGXPytyDnFqw9L7+0c+Jvgz06IdfnAaXisXAcIWwuOz9FilEB0dCsXIUs4UnumkLKs/6AGmx3AuOBVsTUU/5wku54cfhfccxcJwzNyvS8FgHmlez4/CRBGXlqGwoUsYZIgM54/sHFx4YAR3+uW0r+Hf2bj+GAfAP9eS9o/+jRXU7ThxLRF22FUP7FOFwt/Z8t+MBJuDs6Rs4NTpAvz7VmX3Ej+QKrejdyoGLQ/ozffk9TMCpy8Vp2WlwLlvLnzn+Gkc2X8v46QKXb7nRrOVoGlR1YMONODAnEnn1GgllYkkjmcir17iuz+N2RPxZ5veaRUSdWA78mH24zLNQ4VirH1PHlufCxIGcjE5PIbTFyuJCDBcjTLh4lMHOVUupQjHciQLHMq7YqkjvlTeb8+/tdnyZJm9piT6wC5/FxwmJL0z1PpMYu3oV5pAWeJ991K+ocSyMg406/aLFnEZSnIGU7Kf407alYL8Ub0thOcpjcqesnbWU7TmL4R47GNr1KA+NhfMuMN9zw4JylOzXU85DbWFnEu9rabpuP61UkBh8kFVfjWPZ7xE8cWlRyJNOE5qg2juY9ReTHv/ffClqw7S77Og/hbq7x/PzpXc58Fs0VTu8QcDwT1gW8Ngfm3z2S8m2jEo/O0II8R9gnakUzCmE+HyH76Dv6d98J7/nFvP4mOK0WO5aMr7Q2p5DfVJDg4jAieIuFsydYY7l5OjpHN0xjmW32nDhly1sW7aOPX5hpOTzZZQaeoUInClZxAZIxK5yXSppHKm+/vSTSbfBHXs1ULEWZbnLutORBb61qnVvQM+Zw2jfpColnU3ERSTjgpZ4u2e5iZFK2D4fvPcVsFKoca43iIU7vHD8qR+9f7ieS0+ugTNeTWk5IZX7YY60sXQLhd1xs4eQX9bz29GHAASPnECttqto0bUKi85eyBjH7kTtn07yQ6vMCQSvs6DGh6zI6+KhQPuldFtK2kdJjBJ5t7PavTlfT/LgSI8BnIt9WsaV97lhWTlK9iv/8zAlcCm9PZcCGgp71qX91NkM276CtFrtWR6Us60d3u5Bx5ci2d3/CFHZPmx2tSex07crxbN+U4u1kT3S/3lmLM3f28jDrP/L71xV41DWgzKF7nBw4S6Cir6Lp6oYdT9tR/Utc/jzQfZPuJLPl5LPRcE+O0II8W9gtTnIzNF++CwOZ92odgTn9k2b55hiIzE3o8HRnVKF1RCf+QfflqJVisODizwoWBdk7vIZ4/wkhc+Om0yYAFWeuWNu5ZhJDFjNsFf2Ua1NO9p0+4jR+wcw5Lcp9Ou2Bn1eXTnGNIyoUGvSy1Sp1KgIZ0uXPqwLztlgpsRwok1gZzZjRoVaXcBn4W09+GTLCga67We+17ecCkmkUKUPmby2d8HKLRA1RRqPxGf7p5gWfkav8X48zNYNmPbgDjG44F7cFnPKQ0LvAoXKUdYVDGei8r1Iyc6cloIRcCrphIaH6T2NKRHcioT3yrmghYzEOZFLE3vRb7FN+lE3xnPzrsIxyRbsF4q3paQcJTH5e3o7qyn6fz1o4FIcfj1Dqxzvnsfh2/9Hn6pf4f/Uz6Ul5RR8v3IyEqc/zmqvidT9YAEffliWVUEh2YYfOVGt9wcUvbuFrbrEHO9MvvADfd9Zj40KnJt9x4/DrjK2/VKuJoE5IZRII6DgXFW51Ofrld0wTn+fUQtuksYqVs9rx1z/WUwYupP2E4IUXfAo+VxY67MjhBD/BlacvDeFkOXz+WPId3S018AFpe8zEet/mBsMpEVDV3ZmPByIgyfvf1CcpNO+hFh7mIbiqqWQkAx2ro4FaygF5ZiTw7n4y1Iu/uLDggbfsHHfKIb933YG7o5RtImk66e4QXNqVTPz3Y6ruc7ekRnToGkZFl+4/uxDIuw8qFsNro6dxZrtN0kDVPc8eJDbfqUkkIo9RRzz64nWUvKDnnSpE8fv834h4KHl/eHaCh2Z+UtPtIt70XOcHzGPFWEMO4t/qJaWHV7HefcxYs2gLVefhhWNXJl+DaU3081x17kUBu0/qI7L0js8MIHKsQKvlIbwTfeztamRmMt/8sdli3fFov1Sui0l5SjbVv6e3s4mknePoGNtx2yXkU7UWbqeEZpZ9O65k8Acn/e8zg0TDxWWo3y/LDwP1Y/O6RyXoo5VadHEmaitewh57MQyJ4Zz41I4oKLIKwaMyVHcvBSEPnt+reBc1ZSowkvOiYRcispK2NPCdJy5DbU8XbGBbIlz3vul5HNhstJnRwgh/g3yyQdV2JaoQIWSTpR2twOtC2WrVcUzJo57V+5iyOU7xRR+iB/XRrN6QMlstxufLvXqZpbs6su3CxYwRDOfw7edqDlgPN3LXWNZlxPWn1FDqbQHXDkfg6bTID7/1MwfhhK4xR7i1wP3sajvML9yVM68PWEk74b7cfrcbWKNTlRo8gouGIh4qPwmufH2Lhas6M/ib9ay2O0HNu/X8xBnSldxJmjFBgJizRhv72bRz4NYOGU13zl68+vJ++D5Ki6Wtkvybc5ehQH9BtHx2iYuhiZjU+5VigBRj4fe9CfE1JH/TehD4JILxBcui3vsIbbuD3vUhk61GLpyJC2coVHin3SaZWlS70jNsV/xTuIevtnyALdXq+IGgJnUqFvcDE3EnHiZ9XPP0XHmbKYGT+GXgMI0HPslnuG/4rU7ImvoisrejQqVimHjVB5nG7Bzr4RnNRviQ0O4HZUKiUFs/jGYzuMnMX5IIsuPpfLa0Ek01Prz7VrLhjU8dVtK9sta7WOtbSlp55jbXM1xPehMuThAc5drV8JIzL6hfM4No6JyLNiv/M5DlRPVh/TjreiLXLkVj6p4FRoNHE5tmyss2n03x/lqU64ONV2TufTb9WdLKhW0oeneaU7d+Zouc8bw0Rdr0d23peL/hvJZ1WTOzb5Kjn7u/PZLyfFS+NkRQoj/gnwSZxvK91/OplGZk2SVYczBnWA8wdCyPTkam9t7Eglc5EPggLG4W1ILYzj7e3fGfvpE+i1YRQ87MzGXDrCozURWPHar88VK4NykMWysMoWui5fwSXIop6bp2HHgvvXKUReikKYkDUbNoYdr+pP6iXfOc2h0f7xPWrDvphhOjWhP/5DRDOw/nGl97YBkos7vYtamTQTEGsH0kBNDPmLEvXEM7Dcd71FqIImoID/Oh1lwKZB8lVUfD8fFewj91rbFxQZISyQ6xJ+j9x8bJnJvN1MGvcO0yYOZvlUDCXfwm36WX/eHPQpKusUJ3wiat4jmmF+EZRclALbu1HzbBVw/ZNrhD3P818NVnWnp5U8iadxaMoCBhacxepg3852MRP25hUktp+aYh7bQ64NZ7tuZYpm/8FrCOi8IGdeMTt+HkEYK177vzVD7KYwY5cPqaWC4sp+FrcfxS4hlNX/qthTtl5Xax1rbUtjOir2Qc0PBttT2FCv1Oq1H9GZIcRvAwL3TB5jXaiZrAnNeLtmWfx13wth3I78WM5NwZinTvonm3hNXWwraMOEiC9t8hdp7MMN2dsQRSL1/mUPje/Ptpvs5k9l821DJ8bLyMRVCiH8wlen8RHOrBj8T+izDL/9CDg1ms29vJbyrdGTbvQINWBRCCCGEEOKptCpbZ1xLlSA1DYzxD4iO/xsnoSpbXNxcsFGBvav9f275aiGEEEII8ddRmc3mrHtt9+a0pt14ZU9j/yWcm+ITupi3sn5xkcme0uMshBBCCCGeP1UNh5dkkJoQQgghhBBPIaMdhBBCCCGEUEASZyGEEEIIIRRQ6wx6Ml+7J1fF9q+uUX6cm+KTrb46w1baldY8p42pKfbhbPbF+rO0XwUsWETbsq2U68r6bPt0fGUdHJ7TtsRfx7HBLA4bDjGo2t/6EyaEEEKIfKgJ8qb7y/V4v3I9us3SZ3sw0JaXxh1ElyNR1aOLXUlD54w3l+7EWoOe4wqvR8QAABQXSURBVBua45rZd61ypaVvEIcW1cIeAC0VRux7shyDnr0zXstK1FWOnnw4Zw27IvToDEH4+s2jV6Pi5EiL447yZaX0urb5ZD+GZxqdraw+oMahoiclNc54VHF5bl3zprDdfPV2azrV92Lj7QIUpClF+2N6dP6fUyEjy3ds+B1HDOf4tpGk4mBH+Y5fM/fUSf406NEZLrD392m0r5595TkNRet9yoT9hzger0dnCOC3IzP5uGbhR8f/mdrZkdd6vIdLyA5+02d79Nb+dUZeffw8PMXY2vZZIWrn6nT22crBWD06wyV+851Gu9ccclm8XY1jjZ78EBrMlhEeOSdol3NDCCGEsAqtOSWWqLAIIp+YxzmVW0v+v707j4uq7AI4/psFZJ1RERQV11wqM81yoTBLS1xTS17XhMxUNFNbLBOzNM19zQ33LfRVc8s9UkNyRwEDQUEQRURAkGEZmJn3DwHZRFDM3jrfz2f+YDz3zvHx+uHcZ859nsG4/WxD9UGLmDfkOlNdJ3M++S43UgtGWnfzYqizH9P8Uh+8u1imP1M6TSNQl/uGiaz4q/d2sFLZ02HFZiZ3CGPdaHeORNvQzNOLUXvXYeH8Lksu5GwkYNKTHBcPgFVC+uPtWFVSPgBkE7NkID38qpL6Z3ixW1iXi6xkYv5MBnM9tx9n71ozO+rYAzW74eK0kqgIcxr1dUGDJdVr2aAk7V++w1c2BrUF8bvn8+XE62TbN6PHpFF4bdUR2mwqf6YD5nXpOWMEz4evY2bfYO5YP887U8bw5XY9YU28CNDxaONs+yLvdNYSs3QvUfkvJJUlGisTlyYMYOKhlHv/d0x67kTkXAgqBzqu3si4186z3L0vfrer84bXFCYesCLxxU85mnDvk8wcmtPl0zGMHNkGOyCy8OfLtSGEEEKUixImUk3o468SHhzK1dgMyE4mJjiU8JBC220bdIScUtNj9gDqlPQtdFYy1y6GEh6c+7rE1bhMTIBZ/fcY3r0CJ0d+zPyNxwn4/QCrB3uyPqYBA8c7oy06vfb4Ssgnr30i5Sw7ju9l5/Ji2idUDrwxZz3bLp/nrC6cAN0ljpxahIdLpQKDqq79HnOCc2PC8Qtcy9ieNcq/JcbMjlrWURw5U4WOb1dDZdWYTi6p+J24Q8WGdvdnIM0caP3FAnyiQgnQhXMybDMT3m+EVc4YV2g6gmUhgQTowvEPXst3K3/iQFI4J0NX4P5SvtlZCyfaT1nFzrhwAnQhHDo6g74tC87MKx2ccV/kzYbgU/gn58yoJv/O9M4VUQBKx16sTg1n51fP3G+FUdXA7Xg4Ab7vYl9gIB3pvOE4ZxP2MPZV22JmXB8mm+s/fcf33/vw68HfObpxMdNn/Ak1m1HXNuds+suseeM1+nj8yM7dRznqs4RvP/8Do8PLvOioLts452P9cm9ctNHs2xZZcKlHpRWVLNKJuXCRsNzr8GIE8Tl7TisdXOjrakmI11cs236GoGO7WPTBVC5W6ox7pyo5Y21BgzE/MMI5jnV9x3E0tejnP0rOQgghhCjq8TsQTGkEz5qGn9NHjO5u/wgnVKJp0Y66hLLvWML9ma+0cA7tv41lm/bUtSzp+PJnjN3Dp8078W7rj/CJfkCQyob6b7amXuJPTHzXg5EDJnPI2IFRW6fQ1u7+KBgSAtg5aSzD27/L+64fs/pSYwauX0CvOuXbm620rkJl82TOrDhFFTcXnF7oSsuUXRwI0WNdQ3OvOFLY0mL6FpZ8XoOAb4cxuOMQpu9W023JGj5ve68YVVd9kWY1I1jYrS/Tzz5Ltx5GNrl9yNKrrfh43jtUUwPKSry2YAuzPqnO+ckjGdF7Art17fni0CoGNLx/S2BWox19PFxQHVjIt33dGeI6iI8Hfc/mc3cxAcb4kxwIhFpdWlIlZzgUmmdp+yxE7jlHUv4bNItavNbeAaVFI1xetX/MYk+NptGb9PuwIfrjuwlMuv89iTErK9/sq4pKde1R6q4SmWAo/TgXYEtT99exjdjNwcsFV0hXaqpRUZ1Bho0DdjZFrwelVSWsMJIal5qXk/H2nwTGKqnVMvfmK4M/x7vytsvnrPO9Wewa7GXPWQghhBDFKZfWXcMtXxbNi6XNN4NoaPmAuUCbTiyLy9fLeXsZzrYAKrR1KoMulpt381dKepLCbkNlJyo/ieepHpgPkJ3CjbDLRFyKIuEhPRr6q/4c2e/H8Z83MMtzA7dsnHFtYpH356bUKxzd6supE4EE/b6fNZ/9SJjiOVwal29vqaqiIxpVFgn+mzlXtTd9R7RF99+DRN01Yl1NixpQ1uzCJx9W5MjgIcxcdYRzfkfY/uWn/BhShbc/fCFvVt2kj+fS6TMc2XkFY3Y8IX/4sXfLZXB6FntzUDl1wbN/FUK+/IjJiw7gv3cbC/uO4peUpnzw6YuFZufvcHHLVg7sPc6Z3/3x27GfczdzNqzJjsPvp1B4sTuvVL1XOFo0fpPnK8Ti99sNCnQPpZ5jgccM1s2cgNfy/C01ZaOu54GPLoSj5xYzsMZRfvDczLViT6bAusVQpkyoReCUmfyRU1yXZpwL0DSjR0dbrm3eS3Sha0ltqyE9Tk2HTQc5HBeKf8BShnawz+vrz449zelYJS+NHchLVc1QKCugrVMXuwqgtlTfn3U3mR7cIvUoOQshhBCiWOXzO9OkJ9J7Jr4j5zDMdTeHi4sp3FOcncJ1XXGBf5EnkE9WbCjx2FBFe38NDrWjC+7TR9OrfWOqaozcjc9Ei5pUi/J93FClccBGlU1m4gV2+DuxvF888yZfI6O/AaWNFgslZNdvQz2VNS/8dJKzhU+gc8RSCen53jIZTdy7tzJhzDaCUoECsKjXitrE4HPsZl5xa0oOxjfISJeXmmJndpq0UlW22cTu9OHiNC/eecOOPRvvULNDKyrGH+XXS4XvWLK4ud+bufsfZXTyfeK17XzW+jzVGzTH9dOxTDy6gKzWI9hzLf/uk0o0ziNZtMsT69VDGfxjRN5MbmnGOSXv/k+BbWs3XrWNYsO2q0Vmg/UhyxjcYBmgwrZBG3pNmcXonavIbtGLlaFZkBbEkoFzqb1xDCsjPsk56l6eMdEplHa/zLLlLIQQQogHKbfJJlOSP95LbrHpy56EFfd9cW5PcZEeTAPJUUlg7Ug1WyWk5v4GN6dSwyqQGETio04vluSB+RSnlB21RiNGQJFbE5vXpf+2VYxwOMgCzx84EZlOhXpd+W7j4EfLuQQqazssTXqyDToCxvWh38JMoq7oqZqRjcJKSwUV6BRKFNxiW98P2RRWcFCN6bdIMoJFgTcNGIwPqqgUj9BnXJTh+iF8/Cbw7ZA3cdjmT8uuTiQf/oXLaeVw8uJkJRMTFEBMUABn/OKpGT4Hj/ec2D/3as5NgJKK7cbhvfN9jIs+wGOiP3fyVailGee8vgqFhhfd22J9eQWHrpS0kb2Bu+F+rPOcRJuOC+natSZrQyPJxkjKH4vxrL8CbY1qaJRppNcZjc++TgT9HlNsW0ZxypSzEEIIIR6oHKc99USuXMApp4H0blKW/l0jKWePcJXGdGprdz8hqwa81bEKGSd9iXxSRdRDU9OTlgkWdtaPdodhUZc2TeDyghms33makMBgLvhdJLG4WJOBzCyoUNHykf5RVLYVsTBmYjBBdmIEIYHXSTOaMGYaUFposFBCRsQJruJAiyYmrodeJiLf62pU0RnMlF0Daek4mlOFbi4yIk4RRQ3avF4tb1wU2ia8+YKS5HOBJJTlRscQz7HZB9C94kEPl3Z0apzMsbVBFJ38V1O144eM/uY/NKlYTpetyYjJBEq1Mu8mQF27N9P/6456yWA+8ipYNEPpxjmXQvsSvTpYEe2zj+jSVLnK+wcXuCkx6UmOieb6HSfcZrphd8WH9adK//VIWXIWQgghxIOVUA8qMLevTe2qNlR3tAC1lppNGtMg+S43LhVaWSOH8dZvLN+YxLrhVblThiSyLm9l6Z4h/LBwIaNUCzhyzYbmwycy0OkKK/oeJ/mR1msuB9mJXLqQjMptJB+9b+KUzh6HlN/YcSiOIqv3FSfzGucuw/ChI+l9ZQtBsZmYOT1HRSChcGxWIlcupaHuNAz3PgqCjQ5Uvu3LTt9bpfhKXom51hKFIaFQXiYMWQaw0mKhAsO1PSxcNYwlX29kicOPbD0Yzh00VG+oIXSVD8EppRtow7U9LN7oycJp3kxUzudwpA3NPcfRRXOBubPPU7b7HBMpft5si9rBYO/PUCftYU5AMUWhTQs+WTOOThp4Pf00bjMiytbnrK7K62N64xj1J1FxGSirPMNrw8fS0iyURbtjcs5lTfMJn9MyfS9fb0vE4bnGOOTkmJUQTVRsZqnG+R4FGmc32lhHsurnqKK5Kmx4YdRQXk4K4lJ0KooqDXl9xBhamV1i8S/Xc+KVWDo1pEH9WtRv3Y6uw3rzUoXjzH5rEaH5Bllh6UDtepUxs6mFxgwsHOvRoIkZqbGRXEswlCFnIYQQQpSkhMLZjFrDVrLly1o5P9dg/K+7wXCcT2q6cyyluGPSCVnsTcjwCTiWJQvDLQ4O7oPl1EkMXbiWQRYmki8eYnH3SawKSH/48U9MGue/Hc/mhpPpt2Qp/TNjOfF9ALsOxZXu8MzLrP3PGLRzRzF0Yw+0ZkB2OkmRZzkWV7iUustpr2/YWX8Cg1cug4wbnJgawJ5SFc4KLLQVUBiyMBSqfQ16A0qrnFlFYzInxvZiWORXjBg2hu+HWACZJFzYw4wtWwhOKWXXrDEJv1H/4YuEyYzymk83KwOJAb8wu+N3RVpASiU9FJ/vT9B/eWti520guLj2mYxojvvG49opid/940t345Kf0pJKdZ3pM2oktSurwHSXmD8OMMd1JptCc6aDzR1p/ooW7Lry/ZGuBQ6/s7YPnT3Pl26cARRamnu8ikX4Ug5HFDMmSksqV2tKt7GDGVXFDNBx4+Qh5neZzvqQ3OnpCjQct5o1HrYkhgVyas0XDFiwi4uJBf+dKjT9mJW+faic+4bnUjZ5QqTX27jNiS59zkIIIYQokcJ4YZKpi8sGYstciTxdVi6z2L+vHnMb9ubnG6V9TEr8XVm+8jXbD7zMhld6s/HK/9nFWAxF5beYH7YYp5muuE2/8sirgAghhBDi70OtMNdgV82erGwwpCaSlPo3LkIV5mgdtJgpwNLu0XqBxd+HUlOX5xvZoLR/hf7zBmBc/T47Iv7/i2ZQoHVxo5VlJN47oqVoFkIIIf4h1DQew/pLYwC4MbsbPSeGlvpp/b+cbVtmRSzh5bw3gp5iMuJxWTYbxux9vbDPjidozTiGfX0a3dPqZy9Pikq08HDGPGwRhyOlbBZCCCH+KRTNrJ75J5QqQgghhBBCPFHS7SCEEEIIIUQpSOEshBBCCCFEKSgDdOHkvn75rjHmTzujkmg64J0v3wDddnpWl0VohRBCCCHEk6ckdC4DGznzVn1nBswIz/dgoDnPeP1KQIFCNZyAlDW01eQcXN2Njbpw/Hxcsctbv9aOzr6h/La4BZYAqKk9dn/R8+jC2Tft+bxCXWHdgK6z17MnPpwAXSi+/vPxeL0KBcriu8f4rN69XLv3P/jPeJBMCCGEEEL8X1Cb9Ckk3IzndpFVwLKIXjoYt59tqD5oEfOGXGeq62TOJ9/lRqENKqy7eTHU2Y9pfqk8sJbN9GdKp2kE5m0KZyIr/uq9pbpU9nRYsZnJHcJYN9qdI9E2NPP0YtTedVg4v8uSCzmboJj0JMfFA2CVkE4xmxcKIYQQQgjxRJSwc6AJffxVwuPV6GMzIDuZmOBQwgvv6mbQEXJWTY/ZA/jJZSkPXH0rK5lrF4s5HjCr/x7Du1fg5AcfM39zPEYg4GwslQK2MXC8M5v6/Pr0tt0WQgghhBCC8ng40JRG8Kxp+Dl9xOju9o9wQiWaFu2oSyj7jiXcn0VOC+fQ/ttYtmlPXcvHzlIIIYQQQojHUsKMc+kZbvmyaN4QfL4ZRMO9a4oPsunEsrjw+z+n+zKi7lD876rQ1qkMukvcvJu/+UJPUthtqOxEZXMgrTwyvU9lbYuVmRIFgCmbjLs69EaJkRiJkRiJkRiJkRiJ+bfGPEz5LEdn0hPpPRNfbT+GudoVf9JMf6a82Q23Vjmv177lvK64wL+CDa1W/8Gx62c4ev0MR29sZ0B9M4mRGImRGImRGImRGIn518Y8nMJ4YZKpi8sGYos8HJhLTe2xe9gxPgLPOp78ka9HWVndjfUhowls/ybTzxip/9UuNvU8wlq9O70D+9PZ8yzpucePC2No/VGcKtLjrMSunw+HvVVMeqY3O2NzS39LXpjvy7qev+Hx7PgiRbaVyyz276vH3Ia9+fmGoYx/bRXa516iUVWze3cdhlSizgRxM80kMRIjMRIjMRIjMRIjMf/KmIcrx8I5A6VDZ+ZfmEkTS3PY1KeUhTOYNfJky7kRxH3QDs+chwOxasrYc9voHTQcV7fDRR4OfLzCWQghhBBCiLIpoVVDgbl9HRo0aUwdRwtQa6nZpDENnq2B9QOOMt76jeUbk6hYxpnvrMtbWbpHT6uFCxnVz5lmLm/jsWIxA52usGHqcVlRQwghhBBCPHUlPBxoRq1hK9nyZa2cn2sw/tfdYDjOJzXdOZZS3DHphCz2JmT4BBzLkoXhFgcH98Fy6iSGLlzLIAsTyRcPsbj7JFYFpJflTEIIIYQQQjwRpWjV+HuSVg0hhBBCCPFXUivMNdhVsycrGwypiSSl/o2LUIU5WgctZgqwtLMspyVBhBBCCCGEeDiFyWTK6yC+MbsbPSeGon+aGZVE0wHv2CW8nPdGEN81kBlnIYQQQgjx5CmaWT0jj94JIYQQQgjxENLtIIQQQgghRCn8D8nToJ0MUk5AAAAAAElFTkSuQmCC" alt="" width="557" height="173" />
会在java文件夹下面的core/target文件夹下面生成protobuf-java-3.1.0.jar文件
2> 在windows下面,与在linux中放置文件的位置相同,需要放置好protoc.exe程序文件,之后直接利用eclipse程序进行编译即可
右键点击java文件夹下面的pom.xml文件
3、其他说明
为了加快maven的编译,可以将maven的源换成国内的
eclpse可以点击【Window】菜单——【Preferences】——【Maven】——【User Settings】,在maven的仓储位置.m2文件夹中添加一个settings.xml文件
linux下类似,直接在.m2文件夹中添加settings.xml文件
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- mirror | Specifies a repository mirror site to use instead of a given
repository. The repository that | this mirror serves has an ID that matches
the mirrorOf element of this mirror. IDs are used | for inheritance and direct
lookup purposes, and must be unique across the set of mirrors. | -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>aliyunpublic</id>
<name>aliyunpublic</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>public</mirrorOf>
</mirror>
<mirror>
<id>centralmaven</id>
<mirrorOf>centralmaven</mirrorOf>
<name>centralmaven</name>
<url>http://central.maven.org/maven2/</url>
</mirror>
</mirrors> <profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
里面的几个地址相似,都可以用,可以随便换位置,并非固定在一个地方,这里只是举例。
编译protobuf的jar文件的更多相关文章
- 编译生成protobuf的jar包
编译生成protobuf的jar包 配置maven 安装maven,并修改maven源为阿里云 下载maven wget http://mirror.bit.edu.cn/apache/maven/m ...
- Xamarin.Android 入门之:Bind java的jar文件+Android显示gif图片
一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bi ...
- 将Maven项目打包成可执行jar文件(引用第三方jar)
方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build> ...
- Java加载jar文件并调用jar文件当中有参数和返回值的方法
在工作当中经常遇到反编译后的jar文件,并要传入参数了解其中的某些方法的输出,想到Java里面的反射可以实现加载jar文件并调用其中的方法来达到自己的目的.就写了个Demo代码. 以下的类可以编译生成 ...
- 基于 maven 实现跨平台编译 protobuf 文件
基于 maven 实现跨平台编译 protobuf 文件 mavne protobuf .proto 跨平台 需求 在团队协作中使用 protobuf 时, 有以下几点需求: protoc 跨平台 ...
- 多个java文件编译并打成jar包经典方法
首先,多个java文件的编译 find . -type f -name *.java > compilelist (.代表当前路径) javac -cp "$CLASSPATH&quo ...
- ant利用先进,ant订单具体解释,ant包,ant包装删除编译jar文件
在日常的项目开发,经常需要我们可以打包测试.特别是,开发环境是windows.实际情况是linux. 这样的话.一个非常大的程序猿将包,其中将包,这些软件包可能非常大,这里是真正的代码会改变的一部分, ...
- 转:关于将Java编译过的.class文件打成jar可执行文件/JAR详解
原文链接:关于将Java编译过的.class文件打成jar可执行文件/JAR详解 如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像. ...
- CFR - another java decompiler批量反编译jar文件
jd-gui众所周知,业界公认的反编译必备工具. 笔者目前遇到一个java项目,社区版,想做一个本地化的版本,询问官方,官方说闭源,无奈之下只能反编译了. 面对那么多jar,jd-gui一个个去反编译 ...
随机推荐
- ABP源码分析三:ABP Module
Abp是一种基于模块化设计的思想构建的.开发人员可以将自定义的功能以模块(module)的形式集成到ABP中.具体的功能都可以设计成一个单独的Module.Abp底层框架提供便捷的方法集成每个Modu ...
- HTML中的拖拉框----在路上(29)
拖拽框---当鼠标按在指定的区域才可进行拖拽 思想:只有当鼠标是按在一个大div里的小div才可拖拽,其他不可:拖拽框有多种方法,这里以其中一种分享:下面使我自己写的demo,简单有效. <!D ...
- SQL:插入指定标识列的数据时候的小错误
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 后期会在博客首发更新:http://dnt.dkill.net 好久没写标识系 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- <!--[if IE 9]>....<!end if-->
1.页面里面经常看到类似[if it IE 9],表示的是限定某些浏览器版本才能执行的语句. ! [if ! IE] 含义:如果不是IE It [if it IE 9] 含义:如果是IE9 Ite [ ...
- 难道.NET Core到R2连中文编码都不支持吗?
今天写了一个简单的.NET Core RC2控制台程序,发现中文显示一直是乱码.查看操作系统设置,没有问题:查看源文件编码,也没有问题:甚至查看了Console字符编码相关的注册表,依然没有发现问题. ...
- JavaScript -Array.form方法
Array.from方法可以把一个类数组或者课遍历对象转换为一个正真的数组 语法 Array.from(arrayLike[, mapFn[, thisArg]]) 参数 arrayLike 想要转换 ...
- C++服务器开发之基于对象的编程风格
Thread.h #ifndef _THREAD_H_ #define _THREAD_H_ #include <pthread.h> #include <boost/functio ...
- GDB调试命令
1.查看源码: list [函数名][行数] 2.暂停程序 (1)设置断点: a.break + [源代码行号][源代码函数名][内存地址] b.break ... if condition .. ...
- angularjs之filter过滤器
现在公司用ionic,就是基于angularjs封装了一些api用于webapp,最近用的angularjs的filter确实省了很多代码,现在总结一下! ng比较鸡肋的过滤器,这里就一笔带过吧!鸡汤 ...