From 1021fccc09d8da15754fd295b8e526c82cb1a757 Mon Sep 17 00:00:00 2001 From: William Buchwalter Date: Mon, 12 Mar 2018 11:11:39 -0400 Subject: [PATCH 01/13] udpdate instructions for AKS --- 2-kubernetes/README.md | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/2-kubernetes/README.md b/2-kubernetes/README.md index 5b32435..d6f32d8 100644 --- a/2-kubernetes/README.md +++ b/2-kubernetes/README.md @@ -69,25 +69,16 @@ We will be creating a deployment in the exercise toward the end of this module, ## Provisioning a Kubernetes cluster on Azure -There are multiple ways to provision a Kubernetes (K8s) on Azure: -* ACS -* AKS -* acs-engine +We are going to use AKS to create a GPU-enabled Kubernetes cluster. +You could also use ACS or acs-engine if you prefer. -AKS is currently still in preview and acs-engine is a bit more complex to setup, so we advice you to create your cluster using ACS. - -We are going to create a Linux-based K8s cluster. -You can either create the cluster using the portal, or using Azure-CLI (`az`). ### A Note on GPUs with Kubernetes -As of this writing, GPUs are still in preview with ACS. -You can deploy an ACS cluster with GPU VMs (such as `Standard_NC6`) in `westus2` or `uksouth` but you should be aware of some pitfalls: -* Deploying a GPU cluster takes longer than a CPU cluster (about 10-15 minutes more) because the NVIDIA drivers need to be installed as well. -* Since this is a preview, you might hit capacity issues if the location you chose does not have enough GPUs available to accommodate you. +As of this writing, GPUs are available for AKS in the `eastus` and `westeurope` regions. +Notet that currently, deploying a GPU cluster takes longer than a CPU cluster (about 10-15 minutes more). -**Unless you are already pretty familiar with docker and Kubernetes, we recommend that you create a cluster with CPU VMs to save some time.** -Only module 3 has an exercise which is specific for GPU VMs, all other modules can be followed on either CPU or GPU clusters. +Only module 3 has an exercise which is specific for GPU VMs, all other modules can be followed on either CPU or GPU clusters, so if you are on a budget, feel free to create a CPU cluster instead. ### With the CLI @@ -105,16 +96,15 @@ With: #### Creating the cluster ```console -az acs create --agent-vm-size --resource-group --name ---orchestrator-type Kubernetes --agent-count ---location --generate-ssh-keys +az aks create --agent-vm-size --resource-group --name +--agent-count --location --generate-ssh-keys ``` With: | Parameter | Description | | --- | --- | -| AGENT_SIZE | The size of K8s's agent VM. `Standard_D2_v2` is enough for this workshop. | +| AGENT_SIZE | The size of K8s's agent VM. Choose `Standard_NC6` for GPUs or `Standard_D2_v2` if you just want CPUs. | | RG | Name of the resource group that was created in the previous step. | | NAME | Name of the ACS resource (can be whatever you want). | | AGENT_COUNT | The number of agents (virtual machines) that you want in your cluster. 2 or 3 is recommended to play with hyper-parameter tuning and distributed TensorFlow | @@ -135,7 +125,7 @@ The `kubeconfig` file is a configuration file that will allow Kubernetes's CLI ( To download the `kubeconfig` file from the cluster we just created, run: ```console -az acs kubernetes get-credentials --name --resource-group +az aks kubernetes get-credentials --name --resource-group ``` Where `NAME` and `RG` should be the same values as for the cluster creation. @@ -154,7 +144,6 @@ NAME STATUS AGE VERSION k8s-agent-ef2b999d-0 Ready 9d v1.7.7 k8s-agent-ef2b999d-1 Ready 9d v1.7.7 k8s-agent-ef2b999d-2 Ready 9d v1.7.7 -k8s-master-ef2b999d-0 Ready 9d v1.7.7 ``` If you provisioned GPU VM, describing one of the node should indicate the presence of GPU(s) on the node: From bb5d036335631997f49884d91e4407f64bf0daa3 Mon Sep 17 00:00:00 2001 From: Microsoft GitHub User Date: Fri, 27 Apr 2018 10:47:37 -0700 Subject: [PATCH 02/13] Initial commit --- .gitignore | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a1338d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ From bcbffd5f97a8d36b06b57fbd39877e439ac9bca2 Mon Sep 17 00:00:00 2001 From: Microsoft Open Source Date: Fri, 27 Apr 2018 10:47:41 -0700 Subject: [PATCH 03/13] Initial commit --- LICENSE | 395 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a2c95fc --- /dev/null +++ b/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. \ No newline at end of file From 4273f5cdadbf9f9af0d7afd8be8a8e22c73bd852 Mon Sep 17 00:00:00 2001 From: Microsoft Open Source Date: Fri, 27 Apr 2018 10:47:41 -0700 Subject: [PATCH 04/13] Initial commit --- LICENSE-CODE | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 LICENSE-CODE diff --git a/LICENSE-CODE b/LICENSE-CODE new file mode 100644 index 0000000..b17b032 --- /dev/null +++ b/LICENSE-CODE @@ -0,0 +1,17 @@ +The MIT License (MIT) +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT +NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From e64d8b3d4460541549217b224f4bca63aba9f2c5 Mon Sep 17 00:00:00 2001 From: Microsoft Open Source Date: Fri, 27 Apr 2018 10:47:43 -0700 Subject: [PATCH 05/13] Initial commit --- README.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f88d52f --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ + +# Contributing + +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.microsoft.com. + +When you submit a pull request, a CLA-bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +# Legal Notices + +Microsoft and any contributors grant you a license to the Microsoft documentation and other content +in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), +see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the +[LICENSE-CODE](LICENSE-CODE) file. + +Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation +may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. +The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. +Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653. + +Privacy information can be found at https://privacy.microsoft.com/en-us/ + +Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, +or trademarks, whether by implication, estoppel or otherwise. From 35946f8bfbd568901f00bfe4c6df135a0797b5f1 Mon Sep 17 00:00:00 2001 From: William Buchwalter Date: Fri, 27 Apr 2018 14:52:18 -0400 Subject: [PATCH 06/13] Update README.md --- README.md | 66 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 6acc4d2..2f710de 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,3 @@ -<<<<<<< HEAD - -# Contributing - -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.microsoft.com. - -When you submit a pull request, a CLA-bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -# Legal Notices - -Microsoft and any contributors grant you a license to the Microsoft documentation and other content -in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), -see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the -[LICENSE-CODE](LICENSE-CODE) file. - -Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation -may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. -The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. -Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653. - -Privacy information can be found at https://privacy.microsoft.com/en-us/ - -Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, -or trademarks, whether by implication, estoppel or otherwise. -======= # Train TensorFlow Models at Scale with Kubernetes on Azure j z4I*r7M`71b?4D@k&Emp6OB958U=MuVNum@L=-&O5@vO| zdvX^#sWLFS*N`E!zA5{11rRfWDntM3L~H<+Dmbu$LVCGO+@=#QfrfLK>c_W9gY}xi z5AQk;d=FcN-7tsT zx^;`{IkYRt_F+3Z@Q#3yM8JK;G=3*Yvq=x3%!?z19!tBdJTdc6QPn&j(?)PC2;38C zaU*G0sx9YU%XcJYQz$00BwV00J95BW%RnQO$}z?<9yIA0N*oGFl6y<2vkaD-6eY2nD3q^Bb;>88T z3%y{&SYa1d@O+!x9GGUj;*{w#BKhK*&|@%h0o8(nc-UqM3luJp5fMF(g?aH})(yOMqKExAr{eV_+?TDutm!6pxc=g`@)H`fwe%b=*IDSmY+Z z&yB&tIFXF!Ecqy?ZYjrdzZEc|fWTL6k4C|f$f4lyyx$a?NYGJK5&m+RXlu?aEGdYD ze+ICP+_j3r2zCHq7#VfCT-UnXYj|)_n;9vaCNvK2RRS(oO5YG|kLqV*0IS2poaQo% ztwtqumgkS35V}mU<>Y)9xU!rYN{CDCmKBQ~D~rUEhupaaPT`ZF-`>=83`Q?C9q;B^ zOa1z<+3j4AgGp}|RLztEXgaRn8?S2i5Vhu^wm5dZ$!sS|P{;L2TWp~+wD4;xSFmw- z7+1-2BU>k@*c#1ZrPrQKC~(3cmlWy^0j!nHKFEd5XWoojf|t3_CWlf}33_9-_l}gi? z^Bo_4{|%d9_1838@oecRX|z3QXk%;@-xDCY+roNnrC>JGIt&U~%*Uco8;W{5^{F}- z;LXu=N`S&=NgR6F5R-$)A{3?bvEJ)E*^RUfF2_eb)h2sYGULaweZPB8p8wHN@vOg1 z-Cp>nIh;n`RWvEP$$=X^t8TQYb}bjfbEvv04MnRXz;bXrsDr1bknC%B z_y!)U?oC6_NpHf|C8;_8F>G~&0H;-gE$``CZMIQiFGuc~w8D6tHc1Zg!pHdzw!Vd4 z)dk@Qb+HOqZex*-%tyMlv$U-(X$O7?auOzS85)(Xiu?Hh>0d|57J^58^Rn8eumhIZ zNMNNGp4!M0t6|r49ewO-o|*ACjWCMJ(BnRn-w69ZTV2W8Hn>Z#>oa{vTIKE|+GYpnk8K#_j)5LK~p^wL5Yr|mWU}JnRYAUxAwyU7C&-Y)U zA}$IBA&vIMT3*p9PcWVMy*JZKgpc#Z*}6y*!up<_JRz2b@0_j|O@g5{?{nJ{11Pvw z;$LQdJjMa@WA-L9ONGT6SES5e$O7J>NP%7WoBr;=ozQr787O*$oS3HEA$h+u0z;~` zCsTy)Vy#iCQOF8D1&W9ST-Le~_mpA?4W7Oc9#TDzstihU)<9`ltvf5*ND|jwsKKo z5tCK|Whm|7KG+b7m!>uFn483dw~rzSULHIx2v^(K3N;B?&fzdukUL}C_XVkpm5ij${2QIpntr1=ovIRvnaaHU$) zX#)nbWywL65AMp9vQyc-?}|#bfHKxxqPH%4I~=G5DDw+YQIDV&w{Y zz62bID&QdPOWX2r)oGJ^4)n6npMMTED7PE$mPJt_EknaWD8rA)GY9H=P42!3!>b`g zgQ^jBf9gUX!Qe+3%cxH`e)WVsZEpha=Dn&LlPgPN2MQG`bi`p;Urm;(1Ok?JHWJ6# z>yu!r*8QX(sOz~l2KKq6(f6L#mhlmWf5phA!e%^p(^f!PK?@tKG*jc>e-Ff=Ri}sR z$cn0A^$H^?9q2|hqVOYe+_jKO2U^8NFB~+=i<8CjV80B zMIjUVIKr`Zx0Qg7)f;=HOWBf{o-yxqiCdZNLE%#iUMlLC7m7n7m4^t|(P z1uE(!WACrn3}N2|3f+^gtJxKaPQhZcVTOOX^$i~0%+t8+#ks3Q`BW`(>)t`^&&#B2 zSJli6?{bE7UW^O-%sQ=+KO;CWuE-{2>ZpOgM~5;$`f{fd?QqS{&yR(eV~mvkB-0Kg zlNg{%ZCPAvVd>PvHad2Pp+4A=!BOtMr|>k<^O>0*z5kF*= z??3Ao#Hm2T!VgD2KYO}WpY}0u&g}4IF2rL-`I_1Mci#(};T3F#j#2S8++l;+P;vTQ zyKh(6ek@%y?3>^T9AGS)nqLRQI&cvs%+O*hoDVCR}3Wz6e}R zFi_GB=dJ7GxM5Kf}0Y1l;OG2*$)!G;{ueY}Unr0Zt(M|&% zeT3NcaTO2hNK&GGL;kd(Pz06a_b>-aMA_^is48xERVilKYA`b4X{_ zpQZOp{T)>v*%r-dJI!GV#TRGV^%D1POe}-&f7C``n$)YKFrJ`YXUU@3@K{;tZSw&b zK!zUI%BPQSD?uzVspYg3aRhDyD#&8jr9?Di^9-oDS|`1owjxk`lp`8OX}?)9dfM8# zgl5SQ&MMPz0J=HPAmNS)MYFo<*SKhd<2YxdsX#B`xa>`+vMfzX@hjjCPFkytBZw?o zrVOS~i1?~MLDa3VoY*zmCl8-n!AuI|2LVRrJW%bMA`+y)6&Io-G2-wD<`6b$QdSm)^`88I?m~9(OcI>OESuy9Y4NRDLQOGdh!w>%ZsjiuWFHwGe_sEiGBg8JxDDV zup6cftX}P2RU9%0IGaOzY_MDNJJVtt){gNj(!+*CXSRUa^}xZJ3R*O}#=94mbe29P zjJN>ypZS;l%bg4DZ~l+{hvGS2%`3}E+Bs_8UxbP6xDV;5r&e=kWTzhe_|tC!wN{FC@VYY{`L~sh8rhm`+aUK>))F{C0>aP!*621=7>+Lr{rtSK%=T0 zsD?AAkj^RFF4gtnGhNGECiS`W5fsku0Pqd zH|CRjnhoFft8GLN33{p^Q(Ok`r09lW+-{d)aX6sRJqa@Zcnoi6@-S$d6(mS5MtCdy zs_pVu`^ggp)R1HZ9(xJ?8Y}17eRHHpYrAXT^>A3Zgg_JY;~MGRxE4L;%mbbxk&2ABjC;J&S|I$aeci7poFVu#a} zDEPsZTe~RP*$_w@$KtT1P5=hE)f|3fz<#+SP`4aw;wrdoIjgcxU6P6xN6Yn~>dkaW zqOltrL@BwdlmcMvVoAMMv)T<{p60l!LBhj&2}CpqIF|h+Tr~wIK?>Tn`P!kLAF&ul zBW{99XX4$j>9PsF{^c_AIEEAV_*vnTijlg-P;pn)d~h|MK&4OJa!pkk1!=a_=RrmG zpl|t@G3>iXK7IYpYvfJ~PD@nslnsSR#LHXwH9q`9$6JaVEHAb!_NEZi)Lgc78FZtH!Jr)q>x$0Kq?-g8lY(Sg%^kCxheS22nQ>=a=-Y33 zJKwV03g>*+;9Oy`sIL0W7)*`Kyk@Wm_Ed_vj<#q)|K+DPc?(?Bnk&|>yZ}$ldppPJ zStr^XZi(A4151Br|Mi8tnhcJG+g@T(sGjS8RU{4TT@eQRF43YN1mN-Jdn&M+8`zvp z;b+4VUbYwPnWrxK=l=r8pRY*p{YAKKKEGPn5g6G_>021*V6-%?Min<*c9N&q*_#)@ zS+fuG_7YJ(VSJ?OW4+ZX#sbj8mk<3QDmpP+@JRpvdii?UNr!jmn|ezXyIXIbU6r?)fT?99ly{JHhbI`o zFfapx#LlFmbK!cj93{w6gQoc6;Dj|^wDmdLIr=BmDscgCmwdv@#Us)O_%P-`%pL9Q z6#G2dqyK@lxV-|x4)uwlM6>NZy+l6@6g5~D9pl@oxoEu7mRaTP0K&olTsboRSMcj} z&(iWY{L1m@0vxs2RbA2|1*O z3@|VQiFqd!TC+;uzJkNfmO0p+_7*#p0?yO}SRWcHC)1cMRY!g`14XFdU?6~UA#xUj8y#W`zW?D!59xyzO$B1jYU9@y;L;>t>sPaA(9>!4&)FkN zH5SV8u9OXsNVCU(?1+iJJ|v>hyaCFIFO8$Ew`q2AnsNd&K!97~%iH+8C8Vqa>oguT zA>4!mOt%BCn>4ROq!{!in!)33q&lY+l*B{`S`T?;isjJ&@xbP4BNX$L5ITN9;{PB7 z#nX5owl_7s15`4%;$Bb{71jA(5iHK^J4b=8I#t8%aQGpg@{RYXu7kXk!_1JioGfPA zg0zL93R&ov&PdZl8$D!hCp?bBqVkH$BNRwz1VEj%$*sd>&dam?P0%)#LORGA0^s)M zkjDiyYtN239T^ZzHFGt+df&g?&AjHc7b^9QzFxBMtPH`MzhxoqrowuEHN}S*Ltf!j zeJK~jQ(cgfX=SXJqWrNVf~!iWciwlV-<8e?RNJgIz<)3=)9)#*v4Mjz%1A9FkWsrf z)c`okN8Pv($n(wzo5=NEGT`xKCOcSJSqUK}ICk(ba~DowmlyCL;Q(g<%+~qkn$(fo zV7gcmS@5dW%?0!zu{SGI6%4$isczKOxi(5r6t>F%+LlxuxzzyBDC{Fistk*`M`SIh zok+ohg3-U`k}ObyvPh?tFM>G*CZt>@^!tb8x^mpV@$lq6s_7v?gr|Gisd?_JN_<>8 z&-CrQt&tIjs_bm)v@)6@5Do7E8kPI>#Hy8ThIGMfk=g z1AKIp&sBf&atYL1FZF3#Pyc`Y)wquxH)a~@0sul<18lWfgXTH1o%08?$B6U#!uW^( z+RR}Pz7?heU;F`=pFB{4qBNazBonyVb~Sf&!ED3|P$~(*yCvZGhO`akjL!zMckB0V zf>(uTf?K~?>nS$wZ#tV_)7OV|R|QYNrWywgxetJ9)Bq{w765hqPlzL|l8cILt77(qzbp{)Hon z9I?Fd{;i=W%tSgQT5IH$cz!G7C)Tfk_V@D~+YhE6agS*wdkp86mZU!~-!=L%xm-da zMX)6^6i3_Ym-6s=SRg)ZhBTJu_+TXdG4f($#$~gij}Q5bimYR9(X|gVKFsDw(`2)6 z0@AArZ5a6@z7P`jXlh#F48{0k=YKl_Co%zTQifdL*Z=*D7`ahyq6xKyDE#+rX}@zF z<%W~2i=QA{(;v#J%3s~1025SYbZCef;t%> z!{l=L1T3U-yGupw`ON$1IR9uUlvjW0D<5Tg8|7AfT2s@u`*WMEGtZ<>f5n0UXE^4i zh34O^=4!hb@7}xx-a`3KmjG8lTj3^})K(Z*mD%24Y=)<2!c8<+oPYc?2~4mf_tS{S zF>d1Gp@M&>d5GNmyUATcfj59OivFN^jZmg#;iGdC1R zlj{0;dGxg&(RRFee!1ItCXJ}FUWFpl)h|{}^tSlBgK2)|VD%=3r1@|!?&P(xNr#lu z8FVO{$I?AMg3>f>*R5)vY!^nVCMDkMedDaj`<$WiBJlL25C=wG*;9m$dJ$eI7x#j z9k5yNXg%uq3>~~3vWRh73yY{4J#&3@;?s|;<#k0rOjeQxVB`$;4OBn$?|GIbg+q%H z$$l81FG@g)&NhBN+ymtq?O6&e%!72+y}pQ%DB`Fm_7|R>3wurRKlW0iJ`>e9YrwQzC z2_h#Ef()GmMU78=>ae?h-fz~pbbr;bBaq9OgEy z(RCZsRZ@5L(C=LHy1R1;!!6A3r8|^=Ule2Wl_l(8=`y8}g%~W`^6h zIo2kd1TN`H54z}l%&UX2Fbyr=*F9FZWT&HKl%b+&xP=BgWgd6R*3kc{qispa_xA7l zKgwtjIc_VZm|}y-p-x&6qV+v+Jn7Wkc;QkTv`)}2kYRpy)JfWFb8*UMp*+i4FQPQv zYwC{&(RE8UiDpsJ0Zx>kn`yQlza)vgAy$fW8z8%R#@e#hJ=7?EHqs6SvxBO(U~E8Dns6Tt_uyxUTYoP9f1Qpt3I;A-v`0iIC7DN4`%N_W zD(U5^nhvdT_V}zu{=Jk>*v2>>Ea*@=t@ES4vzN?`(X|Q_5UZl_7}S|TGOtE_%qQVS z2{kz9Z-}88ulb3CZ{QeROXVF5T|OsRqGB+^4G`V=C)h^K2sR&8Y0i`$QKa1(E*{qwv&q+FbIZCPp zIq=w59e)v*ex8Ew#!FhXVICgwVhcI*^{KP+B?tWLnRb*LBvJ~qo+TR3an`?nZ{E-P zEP=l(Lmq9>Ehjj3Le=`1}#qfR&{VErml0@ochNj+81q8Bx=efnDrjM`=@K_ z8p?eY0FiDMsa5=m%0HYusisGhK>eNVD1x)Z$sNi-?zDAcI`QOF};8LptoBFJFZ2FI{ z47oZ(f$PB9shh+M!v4ObUt5Hs47O!%gjel%d;f21k@2_+-o*psy8m!3{q-%L-yVXy zsoJhD@=ulZKfmQcGKhvK`L^s&{^4l;a?fN-5RM<1PnRwI=imOpeg7Y92@?uXWmSS% ztLWB%>KHBU^dI_mQrJ!KD#B+`>ejyMprL_KvhBP=9sV)kahcL6-h;#DxPJcur`?)D zm( zlTZ5-d~iVo&2JgVubmYj-Km0}_aItcLJ`Yxz3by;2IzNoFu+MsYhQ&eb%ZH55a?ix zH8pj|up~4!p*~g*uDu5NLl^#^6I+aE0)@5bl#G@eV3y9*O|-q-Q|jknK`B?8@twj5 zEQsMc0p7_JoR5kUm^UeOEok81w?y{(eLTj?EA0rJ9OZ^A*@e(G&(~MhmCe>?PwpWQ z>w$&Y9m_^X!PsQ^+DPGlDXgx%Gkz4s9*>LwkJI@eTV5082HdVfmJ=X+Vek|SUnG@o zky^Un`E=ukz8vj+TvBRF_t7UAf7<+iZZ)tS`7qQMmc8fHomGLjN1gs=)W$uhOL;=hX0jvu6Qz;7z5n zAD)2CRk-rscl)NG`I8O+xd{0j*1w%GsRj7yMYCa9OYjWnSI^)f@d&Jf1boF_S|T;Y zzs2d`0Ihx3#N*Z*x+!dq4=Vz$*}%I7!2R zY;Ms9e8pKdmDs;$;kxADu?Z+5U;W2ffDg0YoB8+aZchpP^o$Y_s_->WD*#y;vDcGlN| z&5xwqh+zje&DunWQXq~x8JkuDJR05@E*O=pRkcu2^_CCf77@PY&U`>lbDqT)?wR_5 zrnlVET7aJ+Bqw8B1Ls}?ul4*UpXjqNIR!b|hl6x_YvB^U@MC0y@I*!$51AqdLwKht z_7c;~)MAb~ZkitO??l4lv27U}w6daq%6z%Er< ztnj2>!Hs?YC|1uUkT6n{Cd#Rdt~;qD=sOMX$mJ~2dPauz+aH)TNz8kBZ8fH9rq_KO z2MHPaE>hJBqixc<{hZ@h!^{gFSM`ePwJ0wVT+$9Op zo7m-gv{(mjuhNNeLtyoCz&0ago&!1HeJ$-&G_=~Jck}^$$KtD4>w1&CX+Qg?snoXX zwYV>6OVd{`L%!==`fTvOkee(PkL>B(6IOauCqF+%T!Rc@59zq0JGw=|>`a3mbNsSO zX@qZj0V-=dh=%xCKdQT1d#)2(lr(os%ildAu$VM|`4(m!-@WP5vn`>YX>udm6O<9P zHaI*1WE(tjkGqzm!sMJrg;XJf4+jtmezs?#i{da9vV9>M0nRsft&gns7TtNhkG=P_ zsOu6h>RG2|lCg9=oeVwq5A>j>8s+NT-tzho82*Q_Qm!Inui?Z)lk`np<`*TMYNK7J zlR^v5p^*peGySDoZXc=++8mG7CzLuO^hNc#w|Yu0k`7h)Bi-|r zr^?^4Pbnra72lm`@9(mis+19Hae4x&k1l03N+8H-*O@>uGACSfP2uo+S*l`BIB3U$ zcpKVt(N`kDgOq#lE%Z-TiI)R{QAlSAcng*Ur>8GI-inhZ0W@jt$*GS{BwH+Jr82=r z#az7v!A8~d@T1c@J&U6Dk3J3^p)qNru1SvK`%dkPX#vh^YptY=$pHfIj?Uj5r5dr7 z?&VFiA9m2@#7@yW#0mXi>f#VzdG&~3lbh%n9bf0`+3zeS8FS;rG*F`kR#?Pa9ivjU z5qk3>p>As|OjaIGPuT)_Gs42rCa)SE+jDG5h*Aqqn8Vf?Y;(U6?_Lxkr+93 z5Ks0z>4@0%H$4P$-E9rpEgd_iP}}nSkOGF|^>@wg%)0k#Er!<{^(y%`nN(pvJqq`! zi^4Q|?x1rOQD&G;e;BtJP;1P8otqWaxf@l-n!Lo9tHj<_i&&b`;&R8>-k)J&JG)1r zdx@vf=dJa~A)o|`9aydlZ*y*7U==+-qAz01kYlTReR?@Y!RuW15t$vioTV&YGdh_G zM+lws=@NXgLm*hvFPEfNOWHmk6;EXG<_{375(fFEIkU8&HN-T#D0CM_4nT>c3Uw~- zk`t(nioOl0Yx>ePp8+eeDlz4qXJ5o|-sG}*U0G-pjIDDI*^sGql&?;2mZ&Q0l;OIX z`_$=$Eij43SL`#PZhbvA)9e=aea;t27?w^OO2*G;#wy%uSQ}=Cn-{Hf8n-Z3?~EdF z;ooMw;xgR*9y@+LB(P^Xf7r@w#(!Uv6Wn=Ycdzc|ZtySW$sJHsd=TCA1`9LVSR!6@ zB|(ZpZvLE4i!%I#hxxPuzCrZdk)RlOrboCJ)u6d<}+!e5^Fzsw0!) z;Z4z!;`ebwJ+xRaaGjiT1s_dU4Lg;cc@Gb`N>|i*%&6AeDK<>DbJi$TZfa(FM(xj9 z9ev6lCMJ_QuQX;feN)E?3YN)~KC+)Qjov9RNU0>(E5(wiEu&wnO)?2@&6>U@AbEbj zbiOtx*1X7cWGR7i#=1fNjHy9>>Nei9rJYD*`cksdOZtf6$x6|RGI<=ht3XcJX59Vr3Vf5idz<2J1~hmn9;=7U@)@j^KG#{(K3x0 z@@1q#wN>p}VnFE@+IGB?(x79p=7e)kZA58`U4um5S~Yi-S=n2n4x5SNDox&?;W~Ip z>Ufv#P9E4cci22l3QJjGV*>=Qh39 zQT%72GrLEg?8_$bO*ta;!+ov%$kmixiymeTUeTOr4T>d-+pBzI^gfVD@BcPxK|_ice?a=AVU*j#G<)*pZQxuvrv)wq8rZEsD z(eAnVVnA;zw9ec&A9{gNb7HKq+|W?UDVXsnxAONa0BKaJX|nozRKs=B`;vKT1yu6z zSd9+FcaPue5N%hNt!vO+94oJIHm|bl$9)T`=H7J46PK#jdZswKO0-VJW9NFQsuicW&Qwr8U-$F^{$L^7?fwLcEI6&xKZKGUQAqgVmqj}~UWE}3xA83X*3vUf0W!n5j`E%NaO`w-Dh5bD5yZE<4 zDh-ahd|B`<<$Id!?%omky0tv)C6=5#v3mIg+ z54XP7=DPF}TEi;3Of;ziZ97dgsM28%g!{}MvgGL|Msm5*?-hA5Vb$upIM0mInOgZO zXol4$CP_}+X+Sn0f51fGOxw<J#~uPk4DTeYe1_c4*6I|=N<0fkjo!^40mmkpaZmXxEq4!>Zog*;UQQ>zslQpmaaQ`N zGZ)sfcIcu~WbWV;L!6ftw%Rbvid(C4BSn8y%<21v@U-;sx@FkJ>GlCi0OsTvM8${H z*lHk0qfRn%)nPP+n0%VOjNhR#bDwv$f-k4dq9fcdW1fGF2_F%-v6wW3Ksn$^L?*}- z@jGkeBx;c>#~*oz>{rTf$f)D*sAjbsDQ0YhHy1}|aO4lBu;)FEdvuUaJ&K@pb~%i_ zw*b%A?GRFp( zO4xKM{yeEXF>~A`P+6 zD}rJgN=Sbx9@zJgA%fD07NpdaCkeLsIwoi*~Y>?KWEqN=^65O53}ca1qy| z3zUnnrxl6>Ik;LNpSIP9NyhvR&@1<=r3kRsyu7_;9+%%Wugmc>cKQG_COXmG5q3^M zb7xkCR9_CWe$C{|HGfClp|u@lUL^HVT5@3~sNAZrVDr10S?O5{?*)q4xm(_!bTd1IHVRCZHVqZT1`$yo1X3dzaWOSdX1&lMT{rA`fw z60C_Xox=DpY|c1;%#^+>TsgZ|+2$enVymXIQ8iLSdCUF5eLRsO`7*;J_|3R17&S|c zP-1@#*F^byI`i-AJMpA~BrN7`lgyoq7&MnA(%qJ9&dRIw4S7SVFUib;o=5RA=_tjO zDot0s8kv58Df!buw`d9~8&p^AQ$yewHiNa15NvuL4oiO(h;!75ZBR`V0&!V_hFl_g zFQXDa20|OQ6F=l==`Q1mnCbSh!*)3fC7Y2mKRcKz3aZ*Ah|ZLG(TK-WBt>%cq+m@c zGq(eDc)u4vVb9pwoKP_=e9K~I7~w-MnD+@^b`vpC7`5u;hzyJqQ-V)PU?tO5yDR6h zNJJTZn!IdxE9EfPidTO@;E;dh?Qpx$Af~bbN~{vW;Nq z)Ei!wClHKfbYJnbGN+K{xl z+Rx~jo>djym@wU;bIr4wwkP;B>iTu+MMvED{qG{?KZu?+O5#_U;CQtkkP!IVy$ve&S|wyXSlRW zkm()gps{-farPsyDAR8*4ITi*6yl9@Rr?}iY?8VvqB)|Z5#e#B+@EA0^EKazSGXSV>!Ho0(pQwf8LAponm6s z*>iA{`y^!T@=Flw%Bi5z34h=Me$Bw3=p9VMRikdzqHMH-h;NR7*ipY|{ehHJR2)SuR=6)KDv2G?14Y#!4`Ow_HFYY7K! zxY3qFSA8--y0?W!q>NDU*>G#d!bEry6LBZ+9yu2^=PDSRYmi1hZs7=V!e57vkxgH5iRBY4Cy0uhg-oM{!yUJ6px&`@W zR?TYTI5f?u@%7LgW^lfrG}BxoxIH_hdB>fxW%A2fT%?HI+Y;ML>nhtZUkgFIxzV6$ z!~Oh*NBZY2cFe13LC>7#*;d&-l`YiIaz>|U#0#ZG8dwmPmKRTy8W$|peK^{jHaVKm z^`z7&{Wv~)b7P_KVtEnqU$#2K2NYF{%CdgMDH3PD zUSTrOVc!#}47>c4pO^>xJhKtv`C-!tZ_@}4QzSVE-re@cNf0+3SRRj*emz>f19$$= zF|{u87&A${3(gP{ap_VKj=92iQqnW9YMM5Z#{&0@F`cOsheYe`7Twkqv`^}_C}a0S zn1wn^b`9O%v)s2fa;ni1gRg7s(~&#$tUG+9JeSh$_Hq`N6-DY)PmaK0cq!Lq;qOu! zBty45=imoIXl*ZSH;1;Pw$8ZBD%#iJ>hEr}KUrR@m{oN_oF zVH0)VR|DpW{3gO|W!0tSrm0M&pUbC;HBgR3o6N5}yO*@ttc138+^*kRuYKo%m}`!;cu*z`^KSaf>Hp3tJqyFm~(xfk6k zQx=ZAHBf?u;qLWCReR#~_=p00$!KOJf{1QCV;b>uW%@iTU^ZaFP&>9r99}d)Qmt=l zw{4XxzqUQO5$)4P1k-}H$LNs0+^S8oP@mRaddM0Zv6j#|xn)I_R)JM%?)z0Yg1x_o z1KXJ5(IBD1>-UUjJB>+3DeI1eAJy@H8zijYTd&~jdBtSr zTh2b*UN)g!uC>l#YRJw%)m~$+Y@%y;4TpM(W~{1v(mlCTEpvN`h+C=5McOR_EoQ_h zn8u9cR@URIV8ZC9XeeN&!#D4 zGrg!LNx>9lUX3pj@Po%pTUU=IRlVLW)+};RK^mx(*kGo!8k=~@tr6aEj#?|; zdk87r+u`GiZL28bn!EgP6t>eg-hkbTlrk~wi59TL-al>&*Ynb$z1R=`oWSp0wjJ)j zh`-dwBtu4!I72|>({AM=UbTrQ0G+dlF20K#gDzdcFMhA;lY9E#sG*X_JzsKNhC%;vheq6ma zK>Sov)8fZnEiWom%=^m0mb;k76?Lm4MA&jHU5B@Q8c4Yk|@*D5KC z4MrUPA`!20jgHHg>W|E*HS-si;@)4|JVvim9~;WN>wdKPZPn?{7;CpfrJ}UC4K&Iz zDdQ%Otw^RmQK(V2Pm-q6qaL)b^IXB!ubSp|NhMmXc2Q;195gpUl1 zSS(1{EqMIQ1l~jy{nQ@#y6$BXStHwgIE2$epRzqAbxmxvWAQOx;$vf{wbx4}Hs^+G z_`%a~G~F^O7fx8zBTf$EXjjL7)nTrIgks|cXn=W8F-~}TzQxC5yzx4JA``1AWD;>k z!Z8zcmn*Xc_2mcroAYg^Tafi)LdVtWz&xlO-*4~p#{J@h z8}`haRkLPht>4Oqbq<;C6^hz=sgC($%dEm9ga{>C^}X2hVGgYh2oRr7tJ+ChF`s%dv($hqIgphN7z~bKV7o zO&qM@t_&nTH_yW(yY}&&E`R<8!Ps6Q&yptb+NYl)y4NcQ@+4cCbPZaVMApKaCQ~5x z{*yHgT)kB_0GHvo0Z8 zFN{_&L1fLGZ_062kb`&s#-|*Ks&W@xvW02^hGEIo<_yBQaW0>Ed*`Lsce+~ZWJRq6 zk&xWnqh6sb`K$*;>AFq7^x@42B=8I->B&}TP1jrd@HDS##KEC(-GZBQepiXHzf%5i zErx(>AKZ0SQ06pHB!oMeZN*3X_-QFi5+YB!r=dzZFksEJ3|&4C*C-V zblfl%HHiurMI*M^=b}9?>~?9_@H_Hja`zdG7L*=n4EYFF>y4p0x3Rc@4gOYlKAA0f zy=14fHQ6$M?ML86RnV^!Gt{ox@3C3$T=x?}TgNl&H=>pSPqgUHzL?8>WyEufl@sh) zwbkr^K0r#>RZP%seP|OD^e%2Wa{4nx_HvjqcqXG>ewr*XR^sPZXooqwW${uN^+#Rg z!@LHE`^`sK@h0o2;~w>!_YW_MO*UeS)al)aYI>+NdzlS=Z6A%SB(EOydGyPrz;Ya2 z77{7sV?R56Ye+~)EPd>@o+C?M*b~t+ooFETC4*rfUG z9=x`f8#SsLTJ%GwI)ZD({s$iI8+}Vw7z(7|5!}dY&I&wci-8yH{6A1<dxtC6a@rDhnKHc&7_=1TMy)Bp)_TDKsWoEg*v@qPCsoO;rxsKiYOv zLtSiYrgL&~D4^^F(BMzYcs~-n8MvcfX_Vz?WPU>keE@lewgP(l)WxJ0aJR6#r`2ef z7`%+0-1xv7qxrG8Zr}Ou4AQUDcwkCi8LBpbJjs8$kx~s;}xo?`o!{cCRN#nc<}PmZQ~(5t#>j3&6US z?`z~mC6uilSo7yTcyHva>ys|)clvH~p4OAUzwF)tMNOmK1P>$3!{6a&M5ACoLg$yf71<{_@##OK+O3M*}NqM_1;&cM@xK%`3R-DC=0Hxh4zx*fqP zJMrW4l2%2k~J$gEEM(E=*M%=k+^AcawkB_!Y+oGNdTpaiEUbugC2=SRj+kMks4w!TdSB9b2}%kk(u79}-H=DT_HX}ug4qCFh^TqqX0^B0L~hQc z9kg6KPX%e@UwV;Wc;dGg;I$RzdmS=O5>UTSpVMHCW`#@VkKpr)q~h^yN8Mq>$wfGlK0pX z<Iu=FvFBajHw*87Evy6~;Bca5+=Nyd=uD8rGF-;Ek~s4(9r@C++9LbM8Sq-qHTz zlL3{T$Z*f9gPyJ3i0%`)HKS=R!t-JMvmUMFcAk8T>74Ps`D6BuSKrq93|yC@63^Eg zb*sJ!-`+5pGpS?UIN?7}tlb>eB@2{i3v5G66y0!YYd9(rsCj9O+$|Hkd}h1|chiVTq{m$t=+<`1Iw&-I zHI(w^0*1}VbbBbAHfBG!KZ~_0pzvBi9uH?<|pI8!oDG%x(`bNR1b75=($ zmpx<-?M3l}VHdZ2lgBikOiuWyMDm7rrAw%~^k zFq$bnKJ{TpN9|kd0GI?lnKt`9XuixlmM}ZXb;?AMLCoAvGAa zy>qHe-q6F7Zhhe7ey$k0A0%c&k{xU%;qg7Kn<`hW_p|;{&hkfS>};Pv8SC85^Ep?< zp8ZqwJbgr@(4F^1D;)YqjZe-X=0vVl=2gs@Gl^S%OL_TNI0bnV&72}tIKJ=VUA?_O z-=^(9qz#KWLZimyue=a_mbEy@XR9>n#c;>NlcGo|iK#CLp~7&-S~ z^Odvoco>XShg;ZFwxAuf*2~X2)G(bxx!=1Z8XUpj(xS(+`Dj^QUog>f^7+cv8ziL7 z7=nxrWCS#m=O=5j7pMn=KYgqMatLkafUS&d*>+cuW?RPastjcBS`MAV1U2jDbv+xx3o z$?o>J@mGnSG$Bib2}9#g6lKH+kb%-SZc@#FIlGxuSGFFY`Y9QqgRcQscl zxUveF*>GBhMmUa%b(MdhuF+dW#SfiC#Q3aMi}QNOyy(1{-J+#-xeZPvT+hxtp> znirHZVjK(XsrLLr2ezE&>cdWSOHM1LQ7j&u;#v(=SUsoH5E)`|gJh0;O`7`H8+eZ~ z`Zm};9%e$T^@gqcbi=w!j1!ApW?G;0G`}fR%_v$aQ@Z<(_h`+XcQZoOOy8}=J_n8B zdE0bI=!*N?M0)zhMu^Jz2yOM+^APd#tl2ZA^QCGFuxqJf#DSzqZ+j5IuFzEjm{b%d zb~_cgl7yawF||*9)hxWETTEu zYrxQ+x4d+9GtR=D>PvKbH?kVS*6|`BXeqCe#k5gZCyb{)?R*)VjPSiZr5C*erPpiR z+e%wFx36#R#yPfHkKXNXt9#gLhVz}2t3EaTxQ1kM4t1YCmZvs)?lY5dBW}%rEQD*K z)vJ~v0)e#GiYZR%tLR=Q4TIaURBXIWaVVb!+fi$#RVQ<7op^-KAZv8|*3%xH)u??s zHRkY}crzI~Gg|xp9;@o#<#$j|*fi6kN}FZwNccvbFjwZ(9Clk?WS<@m3Aihye9DUa zOv!c_RKXQ_4Bz195?`xwZGHTb(cG;_ka|m#JJqMybH91vbA!xX%5ojm(CRNR*FAUS01j%y4y^al-!iQ{wJ>7L$EGbR61GR<)_>hA!Gt zJZ`;yZN>BJk&j;SQOYZl#w2Wd*>tHZw@kZR-I z#|bB{kzC>D)vVJEJ+EpqVGY&6!Ac(G+Fz+?fnYB?Jn*Nz$FWq=%YECLig)dp^@S*e zndC7;m4|8N40)coo4nZ3>jwix z*~du~U)ci+-R1UQ_(+;a$8H}s)yCE79_Bp3<2-dBb@CiGaJz1Tnyl`>Dl7U3+3r*M zgZczCNlWPIVt!2B(`;cDvdIK_jgoArYV0%5aon7ULBFGBc|3A*=fWC|`$JE^@2nj7 zJc(Hu*}9ohFmn&rX3!4+l@SnB!>s;<7fZjsCD0 zrakNQk3lM%)iOM9I(xnx=9)u37lyj)eUEXR^Ay)luw9E|0V#%wz*4cTnn3NAA~m8R z$Q_kHk~ zSR>0aiEgwvnA}fB5m0j5xq$b!4UaC=c?n7}NvE>cTlLs!nW9hGKHJEu$*Nyc`%HT4 zoq^~(NYJoZs@2Qk?o^IO3+8;M)8_Ejpe@TSTkI;MqToo=#<19jRX-f9ZdB2hJnf{i zZpEhBT@Z4yj3SMA;7i{%kxZAua;IF2Kl(z{lIF`Hp@6%p>FEPnOfr#v|4bRZX&&sg zn%-`T8oFhZH5y|81s5x7U5<0@q~=!tK>oyyNq$Qt`wS`F@B9Xh_7qZMTtu!CYALLl zv=~%ri5w>qVQeq#I!8B(jj^qsFO*~Wv0w!6SVbzBRl9uEJi;nVyzj_BNAc0L0$0W; zh)D2tD8%}$#X|qj=N+WNxO8a3L4{o-j4%?)k>OTIP=w3!p%Y}tHa1ORl~j|tu|vQA zDFu#m?-t)2ZLfp2r##WW{0*T7~#n;ANXUW4-SRRr6a~eFB8uSBbf|BA(g1pjH zntWVkN`WgsiS2k@Q)j~%9r4ctvRT7ZSCmW>UPQ62VUf)7YmzV&7QW5)>QHp5fc^?rs)qLi27Q#5Gd`2$x@e_ z{f`iy1(-^#a-GQI9~+H@ODEPBl-i84n{o8bVYwk>7rHk7sP~0QrfxG?{W#5*=wa!< zP21Jjslc5i<<@N+eK>jDtU_mLxX;1=ytY`@A2|?PZPn;Igb^fQDe)b{TT)1aM4gat z4OGBZ+u(0ZqgAg$*GH%dQ^|L~l|&mgFk1yZslI0w%-aSvl!+XNI`^S^Q;;#6I<>rF zi!=@vVJ?a1t_%72>c_0L+353BsX;2XX}sZ4NurCnsdOh@iV?w|vi7fPt?o^=pY%uK zkYUJu!P=Z*kj-`4s@xQ=)El-OU7K#-KtT+$(O`|nJCyxC1$*&mi6GgSoG_+LLKNFd z;*~Q))b2@^k#9uLIkQ6b0ApYluiMnz241~wFhbb#(7}v3@h$oKT0<+Pys&=$_q7I! zL<6Q(Kl&V$_B6^c%C|n_a&NccroH4K!QxRD(RQrkxXUw@SmQHOk|>E)gfXt-F%dy4 zuTPseKRR90m!rJbx9xZG*5dfX3{lu&LLliOtCWq_MS*uoD9E((Rno|;3v&3du!*FV zvctGXs6r(lc}A=0)Ibq2wlV*pLXMOB9&cOW$v~`MkP)P8U44XsV$t~}U1^SE5ZZvn zBm4d?9K4a0e0*yfd6*W3K*fUU5^iHTRVUrXpp?GhG#kj}jHc9P_(@lh93*>jfjVZ_ z#3k6e%^iIKn(xU-EREu(?jg^zKQ9 z#qoCLW89& z{M=rPI(Ws5_axY^v!!5<;Pgor{p{!rF*)s>*6#{*P|8j7Z4&fPF>nZQ^0!%?ysP`Z zK%v0l2TPQ0{M-d+hh45sibRD_CQ+nCPtx_N`{zg8_m{L^rNzlU$+U|`g>~(!{;9cy$`LuGc-M`8eUw zUFbpEi8{T%?z%i~4#Y1{Z!>KNh88$7UFwmgn!0-QrdDmjNN&&b$d&AIPtSym_2&`& zlIhX%CuMSKA_Mo_pnGIyf-BZqwm}0G$dnqJ@|=3Rv}T@nO1$s8H+m@}!^Y>&!>?0o ze67JG(oXr%UGeQ=5~}AO%0CiSXJ5D?SaOt9^g$kZvRXH@%SE7%Mv!dyaTP!P8^qeh zyifjhY$ymiusy}uMr|Zj(M-Z)-4$)47B}c#T)zs%$&zZDTD2kUAsd4AaqEM-Uj8F)cXI9_Y-DOBn8>2Yy6E}JOa*= zn8K`=TUFU5bIS4^Jy=gc-j|`y*4Q5XT!|=&57lU;e7Y8-*Evgq%9*esg*nTqm8FhN zo5zk`lk<~WD6_>lU5VO(^L$LpIlkk2Qfvi$s~GgnY+O1Hk?NPBjuWLMUzUuz?(a%W zr_RGdN&*CX`W%X5q9J!n)K>9?_t4Sq#_)da@P}MO4OHM!D0&}nbBtzRs>|5O{KhY~ z*M7qtN50@&pfwHYB2A9`d|7k5EcyM(II+ubfg{vsDw%8j;*^%{NlR5gEo~ z8_n2tb4>=?#>v)4kYt;h35wM3bgG#y`~JK6jVcG#y>~6j(2NOma-}2p#LX*RdlfAQ z-a~LLzr_=Wuaw5(Dus=WlbcxO3^0VgT1wPlWU<+MF>4kqwU-N%){^r7(A)m-US}@Z zK>ZD;m={j+>bGO@Dha=gw-DB0Lj!E_TRjHwByr|H7feLGV%^z&yD8huDB=G3&DYki z81^EGPK)N-tS{;q`cXT!D-!?A808fs?7BCuep9QPWN&V9&B~lT=0hz9cnFf4fdt(v zf*Guy(7NN=5n<@y_4_+u&|cSMb)RCFedxv$zREE`CGY}Oj`!0W7g7*1a26c!Puk@| z;)+Nk&4c5ts8TrtrE&w9-BfdXO12_6g|axgYSTl^Yc@PqWu{Lx zGIY@<>+@aic}kPm7|aOeW-o4fO!ag+9~_1{;`C1QP81)>WmMJkhc|Z^=Ffj8Y7{zi zAe{=1dGk>>fl;02Kz+nwBWxo1v~YGWQP;S}YR=D%zHb?NbK%)hI!&lRUoCS5c@j+=X{I zVah`~5X4_*bXt2uF05|gKbVd%yZ*z2++^XInXfuEZXPqcV^}|j+31p+_YvQIFo@%G zQP-rL_^Pw$OC|iG`TdEk(U34!j37_fOlhC+ft2O4ls$vanS`)|h8%bRxo{3Bw&300 zPD-!Vq;&6{+|j;U!?x^>FmVv4OaXD2(JVs~ch=Y&4}!%`OAn?IZclGLskdmkm`QKs zd$#P6+8yhAn9E9Ea3@3OBtd)UlxS?{Ro$rlIhE{BETaRKM}_n6E*Kv~eBEWzIAC#8 z(^bq|$Y34YxoEZjTK-I8zIInMO0Z|6@PThZ*MR%=g)FB=9{%9?RFC|q2^MO(to zbxtNpGBY;%nEfEztc+SBju1MS>g2ZB_h!J~+g8~Ywly*>7A#b%=329Xv9&iwc^~RH zU8(!UMwX&gV6$AtbStQ9W`=2MS|{Gqg-%U+3MuQHQmp&T3Ry)4C^}@9k_Ub4IQucs_Or)TqNso6@ zA*}!4NdT8Hx%oO5m1!)qi*3mSRyW=KCOgYm=e4E{!EUKWp(RJrGL0{BoBKZg06e*W zRdAdxnrdQRK4J5xMO@}S?n?N$M9N@AlDp9oCTUBpMbW0Gfq$`OaNNXud+SIv;~^Fm zT`#4`Qtzr>?x|D)Yj+&iZ(|DgMdSI(rApV$_j*uV{XU}Hv$@$vdBbYF-pu#OgPOrr z?((}G7Pd-1a&O;swa%`}l>JidFL_)gjel1rhfT}%Oa~+!3nYh6rL7l6#U-^$ZiQa# zj!Fs>r)DP{I^~27@utL$C=rqVaOUbbq%;eQXdO5zQleNj8A9qPCf0rYzVaNs;|HxF z&bQPI{&EP41L=wGJX=giw@K-0Ne89qG+HX!8InD{IfSTb|0!6#v#j`oe zvGeRRokUf7YTd<7ldnrDOPUKDFm)$8=Kgn4kzK@Nl{#Cq!ME6i{SO}pc=|udvAa*- zj2avEd^^EQ#>2Mm^)1iLN1Aa8HJepS?JBNuowsg~aBdj5>%F>pEE)##L!WR~!x60B z;*;pJ!K(m;y!&vm_v;2&wmj9DZx*G>zKfcaqgQqC-|D3bcJ!H+9&y$pZGR{(axVMr zq$t_md_CFBam>zBo-VmgbgmPo`6_hrrn%_j{X=O5h!Sh9d8NF#TQ~m+2J(a&GqK)R zVVW38QrP?lw(A!cAEn7!15yUD>)1ynaL%#~jH*zztlD}|cgS8%xogx%ePEwcPg^If z-0<+gh)q_!klo*$vm0&g!hdu@Rel!B&-ysFU3A{N6Z(J=W18<&y>yX8{ zSS8|f1^v0eEmzomLgFumBMZVq z9(Bq0vJ*L0>_MB?rgt2;m{&QvuoH?rYb_chJ{ULj%O=~OTN2){5SPry8?*SrU#ERb z@MJ9^g?!q--E#$cQKh7lmO|!6ajvs%G}jHX-f5R+S|v}7yB|5Sn}AqJcqGS@mO{n(OU?=S8$BX;g!%ph`s05d}6)V^vm+5ig|WCcg8y)RAYaS=!qw0 zcXSaZkQ@jhc6NT7INR+GV>QFUUhl6LTaNR7%6wA>UYTsj29l1}1KR;=_b$B19Xd=w z3vP^_5|M1wi@}fWmaPwl5{WbO;#q0a6r@`T1YbYSa15NGQ%Q2BhcbkP+(PulTxb=M z*VpfTydVMUb+Hj*%M1#-S&Y!e?#1iSgc}QR%_ZVO-lp`E54V@PO_GzI*NYjcM|`V) zeh<_F-vKqfpQTIMOR2r;O|kGvNUWarOTf#80Rdi)nh}RAfrax4ILNO}zh@dbH2Ny# z%pdQGQA1F64XE(w%CTD*y7gW@hS%kPct*XWTE*q*0Ps#09)d;7kG2E2k8UaNK0NH0U@e&_c&6uHMaJHj zKxF_L1}I(b3@ib-IF~>&!0i975^sQm35;f%Gy>2dIHHsWbpbl4tMUV$;9I&$=@oD( zObIZ#!Qg!@P)STf2+Dvtc>(a1HwGN?2T_$N8bJR1dt7j{eh)w$=x4>@0P!%x-;TYT z?tn`I60jD`q`0xif6)uCNQWagy?NSW35uUTJOP!s z!KXest~{X3xeyd1hoD>!0F~JWpz4_6gX;?*q+iUqTz${Z2_~VjGh_iUR&ewKI{lPF znP2n*+VbJFm9CC~%Ir1(?I1=Z%?yyU-rUB=#n!fMKzR<0YNZ$1dH3y_{*_4p2kz+m zATI6zba6o#z}{Rv7j`?eT#AChbMD27L2lf#+qDVcRcqn(|EvIdGQ7uq@xBsh7K(;? zj^g~QqbNL8mpViZk&Zn?`tAbg^XL2I3zrP&XZNL=N%RdIkf!A^V2^tHM*ump5L*vg zW3i;k$9}JRrL2FMpoI3-0a7o5Z&qgB8!rO2IL z{RYA3UjtFYZR*uG`P3`3UmSn2>}bj2#8?7n=1tRPX0jsCo7mK4W6#gh&lXpUUwc2M9K$n#;0pS5bAu z2txE>pWK|NKBYj2b-u$s6aO~)G5V{1EP)!O`&KyGB3n3d(fBdv*#4elM#Utv5VdHP zNs#-|LAL6Rs9Xdu2nT{!o9nDUMN~^HRoWGzMtiZN|v@3S;d~-;&%lBs>t`fLdYi5 zqx5@QxSOZ(1(_GaMMVsUA_#NAX62YdgNO)K5VB{j<8#6cs zgUrC^9pI7mpGNWPL>ySBFMRFVOZUsFV3~4N+`RbqCbZqZV`1^8Yz#jpYBg;DTg|iFI1bqta##wcw=ksJ z?wq(RkyT7amDTr%qhlizRsV$>eQCLTyg*Tx7F)-`#fUfZwBWJM$!Zyd$g=NXCN#1Z zQuI&)i6VG76&b&FZy<7EQ9<@DJ3FxYlk#T|$&P)SHnI@-w|j4ynU+B!+vhhnIC=Y3 z=8iX03d?_{>qysDoFz=|ILSvM!GwQ{qD*}ma!g_tVE#OV=-|FCEzNcew7eJ=m3b89 zhX#G6iMxJU%C(M3w%j~92g{tEqoTMj{X%9fF_v@wtKxG~-NQfdYikt03=p?>x2k^6 z?kJgqt$XcPmn*2cuc2MvH~xHE3%B%pNfQd^+g+aDX^K8jKh%M_`{06r&wIe%lc8j0 zJnF!a&7)9fGl!?_NNN$2L{eW&zK)@!1n)H&)W5CP(YJbkInYd))K5Ji__so}1qaN0 z8n{{#c*p6vtJT(ua3w1)*qtq9-_$Z%5*~4dNG@Tv)wX)cB&6x=xtlHvJ+dB-L!W8S zr1xQ=@A;=jgShTBcsqH`?F{b#uK8Ih8q#8c@jn)0jEOr&ZX&5?0O8Xy?E5-DifV?E1v;qhFPdD}F zXAAM*?0%kg|MBkth5!6g{ae7x51)f>{#JT_m}#3RAooPg`egoz#J6! z{>yy@1dzL%*Uj)(YxsXsO#=!W*`Euj{tkNg&zY!U@CysQ*r(6`Gw&ps!39~9efHZc z_Y0SqBnAc7ifwfQNlpKmcOT%esc%=*3I6k<&%vc!2*g41-GAmCNdb@m!9W50+V!97 z{o}I}dayCWRzF;)@v0}mtiCv$*abI5Z2&;Bm7VzG-{eoi<_&s>w1d{ZchqzohMbLM zM8F{RE?{$?tzPdI4egNdl zhgl6hU6WVve*Yemk%@_{HKrYoUU|t;>t`c>Y){_b-+#NpZwuNpeo)~_h68mjgo8DL zZfKa`KZcC93vC4SCs}#5n&9qEfiG`kPkm7q_|_|{Ph$H6EmLOj7g}bpr(`l*VheDj zOQCG8_dsV2Y4nkh?wfSmBO(Fd=!Q|FhnasHX#UPNxCRWsz`iBu*x4RjUtgXd2DZTk zZ}=eTci+SL0Usp(Y;vgy8LsNVf)!V3F{B0A?~5~_Ti=|~1AYDMWEo;`+bsv|uXc#! zC)hSQ2=l$YK?}bWWKeO1PA+;uQ?vEYE#;i^su!Fig-<8u3dM8i$xKXRIV z(c8P|qTgYeJ2Xp#O=aM*e+|XEX-fVb$N0M+Wf++l!{4ujb2@y_4>Lfy!r=sJ;PGxe zT6AN6x5H`JXv! z#urwN()UIcZo-fhjG3h~EL1FUI+SsqdeHB#RvLIBW2RN6 zei*aw)xnhP>Y8y2QqdvPQLR-1&um~jBAUgx>M80$%&9L5=LaX)7uqZvK|gp!eR#g2 z^dV(LYpIhoEIvrKXJytJW`Ke!@6h)3tW<#esb{0PS#8>Q&drTS`2e8JK4w^ye&l=U zREN>AFX2sfl%k5u)~~1tloKR3BWr|M7=2*>fJti;Vs&StoV$qL@Uq{y0Mq}5OoO*2b;Xe7Gl>&FLFaX@J5nV zrFUOv>r7G$pKksMl1Q5ozXuHPlJillhp(V~cg!BF0N`rYhdg8kZt~3?_Em3h^hsFH zG=;CELo329m{~sh1N8Sgh(6CMN!~X%q-=~QmMjr z`y2MXk1Flc6)X8}Jc@arqQ9clhxtnR?S4&`_O~b!Up5%*VowBZRcHF=1$1k#uAR;4 z=xm7X$3lsy8UbqMOXF2_?YzqRyX6h<`>eO(`CNHkh>Y{wPD&smqvKPHd4Y;# zWb|S+F%r|Q>8e+V$f`v6sH!}>*oerQci0CF^xN5(H(L&vZfR#UHhgT=DtyTr_QzNL z^<7zXbR^k?V*)Tr92Po~E+!b&nU&q$K%do93Z|0x zAc-c@6F<^@LLo>o)He!QRk}4MTzQ;+c8QPprX^nNy{j8eJILtS)YRD7*A@WI{RRO^ z3;Xs_mmLSUTh{pNo#Wjq`RXcT15xP7Pwkj;MJn=ul>lPHnbB_?N55o(Pu=T?V34qp zcWng3j~#$Jkt=+XUSe6uyMEr*lgH+qtgxq{!L?MeSn*BA(hjhdjn6`!ba8`%JHy_~ zF(S9-hbB-fAs1xyX+1~NEcg?+O(|oIa~Fu*AHi$WFQTEu_^8#_!Myp^UhMhRfi!>> zPpF+p%9T9y>JL`W5LcbhI<;4un)YBTpqs2w%t=Nhs;eMpsg<&j3)jd@EYeUbI>jM} zxCfroW$G2->VO93QP&kCQJ-!h02)OX!i;?@=3RHK7=Z;JMk#$5B(6eHOd0J>AZi}S^#vr zS(DITZmd7mcf9$FE$H~tcc`)N8t}XZ?~p*R#Cf|5G4M^nT1=-0NiqJV{_wvKkrg9p zqqSj0K%@mD(yo8xzD^zTP>e+SnmYea z9_S0#@ljv3N6UJNVIY1J!>BR}L`J_$fRFl-om~8~>fQyvz5YT19pGk*kuccLGlOVg z5m34)7aMxnL@R*mXzwmwr&jdwVpsgeszHN*C<8vb+v#^{6=Kxyyx2otkKrRCW8TC^ z#hl{npc6}Q0hGEZn_MwjRs;j;$m$AY^iM#;Kjq5~OM8i32cKaS-Tr?+`-uF#1Ic+M zFVbqQM)MO-47xA-8U#cOIz=h(Q-FM5G#y{%v~@_iHC0u1lvfAT;F7h9>CJY>3UY{w zQh~Ox@B8}tJV};C8z?Rd8K2>C0xr^&HSgw39Tg1?O#yh>{yJ<^0JoQW2nPB&MzN9C zyni553OVEBQHd~HPZ2%2Bzy$Kdsvn;wZe|;qXoN!!oEP>Ecp1Sn)&Ulq1U|Ch|}lm z=Uao_wr)8e%1mTQR1>rUoto`N+8?ds*KCB zy<}0;0YGiuOo9FTvhn}*{SYZ&9P`#pmkr_4AGQG-Gcw@)bXi|74YUB%ez!dO@s*YT z`h6j=D2-8^EAHXaL@q$dg*H>KU!wNXK>u6zUqZU{!~dnU>mk>!U4y}DHt~=C4W7C_ z1+iBdiiN=<1rVhCa*Lmi-(LMP$oTT{2cy^RY6;nRQLMfj)JRPFG^YsK%wlNC4DRa4 zl}+2m-pvepD7DO$aGw3Hxyqk2dM}{kW8ZC! zQo4Nd{u?n^2tMA$%cx9$OJun;t=KDMbkvXYPZ%%He(Cq%oSppUT7#ITJyN*X)zL5g zmzp1t+x{~3zqBsw7x&VqW~uak{9hJ*3y{0Or~F@9^qJijV-F#k5`*W>Ts=wr^wduxIJ3d*M>V z)t0l)zmkbKr7J>r9$F<6Yo6|=LN6ML>MtUgmUVFC^g((0=CpkEZ(S1g2HYFv%BJH3 zxBoa{?_!DTur}@M`<{UT(Y%53$@E}R8^z|={O0dZo#!?izwC7-K8@eK_gmMs0{49) z9uMTeb4W8{EY;@7C@J}Ka}KjEtjtsS2Te;G2hrR+4Y36A{B=T>4fQq1NF1#0SGS%& z_lgh^u)C}b5Dy|FAS*HV>aZse;H_;3Z-vA7y(I2+lw@yOJ_*D?eJ*|cJ2y++1z%IP zL^`NFOO~e=AZaVgMD~YT2_yyEyQe?TlhlU_ps?Y%JM(GZuM+S4Su4ht8{t z$b=Xa-ZUF>dHx{z>0&`Dy+OshY?PH_Hk++rt5RzXy|>~#b(_MiPGd>D_1t6m^Y9Vg zN=akg)9E3lfv5*$I-044eT_7$bI^Y1%dnst7j2xn(mi`z)oC@@W8TQ1zR%H^cZTJb zEiHxx|e32zLg*Y_c6*>Uj&G8OOE>k1qB>=`a$TXyj)DpSlyT# z6#;fJclxfI-Tt_lP0^NIT;}1$!!T=f5&z!eD)F1qU)7kmH#Vy&cpl+Fjy}YV-z1k= zkef;v4>zuDfI3pRIu=B1n788q4dTF|W3^{SRA7R!4vF=@@N%Zg!{-imx z*GWuqmg2!$QvFDD9 zero1-2)40#5lN3go)E%42F)^>tiAv!Why z;ZO^Q6yj^;4PpbE{D;V1Ze^Zv5mr+v5N6Wc!_<-eWsmUP($}bChNz2DEQ8(L%3S;N zdZtica&cucl#&(}SIw-n>2#QLiY8VZx)h$WrJ`r}eFn&3$oG!OH^HPFQrxf}=9}jg zatixlk6ES{N@bWlizNk3ZnWT`O3L+r!_XU{Qc3?flhY@!N<$qwjVH;c$H1KkL-s~El&{&ZR~Lpln!*h1o*jJ`M={y48JbVp+Fn(wZbLoU zDtZ9*b<8c|EB&!_rcInR(D@bfcdpM9o%@Ic)s{1^3FhxLMshi} z%v+~yw7(s3*y6qElDo@PQ{nir4A17*w(;wyeq~@U!e?(Z!Se(r@>gGP6;b}|Ikw3Z zl+D=Pq(xJW_UQ51?g_ox2R6Bkz0ciz>M8v2ggCa59~Wz<7; z+!$0nCaA&-Nncc-m`bA}+7!s<=iMn6>$&Js{bztleE{??V++X~_)D`p_!QX86GxTM zok`EYnyrj-?wGxG1D0DJbkA*t@UhPwvWS9nw!it5qq$Knnk|J2;2el@;By>Pal;@@ zVi4Yj`i94D&+B8Ko4#M2*1qZbjauDwZLZa!HEGihzgZR9P1)g;MaD7Jm%lQ;TbDcR zvsD$quF%)PQ`2j!mFIQ!s`^g{F6N2_f@3F`q98DkuVVJ>_%W<$kHV80Eihka5mshR zM@${~U$bUsZ}mYql6N&>O3d6^kX@3H67*f#baQh%aA>4S+kHoJzU9G=zw^2w|Bb-; z_gg1h^TDIm#uTL)ue*=qN!~KeSnQ1%mO3{4*d9ljM$NE=$`1)CuAjXw``u|~g$Zm( zxxx}PU_)9#ENG}Vh?at+2Z?GKSRise8aBz4qbV-zq?-vQ#CEsKKb)w%MlQaFxFDCK zwDDagaRrim=yYTO-K9{JS2aU{@;jNLNVD^8*f6vtx`v)KrUyxZPyM*hgS1Z?up{zVWkAjp1=U=?67F%mAj&uA#<`>NFnnzD|GoteVK&hFN1yM|-NkS|nWpn}Ll zi(fU|VS439HAXzWt84s-l`GW|^lTGtLy#u!$+i!|y^N`G&c2ZdzBgI6heSg{e02GY zmDnb(w_*Dd(>qT$97N)a7g3^_GU_MZ@cveMEI@kG7ZMvldQpfu{?9yHIc;z+0N9;H z<&@l3HJM{iUyNLX3eq{!YF~pFjD-FcpQmjV)5zw2_X>~6-^(vzhOfb72*S^7%@-d0sZR*hEep#;dT0m4JH;poD5L(vb8jmt_ zV{MLJb!Gb9T*LWW{eu{EslcL@j7wD66|AWaeYjM@I{rsFz^@8zCiv1<`lmk_b$ zEGlaK#+hWHpraO6o|y@OKrZC7*j_Dv<=MO0XOE`|cyjvYHm0&4&2BW2|MQCgu!|6! zq{}E1;kgB3WSGU2F7j)zpUEuJmIK!>PKL;M4L(}K4oPro?%>>$4gckCfBocogPLSH z)IacdO#AaQqX=-Ie{n#c^V^X1kFX&@3TP{(%P2f8;P>|nVlOc8v5izA{bavc#=p)K z{~so0jBdM6ifW~(M`Yk+Z>cC}r5L0x{1O6wo3!`6+;VZflkaNw7Y8FIMrWos04sZm z0bgs=Ut)v3KiP{A)BSWMjdYBM>}r2$qpEuD5p4;+kPTvl4dC4ry!7jnW^urGs^EoC z6wXQs2?=8S{QP6x56-S8Cw#zPUR_nPvnz_BN0SUB3n#GpN&qBS-;9Zmt({HX3Njp8 z(5nxIwY*Cwo#z89*9$ukx2EDr2c*fa-pm-itB;57r-{kN#?vdrVOQ7vjL<4fKHwq* z%Uss*(oZm zHU$L;LKK+w#eACv@P0_h=M7#(4B>?6_?Sjwt^LSX1o;?&{+2CN6auXVHobd2p$~l7 z7Z?y8pCzakTfYuS&V{CyTwZm^7#KWis;(Fp_$GNT{n;Pqd}QE7UK)f%z5-#Xmn}+c z7;NlD7qr)arR`ITvG*e3Mgy9vz!|GBtIiAriNF5Zs1$CvM{GHu4l@AoubfXbNb;ID zHk^ip?&K?1jv?@XMgxLz4a5(^;9_mxtC0>=`>_JHt*_c>!n23|8aN8R6^vcTt^pVK z15C`?9h?NJBz?h;oay(?u3R4))c_iX^$@QC|AYso5T4BkDF}tKU};sS(ZiRs(8ONA zm*xoT7eK}@=K~W5?9IdbSW<%@u~(mbxuS3yY=DM?$ZOaBZ(=X15DDK*Dxs7otq!b= zsp58-)MQXFxr&-vnqKWt@&E-z=@vdtN1f`Mq{k|%s;LAc3lDG29GE4U>zO_4ersd4 zn{z@iaeOtrZ<7Qovs`x=2MJW~fWh5mYW4&hzz!l31$J>wfy!Pc9^+E!P^L>lI(ZK+ z#kf*Nj=xsr80C5SLfnuh2e*4r(9xmkp>)0hoZf z;ygw{g`oz>nQjo9Ky%P6edRyic^_7l1)2{zD~djuOsqWEE1u8E?Ug$D;tq>tA`Q)Z z05Me_csEkKlty1YB}??oqPb~y06~XpIP-Zkr4NFF|CMMVWCO@}%oC;86PP_X0w>T@ zlme4g#n^XZ?;U#eOmxyy+N#b9;72*-*PZFl77IV!4iSEe?;IGDVI}%G^)rV5IC;s7 zO)_p&MnIVGYw*`Zi1Gs@s%Xa#|qfRW<5SGnZg!TdK#IlQ?f%-kHI3=RhqvedGEJg};Sj2{XRl3`NRk5m~#jds=W?GB!5s*(= zf&Xw43<8A)*o4x??6ZETm4#1w*5mTtE}@Leuk^lC;9ACXTd#)+%w)t^z*JLa+HN*@ zQTZKR9?{F|A$z?F{Mca+Y_hioM+^9)4&?qjByI5-Izt0@HjnW{hKu5?=;%i-?BAOC}Laqx2pl7#HnAl@qZ(p9S-o36Co#X@VER_(#h^^D( z5T^L-fe>viBfkCBW2>+)J&rB|*LRw{?lmf0_QYb;3}Wo{;r}2^i4@xz>FkAwlVRZZ zyggc^m#1@05iXibT5Y3(aongsOm{&3&@ZtYB>@M&n*WSXai&0^^k)3T?p0 z11fa=>2oSD9;WvvR3tiWJ)Oir8@@iTXSEBYT{Ya#F@Dr9b&DPx7S~Ia^den?v`_*8q$(16 zFG1-w^cIr53->C$ur~mLO2zu@ku2C7e|RZ9m1IgH`|omx{G6J&xMgV~ z0GUdvfi;pVyg3IbMLN`;QGzzVTg%;7zzAMHxB?ha1!VmPhmN~qz&Eb~Z|weZ0i4EP ztU*q3aN>_xf-&A*=T3XiG$^+E+ zBvRNU^8zD0Pk^@!B&Pwt?X@RZ_=jj+fnQIIfHRBkJZn|k3|qkR`T&fJGf9bLzZ!c-;77rc;S@L41{(Mz zu%=!gO}fDbWIOCowzs?~`HvVl{4{?!f~iK07x0xCpl)}WO%4dYoG}ALpPxGZyYs^k z2OQ3)UG4z>-g*SAiec_*Ja`5{aDtiYQtg4eJV~*z?GoxEjBY~Yw=FtCcJr94`q9~~ zCJqYu1P3#>rW0J!_PuBIVZw(-9m88NO|>uX=D_BfqEOkN6AS=8#yiuRT=C!b z;A!1+N^so*ml=$(#WDUy8E`9H=I|mm+&Rm^H^NTW@uF zL_hIeD~2{vEEnaOm$ssxbYRLgs! z^d!>MwP=&Azs7TvE+|scuCzM`ocJ@p@!j0lXJ@f$Ct-}aQPaHe`LOSY>rIARWt%=N zUiLpR2e}i->ODpM9W}R!cm0C+vJ9f^*AgrdpFg>|8Zfyp|MsOJzsle8U~nP`RnCds z!~mD}UA5Y52wvK|`Ngx5BG-46gH#&xK6t=7qKL;Fc4r z`$68A8|!1cUG;UJ+>Ez7m-p}IT$mj;+3IFXIKj2e7^q+$V~$mMj`|E88LJtrEw6vt zi^!7IS*T5v{0nBX8D@Swt_}gvF7uBaQYjdT3lYM^{E1cA#ua*r{uk;DhzN=^L%#Ri212E0vE0fur`l0@vsQjjxwEiS=XoOFJ%1hKu+R&&@GRU1~sDySxQU+=DFL zb{wB!1HRo}z9)}_ltd8MU8l_qQzbI3E>)j9Of|b$mJ=#w?wGPLQC}A+L4D5F96d4a zi+rFN#nY2e>&)~mG-anxJ>tEbxs|i)xwue&%IyM|yABTF#;_giet4mILH@>z#hGq5 zVIIC&^NkHm>W&02tmI0&)2!n-L5a}Unjmex#ChUsfp4chyXfpkC68@pb46)eQbj!# z(ka7AVepO%7XpK{uIV|xR3>HyDTxu2=9T|owdI{$sNKDe|Ln0W?u|V# zfu7cBC?r+&)i3y)B`UP-Pq$|%Y;WI`9wBNc(TBI#9yChadVC?woSK|{LP~C#M&!7J zp6s|D3yt#upEjP3N_Md?xc06_s`j36viQ9xnHY4Ey~06W;M#Y2Gv&EgW-T+9i@xcXbpf zyk9X<{b1N{qlzHt$eg#YihB_p<$xJ}clxUr>`Q`iX3ED>_>WHNb}w$vov(zInYffm zzOmeF8;V&3M8=yqBi&w`FUfQ3DzAjyw6?yM*AA}N1A8(*TbmlP-Vu!RXO(avi6^Yj z#6bHN653Q2z0$H0#~c?~ue!X+Qe7*K)$&B7 zw0g)R%dEKlj6wuEFoxM_wM%BOmj0(Yf3u4%Q-NboWgNEwYP`=10$|6KRvh9vHtaG9 zHY=aR?UzAZQ*81c@XD8g%`z=-Qay8G@!4V9kJ6mkRk_%YX;75jwVe7v8$ia_Ywt|9Po}l$%HacYVt%Q>{lD7_CRg1gS8`$0=RRNP#y+|1XfQp9f-*RK>>FO+;EI@kxRCp@%J^7~iB+nRw5E67 zYTk_~xjyZQjGKOG=v$PASCiX{#uWB_nCqYN8p>YVXoGfPX?tIo{f(%pBtX=C?Ayzr z?)j`RAnNAetIn}mIJ8bRP%9(bz#D~6v|)C5n7ceQWVd6P(nSRA&vQGu$m7>a%}Hp+ zREvkfKioJ}FZFNkO>S}2@_!haJ>fvacC1kih4YtXvsqIFhtE{CEF=7Pm;!~a4(9&I zugbmeDQ=0H){6Te0dv;H9i-{o1VXj7veT(noKB6-W7I2BWNk6e>&Rq1*TLS3C^QwU)qF6~;#Q6I}#`)T4vF;ysg2_@MQ)NY8jn@Hch_%KA82uY9Vw0J9c;V@7Fspd;-CsBjg@_AQQwx_Iu@ixJ_A>Yk#1X>? zPts0sAnw+08CQQv@@}nxjv9U>IVD=w)ynS&tPQ^_D^Ze@?i$)}7v7<24=>Af&UYqy zK!ZM?tKvThfk^eQutO}?aN=V9pJR6HO}|9Q^u2B;sJ5PKh0J`aU9e~5A5L%bo~;=P zQ-?03Hv29JY=$K#U+~c+OuW1h1;pZUvEfHOs+H583uU+{{Y=@WNacXFEaiaj{q5U zg8eUJf&k!8orQ^s3?Rw-1U?7fQ$k%1yty|JOg=z-G34VtKIe8UymYu`TSiU!UKC1) zOb$Pya8zvIQh0o~kT54r!Oe*!J~OmzO=L;ej(y<9>&RL{RwMxjaZDR&Rm2CQwv>(( zm{XA#=Z2d51n66SpUfH~q9y}k!Zu{YZ@}J_`lvsb9ptYuDLUB^;2PU3zk$>2yJ#)U zn^4@s&vOUXJ@Yxmb?X`xxlDx%guqcn8>QS+M1mI$vn;fHz9wVV8L;9<)m2uGRdp#A zIxk#ZzbyydRavOCI88OOoD;W=$4pg6RGW`_XqsD$duqb1MhcwRYLI&=a&B1~>m%F3 zoU0*^XWqENG|NIP{ucEU@C7m6FC|%LfKTcHZ-pD62KKr*9P{`Rn$M*fCR(aRFGa2k zC#*EXf?DAwB;J)b(WE%$O6D?pqQiKV*&L7I+UQT>yW!OCw=&eS)q4d}l@wE zk1ZYFV(t8MJ{`9yviSW*v-sVG?g*FO&7468h0{~{Lr~NXC;C)5s;JUGzZ#6)Q>DFx z85ujS(}g4)W7sVe3umn=53|=y2|k)#8M+PeO~;DXp2GcY(W$D3ab}G-9v~@jo#raj zx7(ABcX#J0g5fiUj#tL}hMAd>B_*dbC?G9c_=l*GzMDNzSCIn|~z5a?bnh~Yrso8lewB(Er9T(X;264g< z2)q=*^3E})h`Mv7v{vE-sbj377*m?YuThf&B4Wmuw>>{MuJ+Jo7z`<`>!!2c@MdR2 zlwGqQ^YvNE4UO3-s~lod^}6n{)3-2VRpRt;ytB@~^7$EuhEq2i)f)^#8dUiTMKc=c zSsfbH`v^Xf<<06n=%zfM&t~vCUOB_YUR5p`O|L=`2EHC|Qx9}a9e1grdi_&R#{$u( z{+*1XbX%Tg5zWu}OkXlQO}v&|zA%-(+NAKTc)FZQ;xGW zfmG@p0Ik4OUJ36J-3Geg;|mUU+f|oshox6@;^!&rpLSH+L9U7ILlx@PQZ@H}Pb>n5 zV(Ktwf=y%vc^56p)8M*0(=QWx@|44NNXW=7 zePAHUFD2>FX`Z-ck(5b-U|{pGMutrVD1}8kHOJyg*?0Kbg(#H*Xbbz?HxwzIGQUBG zRgNCr&ogvV`uQ6uJO2G$aTa|Y9AdR(SZSDjWGl(J```(eYPD{m%EsHsByZWl)V=RX zUsa2)Ok=UQz?>f^^Ggp_9wp)DDw6k!FIH0n&ilye?o_N8&1 z$47!;TDfZB*3A9E7g=#GviH}eBg+4aV}X}O0ldpI0=l5~%#@2P2{*z!IPR&$fhf7$ ziSl2ad5IcqDJY!}$znf0V~Wv}Ps`QiLK@m)`g5)YJ9X}3`3$d$f9j#y5uC{=7h=0U z5>3kycx`-|uLK4dXH1^-Y)rmZ%yYK71Jo{fI+1G6SF1r?>gs( z$S^X?_n8I1YvCOq&I*l&zWuD(44pNFnrPNeqRhv{&r5cOG6?$l#MdE0<*gdR&!c*z z_B2FDmBZMv+|UwPP5pM-;5<*y>n{6>3&#)seo^+#!6- zcJD!ONC2cpabqfER!bEf5XtVy$h>)J)XT`jxwsyOF;Lza%<#*@e1<;+Np?H@Nj8Q% zMer$o3Gy!mTOD@W!8+HpO!RW(!<*+bwG=_Gb7b*~*VnL}Fea+%?4ze4&MLNx=RSH3 zXuV97$tl^YK$1RnXLT1Hg^(Nu&u5~aKPjjYQ?4eYHTufusYNTvNa!)dE+Jq-a<8kY;D8;HP7^Al9bN8D5)3)N!_JS*goHaY06 zAK&+MA1y37Ltse0p;SeG9m9&07W{*yk6LTXm-EhB@c0QoN>o0(?m2PcjTI8{`A26J z9h_i2D9!HkKzx-@WIo4QR8TThzFM-i)h2W8tyXkjPh}*|JcBYJaZ#{?sOUg?{y9{2 z(Fqok*TVew7;`+x<8|j;paEgUm#nU{kq~yrn$x9fF1?rBU}c1n5ljvtQOalaE@M0Q z@N)H*TNJK^Sy9!cysESUIWH#kxuQsGgTgIH+CNJBNd7ZSU=VxAavw=1F1!9N14QxJ+V;pP|N#&}GqaI!F zn)~a#c#J&If*WCU# zRP7wdxIR`F>!$kOW^$B*6(A~au!N2MFH;56X+0EKcjm4Q|Cai~xY8F_96a(ruFxkhL+}VWSyr_xm-cufLNSnz}tl zug4V5?JpK~tj2aL0dfntfhRN;3<5N)q-h;3r3zuQhr#7+`|pb@)}4rVK%C-f#UQf# zXaraeOQ4zP_yLx~`{!+Qa3M-MI=Z*f(a}jXr2ruM3-MaT;RwVfX<6AeUw6yioO>tx z72*$Vq)jaV8F6vu0f6C?=U4kpTqupbCL?4QirX&HS3_XdmL7J$^^g#F-9-l5?@1wB z_6ST?@|9dA_I&$8;9qwE#F{vNnUm>}J6zE{u%fG(gUnz>=5>rz*CTmO0wied!TKwg z%Z$GVpCunmgo~kHvoTZyP%qq?mEp0wOOFfy2p%TnTuKK46k5_4Jj1za{+xUo`0hGH zHsV*(0HlFy(9u~E1REgRX&eL>ne&VXXbalIXjo&THc+IDWX|GuO-*@@F^DJKmDyBr z`gI2IJFNe~^lkv2$$e)BFf^vGfVbN;=OzLGD{r5wa=Nl-x|1DMhre2Q#Pyqf`QXgN zGja@Rwj+h3UX9&LNef&x_YCkJ>!U|P;6zXXN;u9v8U79bF?1SmxTvz0B7k0sf%6b> zZ;}&?y#dC)S~B<@!2RH`FeZ~%rv%tp0L%z~7B_f^kv%;0+`*It-s{f78| zEehs1)ZJ4GICLLOy^}*a^2!nTt3!l!t8?bPUr){J!`izC!)sF9KwunN-7iCv07GyC ziWH~4vjfn*|A>UghjT=3N-YCa7WxnvbuGdQj1>g&Ajx7AyF-lozXi$TTrf7)Td5sj zlYS*H97H{|Wqa)>V{7)O9N!^oJj(hz&P!r0NfVc@N$1_TObU!+B22y3hE?8xj2nDN zRIyBPmiwSVnk_{i$UYGkGGO1$I~fDLCW~Kl!gcg8dgb9&@9&vC zQ6PjHC+!kgVze$A5-Cx+%&Il^Xz)eIEm+{Y%Tngf{zcuP}`f*qJTHYf!V$}{z?!K zT7#1645w|rVN-R4%v(1V!XpBOC*!$ogRc4EdMK1xX*q1@$#_p#kBgb zbC+xnx|9m`>=N8vObVQsiIfvkg7?f1G+?$8P6u0MWd#i^W9-lU@ zaYzW;U+bmqx2*GC+~3WSA?&{E9zbVa+lj*IzV=*;S?uIP1v=nMa4O1qVbroikjxv4 z4hH!XLFAYK+iU!Y@V|h}f9w!=o+5YBE__irv%7O8FE7_%GJR+mD$|8Cz>)gP{sKj} z5R>~F@lf^!&9MiWHkzbcCoVGi!0-wxa;d%-cl=-;9_KFUw+D4U_PEFQ7l(Z~ga^iZ zQuG10ru0zDwK=EV2ZDnR+}}o}Fg~0%w787vzu30*ZKaY9+lEaezwPL{9Cf*D@jYun zrA=l0hUl4`;VXa3@r&&v_`q%0h~Pq8R&C;Nc_Xn|u3jxBKDNC-IreI;Ne$j)VEal^Y{BTm zwB$FCotsmH>S$@W0 z$(*0!Q*ifNW|O!)`&gz;H}ynCjb#IFTJFEw>ys94!$sdwr}pynq}b+`JX0i)*T6`% zE>bbVO1H9KwoI$9IIYO|_%|SUiB{zd`qDYhyXTc`*T{HxJ|6rfx#5n7GtC;$DgZMz z0W%#BD^dkB{dhRj6|>GFa??;Ma$be4ep+c6nfc9Gv#(!Hrl0by6y`F^N?-g;p0M`S z4*%(1gs2&pn?op7KyQu(`axlAhht|u=8bCl)hCl-QjM~yi^&-i$y>%G=3viFn_9gd zO(&VNnvw1<=kE_S-e(MdKYq4ozp2*NkA|ws*z-rbPOlv`Qzi0zXMgMqzkqJ(tJlhn zYBID3*W5C+rA$m*E_8|8Wb8Dm!SlTJ?OH=>d&NkEx5J4uvr~DiICSP()7UE&NMe5| zOf}CUNr^Wu@^Pynou09bxgcUKW_Ub(pRJwCT_ZGXJtU{8-^XW}V~a~_L8U$Zb$&BU zH7)X#cVbM}!Sw@GVDZywM>=`ycwaOiZu^LUZlh>g9vz%N`n9n7{LFuz%c()51Lp6LH zVR!%$WfTGc+9C@Rz4U{$H~2*4Mn7r6uzs-}k@C=+@OIpot0V=grx~m@p!=j}%V@Bu z?Q`U*Sw&WvC0E2okHMQ$160*x9#yL3Sn`o%k}NDgXq2a{+GdMr6&ZH@nmK7fp`bZq z23CC5r#<1?e50fpbo;56zSWgiVw`ix<)e5%=|EdT?-MK!y%yTPEXn5cuJg!B|K;%x z859EM+lnsV9)qCE1#f-T^A0z&aFH6`ns#t8DOuo7l)nBkLOx~gUCV;kS2W7|wR@ph zZ+UtfvuSP0;Fbec6cs3FehQDs*UV{zB$02ZVc=MB5aWGtYXNYH+4k7WW zv7gg+V@90$6eO{`YAD8=!|TBC3;AN%4`fi?b;w;+rPu7qwW`D}O!l6!am|&?v_6e7 z56@cI8^+?oei{f*5yw_I4C5RGkF<6&{bafYW8l-@zgreNYzeJvQwf({eqF8-q{tY- z!O$osziLN(tWR={T@Uzv!=&M;veAj;lu?*xuCExQFKPob3xlA~1t1L-$6cu&o=BWM z;CtRLEB??#u57wtLWWfN*+J`>ic<-tF2_(%Zkh~!r@hh(jTF5Q&E>dSD(t=5dv2o( zLGU1dcr$$ql5CV4;F!E!Z9|T6Ge5gyXx9WuDig1Q4k_U=TMk_P?yP+6Zl-5@pBvB zjLUCFvzhmzZfll{^kg+?qfT4M`^qo4ujK6zYFrCRt;&M1ix!Wz%c+*f76)KVE-oD^ z?u>By0*Q&F9_{1uyn3zqEwx_ReWUi@G1Kf98U9_uvGGAaC)S{a&P1c}{jIqa%@Ku5 z7%uV^2-fK(UKUi^o%k;Fr;d4WSh5i_rhQlo^&gKx(n6rJ{^`=C4Yqy4JI%qdRT&m* z$dSeURup8BFM*F!#A}NFoVM;>t3%&bN`&9qwFGy;PTsS5fq~a7Ek}5Jcc{tXxncg3 zVb|Df@*E!{RDAQbsmE=Zylg}JN95@oT}PEQZ8cKAeaS%d36b#EMpS*${kcsGl8^C- zuV@iQJ+2d9u`vuj#VT;GdNjPYiy4tBksDwNFDb-5b{?zQMg<3rt5gc3X0=aDd*u=P zYVsh|2u+NBJM-6Nv^}(pr+f3PiH7EJ+jYY9*ABaT%iG44uPzU)beFm?ypgSW1qpS7X3s2SLkmd!s zw>mFlTq|RIG~Qc}%cuu0AvQQt3hB*EDvgV*5^kj@Q_%3R>A|Tqo&^3_w#0Q zc~;#+Eypt=uf|(1-u$*%DD;rtv!jHvY9#SmNJ{y&kfhXeRU|*jCD$lO&~qnt5xIfe zb6ajnSz==kYo~0xN~F0`xNVkcQ8TfF(zDxcT~6D|Cyx=7i*$EE;XG>kxn6&W!$;<2 z6Gt&r|4QP=^je;DopHrH@{r(^udo8j?L}gWF11tp>sbwK*8!`?LF|iCX}iJ!Rqu~3 zbt5&zvCA`&B0WiL;k|n)Tf_KAH8!e0>r&ciEo#vo6)i881qWDMlfT*>5Z;mNJdx8e zOGKW~y>*=`m}=ID1Uc>3H9=1(*!ap+<2EuGkdgtRQR;KOW#OG{P&u0Xp(y+8i)*Tt zKg=~G7ExDIUSa>rKnO%1+TWEBJK&<5emwMo=-ff=@#9yAx^=8j!u2R}qa98ensllu zojR{{)N(3Gcui9t>afJC`1j zgyP14K9~2|5#H2=vYbP0`<1hy2PYAerDb?&j|#@&;UiA2a#DsK1N!-+s0M{z=qvESx zm=)P?_uH$!EO^c)F(=llh07rNeIWKiu%T_e&zJj3K8I_M2>3i_3{ni9S~=p|*3obK z#XCEDqb#S&crw6@7m+P?<0YzD4Yz}h;)ieS~ zjoX?7A!XjP+sSn*mF1#+Na|Y+_z|{aZL`n!`?)QdoxQ2+JzPqzfqs>uiDMTVu8ga< zVkYo`^nRo7pk_Y0$9-ob2rF_e-%2|l#fz275&HR*OUJY1+|A8vtVR$~4x&$Kkjg&F zl+12Kr@bMCMT_vN>dA(YALxyMa`%tQBOjH`#f(TIMMPTDO7w>Baw!}8Xr=L@%`UqD zsnq;7-zcY&^_2g{1$yQmc+B^{vypGg3$kTrM?8PTX}LYdGwijUPIz(tU?(HH;fIsQ zA)`z#d!}`Kq1*_oAwtO}o`0EE`NG}Q z%npR%yfoTO>_;g44@!3bJDU+m#q2Fc^vsBw{g!Gg%Axw3`kOuN^X@8o=pl$t&+c*C zEyR|v?O6WMMP>@`IBT6_-%7J-s^7_evL|m}w3lknN~f*Wc4!G;&c!6K-u&qXC6?j8 z2_ZU>lxM%YCk3mhriE25o(`hGVH`=R2pnSP>VoPNw%>LyDhN_Mi&fC|zzOSqUmdMG z{n^Y(RKaQM5BymiWdZ1_{9))t$;@##lu zHHI%Vrp!{%xMw2cgKpUBr(UiK!YHchjVdo1oyr(1Y;=4aE>yjT=fT@a-xj2qH#I)g zf~VUKTAb#u?sFHNpK-0w33>;bn448SSzs+H3P0+}A5~LU#VRt;Ur3 zN@^v^f80h`e~Xxz#j<(9i1mZh4e^Jopu4Z{Wl+Gu>f$uaf*FKP9wg3Ef==5%Da;I*ZuS{6`aHala2FaDWilmI8tcwp;?ijLi z@puNqeNJ5;t+!RwOyAnb<5@dr+VV2W$;hJ#X&-Zy;pK}RFY0tcOC!S>zu*Mz%CO;uvFW_9@mZ=_StOC62+r&_wjPCKRvO3gd#Uy&^JS@go|vt(%Z z;N{n&c6RQ)=mRq8COsA-G2P)8l{BTtbY$x-wSmi?kU(f)!x`$@lwb;<%0X)pWR>CTk_~Y zC%9&`B}>wZr1BKEhFR9R?aeFb6VJ;@JP99s^@L|I2fjE1GiN3H#azfgUcnhO7HuLD2~pIQ;}zGPc__!uAf4R z9Xz>?l-w@2B(x<`W-mK$SHTMU(qM`otfA@x>oE>JT*~0@wGUiqv-A;(#>L>o(0u(8 z0nFGCx*iIt|Dl1LTQx8_Qn{IC;|RAi@f-};`YOI_6f8TYZ>w->C;p|+qjNLW-@V@s z?^E0+EV4aYaNln=Fo~)smEPIq#G#%zFf93;ks5nDLWO^yVDUjL#YwM(jiq8B%#a!z znO2V3ydOPgDd1AoPTH(x9pi&4{L0m2 zs6e0x9)a3EV{9$QQZy^!n3u-|$;-Q{QwJ)%e~MbyFCa=|x^8xZ99&#~d8%DskJ z2A%M!vOd|}1;+6g%%31K&%d!Id~R`m&&=at=p&rA*N4)RalD&~B@6K!t_}WxQ5{aW z7-IYKa@Gn$VgltbqF7_-T>-0hk~kWob@q6k=EN5!ZXVq3>AQ)%tRfX9J%ND|H#A;Q zQO{4tE+^bN|7JgAkaelF&rI42D=*@zzl%3#hg z>Kpx?E~%mZTXEBf7#5H5oJ9d)7LPnOf^z6iI`(hPH%pF9MQa!_wX z86=XWo12sN(O9C{kAepifh2;?vE8V7pN?c#-*4~tg@rj?8|X-waX;EMgas**d}rJ# zYA0aj_C5Cgk0q38*;t%>_O5XBU>+QSCfPm?rF_zn);&p;`SuPK>J^CdrnJEBv z_G!-y8`2i1U{YFMPHs9rk*cLp>a=t4GMf&W3Z#*Bb{@77a38O&1vakHw~FG)mIR*gLBop3p8kGt^%bTLlCUijmpxp^yW~Bv zUos-4@~L0V=ZNg~iu(@JY^Ol&<%&hdBO^(l%P*DXI{DLoS2(e^`I_;*3nK%OnjJ!f z+GQ}FR=6m8d{j4cOIK44>MQ2bDK90ew*q^X#Tq6%xERChVktdp4N)U>`k@?%q6w!L zUc5(sT9Zn!8{a8rv5k1H7U50#t#CX`GJ*BWB0bQcj6vtjNe}j?1?%sASW2^RPhpYo zxWA-UQK&LLGU)B2lWIi&Lkl}K)>Sy6{#711SG>^}R*npUI754GH%z2um-Y3#$UTP4 zz8f{jnn~d;&d+VkntX69IZ_B5>AN=#hkKP#8MCuH0Xo&_NGBAY5DqD*gppSZQ5`J5 z+CaBa&0JKcKM8dZ^ua$LnPWaWx-NQsGr*=g*t4`sJz@NlgUHl(vsyQzOhxz=JPG}* z<82~%_YZ>TtqLl0BX(H9i)S4Tk^efjHxG|(_n781=z0G1@Yr(3^&B2sL2(ukji;{o z4B4HrpJC3Ea(e7)RGXP*5T(CNt9@^Zf?P3AUrGw2r+`+hO5$rhDX+`T_ny7l3b|Nn zpYpLcxjd*O5k=ms+}Fqb$~*Wdj%liKVc=m;$~TWJ)uMs&>iW6Cqy2SEqB6F%XXI@8 z`R*{{@(T_B)rA+jfv@?v%lEV}4MRW8}kE9;9VL-nPD%tzGQ7PH>&)N}~Bj z;^V7^jNq0mkg2ykgd%Aex*=uK_AO!33RBNcq@m^%$1EGUMZ6>FY93Lgj4@(5Top|r z9sS4|oy0^PpMxK@?&C3;SjnYJq;q!v)6OYF=Z94zSi?8?<7m$%R>+ z|5VI*bz|U?{*Y|YfT7{Yg=L?Q_d|>mzf#~14ATQ_mc2QkUKo_^7+pl|sR4FfBxQ-k z_y_3@>RG>zqHD1Z>{HO-T@Tq|E|!67ji&+_sFt9Xi`IGyi`LJ~D`f({$&fZB-1eI{ zO0C?lYnR}@e4E&5%raJ3ZFn;5pvy~XZf?=C{V+pWw5ZwF_{Ue)#b`~vDbLiNm4VUc zpO+cN?l2x#sw81ogIWy)wM@`gqQeVd3M%)Odtww=bW>J$R9)Hg8^XN8^;j#E(YGU1 z32CAReDOA_Qd)7f?N8|Y9f*w+!*rr9OI?2~4Bvh78OsP;u7dKD6vxNLm0>I9Z5$^U zd;)j@<0L!O{p<3$*5kmMzB7Mw7~BO-4sKBvXUR(h$(Bnu;huCD7{&^2k+J z+n3$5+=(wTH`H7$B|(gcuX=O&V`4RrSJGC}G&|JT(%0AWNOg9-+@ZU~v;2gxuCrW} zdnbrIvQkE_QdIoO?cEDUAg@OY@?lR0%#I_cTd#}yHdkh=?tYbsM!al_3#fkzDgT6m z99Z4r%jpjrSr6u3M&Jud-chW`L888vNgmLvbeP(NH;h|Gf7v|F;Pa$~+lX=Jc163H zx8@FsVXTWc&qhymFXhqPZk>o>Rd6}7w%}n=TmL7{?(ls`fRRmjmjeApl^6<*C|ztT zH$tFZ7M81hS_Y_LhoZgRcXAtRD6tLQtNbxWbw%n8fs-n3$6$N`Tf^ddsj_DGR(Bq7 zJH4@j%}p?}lI1;b6*_bnRscGPfhSl zkA|AM&z=^Izqi16-!Is0Ts{b@K=LF1j=q8%?=773;GQepn@)ma8@%2!zU(MDx+c?v z;C3C(I_`H~D)Tk8yjs-fAj4~Tx2M^)Y00eKX+wHrpUt?uM#bORCD3i7cw*9UqS_!4I5vyjiaIL+w#-*~|@)ADy7kWI%~TACD1 z%ixVD(PC8A=l8_yx_#@Ku+!J!4FuL9>sibSuklWX#v6iDa7i@3aq0uM16}U2`MUj< z(g8F2I*SmBMVwyAWU$8Y?v#P_^@>3%RI~LZ^AC3A&m0{;)yM`6Y?~*^D3=J%R8t}i zn$ts;a$|TB&^Fhedk=1L8yVKK>qYu*ed&}B-$TR|)LS-tkERdrEZuz8d65)rSG9ptD7Cw7b~T_HhX~+U;V~}M5__RRH+y%sLX(e9nf921 zq2cYC{(`}r>lU0JE{02y-nb`_Ib|$#G@}AFs9W$|?Ov=d1M~qiWkMKiIz8{A6JVYJ zmvNc#zcQI>{f8-9EyEsg1>D@>H3$5ia^T`zNnJ~Upra7<_JLx)V;!iqN~n0K2~ALN z{62C8x$1-{NzL6*z-A&l0t+#Tr?_IdCDwUHSLmtE6&7@f*bs>brm`}x!9S2B80b@b z(M}(G^Z;V9GhKZAE)8W9S@*T@inkvVs1ghwxzXkh+8Y#?#Zr~^bEWsG&4pd3q3a5h zh`oQIFWuQKDQpaA>hJ49^1lAXGGSVt4-|4ZbB2+>(@*^xfNA7au%QsfqIgV5Z_l>!AB0D%D zzbwW1wsRTZY^$qYHGLQ(L+0%1BA02VqiHdCBI6oYucxzx`tx>%IbjL1!s+bY$)*rr&PZhm|CJke}fn}qm-w7PE9Q(I1H z{9#cOBGk54#QEU;c)}Je{)^85;*9?t`;D`^=+!BWwcd>ew}qkF_!WwqPW?mzb7tlz z?|#`iXQO!Anc&UvZjuf0JOO5H%@Z=rzobXnLFMd>)JJ%K#$7P2lBD#EqNh@LD6rk2RbfVtV%eb6Nb5yKdCd$4cmT`a1k;twUQ#v&G13- zg>ai^yJ>fcjcgq2GB>EY}BOh7t*WW!~Xf~L9x7?w=|JZIHXLnwxiF-WbP zaQ!xK)8u0A^T3$hIyqC@x3k@F z!CPk$k)ip{g!_rQj&(_VLGV0{Y1~@NWWGhUa^PwMe>3LM`wu-mD#9s za;QbofV+7fr!z($feW&-Fz_5p2nYRXGSo}}I%cc0T$Oj=K*OsYmqxF`X93eGqE-Wa zy@GpH36r}mrGW<~Dr?gfO9KlI@ueulHZ6-$b)D_OhJ^)Nd0-(Qg;eQovBwWVe!T5R zMPKjt86iYsfLlAn{ADwWh6^#5n;nrL(6a9FW748R7!zO8bydfWQ{-nmkU8I@^=cip zlt)+uR!@@!!8z*PUVs1}nY2=Z+yQDc`!LX&Zwe^m;xJQuCucQ~~)F-|DHtrU;66&^XtF&{rQJ#zw*$(>GKb-{m*3i=ZyU(ZT}K= z|8UDc-0}-w{3BEUXLk5UfB(WH|4}vn$khLlEdS4QOOo*F=sQGs7Zmquo*b`O7QX*$ zpWdTn^el5GNTutTTDeFlHjC198uaO)WC+*atzysc zx_caGUAa!t=*$$*+|~>@%ifPDX;|ji;X-1*8q?bFG>es}`R{&(_ywJVUwfS%fg@Ps z5SvIBkw*tMy7xxqSHF(bV)X?(fzwA*dK*0G(t~AIfleBtLQ?wFyhOpZKSPUih3& zu9`CEYi1siX$W}Fza2?Wq}rA_{5ahQA>H{x!eRUY+PoQg1fI#x!XQ#s;YUH^`4Rlk z$amP1jw+p%$(y_aHJL5~BI#b>8N_4RVm!tqT#Y1!z#Ig@9QfYbHk?tLSS8!C zw4B;B7QZWUUXOrV6BaPXv{ z5m8eU|8zto``4D8sST7A1AgQXi-N7G(q z{1Lc2Jq^`Y<=X3-PeEI53Uc~7_uqIz!4z!WceW2u3Yy0!K;&lHF!2an8w4yoyB+7~ ze|5Rog#xVN|9?JBH3v$}Aj?H;@hK{8CHZ}-kbEbdh^EbzB#FJ%fk(I`NGUQI zL?yuvsWBhMa4i2|1dU_`0cY_@B+-M_CxA_Iylk%o_;HR2ULWop8B<%f-K2>Bro0y3 z;pDgG0b))+EyNk{`x)2W=YVfK0PQ{G4%DBjiGdCA^WBa}0^h!;z*Hz0)a*EQ8D3N+ zEJeooudl_auypO@4K!I+1*a0@hP|DZhL$k!st|Bs!K5Z!!Ok|&%4`4nAhCqO7~(+7IN&h$}U#2e8D#*G($|Kc7J#AtABDP z)3U4vO?5$eE$6Dt;mWl@7o~!qi?}WN>0lie{@w6n-rJ->f9It!Z(C*q|4kyNLfRn2 z(q;+uqd+1#nK2RaL?aq4e&m*^ed)u3YN>YswItiKia?|9^GECJ(sxaNHWbzr5HDRr7!_qz znRfOHnmp-syww+MWp%8ftnN`(=F9nP+{>|)6era8*MEi-Q=foo$KJCC z@j6yI8me1zxi79ht$PFFF_GWe^$(fDb&8CfW0XhG#d*-j=Mm)2^8U>`D#gm@0{6!_ zVN;zh1dcv~1K+CfiN+VqqdUv5zGQbB5)G5s$%W94SsKwKB9W7T>F2DNXv@V6^$lb< zKU&D;Z|dDGo>QIw=DDL*mNYMfW=GZfSbeNsAaW|n)X1#)EaAf;y(ZTR49~!t&{Ks)FK+#qmhiddHT2!u!WdPoeuvd>|%fqNzKo1oTJ+uAg03|AXtvtitY6u z4@5|v1PTB9bgTsO=-{% zJQSR+v+;K{PW>X30YkE%`ZPmcv>q{=?SfC?3D^*+(JfWl>eMQlMJ|+Y+62RGChJac zd<$GPU;Ml@PTA+O7A1Nc%KGtk+p*<+=cSq&G@7))>DPm@+QWSy9HHuYUS=tvT_q{X zSejPVQKw<2F*Sm0Tt(r+rfrfES5Du!P0q*;;as}og^gc8M7_~5;~<~kpKo!F7=uN} zUb3g5I)}Rr5gDy4>(BquvXn%vt6CvLNe+?X+4!?1b*TYR6vjFQ#{}+P0*kAh>9GY3 zx}Sk-tdIFzI+SGQ7xksS)o{uwqqPM}xKfnN2|5IvOdb)P9>&D=d0l0S)L@l~sAkI9k($=XO$2u>B{ z025W^1?<<9N-N8mhJ#8kW+tj;?Hg_MHI)x9r0&n-y|WqV?G@={OQlg4)-i*yCT!E{ zmSHx5GLL_=1(!`=G?(G&VaBrHy@KOcA z_s{J9jHNFFom+a_00mh83Sj*g52UC7>mM$GHsktF$$ysqqYn4Jx#3vn&U;b2l&9SB zrt+u*ZKZ_mqZJQ(mUziMWN4CW{4pv=6I4$UxbxZw$MIBmR1S0`(96kjqsTJ%?D}tf zM;YtY65YIp)pnh7>ph7`{-(P4(kttYn9c7b6T$9c^^0Loo+o3u*d_~g>aWw$+H-Rl z`U!BxCDC*o&O#s`#Og2B{s0yh$giX}2;JBLY@h(dX!nEstA|?edEHX6f}Jdu6Lr>! z?x0mka#4j%vzBo16+YjBj_qHob(7(|!9S`qniRXbH$J*(U{0{~x{#Va)?vXP%zx+T zRb!%!a6lWZ!w@NzSbgd_o1sBNXtQOik@k6~TS`Wbw@hKZ>Y=uCI)u9cp&4IsL2!le zpStn&15i@nOZHYsEj8oNP*PS_07lP!AS+|vwzYzWwu#`fq>jSl4NLVdwQ3F>){L zAFtTrSRlxA|rnm#{5xP-gDbsaxguFJu;O79(z?`Ej)RdGn*1QuQ14QqgNIV>D!v^V^@bk?xu z*(>M64UgV*-ZlI=S=X@Ywy*K^b1cl~#a{oJFWIbq?VZ4i`G&tLdhY)0yAgl?$M+uo z&+HN6u>G^{z^5p(WTN4qyH|KGII=kT)y)508`-zX6`k}k*q~i|`2XgY(*M-g_C5?g z-?#7KUBj6LDAbix-a*DIw|4lsu{NmvwN1Ow%LF( zK!bxMFj!J&xF!Q9HDZA_mz~U-4(uHPr#(yVPI+kn46LfK1YihxS_q^|Bk1E=l||_S;w?jF>wmGak*e8Fd^>j zRR(edcq;gTzFnXOY!QY5odmKJ;{8gX_n*%6R#tRa@D=EyYqPU}&0{^Foh2`iyflL; z1F3%otj*6fKLTFz#&HFx=^hu*gcZQ{${ta$Nl+sL(EhK>qEs9f zcms1Va1FyQUxdvJjUcN(FR17Q>NEufA*f}C2tt@Er?>;l&v`pdgn;FzJ}}Jpt`q|X zWDwAn>3(zagkj2nzDodFeZWQ|4wwbtE#Agiz->y=khyG7bOY^r3iQX6biLjdU>yf+ zyhr7)as^I*g#hcrrNYZ^LxKh3nHfN<4fwmJ1N|59&9IG$fr0g_r;B33Q)oL3@HE1tPh$JFr+U5le3rkQZ{hShb{|DowI=HW!7yA zC%A>E3@>1xTI22%DFNhc1M>^exC}jD`ptU`98|z!Hn2XM3(PMi!C4MiWr4XDk)KCB nj~0ZZF+ZB@v1JNs Date: Mon, 30 Apr 2018 22:27:01 -0700 Subject: [PATCH 13/13] Update main README --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cbcda69..d8d07ea 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Labs for running and using Kubeflow on Azure Container Service (AKS) +# Labs for Training and Serving TensorFlow Models with Kubernetes and Kubeflow on Azure Container Service (AKS)