
{"id":4117,"date":"2023-06-07T07:50:57","date_gmt":"2023-06-07T07:50:57","guid":{"rendered":"https:\/\/test.opensource-db.in\/wp1\/?p=4117"},"modified":"2023-06-07T08:32:54","modified_gmt":"2023-06-07T08:32:54","slug":"multi-tenancy-on-postgres","status":"publish","type":"post","link":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/","title":{"rendered":"Multi-Tenancy on PostgreSQL : An Introduction"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"has-text-align-left wp-block-heading\"><strong>Introduction:<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:500\">Multi-tenant architecture, more commonly referred to as multi-tenancy, is a software architecture where multiple instances of an application run on the same physical server. The same server is then responsible for serving multiple tenants simultaneously.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">This type of build allows companies to allocate a single infrastructure to several end users, rather than individually managing the maintenance and updates of multiple environments.<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Multi-Tenancy Works:<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">The term \u201ctenant\u201d is used to describe the group of users or applications that share access to the same hardware resources. In a multi-tenant architecture, all users share access to the same infrastructure resources that could facilitate collaborative work such as memory, network controller, and access to system resources.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">It\u2019s used often in cloud computing, enabling service providers like Amazon Web Services, Microsoft Azure, and Google Cloud to offer a more affordable shared-tenancy option on the public cloud. However, it can also be utilized by software-as-a-service (SaaS) companies or companies with internal software that needs to be distributed to employees in various departments and physical locations.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">Multi-tenant architecture works by utilizing virtual machines (VMs). On the same physical server, they\u2019re able to create multiple VMs that all share the same hardware but operate as separate computers in complete independence from one another. This guarantees the user\u2019s security and privacy, especially if the cloud environment is shared with foreign individuals and entities.<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Importance :<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\"><li>Multi-tenancy has seen a lot of could adoption and is used most with cloud computing.<\/li><li>Multi-tenant architectures are found in both public cloud and private cloud environments, allowing each tenant\u2019s data to be separated from each other.<\/li><li>Multi-tenancy is also important for the scalability of public and private clouds and has helped make multi-tenancy a standard.<\/li><li>The multi-tenant architecture can also aid in providing a better <strong>R<\/strong>eturn <strong>O<\/strong>n <strong>I<\/strong>nvestment for organizations, as well as quickening the pace of maintenance and updates for tenants.<\/li><\/ul>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Key Multi-Tenant Database Consideration:<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">When it comes to designing the database layer for a multi-tenant system, there are a core set of considerations you should take into account as you decide on the approach that best aligns with your PostgreSQL Server strategy.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ol class=\"wp-block-list\"><li><strong>Security : <\/strong>Data security is critical in all systems, but in multi-tenant systems you have the extra dimension of there being multiple tenants&#8217; data present in the environment, not just a single, isolated tenant&#8217;s data. If you have a multi-tenant software offering, it&#8217;s a fundamental requirement that one tenant should not be able to see or interact with any other tenant&#8217;s data, and customers often look for assurances before signing up that their data is secure. If they can see other tenants&#8217; data, then that&#8217;s a surefire way to lose customers and trust. That will cost you a lot. You could also open yourself up to fines for violating data regulations.<\/li><\/ol>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ol class=\"wp-block-list\" start=\"2\"><li><strong>Maintainability : <\/strong>You have a single-tenant system. You have a plan for taking backups of the database on a given schedule. You have some nightly jobs that perform maintenance tasks such as index rebuild\/reorganization or data integrity checks to keep the system performing in its prime. You have a strategy for rolling out database updates. Maybe, just maybe, you even have a High Availability\/Disaster Recovery solution set up.<\/li><\/ol>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ol class=\"wp-block-list\" start=\"3\"><li><strong>Scalability : <\/strong>There&#8217;s a clear difference between having 1 tenant with 10 million rows of data and having 1,000 tenants with 10 million rows each. That single month-end report is now going to run 1,000 times over. Knowing how many tenants you&#8217;ll have is also an unknown\u2014as a business, you want as many as possible and to be able to add more tenants over time without negatively impacting the performance of the system.&nbsp;<\/li><\/ol>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<h1 class=\"wp-block-heading\"><p dir=\"ltr\" style=\"line-height:1.38;margin-top:12pt;margin-bottom:12pt;\" id=\"docs-internal-guid-23f73614-7fff-6f04-b043-a57070a8f51d\"><span style=\"font-size:17pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;\">&nbsp;<\/span><span style=\"font-size:17pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;\">Single Tenant vs Multi-Tenant<\/span><\/p><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Single Tenant<\/strong> \u2013 <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A single instance of the software and supporting infrastructure serve a single customer. With single tenancy, each customer has his or her own independent database and instance of the software. Essentially, there is no sharing happening with this option.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Potential benefits of single-tenant include:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Security: A single customer and a single server is often contained on secure hardware being used by a limited number of people.<\/li><li>Dependability: With an entire environment dedicated to one client, resources are abundant and available anytime.<\/li><li>Customization: Control over the entire environment allows for customization and added functionality, if desired.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Multi-Tenant \u2013 <\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Multi-tenant means that a single instance of the software and its supporting infrastructure serves multiple customers. Each customer shares the software application and also shares a single database. Each tenant\u2019s data is isolated and remains invisible to other tenants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Potential benefits of multi-tenant:<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Affordable Cost: Having multiple customers on the same instance means that the cost for the environment is shared, and those savings could be transferred to your customers or end-users Integrations: Cloud environments allow for easier integration with other applications through the use of APIs.<\/li><li>\u201cHands-free\u201d Maintenance: The server technically belongs to the IAAS provider, meaning that a certain level of database maintenance is handled by the IAAS provider, instead of you maintaining the environment yourself.<\/li><\/ul>\n\n\n\n<h1 class=\"has-text-align-left wp-block-heading\"><p dir=\"ltr\" style=\"line-height:1.38;margin-top:12pt;margin-bottom:12pt;\"><span style=\"font-size:13pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;\"><span style=\"border:none;display:inline-block;overflow:hidden;width:602px;height:452px;\"><img fetchpriority=\"high\" decoding=\"async\" style=\"margin-left:0px;margin-top:0px;\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwMAAAJECAYAAABKCPhDAAAgAElEQVR4Xuy9C5gdR3nnXaPLzOg+o4tvGEu+EDCBtQTYsIkJFlkugXxB2kC4PkF6QjAGvtgODqyBrK0vQDABbPOBbdiwFt\/GYFizFgQTAxvkrO08BExkAyFgW7Z8l637da7SfPV2nzpTp6fPOd3ndFX36f41HM\/oTHdV96\/eqn7\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\/mDjHhx56SL361a9W27dvV2eeeab6\/ve\/r84444zE13MiBFoRQAxUwD6++93vqte\/\/vXBk775zW9WN998cwWemkeEAAQgAIGqErjrrrvUH\/zBH6h9+\/bVEbzmNa9RN910k1q2bFlTLPJ+fO9739twXVa9+N2IAXmel7\/85fX7vvPOO9X5559f1eLluTMmgBjIGGg0OXHE3\/GOdwQNizREt99+u+McZyb\/qU99Sn3oQx8K\/pDXPXh\/aDKEAAQgAIHKErDfezaEVj3ye\/bsUcuXL5\/BLKv3ZisxcO6556p77rknyPvee+9V55xzTsN9tBoZqHKHH6FX2VRxxEAHHKXBuOWWW9Stt95aH\/IbHh5W5513ntqwYYN6y1veUk812iBNTU11kGN3l7gWA9EeiyR3G9fYJbmOcyAAAQhAAALtCDQTAxJi8+CDD8ZeLqMCb33rW3MRA319ffV80\/b6u37Ht2Od59+7GW3J876LljdiIGWJiBAQ4zMKPu5yuyJXYWSgEzGQtrFLWUy5nd6udye3GyNjCEAAAhUiYDvIL3nJSxre2c3eP3b7bV\/jY2QAMdCZcSIGOuMWvQoxkJKjxBJef\/31La8qmqPrutegEzFQ1pGBbhr0lKbI6RCAAAQg0IRA9L0nk23Nu\/uiiy5S1113XcOV9913n1q9enXwnYwevPvd724aXnvWWWcFE3nliL7L7HREUPzkJz+p5xPnuLbzKUz6EiYk6UnIsUQi7N27V8l3cq\/NjugcQenM\/OxnP6u+\/vWv1+\/fPOuf\/MmfzJhLYcSRSUdGTj7zmc\/UhZV8f\/nll88IabKjJ3784x\/X519IXjIJ+rLLLpsx+TltXs1GcQyLrOZ5VKWCIQZSlrTt7EmD8ld\/9VdBBZJKKUb\/0Y9+VG3evLlQE3tci4E4hHajl1WvSsqiyuV0xEAu2MkUAhCAQAOB6Hvvz\/7sz+oLaYgz\/cADDzQ4v3bs+Yc\/\/GG1ZMmSpmKgVTsf7RyzQ4PjxID9XVwRms7FuHTbdcTZ714RKWvXrm2YGG3nF7dCkXlOESFyxEVECEv53l7ZqN0zxV2TNq9mYWDmmdKu1lT16oMYSGkBdiNw2223qde97nUtU2g1sSetErYzknQ\/97nP1ecsxN2E6VFoJwbS9hYkQZZEDEjj9MUvfjFY3cis+CCNzgc+8IGGeReSn90rIor\/jW98o\/ryl7+svvSlLwU9HNK4yFwNI87se5Rr5dyf\/vSnDbwkrze96U0q2iPSSV5Je3eSsOMcCEAAAhDojkDce2\/p0qX1d83Xvva1hveM\/Td5p8i8wGYLb2QpBpK+O+LEQNKRAXnHv\/SlL62PBjQjG+24s5+zVWlER1qSXCeC6+Mf\/3g92STXyMkmL0YGuqsf0asRAyl52gYrDui3v\/3tlqMArRzxtErY3Go7RWzOMz0Kre6hk96CJMjaiYF2FTnaKNkNoQxNyhrL9pJx5p6iw7LSCD7nOc9p2hsi10Wv6SSvdj0hRQsdS1KGnAMBCECgVwnEvffs3n87hMZ+H5n3QZJ3t7CJtu1pRwYM33ajyq3SbdfhZz+f+C1\/93d\/V+\/IlA6597znPfVi3r17d33EJOqgS2+7dJ4dOHAgWKbcjBTEhUMNDQ2pP\/7jPw5EiERPyLv4fe97XxCiJEc74ZEmr073buhV23Zx34iBlFTjVHyz3mxJOmmDklR12z0B9rBetEJLeu1GBjrtLUiCrJUYsGMqW6VlD\/O1Gw6107F7fJJeZ4\/yJL1G8jR5Je3dScKOcyAAAQhAoDsCce\/e6LtHRgAkvEVGlY2Tatr0pO\/uXhAD9vNFe+SFsj1x2n4eWwxEY\/DtqAdJI8lKiUmZpsmLCcTd1ZO6GNUF6H+ty2zuPZdUxIF++9vfHhueI865hO7YoUNJjV8eJokSthV+NCbOVOjo0mnN7qHT3oIk4FuJAdtxFiH1t3\/7t8EEJGH7l3\/5l\/VJXnZvQ9RBl94NmQAmjVx0cxm7sTOCRyYtve1tb6uP4thrNhv2ZjfITvOSdNr17iRhxzkQgAAEINAdgWbvPXvyrzidr3rVqxom4Zqe8aTv7l4QA+1Grm3SzcRAmueU9MS\/2LJlSzB6YCZb2\/m0GhlIkxdioLt6ghjokp8YukwWjjNyu2c6aYOSVAnbIwDNxEBUpTe7h057C5KgayUG7NjM6LyL6KYvRqtGHfToCg728G\/SCcvNGpFu8kIMJLEOzoEABCDglkCz9579DpWOs7\/4i7+oh8nYse9J391ZOa7t3h3dhAklFQPSybZ169b66kCdzo2wRxqalTJiwK39p02dMKG0xCLnx03ktVcqyLpBSRImFK1kze4haQMhj5w25r2VGEg6UcgWNa0aQjmvFedmy5zZRdkqJCk6eNZpmXZpalwOAQhAAAIJCTRrp6OTbuV9beaf2e+5pO18tEOrVfhMq15sX2IgLkyoGdJOxEB0\/oUZ+W\/3nu4kL0mTkYGEFaLNaYiBbDgGq+LYk3CSTN7t1PjtHv3o7UeVfasKmFQMxKXZDlsWYsAOd+pUDNgrA7W6Z8RAuxLl7xCAAAR6h0ArZz7uHZo0vFYIRDcnk\/kGMvdAHGEJg7UXt2i3tKghaqdpRijk\/SVLnMoE3FbvwKgAMXMhZI6EhODaLEyIrYRHSbpyyPXf+c53glX7br\/99nohd+Kj2HnJJOMvfOEL9fu\/9NJL65OOsxoZsKMCJLTY3L9McraXO+0dy83nThEDGXKPqzhJexeSDjVGNzSRSm82IZEGLm4zjyQjA2l6C5IgSyoGkizPKvl1Kgbs+QnSwNp8koYJMTKQpMQ5BwIQgEBxCLR698atZhcNu211fbsFI2wKScVAs865VvsMmHyaLXphHO6knWJZOOhxi5nEWUUWeUU7O+182GcgXV1EDKTgZeYJSIzhy172snpcnVS0T3\/60w07ExtlnrUYsFVwUke62T102luQBFkrMWD\/TZT8pk2b6pOuJaTnBz\/4QbBx2ytf+UrVbFJvUge9mcMf7cHJamSgXe9OEnacAwEIQAAC3RFoFzoaXXLavLNNrq2ub+Vci5Mr7zGz7GZSMdBsue0kYkDu2Z4YbZ7BdrjbLect10R3LO5kZKDVct52SFZWYqDZXguIgXT1BzGQgpfdOLS6zK5QWYuBVj0S4ljLUOf73\/\/+hr0PWsVOmu3NWz1P0gm5dhqtxEB0SLNZ3lk46K1Cqpr1InQ6CiHptevdSWFunAoBCEAAAh0SsJ3fqJMrSTbbc8BkZ\/dwRzfVknNklP6v\/\/qv60uS2kuMm\/dOdP19O8\/ooiGSpryrzUaaxjk3YTa2ABGneu\/evQ1kovcjvsDHPvaxho3VTMel7NNjFj+RtM477zy1fv36YDNPEzokidudW9FFO+wohWiIlcnHbCgqeciKfpdffrn6wz\/8wyDvaJl0mpfcp\/gUV1xxRcO+B\/ZchQ5NqFKXIQZSFHcSZS2O80033VSvUFmLgaRr4Cdd0SjJM8U1pO2wtdt0LMkwq91Yduqgt+Jl91JkITyESbvenXbc+DsEIAABCEAAAhDwSQAxkJJ23Nq5RvWuW7euQYUbxfr6178+yCULJSxDcOJomyHIZrdv9xzYPfFxjn3a3oIkyGxnv9l8BHHUP\/\/5zzfsJiw9DNKbEmXZrlekVS+OycdsKiN5SC\/FhRdeqFavXh08ji08uslL0mrVu5OEHedAAAIQgAAEIAABXwQQA75IZ5SP3eNuO7Bm+Ux7RaPosF5Gt0AyEIAABCAAAQhAAAIlIYAY6KGCjE6UiU6ijW7YZXZS7KFH5FYhAAEIQAACEIAABDwSQAx4hN1tVlFnX0YGzISf6IpGnUz67fb+uB4CEIAABCAAAQhAoLcIIAZ6q7yCDU2uv\/76lndtNt6wVwXoscfkdiEAAQhAAAIQgAAEPBBADHiAnHUWZhKzLA9m73QoowEbNmyYMYk56\/xJDwIQgAAEIAABCECgHAQQA+UoR54CAhCAAAQgAAEIQAACqQkgBlIj4wIIQAACEIAABCAAAQiUgwBioBzlyFNAAAIQgAAEIAABCEAgNQHEQGpkXAABCEAAAhCAAAQgAIFyEEAMlKMceQoIQAACEIAABCAAAQikJoAYSI2MCyAAAQhAAAIQgAAEIFAOAoiBcpQjTwEBCEAAAhCAAAQgAIHUBBADqZFxAQQgAAEIQAACEIAABMpBADFQjnLkKSAAAQhAAAIQgAAEIJCaAGIgNTIugAAEIAABCEAAAhCAQDkIIAbKUY48BQQgAAEIQAACEIAABFITQAykRsYFEIAABCAAAQhAAAIQKAcBxEA5ypGngAAEIAABCEAAAhCAQGoCiIHUyLgAAhCAAAQgAAEIQAAC5SCAGChHOfIUEIAABCAAAQhAAAIQSE0AMZAaGRdAAAIQgAAEIAABCECgHAQQA+UoR54CAhCAAAQgAAEIQAACqQkgBlIj4wIIQAACEIAABCAAAQiUgwBioBzlyFNAAAIQgAAEIAABCEAgNQHEQGpkXAABCEAAAhCAAAQgAIFyEEAMlKMceQoIQAACEIAABCAAAQikJoAYSI2MCyAAAQhAAAIQgAAEIFAOAoiBcpQjTwEBCEAAAhCAAAQgAIHUBBADqZFxAQQgAAEIQAACEIAABMpBADFQjnLkKSAAAQhAAAIQgAAEIJCaAGIgNTIugAAEIAABCEAAAhCAQDkIIAbKUY48BQQgAAEIQAACEIAABFITQAykRsYFEIAABCAAgfwJvPe971XXX399\/Ua+9rWvqbe85S0d39hZZ52ltm\/frqampjpOw8eFr33ta9X3vvc9ddVVV6kPfvCDPrJsmoe5F3PCnXfeqc4\/\/\/yO76kXyiD6zGIzZ5xxRsfPnOTCKnI2tmD4uKyXiIEkVsg5EIAABCAAgQIRMI6C7XzKd9\/\/\/vc7dsyK7og+9NBD6swzz6yXQt5ioK+vL7gX2xmW77px2opeBnJ\/mzdvDgTPzTffrN761rcGZfLggw86qx1V5Czi56Mf\/WgD59e85jXq9ttvd8IZMeAEK4lCAAIQgAAE3BAwTthFF12krrvuuhmZRB3KT33qU+pDH\/qQMiMH5t9yoXEwjMNlErMdj2gPpREgd911l3r5y18epCtOod07\/tWvfrU+amGPWJhrzLnmGYyjLw6+3GvUyZZ\/y33\/8Ic\/VK985SuDc\/IUA4Zhs3toVwb2qI5h4KsMjP2YMjDPkKQMbGOzxVk3AqhVLWnHWZjZYsRwNTaaFWfDLGrrIgQlDxmpksMW5804mzpg23orfuZ8l6ILMeCmrSZVCEAAAhCAgBMCJmSiWVhQK0f0vPPOC5wn44CKs3XaaacF4UVxvdLR70ze4gQ9+eSTgRgwjrv8ND335t7s641TY\/K2HSxzX5JGOye\/nYPoBHok0biRGfuUVmVw6qmnBtzMc4oz+ba3vS3oBXZdBoa5yduwFCf2lFNOqZdfuzKQZ\/XhpLbj3EoMyD1mxfnHP\/5xXfCK426LWiMA7Htpxdncl\/xMEtpnBE2SMunU9gsjBqI9D93GoEUNpFNArq8zz53EIHzdi8mnmzIwPQYuh7Wy4GH3xLhU3XEviapwjg7tF90msrAr0oCASwLGIW8Wn57EEZX7i\/ZGRq+LOjRyjf3db\/3WbwXOll2nTZtq0rbFw6c\/\/elgtMC+bzlfrpcRDmmDk7TDRRIDzd6TrcpAODYLr3FdBqYX29y3aZ9FoF122WWJy0CeoZ0ozaIOGB7NOLcSA48\/\/nhmnEUwS5lFR7Jse7XLzrZ7mU9hcxbhF603UVbR92azUcAsGEsauYuBuGEm+e7Vr351VzFoRRcD0aHSPMWAizIouhgw92deWEZ5u6xwVeQcNDJWDK2PHo6sGkfSgUBRCXQjBmQEwA4Tkmc0jpZLR1QEgB06ZLOtmhiQMohO\/jbvItdl8LGPfawe0mKXQVox4Kst70YMyEhLVpzTiIFo6FCUcxIxYF9j+w7ddNK2as9yFwOmoOKc4TiHMqq27BnmMoTyxje+sWGCkTy87eBFY\/IMWDum0o59lApqj1rYBRFtUM0z2D0nEtcY19Mhz20O6SnJUwxkXQamt8g2vGhMov030wj6LgP7HkyZuey1hnMY8yt1wqXoKqoDx31BICsC7XrG28Wrm\/uIzj1w7YgaMRA3omHe970yMtCqPRe+ScsgWpauy8CIgTinMmkZ+Og8MzbajnO7OQMmnW45dyoG4jibzuA0\/ka7DoBu25bcxUDcLHHzUO3EgInhMo60wJKhRhmSiRsZiH5nVzpjKKYhsid+SGHKIX8zhRedkGUMVs61Y8vaLTPWztC7LeAk17sogygv+XdcedplklcZyL35cFLhPP2CbFcvktgt50CgygRMe2LXJfMONKEg0ThweVdKvLo45fKutEMX5N\/Rzjbh2+q9GefUNAsTknuRQ8Ij4joDkjqidnvtMoa6nW01660Vv0JW1rGdNzsWX8pAjkcffTRYFtWeTCr\/dl0GJnQmjl2SMmgnRNtxS\/v3dpztkQN7DovYmzxrVpyjwjmOlX0vxg+M45xEDNgj6j4mahdGDMTNpG4nBm655ZaglzFOXUUbsKjzbjcoUjnFYOzVCZo1ckYsRNW7XaGjCrKV8RdJDGRZBnFlF53lL1zs7\/75n\/85lzIwLzz56WoIzs6japyjKyrkOQqW9kXE+RAoMoHoXDtTt6LxxmYFFLvjzKx+YvfE2+Gr5r0aTUt4mDYsrRiwl6O0ucp9mQnErUYGoqPxJo0825RotIERZ+3KwC4724fxUQZxHG3h2KoMos\/rqwyacY4LuZboDlMOWXFOKwakU7oZZyOKW40MtKp3LtqknhYDAtsOE7IN2JUYMA1htBE2hSMqsEpioFkZuBQDWZdBu9UKsqp40R4zO912wrcMnOV5fa1LnVWZkQ4EIAABCECg7ARyFwOt4qCSOEimgKI97L7EQFwvb7s1oG2jKsLIgIsyML08tvLNamQgKga6KQOfqzlVmbNt861EUdkbXJ4PAhCAAAQgUDQCuYsBe4jHdupM3J3tOETj+CVMyKyPbK9XHLdectJ4dRPf1W74My7syBRur4kBV2UQFWTRNaajZRKNRXRdBq4n5EQrexU5yzPLhDWza6KPidpFa2S5HwhAAAIQgECRCeQuBgROXGyUid22BYCEAb373e8O4srN3+04MntSkn2d+T4aW2aHFaV1ROW+o0tWyXf2BOJWK6bEXSvX5zWx0kUZ2PFyRmRF48ftkQOfZRC1BbuSupw3UDXOwrVVmRe5ceTeIAABCEAAAlUgUAgxUAXQPCMEIAABCEAAAhCAAASKRgAxULQS4X4gAAEIQAACEIAABCDgiQBiwBNosoEABCAAAQhAAAIQgEDRCCAGilYi3A8EIAABCEAAAhCAAAQ8EUAMeAJNNhCAAAQgAAEIQAACECgaAcRA0UqE+4EABCAAAQgUlMC9996rtmzZog4cOKDk96GhoeCzcuVKtW7dOrV69eqC3nlv3BZ8e6OcynaXiIGylSjPAwEIQAACEMiYwB133KEuvfTSQAC0OkQMXHzxxWrDhg0Z30G5k4Nvucu36E+HGCh6CXF\/EIAABCAAgZwI7N+\/X23cuDEYDUhziCjYunVrMGrA0ZwAfPO1DhG3IsSkHGS0a8mSJYHNXnDBBZUa5UIM5GuH5A4BCEAAAhAoJAFxlNavX6927NjR0f2JUyWCgNCheHzw7cisur5IHP9rrrlGfetb32o50iX2KyNcV199ddd5Fj2BSosBFKFb85QKJ4zl88gjjwSZieqWF4PElnJAAAIQgEAxCUj7vXbt2rZhQe3uXhyqhx9+mBGCCCj4trMcN3+XUQAZ6UojcMWGb7zxxlL7LZUTAyhCNxXMTlWc\/2uvvTYYVhbezQ4RBKK4V61a5f6myAECEIAABBITkBGBtKFBzRKXkAsZIeCYJgBf\/9YgowGbNm1q6Ze0uivxVy655BL\/N+4hx0qJARShW4sSx18q2ubNm1NVNqlcVRiGc0uf1CEAAQhkQ0BEgDirWR633nprqXtW07CCbxpa2ZwrQkAmwHd7yAhBGSfHV0YMoAi7rQKtr+90EpRJlclm3ZcPYW\/dMyQFCEBABeFB0nmW5SEjwBIuxAFf3zYg70ax6VaRCmnuSUa5ZLSrTGp1+IcAACAASURBVEclxACK0K3JdisEzN0xlJy+nAh7S8+MKyAAgeYEpE0ZHh52gkjEQNXDQuHrxLRaJpq1uC2jsC29GEARuq94MvQmgiuLQ4bfZBiOoz0Bwt7aM+IMCEAgHYGsOs\/ici1zzHVSyvBNSiqb81yEZMmdlS1cqPRiAEWYTYVqlorMyF+zZk1mw2+SD71H7cuMsLf2jDgDAhBIT8Cls3rFFVeoK6+8Mv1NlegK+PotzCwnatt3LgugyDyYshylFgMoQvdmKkt0yYThLA9GB1rTzOplUraejSxtkLQgUFUCLtp0w7JsDlQnNgLfTqh1fs3pp5+eahnRpDmVbcncUosBFGFSs+7sPIl9lIqW1aQc+y727dvHutQxxULYW2e2ylUQgEAyAlmGfUZzpKNHBSvaZBVWC9\/WNi2RC+KjuDq2bdtWmg31Si0GUISuqkCYrquRF0mbXuv4siPsza1NkzoEqk5AwnhkiWgXB8tIqyBMCr4urGtmmjKvTt6Zro4yrSpUWjGAInRl\/tPpZhWuEnenxJbOpOJKfCG83NcVcoBArxBw1c7I87PXgNtONPg21jKXtlw2ey6tGEARun\/1EPvonrGdA2FvfnmTGwSqSIClL92WOnzd8rVTd90pzMiAv7LsOCcUYcfoEl9I7GNiVJmcSNhbJhhJBAIQaEPARUcPk4enocPXTxV0KbzkCcq08mFpRwZQhO4rG7GP7hmbHFzbc5kmQvkrFXKCQDkJuGhvytSL2m2pw7dbgsmvd9WJtnr1aiXvzbIcpRUDKEL3JipLikoPh4uDzWkaqRL25sLKSBMCEGhGIMuRXyYOz6QMXz91z1WnZdnmNZZWDIiZoQjdVjaXgotepMayI+zNrS2TOgQgMJNAFquXSQ+qtOeyLjtHIwH4urcIF36K2LKMCqxatcr9A3jKodRiAEXo3opcCK6yDb9lUQouhpXt+0J8ZVFKpAGBchEQR0oWLpCRyU6OCy64IFhBCCEQTw++nVhV+muy9gXLNiogREstBlCE6StN2itchAoRIjSzFFzYsp1LmSZCpbVhzocABFoTSBvSIs6\/bDAmThNCoL11wbc9o27PyGIURu6hrAK31GJACg5F2G0Van\/9mjVrlOyMm8Uhw24y\/MYLZCZNF6MwkgsjMVlYLmlAoNwEpI2\/9tprlXQANTuk3Zb2RDp05CdHcgLwTc6qkzOlQ00EQTe+SplD3kovBsRoUISdVJ3k12QVwiIvEhlSFuXNMZNA1sLW5FDGIU\/sBwIQcEdA5jCJcyVt\/4EDB9TKlSsD518+dOR0zx2+3TNslkKn+\/WUdUTAcKqEGEARuqtYJuVuV7uRF4j0JsnQMkc8ARehQmWcCIX9QAACEIAABJoRkNGtTZs2BWK23SHRChdffHHgm5RZ6FZCDJjCRhG2M\/vu\/i7DbzIKI05rmkMq2I033qhkUxqO1gSyHh1gVACLgwAEIACBKhKQEZhvfetbwQR5IwzEHxEBIJ93vvOdQaRCmUVApUYGbCNHEbqt8iIEZDJUq7hScwdSwUQAiENapiW63BIm7M01X9KHAARmEpC23XzEcbL\/Le23tOe2IwXDdATgm44XZ2dLoFIjAzY6FGG2hhRNTRo2EQSiuuXFIR+jriWu9BWveEUgBJhklr4cCHtLz4wrIACBdASknZHRXuk1\/ad\/+qfg9zSjvtK+i0iQtr4qvatpCMM3DS3OdU2gsmLANVjSj+9ZqsJwm6+yJ+zNF2nygUA1CBgHVVYNEhGQxvlvR0jEwRve8IZKzwuDbzsr4e95EUAM5EWefCGQAQHC3jKASBIQqDgB6fWX0fKvfOUriSZVdovrkksuCYRBVVaOg2+3FpPd9SLIROhKmTzyyCOBvdshWnYEg+Qq\/z7nnHMCWy1zJANiIDsbIyUI5EaAsLfc0JMxBHqWgDhFMserm7XXu3l4CSOSOWNlXUUOvt1YRzbXxoUsd5OyjHBJ6FvZVheqlBhAEXZTBdpfa9adlgZQFLcdY2rUt5mlbyabyfrUorir0kPUniJnQAACEHBLQNpqWVpRRhazDAXq9K7NbsVlWUgCvp1aQnbXiR8icxZd2niZQt9KLQZQhNlVrGYpSYUzlc44\/J3maiacyXJeZR6O65QP10EAAhDohoC8E2UUUUYDiiACos8ie81ICFGvHvDNt+SE\/zXXXBOIAN+jXWK3sh9BrwraUooBFKHbCmlGWKRnyVWFEzEgMaVSwZh07LY8SR0CECg\/AemskUUHXLXZWRGUtl92ou81pwq+WVlA+nSKNBIjPouI2l47SiMGUITuTc+HyIp7ijINxWVZSoS9ZUmTtCBQXgLSVmzcuDEYFeiFQwTBtm3beuFWg3uEb35Flfe8jLgnlw5MEQS9NBem58UAitB9JSwK417tMcqqhAh7y4ok6UCgWgQkLEjCJ3rpEEdKdqbvhQO+\/kvJ+CVFtmuZCyk23AujXD0tBlCE7iugTL4pWnyprD5x5ZVXun\/4guTgY0SG0ZeCFDa3AQEHBE4\/\/XQvS4ZmeevSu7pv374sk3SWFnydoY1NWELd1q5dW8h5L9EbFjveunVr4edB9qQYQBG6r3hFFFr2U8sogSjusk40JuzNvY2TAwSqQEAcpzVr1vTkoz788MOF71WFr1\/TknejCIGiz32xqYggEFsu8vzHnhMDKEL3Fa+IowHNnlommkmvdlmOooRkCc9enQhVFlvgOSCQBQGZJyATh3vxkA6fosddw9evZfViSJYQKnrYW0+JARSh+0rXS2JLaPTKEFySkiviaEwvToRKwppzIFAVAjirbksavm75RlPvxZAs46sUOeytp8QAitB9pZMepF5ZccLQkMk5MgTXqwdhb71actw3BIpPAGfVbRnB1y1fO3V5Vw4PD\/vLMOOcihz21lNiAEWYsWXGJCcVrYib0bR7clHcRY7Ha3b\/vTQSU6ZRmHb2xN8hUBYCOKtuSxK+bvnaqcteDuIH9uohy+UWdZ5jz4gBFKF78+\/liVAyW1+W8eqlg7C3Xiot7hUCvUkAZ9VtucHXLV\/EgB++PSMGUITuDYJGzT1jOwfC3vzyJjcIVJEA7brbUoevW76IAT98EQN+OAe7KRZ1eMggoFHzZAy1bAh788ub3CBQRQK0625LHb5u+SIG\/PBFDPjhjBhwzLkXlqCzERD25tggSB4CEAgI4Ky6NQT4uuWLGPDDFzHghzNiwDHnXhMDhL05NgiShwAEEAMebAAx4AFyLQvem+5YIwbcsW1ImTAht6ARA275RlPvBXv2S4TcIFBMAjirbssFvm75MjLghy9iwA9nRgYcc0YMOAYcSR4x4Jc3uUGgUwI4q52SS3YdfJNxyuIsRgayoBifBmLAHVtGBjyxlWwQAx5h66wQA355kxsEOiVgdjbv9Po8r7v44ovVhg0b8ryFtnnDty2izE5ADGSGckZCiAF3bBEDntgiBjyCrmWFGPDPnBwhAAEIVJkAYsBd6SMG3LFFDHhiixjwCBox4B82OUIAAhCAgEIMuDMCxIA7togBT2wRAx5BIwb8wyZHCEAAAhBQsiT3xo0be5bE1VdfrVatWlXI+0cMeCqWXgirYCKUJ2PQ2dDD4Y81OUEAAhCAAAQg0JxAz4gBFKF7M7733nvVpk2b3GfkIId3vvOdat26dQ5SdpMkYsANV1KFAAQgAAEIQCAdgZ4RA+kei7MhUGwCiIFilw93BwEIQAACEKgKAcRAVUqa5ywUAcRAoYqDm4EABCAAAQhUlgBioLJFz4PnSYCwtzzpkzcEIAABCEAAAoYAYgBbgAAEIAABCEAAAhCAQEUJIAYqWvA8NgQgAAEIQAACEIAABBAD2AAEIAABCEAAAhCAAAQqSgAxUNGC57EhAAEIQAACEIAABCCAGMAGIAABCEAAAhCAAAQgUFECiIGKFjyPDQEIQAACEIAABCAAAcQANgABCEAAAhCAAAQgAIGKEkAM1Ar+yiuvrJuA\/XtF7SLzx4Zv5khJEAIQgEAhCNxxxx3qggsuKMS9cBMQgEB6AoiBGrO+vr46vampqfQkuaIlAfhiIBCAAATKR+Caa65Rl156qbrkkkvU1VdfXb4HzPGJ6ETLEX7FskYMIAa8mDxiwAtmMoEABCDgjcCWLVvU+vXr6\/nJ6MDWrVu95V\/2jHhvlr2Ei\/N8iAHEgBdrpFHzgrmeCT1KfnmTGwSqSmDjxo1q8+bNCAIHBsB70wFUkowlgBhADHipGjRqXjDXM4G3X97kBoEqE0AQuCl92nE3XEl1JgHEAGLAS72gUfOCGTHgFzO5QQACNQIIguxNgfdm9kxJMZ4AYgAx4KVu0Kh5wYwY8IuZ3CAAAYuATCSWCcXmYA5Bd+bBe7M7flydnABiADGQ3Fq6OJNGrQt4HVwK7w6gcQkEINA1AQRB1wjp1MkOISklJIAYQAwkNJXuTsM57Y5f2qvhnZYY50MAAlkRQBBkQ5J2PBuOpNKeAGIAMdDeSjI4g0YtA4gpkoB3ClicCgEIZE4AQdA9Utrx7hkmTWH\/\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\/KsKzcg\/pCSAG0jPjCghAAAIQgAAEIBCsHCRLc37lK18pbKiQ3OP69eublpbME9i2bRujAxW2Z8RAhQufR4cABCAAAQhAIBsC0vMuH1sYFCFUSISACAL7kJEAEQGveMUrgjkDjAxkYwO9mgpioFdLjvuGAAQgAAEIQKCQBIwwkJuTeQV5HTJqISFC4uzL5w1veEPwkzkCeZVIMfNFDBSzXLgrCEAAAhCAAAQg0DUBlpnuGmHpE0AMlL6IeUAIQAACEIAABCAAAQjEEyikGGg1O79sBWlvC57Xs8HbH3npobF3fPSXs\/+cLr74Yjaw8Y+dHCEAAQhAAAKpCBRODIizNDw8HMSzlTmmTZ5TPnlPLoJ3qvrS9cmyMY1sB1\/mXR6NbcvqFExK69pkSAACEIAABCDglEBhxYBsgiHbeZf1MBuAFEUMwNuPpRkxILs9rlu3zk+mnnORiXMyYQ0x4Bk82UEAAhCAAAQ6IIAY6ABaFpcgBrKgmDyNovBGDCQvM86EAAQgAAEIQMA9AcRAB4xlqa5o+EPcbP1WM\/iL4pyaMKEijwyUiXfRxUBSO5bz5IgL5WNkoINGhUsgAAEIQAACORFADKQEL+sFywRQ2aRDtvCWQzbz2LhxY+AYSdiPHGZt32bzAhADycCXjXeRxUCczcr9rlmzpmF+i9i0fCd\/iwt3Qgwks23OggAEIAABCBSBAGIgZSlILLQ4O+L479u3L7haVuO55pprgt9NnLS9\/Xecw4QYSAa+bLyLLAbibNY49lJaZvTIjCbJd7IaVnRDHcRAMtvmLAhAoHcJsApf75Yddz6TAGIgpVVI76lsNX7OOeeoDRs2BFeb5SJXrlxZn\/Qs3xmBIBOho+EUiIFk4MvGu8hioJnNih3L32w7lu8eeeSRQAxEbRsxkMy2OQsCEOhNAqzC15vlxl03J4AYyMk6EAN+wReFd5HFQFYlghjIiiTpQAACRSTQC3PtsuBWlPdmFs9CGq0JIAZyspCiVDIaNb8GgBjwy5vcIAABCGRNgPdm1kRJL28ChRUDEoLzile8Im8+zvK\/7777gjCiouwzAG9nRd2QsBEDZeYtzyiT7NlnwI9NkQsEIOCXQC+IgTKtwue3dKuZW2HFQFWKoyhiAN5+CBgx4Ce3fHNBDOTLn9whAAE3BIouBsq2Cp+bUiRVm0BhxYCsXGIm6JaxyCRMSFYjKIoYgLcfK7PDhGR52jIeMmdg\/fr1jAyUsXB5JghAIFhQYXh4uL7CWtGQlG0VvqLxLeP9FFoMyOolZT2YM+C3ZIvCmzkDfsud3CAAAQhkTaDoYqBsq\/BlXX6kN5MAYiAnqyiKc1r0Ri2r4ikKb8RAViVKOhCAAATyIcB7Mx\/u5OqOAGLAHduWKRfFOaVR82sAiAG\/vMkNAhCAQNYEeG9mTZT08iaAGMipBBADfsEXhTdiwG+5kxsEIACBrAkYMVDmVeGEWVFWPcy6\/EhvJgHEQE5WURTnlB4OvwaAGPDLm9wgAAEIZE3AvDezTreo6eW90ElRuZTpvhADMaUpjvrq1auDj31IAzA0NJRJ+SMGpjFWiXfeYkBs+MYbb1Tve9\/7VH9\/fya2HE2EHYidYCVRCECgIATsTjRWPSxIoXAbXREovRiQjb2+9a1vqa1btyYCJZV8zZo1gRC49dZbG66R5RLPOeccJWv4dnuUVQzAu7VlZCkGxFY3btyo3vCGNyRehvfyyy9Xn\/zkJ9WuXbvU8uXL6zdryk1svlvBixjotnXgeghAoMgEGFEvculwb50QKLUYMBtvyBKlso5+ksM46SIeouvAy74A4jSlSa9ZnmUUA\/Bub2FZiQEjBMTxlp7+devWtc38+PHj6oQTTgjEw5e\/\/OWG82UpOiOCxfa7EQSIgbZFwQkQgEAPE0AM9HDhceuxBEorBjpxTIWQOETiCDUbSeg03Sj9somBTrlUjXcWYqATISD2d8MNN6iLLrpI\/ehHP1IvfelLZzQIWQkCxABvGwhAoMwEEANlLt1qPlspxUCnjumWLVuCnVMlVKJVT2un6dsmViYx0CmPKvLuVgx0KgTE9l70ohepZcuWqR\/84AdNW7ssBAFioJovE54aAlUhgBioSklX5zlLJwa6CeURISDO0LZt29qGSXTqABvTKosYgHe6xqIbMdCNEPiHf\/gH9brXvU59\/etfV3\/0R3\/U8qa7FQSIgXQ2wdkQgEBvEUAM9FZ5cbftCZRKDMhkSnGyO4npNw7QFVdckXiCsBEEMrcg6QTlMokBeLevYNEzOhUD3QgBuQcRuv\/2b\/+m7r\/\/\/kQ33Y0gQAwkQsxJEIBAjxIoghio0ip8PWomPXXbpREDxjFN48zbJSU93FK5ZD3dK0reagAAIABJREFUNJMnOxUEvT4yAO\/O6nknYqBbISAi4AUveIH6m7\/5G3XZZZclvvFOBQFiIDFiToQABHqQQNZigFX4etAISnbLpRAD3YbsSMU+\/fTT1cUXX5x4VCAqJKQyy3rDsrJLkqOXxQC8k5Rw\/DmdiAHp1Zf5Fe3msjS7Kxkpk8nDzzzzjFq8eHGqmzeOfZrRL8RAKsScDAEI9BiBLMVAJ+\/Tqq162GPm0ZO3WwoxIBVz7dq1ShwtCdeJbhbWrmRMZZS5Ammvld5TyXvVqlWBsyY\/kxy9LAbgnaSEsxMDxrkW2xQbTXMcPnw4WE70Xe96l\/rc5z6X5lLV6YgEYiAV5kKf\/N73vlddf\/31Dfd41VVXqQ9+8IOp7vu73\/2uesc73qH27dtXv+5rX\/uaestb3jIjnfvuu0994xvfUD\/96U\/V9773vfrfzzzzTPWSl7wkWNzhVa96VTAZngMCeRDISgx0IgTkeau2Cl8eZVy1PEshBqTQOnVQW20y1s4YOhUCkm4viwF4t7OM5n\/vZGRAUutUEHz2s59VH\/jAB9TPfvYz9cIXvjDxjXcqBOx77URcJ75BTvRCIE4MDA8Pq71796bK\/9xzz1X33HNPwzUyWnXhhRfWv9uzZ496+9vf3iAAmmUi93DdddfFiolUN8bJEOiAQBZioFMhUMVV+DooIi5JSaA0YqBTB9VUrLhNxlqx7EYIlEEMwDtlTaud3qkY6FQQPO95z1PPfe5zg124kx7dCAHEQFLKvXGe9Oi\/\/vWvn3Gzt912W7A6VZLjoYceUtKrHz22b9+uzjjjjOBrOUd6\/e2RgyRp7969mxGCJKA4J1MC3YoBVuHLtDhILAMCpRIDnTioEuIjFTtN+EW3QqAsYgDe6WtgN2IgrSC45ZZb1Jve9Cb1ne98J9ahi7v7boUAYiC9TRT9iqVLl85w0mXzOumZT3J88YtfVO95z3saTn3Na16jbr\/99vp3r33taxONCETzu\/POO9X555+f5DY4BwKZEehGDLAKX2bFQEIZEiidGLAdVHHaW\/X4m1EBmfQrk3+THFkIgTKJAXgnsZrpc7oVA2kEgThcMmk4qdDNQgggBtLZQy+cHRcqJD39Dz74YKLbl3kBsr+FfdjzBZqNPrz5zW9Wl19+uTrnnHOCS2Uugcwh+NKXvqRkVEEOxECiIuCkjAl0KgZYhS\/jgiC5zAiUUgwkdVDTbDImaWYlBMomBuCdvD5mIQaSCIKf\/OQn6rzzzlNf+MIXlDhz7Y6shABioB3p3vt7M2dd2kPjqDd7KpkHsHz58hl\/tsN74sRGdOTATkDS\/PKXv6w++clPqgceeIAwod4zqZ6\/407EQKdzBAysKq962PMG0wMPUFoxYDuo4oBF9w8wTlmafQlk+VHZg0BGG9LsRRBnB70+gTjumexJ3PCOr\/1ZiQHb6Y6z4T\/90z9V3\/zmN4ORgTlz5rRtiuRFde211wZL48pqLd0crCbUDb1iXhsXKvThD39YffzjH295wzfffLN661vf2nCO9PjL9+aICxHqZMWiYpLjrspIoBMx0OkiJ4ZflVc9LKMNFe2ZSi0GjCCQShhd8tM4PxJCkXQ5UOkJk3O7FQJyX2UUA\/BuX72zFAOSm6Qn9mjbpPS6rlixQn3oQx8Kek+THuLEy34C3R6IgW4JFu\/6TkOF2oUIyZPGiYEkQqN4lLijqhDoRAyY92Mny6BXfdXDqthVns9ZejHQDK44LOJIJZ0rkHUhlVUMwLu1pWQtBuJyGx0dDfYUkNEBWYLR94EY8E3cfX6dhgrFjShEVwBqNnm42T4E7p+WHCDQmkCnYqBTQVD1VQ+xR\/cEKisG3KNtnUPVxAC8QwI+xEDerBEDeZeAm\/zThgrFCYhoiJDcadxqQ+YJZNWiyy67rL4EqZsnI1UIpCPQjRjoRBBUfdXDdKXD2Z0QQAx0Qi2DaxADGUBMkURReCMGUhQapxaKQFyokOwNIJPV44648+N6+2VC8HOe85yWewyIiHj\/+9\/PMqKFsojq3ky3YsAWBKx6WF07KtKTIwZyKo2iOKdZNGo5IUyVbVF4IwZSFRsnF4hAs1Ahe\/Mw+3aThAiZ8+MmGsc9uoiPTZs2Jd7wrED4uJUSEcjqvWkmFbcSBKx6WCLDKfCjIAZyKpyiOKdZNWo5YUycbVF4IwYSFxknFpBAnIN\/ww03qAsvvLDhbmVPgNWrVzd8FxciZJ+QVBDINbL06E033cSyogW0kSrcUpbvTVbhq4LFFP8ZEQM5lVFRnNMsG7WcUCbKtii8EQOJiouTCkogaajQRz7yEfWJT3yi4SmSTAgWESGrYMnmYu0OGSWQXYyXLVvW7lT+DoFMCWT93pT0WPUw0yIisZQEEAMpgWV1elGc06wbtaz4ZJ1OUXgjBrIuWdLzSSBpqNBZZ51V3yXY3F90FaFW933XXXepz3\/+8zN2Lo5e02pzMp9cyKtaBHy9N1n1sFp2lefTIgZyol8U59RXo5YT5nq2ReGNGMjbEsi\/WwLtQoU6CRFqdk8PPfSQ+vSnP62uv\/76prd95513MrG420Ll+lQEeG+mwsXJPUAAMZBTIRXFOaVR82sAiAG\/vMktewJxoUJ2D33cUqFJQoRa3akIjHe9613qnnvumXEauxVnX8ak2JoA700spGwECisGZEfVpDsDZ1EoO3furCdz0kknZZFk2zRkBYGHH37Y63NGb8o0aj5558FanrsIvI0YKDtvYS27e0cnkbatFJxQeALNQoVMGNC55547w2lPEyLUDIAsQbp8+fIZfyZUqPAmU7obRAyUrkgr\/0CFFAOXXnqp94KRnnpz+NyV+IorrshdDPjmnRdrKV94b\/BWt\/Jm7e1BK5hR3JwA6f0\/77zz1JlnntlApN0qQmnwxe1WjBhIQ5BzsyCAGMiCImkUiUDhxEBecPr6+upZT01N5XUblcgX1n6LGd5+eVcht7jVgsTpl51S3\/Oe9zQg6DZEyE4sbtSBMKEqWFyxnhExUKzy4G66J4AYqDHEYeremJKmAOukpLI5D97ZcCSVaQJxk4Tlr9JLby8LOjw8rPbu3dsUnUwQliVCL7roIvXnf\/7nLZcJlRWGXv7yl89I67bbbpuxCZmIFZl0vG\/fPiX3IOl\/\/OMfpwghkAkBxEAmGEmkQAQQA4gB7+aIc+oXObz98q5KbnGhQtFnFyf8uuuua4ok6uDL+b\/\/+7+vnve856kzzjgjuE4Ewy233KI++clPBs69fUhI0oMPPtjwXbM5Daw6VBXLdP+ciAH3jMnBLwHEAGLAr8Xp3HBO\/SKHt1\/eVcktLlQo+uxxvfb2Oc16+5MyjEv\/U5\/6VLBxWfQgnCgpVc5rRwAx0I4Qf+81AogBxIB3m8U59Ysc3n55VyW3ZqFC5vnbhQjJedLrH51wnJRfs7kIiIGkBDmvUwJ5rMLX6b12e10RVuHr9hm4vj0BxABioL2VZHwGzmnGQNskB2+\/vKuUW6tQoXYhQobTzTffrGTvgmgIUDOOIh5kRbLzzz8\/9hTChKpkgfk8q4gB36vw5fOkYa6sDJcnfT95IwYQA34szcoF59Qvcnj75V2l3Jo58uKwf\/Ob31TnnHNOYhzixN99993qpz\/9acMkZElAJia\/+MUvVr\/3e7+XaLdhERdyb0wgToyfEyEAgQoTQAwgBrybP86pX+Tw9sub3CAAAQhAAAK9RAAxgBjwbq84p36Rw9svb3KDAAQgAAEI9BIBxABiwLu94pz6RQ5vv7zJDQIQgAAEINBLBBADiAHv9opz6hc5vP3yJjcIQAACEIBALxFADCAGvNsrzqlf5PD2y5vcIAABCEAAAr1EADGAGPBurzinfpHD2y9vcoMABCAAAQj0EgHEAGLAu73inPpFDm+\/vMkNAhCAAAQg0EsEEAOIAe\/2inPqFzm8\/fImNwhAAAIuCFx55ZX1ZO3fXeRFmtUigBhADHi3eJxTv8jh7Zc3uUEAAhBwQYC23AVV0hQCiAHEgPeaQIPmFzm8\/fImNwhAAAIuCNCWu6BKmogBywaoZP4qBKz9sQ4qeV9fPcOpqSm\/mZMbBCAAAQhkQoC2PBOMJBJDgJEBRga8VwwaNL\/I4e2XN7lBAAIQcEGAttwFVdJkZICRgVxqAQ2aX+zw9sub3CAAAQi4IEBb7oIqaSIGEAO51AIaNL\/Y4e2XN7lBAAIQcEGAttwFVdJEDCAGcqkFNGh+scPbL29ygwAEIOCCAG25C6qkiRhADORSC2jQ\/GKHt1\/e5AYBCEDABQHachdUSRMxgBjIpRbQoPnFDm+\/vMkNAhCAgAsCtOUuqJImYgAxkEstoEHzix3efnmTGwQgAAEXBGjLXVAlTcQAYiCXWkCD5hc7vP3yJjcIQAACLgjQlrugSpqIAcRALrWABs0vdnj75U1uEIAABFwQoC13QZU0EQOIgVxqAQ2aX+zw9sub3CAAAQi4IEBb7oIqaSIGEAO51AIaNL\/Y4e2XN7lBAAIQcEGAttwFVdJEDCAGcqkFNGh+scPbL29ygwAEIOCCAG25C6qkiRhADORSC2jQ\/GKHt1\/e5AYBCEDABQHachdUSRMxgBjIpRbQoPnFDm+\/vMkNAhCAgAsCtOUuqJImYgAxkEstoEHzix3efnmTGwQgAAEXBGjLXVAlTcQAYiCXWkCD5hc7vP3yJjcIQAACLgjQlrugSpqIAcRALrWABs0vdnj75U1uEIAABFwQoC13QZU0EQOIgVxqAQ2aX+zw9sub3CAAAQi4IEBb7oIqaSIGEAO51AIaNL\/Y4e2XN7lBAAIQcEGAttwFVdJEDCAGcqkFNGh+scPbL29ygwAEIOCCAG25C6qkiRhADORSC2jQ\/GKHt1\/e5AYBCEDABQHachdUSRMxgBjIpRbQoPnFDm+\/vMkNAhCAgAsCtOUuqJImYgAxkEstoEHzix3efnmTGwQgAAEXBGjLXVAlTcQAYiCXWkCD5hc7vP3yJjcIQAACLgjQlrugSpqIAcRALrWABs0vdnj75U1uEIAABFwQoC13QZU0EQOIgVxqAQ2aX+zw9sub3CAAAQi4IEBb7oIqaSIGEAO51AIaNL\/Y4e2XN7lBAAIQcEGAttwFVdJEDCAGcqkFNGh+scPbL29ygwAEIOCCAG25C6qkiRhADORSC2jQ\/GKHt1\/e5AYBCEDABYEVK1bUk921a5eLLEizogT6pvRR0WdveGwcJn9WAGt\/rAPF39dXz5Dq7pc9uUEAAhDIigBteVYkSSdKADFQI0Il81c5YO2PNWLAL2tygwAEIOCKAO9OV2RJFzGAGPBeC2jQ\/CKHt1\/e5AYBCEDABQHachdUSTPoNCRMKDQEKpm\/CgFrf6yxbb+syQ0CEICAKwK8O12RJV3EACMD3msBDZpf5PD2y5vcIAABCLggQFvugippMjJg2QCVzF+FgLU\/1owM+GVNbhCAAARcEeDd6Yos6TIywMiA91pAg+YXObz98iY3CEAAAi4I0Ja7oEqajAwwMpBLLaBB84sd3n55kxsEIAABFwRoy11QJU3EAGIgl1pAg+YXO7z98iY3CEAAAi4I0Ja7oEqaiAHEQC61gAbNL3Z4++VNbhCAAARcEKAtd0GVNBEDiIFcagENml\/s8PbLm9wgAAEIuCBAW+6CKmkiBhADudQCGjS\/2OHtlze5QQACEHBBgLbcBVXSRAwgBnKpBTRofrHD2y9vcoMABCDgggBtuQuqpIkYQAzkUgto0Pxih7df3uQGAQhAwAUB2nIXVEkTMYAYyKUW0KD5xQ5vv7zJDQIQgIALArTlLqiSJmIAMZBLLaBB84sd3n55kxsEIAABFwRoy11QJU3EAGIgl1pAg+YXO7z98iY3CEAAAi4I0Ja7oEqaiAHEQC61gAbNL3Z4++VNbhCAAARcEKAtd0GVNBEDiIFcagENml\/s8PbLm9wgAAEIuCBAW+6CKmkiBhADudQCGjS\/2OHtlze5QQACEHBBgLbcBVXSRAwgBnKpBTRofrHD2y9vcoMABCDgggBtuQuqpIkYQAzkUgto0Pxih7df3uQGAQhAwAUB2nIXVEkTMYAYyKUW0KD5xQ5vv7zJDQIQgIALArTlLqiSJmIAMZBLLaBB84sd3n55kxsEIAABFwRoy11QJU3EAGIgl1pAg+YXO7z98iY3CEAAAi4I0Ja7oEqaiAHEQC61gAbNL3Z4++VNbhCAAARcEKAtd0GVNBEDiIFcagENml\/s8PbLm9wgAAEIuCBAW+6CKmkiBhADudQCGjS\/2OHtlze5QQACEHBBgLbcBVXSRAwgBnKpBTRofrHD2y9vcoMABCDgggBtuQuqpIkYQAzkUgto0Pxih7df3uQGAQhAwAUB2nIXVEkTMYAYyKUW0KD5xQ5vv7zJDQIQgIALArTlLqiSJmIAMZBLLaBB84sd3n55kxsEIAABFwRoy11QJU3EAGIgl1pAg+YXO7z98iY3CEAAAi4I0Ja7oEqaiAHEQC61gAbNL3Z4++VNbhCAAARcEKAtd0GVNBEDiIFcagENml\/s8PbLm9wgAAEIuCBAW+6CKmkiBhADudQCGjS\/2OHtlze5QQACEHBBgLbcBVXSRAwgBnKpBTRofrHD2y9vcoMABCDgggBtuQuqpIkYQAzkUgto0Pxih7df3uQGAQhAwAUB2nIXVEkTMYAYyKUW0KD5xQ5vv7zJDQIQgIALArTlLqiSJmIAMZBLLaBB84sd3n55kxsEIAABFwRoy11QJU3EAGIgl1pAg+YXO7z98iY3CEAAAi4I0Ja7oEqaiAHEQC61gAbNL3Z4++VNbhCAAARcEKAtd0GVNBEDiIFcagENml\/s8PbLm9wgAAEIuCBAW+6CKmlWXgxs2bKlbgXr16+v\/37rrbcGvw8NDakLLrgAS8mAAKwzgJgiCXingMWpEIAABHqAAGKgBwqpR2+xb0ofPXrvXd\/2xo0b1ebNm5ums2HDBnXjjTd2nQ8JKAVrv1YAb7+8yQ0CEICACwLSlu\/YsSNI+o477qhnYToqV61ahZ\/iAnzF0qy0GNi\/f78aHh6OLXIZFdi6datavXp1xUzCzePC2g3XZqnC2y9vcoMABCDggoB0WIogaHZcffXV6pJLLnGRNWlWiEClxYCUc7MeVEYFsq8FsM6eaasU4e2XN7lBAAIQcEHg9NNPr48O2OnLqMC2bduCkGYOCHRDoPJiIK4HlVGBbkyq+bWwdsM1zegAtu23DMgNAhCAQLcEmo0OMCrQLVmuNwQqLwbiRgcYFXBXQaK91bB2xxrbdsuW1CEAAQj4IhAdHWBUwBf5auSDGNDlbPdY03Pq1vBh7ZZvNHV4++VNbhCAAARcEIiODjAq4IJyddMsrRi47\/5n1J79o2r3wVE1d85sdXT0mFo4OEfNlt9HxtXxqT619+CIGpw7Rw0MzFZf+uzl6v\/84H+p8393vbr0w59SY+PHtVUcVwvnzVWy3NKi+f3qyOiYGhkdD75b\/byTlNILMZ28YnF1rcd68jS8v\/KFjwasf+dV69XG\/\/vjavGCufBOYUU7dx9RT+89qu13LPgcPjqm7XNAzZkzS42MTao+\/b9jx4+rA4fH1byBOeq\/f+4jAe\/ffuU69a5LPqYWzOtXk5PH1eKF\/er4sePajKfUQP9sbd\/j6ujRUfWCs05QJy5fqE5evijFXXEqBCAAAQi4JGBGBxgVcEm5mmn3tBjYueeI2ndInKFjaufuw0rW4B3sn6N2akdptpqj+rWjP3FsVuD4z+qbpWbN1j+1ozRrVl\/g4Ctxm2bJf7UTdfSgeveb16hNn\/lfauUZZ6vjx6fUlHaojk8dV8f0Z0r\/W00d046T\/u74Me14TaojR8fV7v2H1W+ecYI6YdlC7XyNqpWnLFHDiwdLKRKy4n308CH1nre+SP3VNVvUaac\/X7M9Bu+Y9ucX2\/eoA0e0je0bUceOaUE6b4623Tnqmb0j2v7maNvV9j0hZjxLzda2HfxP1wFt3tq+jW33ads+FNj2X129RT379LNDu9af0JbFxrWt69+V0vatM+rr098dm1BHx8bUymcNqbmzJa+poG6JgFgxvKCU9l3NVwBPDQEI9AoBMzrAqECvlFjv3GfPiYGf\/PJpdejIMfXkrsPqiT0Tal7\/gO7pHFTzdW\/noO7dnDfYHzj7s\/tmB6UgvZ7HtWMkDme4o4I4PtbWCuIIhSeqn997t\/oPa84PRIL8X06Tc8PzzTXiZk1ph2tKjU2M6x7tY2p8fEIdHhnTIw6jakR\/ZqlJNTjQp35rzUrtWE2p005aok4+YUnvWIV1p654\/\/xf71QvfNHLBTO8a7wffPyAevSpQ2qH\/uw5MKnmatserH3m61EtccQDUTtLJK22Qm2XMgIgxlq36cCea7Zat22lbVvzXlPjrQVD3bZrti\/Xi61Keejk1bHJSS2kJ7R9T6oxPdpwZHRU17tRNTE2qgXEhK5vs9T52r6XDc1Xz1m1oidtm5uGAAQgkCeB+x7cp\/YcHA9GeA8c0e3q4ID+zAk6Gvu1PzOlOzL3678N6BHewbmz1JGRCXXVf3mrunTT36p58xaowcG52jU5rtvqSbV4\/lw1OXE8OPfo2IRaODBLnbR0QJ24bL4e5V2Y52OSdw8QKLwYeODR\/eqxpw+re+\/fo3voZ6slixaqRQvmq+VDg9pp0SE8U6FjdEw7++IYTfd6Sm+z\/rfu6RQ5EPR8Gkep7uCH30uvv3GgpGe1Tztckqb+Jfxd\/wx\/l2+1p6Q\/s2aL2AhdWRk9CESHzm\/uLC09tFN1QDtOR46OqP0HDql9+\/ep5542pM4+6yT1vLNOVkOL5hXWNODtr2h+tWOvdv6PqHsf2KWWLlmkxeUcNbxkfjCyNHeuNPKzQjGqTVdsLBitCuw1tG0ZoZrSo1WBXQe2LcIgULA1ERvaZdjrLyYs9jptx9N2XbPx4G8yVCYjDaGYrucp9q3TkXfPmBa\/B4+M6RfTiNq7b78aHT2iTj95kbbtk9QLfuNZhbZvf6VLThCAAASUEodfHH2JYDiu2\/TJySm1VLfxuw6MqTl9OoJBj7iOTfQFrbc033P0KK9058h\/Tb9l0HLr\/8zS\/zl8+ICaN39hrW2u+S5B+2w6gWoJ6XfDrL5JdUgLCGmrn33SYrV8yYCOYBjTnUxKPXflUi0SFlBEEAj9g6LuQHzntifUP\/\/sGTV2bFCdqnvWT9A9kPO0ahZnfFI7Rce1k39Mq2H5yO\/Hj+ufgZNU+xl8r\/+u\/y0CIRQC4khJhQudpGknqlZ5TB0KyNT+EwiA0JEKv5qtHaUwXCP4OXuunocgv88OwjZCIRGOI8i9TejRg\/45ehRhbFz3ABxSjzy+S82ZNap+92W\/oV51\/gsKY4bw9lcUT+mY\/69851dqYmpQLV+mR42WztchQIPafmYH4UBix2I7k7p33th0KAD0R+xabLxm+8GIl9ibEbuBeKjZthEG9ZGC6fGt4M0S2LMIgEAihD\/1y2mmfWsbF3Egti3DBkEV0qMSYt\/jY0pPVwjm0+zae1htf3ynmj9nXP3uf3yuevXLX+gPKjlBAAIQKACBZ3SY8iPPSGfJcaWnJ6pd+4+r2brjUuZ0yRzFft2hIg7\/bN3eBx04uvc\/aFN1sx2O9FqHHcVQ8yum\/ZaID1PrBApGjsXHqUVBSJrSqXNM\/11GemVe2bj2R\/QrR4ecHlZrzz1Vz688pFY\/9wRGEApgP3ndQuHEwA\/veUJtu\/+gWr50kXaShgJnW1yVY5M1539yXDtJE\/ozpr8b1w7JRM1BCuOdJe456M2s95BG6papdbWv6wFD9RCi8A9hT2tYQ8O0ggCjWser\/hmo9GDCQU0g6N5UXeFnzwk\/c\/sHdaXXoxdaMMhF4tiNa8dp9iwRJxN6jsM+9ejjT6jfOfcMtf415+VV\/gre\/tD\/7395VN23\/ZAO95HJuUN6OHgwGAY+pifxhs7\/RGDTk2LX5hOIW20z+hw1pX8G7b\/p8Q\/7j8xh7LXh34EN12w6ascx\/zYiWZSBvFTCkQRt23rivdj3LLHtuf2Bfc+Zo8OWtH2LMJB7FvueM\/u4Gp8YVU88vUc9\/fTTgX3\/59e+1B9kcoIABCDgmcCDj+uOkKdG1FO7x9XE8Tl64YaBYKERWRxDnH1pQ+shx3aUcuhtNLbR9Ta7HvAZKoXgTMsHqY0c1H0d46+Yc2eMEJuRZR3mrPt29IBEMGowrkOdD+vFIybGR1X\/7An1kt98ljpheFDPFxv2TJHs8iRQGDFw29071ENPjqllw4u1CFiie\/+1kyGxcLpnXYx0ciJ0\/s1PmeAoIRIN8f\/GMTK9+LXYf6tjtJH1dB2seUu2AKhVvQaREA7bmUpt5hIEEzBrIRxyQqDMdW2bU3OaBgbmqX79kR5XaRTGdPz10aMH1KFDB7WvNal+8euH1NrzzlJv\/88XeLMFePvj\/ZNf7lR33LtXnaRHAZ6lRcCxKRGIqmbbI9qmtfOvP6EIGAtEgUxWD3uAtAgwvfg1e66NUQWOen0YatrnN56\/ec3UbMoMORthKxdE7L0mfEP7tu3cFh+hfcvI2Jy5A3qIW4veQW3f+qfYt1w3Gtj3fnXo4EEtHKbUw0\/sVC9+7knq7X+41pt9kxEEIAAB1wTu\/vle9avHxtXo+Bx1wtJ+tWTBgF5wIexEkQHaMDTTuBeWCrBCgIwYsFz\/6c5H4+Cb1jzaKVlPx4SK1tr1QBCYcNHGn9NhpGHoZxhafSyYqzA6cSwIAX3i6YPq6JF9av3vnq3OePaQnnfAynKubSnv9AshBv7r9T9Szz71BD3RdoWuPANBT\/+Edv7Hx47qz5FADIizNBX0jIZGHqwLJMumyE8T0iM0a5UvjPkPvqg7Q5YAtypoUNtiK6wRGnE\/bWcpWumCuQq1lYjkp8wvmFMbLRgcXKjmLVyke1n1JJ8jh7TDtFevezSuFfoRddLyeert6y9wbhPw9sf7pn\/4tToyPlutPHmFtoN5egTgWCBox8da0K7qAAAgAElEQVRGaratxYDuURfnXxpmaajDuP1abH9ECIQBPTW7rv+t3vVvWXJo1vYLJuwwqvUwmd+tc4wIMKNhM2xcwvOCUYna\/AX9AgnuRAtfmeMwt3+eGpyn7Xv+oqAayqpRhw7tVQNzjqn9WvievGK+tm8EgfMKTgYQgIAzAr9+ZL+6\/\/ERtfvIXLVIB98PLdQdIbqDREZ5w5HUJlmbzpfgz1anjHFMmlzX8LX+R9jxGJ0XNv2dpB6uFmd\/FxUGtb\/XzzNz0sL5aP16srIskrL7wFH18\/sfU3\/4queq3zzrRESBM6vKP+HcxcB\/3\/JztXDhsJ50OKSrxGwdW39U95wfUePy0UJARgCC7sYgnjmc6DjtLNkTHw3M2rKhtgiflgPhbxEnyXxnUqg7UPZ5dkU2lSxIyyjySG9qbfnGcOlGPYJR+7cIg4GB+Wr+giVqvhYFImoOakGwa+djOs5vRP3G6cvVeS8+W516yolOrAPe\/nh\/\/uZ71Yrly\/TLYiiYTzKmV+IR25bPhLbtY5OjxrQbBYCMLBk7D18vdU0brPeT1ranNUDN1M2QmBkZsERDXHic9VIJpLgldMOJzNNLlcrowODgAm3fiwPRK\/e6f\/9ubd+Pa\/s+qk45cZH6T694sTP7dlJpSBQCEICAJrB122712G6lFuqJUiv0QiDjk9OdNk1FQN2x0O1tEF5cmwysf6mtTRKsgChHXBoNfZri6EvzHQiC0DWadvpFBEz\/WzqewvlntQUnaj\/rYaamc6e2zLRZBMUsOiEryk1q\/2tS1q\/WYUXbH3tG\/c6Lnq1+f21x5jpilNkRyFUMfPMH\/6Zn1M9Wp5x0so41nhX0JB7RQ1MTo4eCGGpx66XXMQxLMKv6NDpKQe2JOEfhP42etnW1rcbbQTRhFTWH31IM9R7WmlioT0a2xUFt\/fbpYTjjNIWVUyYPSejQgoVL1MLFQ+rwof3q0R0PqOOTB\/Ww3DK14W3\/V7sbTP13ePvj\/c3v\/0I9vX+WetYpJ+tN7+aqET0KdOTwPi1yD2uBq2eVyQhAYNd64rkRuXURYHqYwiVA7WP6n+E50b9Gz29mJHZ43fTvjb1VoV3XhEI9hCh8GwWrG9VW4rJt3LyAZMLxgBYFC2qi9+CBverxRx7Udj+qRwAXqw1v\/4PU9ssFEIAABPIg8PSeo+qmf9ypRzd1yMzQAj3tVy8eYlYZrIdvzrwzmXYlay9I5JD8LoO+gRgIB3\/rwsD82\/ZcGtwYq7WXZjkUBEYMxPxbVqALFnmQVQ7Nz2lhEIxQy9zLCVmEJRQN4Up1tX1naotYyN+ChVr0ufP6+9QhvWTp5Nhh9Sd\/9Ntq8SJWIsrDFl3lmZsYuOPHD6qf\/3qXWr78FO0wLAqc4UMHd6vxkUM6pMas2BMKASMIzFKIdSeotlSi8dMb\/CZ73oD484ZgTK9q4MM3cbmmNcB0fPV0UqE0N+LADicKl4Q0Fcs4TrKZk54sGqwKEy6FOke3FIuHluvPsDp84IB6aPvP1NOP\/7s6b81vqHe\/652ZlTu8\/fG+418eUD\/5xdO69\/tUbduLtQg4GNj2mN7YbrZ+K8iGYQ12LYLXdBGZN4AdHmQ68uvWEI4UTM8dqNlvE9tutO+4YYWZE9XqYwUR+zZhetIzFc6VmV5WV363bTvYnE+HDy0ZWqEWa8G7f+8e9chDP1e\/\/vefqFdf8JJM7TuzikJCEIAABCIE\/u77j+vRgIVqwYBegqe2omA4ehueaH6Kw18XACICrE\/wt5oQMKMDUVEQtNW1Jrqhpa6NAtR9j\/qowPT5IhCCzhsRC1oMyJoTEslpfgbfiTjQX+j1WGpiYEJNBKIg\/CmjAYE4qK1WFwqF8Dv526gOZx4YnKUnH0+o3\/9PL1HPOmkZtlISArmJgc9\/9W41ote7PeWUlXqFkjlqtw6TGdWTaufqdbf69UZL8pFeU1mxJ5gbILUmXADRmgsw3TMaHQ0Ih9bs0QFTtRp7U2eIgKYOVfgHO+56Ou4vrgfVTCoOJ4Ga9dolpCJwmEQoBJVOjxLo51+4aIlaMrxCPfirbeqnP\/rf6kXnnK4++l8uzczM4O2P9+dvuktvPjehTjrx2Tr2ckDtevoxPTKwL4irF7uWzcREFMiIQLhiT22OQEvbDgy6JhVq48xGODRI2WidsEyo5bBBCvu2w4b07\/XdjM2OxjXbDpa00\/Y9Ry+nt2jxsFq8ZJn61S9+rLbd80\/qJf9hlfro5X+emX2TEAQgAAEXBP7u9gd0p91CLQYWBJ0bgV+ivXwZ3Tcuhn6F6\/ZdLxmqf8qnLgJEABhBUBsZaHDogx58cdJNiE98L78JCTLXzggnigwSB+PGNfERaARrFEHyks\/EhKwCJ4u0hCvZBYJAf8bH9WaqMl9T\/5QRAbOMuyzmIivGjWlBoNfAU2teuFK9XgsCjnIQyE0MfOQzt+iJwUo9\/+wXBir0qce3B8Y7T69MMqCXXJTVScLQoOnwoHByTmP4T7hnar2KNEwmNpsstS2qelBenCSvV93Q5Zr+T+1Xox4iIwQmrKKhBzUcIRBlHq4fHzpLIgZk0uUi3Xv61BMPq3\/83jfU7OOH1Le\/+T\/a3nrSE+Dtj3fAWm8ic9aZz9M9KLPUE49p29aN56C27UFj27IvhTX\/pXEifGjTUdtuGA2IjHw1tYOGgNPm9m3PkzHjZKGpR+y7ZtdmrkwwOmA27quLAbMpmiyZekzXZb07uN4tUwTBw9t\/qX5013fV8KIptflL\/29S8+U8CEAAAt4JbPnhr9W+A3qlnXmLgk6cfj0yMFd38EgY5Ny5sjBIXyAC7E9UDMhNS++8dnMCJ1w+upM96J23vws7VcxGj41zAeylzuubRYrDH\/QLRcNFZXRCOppkeWjtM9VCkoKwJCs8yYwgyL1M6J2LJ\/VKQjI6IKsdjo6O6FEA\/Rk9GizmIivejes5b+PB4hd6tbjD+7VgOKJe+PzT1J+84w3ey4UMsyeQmxj4g3d9Ri1YvFRd8Fsv047vhNr1zBPB0\/XrkQERBP16nd4gnjqYZBOOCoSjA3JYgqAeLmGG7CIhFC1m9dgTM8M040Iowhwbl\/2aGVZR61etDdOF43X2bP5wdMCsxBKGVsg67f0Des123bhIxZyrnaZHH3lY3fL1L6uDux9Q\/37v3ZmVOLz98RbWg\/OH1G+fd55ebWKWembno4H9zNZ7ZsybN09\/xLb1MrP11bBMT3\/Qn9Ng4\/WGPnD+u7Ht0IobDuuf8fY9HZ80LRZCuw5Ss0cIIpOKA\/vWb8iFixaHeiKw7wH17\/f\/Uv39rf+fOrLnoUztO7OKQkIQgAAEagQ2f3ubDm8cU0OLl6i5eo6fvKPn67DmBQvmq6VD2uHWm4eJg10XA3pnX5kfICE7gZOtOzx1B3vwU+bhTuowHdmBONhbRvfKB+E3Ei1Qj9u30ZuIg6Cxrfkh1kwx0yFk+Tj1t4f+TlY4khEMe85lOBqt\/6Zvcrbcu+wlWQu2CASL\/s+oHtW2xcCIHgk4rFeDGx05rEe8DwerII5rkTCiIzme99xV6s\/f+zbspQQEchMDf\/yBG9QzB+eoV\/3Of1TzZ0+q\/Xue1IYp8dSyqZEOpQjW6NcbeNVm3Uz38pvRAcsxsipFY3iQLRxM1NC0im5U1E3EQK2QG\/czmB4FMDW0cQnHMHAv+K7mME33oB4PnKKFevUk+ZtsRhbsoqwbBGlofvXg9kAMLJ69R9299bbMTAze\/ngL692HZ6vfPvdctXzRHLVvl14pSjfCYtuy94R8RPTKfJFgCdFamFDDyFfU+a81+DMFbGgicXY\/\/Y5oZ9sRoRDYbu27uh6YVg7TE+YjgrcmdsW+F+iwN0lEhpnFxuUfUq\/\/9Wf\/pm6\/7atqgdql7r4jO\/vOrKKQEAQgAIEagUs+uUUWL1enLNObRM6brwb0R+aBnfmcU\/Vy6H212PtQDMghTv+YXilaBED4mdIi4Jj+Kculh7vKz1zy0y3ucAR6OqpCfpeRDZm7Nkev\/iZ+VygSJLxJ74+glYzcbygIjupFXQ4HczqffPwhdWCfnvumQ4jkb7v2yOjAQfWPW\/6b2wcgdS8EchMDH\/30N9SdvzigXrR6tTp58Sx17MjTel7OtBgINuwKdvOVyZZhSEXoOEVFQE3WBiFEUec\/dPyjoUUN59W0QYO7NGOAYFqVmzAhe+5AVCgEblTQGxoKAuM8iSBYpJ0kiRsPZvMHs\/SnxcD+0T513y8fUHf\/4GtqzVmD6qubb8jMCODtj7ewvuf+I+r0s85WZ544oCYOPdUgBkToBqJA23e4pFw4+hXaeG1isHH+g5+1qcJ2D5AVLtfg9JvqUJ9\/EBnzihn8qocF2SFwDb\/bF02PCpiVhox9y0T\/JUNLA5sNVqAIJp1Ni4H9I7PUj\/71Z+oX\/\/Jt9fxnz1Vf\/Up29p1ZRSEhCEAAAjUCb7r4Ru0sD6qzT1uqFundhGfpycPSabd8xYnq+c9doU47fZE6MqLUyKj+HNVCQP8cHdO7sI9Naoc6nJRbX0ik5Zwtv8iDt0rtnSNiQOY\/yAiCCARZHlreSyJcRvRDPfXEjuDz9M5H9LzOw0G7PqqHOXY8qVd+HNml7vnhzX5vntycEMhNDHzmv31H70x6SO2cPE0N6JGBE\/r3qRP1FthmZCAUA6HTJIIgdIi0I1JXuNPOvxk1ME5+3dmvhxAFlj89u8D+vQlWqx+0Iboi7O0PL5r+PTJSUEvT9ADImRJrODg4P6hw4YScRuf0qX0javszx9Tjjz6sDj\/0XfWis09Qn7nq\/8ms0OHtj\/dntW0\/uvOI2jV5qja742pF\/1514pKB+shAXQyIbcuu1EbI1sXutPMfte1pH79ZWFwgfxtm0sQZUXv7nl5a17Zzk1aoFaaFrswJkNA+ecGEa1s3ioGd+0fVQ7uOa\/u+X008vlU9\/4zhTO07s4pCQhCAAARqBC668ma1\/alx9fyVy9QK3YbPHwhHd2X+0yI9ur9osSyfLJ06A1oQaAEwqifYygaptY3BegWkGTkIBIFe8EF+jmjHf\/++vWrvnmfUgf271B4dyi2hQuN6hGPvwTH12DN71SnDSv3D\/7y+Vx6T+2xBIFcxcOjAmDq+8Az1q8cPqD27ntCGNah+49TFatH8eUGFC5wmLQhEDIjTFLg5kd7R+BEDyx2KxNXVxgpCJNMRQ42IGnpPG6Kpa739oSMUCgLr93po0HRyorDnaUdpljh9Or9gYw9LDOw9NKbuf+KgemrPiO550GJh9En15C++rZ6zalmmzpKIAXjrRswDb2F9WOejFp2hfvnoId2IPq6WLpyjXrBySC1eENp2\/aPtIhAEtVEBMav6kG5NHDSMGNh1oJVtJ7Jvy4anjbnRpmvi1wgCE\/pmKo8MN8vEaNu+62tTazvfe3BU\/eLRg2rPgVFt3wvU7JEd6pn7f6BWnbJEfeZT2YldWnkIQAACWRP42HXfU\/\/y77u1LzKoVp4wT500PE\/NHxzQImBpsALgoA4bqof9mM0Xs74Jz+mJEJAJw6PBROIj6uCBPTo8aJfarcXAUR0yJO\/Qp\/eO6A6fMfXis5epGz57hec7JDsXBHIWA6PqlJW\/qXbtP6J+vX2H2nc4XJf81BMWqtNOWBQ6TpYYMMt5SbiNPUoQ9qyaMKKaF1QPt7CFgY2wmRKwz6kPAUw7\/rZzVBMC9V5S8++aUAhi8mqhTmEoSCgGJvUyAkf05h0P7zysP0fULL1D8dACvUHV8oVq\/NAT6kdbv6HO0MOSWY8MHNIOGbzd8w7EgO45OenU56m9h8eDeSBP7h3XO0\/3q1UnL1YrVyzU8aeD+t+yKkUoBsSplnC4IOSmZruNsZ52CJEJJQptPRId10Llxth2XQRYk+SDwS8zAlYTw2aycN3m9WhXMGqnQ\/lk7kPNviXeVMLfDugXxmP6hfHQk4fVXD06skTb96kr9JD6nu3qvn+5TT1bbzyGGHDRpJMmBCCQFYFrN\/9QPfbUIXW\/Hh2YN9ivTlk6oE7W7+nlS\/XeQHpSsRED4WionoFbiiOcyziuJz\/IvgIiBvbtfUbt1LvI796rOy4DIXBMnbBYqXPOPkV94r9mtwR6KfD16EPkKgYO6tCBVWe9UB09OqKeeOIxte\/ocfX0Ib3qTp9ed1+H1awYXqCWLh5Uy5bMUwv1CizidMin7vjH9ZxaIwd+yiR0mqbnBoS\/9+nYwv5+6fENY8H1wgE6fvC4OjRyTG9nPqL2HxpVB4+OqcV6tZmheVNqqZ5oumzxfLVr5w71T9\/\/ujpjZfZiAN5+eBsx8OxVz1djeiLWY48\/ovYfndSTivXErONzAif6xKXztYM8T50wPF8NLdSrC9XWrQ72Haj1+EftPMbrd2\/i9RGw6ZAgEb+ByBUBUxPhYt\/j48e1+JlQEhJ08MiYOqA\/8\/XEupOW6LkE82dp+16gnnzsfvXju7+NGHBfcuQAAQh0SeAaLQYOH9STZQ8p9ejuMd2OH1fP0p0aL\/vNZ6kTly8rvxiojQw8+eTT6pfbH1Y7d+m9oGYfV8O6PV++cEqddtoJ6q+vQAx0aWaFuDx3MbDyzBfqGfijwRCU7ixXRyf71NGJ2ergmO7716Jg7hw9JLdQL+ele1EXze9XS+bp5Qr1zwWDYVxbbdZwIWCGNyGjFrK276zgeY6M6VEA7SQd1ZOKRsam9OiHHn7TMXdD8\/qU7mgIfmqto\/RyxcEyo8885VYMwNs97yAkS48MiBiQkDBZWvSYdqoDu9aTxMW2Z82SJXQHtZ3MUQvm9athLQgWa7tepO17sF+v9KDXsA6X1C3aEdq31L3RwL6PqwNH9YQyrQbExvceGteid1IN65GAQS0Eli\/sUwu0nevtFtSAnjj\/hJ4zgBgoWplyPxCAQBwBIwYkZFn366in9k+qh3frDQL6F6sXnHGSXuhjqfZN9MioXjq8bCMDst\/A3gOH1H33P6G2P\/qkmjyyUy2dN6n9Fd3BOaVXRdJLwiMGylNvCiUGwtnsMkFnQOmIFv3pU3uPiDjQjoQOH5Ie1Hl6As8S3d24RAuEebrnXTb9kN5J+TlHNtnwPjIgG4rodYOD8Ag9H0A7fRP6p2wite\/IMXVoVEKCjqvDI8eDdeUH9H0uXTBbPWt4tm5E9HnBxmPTS4v6FAPwdiO+psXA2cEGcyIGRByGk+P7AzFwaFTbh159QmuGYGfixVoQzNcCd6m28QVaEMzTL5j+OVoU6KXeZmu70b+Gy+zmcEwEm+SFdi62LeYtO1ceHJlSh0flp97FMthcT6kFA7rHSNv3idq+B3UPUp8OgZPJxME+GvrZH3\/01+ond\/89IwM5lCNZQgAC6QgEYuDASLiQiQ7jPK7f6yOTs9Su0UG1b3Se6tOdlc\/Scx1PGJqtTlqs2zzdkdPLh7TxI+PH1E4dCvTgE\/sDMTByZK9aPnBETY08o8Mbjmofy\/gsE2olIwO9XNwN956rGDiwf0TZPdWhcxpOrjQrrqi+uUovtBP0Ph4c1T3rR7Q9am9krvaOhnWX44L5EoIwWzshuod1UBwovV6u7mUXUVCLYAgeOIi\/Dn6Gzz8zztqsVzS9WpCcZ+YSizMTfIKlQmtbhgdx1Lp3VDtEh\/VSYkd1JTqow0EOaedIUjuqRwL6dQ\/v8KK56uThcFRj0bzZat5c2XRk5lKXsmSZiIH\/E4QJZT+BGN6NS7m64h2KgVF1am1kYJcWA7KIsxEDxsb79OjA0XEteMW2tY3v0WFEY3pDGqkHIgoWzhebnqXm988K7Ga+tnFj26FNm0+jbcfZd7gWV6NtG\/u2bTv4LmLf+w\/rJeb0PBex64N6QxoZ4ZoMxO+swL5XaPtePqQ\/i3R91L1Gc\/vEvqdXE7LFQDAycNffq9P03AnmDJTmPcKDQKCUBGwxIHO6gmiEWf1qYMES1de\/SO3RyyXvPTShw37HdcfHcT33T97xOiRSh\/1KB89i7ZsU\/Tio3z\/7joyrPYfEd5FlQ4\/plZH0HLdZk2rZ\/Ek1a\/KAGjuyRx3e\/5Sa1HsMhAugSAcmYqDoZZvm\/vIVA9rLbycGAkVem2QpcdU6dkg7TcfU\/sAxmdI\/tSOlnZUxCVrWR7B6z0CfWqaFgvSmztOO1ALdyzqgf\/brXvnZ2oMSoTBX97jKaIIRB9L7Kq7+RLA74DRC6fGUWP8RvV33qA73Gde\/j2sxclD3+o\/pHtORYFMRnbe+fGCudty0IFmknbYlund01Yr5QW\/voP5eGpG41YTsfQbqzukPHIkBeDfs6+CKd7hykyUGntZioLbpmFkhy6wmFJ1A\/MzBSS0sp\/TIQRh+I3MNjurfzSG2PaxHxsTW+mv2tqBfRg60TQe7dYcjZPI3eyBBbF9EtOx+Kb38\/397Zx5l513e90ezaTZpJI1kWZK1ecc25gANYEoCAcJh84GclsBpE7bQnOCE00MBcyAkDQSaeCP9J6aHNGxt0tRJmtJityW2sQFvQrbxKltGlmStM6PZ1zub+v3+lnvfu43ujO4219\/rcz2jO+\/dPu\/zvu\/z\/T0bb1wFmoUN07GnHfMYoq3z\/SYQ0eLf+Pgs7LsVz6cd81ha19Fim9e3QeB2OOefAtzXxjDQxdcPrUUhIBYW5rIiAz5NSGJgOSdpbSsCIlAbAhQD46NTbnGSU+N9602kc\/ZstO7uDbYAYcC5AkMTKXRMS8E\/wPmS\/gIWBtvgr3RhEWc9FwBxjm5H1LQDiyediB60Mm+yyrcUzsf0YXjnwiUXd3gNGIYIcE1ZcP7meZ5pT4zqtrfOW2fTnKWmhm0MrUXPoCseC4qZyeAnJksMVHkXVvTtVp0YYKiOKRdNbmJepmZgBrn5w25Vniv0i1ith7qFI0PnZNo5OAvO0V\/pjZP5orPfjYOZThlvXLXd2AXnH6u4DBFSVPgVW35GXzuQ7BWf21q03sWAeC\/fYs5HDDjRSPt2duMvGDxhj03O2+DknLPtKdj6NC5AXrjCcceJnav153PjRYDCuRsXAgpa\/pvCuhMC4MIepOTB3hmN8\/btBbU\/DkN4ItFNKF8MLLguSbygSgycz17Sc0VABKpJ4D9+5x6IgUyaEM95PI+xtSinrHdgdhAjrvNYTR9FPvM4Iqc8R8\/A9xjD+ZoLh1woxFyvsAiJ54dFyVYIhE6IA7oxbnES51b6Gawf9MMoWWvFa0Gm8yFPt\/wnGxfRt4m3BdYs8DGmKaO2If6bQoX1ahQpM7hOzMz5VGb+ew2e38pFJZ77udCDRR4uYrbjPN+K2U+LGJjGCcTjbC060u\/qOikGYtT3LBZ6du9WAXE17bGS71UzMXArVk9Hl7lSHdsvFhID0WlijgMX9jn0g7d4vPBfXBVdCMuiPq\/fP8bf6dTElVQeeowa8ACNt2Y3pc87+nTRoEnSN1dQ6Ryk2CN+ZWKAk4n7Th22HyMycEmZ04TEOz8tq1K8yTo3MkDHnm04k5EB\/p6MeqWFVxADjCakT\/Y05NDZJ9p30rZxLcAJ3oe0GCTzva+9fXOFn6v3GVv2kYSEebv6BNfSNMe+o23zuRn7Li4GeNwt5EUGvBhgFyUOHWPNgNKEKnla12uLgAiUg0BaDLDFeViIdGKgB2KgG2IgzBlwqTMx5Io3dos0cMS5cOMWb+CEM52Y5+gUfucCz5qms1iBRx0C66lY8+jqwlzTdHPNmnEy5r8pENLn7vCrr1PMfEM6\/C51E0JgERcDnm95zZnHRkxc4HvwZejTsB6NUV7WL7ZjAWhzN69L\/HsUHonWojNFxAC+BwuIJQbKYWX18Rq1EwPfDGIArUXnMMObqpM5eb6AOFMzkJsm5FuL+pXT5XYTclMBA\/coFvjPeEzlBu5Y8Btvrt4g8e+ldp\/ftkBkAI8vGRlAx6T+kxADd1dADIi363+fFYmpEO\/bwHqMNQO7fTehAaQJ0WajbbsUIVxcXOg5DNSLQrdQZKDUU0W0bzerIBEowGkbF5eMLbvXCzU1K7LvGBlgalCIFMR5B1x1ijmlbvgYVpf400UGUBNz4ijEwIMSA6XuU20nAiJQOwKFxIBPE8LQsSXEQLFPPIsIApsuTGKVPgUvfRpRBIoDnrKZpsnHGPGNnkpY\/0nXKzJNOtkjJVkXyffkIg8XfjqQpUCHv63Vn\/fb4fgzvbMTqUpMUWIUovgtIwZSEAOjITLgJhBPITKwyOuoxEDtrLIy71xjMTCFmoFrQ2vR43AslhYDbhW1SJpQZfCs7FWLpgk54cFKfLYh83l3HO7BvOqzWFVobWtHZOBF+8ndd5Q\/MuDEgHhXgzfFwChqBnbuCd2EnBhgjYrvlOXFgI8SNDeHfv3Bts9HDKzMWpf\/rGSaUHpacjpNiJ2HWCsQbZv2zW5CjAys9d2EHvyB7VYB8fLB6xkiIAJVJfDnTBNCo5PYTSgvTchFBnBdd5GBRLHheXxKRhhc7RVeI9YvLiB7gSlHLishOPKZDIbMm\/H64esfz+eWEANIE3ITiJkmNODFwGIQA6wZ2KM0ofMBXVfPrbkY2BXnDPQhMoBV\/6zIQOgslJVKwchAgZqBeqK6lBig4vcrp4W6CSEygDShn\/wTxMCe8nYTujWIAfH2zumiE1+V4e3FwLSPDOACMXD6mBcDiMXGTkIu+gX7bgrDu8oRGajWMbC0GChUQJyoGXCRAYiB7eomVK39pfcRARFYGYE\/\/3aoGVgyTai8YmBln7Scz8qODKTFQKgZSBYQSwyUk3ttX6umYmBkiCvVmaFjaTEQUihyO67EKa2rWgwwjSKunCbSVhgZaAnO6Y8RGbi0AmJAvDNpQpXknSUGOHSs71iYheFT4LLShEJkICkGYnSgPoeO+VzWZHF8ukCeka+0fftQsu8mlBEDrBnYLzFQ27O+3l0ERKAkAhQDY+wmhHkC8bycXzPQ4GJgbNDGhvttgINhXQFxmB3jIgNbNYG4JEuq\/41qLgbiSjXz0daEyABXTNNOU7Eiy5xuQvWEulhkwH3GYtIFPpEAACAASURBVGIART+tSKNgZKCSYkC8Y9pK5XhTDIzEyICrGQiRgVAPE6MC\/Nn0MhMD7CbkxMAORAZu+ko9Hbb6LCIgAiKQRcCJgZEgBtBEhAs0WWKA3YTYUjmmCZ1fU7c6oR8iA7MpOP9IE4piAGlCKVczwFowpn5KDNTJDivLx5AYKAvG7BeRGKgA1CVest54SwzkzhnIbi0qMVDd40PvJgIisDICUQy0IDLACfBuknwsIMbgsXbUDPDm++6Xp2ZgZZ+0fM9yrVLh7M+mIAbYTQhiYBSRgdha1GU24O+LEAN7FRkoH\/gav1JtxcDglKVXqqE6YwFxscFM7Dbkugmt0pqBpSMDvg+7iwzcU6E0IfFOdxOKfe8rwduJARSdZboJKTKQnDOw\/yHVDNT4vK+3FwERKIFAUgzEDoZRDHRBDLjWonidchYQl\/CxKrzJucUAxQIjAxIDFd4VVXz5moqB4cFJJwbmZ9FaFGLAOfs5vdiTrUXZSYh1A3Eg03Jbi1aLa2alOtl6ke+OeCLnIEBZ8+SRbHWZdE5\/cs\/fVaRmQLwTNQNhCJYr2C4z7ygGduxmN6FkmlBMf0MnoXRxfOwmxIFeLemBY\/Vq286Ks2oG\/ORhZ9u8Bft23bJyagZiN6FHnRjosdtuVppQtc5Jeh8REIHlEygqBjh0jK1Fc9OElv8WdfgMDlFDZIBpQnHOACMD7CbECcTwX5wYQM3A3j2qGajDHbiij1QXYmAOYmCwBDFQODKwou9d0Sf5dou5cwa8w+TmDNRYDIi3b3UZIzHVEwOZAuIoBvJqBpCXyunamcnVFTXVFb14rm3HAmKvBZbqJrQWE4ifN4mBFWHXk0RABKpMIC0GmlFAnKgZ6Oacga71iAx0NXhkYBI1A0MuTcjNGYhigO2iJQaqbI2VfbuaioEhRAZcNyEOHQtioNBgJrYWbWIfdkQF8tOEKgtoJa9eihjwA5nmncJm3172FW7DUCZOIP7p3YgM7C1\/a1Hxrg7vdGRgV4gM9Ps0IUa94rCx2FGIj7lOQrTtGPmimGR+anK6zEoMsULPOZcYiN0mcoeOceIz5ww8igLiPTsUGajQ7tHLioAIlIkAxcDoyCSGeXkxwIWaZJpQrBnwHQIx\/rdBbtk1AxQDfagZOAkxMBG6IVIMzCsy0CD72y1VYyWvJvXv7Hs\/SDFwcaK1KIeOJXqxx9qBZk5pRQqFc5jy0oTqb2\/AlSswgTg7MpB2mNzQscxKtRMDSFu5rAJiQLzz04Qqwfu2v\/yBDQ9N2w6KAc4ZCN2E8lLg2Ls6d84A7XsViAGXKhQEy3IiA8ePPW+PSQzU30lLn0gERCCPQDEx0I00IU4gfjmIgbFRiIGRPkQGJAYa+RCprRg4g5qBIAZimlBuZCBZMxDThLJrBkrbPTf\/4b+yJx+9L2\/jP7zlf9oVV78u6\/HffPf2vO3e\/p6P2Ed\/709LerPzEQPMYf\/pvRUSA1Xi\/fwz++xPPvf+PFbXvvYtduOf\/E3W4z\/4+9vtb7\/11bxtv\/6th+yCC3evSt5RDGwPkYEz6cgAB41lzxrITxNavhj4zl98we6+87t5rH7v89+w6978vqzHP\/Pbb0T06UjWY4X2y1LgGRlYqRg4QTGAmgFFBkoybW0kAiJQQwIUAyPDiAyEOQMuMoAI\/jrWDCS6CfkC4gaPDAycRKvRicScgXm7eK9qBmponmV967oWA8yrbk7OGQjdhOLwDx6YsW7xXFQoBnhLOqMP3f99+4ubPmm5jj7FwIc+\/iV777+8wT0nOrfJx5Z0ls4jMlBLMVAu3pFXrtCKjmjS0Y9i4L\/edTKNNAq35GOriXeuGBiAGOBqfzOH6VVIDDz12P122189mMYU90Guo8998MrXvDktbPtPH7V\/9\/Hr8o6BSokBRgYelxg41+lKfxcBEagDAk4MDE3i3O2HjvHu0oQgBjpDNyF+zHKJgUILkXz93GthsQW3QgtAy8aIXBE2N8m0Fo2RgUzNgJ8zIDGwbLZ1\/ISai4GdS0QGyuWckn8hMcDHHw6CgAfRG8Iq6m8FMfCeIAaWen6hfRsjA8nVU79dpoC4WJoQxcADFYwMVIP3wRAZoBi4PCfqQmeUt+i43hkiA\/8lIQaWev5q4H1rSBPavutKXCQWkWsZW4uim1CVxAA5RY4UsdGWc8UAt2NkIVdMVEoMuMgA0oT2XqSagTq+LuijiYAIgECeGEhEBiolBnIXHWPkN+noF1pwiwtrhbIdlrUzC4kB1AwweyMWEEsMLIvoqti4pmLgDNJWdu71NQNDiTkDcfpwOcXALSEy8LmcNBXupc9+4o22ddsei3\/78Hu22wc\/lnGguM1Sz8\/d0+UQA5dfXP4C4mrxphP61Rvfb1+6OV8MPPzj79vtiMbEv1EM\/Pdvf9W+d2cmMrDU8yslBsrJ24mBwWnbtmwxwLqY2E2IHalCu85znEq+e7t35m\/9z5nIQHwK7ZZpQfFvtHVGBj5yQyblbannF+R9HmlCJ0OakMTAqrg+6EOKwMuaAMXAMCIDyTSh5kSaEOcM8OaHjp1\/mlBuVkKEHwVBjKoXi74Xe\/5ydiKrSHMjA2MsIE6IgUVFBpaDdFVsKzGA3URn6B7kXEeHNFcMROf0BkYPfiU7B3s1OKf8jCzYrgcxwLSUz\/72dWmxVUgM5Dqw5zqS6k181ZMYiHxv\/Stfg5ErBnL3x7lY8+8rrhlAN6GT6CbEmgGJgVJIaxsREIFaEvh6TBNCN6Hm0Fo0nSbEAmLMGeCaTbnEQKGsBH5\/nqc\/g3TOGOUtFj0v9vzlMKQY4Mp\/CnMGZqcxgXg8dBOCGEhN+TkDrukJxM8lrBn4408v5+W1bZ0SqKkYGGBBa4gMsIet6xZUqP1iGVqLLrWyX0gM5O6vCxA5KLTyWni\/otOK6xXvf\/JsEQczsXmTTxHyBxQPuthNKLYWfRBpQuVcqY5ioFq8l1rZLyYGcjmWKrz88+qLN4XX0NCUbdv5CpwwF9PdhNhWNNkti\/\/Obi2KyEAYed8E2ylHZKCQGOg\/dSTPbJORmXOdq0Db2bZrMYqf5B8\/K1vkxotFXmvRtZgzcBQ1Aw9LDJyLsf4uAiJQewIUAy4ywNai4dzMLofsJtQZ5gzwU5ZLDBTKSogUkhkMha6xuef6FdPLiQxMRDEAHy2FOQN+aKrEwIr51ukTaysGBnLShCAGXE41Cy1xwLlOQnSY3IwBOkqJ1qIs5llGAfGtf+QLiD\/7lexuNnyMYuDpx++3W\/7Sp1l85L3b7TeYJvQvfAExb3z+U4\/dB0HwkG05R5eb3JVq7yzxVUqoGTh92ComBqrE++Cz++xrSBP6A6YJXZXdqWmAkYFPXGefvNFHWe78h9vtDqQJffcHiTSh8Py3vvsjWeksxY6heuOdFAN5NQOJ1rm086xuQs7GV5YmlLTfJKdcvp\/7N2+0a16dnyZ0713fLbi\/CjE\/38iAxECdXg30sURABLIIODGAFugxTYjzX3jedgXE3X7oWC3FQO7uehu6HiZTQFe0O5eoGZAYWBHRVfGkmoqBfjin6cgAh44hDOc7rngh4AczcShTGMyEWQPpOQNlFAN0kFgzEIVCITEQndhckVDQWQrdhGIB8dJiYM6tKsSJuH0QAw9VKDJQLd5LiQHWDHzj5k+mHc9CYiAKNDqoSZFQHjFQed5uhgYiA9sRGfBi4CW3iu6iXs6m823bD9ZDW1EOHgtRpeVEBoqJAYpY1gxEoVtIDEQBXLL4OlfNQGiztzDP6FfgjTmdra1+AjHFwMUqIF4VFwh9SBF4ORP4+rfuQZS3epGBQr5H5J88dxe7xvL5zGKI5\/sV7btikQGmCYUJxMxosNBN6M+UJrQizPX2pJqLgZ17r0EBccpVqjMnzw1mSoiB3MiAn9TKNIXlRQZu+6N\/7dh\/5it\/nbUPeFD9hxt\/HSvVt9vrQz3AR9+7A5GBP7B3JyIDFAOfQ\/Fl7uPnLwZyho6dPmIP3XOHXXHJZrvtpq+UzV7ooFIMVIN3ZPrFm\/8xLzLA\/cBBXzeHKMxdLjLwNfvOD05kfdfvIVpz713fy3t8NfB29RmDQQwgpHqGQ8fcilJSDPgIWDkiA2RFMRCZRkaFbPbGEBn4cKKAmNvT5t\/67g9b7uMFeeeIAZcG5zYMkS+mvzGvNKTAUezyRiFEMfDzh++UGCjbka0XEgERqBSBQmIg01p0HSID3e6ty5UmVEwM5C5GFhMDuYttK+KSJQYmUTMw7CYQ00eTGFgR0VXxpNqKgf5JuyiIgaEziAxEh6kSYuDfBzHw5YwYeASr1P\/plhvsV+kEfTLTXeVj1++wD3w0Wwzchuc\/jTQhOlyVTROCGLi3QmKgSrxfoMD6\/K\/bF2\/6R7sskSb0+d95o\/WfOprFkGLg777zNfv2\/86Igfj83P1S7Ig6vzSh8vOOYoA1A+w\/PYjWolADyxQDHOxV2jnke9\/4gj0DMXDTNzPdhCLDa17zFvtMwua5D65GmlDS3vn8H0F45e6voryjGAgRjLzI1xJigAXEjz9yp12iyEBpO1dbiYAI1IyAFwMTWKgsUDPQiTShTnYTWlM2MVBoIZJfPi6a3YKOcfQ\/ii240af5xs03WKGFuJIh5kUGKAZOQwzECcSLbqHHzs6hgPhCU2SgZLJ1veGqEwMrTROKznzu3ijk3FMMFLolHdal9mp5nNMtiAx8uWzG4yIDKxADK+EdHdHcD1\/IuY9iIHfbXDG2mnjXQgzQmc+9FXLuoyAr5TiohBhwkQGJgbId13ohERCByhGgGBgcLCAG1oUC4jKLgUILkXGx5nc\/l8leKLbgxudfsG131sLQsuksIQY4gXgRTTHY9MQWIQYulhhYNt86fUJNxUAfndM919g804RKjAzkOad1CJa53kwLKa1mIDtNqB9pQg\/\/iJGB8osB8c7u3sQi9UrwphgYOOO7CcXIAO2BtS+ZmoFzpQnBfurQtvmR0ra9wsiAEwM7NXSsTnevPpYIiEAgULoYmHdd1M73VmghspBzX2zBLTcSvKLPIzGwImyr\/UkSAxXYgxIDFYC6xEvWG28vBiYhBq7KFgOhU1ZaEODfxWsGJAaqa0V6NxEQARHIJuDEwBlEBlpCmhDTPUNr0S60Fm3H0DFef5g2Uw4xUA\/8oQVsHt9nlnMGZjBnYGzYxpAmxKFjqRnMGUBTDA5YO4vIwKWKDNTDLivLZ6ipGDiNyMBORAZcAfESkYGWOGeAnVZcx5VEAXFZMJT5RXBycJ8x\/EzmVKNtkC+uLDBnILlSfWUFIgPiXTwyUE7eUQxcCDFwFvv5DGoGXGQgIQbcdO1kpywWxsPOY2G8W30vs1mW6+WWExngJEtGR3jjRZQ1A08oMlCuXaHXEQERqCCBKAaacmsG8tKEMue5Cn6cqr10cgLxBAqIc8WASxNCzYDEQNV2ScXfqKZi4FSfFwPzc76bEB3o\/PaLfs5Ak5s1kBED3tmuU4fJDRnzA5liT3Z6dqwlyAxlKjZ07Ig9ct8dVk7nlFZEB1W8Cw15Kz9vV5\/ByMBFiAywmxDFQCwgTrcVDWLACQLfUtTbeZwzUKe2TWNK2HZm6Jj7g7NvXiji4DGuMEUx0Nrmuwk9KTFQ8RO73kAEROD8CVAMnGFkICEGXDehIAbaUTPA67o754VFj\/N\/19q\/AsVAKuUjAxQDvoA4ExmQGKj9Pir3J6iZGLgFDtPpvgnUDLzS1Qywm1B++8ViQ8eaM9N9y02kHK+3RGSA8wS8o5QvBmJkoBJiQLyrxzuKgQshBlxkYGAJMYA6Atcu1wnd5NCx+hUDMTKQPYHYiwE\/YTuIAQiBvMjAMR8ZuFQ1A+U40+g1REAEKkggioFkZCA9dIwTiNMFxI0nBmYhBlJRDAydQvbGSYgDnybEczzThC67RAXEFTS\/qr503YgBFxnAqmh2L\/biYoDq3N3gfNABwS9VBVfozTJOEhM8mnBfdNGO5U0gLv9KNT9rrhgQbw7B8gXE5RZfcaYDxQCFH1uLpoVubmSggBhoxZRibz\/Btp191\/jmol3xzs\/mb7mRgbQYCGJXYqDG+01vLwIisGICTgwMTNial2uaUAqRAVczADGA1qKuZiDRTUhiYMWmVXdPrKkYOHU6RAaQJjQEMVBqZKCzi4M+6HB7Z4m+UhQE3m\/yjzmBUAlHKjhF0clPOknJ1KAYBXAfIaQJnSsyMBCd00vL202IYkC882sGKsGbYqAPA95cZCCIgfScgXOIgfb2dtd1KNqwt28vdjM27f5VGdv2huodf\/9LWgQkbZt\/j45\/rtiNIXP+LCQGmCZ06S51E6q7q4E+kAiIQBaBQmKgBYs169b1WmcXho51drmLeyOmCbnIQBADoxADQxIDDX10rCox0NHRhQPQT\/wr7ixl\/839Kxk5oA+V3qXht\/hAVsVmmKnqfoQJq84x8o6Sd4AK3VncjALidN1Ak83OzbrKfL7KucQAV6r3sWagDsSAeK\/s2F+JGGA0oGdDb8Yy0yLA26+34aTQzX\/c6YMCth20qNfP6Vu06WDf0c7TQjcIgqSNx6L4YNu0c75hKjXtVouy0oSWiAxIDKzMrvQsERCB6hKgGBhgZKAJ3YRCPRfFQDfEQAfEQGcDigFeLyhuohiYZM0A04RyxQAKiC9XmlB1DbKC71ZbMXBqwnawZiBEBgoVEDez6wpyqbdt3+WdcLdimXGEoqOUcZai8x9cJzpS2V5S3r+zU4wyHpN3+qPzH36G908KAX4m7\/z7+QLNruvRGnxupD01s4vKGpuamrLJCYqChSVrBtxK9f132CsqIQbE27WAc\/mOsAumCVWCtxMD6JS1tcTIwIaNm7DC1O3799O2eYdznbFtLwLc\/xORrvh78rFMBCF51kimGS1t35ljLCl0ozBgUTznJbDg2VDsT\/teA\/s2m5ycspHhmUzNwBJi4Kl9igxU8JyulxYBESgTgWJioCtEBjqxQMnrfyNFBiQGymQ8q+xlaioGTpbgnG7ZusPWr9vgiivznXYU49LZRweT6PDH9ImYPhQSKrJSKtKuUbEUouDwR+GRToMIqRNpIeAiALHNKfKnKQD4mBMCEAG482O34M408LNnF2x0JGXHj08ULSCmc7qvQmJAvAunCZWbN8UA27ieSwx0w663XrijiG3TXtDPOSdC4GtkstOE0ulD4eTjM+SK1xlEkevtO6QFJdODgrDN2DZFLmwZCgA6F7bt7dvZeLBv\/kyl5u34sXEI31nXWaNYmtDTEgOr7DKhjysCL08CFAP9\/RM478U5A1z8aHORAZcmBDHACKnrmsahY3VQ3lWOPeVai4Y5A66bECIDQyggzqoZUGSgHKjr5jXqTgywgLgZB1sHKvV37b4MB5sf6hFrBELyfQKgFwOZtVOvGZIRAycQ0huEf6UdKv8Hn0rh04Cik+RXSUOSUNpBcp0VgwjgT84UYCFluCecpOgw8SfFAO\/cbnx81g48O2ITE6mCK9Xldk75DVkzUEgMiHf5xde5xEBH9zrbvn2PrVu\/IR3p8gbq7S3ekFTmxEBWYCvadqK4OCNuo0jI2HSWKMiqA0jYtTP5GNnyNu1T3Wjr2fadFgFB6MZ\/07YpCPjvY8cm7eSJCbSkSxWsGZAYqJvzvz6ICIjAEgQoBvqWEAPtEAM8X87Nz7lobr3OhlnOTub1JM4ZmGXNQBQDTBNKTbrvyQi7mdKElsO13retvRjY7dOE\/NCxZijuDbZx01ZXG8DUibVr24OjQoeFaQrOf0r7TckF0CxRHvKnXQpFoSwJlz4UhIP7eTakIcXiyfAeQQzE94zv75x\/\/M39OyEGonPk0iiCMEiuoKadKThPI8ML9tyBMTtxfNhFCpg3zpqBn1UyMiDeFecdZzrEAuI4Z6AdK0mbt2y3te2d1t29HradWW3yA+qiGM1I3ywdG88m0aRDlCDrJBPzjILA9ULCHwBe7MYC4aA7nAjwv9OO+Xu07aRdR7Hr7Jf2jp\/RxpPRgfg3ioNnnx21l45O42Iy5e0bcwY4dOzpnylNqN4vDPp8IiACZmkxEGoGeP5kZCCmCTEywJqp+bk5V1PQ3OTbQ6\/GG68Si4gIcCgqfzK6Ozs7g\/P3iI8MBDHguglBDEACqWZgNe7oIp+5ZmLgT2\/\/PlaqR1EzcK21IhowOjJgnd0bXNitrW2tEwFtuK\/F7830NuikUAwgRSE65KGEwIuDnFvyodzIXfpv4ZcoKEINZcY5iqLDlyqkHaYsZ8mtniacqCACiokB93gQEtMps7FRA4cF60NnJRbsHHx2nz324P+wV121y2676Y\/LZmribVYt3mTdjzShC3ZcAce\/y0aG+pyw7US0q7UVto2OQbRr2nlLK9Pf\/MRqioEs247C9zxsOxlViDYcmgSlbTr5bx8NyBYETiBEkZAQAbRjpsFFsZsUwjx0pqbNRmHfp2nffeMu7HzgiQfsuSf+H2pitpXVvst2oOiFREAERCAQyIiBNjcPhmKAdYxtazu5gmgtdP7dZHlOjw\/zYvDTDRsNQ0cZOajXm8+gQDoqHHymOVEALC76lCcKnMWFWZuZnrDBwT4nBuZmp3xrUYmBet2lK\/5cNRMDd9z1iO1\/9Hlratts23ZdjmEWvviwDaulFAJMX2mlKMCdK4reWfJigE6IT9UJTnp0yP3yp7tFxz7390gq+ffkNmlBEB5MCo6s1dOECEivpgYnik5RUgzE9AnWEPAz84a5HYaaS+RXQxCMGVZQUYA5MmQP3P231nfsKfvgB95tn\/jIB1e8Y3OfKN7V433HnY\/Yw\/uft\/bOXtu640q3usIWo21tFLgUAG0uCuRtG2LXFeRGQZCJNkXbi3YeDTtXzBa05cSx4H6Nx0XiZ0FxEJz+pN3nCoFcoZsWA+GY5PvNIX2Wtu3sG4LgyJEJCAPY9z\/9tY0NHbH3X\/\/Wstp32Q4UvZAIiIAIBAI3f\/OHWNgZxwm01UVYuWI+i0gAHfwWnM8Z5W1b2wGfpRPncu+30E\/xM4c4Td43FfFZDX51J\/RxqxFj35luEQLAN6nwIoC\/OzEQRACvWbNICZqfnXZ1AsNnIAYgCPj32OjCzs7blZdvs5u+\/JkafRe9bTkJ1EwM\/Ojh5+ypAyfsyNHj1rX+ItuybS+KcBBqc2E4Km3c8ZOrp3EF1YfgfPFiTFtIOy0JcZArCJwTH1f5E05SUrAnnaWigqCAAEk7SomagXT6RMyr5goqXtTl4kEEcGo577OzTBUyG+hftP6BEfv5Iz+055\/8qXV1NdtXvvQpu\/rKS8u2r8W7erzvffiAPfb0caykDKFQZINduOMyrKTMuX1ZyLYpDLwg8GlwtO8YbYqr8lH8FhS7icjVUmI4GflKCoQYDSh0LOWmCsU0oGQKnIsQ4MXZXJQiN9p3asbbd3\/\/AtrzDdv+B+6y44d\/joun2Ze\/cENZ7btsB4peSAREQAQCgW\/8zY\/s2QPHsErunWU6xs6Jxn9tbRACiPK2tXV4QYAocFt7h+tS19TEczqiBSFC4JoxhJN6VifCnBbl\/m1DGoL\/raRbblOU7Pk0fvXfp0zH2UxRCMSIALvszbmFK9YJzGLyML8r7zNTEzaGzA1Gdpnu6dq1oE6TQe13vv0N9qnf\/a2SPqM2qm8CNRMDxPLjx47bgecO23MHX7Tmth7biTaja+BZ8GBj2I13HliMDDhxgIOLKUMtaGnoBEFYaXdOTHTU4+pkPJ5iek8iipA+1nKiCMVEQLpOYIloQLKI2EUAQm61axPpj8G0kxSFwDgWHE6emEOKUL898\/P77RfPPmw967vsTW96nb3vnf\/cdm6\/oKzWI97V433f\/mP22BMH0V3nGDzlbtt58atgu1hdgm27lrOMfDmx623b2zXsG4btUm9yol\/p9KFE6lDSuc9NmSsmdLNEQHitGNnKigYk6mCSth3FSkx3K2bfMyEF7tTJFNKETtvTj95rh1943C7Y0mPXXHO13fj7HyqrbevFREAERKDcBP7+\/z6GDIYDNjg0ajM4qXmn2q+qc3mPTj8XK1udGGB0oCNEfnFeR0qou\/P8jpN6OjIQogPpNs5OKGRCtv63jHOSFUlw28WmEtmNUfisZFfFjPMfhEBoOuEiA1i1ofM\/jxlI8\/No9IC6Td7nghhIOTEwYanpSf8YtvNtuRk98AKiu6vNPv37H7Vf\/eVfKjd2vV4NCNRUDPQNTtozh4bt1Kkz9si+n9liU7vt2HmVdfX0ulBaC7zqKAqcs5QWA95xiuk3MVKwpCBg+kNCECwVKUiuxub9nlMfkFVQnKgbigKAjY5w7nBigOcPZEO5tKCRkUXc0XXlpcP25P4f2mDfS7Zr13bbuGWH\/dtPXG8XbkGnmTLfxLu6vO9+5CUIvUH72f7HLDXfbDv2Xm3rezazQiAIAopdHxWgffOCEe29pSXTvjMtehOCt1iKT54oCNeVpNBN17gUELe5KW9J+47Xq2jbTggE245id5r2jbSgkZEF3Cfs2JGD9vT+u2148KTt3nWR7dp7sX38Q79WEfsu8+GilxMBERAB+1\/3PmN33\/0TJwh8K\/OMcx0XV9asaXE1ji2sAwtT5lkfxpRQCgL+zvboLgJMYbAGdQWcRxTSn2O0wOMOjSSWEgU89yYGUSYbRThRQIc\/nQbEz4xWz6gFOBtqApiF4Zz\/IAKiGJiH459CahAjA4xm+4JiCofQltu1UF1E\/VuHXf+ut9i73vGmsi9ayuRqQ6CmYiB+5UeeHUKbzTl7dP\/P7IVDR3BQ9djWXVfYho0XWJs7iLxyphjIEgchSpDsdBJX5NOpREy5yBEBhf4dD+rclIlkQWfy9\/jZC7VzTztLQQCwCxdqgzGYiU7SvA3jpHL6xBE7+sLPre\/UIaRYLNgVV11jV115ib39l19pW3vXVdQaxLt6vJ88NGpnMIzr6SeesKeePYiLQYdt33Wl9Wze7laUeHFwRWkwXBYTJwVvM8RwOi0nFqbHbj6Jjj7nEwWbZAAAEF9JREFUsu+gBwqmHhUSu2njy2nElbT5KG75E3VmTuROTNC+Z+H4Q+CfOGRHf\/EkhrodRpGd2SuuucZe\/9pr7HWvvrTi9l3Rg0cvLgIi8LIi8OyLWNB54rA9f+AZO3zkONpucp5AbluS0GCEq\/7OT6EI8PcoCpwYcANJIQa4AOR+8jH\/b3ZTzMx+oSCIEYM4DyYMXPXefogC+JQlLwxiGhBW7rHy7wqB6cSzM1DoEOSHo\/nHssUAIgRY\/WfBsHsuZiI5McEoAFZ8GBGIkYFdO7fZegzKvPFTv2nbt256WdlCI3\/ZuhADBHz\/E2dsdHLBejvP2g\/veQDtH08gdagLjtMrrLsHE1o7ukMOHiMGPsXCr6pSbYfi4gKdfAqtqqY7puSkF+WlXQQvKmsV1h9yebfkuSGmAVEATKOAcnJqzqYmUzY+Ooy0oEN27MUnbWy4Dzl3TfbG6\/6ZnRpasOvf\/hp742v2VM3WxLt6vH\/0+ICdHpq1Ky7qtDv\/z49d6tCCYar2ziud4O3oXO8iA75TRbNPjXN1Mwwt++JiDvpyojeIgXSaXE60IM+2E6lABaMJOTZeyLbDtSdtm3MQt0gfdQJ3emoR9j1vUxPT6Ag2bCeOPWcnjjxt05Oj1orPfB3s+2j\/vH3xk++wTRu6q2bfeiMREAERKBeB\/kEs6Lx4xvbv22eHfnHYBofHsqbBZ71PcCT8Ig2zGzg7iYXFmciArxHLFgWu8JhiIoiAdLQg\/ju2fUvn\/buS5pw6AC8IfFcg3yI0CgCKA5fmkxYDwfkPEYTMbCaKgEyRsU8LWkQaVJvt3HmR9W7eap\/+nfe5lGbdGodA3YiBiPTxF8btyOkZuEope\/Hgc3bgwAGbnUexSmunbdx8kfX0bsUsgk0h9IaDzHUYwgGXqCegAxXTLLIKjXPqCnJrDfKcpaSjlOjCEts1xtQIpv9w9Z\/3udmzWCVdRFvFWayUjtvo8IAN9R+3wYFjNoEinLNnZ237tq22e\/cue+bopL3vbdfam193sXV1oDF7DW7iXT3oDz6DFfMzc9bWjEm9hw\/ZwYPP2yh68Dc1tdmG3u3uTtte24G8U5dn6sPIsZbAiwOkGCGFqCWKg2RtQbLAvYCtp1uIFrHrZBoQN6Fd805x6+wbEYBZFNLNTC+gS1AK\/afH0Da1H4XSL7k5IROjZ6xjbYtt2bLJNm\/dbi\/2zdoH3vlqu+5VO2tm39Xbu3onERCBRifw0JMn7K77nrCe5inbt\/9JFyXIDxIk03wyRLxzzwgCosFcwAx1BD5C4M\/1vo6gkCjIRAlcZUDBguBEZIAOvIsI+HkBFAHIEUoPY\/WvkX+PEQcfEfApUe0d7XbVFZfY0MS8vevtr7c3v+FqW9fV3ui7+mX3\/epODMQ9sP\/guO3DlN6utWetq3XORtDW6sjhw3b8xGkcK2sxvbUX+fU7saq6ztowpdgV7rgoAUN0Xo27tAv8Hoc5RaWdXmWNfd2TnYgKmEAskqQI8I7\/2XBHL975BaRJsMvANEQA7qHyfrD\/KFb\/+11fXiro3t6NcPLW2UJTB5ylXrv+LVfauu611tvTURdGJ97V2w0PPjNijz4\/5vI1d\/Y228z4kB069KIdRWets1hJ6ujaYJto2xjA184OFbTtIA6cXTN9iNEx1hlAGPgVKJ8L15yeGBxmFjBalig6LvQt48WM+f+u2xX+58UtbZtj6edsDmGAafSbnoZ9cwANB6lNjg2477CldwPsu9eaWttt1jrtou1b7AO\/dhX6bzfDvnXRqJ5l6Z1EQAQqTSCFc2Pf4LT9w50P2Jm+43b65EkbHUOhLc6Xfp0l2Zkk\/9PEYuFiP\/0zwoBI\/nTzCjL37K5ADATQ0edzQqpQeMtMR6Hwt8QASp9RFESF+3MQBmGlkz5TL87rm3s32YnBWfvYB99mb3jt5dbdqfN5pe2rVq9ft2IgAjl0ahrKdo098PSI9Q1N2MZ2OCYzYzY7NYJpvSdtYHDUrVaugbJuQ1pRJxypLjhRHZ096POOCcZwplxeNgeCcBhIHATiVLh3onwRD\/Ivcg6iWISTGcjh8+1mpqexMjqG1J8ROERD+DmKzzQBx2jGOV4dHXDyN21CmlOHjc9gJXdtt736qp2256KNdu1lvba+C70V6\/Qm3tXbMeNTC3YckYLDsPEzo+jnPDlui\/MQlOODiCSdQtRgwoaHkYiPcHIrHO2Orh7rXLfROpFW1I60uXZM6W5tXuts380pcEVp\/qKRCTnzd1+X4M\/58aTvLyKLCwwH86fvEDGHfrfsIjE1AduGXU\/BvqenxiEGJrBKNO+6eHV3d9vGDRvwsdptfLbJFtZ02i9du9te98ptdmFvR13bd\/X2rt5JBESg0Qm8eHLK\/tv3f4raKHSNW0C3IfgH4xOTKDYecak2RW907r3P78VDTC0q9oSgL7L+nPXyBZOXQ9Qi03UoTqPPOP9BCEAEdHV2oq25b43ahs5Is00b7GO\/8St2+e7NSPHkkDXdGplA3YuBXPj7nhuHOm21l07POnHQtDiN7jwQBHDQZ1NwWtAXl+k505h2NIlWYKkUhELIj3D51+nindjSsQ35fFhhxVARVtsvoBpyHkU0bLsVq+kZanOtxHhwo9i3uemsW4HtwMHDQVItbRyQ1mFnke7R3Nrh7ju3b7ZLdvU4x2jPhd22YV3bqrQj8a7ebjs+kLKRyUU7eBwj4CdnbXxsGOaGtm7o8DAD8Xl2bhoO+jjsm9Oq59D1YREpdBgL73pZe0HrW9j5VqWclBnzVRFycAVi3q5Dm7hQYOY7TcCuqYchDDgzgAK6A+HhtWiZxyK4NSjkx7xNXCS6YOuddg2Gzezavh723Wq969tXrX1Xb+\/qnURABBqVwKmheZybp+2+fS+gpfSzNj95xhXotiE6mkKB1eAgxEFYiMlikBYF2d5+Id8\/a+jAEjrDv35w+xM5TLH7ENeFWrBqyQYWnd2duCag7mtmHpkLG+wdb3mt7d29w7ZfuMk2ru+wzRsUCWhUm839XqtODOR+gV9AmY9MnrX21iYbHodTc7bJBoansHo\/idVNrN7DcUph+pHLnXN9cuHsu7ZaHAKFdAj8ZIENc\/DclECmGbnCHjR7d+l7XG1twnNxcOF35yB1dMHJwrCR9rVIkVjnUiFaW5vtgo3oDsPw2vq1OIjqd\/X\/fIxbvM+H3vKeS9ZDsGkWms\/Nr7GJ6bM2NOp7QU87UTBuk2zhg3Jk1\/qNOaJw9N0YeU6VhGPvfmcYmW2xWUsT2ttFu4bFu\/zV1BxcfYjizk46+xyi49vkbdnUZT3dbdbe1mI961qtEzUBvevbGta+l7eHtLUIiIAIZBMYnZxDU5BFO93fjxkrZ+wgOiQODpxGF8ERP1gVi4k464aWnUgxTiEai3vx7KICaUeF2hiGj+Eiw6EZBX+yGQU7MjqJwEUhPLcTPkz3uh7bsWuPXfeai23jxh7bu20DzvGN6bfIRs9NYNWLgWJf8enD4zY2jZVT5PN3wJFpg1iYmFmAUm+CCqbjj2Jf5P4BAJytNTaV4t+YJ71o6zpbXBBgFjmAne0tTjlPoCNQW+saW9\/Z7Aqar7hovVtNvWCTlDP3gXif+2Ar1xb9IykbnkCK0cCMc84pFiZhvy0QoiwsnkI0rAUCNjWL0fF401bYPleFZvBv\/lzX3mxzKCibha13dcDWIRRGJ1Io\/m22dR3Ntr671TZjtX\/zhtoUtZeLk15HBERABGpN4LmXJlGL5Yt7B9BWPDU1g7TLaTt6+owND5yxvj4KhWGbRn9mLvizIxx\/0jfxq\/k8i3M1J9SGOac+8zv\/zsVM7+wzqutX\/bux6s9U6c1bLkDqdI9dvmcrai274bN0I3150S7dsd56N9RHzWKt95He39nbEhJThERABERABERABERABMpO4NDJafvF8THr7sAKPiIGTNehCJhAN8ImY6QX3duwaslaRQqCaSxoLuIvnW2I6SINlGmaC1jtX1jEQiUmAk+iunkGC0MdWPDZ1NMFh7+HGaK2WY0cyr7vGu0FJQYabY\/q+4iACIiACIiACIiACIhAiQQkBkoEpc1EQAREQAREQAREQAREoNEISAw02h7V9xEBERABERABERABERCBEglIDJQISpuJgAiIgAiIgAiIgAiIQKMRkBhotD2q7yMCIiACIiACIiACIiACJRKQGCgRlDYTAREQAREQAREQAREQgUYjIDHQaHtU30cEREAEREAEREAEREAESiQgMVAiKG0mAiIgAiIgAiIgAiIgAo1GQGKg0faovo8IiIAIiIAIiIAIiIAIlEhAYqBEUNpMBERABERABERABERABBqNgMRAo+1RfR8REAEREAEREAEREAERKJGAxECJoLSZCIiACIiACIiACIiACDQaAYmBRtuj+j4iIAIiIAIiIAIiIAIiUCIBiYESQWkzERABERABERABERABEWg0AhIDjbZH9X1EQAREQAREQAREQAREoEQCEgMlgtJmIiACIiACIiACIiACItBoBCQGGm2P6vuIgAiIgAiIgAiIgAiIQIkEJAZKBKXNREAEREAEREAEREAERKDRCEgMNNoe1fcRAREQAREQAREQAREQgRIJSAyUCEqbiYAIiIAIiIAIiIAIiECjEZAYaLQ9qu8jAiIgAiIgAiIgAiIgAiUSkBgoEZQ2EwEREAEREAEREAEREIFGIyAx0Gh7VN9HBERABERABERABERABEokIDFQIihtJgIiIAIiIAIiIAIiIAKNRkBioNH2qL6PCIiACIiACIiACIiACJRIQGKgRFDaTAREQAREQAREQAREQAQajYDEQKPtUX0fERABERABERABERABESiRgMRAiaC0mQiIgAiIgAiIgAiIgAg0GgGJgUbbo\/o+IiACIiACIiACIiACIlAiAYmBEkFpMxEQAREQAREQAREQARFoNAISA422R\/V9REAEREAEREAEREAERKBEAhIDJYLSZiIgAiIgAiIgAiIgAiLQaAQkBhptj+r7iIAIiIAIiIAIiIAIiECJBCQGSgSlzURABERABERABERABESg0QhIDDTaHtX3EQEREAEREAEREAEREIESCUgMlAhKm4mACIiACIiACIiACIhAoxGQGGi0ParvIwIiIAIiIAIiIAIiIAIlEpAYKBGUNhMBERABERABERABERCBRiMgMdBoe1TfRwREQAREQAREQAREQARKJCAxUCIobSYCIiACIiACIiACIiACjUZAYqDR9qi+jwiIgAiIgAiIgAiIgAiUSEBioERQ2kwEREAEREAEREAEREAEGo2AxECj7VF9HxEQAREQAREQAREQAREokYDEQImgtJkIiIAIiIAIiIAIiIAINBoBiYFG26P6PiIgAiIgAiIgAiIgAiJQIgGJgRJBaTMREAEREAEREAEREAERaDQCEgONtkf1fURABERABERABERABESgRAISAyWC0mYiIAIiIAIiIAIiIAIi0GgEJAYabY\/q+4iACIiACIiACIiACIhAiQQkBkoEpc1EQAREQAREQAREQAREoNEISAw02h7V9xEBERABERABERABERCBEglIDJQISpuJgAiIgAiIgAiIgAiIQKMR+P\/qFLYe7Kf54AAAAABJRU5ErkJggg==\" width=\"602\" height=\"452\"><\/span><\/span><\/p><\/h1>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Implementation of Multi-Tenancy on Databases:<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">&nbsp;The following are the 4 approaches I will cover in this blog post:<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ol class=\"wp-block-list\"><li>Single database, shared schema<\/li><li>Single database, separate schema<\/li><li>One Database per tenant<\/li><li>Multiple databases, multiple tenants per database, shared schema<\/li><\/ol>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1.Single database, shared schema :&nbsp;<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\"><li>One database to hold the data for all tenants<\/li><li>Every tenant&#8217;s data is stored in the same set of tables<\/li><li>Tables that contain tenant-specific data include a column to identify which tenant each row belongs to<\/li><\/ul>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"526\" height=\"287\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\" alt=\"\" class=\"wp-image-4130\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png 526w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema-300x164.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema-181x99.png 181w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema-147x80.png 147w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema-394x215.png 394w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">\u274c Risk of exposing one tenant&#8217;s data to another tenant or updating the wrong tenant&#8217;s data (e.g., if a developer misses a WHERE clause to filter on the tenant id)<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<ul class=\"wp-block-list\"><li><em>Mitigation:<\/em><a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/security\/row-level-security\"><em> <\/em><\/a><em>Row-Level-Security(RLS) can be used to control access to rows in a table. Create an inline table-valued function to apply a filter on the tenant id and then create a security policy to apply that filter predicate automatically on the target tables. As long as you maintain that security policy with the full set of tables, queries\/updates on those tables will then be automatically enforced. Developers don&#8217;t need to remember to manually add the filter clause to every SQL statement.<\/em><\/li><\/ul>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"wp-block-paragraph\">\u274c No tenant isolation<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Maintainability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f One database schema to maintain and a simple schema update rollout process\u2014it only needs to be applied once<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Manage the High Availability\/Disaster Recovery\/maintenance operation\/monitoring strategy for just one database<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Limited development\/application code complexity\u2014single schema, single database to connect to<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Adding new tenants is easy\u2014no processes needed around database\/schema provisioning or connection determination<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Any query or data modification must include<s>s<\/s> a predicate to restrict the operation to a specific tenant id<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Mitigation: Can use RLS policy<\/em><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Must remember to update the RLS policy as new tables are added over time<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Can&#8217;t easily restore a single tenant&#8217;s data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Scalability<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Limited to scaling-up hardware, rather than scaling out<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Risk of &#8220;noisy neighbors&#8221;\u2014tenants can impact the performance of the system for all others due to a lack of isolation and all competing for the same resources<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c One-size-fits-all performance tuning and stability\u2014tenants&#8217; data volumes and usage can vary dramatically, impacting things such as execution plans making it more difficult to optimize performance across every tenant<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c As the number of tenants and data per tenant grows, maintenance activities take longer, potentially impacting all tenants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2.Single Database, Separate Schema :&nbsp;<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>One database to hold the data for all tenants<\/li><li>Separate tables for each tenant, each set under a tenant-specific schema<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"777\" height=\"272\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1.png\" alt=\"\" class=\"wp-image-4122\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1.png 777w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1-300x105.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1-768x269.png 768w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1-283x99.png 283w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1-229x80.png 229w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/image-1-394x138.png 394w\" sizes=\"(max-width: 777px) 100vw, 777px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Tenant data has some more isolation (but still within the same database)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f No RLS needed; reduced risk of missing a WHERE clause to limit to specific tenant&#8217;s data<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Either queries need to be dynamic to define the qualified table name or connect using a tenant-specific user account with the default schema set to that tenant&#8217;s schema (preferred)<\/em><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Still a risk of querying the incorrect schema (e.g., specifying the schema for an object when it should have instead come from the user account&#8217;s default schema\u2014usual best practice is include schema prefixes, which can feel unnatural)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Still limited data isolation<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Maintainability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f 1 database to manage High Availability\/Disaster Recovery\/maintenance operation\/monitoring strategy for<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Extra scope and control over some tenant-specific maintenance activities<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Schema updates more involved, needing to be rolled out to n tenants<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Mitigation: Automate the process<\/em><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Query complexity<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Can&#8217;t easily restore a single tenant&#8217;s data (although it&#8217;s a slightly better process than approach 1 due to isolation of tenant data)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Adding new tenants is more involved as new schemas\/user accounts need to be created<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><em>Mitigation: Automate the process<\/em><\/strong><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u274c<\/strong> As the number of tenants grows, there will be a lot of database objects being created to manage and maintain<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Scalability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Data is partitioned into smaller tables, with smaller indexes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Optimizations could be made at an individual tenant&#8217;s schema level<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Caution: This could cause schema drift (e.g., custom indexes, which introduces a maintenance \/ source control process cost). Strong processes <\/em><em>would be <\/em><em>needed to track<\/em><em> <\/em><em><s>these<\/s><\/em><em> changes to the schema<\/em><em>.<\/em><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Limited to scaling-up hardware, rather than scaling out<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Risk of &#8220;noisy neighbors&#8221;\u2014tenants can impact the performance of the system for all others due to limited level of isolation and all competing for the same resources<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3.One Database Per Tenant<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each tenant has their own database<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"565\" height=\"235\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant.png\" alt=\"\" class=\"wp-image-4131\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant.png 565w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant-300x125.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant-238x99.png 238w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant-192x80.png 192w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/One-Database-Per-Tenant-394x164.png 394w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Highest level of tenant isolation, supporting options for shared server and\/or isolated servers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Potentially more servers to patch and keep secure<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Maintainability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Maintenance jobs can be managed and customized per tenant<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Can easily restore\/relocate\/clear down a tenant&#8217;s data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f No added query complexity<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Adding new tenants is more involved, as new schemas need to be created<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Mitigation: Automate the process<\/em><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c As the number of tenants grows, there will be more databases being created to manage and maintain<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Some added complexity to maintain a registry of <em>tenant-db<\/em> mappings\/application code to determine which connection to use<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Scalability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Scale-out and scale-up are both options\u2014tenants can be spread over multiple servers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Choose to balance between cost (higher tenant density\/fewer servers) and performance (lower tenant density\/more servers)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Control over &#8220;noisy neighbor&#8221; risks<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4.<\/strong><strong>Multiple Databases, Multiple Tenants Per Database, Shared Schema<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Hybrid of approach #1 and approach #3<\/li><li>A pool of databases exist<\/li><li>Tenants share a database and schema with other tenants, but are spread over multiple databases<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"263\" src=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema.png\" alt=\"\" class=\"wp-image-4132\" srcset=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema.png 619w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema-300x127.png 300w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema-233x99.png 233w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema-188x80.png 188w, https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/MultipleDatabases_SharedSchema-394x167.png 394w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Security<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Some tenant isolation possible in general over approach #1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c Tenants still share a database and schema with others (same RLS mitigation applies as approach #1)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Maintainability<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Choose to balance between overhead of more databases to maintain (lower tenant density) versus fewer (higher tenant density)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Possible to relocate a tenant&#8217;s data (although harder than approach #3)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c More maintenance overhead than approach #1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Scalability<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Scale-out and scale-up are both options\u2014tenants can be spread over multiple servers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2714\ufe0f Choose to balance between cost (higher tenant density\/fewer servers) and performance (lower tenant density\/more servers)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You might have now gained a brief idea about multi-tenancy, and how it can be implemented on a PostgreSQL database. While there is no one-size fits all approach, choosing the right architecture and automation tools will ensure that your PostgreSQL databases as well as DBAs remain massively performant, or at the very least, optimally utilized.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How would you implement multi-tenancy in your company? Comment below and let us know your thoughts.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: Multi-tenant architecture, more commonly referred to as multi-tenancy, is a software architecture where multiple instances of an application run [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[23,42],"tags":[],"class_list":["post-4117","post","type-post","status-publish","format-standard","hentry","category-postgresql-14","category-postgresql-15"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB\" \/>\n<meta property=\"og:description\" content=\"Introduction: Multi-tenant architecture, more commonly referred to as multi-tenancy, is a software architecture where multiple instances of an application run [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\" \/>\n<meta property=\"og:site_name\" content=\"OpenSource DB\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-07T07:50:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-07T08:32:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\" \/>\n<meta name=\"author\" content=\"Sai Nalini Kurada\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:site\" content=\"@opensource_db\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sai Nalini Kurada\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\"},\"author\":{\"name\":\"Sai Nalini Kurada\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/76f19cce844de2fd68bde875459d4758\"},\"headline\":\"Multi-Tenancy on PostgreSQL : An Introduction\",\"datePublished\":\"2023-06-07T07:50:57+00:00\",\"dateModified\":\"2023-06-07T08:32:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\"},\"wordCount\":1886,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\",\"articleSection\":[\"PostgreSQL 14\",\"PostgreSQL 15\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\",\"name\":\"Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB\",\"isPartOf\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\",\"datePublished\":\"2023-06-07T07:50:57+00:00\",\"dateModified\":\"2023-06-07T08:32:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png\",\"width\":526,\"height\":287},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.opensource-db.in\/wp1\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Multi-Tenancy on PostgreSQL : An Introduction\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#website\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"name\":\"OpenSource DB\",\"description\":\"Your Trusted OpenSource Databases partner\",\"publisher\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#organization\",\"name\":\"OPENSOURCE DB PRIVATE LIMITED\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"contentUrl\":\"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png\",\"width\":368,\"height\":120,\"caption\":\"OPENSOURCE DB PRIVATE LIMITED\"},\"image\":{\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/\",\"https:\/\/x.com\/opensource_db\",\"https:\/\/www.youtube.com\/channel\/UCmTI5h\",\"https:\/\/www.linkedin.com\/company\/opensource-db\",\"https:\/\/www.instagram.com\/opensource_db\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/76f19cce844de2fd68bde875459d4758\",\"name\":\"Sai Nalini Kurada\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a0eccc49c4b243bd7396c79b14779a5e0965c893eb4a0c7fd6cf07e9e2d67640?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a0eccc49c4b243bd7396c79b14779a5e0965c893eb4a0c7fd6cf07e9e2d67640?s=96&d=mm&r=g\",\"caption\":\"Sai Nalini Kurada\"},\"sameAs\":[\"https:\/\/test.opensource-db.in\/wp1\/admin\"],\"url\":\"https:\/\/test.opensource-db.in\/wp1\/author\/sai-nalini-kurada\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB","og_description":"Introduction: Multi-tenant architecture, more commonly referred to as multi-tenancy, is a software architecture where multiple instances of an application run [&hellip;]","og_url":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/","og_site_name":"OpenSource DB","article_publisher":"https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","article_published_time":"2023-06-07T07:50:57+00:00","article_modified_time":"2023-06-07T08:32:54+00:00","og_image":[{"url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png","type":"","width":"","height":""}],"author":"Sai Nalini Kurada","twitter_card":"summary_large_image","twitter_creator":"@opensource_db","twitter_site":"@opensource_db","twitter_misc":{"Written by":"Sai Nalini Kurada","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#article","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/"},"author":{"name":"Sai Nalini Kurada","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/76f19cce844de2fd68bde875459d4758"},"headline":"Multi-Tenancy on PostgreSQL : An Introduction","datePublished":"2023-06-07T07:50:57+00:00","dateModified":"2023-06-07T08:32:54+00:00","mainEntityOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/"},"wordCount":1886,"commentCount":0,"publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png","articleSection":["PostgreSQL 14","PostgreSQL 15"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/","url":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/","name":"Multi-Tenancy on PostgreSQL : An Introduction - OpenSource DB","isPartOf":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#website"},"primaryImageOfPage":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage"},"thumbnailUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png","datePublished":"2023-06-07T07:50:57+00:00","dateModified":"2023-06-07T08:32:54+00:00","breadcrumb":{"@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#primaryimage","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2023\/06\/SingleDatabase_SharedSchema.png","width":526,"height":287},{"@type":"BreadcrumbList","@id":"https:\/\/test.opensource-db.in\/wp1\/multi-tenancy-on-postgres\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.opensource-db.in\/wp1\/"},{"@type":"ListItem","position":2,"name":"Multi-Tenancy on PostgreSQL : An Introduction"}]},{"@type":"WebSite","@id":"https:\/\/test.opensource-db.in\/wp1\/#website","url":"https:\/\/test.opensource-db.in\/wp1\/","name":"OpenSource DB","description":"Your Trusted OpenSource Databases partner","publisher":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.opensource-db.in\/wp1\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/test.opensource-db.in\/wp1\/#organization","name":"OPENSOURCE DB PRIVATE LIMITED","url":"https:\/\/test.opensource-db.in\/wp1\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/","url":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","contentUrl":"https:\/\/test.opensource-db.in\/wp1\/wp-content\/uploads\/2021\/10\/osdb-logo-tm-2.png","width":368,"height":120,"caption":"OPENSOURCE DB PRIVATE LIMITED"},"image":{"@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/OpenSource-DB\/100072970755470\/","https:\/\/x.com\/opensource_db","https:\/\/www.youtube.com\/channel\/UCmTI5h","https:\/\/www.linkedin.com\/company\/opensource-db","https:\/\/www.instagram.com\/opensource_db\/"]},{"@type":"Person","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/76f19cce844de2fd68bde875459d4758","name":"Sai Nalini Kurada","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.opensource-db.in\/wp1\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a0eccc49c4b243bd7396c79b14779a5e0965c893eb4a0c7fd6cf07e9e2d67640?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0eccc49c4b243bd7396c79b14779a5e0965c893eb4a0c7fd6cf07e9e2d67640?s=96&d=mm&r=g","caption":"Sai Nalini Kurada"},"sameAs":["https:\/\/test.opensource-db.in\/wp1\/admin"],"url":"https:\/\/test.opensource-db.in\/wp1\/author\/sai-nalini-kurada\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Sai Nalini Kurada","author_link":"https:\/\/test.opensource-db.in\/wp1\/author\/sai-nalini-kurada\/"},"rttpg_comment":2,"rttpg_category":"<a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-14\/\" rel=\"category tag\">PostgreSQL 14<\/a> <a href=\"https:\/\/test.opensource-db.in\/wp1\/category\/postgres\/postgresql-15\/\" rel=\"category tag\">PostgreSQL 15<\/a>","rttpg_excerpt":"Introduction: Multi-tenant architecture, more commonly referred to as multi-tenancy, is a software architecture where multiple instances of an application run [&hellip;]","_links":{"self":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/comments?post=4117"}],"version-history":[{"count":7,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4117\/revisions"}],"predecessor-version":[{"id":4133,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/posts\/4117\/revisions\/4133"}],"wp:attachment":[{"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/media?parent=4117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/categories?post=4117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/test.opensource-db.in\/wp1\/wp-json\/wp\/v2\/tags?post=4117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}