Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kMm3Y-0005zy-Il for pgadmin-hackers@arkaria.postgresql.org; Mon, 28 Sep 2020 05:50:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kMm3W-0002Nc-61 for pgadmin-hackers@arkaria.postgresql.org; Mon, 28 Sep 2020 05:50:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kMm3V-0002NV-In for pgadmin-hackers@lists.postgresql.org; Mon, 28 Sep 2020 05:50:33 +0000 Received: from mail-yb1-xb44.google.com ([2607:f8b0:4864:20::b44]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kMm3M-0001io-PT for pgadmin-hackers@postgresql.org; Mon, 28 Sep 2020 05:50:32 +0000 Received: by mail-yb1-xb44.google.com with SMTP id k2so50041ybp.7 for ; Sun, 27 Sep 2020 22:50:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=y+B7tsVPyAAROz1ifcGThvu3Jbgz2nP6liCaTVGayis=; b=zH2FqylQOq3PxrrqyGhhotMJrd2UTGbBWD9s42WJS72sZkLqNF6xzPK70rYdyOAdGz p25LJxSEPGst3ggfI+xmCoqN5+2P7HzsKc7GLabipdINebnZsCbfjPbm2YAfGE5BlY1V 76v5OaW+h8GeXAuxfR1PE962EgHxQurV92LCA7DE+5ovrmtAz93j17FV3W5ESaXq73xU tHt+0n52bo6fBgpgNH4r2W//ObdvNAaGKX7yZ4gJL2KTxgH0QPGebo5CLWqnYry4EDdh 5IQmqZ0LgICcWqAT1SqieynNHj9ErYoSBNFvibtvIbb3tXTQmRaSC/Bnwi33JKoUCeZt 89QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=y+B7tsVPyAAROz1ifcGThvu3Jbgz2nP6liCaTVGayis=; b=Dbeuvo9CGZi2UUkZyuxMIQjN9BqjI8gJcdvQVIOGSKHpmU6C7HtOfv2r1kyBjPatSw 5jqu4+E040xZfevPl9BF+VqCdjacdJfxbsxU0Xpbo+d3iRgqzMucN16FbmMtRpQLUm9w ScCMfDPgkNI6hZ6AV3HNAYegeV76OBI8n2b4NtQJNk/ja/MARI1CLE1QN+a4TQhgYXfk WJ5bERlJ8E/pMx0GuWwkwFmbg8lvojn4wxlu/yGh1UVMDgLQiiWX9qVIYW5yvIDofqcI fVX57vkPgz9tWcYeWDaU6QBLXKiQlrNZ5nB2Dilo3ikCJw5Lhc5yMFpEE/7IB1BlMxdm 7Bpw== X-Gm-Message-State: AOAM533NV4zE94/8W81qr4PQcaIB+YsGkiAzgqvgPt9zhlm511kE6BG5 yPr+Gquccq6N8Oct3f0nYhm+gX0aLAxXpy4qqh3ehOxjrFELOtVc9Nuio55dSJupvsUXJJSq9HD iBxDHTuRATIYrfyDnbrqqluBZaWyJk4bBuuzyGlBmfivl+tJyQmuq4r9xD49dvvqc7cYvAECrA4 710okPiKinAojnMpvDQaO1fxAL/kxoH7q4Stk0s2egu4HC96YK7Sa5JO/Lr01nznu/Qw== X-Google-Smtp-Source: ABdhPJzc7krpaNvM2XCCa2qpQqkm8MKoFpNq5fOv5euO5zFDnPn/33rmtpilghpMoqCbxTRYVbElczlGv3VG4VfVsy0= X-Received: by 2002:a25:bd93:: with SMTP id f19mr5207353ybh.155.1601272222334; Sun, 27 Sep 2020 22:50:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nikhil Mohite Date: Mon, 28 Sep 2020 11:20:11 +0530 Message-ID: Subject: Re: [pgAdmin][RM3794]:Allow User to Change Database Connection from an Open Query Tool Tab To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000008ec105b0593e07" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000008ec105b0593e07 Content-Type: multipart/alternative; boundary="000000000000008ebf05b0593e05" --000000000000008ebf05b0593e05 Content-Type: text/plain; charset="UTF-8" Hi Akshay, I have resolved all the review comments and also updated the test cases as per the new implementation. PFA updated patch. On Mon, Sep 21, 2020 at 5:24 PM Akshay Joshi wrote: > Hi Nikhil > > Following are the initial review comments: > > - Open View/Edit data on any table and click on the same database > connection and then click on the Execute button. Got "get_primary_keys() > takes 1 positional argument but 2 were given" error. > - In my opinion, we should hide the option to change the database > connection for View/Edit Data. > - If the user clicks on the same database connection multiple times > then no need to change the backend connection and transaction id. Add > validation at the backend, no action required in this case. > - The role option is missing from the "connect to server" dialog. > - The Password field should not be there on the "connect to server" > dialog. Sometimes we saved the password so asking a password every time is > not correct. Check the pgAdmin 3 behavior. > > Code review still remains. > > On Thu, Sep 17, 2020 at 4:15 PM Nikhil Mohite < > nikhil.mohite@enterprisedb.com> wrote: > >> Hi Team, >> >> Regarding RM-3794 allow >> the user to change the database connection from an open query tool: >> I have implemented the feature and also added documentation for it. >> >> PFA patch. >> >> -- >> *Thanks & Regards,* >> *Nikhil Mohite* >> *Software Engineer.* >> *EDB Postgres* >> *Mob.No: +91-7798364578.* >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > --000000000000008ebf05b0593e05 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

I have resolved all the = review comments and also updated the test cases as per the new implementati= on.

PFA updated patch.


On Mon, Sep 21, 2020 at 5:24 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:=
Hi=C2=A0Nikhil

Following are the initial review commen= ts:
  • Open View/Edit data on any table and click on the same data= base connection and then click on the Execute button. Got "get_primary= _keys() takes 1 positional argument but 2 were given" error.
  • I= n my opinion, we should hide the option to change the database connection f= or View/Edit Data.
  • If the user clicks on the same database connecti= on multiple times then no need to change the backend connection and transac= tion id. Add validation at the backend, no action required in this case.
  • The role option is missing from the "connect to server" dia= log.
  • The Password field should not be there on the "connect to= server" dialog. Sometimes we saved the password so asking a password = every time is not correct. Check the pgAdmin 3 behavior.
Code revi= ew still remains.

On Thu, Sep 17, 2020 at 4:15 PM Nikhil Mohite= <ni= khil.mohite@enterprisedb.com> wrote:
Hi Team,

Re= garding RM-3794 allow the=C2=A0user to change the database connection fro= m an open query tool:
I have implemented the feature and also add= ed documentation for it.

PFA patch.

--
Thanks & Regards,
Nikhil Mohite
Software Engineer.
= Mob.No: +91-7798364578.


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Sr. Software Ar= chitect
EDB Postgres=
Mobile: +91 976-788-8246

--000000000000008ebf05b0593e05-- --000000000000008ec105b0593e07 Content-Type: application/octet-stream; name="RM_3794_V2.patch" Content-Disposition: attachment; filename="RM_3794_V2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfm418k80 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvaW1hZ2VzL25ld19jb25uZWN0aW9uX2RpYWxvZy5wbmcg Yi9kb2NzL2VuX1VTL2ltYWdlcy9uZXdfY29ubmVjdGlvbl9kaWFsb2cucG5nCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu LjhjZjdhZTZhYTc1MDM2MGFlNzcxMGFmNjFiZjhlODlmOWQ1MjAyODQKR0lUIGJpbmFyeSBwYXRj aApsaXRlcmFsIDQ5NjkxCnpjbVpefTF6MjNrKGcyREQyYDw0TTBzK0RoKys3QlRLeVZBTGdGNmZv KyNQfWtodjRvSysrbCM9PyhTfVJXYmZYKQp6KzVmJEY8fnZ7YWJYVD8xPjV7SWg1Smg8KT5UQU4r UCo2filRaiVneVAqNT1iUCpCa0ppMTA1aFJgRW1BUCo1bV8Kej1BeHBDUWxnXmRpdU5gcD0ycGZ+ UD84fURZNiRBZTFHcEpsTj5YT05oPn1SSEEoWlNzQGZlekwmXyFQZ3tpJmxCCno0UCs3Tm9nRm5e JT5jNjFBdTU+U1lIQzgkVXhGPWxhNkRHajYrY2Uqczh8KVlBUitCR20zeTlldH1OYTtZITc9Jgp6 bjtmU0Azbn15QDRWLUBqTCVxJW9JUVE+WW9ObE9iI05FUnJob1MhZil6bEhtcX1iMU9jRSRgZkRE PXo0JT5rOHMKenxHNnFQPHNmdDhta0xTJVdkSVp1SFNHSFBFRD1SMEo2MCZ5NUZye1NJM0lsWXQy JCs1Vn5oOEp2eXkxQXs7djZpCnpKNyVYVz80dUtfcGVHSX5CPCl9I1ghNk5oUGQ3QkVyYyVXKmRh TyskKGpfMjl2ckdVTTloQUVTMV9EeUlDcT1ndQp6MjBGdkx1Tys8PjZ3WTYrUyVPX2VoRFl5MVMk QXc2SFQpaHV5KytCV0gtOXAxZWgzanM5THMkNlBUY21FNXBKe1oKejIhZ2RAdEtfMj5QOFRkJGkp YX51U2poU3skZlVkPkRreCpgS0F7JG9UWT9yVUdCRXlCKWwxNWJfcFlKQiVMbDJsCnpJaHFVP3dV V0NWYkstRnB6Zl4haDMrc207ZWleUH5OXlcjZ1poRXN+RX4zSmVlT1ohJWRAeGJSb0lMPUBUT1l9 RQp6YSNMSnFxcTY8aHEyYGdabntwWkkqTVdoWjVgRmg0czFGdH4pTmdTT2JiPSNyKyhJQ1BNOG87 JiF4MURFRiR+eUsKelhBOG9eeEtkUTI/MnFhYWIkcGI8bVBgemFENFNza3A+SkUlOE96P3woMkFT eWB5RkFPSzVUSU1IdDE0c1FLTyMqCno8N15uZitoY315Y0N0NGJmKyk/YUlQP3hQTjxPZCZeVlZ4 Nmw5a3U/NFAtd2ApLUo7dnUhP2BvYl9OSzEje2tIcQp6M1gpUFdnZXkjUmhuUX1rMU4kdTNlfW9D NHRiWH4+MFY2JEkpbk9Fa09ieWFPKWozVHZwQHVwMkNFa1I+dzRKbm8KekhfNSRAbDNaaU8jUEpn KCRBYSF6WjVlPDVpMjNmenlASD9TJFJ3KUtPJSgzY1NVK3FPMXBvPntQV0cmTkpyO31SCnpFKDBD KVAyd0U9MVAwJHl6LXF0SmQhSWBZSkxsJisxWG00cip1LXZJMUFPTENkfH03bGt5Q08kczNfa3Rq OUVUZwp6aiQ9LVlCUnIyekxsTkZKPXJ3dl9AZGo9d0NDWG5raU9mUTs/eDw9QU91Xn5RJDU3bUBY TnI2blJpWStvQSpzLXUKemleJXREdDNTcjhJajhKdj9UUV50cEhsZXtTWn17P1l4MEtqelJFKyVA PmZpMk9Ee1VlS0glQHFGNTh7Q2ZeP15fCnp0RShLWl9TWmkqPml5SX1lQXU7TnRQR2ZpS0UhYio9 Smd9I0M0QHJlNFAtYWlzaWQ7dFlYfkkwRCRqenBMMyVwZAp6NmViLUlkXzFjYV8/aHNqVlchRVkk JEtpJlJ8SFpjYXN8STNwRDMza1c4V1J7OV97Z1V1c1VEUz1pM2o3TENyekQKelEyUkVhK3c1MU5i SDdUM3pNOGkwWmc7ZzN6ZEpmTztDJlJ3ZHhHfUtFTTRQSjE0Rm9Wem0mdD8zSkExbmV+WlU2Cnpj V2smOV9PWEhHWl4pN0xlT3ZLTHtzUl5JRGxDaTtBfGdWTEZ0SD96YERlPEtZV3ktJj95cyorelBO cUVpVDUtOQp6JSZ2flc7YW1FZGJ7Nio5NThmN143QF9AKCF6eUxOWXdORDdOJDNuZT5yP25rTjw8 Tm5UfGApQkBlJk09P2wpJmIKenZ5dkVDaz1eNy1sN3o3I284KEdqQTtWKFpSOXBTOGpZejZxNiR5 S1pwaSVWMnV1QWdVVj5kPVFRaEhPNkRXYz9NCnpOZmZAP19sWHBtZHhzRHE1alQheGhRey1YUTND SXElKCEkNztabnFPUDlNWiFTTElXSDBNTyV1JikjUipWTTIkbAp6UyR3Pih1OEIlMyp+cFJKIUhV LTxndkRKY3RBYnp4V3FxQWxrRjtQYFRpaiMjOEMjcjthTzZ8RVRQc2lJSG5mJEgKem5UXnQwPDQx d3oyeWRFa3EtezkwRk1fXjZkfCpGPz9BdiVPZGMqfUoxU0h4dT53V1NUM2FrKj5ZJF4hZWFXOSh6 Cnp6eipKeSokJm9Ac1dOJDEtYyQwQkIxU1R3VDF8PFpGMHp+VU97fXoockJ0KDJwSmI5R052X013 NCZUaUE1ZXYpSAp6JF8le1NlMD5mJHw5SmxQOU5WNXJKa3Zub3RmMmQmZkJhczJVT1h0Q1g3SDZY TFNCLUVrVygoYVFlMHU8bC1yY0YKejE8NGlsNzF+dW9XTXBKU1dhZytrTnl3O254XnowMnJALW0+ cHJ3RmRMZmNHUjZKQWJBT0pxVVZHSmgkekhHNlVvCno/R25TQ3IhfjZHVXNxSTZ4RTwoU0ZmPms1 SFo9S1dlLXUoV1E5OUZfYHlkalBaQ2MoM05pOT8+UU9qfT5Je0JpVAp6QnB8KmJvTE18SmxVYl5s PVBtaUckdHchRj52T0pmbnl+Sz0xM3cqalE8TXpDU1FIWUpGNFRaUFdSIVpzajFRanUKejlyJCU5 ME1VLUdXMyM8bjFHXnQ2M0FxVyshdEVtbEJkK21sMzdtK0MydDVjMkBEKjZnU09nNDgzPUN1dVhy aHdHCnp2PERaKlQ2IU5wYlE+VT0yQWxPflEjZ3FOUH45dzlybGBCY2pGZTJPVztWWU1BU2ZyQUg8 KU1hKi15ZXhIayZqZwp6aHN+KjE3bnUtXiRmcjE9dkooPTFgMUdPMVlXRiMtZSl5dlUtVVp3UiFN NGBPU243P3N4fjc8QnxOQ2pwdzJJdi0KekJoNWhkWk95Vk9LOHJjP297SEMxdkZmRSZKU0pEKyM+ NDlzPU5idG1zO2MkMWpaWDJrNllnUDdzWlFrKUlkV0JVCnpBdFNufSYyXnUmPk9nZnpeYjVFUCox UWJPJSs5UHc3RHZgfCU3PTU7MWBxN2wxJjFwPFRzKmx2bytzbjByJkV5Ygp6bT51OyleI2ord2tZ aylmd3d8Sy15LS0kMkA9QEFPJWE2Tms8bykje082TVpgIz97Y0tgdnolayZXMVg0RHdHUSUKejhX TDZoIXpRQVVoei0/RSlkT2Q1RShoMSkpN1VsQ0YxXyN5cThJXiN5SV5IMWZvNn45b257K3tjSyEr NSZFMSV7CnpSSCtpclRXamtTci1rUFk+cnl4MnIpZTg9eUxTXnFLVj4jK0FxUm4rVF5geyNIX01G Nm5WejJETyN2cj9eZnU/Vgp6PGhCRUZkM0Q2Pio8c0omcSEoUGZWbXI1Mig5YG42ISE2JFokO35n OzRufWdPJnVTZiRBMHU8YmFfUz03QHkpUk4KeihIRjRfVW1MdEtoNmtaM3oweUxzQEdKSHNeUGRl dzZzLSY1VGpPJUQ9V2dhXjU/Sz02JTBkdWJ2NDNpO1pXeiY1CnpTMnQ0RVB9Z2VFY2VUSDVJYHpR aHp+c2lQI2F4UDZqJHgldCV8Wk1LYDhicVFjSmJhN01pO2YqcXZtOCtCUyRPOAp6OTE7UkskUl9K PD08WVg2PkhUSVg1djlTc0VuZm1JVlhMRCs+cG9qbz9PbHArM0QzbShIS2V7aWR0MGV1Tkpia2oK emAhKDU/Snw+MlgmUTVKVEhGckVXUHBVcEhKdkwjMGs8T2l0ZlIzSGNNIThFI0UlJHFHMVV7JGJW azI4TW8wTyZACno0O313b3Uhc0JEP2RlJUBwTm87Slh9cFBjPk1FRTF5Z3dgVTIrZyh2QUImVT9t aUw2T3RjWiFsY0crOyRCYk9JQAp6SjhmN310dzZDPiREMHlOS0Q8Q2dINiZoZi18UlFwdn4jfDUz e3shaWFOOHhyZHBIUFQ0QmF8ZFdrJV9uI0AzJlgKel5CMyNnP0EmPElANlZNbFpnOFdLUyYtNEJR MWpkLXJVdyReM2dvUGw4Vjk5fnp0Y1N7dDE5ZHowKkM0dUZuWnZgCno0WU0lJFN+QXNtPS1RUStu T0BVPnIrNFJNSHtTTyhobzgpeTk5M3toWlpvQCZUTXUzKkdoSm5jVzdSYSM5ODJUOAp6Y3ohPXgh ZE0rTXIlfG83SnYqeExwfV4zM2IyMHMqQFp4Oz9OcClTZkR0cShsYXEzUEVgOTFFaSZncDQkfEF+ YysKemxndzckT2dzOW0qUUFKTm1YWkRmPChSbDc5dkZhfm45a19KUlF+USlnTD1qN0F2JT9KO2JX R0spT0JvS29gNEp8CnpmQz4tP1hzK1hQeSZIVzQmayhBe3JfRjYqezZzKGZ5LUtCQU8rZ2MhLSZ0 JWhOd2BuQU1XfHZkWXJMVl5Uc3QpRgp6ckFAMnJRY0dXQmFwSGIpNiprP3pNODBUaVpyST0zQiFg PGkkTyljKEtqJiNFdnpkNXI1d3NzIytGZEhITVA/JjIKej1lIVRSaiQmVUpzWXxsP1JVX0lZVEZh XyRZOGhjOEh2K2lPaytGbm04aVJJQCE8WD1He0V5NV85RXVtSmt7YXRoCnoken1Ae1p3P0VGR3N9 Km1tUkliM3p+N0VkQTJNZ2lqRUxWQzFOUkdOVHNWVj9LMUc7RTkwZl5gUyh2e3o8R0NGPQp6KXBJ N1U2VlBfKnpVYG1MbmFWK3F5ZTQ0fm40V3haZENaZ0hAVGZuT280NyNSbzhCPE5RJilScmJVODVE RjdmRVQKemo8WWpXSXE2JH5vX1F3ZHU+MWJPcyo1fCo7Y0JPS2pPPW1icTIzUTkwSl81U1dNYjMz WUBWR0dgMk10O3c8Xj1lCno2cn1UZl80O0o2dkE5eGdxNVEzMHZtTzZOKHwrSi0/X315N3JgfEdz KEB6aE5XMEtERnNeKXRhaFU0VXc7XihFaQp6bl50PFZwRF8+bUgpRGQ1cDAqRUp0N3tqKVAjX3NF RT8+VDJuWEFFNz9zaWUlV0xHKzdJJG1ha193PD9lYnhWRW0KekNBeSNCYmkxd2wqK25MV2NnNnxu JStpX0NiSmE8Q1ByMG4jaz9ZWV9ReXkqRyZUe0coJlFfYkQ8PmE9N3lOc3ZqCnpzaH14ejFAezZr WUgtUXA9M34qRyF7clZ5XyFTdDsodzRVM2pubmEydzdNR2wpKUUyZ2tfYCRVWnx6Uk1XcVdqbgp6 RFI/XyRLQn5qSkdzUSF7e1Q1MFFmJW5RVGVGM0ZJVjN2NFcjQ21vTGMkSkljPEwte2VRVG5jbXBQ eDtlJjJAdksKejw+MGA+NyNnWXckdyVTNXQhKV88NDk7OTdkRER5fWJiJkxYcXMlRGckfmp4b2NK TCpZcCU0OSozfT1NQHZZNUYyCnokZD9DKD1AaiZmPT5ac0ckKWs9bV5LJEQqRyoqYH5rJn1hPmYy a3V2eUBKTXFmXzxxJHp4PCR9Mzg3eTdSZm1GLQp6aDk+JTdUP3pXIy0hTCN4UChrS1VhRFQmU3pM ZFk4PSRIMmVgfGxEcUhWX0tvPHNhNnw+O0Ricnp0QXhMLShkZSsKemhxaXl8Z0EhSTJtNkNjWGxA MEJVampiS2JZI2MyZiZxN31za1pkSjI5SDV8Wi1+Tjd+ckllXm9VIz9BIz1BWUNaCnopI1lTKTN+ ZkxGZUlwd0tWfUw4al9WK2tZZTZCbiVSZ2tmeEtEakglJUchYSltN25yMjIlZVl2P2A5QFNeMW5i Rgp6RSVfPGM8cksrOVpTME43KiNUXlQ1MG5EMCQ7cncyPzJTeCNsKkE8ZE10fUxvUGlmfXBYdkBS STxsXkUyYUE1YDUKeipxYnNqYjh+WXVlUENmP1ZQU2xNVjAzVl5jR1AhZXcwNUJTJm1qTERONmdz NChCOW5FKGNIJEd7UCghfTF+eUtQCnp7RkljeEM7SCM+cExINiRuKlRHQ3dacUByZGY2Yjs/O2Eq Knp6MyVQRkVtR1VsbTgjSS0jITA5YClnblNuVTMlRwp6VV8yQGcjYGRCJUFkcz1PcXJnOEQ9bGc0 PmV8NyR8JmleMVBuITZmWHNmKEd2VV49fClOcjBLezFJT1FKfEZgU14KejZJSjZNUklVJFBlYDVh OF45U2JkSkA2PmxvNCtobnwyR2lAbkU5Q2dVdjIqdlVkaDxPIz4oazh4UWV5OHFYNWdfCnpERjNK VlohQThoLXswa3JAQVJLVEBLQHswREcrJGckTW5Bd0NHZmdSMmJsfkNOKGYzeU8hJCo0XnF+JWRr NG4hXgp6MFZ8dHw9Rjg8ZyZiLTJKbCtMZSt1OXFLZHF7Mmc1LSNXKD9MaHZtT1BGZmkjLStodEIj QEs3RT94PD5JYGdPUDYKelI/VWxZKHt8Jm1rPzFWWiRtJWRae0ltP18tQVNqYnxJdWBuVEV9SzRn b0JNT2RLViE2Tm4xJlJuUzJ+fnpVdEw0CnoqJF5nWTA9OGcoQlV6MmpMcTJMKTBqJGtkRWRUS0BZ NzBEbS15V0dKN0IoZ0QrOz1UPlhhJD1eTD9idDYlS0JaZwp6WU1VamhGaGZwZUVJXktyaGxyQHgo VF5XYXh0Z3prX0kzZSlgP2RZalhsfjhLUXI8MmJIWWNzMWF4YyhYPSMofEoKem0pdF5XUUVTUXxh M1BhS3phOVhaPyM0QlcqfFo1U3dNXm5LRGxMej4pc2d8fkF5Kk5KO1NIX2J1RE5GR0VvZldHCno5 R2xWLWswfVVmWUVuMUgrektCfXNXU0N2JFZLJSFhfWpKNCVvT2NzKXJOMHkhO3xJaWh2e3N4dSVh bGlsI14wMgp6TG5PYTBlcjJ8aj17P25lZUAmNWJTcGZhfEh1Q30+QFRyMCtGJmFZd1JYTlR+Q1Uy K0Q3WjBIXmJXci08PyV2YVYKenI8dElKcXVHWjw8aGMyJENGX2J1bUx2WmltMGpGQVheTUxUdlFk b0tPITF4eXJYbX47dzdBZ2shWitQZDI9cykxCnpYNzIxKjRuWlJweW9ONTQkfSFeRWlmKGZwPz5M VWZ6I0ZQem9GY2IweWlQPD8taG1BS3g9bit4bUNmM2A8KVRNMAp6MW0yWE85Umx9cmokR2x7Y1dB TGd3KT12ZiRsVm5lTUN6eyZ0NEAjanV2UWVONzVidkszbURrNk5SNnE5eWktcj8KelN9aWVqaklf T1NufDIhO2krOWVDbml3c1VDXm57X0YwQlpmdCVqXl54Q3h0aUhFQ2o+QnN+UkR2TFRvUjFOeVh1 CnpoY2dsd2Ejb1YwKU4wRF5hITBRUWtWelY7QTkhaWwrTy17WkdSVChsPVp3fHh1OCE4NG8yPmMh MXZhUyVvKSgmJQp6ZTspdVd2TU5lSFZ4JUwpNWUhZCZARlJJc1IwdjJDdk08NDQkX1lpMVlrUStn KVNVNWl3UmoxVHlVM3lLUmdzcnMKeng5RHQ8LXdHMFp4fT5WNXhZO2dmRSo+OFRpb3B5cSgzPyUx XlNLezI8P1F5dUtIdnZeMEpNTGI2QHk8eHNXYmEzCno+JjlvQyk7LXkwSjxvMUViK1UxcUJYeUVE IX5QXjRFSH1gVHVeRkBMKz88VUtzNlUhQjc5PmZ2TmRqcSUjfmNiNAp6SUZsR2Q1e1RLVD55Sk95 eDhCIU05RHhgfVdiR0VoS0Izb3I7dl9jTHZ0UmY9UEtfYElTZn5QXitzOWg/I3FHfCYKempJYjZv PGhMMEI7SXtlfWp4KGpFSDY0YyU3MH08ezdFUkpXMlVAVXFvfnp3YWJKPCNJJTlRNnlETCRGKitX VWU+CnomRSZXbFlsWSZFRCtqMzQpfkY7WVRfV2MtbkF1KTFVUiE3Kyg9Jj98VD9UfTskeUU8USZj KUhWRkpzX2ZEfGZhdAp6SzVaODdpWUczcmlhNVNxUVNIblRUU3dVUVpSMm1NKTJYQ3Q5Qn4rYDMp Y3hHLWpAVkNsUjZ6KFF0UU92cldTVVUKejcxUD1+OX1mbmo/ajxvWTc7RShiZkoxb1BvSHh+NWdJ MFA9WjQ5eW1vWkVaclN0UDtCX2BIN2JIXipXRzVsVkRyCnp4dy1NdilfQE4mIWQhbG03fFR2XmRN bDQrKkNkRX5fTmhUdFdJQVRDej9fWncqQXFebHBQJEMrRVIlR2EwWmZJWQp6VmxHRV9LUzRVcGhx T2R1NHApPnZ7U0skej0qJVpBKS1rWFJ7SFB3UHYlKzlYWWJpY2F0R195YCR9RXZWaj5UKSoKeiUt KSN9aCtLQD8wYWlPYjRocilDbWRYfjQxeWNiZDJgJmRecDFEbWdxX1hfWmJZNGJNNTNxLTl0fnF2 e1gpbllXCnpmIWNKT2tHPnVFO2lZV0dZKzRLald1IW1PVzJiRF5je2JSflpHcDcxODUmMmJoaGxF KU8wPD9xYnJ1cTVWLX5qPwp6amtTNktWUURZcT5gZU1Tb3hAaHdLdHEpaGtXXn55aDJvWF5sUF5y K2NtNyRVWVlqUV5ifW12VWBmVTsjY3c7KT8Kel41ZEFQSHhtVVFhKFdYLU55P2x+ZDZ3YzVtbW9I b00jOUs7I3U8S1RWWEJHcDh7I3tkUEBsZ0Y0O21RVDwlKTdECnozUDNOSGxTLS1gbT98c1VTeDRl TV5kKDFYeXl+WnZFNUdRRFpUKHgxLWo3RD92a0AyMFNTT15HQEhmTHpTfGAkZgp6QF9pfCRQYzwm R08+fXh+TnY5SGhrMlNgdlhSWUt9Q0YobT89MTdBeiNCJkopOCh0UjdxflV3dkx5bHxXUENgUD8K enJ5bF9pZC12SndZPGNUe0ZYaXQ3N3NqQDc2KHpDeUxSR1VlQWtmS05uMTd4PCZxeDR9Jm0oT3sy Wnl0a15DbHMyCnp2TCU2Tkh8ZWNMZDxVQW9fSW5gRm8jMj9hWCNEdHREWH5aO2NJaWZQZkEyV3Rf NFBaPEZOPCZEeEp0aHwre248Iwp6NHpAdG1Xcmp9dFM1KkMkU2hIKTB3bjk7cHhiKnNfcjwqQD9i e3FVMktLM34/KHErcyVzcXAkXlYyekNjKUxoVWYKemR5S2NYWU9KPCtFRlFYSy1NIUM2elB5cXAq YnBQMikoZmhiQDItMVcqaDZJRmcjNlQwPkJFN09xQDIzeHh9VEVLCno5aShaOSU8N1RhOVBBUnso ZTNGJGR7Zip8bEttUjZffnNaXmhfPClTSzZDRUVxYCg8KGtFNXdUPkt7VTA4Xkd+LQp6R1ghJHJC dFNaQDwjcjNSej1ocj9XZVdrND9ZaWJQIVN6TlVqOzl2M0Z3STtWYF4oQk5QbnF4KExENWs7ek5Z d2UKelp0MGRuI3BnMUdVc35JS0AjZk9qbnI4XmhzTV9TIzdYWSQwO2s2MzZpSV5ENio8d1ZteUpX d1omKmoze09tVChGCnpWKXRTNCQlWXVwNlkpZ1h5R15pdnoxVzhFMmNnQUNOa3M8PFU9P2wrJVk7 VFQlVWUhd1dBUVlBbn48V3VNMCZgcgp6IXtUM1hkR2M2KTxmeWV0bHdEI2BudVJVam9OVFZRJmNR bld1cGMqJFMxeHw/T25IVFVWfF9lVSpWRnJvczhMWDMKekhSSihsREs+ZSpSQnZJfEZIJTY1RylQ a08hKSMpMCR2PW0lbkdXVUBfK2M4YStHZTZ3MT5WVlFwPnQ4SHdqR2BjCnozTTttb3M/dlBlanwk VVh2Qkl8am9WcT1nciRRNTxTRj9POHheNX4yU0M/YXRoKUpOYEhNO3N0a318PXNtTSUjJAp6X20y M3oqeV5aT09RYGtKNGU7YHppRmlMUFc+X25FaCVQS0FOSFNUPEYxfS1PRDRHJGxCVDIkSnM0X0Bi XmEwWH4KenZmVldSamdCVkljVmEpUDU5WlApWHR7K2ZRdEZYY0gjVVU3bz9Zd0M/I0Jfa25XZm88 R04kcj9LJXVwUz1lcGs4CnpJfDJCO3IrdWYyV3doSytZYiRIMDhJbj5leUhmZmBTTWU7KmNTOGtB Y0x4c1NiTTtJWnZuPlVfaWNxRUc2RTVhUAp6VD43Z14lTEtFYzV2MmhwKEgoJWdAb2VvaVUjYzIy aS0tZWNjUllrUlRSYmQ8eElJcl5jP3dwPHllNnt4KS1PaWEKeml2RkU/bGcpNlJXWSNCQz5jKEBy RF9kY2d7Q2lgXzM3K1I/eFVAQVp5aT8pV2NYKlhneHdHbVV4N2oqIXwxZVg8Cno0KjYkSypmIzJs YzBZRlMqd3RBSXtsandsWUZkM3R1eHlnOzh4YyozKnNZIXpmMEUoSSY9dkFGKVoxRztEd0lpKQp6 aiNzMWU1QF5heGM2MEFHUGBzRn0+NmRPI0VpWmMtPSUjV1VoPykqITRiNFJGYTVkQWxXVUMheTNK b3tkRV5Jb3QKejRLJnBoRXo7ViNvT0BzMiFnfiFkPGpLb1R5bypCQFBzPiFjQXtJV0M9OTF1fkQp KmxeJHlhZ15Bb24wJDViajJpCnpVenNnfDNFa2w9eWZqWjFFfWwhKT9yO3d8NEZBRD1aKjU0eUUr diFRYnx9c1NwZjhZWCE0MytnSEA5dUtjM2shMQp6RkxIYD05N057VW1xTE50dlZTTnw5VmcjRG5R MkRXd3Nue2hKWjBtVy08eyEhdEdkJnJzbityN2N9fXZNQy07fEoKelgmRGlaQUNxNzk7WWZ+O2pU aFNCITJMKkkybnolcSFoMFEmdDtqR1BAQU90TmRVfWlaSHVnTmR4cD47TFJ8Y2BQCnpkTjNJPURX PVVFOUZ1dmskMHhATTY8PnMhO35HeDJpdGB4ZlFjdjg8aUdTKzZBczhZdmRWZ2JzeTVlbk8hSUQ/ fgp6SzI3ZFVYaGQjVHsyeUwrX0pBOW5NZj5JVkw/YjlEbW5PVmVYYX16JG5JQGNkPVN4MUNIRyY9 ViFPQjFTS3soaUcKeldDVn5LN1VZOyRNeHFIQlc4SSMjbmB4Q3dVTHVecCZLJHtsUmJIMnNwfGRj VjEhNklpUCRkTz5QN1h7cFlYTFdRCno4RmVaWE54QHIwP3VPNnFfbTY9YU1JSHN5QGt4NDtBV2U0 R2tHMUlTJiZkR3J6U2pNMUJ6QlNhKmwzTTQ2XzgrfAp6cDYhWDRieHJPNTtVUjd9WChacT5RfjlQ S0V7ZXhUREs7KXh1TkZBZyR7VSVIUVJDQmUoUntueWN4eX1PQzhUJHEKenk8enJxOWAqOX16O0hL TjVWZ1JYTGAoVlkkPjwjZWtqPXlVblFHfUFnMHRUYnNXU3pUJFFLWlVwO1Q8ZT8xYVc1CnorMUFR VUE7TEdVcUdNXiFRMGNhfXBRV1dgSHdDc1FKQGxTclojPXBFO013SyNTKTV4fHptfE90eChhe2Rm Z31ffQp6ZVp3NmdPemszV1B2d2RgMjBzOChNbl9NVFg7SmYpQmV8b01sdy19NW9kTnQwcXZ9bTMy WG1LOEJuMyk0WHImX3MKemdrM1NNRW5nXzwtX3olfSE9QDR4Pz9OVTYkR0teVk1hc1AlYE41fGJG eiEzTyU1dVJDeGgzSVZESTdAPk9FKG4hCnpfU0B0PGhFdXtOWTlnZ3RZKzF+THF1KElFOT5YUF5L JUowRGA7Q1RxdldtbnZlO2MjVjstNUpzcHljc20tYHgzTAp6ej8pVzdSNzlIJGUtJWJUTFlnWDJB ZEB5KSQle3ctYGd+TnNRck9WJl81UzhXcHtTXmM9NnJgQnJyN3dzbTxTdUAKekZGU3VsT2BOclQ7 dWNxRExeYj1HR01nRklLeFB8PWJhckdCbnw8YXNUWjB4bmYxbXNxdlc+VEIrfDE2VGNSODxiCnpB bkt0dyE7Qkg2XktHIyM5Mnl6eyRYdGsjT0tHTjIyaWY5aDMtZ0ZoTG1GWSNxfm5pVyUmQ3g+K2dn aGg7VWd7MQp6OUthI1V2dyhOPG9HUTR0LT47QXB4S181KCZaPVgje3FmVzJENU9EKHdVR1ZiKklu I31uKzFERDgzQXsrSmlxZmgKelNZQCZITjFpQm1DbEM8KlgkQHNRVVE2Z3NIZilWPCpOS1FqKjt5 WENtVGpgNUdRTzVCaW88JTQ4TThpblR9aVhYCnppZ0MlcyRmb0hyb0dMPEArcFUrK0F8K1hWTSl5 Tig4RnZMayNNKHBXQzM4TWxpJkhqUmklSE9UelEjJmc0PW5pZQp6YTw2NzE1UnltYkp9TGUqNUJh JTZZPyMob2lFWE1sKiZESHxmSmRmNGxGRV5MJjZ1a0FwZWsxK0JfWE89WH5DRikKemxRYj9BRFVX dEE+Qn5oZDJfJjB9KCZVZ1VTVj1PNElCPSUtcUIoaF9kQCR4SDloKD1VMC18SUdqU2BCYGdgNz1B CnpFKnZjdnA+QXokRF9pU0FwTTg8VTdHSnZGRDFBbiQmSFkybVB7M3NVU1ImbjZMcklLfUFMbV4w NmNyNlolY352fQp6TmNGbTFMbF8oeCR3UmBYOEduVlJFen1pPW5wNThYSmx7VlQoQGhTeTNjcyRX OSl2TXlhPUB4ayVwc0AxVWRPUzYKel9vREszdFRGUz5hMU5VJWxVX0ZGQl55KlRsPE5uN295KDFe cm5zVjxuZnJ2bXI9UDheIX1aO0RDfkp1PmlPU0VHCnp8SlZJNihEOEpZY2xZOUthPTdMOFI5Pnpx bnVJIStSX2BHY2psZG9tZF5ANiR6dWMlfCRhNTkhb0J3I3x2OVdneAp6NnYhRUMmeSopWFJvLU8r VWdjI3lJTVpARFFKdUlaTkFsY35UfX5pdTNAMDkxWDhzQl44UCtoazFsOyFfSVBNZyoKekU2b2gh U2oxKD4pKGJ3dkp7e0RTcXVRTDgxVVVXfTc9IUZtIUtkQ1FwdHBAV2xOTS1ZeC1OKnBNVWt+Sm9w dGg4Cno2QT0oOCUoS2hxXzNvTCtjY0paJm9YQlFkbDdXTTA8a0NmcjRAKXZVN04yezIhXmtgcFhx U0o1R3p3bGBxPStedAp6cXBrMng9I2hFezEpX1B6WFNqUSRCX0FLSDxpSjhJd3UjKzlhKzQtWjIw KlMrdTNFdC1wM0YkX0RmYSF0ZnVTMnUKelEqMCNISF9uODN3KiF7Oz9TQXZyPnpmSndsVmBEQGRk VXFKZyRuQDFnRT0kZi1YQ0swOFYrdWltcUgzSCRvQmVoCnpFfEEwZiswJVY5MkRyT2RrZUxyODE1 YiR8e2Brc25uSFlrVHtvZWlFTCo3MX1wPHRPZkUzYllXUzVAeGB1WV5Vbgp6PDs8IXQrbUAzQEBn MGU0a2tlTS1OJisyUWlKRGVkWDF4Km4pJjl5P0xlITkpV010S0clJnZSb0FYUGNwT0heSyQKemg+ SSRsbyRxdz12VkZaNV91UlAjRWkhSkI9LTZ7enF3fGk9Z0BrIXxfey1eUDhMfT5We1BYZDRkJWMh OyUzT21ECno/b1R1K0JNMHpmanBwOSYkNi1afEh4R2k3TkBXfTNCYSVVbUFjOz4oTWpYYn1veXx3 biFTa0Y3b0dud0VWJHdXMAp6YypnZGQwMXBTISh3Kko0N2AyLW1WQHI8WXE5ZmM5bUxpPXZxeHRA OE8qX1phcE4qRCN7cGZ2PTxRJWtvWmw9WmwKem1fQVNVaHAtVUckKXN4WVdCbS19eUIhJGAyeEMo RT1malBPUnpxYSQ8KmtMPiF4cVo8VSFCTDclYTJadXl1Z29aCno/Kjs4VHo0K3V2NnREfSUzYyZP QmRmY2RvbEwyKn1VUCpSaG01NFJtSyV5PExeWWdJYU5LMDlNSCE0fHg0ZDBJQAp6aTlhbX5RJWRy am1RN1M1aiRCOSVhUG9YPlhmTjNgQldvYXpIWn1PT2QoK04+dyk8WTU8OTw8clFqU0NmM1ZIVFUK elB+QDdPWXNKM1lUUThBc2BvNUlKYi1oSnJIUEglPDUqOTxzblFYajRzJSYha05EaUVuZXJsdisk fGIwS1R7Wj55CnpVV0J+bj9NKEItQ3NMNik3d0QhdEcwSmEmamw9TVcmYnJ8al5fN2NVUW1hfDRF VDlNe3BCQUY3KH45SnIyN2tfQQp6VGNEbHBEeFJVWUA3dFY4MHAzajlsMGB7QjUwYHU7dX5BcG4w bjNaJk54Q0ppM0c9UmIkUzwxVjRMfChXM3h0XnEKeiF0UjhZJH48JmxAQkdSTVh+UVR+SkVRV25R MTdMRk9YIzZAMl8qZGl1WihMZkw8TEFET1MkIV81VTB0bE1VMHxkCnowNlhWQXRxIWchcDNuLStm flVnPlE+OGtySmckOzl0bXpTNmhIflRfRTFtKypFWUBGI1gxVFNjSHd1YHRpTjwmYgp6N3BYWEVL TDtzWD1OcExOb0tveEp4dUtPS2koT3YhKmo0WGt1ZUN4TFFgbFhRNyZWKGhYSmx6b1AjS2lIXmR4 bFYKeipfaW4qa3ZVO3h2eW9tQXk+MCM5QmB2aFdJdG5WXm5mZHg9N3ZmamVheFNnZTxWWTdtIWtZ Kz5mLW0ldlU2TXI9CnokQFFoSVhgZz1vWEtfLWErRjV6JFFiUCFhZ3I7Y2xzeHJaZSYoVFFWZkcz d3pPaF8qWXZsWjBTUShhZiNKRFNMaAp6cmhOPmEmcUFFbHFvP155clYjakxOeFNpSDhJQ3t1YnNi JSE1Kl5wfHtiYjJ7TjM9VDsjNjhlZHh5ak9EWT4qKEcKei0qTTstYSlOZkMpK0B4JjQoKzthdWRg SzVFViNwUlZyYkpJMDE+fk9rV2hEamhUeFZCPGk5IyhiNlR3cGBiOWk0CnpJY1NJRXhZTkAmYWZL SjJvaVJkS1JYPkQ9eTxxazs3dD17dkt8Y3RgTm0ySEtNblQ/eXdvPlBOXjB4ZCZkTlg8Xgp6YkdX TT1tNSMlTkZXajxyI3hyMTVyJWk0VyViYkhaRzVHckY+WWpDUFR6Rn5rNUxAdEBucWEhd1ZVMTBV UjVlfjEKejgteiE7REFUc0xuYXlPTGE9JXI8VntuN1l1Rms1NjRVSGwpYSR0K2ZHTFM8aU9Nenh8 dHYwSTE8aEE/dG1ufTloCnoxJnt9P29IXjNTRmo3Nl5gUzZCcXxFIz03Qk0heDMrdDNTSTtpbSkz M0FxdDN1NnRrXi1oYlIlZjg3fipHMlpSZQp6TV9EYTQjOGcjUHhsJm9hZXVJTl5UNEVrcjxRSkp8 MSk8P2V6UXVEK1ZoKlJFMzk5IWgqPCR5TFlDbkh0XlBNWl4Keio+JncqKGBBaTtNS2BlVHYrMWR6 P2lSYjdyX35TeDhDWEZyNk84aDdGcFZzRyRydil6LUZtWXs/ZH55YihEWDJ8CnooVVBPPW51RDtW bDdkS2xYZ0R8LT01Q2k8MDQofCVXeEpOJUFVU2R1b1QhfW5sISR3P0ZOPkd5ai1NYElrRHE1Wgp6 XiooanhsO1l7M204e1VSdWcoJEgyQ0RKJGtfelNJVlc0XzFBfk8rRURjV0xhZGZhXmMkdnRAblNO RldyI1pqe3kKemNkRmopd1ZYfiVNblJCK1lxfXc0JTUlQlFabEVfPE9sUDQheUU7bm5ZdmZMUEA5 YiZTPVJKJTJ1fEMwJXpZPmMpCno1NXNuRnltXzNNKH16YkZQTTtwbV5BbSNSJXdAbGd4Q0xDIU1P RSpHYVRsQmFkVlV5cHFlYlE5JjdRcE4kM0x9WQp6bE5hJTl2OXF2aUdyOzktPn5me1F1UWd9Ymc8 bFRmZjdpK1k3Qm5VYHdydjs0WSl7bUVuUVNNKzYpfmEzeUxiKk0KemVSeSlmbVY/MnRiO0F5WTw5 M3NjPyFUXiEmPEA9SUM+U1NPY3Z8XjEkQCljaTJEd3lAaztQeHpYfmMxK3JseWw0CnpvR1Z0LSpy Y0FQS013V0khdUJhfFFEe1deU3RecnM+XyhPaF44dUhtLUcpSXVQVjUtVVVHOG0oYlozYEs+K2Ul bwp6SyV7UmZYYDhyZHFpQUgpV3VuQGk4TnAqeyk2aHBPd309VF9ISjtCe15ofUlkPjwxaFc4TTBx T18xPTV8P3NaYjQKejROPT0/Nnd9SCg8PUdKPDIxT0pxPDApNWpZe3R2ZCVqe1owTG8tKDJHUUlX Vz1rYCRGMXVUdktFRDsxaHpmUCRaCnpOTG9sITVPNDl6azF2Uig5bitUZDJBPzVvUnU9aUZVTF5Z bnA1e2x8WE94WXM+Q31eakMoRWp9dXc+bFohQzRQPgp6dllRLXptZSY9S09SRWY/SzlrP1Rha2Yl K2I5YUh9RWhrYmYtLXZfMEQtbSpqKVpOK0w9Xm8lNChOLTR7QyQxJVcKem42ej02a3VpSzFtSUhR JE1SdndGdGFxWHlsWHlENil4Z3BFWVNWSkUqVXBxcnlGd19sIWxXKVVhNSZfM0hjNVBKCnpubFUl V24hcCtJRXB3JWBLaWBEOzRiMjJNPW0mbDFSPT9TTS1YNypoPU9tY09MViNBZnhTcEpAKEI1TGI+ QHcwNQp6QSNifElrbT8hUXd2dkVeRE9HREh7YDF+TyhOclMoKCgtVX44MTBDNV9idUw4KjNYUXw3 QncqVHJPQUh7WStydDIKej12eTVgYSh4THFAXiVhKEQ1antjbERDaG52VW9kTlRhZT1OSGZmdS12 cGBgTzwtWW5RWENpamN7OFMwOGNDYHM9Cnp0QFRuMEpTdzVzemAlZnRgYGJnJnJ+MyEybCtOPDl0 fDdxK1Y2SHpuKSkydWQ/fn1sRWA0NlReNlB3MW5JaUA9aAp6TVopJDd6QiZTNHl6VDhke1BKaCF4 VHF7PFR9cW4/e0VpY3IoTT1hWiF3Qi14ZVhSaS1IalIjKkVCKWhZSHcmMDYKekJMUW5HZzNRVktH I2wjPTNXQnRpN3U4dTY7VS1tdyFnNU50VkRKYE8oaCtITnZlbUxrPmAzYXt7T1NuYmgqXiZFCnpt NyVxSkJaMlN+Xn57S21FMDx5eCE7V0hqWEEpNWFvPV9ZdkpfZExBaUNJPiNNOWQlZjl9R0VjSXpI MnVkMmlyWQp6NDVLa2xGRU9XPj58N0crcyZQZUtPfmhgUHtofSRfYzUtZXZzd1EhTW9fKXhudSVi O01WSXdBdUt1MEtDZVVeM2AKel5xXkZyeF9DR3EjeSFsNHpgOUhLTEUwOWpVc1lSd2BxSzYtKHts e1c1P2lRWTU1dV9icCpQP1I7cnQ5O2EqQik5CnpxSGlxV01NdShZTzQ3K2VENUF5WD5oWSVCUjFB ZVA/cU1tM25aZjlaP2h4dCpUXzVZJTtyMER2ZUF5cG5HWThCbQp6RVFXdlFUd2ZDVWk3O05lR25h QXhnJVp+XyhraDA1Y1VMQH1heWEmRW1NQjhnU3xDeE8lWllBRnBlPXleYEY1a2AKel5BOHlKUmJL P04pNzJqKWFiPiQod3UqYitDdGZsTi1rZD1eNig+ckEwKz94fGVkU3olREhqa1FSSWlMZHZeNTdr CnpMV0l7TyFKQjNzUztENG9lfFdSOyN3MF96aGokQEZKJnxwa2VpLTZYJnY0azEhfFBpNlZ1KE9X ezhzajM0aGpOTgp6UXc1Vn1JfG9KSUZTV04yPW4qY0JWTkFeZzQ3PzZlLWQmPHdZb2MhdGBmRyEw eTVseXZBWGtjbzNFKk9KeCl8d3cKej1ae2gtTCo1WVpJRTF6QG9ia0t5QUpSUG4oKzhtPExEWkY9 KlQxRCtoP3NYI15BJG4/MjIlTGVUeFRNcTc5a014Cnp2RFJ7aVBgNm1NNmxLZzZAOT1YKyUldXx8 Y2YtfX04PSRnLTBRITZoaDFrWT1edFVXcXNXZmFzZzR4ckp1Q305bwp6KkRIJmxweypaQ0BCN315 VGVYYy0yZUl6VnhYbEZpJWJAWWcyRlNkQXNnYX04OyZtaE09VmJDVlpTcTc7Y3d5Kz0KenJaRF4/ PSZVMjVjJWBzdEx+TjBOOW00Z1lNfUEoWVRla0NGNFhIKjFEI25nPzxMPXNgI0MlYE9qMFdgKzI0 U0VTCnpAYUtIe0x1MzdwJWlOMVhLe0YyYjcqdGpHQj14K3hmVmpyNEhjKElgKihiIXwzMVJDSFMw Wj4rQVpMelFfOH5pfQp6YVFqblEtRyU/OFg4Y0ZjeyZwMmxBO1Z5YCU0fEwxSUB9SSN5PXRNVG15 KTBnP2I4QGgjUjg1fnMpJDJAMm5WLTMKeipPM2slK1lKMlhKfG1+cHo+YllgYEZ+SStBej40c2Bj ckVFSDVlPCpZNF8+O3loSURPPnZFSSF6M1VeMjFCJVd9CnpXR1M2KilDRnI2fEJ3VW4welhGfXA2 aCRmeDxHK25gblYkK3NpRzBINjNNa0RxcW58PyRofSlAQndkRnpveXkmTwp6NGhlbnViKzMlK3wz fEZmO355Znp0dFJPc25BMnl2dnA2NEhYZUs3ZUprJCk2cj0ze2todDVJYkZpN3BHJnNPfT0KejJ0 fllsSllmYnFvdyNka01NPzgyYDQyNUlOSCRNbHZBT1RAQHchYWNePX5YNWFqKCV2ME1qNU0tO1px NjV5MkUkCnp6RVJYcDFOO3szTzl7ZHtSKmg4XnpERChRWSp8IXpER2FudVREWm9Yam8/PT1wXiM+ X04odkE7NVgpXmQpfVBqPwp6ZWVvd1lOITl7UzlWbHp6VHFLVVRnYDc3Vktfa1lfVlR9VU1aTz9C TzkofHh9cC1TbUd4MmBSZUZfcXI9KExOXjUKenRJNFUtdzRTY1k4Y2lxYlpteDB4UGFfOFZweyhz eFQtUiNXRj45YEkxVyN2a0Iyb15VWEZrIXMoMlMqNyFGbnpjCnpkeDRVUStlbEZZaT1iUTt7S2t2 RGhhc2ZwXmRueGdhMUErMEM1YUwycWIqMD9PV2RXWlAkc3FXVm58JGY5PFA8Vwp6REhBbklPM3pC PylFezZrNjR6QTJfO2VMbEAxKUokZW9jTmREQ0pRRzc2ZH5Rb0lsb1lieFNCKCpTfEkxRypHaUAK eldKX2YtaFNWPSRyUipYcj8zUklGO3k9NVReOy1kZXM/UGNjcytNb3NqP3EtWVlET1B7OG5Mclo9 NTtPb3EyYVR6CnpPTmBBYGx2SXdLXiRWQn0qQGhQdS0pVDliN25+MHt2e1NFSmdXR29KLTZAMGst aTVSPFQyNU49WER6Vk5BPyE4dAp6T3lHXkB6Mn1ILWJ9Wl9tPnUlO3Q+RiVBQl9SXmE3YmwkYl85 N01GVCY3bkkpPFhHRmRLaDBvRz4pNSZUWG8+TXAKeks4M1h0a3RJZ3M/SCptN1AtTXYxKl98PE5l JFo2P1V5U2xFQlRnVCZmfXQqTmtyJFVLYz9OclppX2pMPUdIJiV9CnpMSXJLYHEjT3BqU1VoSW1X NVczcV5KN09tanpBWHkwYGE9N05RKiZmWV4jYHFtXjRVSm5kQmRkQHRlQ3l6V0JIcAp6JGJ3KjtY VzZRcGw1N1E3dklFM3p2RjZhYit1YEh4PGxkZzVYd19PLXRTNzNBbzd1Mz0mSEdSUDhHfSVTYkg7 QF4KekorZkhHWjkzMWU+NWw9VCFJYklMJERDZ3Y0PnR6ZCZGVn4wdm81dlo4aztWcSlmTjlFbHda OE9pdFVLOzdpZ1FFCnpvc19IciF3QVk3bys8V3x1KzxLRVVKdSEmfEElIzFWR3Q0NUp3P3UqWWA+ eFFrKyFaPGVORmxJNjBUdzMtcSRtWQp6cnBoY01UV2l7VXtLdHY7MGB7MiFFfVgxP3Zacj5YdDBq VEVecSkoflV5U0NBU09HKlZfPmY8QkxpMXhAYmVOWkQKeiVwUn1sQSNAeWZVI0MhSns+YDZzYSta U1lqd0BGMiRCQFQrbHElc34+QD1ObXktTjRhdntmYFR2fEh5YCFSMXJeCno8SWVkek0pZD5IQUk2 aGlTTTs1SGw2djRwME5ubFBWbSE8WmBqTzQ+WGtOcHR5MGxIYSNlTHF0Ql58VWs5SlN+Ngp6NXpC U2JTemhOfU8xPGtGQGJpLStKcCpHLXszYlFlYkF8OSFtUnhufENNTFRXSzE7c3VPKGZxM0pGR2g1 MGA8bEsKemcmcV5GTntTI1hQcCpWJDtob3s7dEZLWWk/aXJKTlhRJWdYOUk3fWpoJnRkSSpqSFc3 U30hNFJgfjZIbHF+UEs0CnpeeUEhPShTdHZ7NiojXit4WHs8cnZxN09oLWxvOHJxVV9DWiVqXnkj dG1Lb1hZZmtQXzF1MkUpPz5WME4qLVdnegp6dXwhPlFTbmlpeXFFcmdQcVk8NTk+eTBHWi0rbnRk PzJzPEpMQyYoWVRnaHM2SXM0clhPK3o4eTQ8ZG5iTDRnOz4KekF5VHl+I0xRYns+eyU4YF5DeEw+ ZD1Ve2xTYEJGPHNRaEVGam4rempLLT49X0RsZjt+ZitqdjlvTEopVSl8bT92CnphcWQ4N0dmazl0 b0VhbDdSN2NTa0U7VyRwWHY9LXY5WUcycEVlX19ZQXZNI0YrUytOe2gjbyY7UmleUylsPW1UeAp6 ckU1T34oaSkzY0BmNks5MihBdzFsMmVTPipqZlVIcldJTCRscnlIRj49I0dJZWxMJGtzPWZKak9Q Jj18O1FpJlUKej8yRUgxKyk3RD14VG1pdHJBcWhUQyshUjdoaTd0eWVzXlJqemIhdWJjUlVUO3cz JiVFXnh2TGFkNURfQ1Y5V1VxCnoleUBwfnVCb1UjVS1ac2d7JUZ1TTl8PElHSSRXemFoWD1saXBe OzBLQHcwTEZUXyQxO0ZhYz1HQCFOUE0pNXY5Nwp6eCgwfjl5Jk9sKjlRVzc1bzUpVmt4YiUpezVn JEBCQ1JvPGVkbHNYemM4ZWtQYzxgOHlSdSohPUU2PkhZYDk7UjQKeipCc0ktcDg9Y15KY2xuYFhf KUl6T2pPQmkwd0tEOHtGazZXbDw7Wm9FVHJAfGZSNT90cjkrRFVpZVYlOT5haEZHCnpuPFFIP0tx U18+O2hpMmFuQVotVFFNPUtYXmtKd2AhWHkpb2FqeX1iVzt+OWNfYWg3Tk1CPkl3U1N7MHlkTGVr RAp6KStfbVA0IXdHfTFNRCRRWWU9aWlyJEZ+PllYVW81Uzkke2RAfGQlSW9RI1FCRHVub35gOTdN fHZGakJUc3RxTT8KenFKbDFLPT1IJTdjZlEpdyhjMkEyUW4mRm82Q1IkO2MwIUZtK3lsUWs1c3R6 S3BNdG5FI1pgZj9SNyl1YGY8aVppCnojUypqaSpPRnNPNFJ6UWsqPnByJV5Ka245P1RYbCRPVSV9 cnA5Jl8qMUVLNmg9MEVQVz5GTWNNUXc4ckd0JlApIQp6KXkqZFB7SmhkPzt8RTx+MlRSMEBCT29f eiZtcnJ4OWg7MnwtKkxHVCl2VTd3VDEtQXBqNmI9TDU0I1FSWmxVKkwKejxfRkohME9WRkkha3o5 UyltYDBGbSlaWGtSMlZORGshNjhIVktyIVp1ZSRrMCotSlBecW5mazkyOU1CQWkwc35uCnolMXM/ Ul98dzNzbWIoUihAbzZQZjxER2JtTDxNUkR7elBnbF9KJGtpYjBjPihNak8jMU1+UEgtRlZAdTE5 R3o4MAp6ajZgejgjUEVFVkFeTT5sTllqV2diKyQ2eERJaXdoIVRMNCR3IyZ4eCRoP2QwP2J7SHFY RTMpKTYtdytHIWlhYi0KenlWfTNMPzVWZzlfPUVwY3dtbzl5OGY9bUloSkBwVTU4Q0I1OWA7QG85 KktmXihMa1dDdUM2P2hMenJ4JU8hR0ZJCno7cXEmcSRCd3JBJFJRZUNrNl5lMGJtZ0pWV1kpPiVI LXx6cnJAaGhPZDUlMSNOQ0REYkcjYWQzdz9rTFR3T2hoTgp6OGlfQjtjanEmY3lENCEmPWU9P0Fm cV9lWDZUcj1WYlZCdWlreDF3aHE4UnU/dHFjNVQqcnhPRnVIOSpHdStSPHYKejFxSkhTT3ZwNTdJ MWluNkdeYmQ4YWZRdmJkKShgP041TnMmKkhrYlVfVERqQFMkU0p8MXlIJi05TWdxcGlCXjNQCnpS P0d2eFY9Ymp4UnVvMFo5OXtQN2Ylb3RVSk9HQHAkLWUzUkM2TjwhbGhaWEBJWHRmfDhQSm1fZnAm blNLKHc2bgp6ZTgyREYqd2FnXyotRFdfZGJpMHI/fj0oOG41bkVOYHpxa0EzZGxfT1UmXjNeM3xi NSFoRVZwPWNzdWJMcTstekAKekw1dUFEUUR1RXdzUGZsVEp4TXtpT2trPTVhdl9CUmBwSU13cz8q VzxjV0x+WCk9YndNVGFGViU+cHRNbjw7bCt3CnpyQzJRVXdGd215WEBiNjlAPX40bGtaQnwxTnVP bU0qPlBMZ2NIXys/eWBBYXtINCZacGBkb259OXp7TjBBSigxcwp6YFFldnI3QXNBUzVRZVJ5P016 cTBmcGQwXjhZVW5UQ1BqQ1IhJnVwbyo9WGsqbEwmKkk+KFp9djRsNVozSmpNVWcKejMobXJEKGA3 ND9HRCtvVWs5aUAyVzN2KyhXOVV8c2dBUjMrUzlxek1FZkdZfHZCTDZTV3VpWGU5bj12SU8wd3wz CnpYTmhnRDYxSngtWn5RQXk7X3RBazJMbnRtZz84UWlgd2A/KTNLWWl1RmM/Zk96d0hEJmxoVFlF NG9vfCYpKy1PSwp6aWBNR2J0QFV4VVhlMzVVT2BzWFRnOGVTI3lsOWt1U01eRFBQVV4/UyRrMERe WHZHWEFseV8pN05VWGw3VE82cjgKelIrSkBAa2tgMkthWkh7PVoqYTlzemRCQVU9KUhrWTEoQ2Mw V3FjWDJSV3J4WWI8SDJLXldUPDBncGs+QnR1dEVJCnoqTnt6NUAlMW5nVVFSJkgyR19pMnZvX0h+ VUUzYzR0PX55bng1T2VGMWNCNHIxNTx+fmFOI0AmOStMJjdIe2J1Xgp6U1REcXs/RWF7eTdNU3c7 I0NPOEVZPTcjUlliJl4wTW15QlBud3FyZihgbXpNQURna1o3MF97KyN3MUU4R0txVUQKenN4czAp QCNoeWFUcCNoWCM0SVhJP14+RSorQW8pSkBRTERzemsyQTduTGVFaj1iWmFQVXhwdUNlbX1NJGtz P0w9CnpvNGxfbDQlZ21nSW00SE0lTElIYHdQRGRlb0A2NE1TSDJHP05EZEskKzspTWZBM1ZyTD5z fjFPRm8pTnNmIVY9ewp6YkQxMVVZJGQ1LXVoJT4qTSVGY095QkNsWCFaXkAxVjJ6R2A0WUIoJStw Xz4jREdpemB1NWk1YXlXY2pZbH5tbzAKemFlVGI+VmlXWjZ2Z2JmR0NaZXRVSU1jWTRaQEY7azh6 TVokeGNPdyVJbWdFSG87KmA8VXdFSylWPiR+VkNELS18CnpoaFAmVHo/d30zQH49TGI7ZT5GNCZS XlpmWSs4fXpedTMwQi1yNlY3WGAyTz80UzxgVVk3VSQ9PTQ7SSVISEpmQgp6c0p1NURldHx8Uyoh d1pfN3VDaj5CMXZZP2lTVG5pTlc2M1FOQHozZjY/YDA0RC00R2ViOEp5bk45P2dXM3ozJSYKelNg NEg7VGdeX0FjTXVCO2JhM3hUSyhrPSpZKHprVUB0UnBYQDdnX0NCJVdnd1ZDamtQT0Ntej1UNDJY fXkzJWg2CnorRVFEKntsPnIkYTZWeHspMj9kLVFFOFVRRDtKaEg4KjM2P3w1O1BVPTQ2bjloUDk0 OFRjeWZlOEMocm5LeWJOOQp6RTwqb0g2NFg7VFFhY0JTX3tAeFRGb0FycDB1ITtFbEB6Skd2eGpT TSt0MSp6aCNyPWExfTYrcU4tXjBLcnh2WWIKelp5cz5zWX51bWFVR3xjejxtKUwmZm14UXJyO1dZ bEk/PDlEUEEwYipHanEqKVFHRWNjVU5+bX1GMH0xUk9pRUFfCnp0alBmQ3NKN1VUaWF9JGJWdyQ9 LU5HKGI7VXhrJD4rdEtXSztAPGFjdlh2OzRje0J0NmwyP19le017KEFGPSpvSgp6NCtBMGNUenNB OS1EZHN8dyV4THxmVEthTUIoRjd6cWhMeVpiMFkpOGxgUjtUTkoxNklBM3F2c3NQTCZQOEtuPlYK ek53UlN2c3F+NCY4aFZ1SSFQbzloTFBDNT5pVT9DVz1sZXQ3JHIhQExyUTdXcHMyb0xnYnVsaDYx VEhoQktVQmVJCno4ekhEamVHTkQ2V0g5dmBQYzsya3pgPlZAdi15PCVMJHdEU3JgP0hrJnR2M2ZU MSNpXkxIP0VYZV9kQkVYN1AhSAp6a0R1UzBId2h9JEc8SH4pU0syP0M1YW98YFopcz8wMkB0T1op TGRgdyhgeEdmO1JaeilMfkBhQG5SPWg2ZXtAPngKensmZG9Ye2ZVZ2FoVGtifUAxUmlULW03YVFn cUppcFIjZGFxOWtAR3RVV2NqJDlPVGZ1Pzglc3xHYDhZajN2MWMqCnpGeDM4WnRtRSh4Skk/WkFW dDVaVWRwSUsmQlZDSmhTcmpNYCgrei1UdHh8T0FqMXwkPTh5JWFFKW40cEFYQWw5TQp6JTw7OSUh OVF6eDttaW1gdDBTVkdQdEFURlJRVD49fExQaCtiaj17PW42PnptTkg0aWskZTJGNyFRTlY+NnBQ NHEKejw2NnItbjZ2SCNVNFVoY3FtMkl3JGNpdj4jYTFUakNiU3xeZD1oIzMrQmw0TjM9QklMVTJh O1FoMlkxfm41dn5iCnphdm1lPzM+X2VXbCRFck9TPXN4fE4zLWJxSTdaa2UlYjckfWRTRGQ9Tjha VlZ5eTgrfkp4RTV3elMzezhFfSk2Sgp6R045PSpyU1dEYlVkSENDNmMoWDlYTmJVVm5ZTi19MDRY NUpgRWVkNlZePkRVZSpCMTw8STUmVWdEd25KUF5XU3UKek5weikwKm9yYyR4MiEpNTQyZiUjKVkr dTJ6WV9fZ05wZkNYb0tFb2FxZDlfdVNoZENYQi1aI2dXd3dvckQ7TyEoCnpKQmd6O0c5Qz1oQHpn T3c+WWFLTEd2KFIlRChSfH1rfmtFQlJTJWUtdUJscyM4NFZ8b3NgTjdSYlcoVHJ6bVpiIQp6KUUm JU0tWj5MK0ViKjkwaXJpUSV0SVhHJUQrUldrekZiQFZ0JXRIdm4pKHNQNmphVVhPNjIwSVdgekxZ M2lGdVYKeilpNmVMbmY9d0M/cnRTKj9HbT4kI0MtXzA2Sm4wQWw8X19aXmtXcXIwS2pweWVpZUV5 U0hmZWIoPFlve15Xe24wCnp3KjlSTlBldCMhMVRHJChBMVRYdE44TTEoY09KM0J5MnM2QExtIWlS RGkjV0AyfClpZ3NpPD1WK1RhOGtLPjdoQQp6S3Z6WV8oSkMzRVJKdkUkSCh5SFN0Sz4+fE16UUd9 dUZodGlqeHRfO0c1VEN8aGJtODkrTDhvZjVgOFFLP2JCN0kKenghOWUteWZFcDBUbiZTaD08O19n RUY4Q0B6PGJLVD8jUFB6PkBMenhvbzJNc0s/JXVHQlp9bmpVUDFIaGR+SnYlCnpNfWJwe0NEdV99 I2sqTXwzNlpEWTtvZkB5NiF0VCZfS1NCfStVYjMxb2FraUdDOyZzUFUmNSl+UkRPViVzTDk8awp6 NSkwSXcxUGlsdW1+cj8waXFeM3skOHJDM3VSfVRiRz4xSUxVTUojUS0tekNZdldLNk9ENnBTcTx3 MFJicXY7c0sKekpXPVRIVERZKkt4TVphMntlQXhmPkF1Njg1Z2VGOVZPXnwpSVRnfDZLI1hQaXBJ e08wWik3VCZLfGpAVTVZaVByCnplNks3cEM1aTZuPU08TzVgQmswQjsyNDFVLT1uVHU5bXFCWHNQ UiVgN2VMbXFGYHxXNGB0PWxuVCU3OS0+YU08Xgp6MTA7WUo8ZkhLR0ooVmp1QlRKJVkqOVVEVz03 Z2xhanxLKWAzVyQxQ05JS3NNRGFHNmF6Y249WVc2ZmUoJX5SKj4KelV3eWUrSz9lUXI7eW45PUBz NSFwPVNwTWxsY3dnTnl1UUp3Nz9HdDxSUykxJTU2N3JWbFp4eXdEX0xFRjBvPz44CnpkcHlDQ1A7 MDxNPmdNK35EVnF6JGRVMTk4JUQ2WVIxPFA3Rzh8dW53N1c4XkVQbypLUE9eMjJgYkQ+N0dTblZg Nwp6V0QhPW0qT1heRDx+YlpKNko/dVQ5R3ojNm4+bCQkQDB1WlhkUEkkOF9iQUNgbzh3K0pfTypN SylGazFfTk1+bkwKekhGaTlfez5DNDx7Vkl5a15yPyohXmlCe3pzaC1RIXhnQ2toJTcoaXxBR2pO YUFlOUZsNCszVmtDRjw0TUlZODR2CnpYdmRaY3RAVGE0PEBzRGNLZWQlVFhrbUxlJkNON2J5JX5e eU5tQFNeQiVHNXg1Pz0+U05gUT1WYnExY1N7NVMzZgp6ZkhEZ29vcFY2IzlRS2UpMHYxU3IpfDEo bSNwRnlkUFpzLTI9RkF5UipPcitke1hUfC1uQ2RJJSpEelVgWUVETmUKeiRNR0h6aVRfR2dVdzRz amIpJHRteyNUZEs9QiluYE95M2MkWnR9NXNhZiU+bUkjLTZ2eSFYYX1WR1NFZ1lpPjBVCnpoY2hk LW9+TXRGbyMxJl8yTiY0UDBUZ3B1T147ZjBVaFZleWc4JGV5NiVMclEpLVREe2ZZRmt4QDAmbDB2 UmdjWgp6Tzc3K3hHMFlFbVUtQGN3dz4rZ0tIYCF8TWNMcylLJXtvNTNjWkA7cmI4Kll3KnNjaEhi REpURXpxWm02YVg2Q1gKeiRJe3ptYH0tO30zJnRvKzVEa1dnTXQoTGxHXkZGP09nY1k1ZkF7dW5H N0FlIWdsTW8lSHZWVUYrNXIrPGY1N2tqCnpYZkowZ0xhWDRDKi02aDY1aHpuITB9cDx6ajBvM2R7 ZTsrOXI3UG1+eU5YUEw4QElDIVV3Q2NeYHpRfFlfcXZqQQp6P14lPzkwTVA2P0JgdSQpX2lKUzJC S0B3dzdzYU56Z2oqajVyejxaWCpfZD5CZDBCZTxEJlNSMS0xe0drI2g3UmYKemwzSmhmLW57dX1a KGtKP3xJbF5nXnBlYmkpM3ZmPUJBMDZZR3RnNFcoVERTSm9lVEVBb3xhfW9uOTN3PT1idVpjCnps UypfSDZpcj5vJTthQn1HV285OU9vbkcxaHhEd293fXo0P2QyTCN5QFZfOz1vYW48QjRvWjc5IT1k QT1WMllKZAp6YE5EJiN4I0hndWNfZHkweVpnYjw+aEpGZjBYUjVEUU15XmstQl59Q0FNRiF1eFgm P1NjM2diPz1zTn5SJmRiYTkKelokKXMhQ0JJeUI3PSEja0FoUk1hajFxa1FgdXdvJkojc09UMTRP Py1TJENfK0Itam1aK2NZRWtyM2UmcHlXME8qCnpXQVQmVFYhREk/SjZNfUhvOWJLJTdgWndCO3Ql cVFTQnN5dEVOXypsVSRqUnFSaj5TIztkTzZydkRtPXViVHQzNwp6MjY+NnV1eUA+VENtbVJBR0xq Nz5iP2YjN2RmWGc/K0JqR0JUej4+aSlxJTd1WDNFbUp6YXV6NURTM0diJFlsem8KelhNbkZZUWtW X2xVb3NzXl82Mk5oVCRiSHZCWnhSNzFzKyNuQDFKZn4ld0t7VGBIWHdiditzOFpwZ2kkN0xHeG5p CnpKV2lDSzdwaElpekkpKHNrTmthI29sIyZ8MVJBR31oYiNBQE19YD5LMWRfP2ZZRkdyeUtRT2ct SmQle1pfYHA4Owp6P29BZHpCREA8U21wdmNBcjE8VkJoK1cqS25leFdPZDV5ZDRHNyl4Uz1GLXlB ISUmRHAqci0lbCp0UiVCTGt6QjsKenprbCNVRjxUZHRDYTQ8a0JHKippQ01nU01jQH5FRSFeVlFB bS1GQytJaFpOdWw+Z2EtcilOYnVveXV2R3pZKW5oCnokfHFRbT5EQTswPztDeHorMyFGVDhEQ05r dDI1ekdNbXozTE1sKzdCel41OyVRdVFjYXkoUDloZFF7Z1A2S3tJRwp6emBRY3l7cCYlYGVKZXEm QEZsOFI8OWNTV0thcXpGelN+TjJ5bzNOSjYkR0VlVU1OY2EoaWdEYFNFZi1OQz1vXmEKekxmTUBS azF9KFVxbyYmSj1GanpYIyY8Y3MwLWJhSWhHRmw+KH0yXylAI2k8Jlc4VGxLczAxd2pXJG4tSSoh O3hJCnoyTDkmZ3B2ST5AN3U+eEYmZ0V8fSM4dzZXTGl4el9IezxpN0s7TC1+VFE2Y0omcFQlYXFV bTNlMlNifnpKaSZqPQp6NmFkckYoUztQV096ZWh1S2Mjdi1mRC1LPEtlJjI2e1kreEJUYVN1UU9x OEhQPDR2UE43ayNsbyFnQFV+LXNHX3kKei1PTj8qdCU/UnQjYGM4bU15fn4oZkJ3MUxRZyZGKClj KT1BNXsyaDZtQDIkQU83TC05akxoUnxVIz41TCpteXAqCnorZ1l0I0wrKn1HQ3cqQWlrMmNkWWw7 QiZwTWhQU05faihVWHBTP3ZJeGZGYmE1M0g8e0BwfEFabThPXmRlPHY8Xwp6TmdZZH1RT0t+JD1m LUA/ZClmZ1RWRitnbUktSVMlPl9RaihuaT9kXjtrY192RENvcnB6RlkoTHt0I24zc2hOfiMKenkl eE9Sck1rYkcoSkx9NmhAOWY4dURyVyk4Zk5ZciY7NVV4YFU7PmIqOGd1MXEpU2tjP3ZuMkFaVWhE Qz8oV1Y1CnooJXMjcWZPSz17bWhTSEVaZ3woPF8xXnpHdiU/SEM9al8+aV9Obml1UngwaVg5KXMq QHJyUzxSRlp8PWA+eClHMgp6TDxjc3s8NUJmK3tQRko7bWleK3FOYWhoRG9hM2NON08mZjdtdEpf MFhXJnlESVRecnp2cm1jI1Y+d1cqUFp2WXQKemdqUV9aQ0NtQlVgR1E0TEZMe3UjUmJQTHFedTlF b2YpT3QlXmQ5YytIbHNLcURkQ2MoIU43O2o9QnRkcCticDY1CnotN01PKXZFQUFxKlVyTGw9WlVO UmAmXnYtZUwzQ0Z2SmVtdWVpKmxJKnwwdWs3Vj9IQV5iU1JlKjBDYyRqeHhQZgp6emJLcD5iNm97 TGhxSyhBaUorZHYmJldEb3Y3ZkVnNUB0QmZhMmZtSkAhVilVdGJ1TyNqfnF0V0JHPnBfUjs2ZyUK eiUjbDhLNGJpdEl1V1YzPnhNYlIhUFpwTmg7clFJJm5gbCFlMitxJlhMI0g5KnZnSkQrJld3WEBT MChzN3U1JXFtCnpkOW88JVlqKG0kMXoxcHNAa1Y5bm47X1EzN202JTZweCplNyl3cXgtejYpakRK UnVLLUVrYWFJeVItQX1VdT9aeQp6az9BQXdwaGQ9RTRNdm1kV35EfGlHJCE9RSk4cFFiU0tmO2pM MTl3PHA8RT10WlBMTzN7THJ2MCktNW5sMmVHP1oKelB4T05EI2c3OzJALVhCJXtsS3A7OXRJfXR1 a0JwZFFfMnhndXYoc1dncX4rWTJYbUVxVztXWXszQzhCUW91bT94CnpgRUFkfkhkanhWcVpvVV5f SnI8eElSUzleR2FvdHxrOXRQPVZwfUckVj87fkN4P1B+Kjw8KGk/TX5Lam0xX3t5agp6XnB7RH1S WEUyYXZzPj9YKGtTJFVuPkAzfElDTyZyIX5xc09aNSkhbTskT3BuWlhYR2VQWi1uWUxuazdgU2V5 ZEMKelN1YVhGbFFWSSRGSH5fMUBFR2BoPW1tX1dvJUMjWUF1KyN0S0l2U29HQHAod3lEU1VJO2Mo PGtqJlIxMihzY2NYCnp4SmVSdF9JcjdtWWpjaEclJj5Yb2JVS3EhRDRRWkhhbUc1UWhleXxQZVol OWJ5T05YX0I1SVFFI0A+MilxbWlCXgp6Q1grfjhfelopUjR8JHtzZW1TNXF1RTZvJGdUcFl3XkJP RjFvWHgxOGdzMDV4TW0oRmBKTW5tdFJATCFodiFTNWsKenU7X3liS3lzfng2bWZGYWZuSG5reXE7 RVZzaWZ9V14kRWtJJVdYYnM4akB8KkZMe0Z9UkdKME1WT2ZtPnohVW9JCnpuWD93NF9rYlpfVSpW MUZTLVJoYWc9K0REIW5wPn5iLTNFckhuODY5YnZldlkxODdXZWYjdkJzUU96WD9BLXluJgp6eiYt ZW41fnxETl80IylBTDQ/eU03QFhsUyFje1pNNF9LYGJNcG44KkZ5SjMlSDYwPlM9KXFeNWg7b20l cm5xZTgKelUkKU9XPStRSDZYbEo4TUgwe3JobT1CeWdwRXJZJldtUTN4N3RXJmklNSNzJF47c2U1 IVo2USpYJXFZcD8hWnJECno8UiZEPytOYHYyMGUkRW5fVkd2JWRkcjRzQ2Z1TUdjRjM3PWhJcjR7 WCRoRCFzXkJyI0J3Qz9HJV9sUShjbWhuSgp6TEdVbjE8IztMMENsM1Aye1Q7dHIzVD56Q0JxbGl3 ejxERURPLWQ5QnQ2bXI5TDA5aTI7TiNxMkZaIX10Nm9NKVkKemcwJGkpcFZYX20xNEpgSlhfIUdQ e0V2PkNrUThZZ01ZTVNaR0QmMFllanNYZ2liVTgwPGczVEBgS3d1dlEpVmRFCnohc1Z0NS0ldkFz MClrOzg0SFhxVmtgRXV4U2RVeGIpPjY4eVU1QCgyTTNFITBAQzBRaU4hfHFZWVhIdzc5MGFCMgp6 UyRYIUdYd1lkISVfTX5aNkt0Qj9CKnc0WDRncDF4c1R2WU0lcEFtNGNEentzPmtXPCRmNV9UOzVJ VHUjPmBifHEKemdgLVd8dm9rNXdGNStaMjNGPENKT3lCZlJtQzEobE8qcntvfEY/K1lVWXM9LUo+ TG4/NH14ZHIrYVMoaUFxS1hkCnpweCFDKFpYOTk1PXlib1V4aEE2SXU2UGB2JW87b1YpaDNeO0Ij dkxUN0E2OT5ka3R1LTMkYilPJDMzeSQoUklKKQp6ZG0pOz9yTHs4dXQ0I24zPmF8bnU3WHB7bG0x U3RvdiloamJJRWx+Z1QtfV8rSzhGXkk8YEg8cGp4ZmsxdU5Qc1gKekMwczVyN0ctRWNkKmpEbjJx YWZGZ3xAI29VRHhyVGpidTtDM3J4eitmNTNjU3dSdENqYVhocFFpM140N3RrenBHCno4M2MpUG4x ak4xI1lobW9sQjJJWjh7cCYqQUhybEReQjV5UkFaTD17TVcySz90USsxPjZ1QiFuQj8zZGNBSUYw Pgp6Z1pYfVhAZm9jPj5hQXIhSXxEaCN4fDwpQWZrZjlAT0dpb3YzJkBseCpJfSVXVVpYVmM1dHpp U28jezVReUt1Z2QKemxfdkM1cXE8NGlxN2o0MFB9MHM2YD50NEw3V0c7UUdMPmFWYkxFWiNkWDMq JWw5P0B6SldqKkhVUjtnfTZkamZ+CnprQ1l5UTlEPDdyTUU1R0pUP1MkY1RFT2dEc2ZfWTtwR2NI QCZaeDdzP2p5ZmtwbUBne3hOLT4wJGRncFRuPHk0Vwp6YjtKcUtId2FpLWNSYVVUT35+fH5YUj9A fUpZTmhrNmVpRz1Iez1lTUReeUdXdEBuI1hwZXg+P2BKcTdib312MlcKem8hYDI3Q2Bac2A+eHJz VlJkYkJuTnVVKG5VdCVRLSoqfHxEV18zRHZaJDk0Z21kQUQyYmd1JHJfRTF4VGNmOG1CCnp1OFNW O0tHfipsMmk7OV5jJV4wPk50QWFkOE1pfjEtUzhEXnVUSkFkQUVxdTZwWGFtTkpTR21XcTBmVyFa d30pTQp6VjImLWFCUVAwRypERC1lTHRfPyEle30mZGJBI3JebzN4WCVfVUpkTXFCYTBxNUpYfk9Z aFNWWEYtPG81ajEpUSYKemM/TURjMlg/YjxXZUFqVkghUXdtXm5BWnhvXzYld2A7Tn5ieEB4WGEo dWdySnxGfk5+RFYoWmZRaztqblZWaUBaCnohTyhWNVdrKztnKEJzSUVQUXtzTSVXS25lRXstdUNL dVojez5obFY2WCtmU3s3dEl+TCshPHpCPCZkPjdEN3BtSgp6M3VVJmlWVUdhPj07QDJPOEBacDVr ajVKWXdIWUIxeT9TPCU3ZGlieWBnTWo5PV8wYFdZcCZRIUpUR0pFSn0+dUkKekJScj5MWV5wajI+ PDJfbUE9SXtHI34jazlRJFBNZU4oQXdWZWNOajljcH51KlhKSWNjeFhHcHRIJUBJTU5DR0NYCnpr JX1vWlNXe3Q+cT9edjhXLXFUNnolezFwIXNmcX5Ce15SOURPaH45eW9PKUxwPkFKP0V1U1JVe0x1 Q3pjfUAlSQp6Y3VndEQmcFI0Yzl3YkVpMVZiUyYxMkUpU24tZVImNWhma0tNWSoyYlZ+eVNLWDd0 MSk2N3ZSKzZhdnZwM1o8YTUKelR+T3M9SjFJTjwqYnR5Ql81UlkyXj0xPyF7aUE2MV9LP0cqOTAj QHBPciMxczR8bDhFa0RKXnVkZ2p9UlZLVUF6CnopRGgmUGNCYnd+e3JuZkdoZTwjdXVaemNhXnpB IS1zWVcxNVZTKEtlYTt+ZVNFa09abHU+dHA4MzF3QzslTHIjegp6PUA3YGxnOztfbHJvdEw2Tkx0 NXYtYmZySmxFaiZSUXpqREg8VT9+ZjZUYTw2MjwxZHg2dSZ0aHlRUHdsfEt2PUcKekc5fGA1TklC Rik5UXN7ekdQKDRwVGtIM0N7QHtUTGdmJFFxXiRoWSRkendEfjhWajVxdD13Q313K1llN2YtWHlU CnpMRyFkQT9gNUNZWEpmZyVJaVd+dTFYKSQwaGZ3R0xDVDNVWVpxJkg4P1VVOH08OSM3ZU5aYXFa aTYkZTVOYmhgYwp6RF9IeiE+TDJPcCEhPnFZO3NtMVQhd3wlfiRocC04MT5gbHgqRXJeQWxmR19y YXNtMUFNVC1iclJzTGMoNj8mKT8Kei0hJEloeih+KXRne0d+eFBrTTFSYSMzN1JJYyVlMmNSWXxV aWNmTG1fJjFaaXhvZVM7dkN9cHB1ZURxdUpLIWV+CnpoNnpGJT1pbkg/Znt9bVVjX2pHX0huXl9h NEhefllnWkVNWWdZYkJsQmc+SHBZfip7QW5CY2tmM2lIekRGODROSQp6WFZ6P3Z1KXJIUCF2bUA7 ZT5afWVDX1hwWXgoN1EkWm9Ta25mVlQoQGl6dX1xaFY1eSZDWVRtJW5BPkpNd2ljfEgKemlzdSp1 aX4zbklXI2M8SWdLLSshWkMhKzVtMmA+YzFRJE07WHgtIWNEZTJ5dy0qPEwwQXNBTihNOShPO3pi bkBpCnohPCEyWndITT5aK1FfIV5wREhGUFVVPVUyRTJ8ZzY+YjFyaEBNcUo1I0crbHlhMjxZZS14 KHtgMm9LZl9lMHY0Kgp6S04wVyolYHk1JTRrQllpZzRkP2lme0ZZQU9eMWg3SHsmdWVyeSs/O01v LXU1NjhWbGN2IW1uP0w5XytSUztsUi0KeiluV19CRWsmNzNEKSE8Q1NnTGZtaXtOMjtwLVleNENv Xns3ZWNsfVd7YDBYRy1Zck1RZFFvcitaPGs2eHNHOEc+CnotQTV3ZmBKdC1SYjNveldFUCVXUHJS S2pTZilod2s0ITt2ZTR0cjZueUZEVHg3KF9NfTVRJiVKTTtpUjRYQT1fbAp6R2koZm8qNDc4JnJa WH5eTWMtMHhlP2clKkF8bTspRUVZSXl3P3JhSnJ5UXgxSmBuQlJUQFdHaFR2Xy1vKS1PTDEKelIh PzRxYGk8WDA4bmRqclNePT1KSFJPIyQ3KUBLOTV8TlYyPnBfSXB3MX5eKnozO19GM3VOJSE+dHMy M1RwYlchCno+YkhMJGBGNGJ+b2VOS0J7ekk3bz94RX0lbCRAcE5SYjY3PEVwSlomXj1MfkBacjlX c01abn1xZFhSP2JVWkBHUgp6elVBK2x5LUFvKERJMjRva3lVeVBAfHFwXjV5c3kwe1lxKmZzU2VR T2pQSTBaWVNiVHBHK302OFJoQWVObW1kMXgKemVJTEVSUz1OZypKYz93eVdXJExEYEVuV3MlUC0x YzhtZnNwcytjbmItZ0klPCo0Q0cleyVzPTxvO1BnIyZjLSZkCnp2WnA/JDt0KGgpb1c5Tyhye1pG IytKNyhBTU00bjJiTkx4I04lQGc1XiNfdnJXP2krNzJCe096QmdXWHgtPHRMYgp6WkVhZXZSezgq SzI3JiRTTEpWQkBuZiNUI0gjelowVzU4elpQd3FlLWJnMF8wZWAleUM2diRDaFQ1OVM3WCVrWEMK elBMQmgkPzs7WHoqTzN0RTB4YVoxay05VXpNP1ZiMDRfWmtWdml9MiphWT1qeTV6OyU1KTlpbm5l SDxTIy03a3o/CnpLST5ZK1pBd3AxQEJhMGpyZn1NVkx5PFNqJHFhfjIhP281dHtYZWpjMEdkPHFU ZHokPFhqSWZAKGchazh6TSg+dAp6XiY4KnZDWjZ8QG9QbypnPHg4RS0/dVFsUigzOUomQURaej47 QTBaLUV9WGV5VXJ4SUZ5b2xsRHdYRl5oQlVeNUAKeiMrPzxqe1AjNVN6SDBwfUB2SnFySEl0WVZ3 UXdANHI+RytlQk9CRXIoKmk4X2ReQW9EJFVxaURSTj1JI1EoblRRCnoxeHZhJFhKJUhKc29EQ0dm Nik3NWxTOFQ1QmJAU1FCQU1+TUljRGVpUURaVzJtYn0oUD83ZnY7dmVuT2xTUTttfAp6IXdVPlc0 V34jIU99ckp5JkRQXz5rJSpye3xIQXNaM1psTUFJQDhfUSg5ajJIQ24yYnYxZGEtOVVmSCtWOG5Z VnoKek5mUW9gQSVVfFhuX0UkLUxzdUFPYV5OVUtYLTFSWCZeSm1mcl8hQC1GPU9kWERxP3lLU2Yl IytRXkdxeDg5dGxsCnprflkjb3JDTytOYFAtfG0pKUMpUXZLTHFuV3ojLU8lKiVVVWtrSWhYSXg4 O01nO25rNChjYkZybDh+fWEjcEZqVwp6JCQ1TGxJZzczJlIkNFhNPnVjO09OdF8lPVh9UStYNChm TCRJdjcxMjJ3ZXpFJmBYXmxJKy1jQklANUR8VSN6PjwKekE7JipJS3MzIWNKclo1aShHTjs/I0B6 XkVASzd+VjJVOXdsWCZpLXU9ZGllUE5iODtRPWBXbk13Z2ZUMldCSnhZCnpHSFAxfFJzKHRLQX1+ XnBgRnZ5ZmF5Z0Fve1M1PCZGO3o2MTNzNT95YitsSlBOcTdKaGY1RW1NNV4yI19ZaippTAp6azw2 PnxrUDd5P3FjQUtJX3tMYUlgSWF5U3sjR3VmUTV2T3RFWFg4RDQzbXs/RjtVe1lUPEQ0anpZKF5R cmNSU2IKenZ5YXsmeXJnQjZPa1hMOGt3bzs5Vml3JDVNP14lQU1AN0Emb2dNWHVxe0s5KmZhYGYh RTE3PnVANDFZMyFNb2NrCnpRWCVLQD9ZSl4pTmN5cjdUa241fUgxUE9yYzw4UktCVm0zPjhoPCNf OTJ7VU12YC1nbmZMJHFDaVQkcmY9YjtIIQp6RnZldGJeaFBLWm47R051VCpBYTVjcHNaTGtlV15y Rk1aRFh6RUprPTRMVVkwNj5TYit7UTNNQDNZKG09X3BgaykKenVocUheeTlXOEokYWBscD9reXJ4 dUpFUU5DRD41fmJ7cmhYbT9kWFRFcm1+YXBTPTdDViZ8JEkjc1pfTihreVk2CnpGdE53MGtMT3Vj UUpnZVg/d241IUA9Z3dkayopJHY3OXIkZmAkTjt1RVYmSnJvZFghMHFyPlAyZyo/O2Z0JU0xcgp6 NClpNHEzc0E2Z2FgNTgyQmhMen5jUk45Um04WGVmOyY7VyglJDslR1ZuNGRSX2gtYCUpRkd4P2pu WFlYYmI/VSEKej5oUFA5ITJKKlZoO29qaW5DX0QwUiU0PlFRTHh8KSZFe012WV9yOUxxXjRuKTw2 d1lLPV5GX1Eham9EXilITG5hCnohWEFyJGBxTD5BbmVFOWBTTXNicXRgREt8eVVWWm9YNUlzV01j JFoqTDxhWU1FditQek1kO0Q4WDRiVCpzJTJIUAp6cCY2bjFnbTxtQl9HYG87YXZGVmB1Q3VtfEYm TWJUQV9QKlZPMUgofE17S31GQiQ7e3w4M3xvTmlBdl9QUlpNenUKeiN6cjVENiFDPjI2KSFWRkF5 KHYtKUslbiVYMDNENE08ISE4T1MxRipjZ3BDcFc5PiFaPzwyQEh5YiFsPXg0YmRUCnpKI2NVOHdK aCgoMUYpPEp0fEI1LWR7cENxQjVFRVNnOGQmM0NQPTRBdVY8JlI/dW5ZdD5NNWdVb05NZnpiPEZi Jgp6NGl9OVU2WFZKMnd7eGszQ0szQz5kVCUxKlc1N35pS0M5YCNoLTAlPTF1UVMmcyNrKHBSUlBj ZmU2OXl5KiolKiYKektzYkJYTmIoaGokayYjSkNtX2RkNmRTfURoUlRISjRCdn5ya0U9fnRzOC0l PGVHYzt5RlhvaU83bHVWRW4tTz8zCnpDeHNNYnlTZWlRMTZ5fDgzM2RMaChiZU9Gez1xYlIreWFN JXNhNGprVGo8WGh4Y2w+XiN+NldjQnM3cil7Wmgtcgp6OWpGbyomKUlsUXZINGFkdS1nLXZYSWkq UV5+YTZlVjtAcXBUODZNUmZHYFJeWVNQPXVgYjh7JCE8Y35HPV51dl4KentDaWBTK2U9azYyQTNV aVRNT15xNjtCckk0I3pPa1BRMmRFenNEREZ0N0twJnJuI2p6K1ZZbGk2a1Fudz9AOTMjCnp8MWI0 cDJ2eWFedHF3b19gN1Q+M21MSypIcWI4PG14IUFQVVhyRGRMeWNTMDlEJW59QHE/S0Fga28wXk4k azBkIQp6cz9zNDg2QFAleEF9akh6RSZKdHQxRntyUncjPnlkb1VObmdDT04hbFBjcHBCJEphbyRj aCh4cmVqR3F0LUkrSFUKenpsPygjbF5kJXlgZGtOU04jKkpuWXhZU1BTWXQ0bjx8TVFoSmBtV0NT TzNHUWpyVmJQITBAdVExUkRSRTZJRTgtCnpuKUl6SmlFb2VUTk4qdC13RThCU2Z+QFJIdHJBIygk Zks8a3EhPk5zU3d5VCRwc1Apait8e09FZm1Sb3dAR1dhLQp6V2JKSUYldUtPOWsqNz4mcTJqLVIl dEpFdiVZbyY9YmI9KClYc0NlU05+dDhnWndfIUM1MUo8YnRfTlkpbzRZOFQKekRCdWVWMzE0UlRM KEhISUl4P3xHY2laUFBeODU7Q297VGxzP1pAdV5tR0tje3dVQE4/e3xrSFlNfmsqfGEkUk09CnpU QUpsTExlZlZmKkd+TVpDeDZgVDhvRnRePFl3Um0yU1dTbS1iKEQ3VUdLJno3cEMhQnpGMz8oZ3lM Z2wqQGRmWAp6Z3V1NUMxaSRMYiV8IW1MQFBJYHVNOV5JNjRTOFEqS3hGIVFGJWdnNzhQc3NJdUdh PlEofHpkTkdDSmUmUmtAI1UKelh+M0J+MiR0aV44dn4xLUBeUVc2ITJqLSVoNkR8Vjx0THV0KXAm VHhJXyVfZkMtSWZfVXwrYGEyTFpUYVd4OTlLCnp1d09GYGhyKyRERmg4bilgSWtMNjVCNnAwZWxX OXtqYzNBUmxjRitrZk9ydiQ2WG4zVXxIaU5RSWl1NTVhVCNSegp6Z01nSSZPVHl2cGl9XitQakxt MmIrcktNYXcpTUx8PGNTfTt5dD0wK0FvNWB7X1FMWSlzO1d8WVFTRDhHQ1Y/ZG8KejZOZyMwdHEl bWYyUjVuSzVyVjcmRGhKSTkzOylNOWxsfiFKOzdrfD0xZm1rQHcyYmxFTGtBSmVyOzZWPm9oJHtT Cnpxb1g2cSFBd2Y/cFRnazZDPFlOSXlgNUQyJkhgdG11dHptU3ktQGNBdW0tfTw1NyEqOChsUm07 VURQUCNNe2RyYQp6ZW1BajxTIUcmYklQUE96UyFQfkFJPzZRQHpIeDthX0RnP35VM2F0MWYqTHpw QXtPZmMoUG48PSYhcnVXZUUjaT0KeitJJitAK2RwcyN0PF5zXyUzfDFnRW4jVztwTGUxR3UwTlQ/ djg0dWJiTT5ZV0t6e2IlKCFtS2REaWE7Ql88fXdVCnptJjVVfj45VWlCYXlnSnRIK2VHanQ+TWhm SUxkQnJEY0QhJmFqfip3bGBTcGxwPCFYZT9hMylBTFJucjkpTkl5RQp6MFZ0ZWpmYGRhdHFAMG9H bUs/LVBGKjt2V3F7UEk7eksoM2JwMC1LUXNuPXhKKVp+MG9QaT1wZHA3KENWNHJXQEAKekthLVBe Vil+WWlqTlEpVStTayhxdSRidCMxcnMlPkk0fnwtNFg5NlhWODMjK1RUdnFSLXA1TTQrbSlCbl5a NTw2Cno9PVlKN3FmLStGR1crJGItZyUkJSNJZjBVREojfSooO0g5LS0qLW5ZN0o4O1VLYWZgYXBH QVRHJX0wU352UkBsRQp6WjMzcTNnc1NzbEtoUSMqenUxYyFafW9xNjlBPXhIJGcrTXc8VTgrZkdY cEI/dEU7dndlVXFXRVZ6VFBFI0g9aVoKekZmNHsjZkp3bUtNZFlZLUtJUjZud09PO0xKRyZiMVhZ UzIoQXh4LX4zMzhkX3dpJT9Sa0JtJlZmQ1Z5Y1Z2Xis+Cnpkc3JmYWpgaH1CfEpOX14lSUd9bEFI IUE0elh7USgmfmd5QDF2I1Y3SCtIfGowZEJ4X0lGK3J9PyZ8N094VkR9aQp6RzA7SDRSbl5zVVVi d3pfWiR0eH4rMjZRfDB+cSUyPmUjcnJ1RihQYU5waWNWOT4xWiVMRlEzUmV2YDRTQWdCTmkKej5t fHY8OE1qZHFaezJ2bkhWKGs/ZHMoa2ZDSkIrOHdpVGRWWjA5b3I4MkYzM2NPYmtgV2lFajxlR2BE TEQpZ0JrCno8b3pYeSVXbGJOQ0dCJXsmcjxQa0U9MFNLVUB2U3FxNHo1aEojKGJfKWJ2NUxSTHYp MWhXR3JSYUgxbHYzLXZWVwp6dG1TNGAmbTxPI1dNSHxVIT5od0ZaWkFqVV9VP0J4Kk1zJDdoU1Fs cUNrPmFAM29kUGJTTmxiVHhQOEMhOHY7XzwKenQpdX0hM1dkaT9XYEJUXlY2JU19Yk1xPzBid2tR PXUlc3dXPW1YVEBxRGB5TkNLJVR1eV9zST9IVXxMTSheRCh4CnpWYX02dTl2QlgzTmphZ3M5JmF8 T3d6dU9gUWx0KTNaa01XR25NUU84NnptOXtAN182MU5hYi1jJm5JS2plaU05awp6ejAjQUdrfUZ7 UXNYQVVleURUVmpCaFc3VHVFI0dKNkZwJigzdlRWYzNreXBBXiQlfSEkK2NPSDQtZyNxZlUoe1kK ejtFYUArQzRMZCM0JH1NQDN4TFA/P2NpczYhOFdVRGtqZUsxPUxXIzRgK3g8WENCey1UKlFSa0JH Wm56NFQzO1J4CnpETTs9WEVQam9EUH1MTUZjYERAdlExK3xNQztfRn1hOz19MXRJbXM3UGtBT3hk QHRSYnAycXMmV31EIzA2UEQtMwp6e2xjX2p4NjdSOzFFYVVrK1lDTkFMTGVDSXFWcnshKWRHZ0xy LT4mP15Xb0pEMDZ2Uk1Xd1M3VF89S2BLQkpAP2AKej5weWVaVG1vOGpyOFBZND89I2Q2ZFhHZkpD JFFJSllOZHBzI3BHKSRQcndXPjg7bXx1YWN+VjBgZHEjZzI2c1k2CnoxRGt+a3ohR0hhTWE9NXRB PHtQbGU8JFNqMlJ8SWh4VWFwbVA1NU1iI2YpJTEoPl4jb3VzWSotajd3MlF2Mil4Mgp6WHJeTThf d3ljcnNOQDc5VnZWaG5xNz9FVUVnZl4lcURnMll4SmgkUCYtcyhPS1UjNTI3Ry0ocSF8Vl5WSnoy dHgKeiF4RElRWiY3QUJAJlgrek8rM3BVIVJ6SlRxPDdyJkEhWE9LYnlKRF5JMzZSU0Q+LSFgaUA8 WnUjJkplJWNQekxJCnojbCstVndkcnRWYVgpMk9uXm9TdzYhMkpRfDR7YVU+aiRDMmROMChOTztz N21HeXlvXns/KCpIKFJ4PTxuI21ifQp6OG0kbyRXdWZDJG19R2cpKDkqZEF4WGorVDFZclJ6cD1Z JTVOVj9RK3gmdW0/WDUkMj5BdXVPMitkPTtWS2JVKUMKekdCRSFrejMzVEtDMFZ4WFNLUHoyejMr YEtObnVDVT1QQ3swUUhYT3ZxZmZpb25fSV9pdVBeYXdYKT9EPDRwRFp9CnpzOWFsVWxPcTclWEtH MlMqJH1PWjVvN0NWR1BjVkF6VmphdWM9Zzt8OH15bmNqOXZKPGxXczRNZ3k7PjY7KHpHcAp6NEJY JH0/eyg+diNZa2shMGtAaHBWLUNDTjRTbUd1NXk2SVg1WjNuKHNVanlNbzUqbGs3QWFlLSszdjlZ WmJ1ND8KeldqQSVNRyNyentsbzMrPFZCQ05ya0I1RGVpRlhvc0pyO0d3cEtsNSs0YCN9RV5yVyM2 JHFeOXswNF47bWhoRDIkCnpGXk9LdzZ7MG8wSHd3M0oobThHYWo1SVI7YS09TzlRcilzSmcyKHd0 NjJOPzV1dGVjMDwoflg3ZWBoSV9hVSFyZAp6S1NjcSNBVWQxam9pVmE5N04jVCMkUEtIai1hT3Z7 K3R9YmMrfGtQd1pRWllKRktFNntmeEQoI3tWX1hAMFEtI3AKenloLUBWczA/PGtgJEpzfD1jQXlJ dkl9VD1wNyZlPFdPSklDal83SDBnJGtPMEM0dWBNQGd8VyElKU98I3d7SjE9CnojQlA/NF8wZGAl TkBtI35oRkEycFU0KEU9a2Myczg3dn4yMmU0fUFMUzN6OSV0K0NVU3FjXjtSclM3K0FhU2p5cgp6 KW9KNXlXKio/KjJOfWtTIUBZKDdtI2IhXiY8KmRuMylCXlV5ZzQ0OF5OLVZKK2ApN0ImMTQrajtp XytGMGsxfCEKejYwbGVvO1A/TFVDbU9rKkwxSVZkcnhrX0E8NzZBeFBiVjFNSHdgaUlOb2wrSSUz VVl+WlN0ZHtuRDBXbURBNHZnCnoleyhfTWVhN0JONURZOFpOI1J3aD5GcSVQa3pfN3BtbDJxbG1+ UG4+JnpqQjtYbj1FZ01mQ1JoU2VyJHhiKERZRQp6bG5iPlg8WT1ubjk/JDZzZWsjNmJKPTVidmZI a1FJZn0hO1pmIXBuPiNKRyRVPTBKaH1LNnFPaSpfWSNLSjwzPWIKej9HVzhiYU9IKyZXdCFSKj1B MmlgS00kWk4/bXFqTzhFfjQjR0Z+c1hkYnFGKmhmITxONjFvRDYmSGxeZFg7RUd6CnpjVzhPKmpY RylRWmV4N2orRms1QVJ7KShJNXdSfkUqOSk7PCliMmE0X1JBSyNPJHpocjl8PFh1aU5QI3w7cGRp cQp6ezg+S3YqfjE+RXR4NTl5X2xCR0txNC1gZU5jcng2T0w5MTNUfDdQbGxaeExja08yVlVHZU43 eGVLVGg7b0Q1PEAKejgjPTZgb0woWm5Wc0EpaC1eQUY2aHpxKjZkOyZwbi1XUD5USE08YTJxbnph O2peP1JWPzwhPyFGUHFJQE95ZWJCCnpvNH19QSFxR0FPVmpTO3xrMCg9YWIqSXp2Nyo0cEYhJSFI SDJfbHI5PVh6YDAxck18TVE5SThSIz9ibTV0fGE0Rwp6eHByO25MYWx8KCFxZSNGPiZ8fTFKSTgm YUJ0X2FeSGxoTFY1RmEyPihxLXtmOVg9YGA4c0lkIWo5TVM1eG4kcXEKemIwX1orJkc1ZF90YnVZ UHZxWUhGUipXRVNvdVVEaiNHX0g8TCl4XyN5JnFVOEloTCRLTUhSJSokfnxgcGZ5M2g4CnpsIUhx KUc7Q1RFVVQqNSFRaFpQYW8rfGJRR1AlXjBMblZvNC1Wb1RmTHc8K2xQOFhDYS1uPHR6QUoxKkg2 SzJXPwp6PUxjM34yRFRZc0opRFhAWTFsLVcrKEc3ODVAY3ZPZC1KQEc+Y2krNiF5XjR9TG49YWxn b01ZYE8rPTglVFdpengKekVJfjl1Z1AzKDR7RnVmc3lNWUF3PURENEw2cCpYSUElXmtkbjcqLX5F Tj9Ndi1WNiUtQVB+RkQzeUolQSYraCo3Cno/VFFnTVlQamJKWXZFR2lXZktEQEQ3ZWAxWGZDOHNL MUtFdGlAcEY9ejskKTUzcXFxS2xDKD5nSl5nNn07THRDNQp6bUt8bn5kMFJkNnZITytYN18oVVNC fnAxQEFpZDdGSVVIWlRlQXF5Jm1mcGpNbV5ROFZxc0NxemI2TEZ9dTkhdiQKek5rWW9oPnZRVHxp JiVENmNTb30lNmtaUFBzO1M/KSt0UlpoIUAhK1kyTHpiMXFSK3MwMD1YZX0wbj9Se1ghfSh8Cnpe cWFmZWFHU3c7OTg1RTRgbUY/Yjs8QWdLT2kjZElta1lvaCNsd0AjN2V+ZyRQT0F0Q2FLYlQzeEJF V2NGfHdZZAp6P0xIODIqM3BIOUU/PmxaYCl3QEBuZl9QSFF8TnExeFpJfkctaXUlfXNIUVVZSV80 TkQoZipqTklXcHoodXomYVQKelhmVGthVTtFSXgkI18xWmk8NlZrK3s2eCpII09fMnxDbTRpXz9l cmBTTGp6VFkhITU3bnw2JlV2N0NWZk59dFdzCnpiQyR4R19haWR2WExpfHYkZDdnKFRrb0Q2dGA8 d3hyczZvPGtxRH5WPzRIelgmOD9pX2Q8SEQ0UkwpS1NGJEpPZAp6NzYwPj0wUz9RS2g1N0t2IWs4 WkhYTlNsdFUwNGVDKHlQN3NJMlJYck0pX15FLVNuWiF1fDZnXkozUXYpSzNRZGYKeipRYVU8NXtE elp5eChofll7QWN1c00kYFFyTmNablpCbmIzQmE+bkQ7Q0tgfj8lenY/WWVGRDUoI3xncmR0Sjk/ CnpuNVZ3e2NoVCMtJDRnekRBV3g1VTtUNz9rPnwpS2JjZm9xP0smVTEpUHR0NVNeVSspS0NzSlI1 TWVYQT5TTjQ+aAp6VGVJWFlQQnE5T3M2VHApXnJgfHBZfG90KDZXTXN3OTdvPXRfJm08fUlVKyQ1 MElnOy0xQnBWd0oxMEJkZDREPzkKemkxQTBFQF5haHVkWERhfEBWbHd3Xnw5QGhXISR1TXdqQzg3 TkhxSWBIVlMqQkRAUV5TWG5SKnRqZ1BCKDdNQEd6CnpEUnNXeHkkfWZxdzhwIW9Gb3RXKzBUc3cj JXQwM3JIcH4lZVVDJn1nQCtzSVVnenRXeXxGcT4md3AkfClSTz1vNwp6PHU4YXk2YWRsdEo5TG5h KW9JPGBKUUxIVGNMdGlea3tQR3ElPFNYMHhjPCNneVVFMUVMa3dyZTYlO1NiMX5QfDwKeiQ/N3M/ QDFod0VKcW0wYElCIWc1cGk/ezI/bH5ffS09UUpkISYmNiYkeVZrPkxTanItMmx3V0xgPmYhVXE5 PENKCno4WnYkKUJ7cWxCQVNXOzI2JEU3JiZwM2FycG1UXzNUY3B7eio3fUFFcXFmJlU1OTJ4NHFa PEpZekprME5eV20mWQp6Iz1KVThOX0xLQCZefnd6JHMxcFp3Kz1MT28pfUhfb2U7VHRRZGdGVUN3 aGtjODJeKS1FbDA5KENVdWQtVUhKQVQKejc/M1Q8IVFuXlpYNDI1PTMwQzNMIy1DZmxET35sP1dg NTtHbHc/PWY8SjNXdUgtKlV4MzMwQW1NQzNgWHIwJGs7CnpaZyUjdTxmPDJfaT0tPzEmeTd1XzRs VWU4QGhKNy0+TmkkKHY0VHdjPn5EVFdCQCFwZyQ/b3ZSZ2Q8dmd5c3BDSwp6dU5FX1FmYE1MenJu dDctaklRJkNNVH0kcSN5bFkoQnxpc1UyN15FYExqd0pNSj9tUWlEe0VtdzcjVDlzKChJR3cKenJs P0k3QXN5ST00O184Rmt2JVVKQWIwQStvTnpQI2VXPDxjYnRgSUhpMWowNHRBZjVgUVgka3l1ZjQy Mj9DO3ZuCnp4WEA/ZXg8NVhxTmsqVCFaS2xNUyRZbTFxRCE2KEYxZFQ1NGJZTWZITzFWfUwlYWFy YSpuIXVBLTt3XlZqKntHWgp6PCpXKlo9RyY5PiZ6d1Z0e1c5WT0yTlZPQENXbTQ4fEV8MSVFbjUm XjIjQzNae04hUitienhHR0xhQ1pCVD1VQDMKelZIRFE4ezRnfWUtbERwOTI0UV5pKyhYZDE1KyFo aDt3TVhIKEdLY0lkPTtAMGdxNS1zTTZJZUxKKFN2V1FrOChuCnohYks8UFB9T3EhUC1gflhKOVdN Xm1zUjhtYzglT3BXQV50OT5CaGtDKkU2fCpMZ20jaEVJUXhaMVNUQWdMc1kkPQp6a1U7Pmo8TWw9 XmxnVFp6S3cqNiRBb0QrNFZLKF5QOURVRmohSU05P18wWEpBfEtxZShZVyVWMHB0REV6eWtvUUYK ekxMfmBEOWw7PjhYfHJTNT1fZmVKR21waVd7I18mcU0ycCsjd2ZLPERaUyNpRmtZUTluaDBkOT07 VlNKUlBHUEVACno3VS1ZSkcrVmIhTmNXJCR7V18lR25HMWtpS1UtTlNOTXYmX2chMzQrbTI8eSs0 RVZ+Nzl0ZXU3JXxsT0BHbFI5dAp6Q2ZHVlVGNkotUmBWVHpsMSMwVjBqWnB2Jj9qYHRuVm5ucHZM dFRWJkFVUlRXYjh8WSMwTEZ4Yz5ZOyg8LURLVXIKenZRa0spPmAlMHZmamBiQyhZam5ncktKRVBS ZVVjbUU9WnMhYC0raXBma0d1ISNnNih1IyhwVUpMKzBMbVc1MjNLCnpaUjIhUDlvfkA/e3pQNFFq blFSJi04VlcwMDc3LSowZChqU2k4V0E3Vn5VdHNfMktUVSlhaEQjRzh6Kys4SD05dgp6Yk8wPGhN VUtVN3BGPURXJWlnK0JyeTJ0YjxrdT5AbHU0eSFGQ0gmQXR+WGtSKDUwT21nZGtaV2ojXjlII2ZI JWgKelhtS0JPVnQ4YVh2Umg+aVZQIyVQSWErWiRsS0JDeD9wX3pFPD9QaCs5YmxmY2x+YjRIPCh2 eG13KEojejlacUhMCnpvSVJvdyRnRV5lQ08pSFgrfFIkQ3g4KmhLcy10c2ZYVjZxVDUpblRjUGp0 RTAqVilUOG1fMjU7NDJpVmpDX1hBZQp6UjVQUUxSTV5YOWE4Z3h4QWhCTnFLd1BxVjA4NEFKYnRm QDZNNUxwdEtXP3RHOyEmenxuNSNLZXdyczRDeztocDMKejdARTwmJjc2b3NKY0NBX2g0TXBXND1P YkYwMlB3YyRNJFl4THRvZzBec0FEJkp9c1Necy1Pa08yZ1JZQD18MUI1CnpROURKaDskMEYzdztL RHA3QTtJS2ZtRmlMZ2c3OE9tJFo+XnhuU09AblUrMHdffUxOWVB+PF5DYGZsQ2tNTHZCYQp6b2Vk Q2FPSnxUfGgyNHlsQkkmZFUtMV95Q3N9UXIwVzJONVpGXn5ZUWNeOFd+M1ooNnhFalI1K3t4M14r eWtBJisKemlAZV48ZGNHVm1OVVRaeUtuQ3N6T1FTejhyOyVDNyNpNWVNdjFJWU1mdyRRQCRxSyp6 MipAeE4hanYqM3lEYzhxCnpBPkRgOXYyVF8kQk0meTI2bDIjczhFbjNgWkRKbyk3JWh9aXYpOTFk bWJAWVkmeExlamFxKGNgNHxINzhKZFhjfgp6XkJ5NlpOWihIVFA1bFg7N28yJFpqYGdGN0s/WDg3 N28+P1ZqRWhXbmBYMmhNaSMoRiFkcDtSdWEjelZAPl8qOH4KemIqQCQoeUxTPEliRDhSRlFqNnwj Pis8XnI/RWpncWp5QipiNz1ydVBUMFclaDlqNEhmPW5UZEdLcTthaUtXbFFxCno4YCNaUVF8ZntI RmglVjZacnJfPGJqQG5TUjhWZVcoJHFtYSM/My0xaChoWHBsOXVyNFEkc1pSPH5eOzxOZGk5Ugp6 dVVtT0AoMF9PIUp5MTBiQWBzQnBtRm9DNyElUWt+NmdTbFAxQ0MxU1I9clI9T3B2dEBla1lNKHl0 V09UWlooWWUKeklJRkJ3ektSXn5fKDNVTklZJX5vTzJgeTk9e1JUYl4kZk9ePG9gIzh0VEN8PnZ3 ejFJQCU4fVRAbm9sSXktVyt6Cno7bFEoNGt3a2FJM0V+Y0R6Nj01ZlVFP0ZfckV5cHImWStqQyMr d2lyRjZFWDZvI19YeEVDZ0hHWGwoP28tKnRqWQp6Yj0pKzV6RjBsJUZSfXtvV1kycXJsYiFhfVV1 JF94Nno8Sil4aTt2R0N2bkA4I2FzaCszZDZVUVhfUTgpeT8/d3wKenk5ZEVeMTdlaCNDfjlycWpv a1deISgjTzYrPCo8TWBSR0QzJkQlK0pIMzNwNWNHVX1FYlZNdTdkNnxCWm5AVUUqCnpuRnJ7Qkgq dnNWNUo9WW9UdWt5dWw1THYhSWJyRDtWV25IX3M3Q2R9THxoc1Fqc2VFP2dpQDxmSGo1eFMwYzxs dwp6SCFeVFBRNCU7THZXREVUVWxKWD1MfUQ7NnA/Pj9RWU9kYlFTP3c7aWBBP3JCS0FxfEx1N2pk UmhVPH5HVl5gbjAKeiEwWmlCRm80Jj1MTWMmRy1TJHV6YiZ4bn0lZSM9Nk44P2pUdSNPbjRIQTEy OytpPjwoalVoXzs3ZlVET1k5PjljCnpEZEwqO3Y1Z1Q0aHs/V1Q5RkZ7JmNydClYKGw0cUEma0l+ UismYWoyNW45Yk40UykxOWN7VXhOYCs9QihLa3YtUwp6SVc2YG0jT31YMHpQNTg5e3pKbG1CfFkz aUFmNDhnRWd7TyNNJmU9Xys7cDg8cW92dnViMG9Ta24/RzctOE5FIUAKenY/c24xcnJGQD5WSHEl cSs9bj11Q0R8aEI0OCY0TDhvRWVhYlh8K00jITVeXio7ZGh5bVByXjBfPWw/e2phdENxCnpSKzB3 eT55bndFP014QWVMO1I+WkIhcH0rPFZvP0YmT2h0WT49Kz9SN3lWYTc0czwjK3s1UEN3U2gkaUVj ISZuKAp6VzJ9YHthe21rcGJidzsoZmVIXmBDTlJoTiReO0ZiPksySHtoVEoxKmJjJCt2cDAjeGJ4 ZThxXlRvdXc9aUo3PFkKekZJR0xHbW9GMShxWEFeM2VUe3YyPTlKWlFjMiZRJTArYGZ0ayRzJF9v PFBwV0FgY0AlT1FWcThzKTVeanh2cV9MCnooQXZZPU9RSj9pSVc2WWxlVGRIRiZDXnpXSitqNnN7 YlRKeys9WktrMFJDN1dYUkJYWXFkIzB+dD9hUDwtVUdoZQp6JnxkNi1iblhCX3AtSzg2VSoyfXQ7 KEZaeGAhPmx2Q2V1NH5xUEdkPlVURH1jNG57JikqdjxIM24pNWBkaXp0QFQKejd2TU9ocFZsPCNr O35TIyMldzRQc0FyMGl5QF5ZPlRnUE5wUVloTmR3NX0pNXo3JGZIaXgydiRycVErQWBBQUpQCnpH YHdTPXRER1JpIXpUQ1EkOS1IZUBaQ0QpalZPZ0FwYCpyM3FRZnpRIVVKVnBPYy0odTxuVCRvN1Ir Y0o5ay1Cawp6NTJuMnR0UCRDNDxrXz1qNlJVPkdWQ0o7ZHFUUEtva1FYa0Rmb21fWTc4YnJtTGRz b05Jdm1HKk1KQT1qXygzWlQKenBoTW57N1R6WmlsVX1TclheX1BXVkcpPUQhNlA/PDBOZEs9Ryt5 aFYoTSM4QzEtQ2tMT0N5NXZEb1YpZ29iQHlxCnp7U0xwTClAaUcqb2FYZXhOLVpzaklkKU5ERG5A a2w9VTFLTzh6UVh5JjR1IzFzIy00JW94IUAmdjMkQyVpKUFRPQp6OyRMO2gpUWZlM2FTdGs3UVIj UyFCfm5VMzYlP2k9bWFRYmRMRDtYcTwxMUdrdFJ7MSpXbGxrYzlyYlMzVENUQisKem9AcD5tOFVD KDlqKGFmWW1oT3U0KXtBdlVMeU9HOU5sUD04K3hlRDVAV2FEQEVOYSQ2T3tec3teaXxmJlFTXlpL CnptWUg3YnVLKEdVZXore204Kk8+aW56Z0R0VDt0WSlMeXt0dWYzOFckc0V1N352OTVnUl41LUl9 I3dAKUUlbTVKRgp6QUJDR2pJM2pMIUd8JW5hU2FeSlF5O3s0amlwOXJNfEcySnRsUTtrMXk9fXx3 KUZGfnFtbSVxLUkmKUdEXyEjVEwKejxFX0IpPFhHNFBSIXYlJTs0U3UxYGs+OVFeZXF4eFlNMVEt ZGFsRGgpP2ctc3FQeVQyU15yLXNkYVA2PnZhT15MCno1KjRNVDtlYjU5KFRhQ3NDaGxaME9fR14/ XiVyZVRIZU4mJVpgI2Z4SERUYERuVnkoZiklOW9iaHU1MUNEOGNkewp6RTNhK0clfklfMWE7TDJq ZXVgeDFsOUdiTlh3dkB0Ql5RZUVwVDE9KFclK24xaU18JlY2bmgpTG1qfipNKCswcl4KelEkaDtF cWUpNkN1elB0N3oyNVM8Y3ZxWCk3I29geSVUIWdiTGglJG0lUmVzaGFKQWlNSUdrTTEyVFZSUzFS NWo9Cno7ckdgISQ8QXowTDFEPkledXpQWnR1V1hhSitaZFFhXmxJKll2WTRVODRSQSE0JXlaNmRq QFpmMzxBcXVZXyhnaQp6RCkyVURnMSNNVkBLSGR5XnthN2pvVG4hK3glS3kkbFdNTG9uN0RiVHVH UiQoMllJJkdheCRuYURPP15fSV5NQ3YKejImfCV0enlMM3JPc2xUSzxQZX1XRnJwSmt2QHQ0YFp3 bl9CcExhZH53alY4I3ZDZjxTWGE/OFNWPWUkKE5tKTM5CnpqVHR5UzVNeGBZY2VJezZoVHp3ek8w T1pVXj5kdm9ydlA2NExreDxeYntRJXJzeSlkMmAqdFRZMSk9fml5IzwyYAp6Y0g4aWA/YjRNQnlh fGtIaXx3Xz8+eGNkSWloK0JwVkAoM19fbTtKdlhsZGl8eSFKc1hLTFVQK3pBRjtgMiEjO20Kek9i MUI/czsjWWtQXkJ5Jj9Ae158LURiaGxKdE80e0VlUmFpYWNKJTBLU00pNSZEWFVtSDk2NUpaOFAk ZVdHV05PCnpCNDdrXmhlQ0tPdTxjZEhXK1VBa0R3QndieX5VcXFUX2xEP0NqdCg/YUg0M1AqeGZv IUE/bDs/SlAjJDYmYUo4NQp6QGIpZXRNfSMtI199JWNFeWs2Rl4pRjk2VCpgZnlmQlFwNEMyPjly QllyKiFOLXh+ejNRUms4UVM9JXkhd2oyJHYKek4xWT9rNl8lREdpMGJIR3wyeS1hbFlmTV45Tz5w ZzclZ0JETyhYd0laMjI3JnY7NXVuSUF6KDJ5RjJwRnNlblV9CnprfkYkZ2JBZFo+Pj9vRVglVFNA KFJxUHwjS050N0V6akp9bTZEbnt5Y1JmbkhUSkFfPGMzNj15YXhVVTs8WTs9RQp6T0slJko3Tyhn UW49USNLbG1GS2F6Uj42eGt9fH5JcUE2KTxHO2lNeUVCTll7SDVDXzJXX2lTPU9AJDxPWVo9aFAK ekFGMDEtJGNwMURaP29faXtJQzYtcGVHZEpUcU0xeyFMLWo/NzthWkZLMX50PDRIMDF2PjFtOyUy I3YyYDU1d3omCnp1a087VXF0dDx9MGdfJWB0I095bDJuRmMtY2I4PzFhMilMSG9ObjwycTwpNVFZ dVgqSFA7S1NsQF9EfCVpfVJDdQp6U0dWR3lPLSYyU2xNTkR8Mn5oVDV5ZXd7dVlhPSk+aDh0aEBw ejVBa3g1eThvNSgqVUZrT31AZCMzMyVsdEswZ3kKeiVaMyN3bEZHQkhnb0U5ZkIrNVdFRCZeNk8q M1RsTSNKXmB8Xjl9YmskYlcxdnUwOWw2KCRZOTJlc0hYa2gkMnVACnpRcCFiQHV5algzbmIzM0Zw Ulg8JjB1e1cmXz1KflBzYGMjfio+YmFzaV9ibnZfO3dRdjxSaShOKi09QiQrVjF2Xwp6KnJ8WWBG T3FqbmA7UTJMe2BxSDIyMl5IM3BRcDtGZUZZelRCU2l2ZnswU2ZzZ0NQQ1NeeyRWN0thNl9lNmkm VG4KeihAclojNlpxNVhmUClBSSghX0pKaz9LSFZXekZBSnF2NDdgd2hZNzRUTntqbyYoMXBtWWcp RXZTU09vZVV5JWt+CnpUQDhZTiRmI2RVMVB0bml7bjB0aD9wTE5vZzhIJUQ3NmFOfCpCP3IjZW5w PlNeYlBAPD89THh9Ri1BbEQ0bCpNagp6SzVTMUVrTEtaV2MoKyhVI2FVPHxIX14zTU1ydFh2em8o JXh8RWM9UmRHVypHUmJUKGthR0tGKz4jZWZAciEzNDIKejdfY3w+UTlFSCEkVlQmZkomMno2e1Be Kzc0VW8tZWh9cEtSKlp9bHM5Ti1XY20+bElUUSNxM2A+SjcmKD1ZTylECnp1ZF88P3lqdT8laz49 TyRoTVRXM2l3bm5RNXdFa0gtKzBPWE5ZWE5eP1pIS0UzJUV6QkpuIXZXK2g3cUUwPXZBegp6Kjto U0lgRUpEJWBFS1MhKzsyfT41QjtpT3w5T25mYmRhVC1EZXBRQCQjJUcmXmpeIyZXRTY7fUZ6eGNZ T0tKQ2YKenNmJWxXT2QwTC1Uc2E/XiMoU0pMJGBJVnx6N0FhTjJNcnU7OFZ7NyFLZFpAZS0rdzdX MCVUT2tScmNFbSpnVmVaCnpuJjtKN3tibHY1SXFRfTNGTVkzR0Raa1UqOz9xM2BPWFB8M04jO156 KGlASEI9RFUpJWNHN0dUMGo1SmBnIV89egp6NFkwUkJocHl3aEVEPU0mQVZwdFgqZi12N2dpVDg/ NF50YiVielEmfipkNU40KiNsLU1aWCt+bDtGYyVUP1NseV4KemYzQDgtRElYe2o4cztFKkE4TT98 MF85TkFRWSt2b241ZWhXWH1sY2EkKFI2YGxFO0NaQWM5WVRTdD8mUGx+cm9SCnpicllFajBEIWlC dnk4P0E1cisjMmQ7cW5UKGZMckZfNTdScWRxdCl+MktRRz8yNW5qbE5fb2RzbnJFfHdNeXY9QAp6 KCpGJV8kcSkhZkl4M0hFd1clQzduUTIzZXVSPmVfbH41KWVrejZ8O099O1ZDJEt3UlU2X3Vnb0Be Vml0OW9zKEUKelJ+WGg/RXZodTBgQ2w1biRvJVRCNWtaT0ZYRi1WckBhWk0kbjkoMkdaeGEqSmRf Mk9nS0dEYSVCTlpSaSo/a2Y3CnpfOHctKWMpUjtfcyExZzlvSkJLKmZJJit4TFklS09tKEZTKzJZ bntpaytjeWNAUlhCbypOYVdSbmVIJFc8TVZRdgp6V3EmaG9HNmF4WUMkIz5HZ0tOREp4UmdtKyZN Q1lQZHdDYXQhPj1FfWRlYEVgRXROVSUpPDhmTFlUSFJLLVMxe0cKejA4WFc+WTxrYzBZK1YkNT9r fDdyVWAxNCY4LUVOO2pvanp0dj9yZnc5ZDx7WTYzXkh5WDhIck13NWQ/fUAzTz0zCnp4Um02JXcl P251QGc1WkM4VE4jSmtvT2JJKHNLJDNMe3BLVjNRJlpSOCtaQ30zSG9RQW0lKDZzaFcjbn5aOCVs SAp6Mllodzl4PzEqUTxFWW9IQ31TdFNWYGM9dU9iTT5pVy1NTyNaVldaMlRUal5zSDNSUzAlUlIk Wko7eTU1O2NVaHkKemtFNnlTT34+PHNsVSM3XjhDfHtSP09hfHwxMFdJd0daNDFDV355NyVIRlF6 STtATWBXd2J4ck9pO0dwcl8jbnNQCnpAfUJUZnNRPytzcF9yV2VgRWdnVXtjJElWUF9MO0w8c215 QTJ6VHt1JnZOYGFGTzVmbHZSN1VXcXtRajRCVXtnbAp6KVBzZ3tKdUA+U2UlYipMWGZsODNnKDQm cExJbDA/bXBpfCVzX1BLU2pKQH5iLU18UilRaGt8TClrJnkjVDcqNlQKek59eUszJilycDVOQXVP JnZ1IVc2N01GbTUlY2YzZTJLLWJVNiF9alJTWVdpTGBgKkw3KiFBSj5CN015QWVraFVZCnpkYTQ4 KkdaSylzI3hJZiU5ckx1I1lWdip9M1MlS2xPTCU1dTdAZjlycU9UYzxWNEI/d0EzeW92dSZwSHJG ZGJtXwp6YCUqRWtvZktjV3J9PFRASypqXnRrJVcqPTtCSDs0OUZPMXAoQT4lMiRgJipvV3klZGpo ODg3dzJGbDtwP3BQLX4Kem4oVlM/ez1MdDZaSD1QMG0xSVRoO1AlSkFCJTheck0mUDt6KiUzPSRg cldxVFZWJUVAZmkjfGYzVyVfMTdsTSV7Cnp5eUArbm98JXl9R2I7JSpQfCEwbkR5V3YhU0hwMnkw e1g+PzM9Kk5yPz57dFAhWTF0aCk8WCNSMEM/VFY0b15Afgp6T01BQk9TRE1tS2RUSG8qN2V0ZGRO bVlUMlZAaEp1R1NXc1htIXRqUzhEQXRLMnNXTWhUN1JiOVY5e3coMGlNYE4KenhxRilKSykyRE1m ZyoxJGxxQERXOXpLeXMtVkh7eik7aWZzaURJIUxNZXpOd2piIUFGJnJxSDhKbEhGKEkoRGpyCnpJ aGNJNig2ODNvdyt3aFA4NmIkMDReO1p3P3F+eGBmWHlZbjJrajk/WnZmPEVsalVffEg/SWg7NURm em5CM15zPAp6NU9lfGhfSiF3Vl9ybyVLZkRJbzRZPUI0SihSMDY7LSoqJHQmZyVHUnAjWGZTRCha VmFzJnZ+dUN+KXpQWmRyRmAKejduajNNMTdERCYxUGBZWj5RQ2JNQSs+N2IjPHJqM09Abmw3WCYp d1NDSip4ZFNxakgkO2RNUlVANHoxTV8xI2VZCnpyY0N6T3otTzBBUCNIdVojXzlZMUlQUDlgIUdx PGtMKkk2VVVUZDN2Y3dfdGdGZ3JXMilWNU5STEZhX0tPWCN9aAp6dCMjX0g1WG9tPFhDMkB2UHYz WkRaJkpifiUoMHkxeSlkOXVvRVpDaiVPZ2xmYDVGJn1ub2dfM2I1OGJeaz5nOzAKek9nbVhgYEox aCkqbHxvcldZfnE0cFJiRVhgXkloYT5XalI0KHYzNF4wN0w3UWw4WWtMTjgxWDZuYk4lRkJzZCox CnpUR1pES3RUdE59O1ZwJE17JCo7eiFaU1NxNyg5Nng1dXRSaUMoRzhMRDVzJkc9elNvOzhWUUcw KGkqVTNWRHN+Rwp6bnhQJk4oU3x0PkI2eyN1KnF9WTRHQm04Yz1gaDw9KSVGJUVmNCNtd3huaFlR MmtjYHE7Km9nTnJ7S3FPOUBgQ14Kej9TSCNSSCElYzBrfkRGcUohQkFMWGB0MTU2PXV1TE89Smh1 PEloNnVxY3JKNEJ9YSVNPnUpZH4mKTJodEE/Z317CnpXIWgqMHtKNzZOMlB0bkwyQ0ZBQEtafChq eEhASU40OGhmb1B1c0R7JnEod1FPfj15P1leaDN2ZlJjZGMrNWczYQp6KmJeV1ltKjcoWW5AQXNa V159PEpIPyhjNWcrPUFqMHV8S2J0clZ3aWEofEJSSXhHVDhfKnkkR208O2dGKi0/N3MKeklIbXlw JkN4QkwqTX10YS0xQGAzbjhGNWZ7aD09SGFLUEB3Xnc1eW5nfklkT3QzJFUzQWdoWnF7TX5YLXEt Wn5qCnpwKyk2Jm0+RStBNmR3WGhpaFdVZEI/bnJmI0YwVmAxNyZJQSshTFkmU3o/cVA1UUBhS0BC fm03I3xRMkY7XzBtNwp6VCVQcj1xbCpiU3w4eTMjRmtpWk5sJks2dikjbGVRKUNWZj45a2hrIUxx bnoyMEdZbyF3JGxJP2Vqcil+T1dBdUIKemE4ck07JDVETUpuOWxKSGlpfk9GNF45JW92e1BLMWdK cGkydCZVdkswQTN2WjdHc0lRbzFTJXVzYmlhK0FZUUZtCnpxVWNFQlYyfHlNRiMxXks9XyoqR1FK MDNLSEdNQkxeK0NpV3dJO19COXtlY2VtV0o3NSN8czZZMmp3Oz9FYi07Xwp6M3lTdik0QkFaemU+ PTBfbipuc211ZighJDE5Uk58MTFOKWR3NFRYJE9lc1J4MGtJfCsjUFBnTzlUJCpCc0xYWncKekZv el9hY09heTYhYUQ5IXo2WX1DVjJDT0hxajZBSVF1Xyhwa182bk4yUTZBfT4mfnYpbEp7Py1OYyRi NHUqcDckCno+cT0oVjZRWUlBRy12T3BPK3ViYEBnU3Ned1k4dV9WWjdEMVRsZGZLTmxxV217I2lW SHB9Q180N2NobX1xUyk7Zwp6NEVKYDRAZlpaTy01WW99d1NwaXthdHhFZ0JNeyNJMDhIV3l2IXN8 PHgzLX1sLSMxbXJJSldmK1JYYWB2ZzRjdFAKekdmQ2tCUTY2RTNiTWE0Q0IpRVEoKHFiXis4fTBx dzMxK2lGR2piR0c4SyYwLWotNDkxPTNaVytNSjVxNEBNJmhBCnooQFNPI2FMI1Y1PHZndU5rbDg5 JD1+SUxIfDk0YDxCNzsqfWRBYythND9YTjU3NkVQVjdEcFAxdGlMO1g/b2ghcgp6c3NRfEh3S3xi RT1XdmVrd1pqWFEtaWpxRz12ViZ+Sj1gcGlwOF8pTzR+KjxyTnJRJnNEJSZBTkImZHo/cnt5VmgK eilGVUpRU3UwNTRfQyEtVkxGJiNjcnFsMWQzfnxZI2VTTktgIXdDOSktKGMxYWwyWi1SeztnSF5D VioxS2EqQ3R4CnoqaV9kMF59fmx3ZGF1UEpaJXwpRWN3RUV2YjtMdEI3LTNkT2VjUVMxdSR2Jn1l fSY2WUNoKDE9cyM/dHwkMClCQgp6dWp9O3toWEdGNmZPOVEqMm80KHxKd01CcENhcl8zYXEraXI8 JGVWJFpmNis0eyV0NS03bTk1MGo/bHFSQ0ZMY1AKek1LPHJyVEw7QWhaQyR7e1N+V0htPXNXdz5i ayl+NnlDMSU/SnckR3BUY1VyI2FabD1jSTZlKTUpOUM3UVF5S1l8CnorQWA0ZGdKQn14cUhuYW07 PVh0aVJSY0U+VyVifnFFNzkwWFA8eVY/VTUrc31ndz9AMlE3M0JQVGs3QGJMPmNlWAp6SClpaXQx fFVDJVFeZ0RIJHdfI3ZvPzVHUzlrNDBNVmQ0aHQzO1pNI0RiekUtRWQlUFFKemk9KlhBU2w1Ullv b30Kekg0elY8X3RSR2k1JG5KRnk2I0EtY0peRmRLJF44Kz9uZSFaRn1fd09AWl4re243aH5yZH1n bGZxJXdLRj0lT25+CnpxNG5oYSRySD9XJjd7SVRWVHQ1REg+aj9qVFVCWFRJO3V4X3tjeDx0PERF KX5HU29MJWVOI3ElTk1tUmEqeVokbgp6US14a3pWPHomUkJCLUkoI08+X2F2JD50WiNPbUlAem5i fWN0ODxAY0l1SEtrN1hEZlRKNzczKVFLKUkhMiVLZlMKek8qPFUqYyYodiFpODFpVnRkZHBHNXA7 UW9xVTVnLUMtUz5mMTsmZ2ppMyo/RDdMMiF7NT4kSipAJGdRfj5+TihPCnpIJFQ/LTN0WEpJU1Z0 dDh1MXBgX21FS3EjVkpfKlNpTi0maGNDcy13Yy17R3JxcnxkM3BOVkF5Rl56Y1FBPklwcAp6MF54 X0lOQnJ+MTRJJXUqYEQ4YVJgO3xULXE5KWArZ3lzSklDUSFSb0ctRjc5I3FNQDNNbXNyQ08/ZHVp Yk5qeXYKeituR1d6dXAkR3ArV3BfTTchck1NOFF2Q2t7bHEoUHR9WHNuczMhUWd5bTwpYE48JEI4 bkZudzsxRjJEdDArI21wCnord35AayNrbGtvWCslSHd5Vkg2QWM+MEU2PkkrKH1nfFdBNlBGPFVF TmhIaEhkKEpNPyUlI3JjRyg8ezVpeT81Swp6bElwamFzS0BtXiQoSGxKLSUkdjRCeHwrbnZsSUZy YzdyKTZHIXxmO1V4ZTF3dDRYeUwyfHlUdm0lISZ0aDl2V2IKejB7Nz5xV0xKRihhcllRMWhVckxR ZXg8Q3tCRytqXzcpbFNqPGErWV5afSppR1Y9NjY8VFJydnp7VVFgIUI/MX0wCno+Y15pbHpIeWZS a3dhVj9yLVZOdiM0aEBgZl44Oy08UT5LR0RaJUBsRldpOHVFJEt7NnIxPHFLOVdwWlYhdyZrMQp6 PHI8JlItd3kocztZKGMqemRpNkdzbnV1bHBZTjUzV2tjeCR4bm0mYHNlZk1pT2BYOWE/fiVIPndh RD9yM01gV1IKenVUPER1ZzhucH10eUV8QzZOTi0zcHxkNVFIanVUfEB4JnQydUM8U3VYfmlIcyRe UTBLO34+N24mfVoyWTQrJG1zCno/P2ZefEcqKHV1Xzs3VlgmQm4kaU1HWjNiTjZeRWBSP0dLLVUp dypaSy1rJllmIyRJOWo2KihOI0Z+LStkdnpIaAp6elc3d3NwSj5NdD5QcXVKMiQlT2I3NS1kR2Mp O056NG9waz1YQ3dOamBzSTRfUWo7PT5CI28kTj9AMkI4X3EjeCsKeno/UkFXaWE+bmhlRDU9JEIl SmQ3YCRQVjReMXpHPzdrYjRibE54JW8hdTh2PWZmK2ZqZTx2U1dYIVRtZGFGZUF3CnpscWsza2Jl JnV5ZSVXXjUpeFo7RjhYV2NXPEFabkNqSXdWfDJDfUdpK3I4ZUorLWg/WXtRVDVrPEppe3cyfUBx NAp6dSpeMVBya2tnIWI+PUY7PTxtITM+JGlpVzczJWZmc09OPUk+Y2ZXKlR0PWY1ck02Q3pxcjx9 cTBHdDYtaE49WlcKenN3TWA0d20odyhlU3VwOEd4d2tmRmRpSHA9R29RaV5fMzB8U31yJHpSciNn OHtLPXhXN1FaQCZVSFltYDhHbD9HCnoqQ31vS0FLMW5ie1NDRFM5MXwxcG51emBoMV55VXxAPHdT T051YGBwXyExaTlGYlJCUiNOflloS2teVkhnXmQhSQp6IzNlaFVoKk5MNUxLYCVpT2hISXtGWTEx RU0yK2xEaS1TX2RldHk0USVJayM9aHIhcldVUlM1MD9lcHhVKUBXYmcKemZrdF5VTTZGeVhzbkZW e3pwUSptMz87KzFsfC12WDA9eVh7PFIhViUxOWRRZXAqY0BaVHxARyQ+KzlGQXt4PzlwCnojZk9B ekN+enF1JUlzIzYmX31POzU4aStmeGVBREVQaG1lK3FeOH57UHJINXVvZjRIRShLUk02QW53K0dB LXcjagp6IUpMN0ZzeCo5T2M5WHpLPCVwdEV3MmRDMFdYVTAjIVJfdDA0MT4kSnlpfjFeU0JWaXVN bkpYdk5+JSQzOFJJYSoKendAVTU4I1UmU29BezR+YnB+c2xLTVdPSkxKNlA8O3RpUmo9WjQhcU9G STliISZyTE13ZzgjPDNPfUcxMyVTRVZpCnp7R1h6PjIjc0Y3TSlIc0xqcUFKeyF7QyNBLTdANFle OWk1QjMpV0Qpa1ZUUE49QjxkeXtsI3tiPEd2Q1hwdHNVdQp6cWFkc3ZrPnJYeUtWKV5ncShoWkgy SXxqSjBxfm8qWFdMMFNpR2E+PVh2TzBjfDlSdmFfVH1jWmpaPjs3cn1oNWQKekNES3tvJkdFZ0Je OHZ6b1dOP3BZIWp4M3BPJnBVIS07ZTNzRkJHeUw4RD9LRCtffD5lcFNSK2Irdnh2P2pGQHwrCnph R2JpOGwkSilIWiZMUHFLTjFyMHhuRCoxOyYmKnEjTExNM1BIeEhjeFdUPiQ1LXlDK3FLV1BJYSMt PktxeCM1IQp6S0V+fmRpYHJiP2F2JWlvP3N0ezRTUCUtZ0JwfnpGc3orTV5kb0A0JHleK0ImMWc/ X0xXUHBJendJWkI9Wl4yNVoKenklcEFrcEoxYUFoKyZ+LVY4SDUrbjB7T1lge0hzfiN7PU94Ykk7 JGZ4JE5faWZHUyQwXnhIYVpfK3ApdiEqKntKCno7cCkqPkEqeUQqRXw/PDVUdld2Xk1hPXpnS2c0 bDVoWGkhITNtKjZ1OTdnJUgrQkF6dTI9XzMwLX1FPkVrZDBFSQp6MDlYLTRXZW1gSmI1VD59WFpn R3xkU2w2NEhNNmc1Pm1pdiFaUHB1fHg4NXVhKXh1JnslbyV0LUtpPU1eOFQ8biMKej5UOzB6eEBG NUY4Kn19P19QK1dwczt6eHI1dV94UG1aNGl4eTFQTUFJITczI0pFVFFHcT4mbSk+Rih9RWZ1WHlS Cno/aSN2MytqQmd9X3IxUlYhU3tPa1ZKQHpqKj9hYl5TIT1LN3h1NSZLcFFsWnoyQXd5KUtDcSgk UGNScjw7R1RSJQp6K01YLT9JbDNMPTNyPlBTV19gVjtGfmhYd05WQVBqdHMtNHAyK0l7S2tqZl4l MndQZUdXT09nVC1ASyM1YkZeLXsKekEpQlIzPXVFRmY7ZHdJYmxoM3Ryejx3RW0rO2gjWmRiPD8y Q3xBWU8wY0xvdkRhSFJ4UmBTN3RyR0dqUzw1SW96CnpQRXp+aE9QfmBASkEtcD07UUhYVmdCU15W Nk97e203WDhpcVBIMGN1K2I/WGszeFlMMm9Ub35gQGNvN1o+OXkzYwp6VStCeGVfdWdudWd5N3xC Ryg1O0F2NkxCU2lhMkJzSX5OUG5uWD1Ka1B1RmQ/Pl8teClTTHB1Y3hFTiViK1N3a0EKejNNdENl M2V2OygtYmkraFR4K0p3JlJpeVljdFdOeWRMYjQtQ1p+ZWdVdyNQPzRiaHA+UldRTTZHUUBWSjxz dntzCnpncGQ0WE5ud3BHX3FQWWRCeENBWVN7cWxOb09yel9MNjUhdk12QTNjQDJtfWh0b347RzZZ Kit4cUQ+VEY7JktsRQp6QSMkaHNpPj5HZXZ7RmQ9QCp0VWUrVWFwKmVTbkh5bmBBNkJrcSplfGc5 TEJLcVNlJU5ESXZ0WXQzaDw2aispfXkKej1LRk9VRUpVMWtrdkUmXjNZb2QmRzV+bC1ISmJBWkZ5 ME9TVnEtQ18tU0Q9bUJDfUJZczRuUjs+XmBSSmZjWjwxCnpNO08jVFUob1A8K2EtS3wqJWgpcUNY d04lX3xBP2dkS3hqK1pwcU1KIzBfcCo2VDNBMT93aGtfYDxNS1NTQWIlZAp6O1o8byRreHFyUWxF fCRTRzludUZZViU8TFlwb319dmBUcD82I00hKFQ9PmUyNG1uXjQwQnxDSzZrYmRDPTF9NkQKeiN0 bzFMWm8mXjBvP0smciE1dzVYdHdOWkEhdG9IfDtBSEApcGFhPEcmVGRtIUNefDh8UFlUXyVGK1dM b2wrS1g9CnoldDlOKlowdk1RYGpreGByaTBSeTIqUWBgMz1PM1NaJXs3KjtLTWFlU2V5QnY8PSVV ZWhkd25jRTM1dzhFQDQoNwp6PTxaan1qbGdZMmE0SXB9Q0JqfGBiYT5nfUA0KShOR3g0NE9fK1RD RiN2e3o5PEsxOTlHdUdgMjFyTmROP0tiQHoKejtzfkdudk1ROWApUEE4WUMmNTwlRHY0P20tUVU5 P0htSTA1NkxsTSZkTiVqUkI8dzR0OXJGJmU9PmZKcU5qU35oCnp4Yj1JcG1ZS0BtbmpPWWVle19F OyQ2KEt8NGVZZ1kja3NKa2lpJGJlVyZuViMydDlucGtARXV+Yz12dEpeaE9kdgp6UmUyQHtUaWd+ VUI3JEYlZFlzKjcjT3JPJTU/eUI3Iz4tQz90JD1QcHApPzhJQH5tLVZMKFo/NnN0JG4wejNUZEUK elNnfldjSmh1UjlFWkBjb3IoZ2BIX0s8TmhhciFMTCZzNVImPVliLTtPanxQKUZRQlBwKzReRW5K SzJ1YHVJQWJtCnppZT43IXBZWU5Ub0VkKz9XKkhRe3hvdlMhYFFnJEt7dVNvQzJfYkNgM097fX0h PCZ1PWVBPzYyb3xgLXxvcmRtZwp6TlNPQjhUdCRaMEtNPWpkcDVHTlIhNlIpfTlSQTZWUVlCQ29o MygzJT1GMnF6VW1+SSQjRE5xY2YlPDF9Pyt0VGkKeig+UVUoNmAkJFl1PThDK24lNWcwYXVSVy1N cFVyUElkOXplX0dQQFNUVnBVUV8qd31jJUxoa350fWBjNjs+Z0QtCnokIThUMFBLfTlKVTcjPyNS dTxzazM7PnxsR0ghUTUhdUY8ciU+RHglbUl+Q3w7QVFVKiNeKDUlSldLKU0tYEVUUgp6eUw4NTEy JSRvXk4+czIxSzVRWlNZQCFHKVJfVWMqMEcwPCFBM3V0Rz9Salk+enhmRkR7SkhLezQ1UmpkM2FS fmQKeklSJDI1ZEE2TlMwJkVDTnk/Nm56ampHREAkLWpQczwhb2ZncSMqKEpsa2pNIUc/JDBNb19K alo2RTxeOWtPRW1JCno3Y1JUWEc1flV0byR1SVp5cntMeUtHZ0JSSUteTmd2MlNAYlcmLWM3eGNX SWVyQW5+dV5tbUwpQkdZPCp7dktGeQp6SFgpPkU/RlZIKU5jUl5uc3hNc21QS0VzMEYhQ2k8IW9t ZFJCejA2Wj0jWEZXWTE3cGcqYFVfeClyaDtZdCE2TGsKenYoQkVfYXwoSTVLeCt0P1c2c0JkZVZZ dXdCNntHU0pLWV5WckU7Rk9OTTdBb1ltZ1pSKnxpY1Jic156ayhiNmFPCnpAblpfO1o4SVY2RV9f aClZeDA+PWMhIUF3K1VKPGRkNCFEVilSSnB3X0RHP0tTTXAmOVMmfi18X05PJldXTnpiZQp6S1R4 bGpuX256OHElYHdNQWlLKSRGSTx7SD1EUEcqIWZgQXU9JW49LT52bUBwRGB2Sy0zQCZTVE1zY14r M2x1I1gKelI4UlZKR2FPOWs2XzFhK1J9bk5PcH5VdTlmfWIzJVlnTXElUiVFJXVqbiVZX0hkYS1V eUAkbGBGSHQlV2gqKmc4Cno7ejw4NFQ/eWNuYGIyO358QUl4K1hUeHN6YTx+aityXlVecFdsU1Y4 SmtQZSZjKCNsYGV5bXo2enJYV3dtXiNVOwp6S2V0VCl4bS1ZPCliOWl3RStOcHwoPkdYZCtkViY0 PDMjM0pCJUluYHRzRSNtYykoNkFDbkAkP0h+cVJTWnAqeDkKelg2QVlGZHpvSkFudEtmO3AtWWp+ S0hHMTVCVzFNU1oyXm1wRDs1UjUpc0xVU19FUWlRYEZ5JEQqWmJuKCtYV0B0CnpKIWN3R012PChI VDdeej0hVUFGO3FnQ2UlOXdxOHVPS21ZbDZvSV42S0t5b3g5Sk1nP211Pi1vck1la3gwYXF1ZAp6 clE1VUZMNlY4cWhmbjhydjwqeyl6M0x4NW4qUFBwVHtDR1IjVDZNdG1EKzI0Z3lqXmROXlRUc0w9 TEklTX1TcV4Keil6JSElK1liKENIbkEwSV5RVjBWRGQ4blBgeipabDBPTmJhWlAtTj5OJnEyUjha KFZhOV9XPEhXPklHaHhvZG58CnpZXzVkQlNAZFpOdVlKMVNgZ2NRX1U3dD4yRGJWWS1KR29IMndm O0FzYEZ8cXt7R1VFQjFlezQ/Kyp+aGMtamx2Iwp6ZSFzVXo7KWlAVG5OX19uN3g2Z0UjMFFXMkNs KD1GRTM7OVdgYjleXlRsZWo5VnA8X1o+MkxXWHdRQHkzUTt1aUUKemc3MCZjLWxSeyYlZSRndmVi WTVDX0cmdnVuY1NxbjBrTzQzaztPPFYpPnEwPmQmI2omV0FrYGU3cmxAaDBsK1FmCnpWRClsOHpX e1c2VVYxKjJYTTV5PHY0TkRJYVQ+YilBUTxOX25TeFkkQmoyTFlWKE4mWmlhKn5zUTN3UlpXIW9G SQp6eUtqO20kO0A5VWlSTipfcyQpQU9YMkVXcWFFXlY7NlAhSD5Rcyo9aFVRZVVRS3IlX1kzKmpg KCU4PExDV0RsNnwKekdNKl5XT0Jfanh7QTZSUDFTMmN8JW05cylKK2FaMCt+dzxaZVI3I2c9R0Vi Zj9TWk9GWTljTj9Cak1BRUp0NktuCnpJanIyUitvSW9iXkREMT5fLXhZLTtsaD0wVV9ELSZxJjRE UHFrdTxOd0ktWCtfYC1vK0ZLc3FndnEmZkJJQ3ZqTgp6UyV5TVZoT087cSt2c1Yxcnp3ZXEjOCkj bVUqaSNSWl5JT3U3QDFGVFpJVCF8aWspbjNaYCNFSmhaJGxqZUFBZT0KelErTTFFP1hXVG51KWsq bmNuc19fOF9fMF9oU05uIThCKTVuU2d8amU/I1N5WjVzeG4jKzhmbDhpamNCfl9URHRzCnojJlow UEc4c2RHTUVEb2hNTSV9VDh2TjxgYXxAUlF2b2gpYyZsQGdJKFUodW8/N0BefTx0V3o8LWc4aCNx emY/dwp6eG8xRitodjA4TVdFNFAzNH1OWEVfTislSSNpJTlWbWo4fE9fJT5GfVBWZCRyNEpmcCVV WGZjckIxPmtDYSFxam4Kei1lSWxudUZheVc+YCR+ellZQzFDcUl1XiRPIXdFSWJifURnOFRgM0Q2 UGNKVzdYY0JUbEdIIytBe1lwJSRkail6CnpQUC1VNGFfRk1hSHpAVzYzVnooWWIpeWg0V0ZxUGc5 OEh0RjhpNG9MR2A/TzIoZyRnU3JQXmBqemhOa0g0d092JAp6VVM1dkoxRkYwMHo/S0hMUyYoeXlf Pz1qP2AjciNHQDJkPzVBXms/fmZ0Vi1yKWR3ezIlJSptITBqaXs/cV93aHMKekx2PmcwLSZ1dyVg M2U5PiYzTC0xd20kezMtT3F2WDRJZHd6Nl4hcjlhXyZZLXUqLXdYOFQlcWJsNThDJERvU0hyCnpG QmVqbz1NflZEYGVtTEtIaCF9T3ctZzVTXlRiUGZZZm1oTDdmVStlMDBLZ19kbWpMQ2k4e3JoWStz QGwqJCp0Kgp6a0dxa0NMPXBeTzxwaXZsNFlJQlQ3T0A1dSRNXld9OUliZEs7KWpvaTgkcnA9VytP Q01ebURweWBQOyFRcXlXd2sKel90dSt0OXlzU2chQ0p1MVhYcmtSQX1OPX0yPitCT0lQa2F+VU4r KyFkVF8ma1FgKnoxQW1QcUNJRD8pO215aG1OCnpUcjhWckh5eVhFPXtqYHwoOz5YQUk4PWZrdX5Y aDJ1VGZhfGM9Tlh9SWVuOT40TjVsY2g7PShFRXYka3hrTUZeQgp6NjB9fWJxX1NGYEApfmhPeSYo UClMYkg9fGA2UilhVClMQiRVX2RFYEFnLSNtS2ZXem1LTEp4dSpJViEjOGQjOEIKemFnaGVtaiVz Nmw4SDRNcGM9d2ZfMGErQl5Qfj5nfGQzUm5qa3UhY1pISSVHQj5+XktzbDtaN0w2WG1jbU4xYmZg CnpIKztOTTkyQShZO089ITdeV2V4MFp+TDgqX0ZGbX41ZWlDPjVgNHZiWVRLcXFgU29NQnI1aWg0 LXRlOzxjSkhhSAp6c0xoMFVNUE1AVCpPKUo5P19EQHdmP0lDMipWPihSPVNyd1JYRkVxN3dDfks8 MTRvJWomdSpKXzRRcz5TWiM5RzMKemdTTyFpUmlwSXh5c1MpUTF0aUBVMTBAfDtpSGVQIW5Tc1pK Tz9LfC1eXnFJZiFNSkVwWVglJFZLKENnaGZNRjV6CnoxOE9vPnN1MisqKCk2Pjk5NGU1fmRBeHQo bHBNRXlKT0xJPVM4clchekJ3dCZaSlpQUnMkNFZUbjJSY317QXJ6Ygp6eHAlQH5zdClvUyRzMzJJ VH1kfnZQS1pFOHV5OFkkQlIlT1l2PTA8cVVjP1d2M0xCO0t0KV45WntXPSVSeWZfWjkKejcxXn1K SUcoOUBwT0U8dE9BeUlEKENoK2lSJiFBQnI0NEIjYCRZNHdYKGZXI050RFAxMVFac3hSYVokMzRm UTY2CnptaTgqZHs9cD4qNWY5OzVIYDghP19MV3JldVROLXRvcD5NNGB1T3JwNGdDIz57aElJNjxh aUtsRWBWd2gjK29KWQp6Uld6VCszRTRIR3xNJTtuKCUzKUtxQyNzIUw1VG1jTTNqTGdhPCFgK14/ TWxzeEc0S2FVP3UoVVpUfW1QenROQDQKenxJTHY5RXQlaXRsSzxUdHt5KEB8bEl5dS04aHhldDlT OGtJOXBlfUEtN1ZaTDkxdVlafEM+dG9fYWl3M0t9U2E/CnpEbUl6OVpoWDl8bX5Ca19JbEI2S19h QTdUZGRNN2dZLX4qNCtNdm53VWBtWHVia3RERkNGIyRkUSY7U1AxLVZuKAp6VHpXYyE3UkdxSD04 Jm9DQDlwZVkkbjF9WmhKSCpWQkJJUmZBTkNxYVZDbUVaYHNib2ojfVNRNXRnTmhKdGRgPVYKekcm QFhAeyotcnk7IXpMemVwTVVHNCp1aUckQjRQdSllansjfEVYeUpGRDF0VkpLMkVlPjZHaUFQYz9n bEBFVD9JCnowY0ZBOGFyPmBGLXZMRzdYTU5ZfnpBTngmVzJ9N211bytnMUwwKnBiPWgpM1kjRWF+ eHxNIUhgWmRYbmd7RDBtQAp6P3B2JXRldG88SyVTdVpWMTl+ezA3YFBZXkFqPHF4Jmo3Qj5BWGZB JjxhazVEcjg9MjhPP3BiaDdCTXtXcEo3WWcKemREY3hUWCE/MHxlTGRnVkYwa1U2aXZjYyhANlZN dnkrVzk3QDtKQjA3cE0zQzRHOD1fMzxlUlJYSUd+P1MhSEVrCnpDZmJUIV94UnJZeGc8TnBhPV9W dT5oJCNWaXYmJk9Ha0VpVmVFbmkrYSp5QENqSlozcENtXzE4dCQpYCNASn5JeQp6QDl5MzB3SWRk SXZWSS1Ke08yTSNzVWkqWnY/aUgrcFpAc187QT1+WGw4SlJnbVd6UXB6d1Z6RyUjPlBGV2FrQkEK elU7Y1REKz9QY0g3PDZkZTc+TkdRU3YhSTk5MistNWNHVFo9KUwpRUxDPFJjbGdYdnBmI3s0cnI5 fXdUKmJtSSQkCnpATipPVz1Oa3pxQjghd1dfOS1SUyojNjktNH5VKSFJX2RYJEVNTW9SaEpOTzdE RXtaJWx8dGQ8PGQkI1J7I2RzYgp6SjhzaUdnejM4Yl5VOXV9P2hadXo9YU9Xend0Y3kocy1oQ1ZL PyZOI0FkJTwpa3pZOGBBaD16Kz9laGxoUSN8P2YKellRPFFxe3N6U08mIU03UHdBaEF0O1ZKQ3Yh JUBZYWRVbWAyJlEqZ1QoR3h9Y1BSZyZBZXVLUmVHUzVhNyYzSEdYCnp8OXNgfCZzd0x5PGZgUm5e aHNyXkR1MGNFWTh8U2BlSyZOJDRFLXwlMns8M19raGAjMVlFJWNLZlFjZnp4RkQ0SAp6I0p7X1Ay Ki16SGRVLXY9WF5OKG9MJnhZbG1ZejRJTlN0Um49VzFLbWJMR2cyVzhOPHwmSXgybjczRTlydU5G TDgKemw0NjZfNShQYlp6ajtLQ29TMnV0VnQ3UlgzdDV4c0V0eGJldG5CaHlXSHM1NmxeYDcwSzBm fUt2P0B9PlFveVJPCnojWTxZVXVJLT4lYkJZNyRGZlV0PHRod3J8RGZjI1A8UDskUl5BYE5ANnpO Q3g3eHZfWGk2YCp3QVRLa0E0TUk8MAp6ZGMzTjctdClBISY4SSZ+N05Jcm5VU3RySDlfezRBQjE4 WEkrYG19a0omOD1xJkJ1QDtMbEZAV3dfOXtvWk9gUXYKeiRgMT5rWTBkKGk9MCZBT2NicCFlUk5i dDVpK19JbzRzMG8rSXFQaiQlaEY7MXRLY2peeDM/NkNRJXZWJWUwUz8jCnokZnI8b009YCZ1N2oq PnQxaU9Ia2owYlR0OT5DSGA2P2hpbXtXQVBYSiliKTgwfW8pN3FfRTRxM3Boe30qR2NIWQp6MkBA Qz5FU1QtM3VtTSo+dChzM1VucSNxYHI7dExEPXB6X34pZ153bHJ2ZVl6UmBjPWIpM2ZBTCpvWSFH UT1uKH0Keil1cCROTFhDVCRhdHRPPjN1YjJye0J6PGxnbGJDI2s7aXIjcFg+M3VJQ3xnMitIIWlq SUhVQUdHPlR0S2lAWEVYCnpZQnBzQlM5fisxdHMjYGsxMzhXSjNKdm5mQCNvPjZnX2pDQFQ4aV5z QXBMQ0A2RG5xYHErKEZCUjJnaHw+QkZDaQp6b3l2JilkNilSKXc3RkckM2goalklUmVqVDBjc35U d2w+UEZVR2h8NDxVU0x9Y0VGWVNzWWplRilidyZ3U0MtYkkKenRKMH1rNjJ+Q1pUbW9YK0dwcDFx PjlGOzBnN0QwWWQtOUR4eDBkdlZleGgtfDc3Kyg+ZTQkOD11QXdCOzYpd0wqCnpNNFh0KFEtVDRC eHQ9WCNDS1hMLUtVTEtOLVp5RHpOKT1aS25yX2BQTlNkeWQrXjw1aVdmQ2c2c2x0QVlxN1B4UAp6 Um9lTEw/b19JVnFNSFFzPmBPal5Ja1V9dmtuTDBZRGMlLU8pfG43PjwwUF5SSElHfGg4aE5ka2RF ZUYqTW0wKl4KemtOdFpJSXE0JDIrfkRgd2JfNlQxRWZVKnNHQ1YoSV94cWAyQT83KX0/JHtVfGc3 U21EQjBCdzw0WlU9eyp+VSRNCnpNJHElYVVRVWg0N18rTSZ5cTZHdWZkO3duYVErNns3MjdlSFpm WVQ2PERuTFBGRDd0ZT1wdyhXcCg+NERPe19xXwp6SyZgeVdCbWlJfVR6VjVRVktubkc5Jjh8Q3oz dlI/eThlMjd2UEh3XnVGSm5wKDNTdDIrWFU8PVVxQUhRVl88fS0KelJodCkjamdSd0xWI2xQa2Bo VTZ7YDZnbXIke25GUTJNdm1TY2RESnpiOFV+Vm13YWZfcXRpU2RSMnYmY3c7MDlMCnpkK0dldV5R WGtvdUZqbDZ1IW9aKUs4SEc1N0AyITFjJDhiRyFhS3ZJWm55eFFGTHwmfGIlIzhwLVpeQD4xMzZ6 Zgp6Q2JuRVNRe2xWSSVNb1BiNF9aWUcoSGZSS3dkZkRsM2FMT1c/KHYzVzwyJjVGREohMjgjS2dS TnZIOD0jU15kSzwKeih2QGdrcFZ7OGx5KiFLX09pbXd0TU1mMHBSS0pkUip0KGArMntTJFhBazZN JD1oSHVTVHEmVUZpPnFfZV9SZ1Z5CnpFQCNkNmU5fXp3QG5PZjFMd1EhRlVofmJpZX4tZz1SRXx0 PzVtcCo2Uy1mXnkoU0NiYzAqO0UrP0VZRVB1SSpFSAp6YCp6dEpZKzl9UXktWj1sZFUwWGhkYlA2 ISRKZUArOGBoSUo2YVVaPHRRQV9QSkh7Uy08VTd3JCl7PjJ8MzFEfFEKejhMR0NYP3l4QXhFc1Mj MklBVWFDOGlMeE1MfHQ3eUtCbyp7RTh5dTQ7MU9iQ0VuMS1iNXpaOUwtPFh5V0VmN2pSCnpKNUx0 b0Z1PGlPWE1hd353PkZoMHc8OXJ4TkVJa1E1fTM5cFBAfklydj9Pc1E2V2pLYTBHPDd8b3wlK2s3 MCQkKgp6T0x0TE8rMzhTPHh2Y2VvdnsxO1ZrSWxfJUlJejVfYVU/I2RVdlBKX20raGFxQ1hldHst ZFRSR3hGbykpcn5vU0cKejVvWF59JTIoUFdaKzEqcWVwfWtMTTMoXmxnN3VGNVA3dClwPkdrUk89 QnlwZXhIZjRDVUpja2BjUlJrbFYjNHM9CnpiPXBMcFpAfXk2MjB1YyZMZDZ4JlktODRNZH5LKihy U1VkbWl6PkRYTCMrZlk0SlBoZE5VV3FMUVcjUX1hMEpuZAp6SXpCRzRJYks8I243NGZkcnd1N1JX dVd4KU5SdDdsZmNXY0xadWE1PjlCIWJePG52VmNybztsbFU1PnV1Z3VifVMKel5zNG4tQmRIX3xZ UnNVNHo4U0gpTG8rfmAofmwqO3N9QkhZd28hbTFqWjRlZFFhNSVIUjt9bUhwWDxNNns1MUJPCnpQ dlpDZlElYTBvJTIjQiMhUTFDLVNCbjF6KTQhcl9OLUR3cHNsWl5PZkY7cFpGSmNpXyR6VFojdEE/ N0dhZEQoQwp6TFcyek1xUW9QVm5hajNGNnJTe1k2JnYtO1Y3VXJ9bTtZcDklVE9gTEg5ajVFJXdf SWZjIUZyJjllbWFjSj9fd34KenhoI1hmJHFIRGJWbjZJSCp2VkEyampOeFQkclV6VEtKd2dvWEdk NHs9NXtXNCotcVlzZGdTSk49d3Z7KWxSbUZtCnpfNVI9c3Q2bjktYzQoKjQyJT9tPThFVk1PPS0+ TXRLZ3Erc3M8Iy1PYk1KIVI8UGdnV3hLNXA1bzIoXi1ZfH1ydAp6UkR0TFU5YT5AKXIzcX4tSl9o Jj1vU1Jya15udFpuUUh+JDV6MH5FKDFLendRVkYrR1ZGWTRsYXVnfX0/ZSZYWXIKelBMbEF5b0Fl fmprYjR0KGVyWTlvcilack9kcEx+K1YhMGlkYDBKS3hHazdSI09HY1lKSHxfRldEaGUmI1kkTnA8 Cnp3KGliUzY3fFghe3lGUkpfSUxxZ3hfbTh2b0xqY1ZgX14+Iz4meUJoNHhZLUJCLTIyOD4zX2x1 WT89PzM2R150Nwp6X0ZHPiZ4bmBBbGJTXlh9OzJyaXgpbEQ0fWZvQz4hPDV5eGxKYTZKSGhoKE4h eDZGO1N4OENxK0FBU0hhPUElRzEKektGQFpUTEEka1pSVkJoeyZBI01AdUttYXROYWsjVHduX1V0 UyhyLV4lXzhhPDclKTVEVS05dFdIeSlULXc9SWFnCnp6UD1eOVFNdWJgWD1iSlJncTVRPGcqTHo+ fE5CfitEVWt2Jms0VUNgUCttUF5Td3tNanRzSEdGWj58UDFTLVcodwp6Q1h4MS14KDx9Y1dGeT5U ITM7SjQrbDI0UzZoaFp4b3pvanx2VyNyMVBaJnBKbiVeZiZAKjI2PjdVViVFZDk9aSsKem9Qc1l0 KnRuSHoxcXQpWm1kR3tQQjxxI3Qkdjw5Uz47QWZvYUx5en5BSUVCeSt4cWtrVXU5KUMheCElK0xt WUZZCnpUWkl4MjZ0MD1Mcyt1N2h7bno/SzI/QHtadUNeXi02QUFMWFA3ajt8TD5CT1ZqPWB2Xm9y eVlQMHlKdXBlfTUpOAp6QkhMb1NeK0tjMCF1dytrbyYjfkIhamNsI1VTb2oxLUZVVEtwcilGSjdS Vm82UV8ydHB1d1RFPnJNd3E2ZTd9VkIKemlAX2RVQl5WUXdeNityb0xacldhPjU3QDg4MzBpQ1Fx Nzc7cWJfPXN5KHRGO2szKEB6Y2leeVVFeUIyX1FwPSZUCnpiTmNSQmQ3O3g9MmM0eyYlZWY1RzEt dTtDKnZuZ3BnaHExM2UlZ35fYWJJMUdOc1M0NFVzOUItK2FVR1RYQCE7LQp6U1UmZ0tlOWtSUEBQ cnFpdEZCfnw0NWc2Wjh6cUMwQT5qK2tGU2VoYnNLe20lbWdHYkFuel5NJjF3RkR1S2BOQU0KemBS fVclVnpEakFyM3BZVXduVzIqU1opQWUhYGl2ZTlrRilMRjN4JjRVYDlydkVQTldIaSMhO3w1VTNi VWttNGhLCnpjaVBeZkZPMXRBLWg1RkV7O1I3MERAM05GeyFvVzZQYU1rSDBgU1JBO2w5ejN7a2J8 OE9teU95SGx5MlpFcHx2Ugp6WlhJQm1GXkB0S2FyezZOQUhOUEwqPWhpNjdPY3ctdk85N0QhfW49 Vkt4YEB0Wld8PFkyZT1CJWV0YWBgWSs1VVcKeiVncVBkNXZ4P1k4YEJgSE1TI1VWJSUkTmhFOHth K0lFKllPdiY9RnlLJkJFQ0pjalZLO0ZlaHBtaDk1T05BSzZBCnpAXzJsPyMja2F0KENZfXE9bC0z KkdgKlI4TWRscmQrNCtUMDBVQWohTDRIQE1WciZ+bFErKkVePnM1bTFNckRUUwp6d3kjR3w2MDM2 RDQocUxRLUJOK05YPE5TYU5RdV4kQjtqfVVObHMkfllad31BX2Y2SU0jZGxYdWVEYERWP0JHPiQK em9vYTljJWQyO20kKz1iNWBlVVRJOHJ1YXN7MVojZCVrNjs0aW5kfG1lSWRaViNwPTsmYXJoV1kl cm9HZVN6RHtrCno/QjhPKTZrREtLTX51VDBIY3c0NXQ1Xk5jSSElVD9TWFhpYyRRQ0p5PmRPM0Up SHkjNT83USQtJj5nTUQjMDFxJAp6N2FIOWgwS1Aqbkt4bS1AK0pFRz4lRFZ6T2xVfjNSanU4VFpU PWgtfjdaYkp2eWVGMjBTNFBRP2txZkFCVmQ/M1YKeikxX2QpKXMyaz9Qa043YVY/eXlkITA+SW1C TGg5LVNPXlhkbERxYGNEdUolMkRfe0FZXlA/LV5kd1Y3dEhSTjsoCnohYytQVC0peEolbCtocnVI QG10ezdlPV5qO2kqMnBaej5pfnNXU30reT54RWJXV1RBJE5IaWRubWVSKHorIyFZeAp6UzNpJDt5 P2R6eV9JIUlNVWJwdX0lZHtfNXQ/cmBGV1VWa2RKZHl6ND54Skc2aSNaTmpPSDFkYSVQO0tsKkFY UT4Kekp8TzIoJnkocEYpQXU+OXkocl5oR0k9OD9RV2VhfTIyWFBud3dZJClVVWluaFkoQ3FZe09I WXM+aEgjZzJgWDteCnohak1yVEhsTnJJJT0+YWlMRE96KlMxUiYxa21ibzwoNyN6N19KPTZzMEpQ dTxFYnFmZG1qa1kpVDFITDw2WFdiMgp6WEkzPmchNTA4U2llPlMzLX1SfX1DanhyST5INVo/QD9W bWhvNU1objcqPys+Zyh4Vkw/dzIrV2pXUn1wTmtSZyEKemY0VkpGezNkTWh3bSlHRjk+LSNeejNu Y3FiQE5NMmIkTDFIIX01Y35IMz8ramA0ajtPMk5Ud2NDM3lJTyhHaFR6Cno+amp3VVVTZlBGYiZa WXMtaGY9Nz1mbEhDcmhyeCE0bH13TihjdV50IyFUZ3xFQE5OaSQ2YX1aLTxsRm8yY0p2Vwp6Ykxm M1l3Vkc5K151Xj95aCZHflJpYj12OXpkbWJMbHRfPzU8Kl4yLTJSbExJckVnI0RKX1NTblhqMz5w RFR3PkIKenV+R1VoMjRuMV9iMFdIZTZScmwxbDhlQVRCU1lIQnlIa3cxeXwjX3t2QGF6aillJWdL eTNBfHwhMGJlMlpDRnlkCnp7SH0jTEl0ak9sO3dXeDFrfWtOa2BTPkQoRF9fNGwhWjlMUTZ+ZXt7 Y1REeHQ0Ym93PnBgTm9ONiFkblViM1BZPgp6N2pkKUAjUn4yMSslcCo2IUoreWZoa294aSR0PVF1 XllfbkV0dWdIak8mJFZXZ19WX0ttb3pqcU47ZD44N1hqK3sKelhgRkFBSn1uXn5HbE90Qj0kJXpJ ZV9GOUYrNm5EbVplflF0NTJnc00wZXZndDQhak9MOzghfih1KzhDJndlfHg7CnpgcktvbkFybG5u ITIkeTtUdVApPD5LcCh5VW9VZ2IrJWhpQSFsMiEtKGtgdTR7Xz9OYE9UY3BGN3M7TmU7NCE1KAp6 SS1wZHYmcS18dE81MThHRG5DYThGXkZrQHdXVWQyWXtOT3podEJMaExZOHZoQXtOMWkjPV9pP3BG fUcoZG9gWGcKej5AbG9KVzJ5JTFRZTNXdGtjSFRnaEg1YFA0PWVYJD1SS1dpZiUkZV9zLSp8WT1r TTRwXkQwZDJjKDwtUmorMEZiCnotfCZsb3R+ZHBPZ3YoMX1QUGJTTkpnZUsxY31kd3pZakMldG9R aGFSUzhpZVZVSVNMczx4T2ZWd2ZuKzRPK3sqRgp6V0dZT0ZQU1pwc0loRzA9N05oKTI5cUR4bkFS OXEtSTZqTitZRH1CZ2BUZlZ4V0h3Y3NgcFgqbFlAJShId31yR3oKemk+OWFKOE9zKGtHMGs2PE9h TFIyZEVpSjdpbkZtRUFtT3J6UUlHKWprfCpgVk44SX1VQkMjPEJkSkBgX044QVJnCnpKWUs+U0pR UXY3I2ohZm8lP1Q4eCt2aWRSZXpnYH1EeTsyZlBWKkBCbl5LekgwOzV8anQreWUlYDFXand1dHxW Sgp6YFE7MGhPZk8ocU4lYyM+UkgkRjRNKFZjdXZ+RCNAMGtNfkhyVmVtWFRtJHJNdUExVk9sTndg QiQkfkwyO1A3TDgKeiVVayNKbTsjb0l7M05lI1pNV3J5QUd8UGYjTUQ3diRSVTlibHRCblIpOTQl X1BtTSs7ZFZicEBWMClALTkqdFRuCnpSPkQ5NUtoSGUhUmxRKU42Zn1qPSpeUTdmbGtlJiM5JTBe Yz5PJSpPa1ZtY1NRd2d6STZXUDJtMyRwRWJ6ZT10Jgp6bEI1QytmZCstUlAte1YjbF9KQmM4SmVj MSEmakg8TGBLa3F0Ji00JUNXVSFjSlFoNCs9QndXVVd+QVVseT9fcXkKej0zaCNwK2E7WnIyJSlw RGRVcFprJlZVQjhVajJ2NDg1YFlmNTwxY3xnKk5UeXBFekk/bmtUOUIlVnFZRk9AUHpqCnpZTlNN VnVrKW5BMjV5dGtgUF52RmlZUXVQdW5OPUNfTz1EJj1IaDY3XyQ5I2p2fGwxYFF1PjVSdks8RW5L aCY/Ygp6aWt9MEgqaVUrUmhWYGNCMHVWd3VwcnRYQzZ0fXpGZTg5NndkfGA9bT9FPH5PSFYpSWp7 U2dTVXRQXzRBWkxtMTwKej1DV1Racn14WH44SjJyJElyQFU5UU1UYzZzXllORnI+dUU2IzNNfFlS QXpNUGE5VytLcD98aHUmSnluNnBpd3VyCnp3d2h3JCtvIWU4dENMaXFhUHFVdGtXNWNxQzZYMWVS RTVyeHk7b1o3KHgpZnorMk5mb1B7ejhuUXBqP0crNDdHcQp6enAoWC1fXy1tanFIMFdXcUNTKUFZ Z3p5Pio2bjEteWtaM0pJLX11KEdOaUV3S0NEeCk1NXpzKntuVUQ3WXlZQUUKejJ1UFRZXnRjI0Yq d3RBXnlRdW9qb14/ckhYVmFLQ1hWfVpzRkcwQTFNaWhkWnNlYjkjY1BhJCVVeEgzNT19QH5JCnp1 ZD5XMTBxfjU3STl9TEtwNWBOcnp0cHklKXdDeEdPVVJKNERLSFZDIWojSTNyQldWanZ9RmE+cnEj SC13OT5teAp6ODQoQUNma2JYPWh3SH4+bH1+b2FHMUlpfl5fUEdGNnhTKn47Nz1MTE56XnwtcG4p SFkycjxwUksqJWE+KDdrcWUKejlwdlpPYCpWO2lNIzd5eUs5Mj9HeDtIZ1hRdiVJbGJ2YCFIYm9M QzVofDRxYldQQTElPjRtOVo8SDszMnBYZEU+CnphWV9XVkIkbXxPNERsTWYjKT10UXA8SilFQDNT a2xIRDNeVHYpeVIyPGA/WCkjU0BvV1dUO2o4Tnw7ak55T1BnNQp6a19YQj5BIVdBSipQIzJlbil9 JTZ7UlNnakxXNHhETm1ZVip1SjM7ez9IKWVzN0RjRSYyfXVMe0VDT3Z+JGZ1QSQKemR3QnBCbWQo VTMzbXcrayZTJCphZlIySSZgXzAhamIqSSZPa2lENUlffFhydGg3TnxEV1MwYkVxaTtlaip3O3cq Cnpeb1lUVWR9OXYtMjlvLT5jJiZlRmtZUnZAREU7eHFwZXcjQ2glJW5ySSRAVVRHc0tqPmgqd2xD bFApZ0o9fWl6Mwp6OGZ7X3ArcV9FbSsxWmlfMn5mbytYdChuKnY+VUhSNVZzMDllSTlCfClWTTlp X1pxS3A4Ryt2S1IyND1KMmF8TEwKentZPmkkZkc7T2whJXNwJkdBck0/eH4qKDt0aUl5X1Q2eHwo NzdGbHw+enQhM29Ke0dsPnRjbjgmY2NTWE8hKFlXCnpsZW9gfjtKeFdJP3UzditMQXdEY3IwcSZS I34zK0l1cmpoNGVIU1hgKjBmcSZAa01MJFFmR0BOKG43OTU/Q3lNXgp6VlJnWXstPVBiQEdNRThw JHJAN0NLfVB+b29gP1N4U2k4M0syV0E7KktUST1RaXVkRFhjbW5Bc1ZYSXI7Zlg5fTIKek84c2h2 cnU4ejBJaXx2bXp+akxZK2N3OWJwISRGaS1UTlRLdiVBfWlBMGpSdXNETVNGRVo8NyNlVC1eN29q cldECnpodXdaekdNKXxtNSNYKGw+bVlvd0lUayE0Wihwa1c0QXtKdXstdEpENz9HOFQ0eyNxc1JR T0pwV2NTZ2Q1QFkwMAp6bl4rc2stVkFCJk5TMyQmZDJNRGt7dzw9eWxCJEhsPkwmdGA1bjhlKypk VmBROU1pM1N3IXpUe01ZMXNvR0gjTl8Kenl3MTN3VGtvdzJrKyR4ZnZqWX45MXxRIyhpQ2JUZW9D OCpvJUtAITx6Zj41dkVwK0dMejJic3kmOHN1Z0RSbTFjCnpXcEVWPnBUZkNrezc4VylPVXNfejx4 WWVMWT9tcyM4JHduYio8ZkBuYEYlNnZvZ0c+fDdpTn5WWEQleyNkIVl9agp6Y0NFP0RYOXsqeHlP eFBEWDR7dFlwZU13ME0oI1V1TnY2cXJUSkkwclQzfHRSLXUtd0RkdUpqcm95RUkyYlVwOSMKelEp YjxwcGlufTdRRig+blhsQygkKWRpZjArfH49VWpHODQtRlNfdG9gR1pTdFc2U0ckRyhwUkY/I3U2 IWckYn0+Cno0ZXZqKCNqdlpCN1VVUDB0Xzg+MTVEfXNnJE43e3xLanw3d2Q1UGt0alJUZ0dCcld1 fWRwfCtHaWo0N202KkskNwp6T0ZMX2pMWWZFJEBMMUstRiQ4Rj15XzhvP0w+OXtORUZtcFRLZ189 IXdlQip4OWhPfT5FUiZfZ1FqTmoyYSF6UzgKel51JkRJWFFlZipOP2ZxPTdxU0RUQTgocU4qWE9a b1hLMSErX29ra3JwUlMwYXJwUjIzV1h0bjs0VGBiNXdXfG44Cno+QzwyfVVGS084PDtPbUNDIX49 OVk7MkA0aFhNXklkKCRDMV5LdSlgU0tTRnxmUHZWRG15YU94Kj9hSlQ0YW9qcwp6KEQ+ZjxDS2Fp cGRYWk8kTD92MUN6OTdUP2FRYGhFVGh8O149S2JEUDdgIUtrQHBLKiptZD1YIW5xKmlEcig9VyEK emA8dX05ZCQ7QURvVmsqP2o8PGJ3JXJwSEg1Qm49bmVAQnwjdklyYE9zYjxxajdRdGVUUEpZRz9e c2BNZVNWVG9XCno+eWh8WHFXSmh5TW9oayorU0UmPlQwPUBtNGc2IzVzNXtpNDx5XjhyPXxraXxu SV9TXmF6VmtzRGdCSTtKfUQwcwp6WTFkZjQxcGp2ckZ2b3hOa0xBNlkpezdOOGImfSlWYldRZ0wl aS10dnJ7UitGbTEtey1sJlM3fXkyZF8jPSh2aTAKejwtT2NZKTdGdV9iTHhNVFZlM08xa3BLUXsr JCkkalolenY8JnVaY2tiNH1tOT0lKzJ4dTkwLWxBMV9vcl40NkRoCnplfkw3UUw3O3BNNmkxZHpu O0NEVnVmYVRlb1c2ZXQ3ciR5eWxfPHU9Vk8zKyNTPzZzIypVamw7UC1lK1ktPmspcAp6MllNI0xV SmJ5cDEwfEFhUDRLeW1zdUBfUF8jZTl3bVg9cXpebFAjXkhRK35sUiY2byMocTUmTXV3UmlvZEJg e0oKemhVRD89ZGZVVzJ5c2Ytczt2byU9UHhzKChnZXVLRVckO15MWE1jRm0yOURDYyhYSjgkUmRL cllMOFYkMV9QKntyCnpmPCooZkorJFImQU1vVF5Yd2twTDJ4RyhXRVJ+T255amI+Kk9RbUZpaWo4 JW80Jlo0P189S1UlMSEzfkc9PlMoNAp6PVZoR2dXOF95Qlc2d1hedX0hMjM9NjdgemVnUWpvMVRK Z21UP15seXEpTl91RT1OZipgQT1CNjt8WEIhSEtoLSQKekokUUVUSFV5MFpAM1ZlWnJZWFplSTNl fHJHZkhLXl9ZcnM5cTUzeHJqayhqS0lmLTFqdFdFSk1HZiZPQD5yYXdoCnpFQGoyaz5DejFMLUpT Y35NYHUqYTFwZnNIWHJHeEd0eXhTeV5UV15Oe19ZPkJ8Sz0yJUtQZzRWb1J8aSFWQ3lsXwp6JmZW VjlvQUtha0l8cjEzOFFYfHo5bEdCfj9xVllMKSUofTZFX2hsVlhJKytFQ0RYSVVkNnR7IWpVQChL bUc0UWcKel5rJjdzIVFLPjVnMHhvTEJfJG90KytAc3U5flcwSFlmTEloQWVtN2YzIzJFRHQkXiV3 SkVHe0JRSFdKMUtZOChqCnpES2FkdlRKOWghcjVLSlZIOEsjS1FAPjI7N0RoVnl5fjUqZ2hKYmY3 dnd6Pk9RViR+YmRvb1d8QStxX0pFUG5AUwp6WCZDSUpYbGJQbT93ciFPdjs9WStCXiskJUBUI1d0 V1VsMD4qfWY+eEpMIXM5MlRtO3ltU2s8ITM5I35kWFU5TXEKemtyUndWSXZrYVN7Q2ZLXiNuXzRa JWl+ITJsP0hMbVliOzJxcSVzWmIjSmxJRCt+ODdOTnojTGluSVI9MWNIIVlDCnpOVTFyWXVLMXk3 KUs1IUNyfil4ITB1SD5IekErbjdiKTQjYVAjRm09PlktTE9jI1F+QTlxPV51Py07cm94KTFLUAp6 KDc5UTkkRFY0Rz1RTWhiJnxjLUJVNXhuO3tMczEmSU03JSRFPmA8Mks2QklpKSp4VVhwPXZYTHVD Jk5xYmJqZXIKekI0VF5CYXRRZWc9Zns5dXlMbDcmLXdLTFl4Z0E9MiVNY0VuQWh3VypKYytqaG5L dklGZ018JDgxfSppQ3MtLVplCnotWC1DMWQ8eHVjM0RrR0xBY2V6UFNmaEdZSmEhfmYlSzl2X1ps NFAlNkgyb1EobW4we0lURlVAYTZnJHtBcFVqNwp6bntCSDBjNmJXd05oWEJ8YHFkYiRxXlpIPT5r QilIJDY1RXI3NnJCV18wcXg8JFJKSVBAIUgyWC0pRVQlVTU3RTcKejRrYUYrIy0/MnZUayhFSzZR OG9fKU9xPld2fWsxXnwyYiZRczk2TFp3fWowIypiM0NLakl2T2RnPC1fQyo9R2RpCnprTFZMPmdk I0E0dEYwSklWeTtQamJXJUxqamk5citibHdgfjQ7RkxaU35SZj55KTB+X1QmJGNiRWQqKzR6MVBp YQp6S1AoOGB5a317TmxfRnZeaD85Yk1EbzdNVSo4MkY9QXVVMk9iPGdnRU96TksjeyVsKzk+SnJL PEhlNE5yNmxnRl4KeiRTZ01BVHJIRHlkXilqPjcybXdkRE40WkMmMCZeSThPcVEobEQ1YnxBWCR2 fW9DO0o3PCtTR0U7aTIwPGEmQ0cxCno+MzQ7UVRwaCp1JjV3QElMPy1lKFA+XmNFODVtNT14OVVs ZDYzOUhiOWZGNm9hbWtMTm1rajIhb0VebDE9ezNebQp6YmhxZ2N6WV5aZmEmdjJvSzI+fipXfndu V3MmJHhPbis+Tk89Sk5fZ3d+Zy1jYkB8JD1wezNQdXU3KDktNkQ5TmgKelQ3dElwIVdCUUdwSHkr TChzSilYSih6JCgleDZYclg1K19RQCloclFNWEo/Q2BoZz45JF9uKGA7JnghYj9wckYkCnoqP3Ih NUA9OC1lP01JS09AWHg/KzZPUW89ZVhRT0dhKFBTc1dNPEVoaUowKTlRfDdqMmFzNGh4P29kKiFQ XmZTPAp6UEo+eWFBcnp6K2wtJDVMOCRNNjxQdSpBYTh2QUR3NmcycmgkeDJFKyU7RzZRTjE9YmFR bWUmRkZjZ2U1VVFecGMKejBmVFo0NkkkMDYlR1BVYEVaZzRfSXlhUjJNcD5GaipzRWlmU3YwdHhU MiM/YiFUPioyUSRQKGRRbFEwcHROTjZfCnpRO0RKejhTTXxQRT5jdkJhPiFLaEIkaDhpSDJNU1c2 fXZZZm9WbS1TaGE2Km9hUjxxLVFUdjt7S1ZaY318RT9GRAp6KE0qRGJJVXo8TEFwNjVicHdXWn5a MDM3KUMwZkwqaEtlV2dCWlRiVjUtfDE5N09McHdFVEc1b0FsQVJYeUdfPCQKekdhezRXdT1ePnh3 YjBaYz4/TU9JUEN8MXg3cD8kOEQyd0olSng9RiV6VENtN2lrXnQydzhTPC05XnYjflk9YmlACnpW fTdrRWZNQlo3K3VMZ2oxaD9nWVZ9NVRpOXdYdjROfH0heEFZZkRDPis1QWU7cEJeVE1xNEB5bVk7 NWZHQE1LWAp6YWBBX3hvZThvJVBoa0k/cmFrMjshbUxXQF9GcyR3WXZ0Q0hAPXtne3ErTUQrV1VQ c2ByTWQydUhZLT1jeXYkNVYKekdRTHN6U2lINGpmJWgmPkVXLUp4Y15qNCEpPyshfUNPNUFmeWtE UE1qdzxQaWN4OXdwd3o3WW1VfEo4a0pkPWhnCnpYV00je15tSGRHRHklSzl7UXpwR0UwXkFVQXxQ ZXE+NjN9RSpqeSZ+UHFqTEh2N2s1K29UXiFldHVZIWteRmg7bwp6OEIxXjgoK1N0YlhNX2EkOXtN WSg+eiZfe2dEbXNDVVRGeHclc2NEMWhCYTRidiRQYkZnPnpsUyFBKVkjMlArTjYKenpuUlh3bEJP bCRXKihuYV5YOWoldTIjKFZ2WENSYVR0N1U+P1liPnBZdyU7ZDZSQWNHJGpGTDlZd2Q8NllIZnlr CnpeVlBNNTJwQilgaG1AOCM+aTA2e0NzN1JiRUlwYktyVDRwViMxfVZFfElVWSNCO1dSfDlEU3Z1 PnZTfldRSHZZbAp6dHB2ayt1e3ZfWCgxQTY/SHFwbzUrVX5JKG0lMyVCTVdQNTlhUFkqKWNMait8 MUpjM2YtflpIWSQhUVJwN3gwLTAKenNtZ1NzTEokRXNEUkZfdCZ1R3o1az9QQ1d0aStOcUBwcTBS dmduaXB3KD5SUStaaWRKXjtNVztJcCM1PyNwcDdNCnpIWWArPjw5PTIjPVMkezJuQHB1c01HJktS WTZBamNVRWFlLSk5ZEU2ZSZMaiRGWlJRLWhTWExtKzJYaCh2Y2RqfAp6TkZOMUZPe2pmJjVoKz1z dXNNe2EzWF82cnpNdD5GSkdfJlJNIWUjKyE3V0stO1dVWnp4LVhtcUFSWUVDMkNIcCMKejRVOHgq YE59PzQtbkNnYFVrZmlJJnBWaTc0LV93ZkBxYnRVeX5pLWJiUFdONCooWTFxQz9DI3pvX2IzP1Eo bHJjCnpoTlEjV2FEUCtvJV5OdldeXk4oSVBTcmJJKEMya2VaJmhgdVE4VS1sPiNNfElybUw3eFBq PmREQk59enVAWC0wfQp6dyVnfk8ye355bSZHWkg9QHd2Xl8qVTFyayRjdz1fTHNGVWd5dCRlMj0+ JVU7YVR7Y2I9LXJEKyRGaDdfTkxTO1oKemVjc1RQLXFES0p4OHlSeiNIeFMyemBzYyVhUUdaNWBi QTteKTlXaVpJKkxIYFAjP2pSJUR4KihkX1NTaWp2QXZVCnpBcH1iY3Q2Zll0R1piY0RIKyh7bCZ4 ez5nYFhMcjtTIXtrLTVQaiV4c2BfNiVBWnwrSUU0QVpvTVJVdVA/S2Rqagp6aml6RHdtaCElOD51 UXUrYWIkOFhAX0xjQjRvXypZc3poYik1ZTcjaj80alQyYCF5KTskKnktRyVkISlOX3ohP1QKTklW bU57VnNZYi17fDhiT0Z7fVVwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9k b2NzL2VuX1VTL2ltYWdlcy9uZXdfY29ubmVjdGlvbl9vcHRpb25zLnBuZyBiL2RvY3MvZW5fVVMv aW1hZ2VzL25ld19jb25uZWN0aW9uX29wdGlvbnMucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYTk0Mzc0YmFm MGViOWE4YTBlNDljYmQ5ZDRkNDI2ODk1ZmY5ZDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQ1 NzM5CnpjbVpefTF6NFFGKGxAKzdhZC1GUFRIS3hEVWZoYml5RittKFA+TDF6Oz9DbWtoMnJrK0VX WCR4QU9DYUNgI2pHcAp6VS1ydEN4aE0wUldiUkNvSkZ8JmFSaEJfVEIwPlRIMEh8YFpRdEFLemJR a350TVRgTFYmWElJVmtwY2l2JXhva2oKelJwbGZsRE82cFpFTiQjOTAwN3pPNm01N05qWCF1ZmBz I0FsQXFjWEZvellhPiFPMGtVQUUzJjxtNDwhJXA9enAjCnohMDczJjMla2YjcGZqekJEWHB6N3co dT49JkpmM01RJTY7OFZObGIpdjt6X0dzSUE4VCFoZHReKGUyPUdraTZ4Mgp6SGs2cGtWQWBLK3dF ekg4UVRUUChpMFZSMXFkVlIpQ0l2SmpKRHt5Nm89dFV4QDlPRmtVe3ZoUSVmfTZzO15laEgKekd2 aFJPX2V+UWVvR0tndV96MUpab0crbVlhTnpgYU1+bCgyZUYhRmkxMjxfUFRpN3kzRVhrdDVnbjlv YUk8JnN6Cno7R1VTLWEoTG05TG98cFloTjc1I0BiXklqdntrODJHR2d0Q2sqJipNdkAzKlRGI3Zv Jlc1NlIwXylgd1pWVzJiNwp6fEVlNXZxeEFmQyN9Vlp2QHBzfVdoViMoclN2VTBBS1g4SSNWUS0j b2szQ3U8YnUjeGdEREB5bkxBPVlnQ2xiYjwKenQ0QGVmSlheR0tKRmVyO3c1PylqaSRWcjJhWTs0 enp7TilpckZBSD1HRTw4JF4rUk9iYDFDRWNmeChEJT9MV3h6CnpRMHc+eUZsVX5aMiZ6UHdecyN6 RjM5OWtqR20zdHM2PWs9cDc5cHQyeG1Lc0NDYFM/WkVXNUpHMnNYI0ZVRUVoUgp6SWNYbHl4SFVm VzRwNDBYLWNDKGopRU5pOTBOOEM0S2hvZnQ4Yi16OF8oVj89NSYhK0leRVp5UEhqeFE/P3JLJjEK ekZQPEU9Qj1AdDw9TyFVNGFYVTY5Umd9SGhsbyo7MDloUGNsOTZEKjZsVFotV0MxalUzcXtabXR7 enZyN0Q0Ym5XCnpJOUpTPXpDUHwmR1kyWjBkTEhBbW9Kd3tzYWx2TiZSUHF8JkBTbFFiUz5PaG9E V3xrcmZoVmctSVI+alRzd2YjWAp6KHw0N2Jmb1E5UFluZnJZbyEoZTZsJng+PEo8IyQ/XiohYzRr VXUmWXE4ZVZOUyQ+NFIzP2JQQVVePnMqIWRWdkcKekNDRn1iViZhNX5RZVooMVpnb3QocyR0VDlk cn1HMjg9cGxyemZac2VQbWFKT1BfaEUxRGFjPjc/azBidGA2QHNxCno8YkEkSXprbnZONlJ8KDMz cChMYiNWKHd1aHhnWD9nLUlRN0hZTkJKTG09KXhHPTUxVDFWeyooIzg/dD88fmlyWgp6ME85LWZu TW53NEx2MXNQT1NrYUxzWitodHJoWEVHZVdZJEF2PGtAbmJQbkx9eWl5Z3lzRiQ/TmlxM0BNVHw8 N18Kei1zK3VkO0dKXj94PlVHWHk8YGYoYjNUK0c9bjJMTSFXTl9DaHBBP0RXdFd7Nm9DPVE9UjM5 eVpydzF+KWJ1YGJuCnpNdyh3K2pwdWF7QVYqRnRiPlR9O1hFPmZEZn14fkNMO3omTDJ5V0JFSSUt Pj9tSXlMJU8rSihwOz4qPlpJTjJaMwp6PVBSSmRlOUQpVyNXdF9EcHQ8LUVpUm5mT0Z4OytrcyMy UFE+cChhJitBfnM9aiFAYXgybG12K19ERGclaUJycjAKekgjbGJidHhEe2RScms/QmU8dWsmPT00 PFpTc01RWkRtYkBsbkAybGZuJjBTSzRhfGR4TlQpJHdHUU4jXyVhZUdwCno2TzM/NnA8KVA0RXZ6 eS1IVG82fHY9eztjZTQjanJFVlJ2NnM+JWp9WUFnTzxOUzVEeEBeRiR2RXh2Tj0hMUlKdQp6ZVdo RTF4ZUpBSkNMbj9Ee15xdHQpcT4+TTUxeGd9MzNhQEx5UU07cWtUXm5zYDZPTTU7V3ZQTENBSzdz ZmZZWU0KemZoYkcjR2tUOWdUYEt5bylCKk1XMiRESHpKIzNrSHBhZEdfYTNaSXlwZXVIM2Y7Jnxa Q0FsZ31hc0tDMCpwdUxSCnp2MU5NcnhYKCNiaH1MS1Z1cT5iUF5BeDchODtSRUE3N0ItXy1IdFRC Z3AwYGR1P0hXMlJzMmlqKjF0cjZBS08xdQp6WFJqRFBKflVkM1I3cTZQcFJwd3hLJldBMnhhNX09 I3AjVDk0ITd1eGxrKis8bEh0TUx8NUYjKlg3dTgyKXF9O2UKeiRWT1pjP0cpbXsya21kN0F1PEZx QmIxNlgkeWtnQ3RCQ04zYmxaKzY2ZGphVShUV0FzKUE7OEBUJkFvcGE0dyUqCnpVfGlWaCh3Q0l8 V3pRJVJXcSpJdlI7T1R5QUUza2lES0JSeSpEZzBLbjxoKEk8bj9ZTD9zNiFKeEg2cj5BRFRVKwp6 WXUwUEVZbnAzcFMycFFmUTxiWmQwa3lFPzxLKklHaGgqQU9TYjZ5M0crUXhgQX5eTT0oJCtiakll QS1CQEpCRWoKekkzKyRsSn15M1lMV2VZWiFYUjVkSjN5ZXM8TlVPdmdtQXtkK0NVRlpObHNzNFJv dzNQZFFvUz0+QG5JY2hPYT45CnprRkdFeU5tMjFgblZeIWZEYm5oKFM9Xkl9PjhoRWsjbSp2I0xf JmQ4JkcyKylzZGxBeXpMKGc9SD17SFc9fXF6Ngp6aXBqOz9EJnlpSCp8KWE5MWdRUzZNZERmRkEt JCVkaEh6RldJWWQ4RU5LeUp4IXl9TVVudSY3UXtZUUVUbm93OUoKemR3eHdXNGV8WHNWeTdiRkMl WEZYOGFFbnVNKnQtQkFTTmRBQlA9ME07akhFbUZ8OU47UmZNTmFOU2B6cVU3UEZ9CnpkUylMbU1Y LXZwOXgwJm9rWXEqbXZFIUtnSTNRKU5aZHQjJFNOO2NIQmh7d0dDZzwzNzdIK29QdkwhdXNTKk19 UQp6bDZZSj4hdm1GQGg9fjBRZCF6bClZa3U9ekg4PWQ1ND55RGRgczAoQ19jfVV5UWhGb0kzd2x8 I05BPjE8NWpxRVkKeiklOE5RJVFsMHhOY0JIO3NfRiRTIVFVPFo/JGxvRXJjYFFhSDNNNWNsN1Ri NnVeeVFvSEYxU1heLTlzPk13I3RSCnpVLVgrQ25tfi1KYyZtPHJPem9kTUlZRzd7JDdQTVA8dlVY ZF9nJUBeclUwS25rJTBmailZaiRQXmchYUYmWTh9cwp6X2kqJCUmS2NLVyp+KVBZPVg1JEs+IyhF dXU+a3BHMlNudnI9R3dYeSlBck9OWkB9QnFnaWVpZUxyaERtQzRBT0sKekpSWX5Kd1dvRko4Tn0h MntyQj9jSGZxMXxfZ2RtYTUhMSZnNFFpMmd6eEttK0MlMTBsOFJ4eURMPmxWTSYjKEwyCnpKQ3Y4 RCpEWDc4X3VudEdjOSlNSFhVNjZnX0pHcjs1eG82PS18ejE/U1Q9SX57UjgkeUpWZGcpSmlGNG5Q NktLaAp6OytDJD8yRzM+I0tYantoXjlNJTBZKE85bl8paSEyWj01fFc2bGBDJGR1RysqMyNBSTE7 KFE2THV9OUY/dXU3M2sKelZKK1lzKDl+aHw7Y3I0S0xkbkNIQWBtMi1CODlnMysrNndGYFBuNGFD SE0yO0J7eUFQU3txdSVPPn1oM2IjISZ+CnpUVEh4TkFLRVZjRm5LV2ZGQGMhdGk1clFXUkdFYmNZ U1VfQ2gxRUNBLXExIzxIR1lqM040a2FqZypNYUMpMjlYRwp6MTEkcTFXKkl8eVd9ZyN1YDQ1eVUx MWg8aURBNU00Y0M/MXA8R2pBLVYhZSYmPj99UmhYX31HS2VPTFVJPyMhNSYKeiRqOUtLeV5+b3FS YTdrM29Sc31EPHFyI2tGOVJWMUgtblEjenEpbyZgQXs0SXVpYVdKUnxBKXZvfHlvSEZpbjc7CnpA OHJZZlJtSEhFeHdsb2FyOXRLdnBVRnhYQy15aylmcj0xXm9EKXtpT28qYXtyUl9vVy0tS3RySzw7 azMqZmdMPgp6Zz88bGlDOGlMNTFjRWxBcG1hejlaVU5uTCRUQ3hYPyFrd0glRD19ckBVY3QtaEZJ MCsqP1NnX1UoU0U4SFQkXnUKejJ3cCMzWXV3ITl7WHBoR013M0c9X0wqN3VsYlRlYjxlMWh2RHNO SEZAVCNHdWEtMXFOKjM1KTRfKDlxJUE1KjkhCnpTNmhJZ1RWc09faUxzb35telVlKEIqWEA4d3JG LWojVmZ0YmBZQ0JBWUtQb3ZpfU00Z29+N1BvN1ZwZ35eRiQ+fQp6TCpsWS1nWnt6TmdmNHJEbmQ5 RENfRCQpe159Jm5RaiF9S1Y5ezczZ1EzO3REQDJ9eklXJjZtNXQlOFRiZShfPkEKemBhfEhYZ256 IWQkdHU7UHY+a29gRHxUdSZpeCpvQnthY0dwP1pYKjVieGBTWnpMVlZEJiElRCMxenVLYSkrRTtV CnpDTCE7fjMweWQpNztQWn5lb0tvTiMpYX5GJV5HYkx5QDIwKzZ7ZlI5Q3EoOzFuaWgle3lMIz13 djR1YmJJd0xQMgp6VzI1YmI/K3JNMXA/alRUJkRxOW1XVDtJRUZMUlZQVjJPRnotJU1kSV5+cEIh QiZLU2hOP009WE5uelJaTUNMQW0KemR2Jn1pJkZRVUN2UH19bVg8fXM7PWNGe3dkU2o/eUg/MyNr YUNyV0c5c2ZRSVdLLSFAdjA5KGorVSFyaFJJK3d8CnpSYE5IdThrRGZIPV43bDZjV3dwQVRfaVVy VlhseGxET3ZSNWpVeFVNWEE9akN7N2kwWmdKZG82Rm1gRnxOeng9QAp6OzQkenBHRStFTGgjWUBN JHxTTmQlV1FXcGttTDRqR0ZGdGpOO2owPEc5JUNnMWV4RmRuZUcxaz83TT89STlFM3QKelFpN2cp Q0Yqdj40NipPJCZ2Z1NJYzIxSCVrMypWNjlZaD8hYDJLOE1NemAldGIwWHowTjV4d1QhKSVkO3VW QUUkCnooYmtHTz9iUjlAPDh+TH0tTHtqNiVjMHJLTV8lSSUjPHFEc3pqTTtRP0UzYTZGUSlWSyY1 R0NjJE5OcjNeNyV4Rgp6JF5FM0x0aUxsUGV7MV9qQ1BzIV81S3JqMFh0bFF+eGFncDRjKHkrcUdh RWxRRUA8Sig7STU7Jjt1YndyYmZNZVgKel92JDg+R0FRU1FZO3BaY3trOHQwWDBTJWw3fn5CQ3ct d1dNOWQyWlA8THpgQitlcShQZWF2fXpvcnwxOVNNZTxnCnp7MXtPQXkhVHZvPn4/ITc3eXVnKHp8 b2JwOEhDZ0dSa0VRMD5jSXtrYUxXWkN6fjZvfT17VDVKV1EjaDtTeE0qIwp6PmRXdm0+MyNzSCFW N3wzdlI2QGhNM3pWbkJwakZLV1dZcmohTT9zfEpYUTRkIW9wa3pUOzk4czlqQiokN0VwalAKeiM5 KT17dUM1SyNmUG1hQlFydmIjdV5YSW1MayQpd1p7RFRLdUc0UnNPdkM2ODxUJkhQdy1xR2FwYiFD UXdvOFhNCnpIaSU1TG9xIUpGO2BeeTEpan4oa1FiYEhHXylhNExWNDwpOEZ6KiE5YHdzdmAxYzNi KTRGSmVQNSZzdmg0bl9ZVAp6OEU2MD8oZ3lKMUtRZW1uPHY7MWlkd3hnJXItYjwjMGYydmghZ3xr UGRDPm4kOGFnWnc9Nn0pZXk1RXp5aE5QVV8KemQjUGRPWUdMOCVYNkB2RE4yb09RJk9tZ1EpcFl7 XkBNIStZUDslLVlGVy0rJVpaPTxaKzt4LWAxPGFmclNXVjJHCnpPZjZXdzlpMEVzMH0lMlNjcWJo ISspWElGOXFiKzUxaVhjKnt2eyNzUFhFSlpxb1ZraWhgWElJbTUhMXNnYHxfSwp6MXFDLU43YmBv SjJvZVBhZ147VmNyR1VFQj1se1VwcE08SGItUUFyOSp4MDxoeWpaPEJTKUUrMSpnbzt8XlJ1eVkK enV5SnMoeWkyZ1NgOGN8cGMoWFhWUVU2PVh8SSNDNjtiIUopPExxd1o8VmYrNFVLM0wlNHxpY0lz KCV7I3VrYFBKCnpUNm8rMWNUMHxMfDFzO2BLKD5FcypnbW5jdjtEdGQ/bHpZSEtkXnNse3RmJD1V SEApUT1wU1ZRbnI7QFpsMT5mfAp6N0xNKkJ8Tlh7PXs/KmR8Uns3dWt7NU1lNSNAb1ZQTjZPfE0+ R3AxdTJ0TjxrZV5DRXQmSG9kcmBgPF98antnbiQKektXaEY1QCpmaWZSOXRQfGApVHNlSX40Z08j UCl5anshZSp6M3BYY3drQUs4OTljfG8ySVF8M3FLaUwwNDM5PGIlCnpFZE9KZXtfTysqOz1WaDky JEIlbmU+cyMwKG9peDA4dnFhayRWcktSQHJGOWZoVlF7MG9SMns3eXg7Sns3aVcmYgp6XntjN1Y9 RElyfkghR24xVD07M294fVl3OW54SzcyNl9iZ1BpaEBjTzZZQlV+SDE8OXl3XygjRF58WF4qSV8z ej8Kei1eOzZIYShPeDNPRjVtUClfPWN6P2tDTHsyeSZzSikjbEVpUF57aVcqQTVNZmJhdiZpbHlz YXNDITgtUDVmVFFDCnoyI2JhRTVvaFUhVWlCQkY0OEA3eFlPUlNSOG9RPWdVSCR0Umo9V2wqTzNi cTMhTDA+ZHlHR1kyVnRJNXpPQUFXQgp6SjFgclVRRCsxUm0kOFRfaThhU3FIZmNQOHtuX1F9biZW fD52aF9PSmJAe2Z2KnFjJSk9bD1LSDxMMk9Pbjc/Y0IKemxEYz1iYHx8VXkmKWBNRjtQQEBfUlYh U1krfDREKVBLMDsqcVckKnJ2bj44fEtsZ2NCYGJCRWF1ODtaOUkyJHZrCnpxeFhoLWhRYXAzWmN8 ZkRxPD8qSlktSVNlI0Q8YVZoRHNGdntnPzsmai1gPj9Bbz9xMVZBSjg+U2A1MHlsIXhCJQp6eihL Y2F8TjJNeFpmRGQtUTBlTDJMOGZ1cmI2QD91VkUwNFZIdVFfYytFeTslTEVfQyRXSnxBO1UkeT15 XiZJc2EKem82JT1rO185b356bU9qKW0qfF9+UDUja0k9fm1ERGQkYHZXZmtMQHxGVER2fFQmfHZ9 YSp1ZChjK1Nicy1ITVU3CnpUZFM5Nl83Q3k8YGNuTE4/O2xlbmJARyYmbmh4ZExTemh5NTRQMDdC fEY4Kj47YSRoTkxiamF7Jj0pYk5ad1RNKQp6MTBOcUZKTm1md3BTSkw7RElFe0UhYCM7UWtvcXkw YiF6aWlqTypyVG0yLUIpPFYmNDN6NiYzbmBefnBJZzdsaX4KekE2QGwzeXZ1TUk0UC1CWkNoZjxf cjAkQiF8Mjx+MV5nbVE3QF9XZFhwYGlNYmFhaiRQNCN4R3Jyb0RrTj9ldj43CnpzdG1oTDhaMlIl cXBlIWRUZC1QaT9+eU49OXhRJCVabH1Lck1iYGV7TnliRnE2YEEhQmlqS2pyKFhuNj96MTFlPgp6 Ym9eIXJ4bH54RmxWajB1Yl9gaEhtS19tbmMtPHBDPT8kPEhkVW1FWFoxSXtUNSMzODwzVCU0Yi1N NndOeXBEbGIKei1CMWZYTUFgYHsxPldtcGkqbGsodyVCezF5RUdVVWUjdHlhTilKP2N2YGtHVzZp dEB2YTMtJkk1azI9eDk7PHxUCno5Mil6cHJDZmN2bUZ0Nyp2ejBKYjZFdFc7YldOIXdJfkwkZm5k PnwjbnYtK3JPfTNuSylnUyZXWD4/X1dWfExSfgp6S1JBaVkpfVdrelJYP0F8bXlicG4qZk1sOHJq QFhUZX5vWmxwTXBJWj56KGMqdkJEQV8/d3g8Oy05PFYxeiYoSXwKelJiUHprKCRzV0BremhCJWAq MX12OFdsTndpbFpXIylpUT8xd3dJUjlJdUtXcXVvPno4dXJKP1VFRj8+T2pwJV52Cnp2b0Rge29P e1pqPEozV056SDFTRk9CcmElSGB5RUJ2ZHRmZVlJNFEyb2lCWFZhc3xOJUBfVXhaXyN4OCpfdlZj SAp6eD1yLUZ5WkdFRShTYnFOJkV4X1QmQFplI3ZqcntPPWVGMVdDLSlFb1p3SWRYIUEmK3pIPzJr VktBLWk5PkdsMHAKejklZUFUVmNAQUdyTCZVWmI8PmZ0S0RmalE7dUM2Y1E3dHJxJVhRPUFhcVZB Kjs7IzdvMjgyOzdSRFVOZzA8OUFaCnpKWV8+cVkheDFiPnNrQ2heZGB5RTt7NGtLe3h5dzdpSU1p OEJxJlRxN3BnWG8wSmktUiFxXnpxWD1vcU9yYXVgPgp6cGg3cUtuZCU0ZmJUWms8e2BaYGhyTFVE eSZEJGJWOCFQKHhLUnhQU2BVSztrNWg+UGVpais4JXxLKD0/d057KUYKejt5bFBmTmk9byQ/KG48 KFUkRkxnPXlzZHtzMFNvYE1yJiNGYz58ciMlJl5GZ14pM3Zod1EpMCNgYXNMN0o1MShaCnpeTD5f IWk4S3JofDhvVkJyTjExQDdoNVNjeDhobW00fSRpJFRjfmNaczkwRUhHKnJOMEYpZnpJWF8lcGpm ZWJBSAp6ZFI7QiNeK0IlMTRzJjVQVDU1fEktRVY8YlQxPFpnfDk1M1NSSzsrWCU3UVR7MndJYV9i aH0yMDx8ezAkJlNwbiMKendKSjwrQFIqekd1PDJIVk8kd2BgX2A7PVFhVGB2OTAmP2JTXmpDOXlT fVZZV21zS2ZqYHN4UCNBOF5qQWJDNEVPCnokMiR3TD9MRDx3P3coeUFRNkJJZmhCd3NEVWVZJSk2 VD02akJOZlFKJlQ1cDJAWkB4Ky0+P2ltcz9qR21UV1FUJQp6NHV1K2tXT2pvMHBhYz9BUHZIaDlp P31hZjd6UkkyVWt9SCNidWJ4SmAqV05RVkNKNiUpKFclQVlBKjNwOy1mYXYKelpHS2V4X3dlTlBE OHEhSWdxP0NiTG93cDk+UldWb0tIQ2ZLT3UrPjdwY1ByPXk+QEhAUFZkeTUrRHs1TnQyQSRECnpN UCV7V3c3JFM+Kz4ybV93Zko0OUFSP15HKHVWJjFiNm0yKnkwTDJPOyVZVHZVPClxU2JYUipqNTJJ QVB5ayE3UAp6PVh7R1NXcGcpWkBhJnYqJjJFdz9BamVfU1RhcXRMa2pYUk93RktwN0JZUU1HXnpC IVdAfEJMJihrMVdVSEZENnoKej1zbktSUkdEOXl6R2swUWNITDs/YWwxPHR1LW8rZEo1WWk8MGpe TD92X3hPWlJFT2wjbjdhcjhIJX5FK1c3PF9zCno+Qnk7aTt2b2A0SVd2UFgpQChFTlQ4Ki1hVCU5 QHYmeyVYNlMhT0FYVGcpfGAzZURoNV9vPWU5ZFpTZiRtZ3pFQwp6elV4Mms5ZEVjeWklWWsjM1hQ TD9DTiYhMj5WdVdPI2paOXo4UkBpKG9WVU40dDs8O1M+US0jRThKdVZXek9ROCkKem5eJE1oelco RW1YSnQ0YEhvP3c+RnhxajlPPCVIbE1LXyh4SmVHcFU1OTNqWTFsRTJ9Vz9BZnlyOEwwb2QrcF91 CnpSeXYkJlkxUjRiZjxqdzFqUW9MXzkqe2tTM2VEbV4memhuamN7YShMV1pHe1I0JEdzT1NjJisr OWpwfG0oK2BhbQp6dDF5ZFpTMkhQfFEoYVlPc3JfaDsrOGErKG1nRC1SKFpFWmBHQz9rYjNUIUtf TitVWjkxemF4KkFsKCMoN15sK30KemxBVF5uMW5FPzV3UHU8Nl5hM0t1TD5BfWRrWVgwJlcmTSl2 N3Z7cyZwO0B4dkBlfVVUdiVjQWNoNjUhY0tKTzEtCnpxK2FiRGhSJUY9JSRMMEdLKT5YbURRTFYj K1gzdVEyNUNxbSQhdnl3QXhHNzRUYTh8aXF3QD1tOy1uQXw/eEI4Rgp6Iz1KaXp5VSZSdCNQK2lK Wmt+NWpjZCNENyZzVCRhPSQ8JX45KHVuJTdCOVIqUURJUW0wVzsqMV5uMGI5ezJzSU8KelArdTFx eyV8X3FSR3p9TEdgP3RQeUJTQzV2QFpKQypaYTZ8VXk/ai0tMF96T3AtZWtmWjtZUmdlNGtGWjZD ITc5Cnolb1htRzY1Z1g4N2N6SXVDUFFNNiVobHo4QlRNP3BIX0ljU0o4ZFdvdGlQVkhqbU1fZkd7 WShnaytOR1UkYDgxOwp6RilvM2t6K3R1OGBSOC12ZWQoZDV1YSQoI1MyNVotdEBARiheKyQlPno5 aVRDeVZlTChtRk1gMDBGekh+PWZqaVcKem9seTxjMWNNb2MpMXBgMnk4QWVkUjxXen16Mjl5Jklf U3wkMWdNMi1pditMX154c0h1dSpjfkE2YiRXNlBAN0tTCnpKOzY7X3Z8SHdrS2hOS081WG52SHY9 U2VST2FOITIxdCFUfXRXK307Smo7Nz1jPD9laTh4IXhaYFRgZThaSyFNJQp6RmNSRzstWj0wPGom S2lve2FIbFBKI2B7ZnomdVFpamw9YFJlV1Y3SStedlV3eEQ4TUtSZig5bHVAI3o/MDQ1UHsKemcy aURrLUItTGwmVWZOLXpwQiRvbWEpJHElVXJKQ0hTJHdvR0dlVlFuYFVUJFVVT35OMyV1TzBkJTRP XiRpeUNjCnpYTXE8e0dAe1J0WHc8Y307QzJ5JTR1ITk9aXdsKipMMVBaZmUyVnxKKTs3aiFgMTNt VDFeaH1MbTZ7Pm9AQFpfYwp6cDtNb2BkQT8ldDthZW4hZD5XJkwtOWx5RWhWaUBPJjIxeyE8enQr NU40KEI3Q0lUSW89a1NoJjk4cyNXQ2lJbEsKem9tUTVWYE9nc2BqclZESHglaXQ0ZX1yaFZ3RFFs eUJzfmhCQSRDU0BiY1JfQVF3UzQhdDZFQkRUUURvU2xPaXQ7CnpZZW1PZVVyM1pUZTRJUDVjT3R4 RU03Y3VuMjlQY1M4ZVNST0I4OUZDeGdFWkthdmkjZ1QheXZFS0g8YEB8NihBVAp6dmkka3RPKktI fkJIJVYlY29XPUBmS3h0VDBiUnB1PGRTbyp5e0xoPVNaIVZSJjIhRiNec01KKVd1P0p6cXJNOSEK elFrVU9GVFJTJFZTUnYpc3RNQnVqLU54SVJlNkxJS0M7ZT9DSlo1dGxjV1hOY2FDeikqeHhGfD0t RHZacS1SUzFrCnpzIUlvUGI3KU9eP0NiPHRyOHg9UW1DOWBCSUZgIU5WNSVPPWY0b0YoVXowazFN dm5lQXNhMGhKM1NlRHIjeDkyegp6UERNYjBXPnloQ0NVfUZCYEElZHYpPWZlc2U5RXpyRTRqOXBA JjRpVHpOMyojaExGTWBxKkUqKTQmYkshdmRwR1UKelgjPzhEQW5PZGhFIWF1fkpxSDx7LUdwckZi clBrSjNiRVVLJiptQkBeRjVKPF5uMFl+NGtHUFd3KVYpdHhack45CnpwMi1lPlhwezwwajs+VnZn RWF2KEQ0NiQpSFZ2PShjX08+c1ohWDxCVTxJdyQ7VTNPMVpMVlF9WjdTX3pqJHJ7cQp6d1MjdHJ4 JU9ScE91TFFPMEdGMUdSX35nUypEUXkkQlp5ZWcwREpqRnYqTjZWdDs/d2RYcVBlWk9gdW9XdXN8 cCMKejdEZ0s9cCZMQ2lmVHxCJVhjZTEtblh2SjsjTDhyPCk8fChKdF8tOClwdkF1YUktXnNgcXFa bi1wI2I/djJHMTBYCnpCYkEwY19ad18wZEF1V0NyVCNjbVVic1MqaVE+YUhWNWl5OzFIfUNDKnl0 c2lOZ1hle1VYRSpAUHN7VD9CISZzcAp6TjVmPkYmZ1U4UmlLJCVaI318SzdZVnd0WVV2fVh3TSNY YiVqOFBSRFFWIW8yblZgYEhCSzUkTDN4SFZwNztYOFgKeiZqOGJ0Sko2bzQ9ZWYtPWY5WE5pMzlt MCY8NGZrZTJUX0Q4VVlYJlRHLXI9eUB3SjcpN3g9MnQ2R0lIRWxvTm5YCno5QDtjUyZ0amZZSzh2 MUk/bksjZWA8WW9nUShsflNJXy19ckttJSNsdW0tMUFwVDArO2IyTTZDRjM/NW5aQGJRSwp6dWpL K2NWSFFzVGUhMyZqeSt7K0w4RXVUXlNjZUZBZztyQiUyNTxkcjw1eWRYPn0zZGZraHRrcWZlJERv N1B4VWkKej8pfVY5JXc9MH1GRlleP3ckbFdUdkdNaUNBQThyYjcmSHpUbyFgfEJCPHdgK2tCaz9a Nz9HRktwUjBZRTdEYCZVCnoxczkpR0N9PnI+MVJKUUMmZHhtMTAmQEllJXR8SksqYTw+UVhhWmwh aUZyKHVKeCt5fT9yZ3F7byVYOShaPD5PYQp6djJNQWlHZFM9UjREXzQ2QWowIWExPn5QVkllMTY5 O2o/SXlHYU8kZWk+UWx2PXVxZX0mcTdARm44LXx4YG5HPVgKelIyJER1MjtQfE13fEdhM2hxNlYp MFZSQjg7JXYybmBxa31IP3QmfExPZlFoIWZNYlg1cXdsKzxERG0wcyVkZTF+CnpPZGlXbyNZMFBT dzwoY0A8OFBkeChiJmwqOCFYSTglKFRvNGhGaDxlQEtNaFNsOGVDVnIpIUBRNSkxcXNtT1JFUwp6 dn1VSkdvfm4pKUN9a3xDe0hHbGdOSGdCVXNyND9NUXIrc2dVKkdTKU0lS2lkT0Uwe0oyTnhIflg2 T3hjI147dXIKel5ZRlptQ31seDl4T2lUSjtPeUw+Z0pAK3g+K0dGPzNlc3dZJWw/bHg8V0l1ajwl ZlY8JDYyVTQ7dGpmaFp7Y0c5CnpUSEdIakgxZWkkOVUoVntpZn1qaCUjQ2REPSo9OE5iR3V2Q2J8 ZHs7Vk5uRn0yJlRmY0Y7R35pYkxDb3BQVWd4Zgp6Nkp0PVl6WUpaZj9GUkoweUkhR2AqZ3NZSkBC fERvdUxrOFZYd0BqUTlBPT5xZXArRHB1P3NMJDBEbT5HUVdlem0KempjR1dQWnslXlVna2ZDaXFk OzBMezVpbjBgK0s3NCZMTHdwUUV6YFMpbik4XkQ+NzxONEJ3YUMlRWJoO1hGUD8tCnooPiV8cnYh bD16LUZeWT9FTSlPRGomaXFCe0c+bD87YlpuU21aPE1GdEdjVXJhV3JzQGRsb29NPkxjPDxiMGt4 Mwp6V2RsS3xSV0FLY0JFNmF7M0BGdm5QUXxwVWFRMXcxcGZBblRmQGZ3UGMzUXdYWGk7RmZSKC0m b1pUVypqel8mXkAKelYxYTBWU3B9YCokc1pZI1FhTVRzV0VgVX5NQUAkPTBOXnBmZTcqXlkydTxq SzMxdEV2MWRsUzJXfjdJQD98MGheCnpAcjZfJTFTakNMezR4TCNvNS03ZjB+bGxudTVCK0FzUmo1 SWBsMEpIUVhtailJOShoI25zZUF+bTxwWitjWT5VaQp6ZTUwTzl7JD9GSW18bU9JPzwxOClqKEhE K0t5K2pWdDI4XzckTUZ9PF5Ubzh3ZXEjUDhlITE8MEVmMGI7YnREQjsKemRkeG9Rc29LfWRhVUxT bzs9N0Y5Z3g9ZFl2U2pld2M1eWtxTj51Mnl3UkNmaT04O3p8TlE4Tkx3MmJCKF83NXVvCnpkQiV3 bWJtcDJLazwlWGIpPU0zZz84LVhJPzhiKGAmakJwaD8wTzgySmxMbiNeUVVLKmNZZ1pBY01qUkY5 ZD48Rgp6VV5rNHl3aDRgd09yQkIpOFM/clhQfDNaOXk0SlBYWkl9MD1LYTRYNClKK09nYTxnRHlQ fU8pMj1ifmZGdH5mQygKemR5Q19gVUkyQjRSQUAxZStxd1RLTzxAXkJRcHIqbzlmezM2UShBTXZR eV8/PkNnbXdtZlVMMSpVVWw9P3dkYnBUCnptd21XZiZNbEl8JXE+NVU/Yj01e0JkUVRCIyYpWjJh bz1JLVhWUWtBPEVmQF8oJkU+WjdHKSlFd09fKFBpVDYrJgp6NHRaZHo8RDJ1RWA9ZHMhPyhqZnRT WkhkIXdFOXIjO1VVeWgtQjRlayF9Jjk7bVMmR1AmPWNAQVE0QihGYiNafEQKeihxNWB2a3VscWwp cEhvPSRJRSYyI31PKDhTWmNHYGwoTnpgRnEqPCpSemt3Q1paZDdQQT5vcVlWYzZ6Y15gdjRhCnpj LV5EYVhoZjQyPWxIUTQ3YXBgYWJobTI3Mkg4clExYShmckZLeHV4b180MCp5XjVHRTd6cG5DeGEq b2F5V1glYAp6NWM2bnhucll9MVQ/PjVNRXgoYTR7ISN+Y0VQWnB7YnUrVVU/fDQkNFdIVz9zPSlo eF9BelJ0N29YOWJJPjNaZFAKemlON0g9eVJDQmlhVXckK1B7P1VEVUkoQSEtVFE9Mlhrd00pb2pq aTEtMUNJP0ZvYlV3VG1oQGN7KExlKFU4eHFACnpjREh2XihfWSVgXkZwTmNkNigpMEkrQ29WIypN KlBeUUZSQ0UhRDJXZjtuQmx0TTI4bHpKV1Z9dDNFX0JRbEIobgp6R3BhMnpFQEtPTSghaj1OdnM3 MHh3fFFqdjxBeEtVRkYkKUNaZUIzNiNIcWdWM0VLdU0/VnJFfFROPD16aFVBRDgKeiFsRjV3UWQ0 Kjk0cGs8SE44OT8jaH0lU084emtgJXFfU0FHYyslUEZrXkYhOzFAMXtRXiM2OUZTKGFSJUY0UlQ5 CnpGezF9UXYkTSledHQ2JEctY29TN1VvcntCUEZoa3xzPmdwbUYrY299byVlP3o1cHw3d08+V2pJ cmViUUlSJGRmUQp6ODQ+I2x1ND9JYD9ISXw5MSZ0N1pDPkFgQDkoblQ2Q01DSCkwNldrTlk9MW1L dUl6TkRsbml0eG9sNWUqVTAkcUcKekpYWkd2VE83OChWd2l6bUEhaV87dUc8eUM0QjVrbkJJakFu THhyXlpaMWswNnc9ajNjI1ZVUVBhVzFHZUBaPk5vCnp0SVlFOEYhfWt+TT9OMEtnX0k5YDg9JmQy RTwpa3l2Q2hXfldKN1huaWxNITNTP252fjN4RCg2MERje1ZqRzJqTAp6IVA5fHcmKFNMeHk+TTVI JlR+YUhJOzkrMm1DbVZvazRwSXskLSV3OHFGTyFxWEwkMFoyfV8mNFhWVzk9TG9eUDQKekwoa3FD YEA0P0VuZWRlQEBOVTQpPU5PSWEwazwwRCVnVlZUb2lGYVhBWVRKc0wkfHRNWH5UV089bVg0PHVI X2VNCnpzQn10NEBweiFRTnl2MTJQKjU/QGNLUjtfe3QtJmQ3eUwzUigwIVIyP0NqUUZLSEpKTUty aXV3KU5qdGp2bkxSOwp6dl4oaXUqSj5NdD5vUVYoPj5keEFGRFFlLT52Xk5oYTh7RVA8QU14I2km Q0JjZz5IWlAqPGlvZlI4e3A3WGpUYV8KelYjI3VoQkJFMTF0cjV7dHpKUkZqUHlhbmRCMn1JcGN2 LTcoVDgqa3AlQnR2KWBnKSFidEwpV1pzKHdQcGNPcSYhCnpOOHFQOztUeVcpcnZAZC1YVnZfMmhz MHQoJDlvPkkjOzghS0ZCVEI+SiVQXyE2bj9EI2I2aTYpdn5PbkBuV0t7RQp6a3hmYWlkbjNSOzJy NCF6YlUhX2tKaHphVil2P01Kd3xKfm9aMEIkdXh7d0J6YzBrRmZlVGNvZzRIVGlncHVBU0QKel54 fX5jQFRfYT5yPDRhWCYyZ0JGcFhmM08+SzBaaG45JUElJFVeYGFibDFRd2lAeDUoV1V0Z204d1Nu T090OD9MCnpKcnRyZiQ0OSE/JURoM29qbFZje3RaMl9VVih7QDdefWxXeT1nKXAzRXMwSSlRVml+ XzZNbVhRekZRNzlTKlZpfgp6WWBefkxifmFXTWBEN2FQYHQqbm9iMmJhcjUzNXpOWTwjb1BUJF47 P0l5K3lJbFhpYURUdUE1TDx2aWRyVTtZSjsKelM2eyNuZGdsbkJtRHNnITNlR1JkNFZ2YzxsQDl5 NGl1P2dhMDMhUD07O2BVdnJ7M0o9X0toJVlneyN+cV9tPFNZCnpxPHImY2VHY3pzcH1hRlFJMDFX Y1ktSS1CVlpaJWkqe1BOb3BebSsxKF9HKnFMSkRqX3EoM0JeTVZJUTU0Uzx+SAp6OF5AUFItMXh2 KUArbX1RUXFWajxiP2t+UDRXV3s+JWF9PVVyeHRCdGNVREFpanJrfE5hb2JZNExTWHp8RlJHUWUK emB6YmlQNjJJfXl3ZSteMCQjJEFWJlkwZT40YkwrPig0JkpKPU9PNHx7PUFEb3JrSWwxYC1YYGNR UTx1LXZ+PyZHCnpMWExgJWV1aTAqIWJFKmwzd1E5YzNVVVopeT5lfjh1UkExdE5URHxwUVVacGVT ekdaa15AZ2Y9eFRxekBhJmlUeQp6OyVqNEZqb0QtbksmaTImdTBQY1lXQ3R3fUBBcSNGUSlzSzAr T0ojZFhZdkFWYjVHWD4zSSlrTmVwKlpTSm5ZVksKemNmPlVxNT05dGtiWGNHOXdVeikpRCtHJlVQ Zkpfbm5qVTdrNmk2ampSTGJOK08/PXtpWWI+bFA8b2o3VHRYI3s9CnooR2VXJGQyJlN4JURWJTdP eDFUfWxidC15TyVRUV9aP3RwaDdURClJZUZKMG9LfCZ7fmx3KF55Vz40QEJxUnNDSwp6U2d1TD0/ WEQrfkdMcjwmUTckTkItKD4qcFpwNWdienFwQmdEQV4/cj17cU02dmBxU35jI2tYVUQ8NFZIa3tk OHsKemlWVWU7T3BEO1ZFPzFiVzgpRmp+OCZiKXNtVUU1b0ByNG4qfERJJURlRGQwfUpLNSVfSHlu RE8yS2BGdTM5PmpgCnpzayNAa3JRc1NERTBOeFRCbEJ8QmtHXkVtU3JqNEhWe3FabEJnSk59RjF9 c3UoKG9ocXhyU0JKVmFrJU1jVXRXewp6bntpVkhMVU8mUWBCTVNFR3BqcUx1JDQmdF9RJnJCbUkp Wjl0KERzTUklWXVgVntGYzcyZndafjRFX2UqJTtPNykKekotVGpUQEIjb14qPXtSV3RkNXk1aFpi QUJjWikldVAxeH41UWQ+b3g5JmNNM1A7bi1YQigqdlAlbGQoQ1dnd1BkCnooWFdeNmVpdW4xJnx+ eyZkdUQ8SCV8MUNUOF93YmQpeWJ+JD90LTAqSEx5IUV2OW1senBXJF9hVWhpVSV7U3o7cgp6Unhr OH1qPWhgZzdwQUl6e0s2RD9lWFMxaTZITEhaTDxee3UpNFN8ZzB8JFVwUCg1ZCtwLVhsdzRPeCZN eU0/YlMKei1IT255KkEqI1I7eVhWRUVjZH1+YWM3RW82R0NSKzN7OWp6Kmd9MUB2ZmpTJlpBT1Az Zj9KTnZ5PkIpZnhEcVZyCnpANERPS2JaV2B9aE9IOyt1WURgaTs/MmpgOzlNI24paXFeVkNxeyFA djEjbSlANzYxRkpVezh7fDYxKGtGZSFUVAp6UTRuJkE/SF9VekB0cShCdV9LcXhFQ3ByLXMzdUJj ZG9qa0k/QHZmNW9mWCh8OX52SHV3PDxffTQ7Knx1VlJtczUKejRDJDR1VDd9UERxOUNsUiM0MiRJ QGBXOHtkc2YyaU1DLX1BYDwlakQzPWJjN1BPKUw7THJkdmM8S1Q/RD9BPXR8CnpGQjxWXkJDYCEj UFBHOXl3NiRHd0FwWUN+ZFN5PHBQWCFITnVoZXhIVzIrUzRYY3I7PigxRz1LMWxzOSghQkA2cAp6 QjZOYUpNej5yUSU8KEk5Jj0lNkw8QDZPMVBsQXFwZHhXZmdSXmt6JXA1Z1BCZUNCKCkjcXppbjhs Qn5VUzFJQHgKekc4XklgYGtMPV5BNTstVEFWWTR5Y2xBeTNaXjQoSj8kbztUd1hgWGNyNVJvQGBo UDYyNUpRXlJPMWttdnBuc0pUCnpufHN4cDt0YHk/elk7emZyN2dYdmJYJmY4VF4lbk1UMFVAODda QUJsY2xxZlB2amlAVUI3NVlwZmtfS1kwV0h9cQp6Nk9YVlpXR3ZJcWE8M2F0czNmKz1zNG8rfWNG K2klMnBLfU9JMWt+ZjYhJXlqT28mP35HKWoyVkE0dkt9YX1ha1gKekhlWGc4LUAzO0ZgbXpgPDJn NEhqUzAzO30hWnFkbHJHfns/amtFX1VEcX1FN1RSRVB6UW9GZ1E0VGZWbjIzc1pPCnpabzAlYTZt eylpckFaV25LTk11Yyt9b0k3VGRfPEh0U1JyNUZEJGZnaW5ZSU48N1l1V1N3SEFONFY0ciVILTU9 Iwp6RUJ3R0x6aG4+e2okeVdBZ2gkfjIoaCEyQjV2emF1Kk4oXmlmZ1ZXMXAtTW5TVEkrK2d6TVlD SjI3YX15Z3JWWGkKelJRJmFAezxzejcoOSZZS0RQUXlvPUB4YXxyQmxXdlY5dFZySHJZQW17VGdO SGRKMXpfMlJOMzZEd2l5PjR4SFBECno9WFhlZXRjUzhAX19qZH5AMX5PMll9Rll9dF5Qbj9TTT9A VTAmbk5IWVFlPHBCYVZTJFlnMEN5QVF6V1NVO24lQwp6KiQ/WUFCTEswNVlePzAyTVhBMjlDJUh9 V0VeJDVzLWpra28ofUokdVNHeDY0bXpgdW4mKjR5JilkN2F0TWh0NioKemFwSHcweHQqYkdOPiE0 Ty1nezYheylXck1IaGVDNlZ+fEpTMVBqWH5LYlRMU0FzJXJ4bmhQSio9a1UjXkVWQ3VDCnp1dX1V aXw4NVcyTnRUKFg3YXlNSyF4SjFESVVWVUFZZGBkc2tDTVpSb31gVlQxRWpYcCFTRzhEe2h+Ukk0 Nnt9Pwp6Wj0pdTZfI3U5QFlNVHF2OWBfOHFQU0B3SllBV3M1NkVhb0pKdEc4IWlkbnZZRFZ2Jkdl bUo+OWRNM0s+YnUrMEcKemNSZl9QWX1sZ0FHPVopKGY9YiY/c00jTjwyIyo1LT44RUBTblIxdXRy XiM2X3dMYG1IUmBOMGgrK01LK282TykzCnooZTd8JDs5bEIqSkFjPWA9TGRJdXRMcytadTcwaCVQ RXhiTlpDY2U+QDx7M3peYE8zb1QlclpeRHNrfW1FSThyOwp6bTNZdTY0Z1QyQVAkUVcwcmxleXh5 ZURSfUEzUU5JJHk8Vy1ZbGg/QXs4IzJ0eC1mWSFRdkp4MjVXSz5ubVRhUnEKejh4OFdSRWdDK2Z0 PnB4TzRJejZLUDlXczZEMGkoTypzVFU8TmRzWil5JD5hJUZDTVNvcjA7K15Xej9xSSlXOFFfCnpE I3RCaGJXdUE9bmZRaV9BKkNrYnd9c2BRQDQwJmQhTUI4cWFgVSo2QmtpLX48aDVqLWtYNE5OPEZJ JVRhTFUlaQp6YVB4NiRxVj4+YkB3Z3JHPW1rMVgrclokaHtZbENTaFEzOUBvRUxxJTlmUzdLcHdZ RTxZSlNfK15MdSZ+VUQzcVAKekR0QSg4Pm9eKDFnKy1adVZAQDRESGZIWH17LVV2UzhLYUhIVzVf N2JMbUk5RFUmNXRsPlZ3PC0yK3RtX29Gbjx0CnpBKEUxZ2MhOG4oUmxgTFJoQ3NAeEFyNm0takAm QzUmdXo5Tl9odm82S0pqPktzSnt+ZT1CSTFUN15yflcpTTFYNAp6KjBwXjhZanVaZWtydlNgYGVm am5TQ30yQEo4cDU8WUJGajdCYCE1Xm5CYHQlPXpuZzUxfUZPMWsoPlY7eUExaUkKelJ3VnRBWnR8 YXFgTGh0aVdnJWFmYjI3JFo3R3Z5PWFjbShMWlRaMHRSail+WntfSn1VezI+UU1XQClvbkhCUjt4 CnowMlF5I1RfO1NqKSVVVEYlWEtYPSgpYW4oRX1oXiNkb2FjUWJEfTg5NnZ9VFZuJV5Od1lEeSVj MENuSlh2SGN9NAp6XiVfPjRXdD1WUk8jWFN4dDh0SlNZSzZBNXMrd2Z6WCowR1pMYUNEMGBsfGU1 T0A+bTZfbGFQMSVNITw3NEQjZDsKekc5NmU0OGprVkxONjlJSUE3c2xCUTFiZWw8JTBtJkJ3MHl9 PmVWdiRSVk0zMVQ1X3ZxeDdleD8jNSRURChBaksxCno+cVVEU3pVRHU1e2p9TiVLQFE5TzRlfStA V0kxJCtqTFVSe1o7WjE+WCtGQmhqISFldmJ2ZG5OKTAkbG9rVE5+QQp6LU5geEFaMV9mZEY2VVdL PnB7RENjK29qU2NiIzhJeDdfYDlwUnRHPzR+TEMha1JVTTZxXnN7akFCalJ0JD1kSCkKekxHIXtC PzNZSnJZSH5McSo/fnI5KzcqMDdmNlQ+UVpvQ05Ja2pLazNrMUp4NmQpX2NjWlBFZikyPT5AfkRK Y2dOCnphKlNIYSlsXjZEYW5CZHl4NE5EJVBkaiZ6dlFTNWglSEY9fT1HTDRFUFM7IylzUmltTyE0 aDZtVHBLYUBzXk92Twp6XzMxKXdhYUMqMnd0Zm5Zajd2NSRgTlhUJkx0d0dlTERNN3dXLWg2VWBf PU8oaTM0fChFbndDSnRreGU0SXA1PXQKekhJUm00TUt3SyN1ITxOQkBrdSliS2A5T053d3g1MD8y Y0x0XnBhaHk4NFI+NUUmPStTaVltTWw9Qlc4Sk9CISNmCnpWeW96Rj1aaGhjanpvYEQ3KjsyfFg7 fT4ycW5AWWg9PSU7cT5oa1ZKaFppbHN1QSNEZVRCWG5hcXpjU14zZUZKUwp6YmRRVEgrPlFFJDhR STBPYjk9c1dAUyluY3k7SHlDNElkX0EjUiRtTUs4K15rLWdNVW1AZn5yVnpONF9LPzdDWW8KekIx RWctI3hvM2g8ajJ9WllzNz9oaHh6PXkwZz1OT2trdW9zX3B6Rn51fWB9M2NYemRSWmpHYWI9Q0lu JVVQM3lMCnp7PzN4I0Q8fkVKRUJyQHduVnsqOWY5LWxjdkpqa1RHOTIxY1lGSktxIUp4Y0g9NTk4 UzZMNGlaZTtzWWtAWHZtJQp6VXtzYXVoV2UkTGZfNG5MN2pgNkZ2NihLY047cHhkXmw3V0stP3Jf KFVWd0RiN1gqcXdEfDk2KVkoNW1hdT5rM30KemthcS1ReXFrUX55bXJEfS1sRz5mUWRmcSEqanJ0 WHl4Q0hqJDs0Z0c3SyVGbyE9el5QWk5ES2dOIzE+Kk5DKEdYCno3ZXIyT2ZiJGhkUiEkbFEwb0RB Wkk5cTswS1ZOY3BSeUxuOTZ8eXdFbH1jXn5tKE89TGs3PDBxVVRURSYlSClFfAp6MmdsSXcpJkE7 PVZnMmltYF5sZnN0RWRRc0VqcXZeeUxsYV5AbVclb0pKMV8mLVRPa3JiRz55fkxDOEJvV2cmTDMK empQUUI9Z1dZO3cjUU4tYE1LMDVsQTRjKCZlKVp7fD19PX4pI2xTe1loN0REQWc+YWlsJTdnfCg/ dG1BYEFoKylVCnpZUn4mcj8xT1R5Q3ErT0xyVkVDR2dGMEZVa1duS1dHPnR7XjN8Y0BDNDN2fkVr RlchLTJQeUQzcCk3MGdAZSEpJAp6M3x5dX1lKCpWTil2OTZQcnJzZzQzTTFNU1NAc3AkLT55MHom RFd0S0VyYzxrP3g1XkIzelJ5bz82MmN0IWJkai0Kejw1c3JEQjBxMXtTXy1NSD5heHB0ZTtIKDt6 MmJKIVUjTDNLan0mP3YpJVA2d0dyVXJLbjB4JFc3bntiTXgtdEs/CnpkRzVwM3JOfTJ8e15MXjUy YEV4fWJ+T1Y1bXQobntqdWk0K0dZKGdaOG17RDRgQ3ZIaFZzK1R1d0t+P3chcE1oLQp6KWUzZklo RkNfSHReRCE8dVgkWHJ7MSk3clpiK0hSX294WnxYOFV1bEZ0WWB2MDxhNX5QWn1GQjgxfW1OTn07 X2EKemIrbksmZjt0TGcrWitwSzAjbUVQWFlQX21zdGxRTGdwI2E0PWRNMX5FeklIdXdwJjJAaXB0 SnhRZHBqWEktX3IpCnpVZHNYXj9efSZLK0M/WWU8PSZ8KENLI2Ize1A4ITQ+R1pMMHdEMzBgbiZS X3I8MWpecHJoO309MTE7KzVzP2hRSwp6aj58aUV2Ukx8WUxhUn1SRUMzTiV8QXtJWExsdiNaMVN8 NDRwVlZwPylZUjQhdnZIay0hNSQpeV9udm5KT05BNFAKeihiayNDdWxfJXhUfkthRHFDNDRyTmBv bzVyOTwqdmtse2BzMkJVNEhvTURlbXIrTUBeTSU1LSgpJHF0cF9iO2lECno7S01ENlpyQzUldms+ U1c9MHpVJEVVcE8lYFc4MX08T2kjUHR+PFkldGA4T0wqQzRTY3Z+djdRYVR9fHcxJmMydAp6SGg2 eWs8LXRlTWB5U29tbj02OTMwVCQhTGIzZG41XitTc0tMRCRIV3VGNXgoSEd4T1NMWmdMfllGWjw+ cU41VUwKek5KfEhxYU1yRHd0QDcpKkBsTlNaOUAqZDNVUmBjOXlUdHItJUpIViE+VGc5dThPMXRT cl82dll6dFhhVStEX1gwCnokUCRVNVFnMVlYQmlxOGV2ZHlaPEdLN1lRPyo3ekFIIzZyRGEoRW1n TSVBVVk+aDJ2MGEkPit9YUllZTx4Vm9sJAp6QyZtbG52Mj5nTiUhUTE5JjR1d3JTKztQezd4cSNE N1UzMkBAfVQ4QUMleDU7Ujh9blBBcSlJaGQ4KiNlY00xQTYKemIlSmolcTgwamAxQDNgN2FpKlle I3p2V28qNXlJenFsMztodTwrKSRhMyF6OEtMUE1GQXtoYnhLZXVASjtFakY3Cno1SHEyJjVZWmlS P25UVFB6Vnt8WSEodjFmST97WEE7OUF3KCNJNkBMJmx8VVNwakwrNzNINyZafEsycFBvUm45bwp6 KHwpNXclTS0jQl4/YEtAMzV8cV87IWd8UmQxaFBMOUVhZnl7S1pUe3ooQUpkdUY4NXIreTl7bDV1 MDs2Q2xeVUYKejByUldHcz9sMypmX3ZDIUojMjt5dWNleH0qbUtzREs9bj1tP3NhPFQtNWx3aXlQ aTA0JSZ6O3EjR08xT2lxZmh+Cnp7XyRkRTsoWm10UXRVaD04R2llfEk5THh8clNyQGFFRWxWI145 Wj5aJihDP1JgJjFLPCpQSHJJbWQ9cSplWGhpNQp6OERqa0g4N0tkMW9FOVYhXzBjPjw1fSF6ckY0 ZDI2ajVsJmFUKntiVlJ8KjBXKS1aVGlRJUduX1Z9X2U/Q30+KyQKemdWcVM4akNBcTFMLTtEKVMw VmEkUDFYaitUeDxHWmR5X1hoPmhCcnplb0dCQy1BKml4bjsjOG9FRDlqREY1d3d9Cno+S2kyPFUw S3kocEwtZH4+Q1pgRDtIT3xCKEtBJD9mPHN8R0w/czw9XytEdDdAfCVDM1BZd3NeaDJKUD9ZQ0w1 Swp6bHREKT4zOWtyOW5fMip6amI7JUc0Vj92RDhzWHVjMUdsPHNiYTxgVCVnY2FpenEmbXRAREA2 QnZIY2BJM202OXAKejNYRTQjaSNRUzNuaD5INFc3bSF9THNAPSood1BnQWRAWUpAemxgcnBxZW9y eXhybSp+SDdKTGJvSFBFekJvN3FCCnpUYmxZJTVtNWQ7QUslby1vbUFJZHNMMDhve0NrfmFxUjdF XjxlQWY9YCs1MG0heEE+SHNfNXI2TWJWOEc8c1F7Xgp6XiVgNFdSPChqS1Z3Yk5UYVhDKDhgfj95 PnFYJEBPNEEteDktTTRKbFc9eTRpaiRKR0I+VT0rTWNHPSpOTTt0aUwKel5HSHRRe2oyUn4tUSR+ QFkqdCFBUE1PfGI3RWFnZCQ9T0dBRlprU2JTTTRmJmNDKlBRVVMhckl4KVA1OFhVclVQCnp0XlJn fTBIa1JBcDBEI1U3RmdgUjxYWk9sLXZncV98MlRSMit9NitlM1N5QWpnMnFsNCN8a3V6ZjxXYysj JCNoewp6IW1aQmxmK2hkTXhiOGN8eXp0diFUayhIP2FqKjdid0BLPDtpYWY1X3RxaHFJSEttUG94 byUpeU1FLUdUV21iUisKejhUPz9uXnI1QWtuYjFZP1MmXmNfKztGdCNgO3BVOHNhIVFZOTZjM2sl PCV2cm47Sm5ATVFCbGJfQEcwQTIrWkl6CnpwXyRYJmt5VGBxb2xWZm9FfjtrJTNma3I3VWpgT3pH Sl93MzF0R0VWcjtBcXNyI2koSUkhZDxuTUJyWHdyezYyZwp6cF9kZGk5PFlWRztWezJNcm9xXkRI SnkpSnt3Q2x+OWc/dG1FVkRrP1JwVER3aXEoVjwyRSN+UzE3MUpgT2h0RjEKenpXM3oqUFRrRi1Y QkdfeTZVfnl2R1AqIXArfCY3ej9uQitZSlgmT14/WDVneVZoeXV3ZUZYfGNjSTJHMGtMUT9aCno7 OSQqeVc5YUdueD83SGxeMW8lQT9veitSUTFVN1l6OVU3JmhWUXA5YTh7S3xDQnZXMXVCXlYjMEMr WmhfYF4+dwp6QDA7JV9MOT5xTjxGRWU4JC1McTBxfGVLSU45ZXAmJlhsXmp3IzMqNThvRUVhcmEm NGxiKSk9WkpJUWVmY1JyV3MKelI9eWNVWElwSjFpcWtwPExJZGFJcWcyND8rYikyV2ZAWWU8T2k1 K3NBbVdwbzQwM1B9PCFPR1BoezRXb0xYcSl1CnpWO35GVSZeWFhhaEoyeWQkcDYjfi1kfU1vJTQ9 RE5SSmVYO1hOdmBrN3Q7fHgoN0M+cCp3Pi1CYWVqRGhhME59NAp6JUFMbkt3KitEZjluQD5gZU1X cjtSRjU/WVE9SkYzTmVYdDBGQShTQChMSTl4ckVrcllvailWKXo8OStqN1d7cjgKejJeOTh3QkJ4 ITlZV3dGKF8zdSEoWkN3SXBXQiRLNj1UQ0xuS3xBPyhlanBnJXp1VGx8Zz1gVElFe14mQkNCVCl3 Cnp0fFpPX3NmQiZxTEdlVFZFcit9QF9eb0k+K0d6LSkmOTFobHAkbD8qT0hTTmBSWWd0Yng/Mz1K anJSSGBldmtpYQp6eXs0QS1qPlFJUDFlendKV19gUSk3S2hDVnZqZ3lwUVAxeXxBezZjYjRjOXAr YmBpbVBJUyZgZD9qLVFAdzdRJTEKekBkKyQ1XlJoUWxGdF9hfXYqNilfcSM7Zm1fZF5rKFRRUmlT MU94K0lJT01GWjdWeC0lND1yTnU8OSFmVmN5KHRGCno2MyoxdmQ8e3hfcStQT2Era0JhMnQxX3Uj ZTJ1JCkpZDVIYHFVdVFAdUJEfXAwPkJ8bUxTTHVZZ0VtY2lreEl+bQp6QyFrXjhaeT5jbmVUQTRK TExXTHE7cnphUjV4JmUjSkJ1KlJXalp+eXhJMXopRWNQd3ZEbE9fYjlIOUJ2TUt9TnUKek5XTT90 P2N5OXgoRDkzZXB1LWohI31vMl4+e21VT2BURG98SDdYbmBOR0U1KmBMTiR7Tj9oK2QqSG9kfGo1 JU8rCno4WkQ2YCQkQ0VxY2dAOy0lOX1JPHkjQkYqdmdleUptVmpZbHFxWUhSY0c0NGczYlQ0UU93 KllyV1ZTe3xyT3YzSQp6WmR0bS1Kc0RHdStKVGN9O2tQViRUPVhTRU5MV1IyPEBrbnNrfG1xIzFZ I3lIMW8xPExFVE1KMjNWVHpDLT5yRD0Keil3IXJ2KClgakR3KHcrOWcwKWtDakItNnhWYWJZSVdL I3ApSTEkc2hLeUUzT2g9RWloeUVBOF5iSSE1VmorbiZjCnpFS3UjQDNaJWIhV2FGbHA1WTlVRHk2 Q1dJXlZXPlU8SzNzfHpgaX49TUpSQUUxIU1uUURjeihGQyM9e0pNRkdWPgp6PWQkckwjblQhUkt3 e21vZDRycXtyOVdZVncqaVpkelEwaFcrbUFNX01lcmh7UjQzOTt3P2VyPmpvfUN6T2pLY2MKemho V2FwWnxKI1V2cl85RjdyK15xMFZXbjZ1Tkp0I0lhYm5nZXZ0eFB4JDVkUXBseztoPWhFYlRTQD4t OyR4VjkqCnp0THxJRUpPRVZ1SEo5S09XQGRJOzRNUWh1Um5yb3taUW1HKntHQWJQS19udFRHcS1v d1lEdD5UWXRGQHJKTGBOOwp6MjB6QEJBdypYdSgpVWh5VSNlZmxKVEo2QXJvI2tlJVZSUitQYl9F X2E+NG08djBBaEU4YjVBLUc/NEUzdDFgR0kKemRIeVBKV3xeNFJFcmlWPCYpVXVMM21TJXNoUmo0 QGdxaWx8MHtoWVpPbzAxQllUeVltXzNzc3U+NHkpeDdrJFQrCno4JEVUaWpteGd3QSV7O3E+aVd+ UWV8WChFeDZ0OFJfQnNxJnE1dUpTN343RG8pQG5XX0BfXlRyI2NpcE8hd2dMKAp6cFAoMWhKIyl4 PjlYdz10dEtaIUpkT2hzOHRDX2thPi1uamBtfHIhUT5QMnFqXyZIbzVvNSVUN3FJSFQpVFBIVDYK elQ5VmZIS2B+XnM0eDUoV3lYenNEeTBVcFI1MXBqQWxVU2VJc3EjVyhXfHJFSiRZPjgzPk5PKGJe KWs9cWpqa2lzCnp7MWErTTJmVD1RUWJSQiU8YXZuTmwrZV9mWnokUEMkbCZ+P2s5RXJPdWskQHpU PjMkUF8wZlE/PVRLZHcwNn5fQgp6VFReOGBeM3Zfe2pSaUNKUWE0RHlyaE4kc2h0LXJDJGgrc0lW Rj9qUUtnP3BpWTg+XktpT25oQkBmUCRGdCU+a1kKejMjRjZVe1FJRig8Tk41KUByejJESF90ajhR RjE+Zi1IQ1NRdXdfMSVhbG1kez9Cb3dqTHcmI0Z4TzJ+UV4wKGJzCno7ZyMjRXJgZk5eZlFETT15 P3pzPz43dVR1d2dISHFgVGVWSD5INnY7WjJNdXw7aE9hK25RcER8ISFTSUVOakd4Vwp6X24hRGAr Uk1KMEBqeU47I3pyUSo8cylMQT5LT2txUE03KUhFRlB6aC1IbVQpKDB9ZkgwYnJYbEJ9ZWp4WGA1 MDAKeitTODlPRm1gcWtTJVU1QTUwfkxgZ0hOby1VPU1OMV5PU2RSPktQQTZjM0g4RW58PnRyWmp1 RlRvRyUwaDVsQVl8CnohcCg8VypuNmNtYXEmMHkya00yX0JwM0xTO3laWFFzXzlTPEA+ZnZDJnpE QmUwJT9ZMXNfflp9SCQrI0daRHRLbwp6NVVnTzxvOFdXJm1wd0BNPERnP19uYj9GRVUrK3FZe29O ZEJBTkFDYFdVUClgPz9xa0VoJHp4X3k4JnBDZUBlflYKekN4XzEoeD9uMihDU08rK0Y1VD90JkF4 OU0xKGFwRytSSFJFaFFxKSh1ak0lPzBxbVImVkEyMisqckI0Sy1mQXZaCnplNTxKZUZSYzYqaXRZ RTQtTX5LQEM2NkM4RG4yKDdAKEVaZ25HPylQdTEtXlkzKWRmdT15Mjk0QU5odD9ofFFjPAp6QXsm d21gYyU2RmB8RUYzYHZeRCZgZTdAKDx2fHImYU5vI3A4UCtyNkpKVWp9PGFDaTU0OEJzPWdTZ2pi SnpPYTEKelU0aC1rRSVJaHQoSE0wUV95dUp3aDI9Qj8+YTYoVD0qRnE2THE2fnQyMnpuLSRse1hJ YS1xXy0mOSt0TG43eDcpCnp2R0c+YSV0SUl2T0ljbGNUa1VMPj9mSzB1WVpLRGEzfDxma3lhLXhU Mik7SUdoYil8ZTdINiR3TWF6R01EZ2NPQgp6cTNicypvTnpIXkNBQiVRRHc2Mm49eWtNejQqd1lA d01qUylYcGo+cSg1ZWlxbGZUIXtGSFoofiZCPUgtMlIpNE0KemRycClNM3k0K2VjNG9OUXc7ZGJl UHZfOWo5QE02VDw/LSliN0M8PEpXSj44Z3taJExfP3A7Y3cmeml6Mmx8Z0leCnpzZ20zaytBZDY2 Z2lqRzBYVmNvZ0RmP0xwdldBNmlnO2k8bUtJQnZQKDEtQ1gyQ09xcHE2c2ZBVEFBaDdReylaPgp6 dWNPVjY8Yj57WktIUExiX3FSKXBjQ2l3QkFAOVd0PkNAIzY/TDJPWnYhc21gQlJNen4wTTFGTXB2 Pnc1Tng9KCEKenlSRkk/dGlxNk8oc2NxMldAIzEzZCV8TkxuJStSfTF3cHwkODFFKEpsQEtMKD1M Sl59SiF3JDVROXZXTUQpT1JyCnpAT040RFI5aDJJalpGQj9JJDArZUg1SiRfQEAmdnAmQiM4bCV0 K0hiMDxlbXt4UVM5ajl4YHMyeUQ7e3RoPHZncAp6ZUI7U1VxYkdPZFN8I191TG9GeWdOQlRvaThX WSlsc21CV2Z1dXNJKk87TmpsRG5JR1V5QExoYUppbmtGKnN4e2sKektmeW9NPSR5MEBNWCVnUzsp N1lOMmd4QC0qdHF5dHhXVSR8QFNqbE5nUlhPeTFmQklKT1JpMUJFfUJjN2FLVXVDCnpqb3QzfHM5 cE1FWTFRaT5YX3ZOQiY2PlNUX2VqQDI0ZEhsckcoaEplNlB4dSRKJF5aWks8aXx6OEZNMmF3JjIo TAp6OztBWkYxbHE2Y051VTM/TnJWXit6JjFnT3V4UnlLY29jTz44dn5JMW8+YDFLTSFIQmp8NDgj SFZnUWloWWx0ZCkKenleQytsP2BIbCNzQF4pUHQ+KzgoNHFuYGZkLTNBI1FmUDZmNm5BJW1ZakQ+ VipVKTBjLVFDP082bkVGKSZZT09KCnpfdWpTTWYzdVJEV1h8bHBYSiRYbz1nZ0JTTTIjUSlWUTwo cWc1N2RXMEBXT3RVeFlzTzAkTjFrczRebTF1SlVtJQp6cTJsZyNEb34kOT9QJXRDT0dJX2w9Uloh RFlqNXsxTF5Zbz82eytieXA1aVhSWE9fSXw5VVotZ1p5LTBPdzgpSH4KelNoOWRHQFRVYFl7VnB8 SjsjdDxQQkNlZi1qOWxRXiRIQ1RpOCtTOUtvdWAkPCszaDZRPz4keyY1bkNkZm1nZ3VTCnpPLWk4 VFYxKEkyJSZBdGFTTnd+Z0d0P3wkWDFRNjheeU15KS1fMV9HN252QFoqNTx7MWhmcGpDUlljZm9s bUBrKAp6VU1adCZTUSgpRiFUeU5IPmorSm92JX5uTXpMSWMmQjxaY2J0UWNGPmdhPyVtZ0xOd1c8 OGVXd3NQamV0RnR4UFkKel4+QiFZQHlBUzhje2JUUCg7bXI/YVQqajQrb1BFRG9DPUx2SSpjJV49 OGorWDlITyh1TTd1Tnd1fnUzTjB8MDgqCnprcFZSX1Y9YUJYP3g8SVgmTUFTdUg/S3FjTG10alI4 eHdXRWptej1tVTchWHEkKGxPczB8MUEyJXp9d3IzMnVgKwp6ckM1akU+NFNgN3EkVWlwVEBsUkNL I2s4dG1jVGRweTNpKlhlWnhRYW9GfmVJZCprT1FiLW5GMkFFTTB5YVBXckAKek5+LVN6IW17RkV2 aUJ5elkpUz9pTkZ4ZWUpYUMqJnp2RmF3VChPa0kodG9TI2NhVnJvcG9nbHNGejZQUiE1dUg7CnpX OE83JT5DcUJsUmV5SnF0WiVJNi1ePzN+UUdmWW5FMXo+SFNYfnFhZWgkMldoe1RJcCVBNVBiSD5N e1YoVXBRPAp6cjByUWdLLWRQcHc1M1lUWD5kUXZrPTc1RD11K35JTmBHMzFvXl9FI00heyYtZTxs JFplU3M9ZzxufUVNVGApS1MKenhFY3NDc3VzM31CUEc5VDlhbVZZbll0M1QqUU98VFVaeHcxa2Ul P2J2OXt7bzxKKEdoekQmNEBzTlVwdUlfcUVACnpNcUF8XyNlM2drNlMlWlR3K21RJEhfUmIhZUVs XiRjcT4wIV9nQjBRdCgrcmg2YUpAbWk2b2khUTd5eCFlb2c8Qgp6PGxFYGk1clB4cV9nJn05TEF6 cWRxIX0pQWg8KjN3WCZ6XmU9UFVaWTFEQy1EVmY1NjNldXI9UkVNUzhXQTNnJXcKenJOK2QrQE5s VCtXTWt8TWJGJnFFU0t2RCU/U0VpbUwmOThOKUVUNGdOazljd3hWI2UwKXZ5SWhka3l4UXA5RlZE CnppNHFqc2xfaVE9bE5DYDIjc1Q7KlgrYH5Ha2d4a0FteWxjdDVqfHBVcEJsTmZ2WmZhfiNrVz1e KzE0QmhGfTJOSAp6ZzBNfXx7bEt4T0AqZ29mcnROe0IqOVR+cGZCNTA+e25NT15xYEBOOGlHNCVL P0s4V1pxJklZeW0rZFJuLTZtWSYKeiQyc0xaTyU0NXZHY2puWT5Ab2RuTDUrNW4+dz9CenJISHFg cWQ3PSt2PiM9JTg/bjY7NmtkMFZaMFYmJjR0TCZ3Cno7USRlWWVXeGkwZDgyNHR7ZiVzd3w4aUlG Vmc1Jlo1b3h9RSVncGB0aUtTeEZaOGpUSUNaQWlxPHVoS0wrcHJETwp6elBDR1BQREpidkNvIz07 YzRKYz0mVVFYTWVFfTZsaWlleVdSbilMbyRlJHA5OG1fdjJZMyNAbns/bE40QSk4e3cKejEyfTk8 PjFGO3lsaHs2Z0stdFhKVXY+ZktfPTRNYWtyTnM2alMqWmIxbEY3bjheeFg0X1B7KldfRHV7JGdE PjNPCnpXJWIlaXdIMVplVTt3LUU0QCQ/UXNCU25uYjApJjBEMkIzekJOWUNmTUZDe2tSK3FsIXR8 MDdvM0VxbHcyRlV5Qwp6QEkycnVaS3JlbEBXZj0+UTl6UTF3Nz91VDlebXFJTEVuRVdDa3Brbkx+ TCFKKUY9KmFkcWBxSkx1dzloPkRZZHIKeld8VX5XbVZrdklfdjV5cCtMcytvZU5zd2A9UEFTXnNI ZFNleSMmdFpwX3JlRFR9RTJmOT0paDJmI04xV0ckRS1qCnppeUd9Vyt+O3hadTFzYlEhPmM2P3lY JE1PYExBYHBrbT00UDtgVXliJUN+NDkwelU3Sz4jTTJLKCgrUndmWHZUbAp6NzBuNjBvQzRFI1Vo N0dmKj4yQiVhMlZQdlF3c3c5N0FiND5URnN5a0QoKjdZWCVne3xIYlZHMjImZFJoaE9pVHcKeiZr dnY0N2UqWFQjTWB+dG9Ke2crbExYe1JDUlRPVz0jP0RmRiFVSWZjKDk1aEYxT3RaSUAwNHIxSih8 JUFMUlg5Cno/N0hDVGk+M0B3T1F8OzdMcUg8eGV2eWcxeHpAUW5GRE1TJj4pNVl6ZiVOIz1TKn00 Q2w9Zk4kOXJ4byYwYHFNYQp6PUV9PktDIzBEVmh3N3xMP1RTU2B4bz1faHE5diRxVXlqRktRNyV4 PEdoZ0JNZXwjfSNpOUR5KWt6UXQyI3EzYXkKejNzaCVJNjE5K0I3cG5+Vml0fjNTdkxWRFY8cV5s ZjhYKFhUayZIMDBuRFY+JF9PVDVEP0ZXfUFOczF9JTh3WENICnpkbjQ3RTlfZiozN2RJSGdDQGdJ WkM3UFpTN3lJcEdnMTZoSmxvfiNuJS1Wfno8aSNGKlJHI0hTbWloZEpgZlNLOAp6YHwrIX5jNlAw aSNoQjRrVmE2bHhiSks4d0RsQGp9SkpUN3Y4YFhoOEomMXx5a0xDWl81YmJhZ0t1SXo5YUJ5QDIK ejA5clc0bCE3O3BLVk4zcmVJe0ZtZjVVJHtqM1R+ZjZTP0JvZEBwVSp5PUo4V0tPa2t6clBxWTdA Q199JipsRTNSCnokeCtnNXp7WkYpdENBUHBSek1ubjAyKHB4aTVIXiMrTjg7SHl6dXFxZUlXe2Aw Mlo0PCNheX4pTUQqVylsO09iNgp6QlVyS1lATF9kQy05ekB5Z0x4UVklNy12e2p3Yjd+cjs9RD1G JTU0S15PR0BMTDFMZHJVPFVrQ0ooWTdJRH5uayoKek4pemdDX0BmJDltLSZAOVBnX09PQztpUGk+ O1Z5TDBJM15JQXVYeERJT3o+KzM+PzxfIXx6bSojVkpIT2lpJDsyCno/eV5FJjNGIW11ZGNMSkY4 Z2VqYWBVVFNuSkZLP35jfVBCYlRqYSkyYUJad14oemxtc2hgUCFyTWJBMDB3UW9tbwp6UmNOeTV1 OWo5OzJFNXxaKTJ7YDVZaXsreXk+fHtLKzQtZUkjUjk4IWhLQWFReVdhX0w5bkF9bkhxMDdnb2t4 YlMKemVpbDVrb3d2NHB7QCElYUB2PUhmIURea1Nxd3p3ZnJudy1pdTUoVHVnfUlMdT5mYmNBYVAm RTQhYjh0ZHgkVUJtCnomWTM5ckh5QlZkcHA/MC04I2hPPVZmMDs5e0czJDNUWk8pMjQkQUYkUHlY QzRBcHI2T0pFYGZHI1Axd2MoJE1ESQp6KExUej4lLTc5NiRyLSU8Izg5JCpPbmU+M0oyLVFfanFG R2xCKXpEeyp9TWAzY3wyJXVFcSVMc3h5MVNveEFXOFQKeklFPzItZXtoe0BAb0xQWnhabn1kJkRA Nyo8Zm1gWDBYUnQrKF55T2ImSEktdGNLYXJkX2xualY4aVdhRD48V0ZGCnp7QmZESEp6RHF0dn1+ Sn0/Skl+O2pHbC14YmdDfUIlWTs9TGJlK2Z8QGMwRmxYaDROeDFURF9wPjZkSX4mRyZCbwp6aV47 WjJtYTR5N0xWPip9ZXhtYWdwMXZJIzluSlZycWtOKy18SWQ1RVNoWDV9NiMhR1R7ZmpHWnclVXJg SkExJGkKeiZQKnhDTllnaD8lRzVTODNKMXZqOWduYGs2OCE0Xj1IR0lrOCVyMkolJjFVRVpjUDhl UDZVdjhGcyg4eWBiMm0oCnpnVzIja0dJPXVoXzJuKzNEbXxBc19OSk99K1RRb2xYKFA5LVIpN3dq NnNWVCo0cSUqaChaJFFlWER+YT07c1Fmegp6SHo1Uj9kRzc7Pno0S0ZwNDk1d1V2Tm4/QF9UQ0FN cGohe28hPHdwK1pRK3U7MSpzen1BbWtTTzdJWFJfYEJeZk0Kem9MYHBlTUdDMHBFQzZQfU9NUkEy OTdXSzxSVDhMZmNCYGRQWGJISldUKy1AbEhueGszI249TGFKbkZ5VnJAU0xmCnpvfnJpUWVISzFr YUVvSWJ4ZUMxOVl8JD9DIW5+RzVWJVcoSm89Wk8kb1RBKjNlcE5VRFRpSWYtKEMrNnJWN31obQp6 Ulkoc0JeZlR2UkUmS2B9VHhge0V4cFImNHJFNGIzLVRmZkp6YFJYdClsfjNHeSFBYitObGp6PzI8 amtfc0VrRWAKekNERSt5LTE7ZDxoaDF0R2h3eW5OPmZTZD9ZMkhoejI8I05idyh7djlCIVZqeSkk TzhYRkshUDJAbk5CSnh+QSQ8CnoyZUJTR1FrX1c9ak47P0hka2cyYU00WGUtWWx+UVZfYH14OCQ9 VTA/REBrKG9XRmFZOSQ4X1k9T0BIVFJkb2A5Vgp6aVN5JXN1OG8hVmVfNiVmUyM8QH52QDRBP1Rg PTFwRmIjSG15QSEpOShaNE8tdTJhM2xjSWQ7M2BqUnZUYkRWWG0KelRjbT5rcDVybGk/OER3VkRQ ITZ8KVghdT9iYjdWTVphbil1TXRGTyV0ayU1UHJDUHpRNVRmaGNNQDc4VjB9N1R0Cno+V2VORylI aD1qcWJBJlZZP3dJT3oyfWl0KF53eWhGcThMa3U9UTs0aEQ4TFhEXmp2PGZNWWBpc0RlRlkraVB+ ZQp6bXkkMlA9aExMfmRRfiFoNW9kQ3BUfXo9QTh2ST9xNVElUm0qMzAzITl6JHFxaChXWk9RbSM5 NmhTWiZZYHR+VkEKekM3dSp9XlV+PHVSZGR8TmxobHBpTHotbHtUUXVGYmJ+KkR1VEp6KHVhP31N bTlHQCokWVp4TTJRazt8UFN6Wk43CnpsNmooOGBxNEw7YDhXM1JFY3FRU2RxTGhacVpZQWJEamoq Uk9VbTl8JW9TUUBfT3E/R3NwPDdMVml6azd6SWlkZAp6Q1ckUUJscHFqbDVYSmo2Jnd1N0NzQihg JEQpNGxNJH43KD9BbUo1aFJxPyVsditWJmpXPDFwUEkzTXg0P01PITgKekUhUilDYDVuOyl6Z0ZW OTcyfSljQTZgfWspQDlCbiRJflkpRjZ2U1lEbV93dT81dihvaUBPQ2ZsVUhaJVEyb3c1Cno+WFoo dk5aYW5yXyVETTRfaUFpVE9yYzw8PHo8SmlaajtFM3NqREV9WWp4bE9XejhtK3U0a0BvPFI7KUlJ QnY/Kgp6Vj4tZFJUU1M3dXZBQUpAUU4xSz4mNGJFYnZ1P3l+NCRJendEUFU9cCtqMUleTmAoNWZ5 OTdAPjI9dGpFVmcwYksKemBGe2RBTEIoaD96c251P0Y1T0pFI187I2MqNlohWEVDYFk5WGBYfVg+ eUw7eWR5MVVIQn1vJkIxfGEpX2ZOMyh1CnpvdFgjITk7NTRgbFRaZUFaVGwlcTtzKm9DXk8lPEVl SllGeitESEJBbH1COWgzV0hMYXdqci1rZyRGU19WbHwkKQp6elRWcy14cmJrejNFMXNseUNYb0Be eHQ/VVpNIVNsUlZzU35aNCRVRFlgQF8oLUJxeFdzVVFBQCNCRnxpbk9sUlQKekZuc29Caz9+SWtT PHNUVGhvUWJgZH4kOUxwSElxYTA7Mz9iUTlwbkVtXmVyTVp6KlY+K3ZOQDthZiRSXiMqWTxCCnoh MXh+dnBoaEhVdmRhcT4xfDw0UC1nUGU1MCZtfXc8QjtSd15kbWJWRm9aQkVFJGYkR2tMJEwjcGRP cURkc08pMwp6blZTKzxOdmx1UUJgPVRZMGl9Y2JGTVhfc0IwMCYqKVVPK1RVKTRMS3lWTzNxVXlp YTtqJF5RRzcwRGZ3dHhlSk4Kem1LVGEyRVVOfiFmaldwLVM1QXlldU18SzBeQWNDdHshNURxSGs8 O1ZTQHJVWWE9Q0t8bm4ra3I0aHYyRT5gPTBQCnp0KlhUNDR+NCpiejVqYiVQRDNOaGFCPWxaeXJG eyhEWUUhSTlBd1g+WiEjS0kqN2wjOGdhSGRpIW1yZX5pYE0pZwp6O0w/K3d7YSUpRHk0I0EtJUpx LWBYQmBBSF84d0k/TFZLZlVAeiNqc3J2Snd1O0NYTjRjPyhTYXNxSnNBQHtXfWAKem1qV3FyPHZp biZycjx4YnBnOVVaQnxKQ3FXSndvcGFDd3UoWDdSfUYhU1RGbSpVck5zaDladD9Te0FPaDkmKylC CnplciVwIUo8QGBpVytZdndUQDspNTJPbktMQTdZM3xsTz1weyloKU5jdTdxN3pKfjhXSGBeJEgw ZX1vTmNUbz17ZQp6S15zWnRQNHlTZkUwNHNEQDhtbDdtdmRWckkkZkR2UEF6fDNlMEUxWGIoaFcm RTNfQSpKOGhgck55NHFqazZtfTwKenMybUhfakZoRSNWTldyNmlqUzdrNzAtUW9OQX1wR3d8MD14 cWwle2UxdE93KW5mT2x3P0AlWlhsWU5ANVEkaEFCCnp1PFgoNnQmSV9zMDZMMk0pRX1QbnlKOHhK bzduMVR1QSVfbElgI05Ad3R0RHdAeWVjRUNlY0JrdXghZy01b3RncQp6QCMlajleeFZVazBNYHQy OWRlUGluYVVVcSsyakB9YmpGMnxXSSNzWmNwWCMhRkM2fjF6aH1yREZIbnptTVMtQ3cKemAmI2k4 YlQ/MU9gMlY5a3tFS3t9UkNQKmF2b2RzLXQyaTUhJTt2TXAzX0o2e0AzMzYreXtiVk1WPlhFel5p MUZRCnoxTVJ9UUl9aU5WYyVyYVVpcmA8U3pRYH1nOUFSVjlJKHlmYktIYS1LaXt7WEVLMFZLYnV2 Y3tWan1FWilBd3pLcAp6UlBoTy0lUHp2cUFtdHAwPD1PVU9WPDg1V1FkNXw+aDNHYlRvYjhNUEdr KUUySDFUM1hnMlp6b2c7bmU9S3teNkEKeiQ3TUc/LU1fKXxHTks2NllvSWR5YUxhZzhSNVF5Q0lg Ul50aXhzKzJVPjR5c2Y9PGlfQ30jbGVaS0VOYUhUQHklCnp4Z2tsREE8PWUtVEY+Ujd8RF9wfEhI WT15Kygwc0clcit3MnBIKjdkeG5NTXpQVjl8azdxMyNqPHp5VD0xOWFKfgp6Zy1xa05Jb30rbmNl dH16KGh8YXZZMiF0ei08dUYpXzx4NV5Nd2NpJkp7Z244eDIoMCVXPkZwIWtuczVFX3ElQnoKenVN WWdmbzglSHZNMlc1JkElSmp8RGVoQCtIX191UVNZQSsjOE5RUjxYeUR2YlJydHlkeENQbjFxcTY3 aSNKVi1ECnoqb2o3VStYNnxhKjRJQ1RkTStNKVpyXzVrMkE9RT5MR3NwSG5+KjEjVEBwO0ZpPSZ+ KzR5Mm9DRDNqYGlaVmVnUwp6eX03di07ZSlWYU0hYllucktQVGlgRUQoRVd+c3pLS1RCayhOQ3tW WllPUlJuUH4xQCZUKlFsb0tSS1pUcD56WXwKenpKQndSPTZiSVhQbCM9aj45dUBFdnp8O002WF9k dERsM0RUS3IzUCgzVDJZQiNgb2t+PF81X1YtM0JYUUZZMHB2Cno7PUcjI2ZfUntTTllQSTBMU0h8 ZGo9eXhEezl4cE08X2k3NEVIS0tEZkVkelIpPD5iTExURSooLXFVVmJxfW1eegp6KUsoaDRpJDBZ X0YkJVBCNjNeP1Z1WT90NXxKWnptKStfMCgyJVQye2A2PjBAJWZ4Mz1OeCZsI0lTYyRPYFYyQW8K eio1O3xZYykzZklkQHI2XkJ6Q2F2a09aXnMzWGtHN0t+ZzF8R1IqVFkzRjwyYWlsQVVnJT8lVUEh ajg9VDM0aX1gCnpGUGBfd0RtfShMV3NqYCFUTjtiaSozUChZYWJZX3Jjb3ReKHxNPXJeUTB5WE1W PTltOUNIdipiPzZvOFc1QW9iRwp6NmsmS24lI0dye0w5bVAxNW1BdVFhQGhmV0VYaiE+fE5TYyRo Tj9sQjkpMXRAR0RhZHBTa3w0dG9MY0BgTl5wb3cKelJ3XkhMOHxIR1Y4QERGQjI0eVMkM0Y0cVE2 eCNQanF6M2lnXzJZKEJlZldufnZyJlIpR2swWHkjemFHZTBIWT07CnpFbnc8YlJ6e2tDenUlWCFO KlcrUjBPUH5PMyVNc252JD44R3J8UWd0REp5LWdUKDliZWRRZWw/NDViM3QxJCtOKQp6VzBVWDA0 fWlKTzhRQz1UZFl0PFFERnxqUDIxYyhqSCNnOyRvRjtrclhMY3s/bTR1bWZTM0h+aHBmfndHe3E7 V3gKejI2eXgyYTc8ejtDYFRMMEo/VypzWXd7SDZXPCFZdE5xU3lIRlZMUzZUKmV0OVBieUglKmN9 cCZQI0lYWE9YT19JCnpXIT9MTUNLdERgI209X3VETWd8MnVALUp3KFVqbVhMLTY0NmkyZX01TTc2 VExXZ1RSPUJGM2RDRUREa0VZfXlKUgp6OWIqY3l5ckt0TGtUbWNiRmZlc3FRQCFae3dfakl+MiMh ZW9HNDZpMFU1eFFTMThwMCliKGFxRG9OKWIjNWxCdkAKejxUKClvV3xgRlUzYU8qMk96Xm5hRkpX KTtFMDlhNjNlckdiRHFCUD95RCNCK0M2emp3M2paekF7P1ZxdDVaWH1HCnpgdipCXzRUdHJDciRv ei05SF9LJU11Q2U4e15HQDwxUE9sX3ZOPVM8fE0rIWlCJDt0bmNKXjFxKmVCLUt0WWM5Rgp6Jnd0 MWEoMkJxOVJfT2dFdWA9JTY9JWtwZzc4S2prKlMrZ0t1fWV8I1h4dVdeQ2hfUHJ1MFpoMlJZXyR+ QHgxaikKeldpUEJLRVBNdGc7dUUkc2E0Q3IydVA9Qj91b08xOUt3WXJnP2Qjb3cob2k3MkY4JEYo az9WdW87bDctYCFUIVB5CnohYjtEZ2VYQm5WTDdWQnUle2VYKWdVOUohO0Q7PXhfJEwybihLQHlx V2VkK2U3aHdrKEZjSk5nS25gNjxDXlF2YQp6NSU9YEUrNGoyaFBnWV95JitKXnI/LSUlN3ptcmU+ WGs3Wk95Z2BqTjNpV3c2YzZvKmc5O0dsejgzejVZOWBhPiQKenszaUJxbiU0aWltKGJGU21BLXpx I00jKSY0S1E+SDVjVzYyTFZudWBIIX0oNTRgSllnTGpnd0tXRiU1TyRvPn47CnpUfW5tYjI/eV80 Ym8hTEw5QGhyPGVgYEBSNTthezdUdC1MfG1iQDFVejMlMn57JER8ZDU8WHlodlpCPytlYDBiNQp6 Zz9XaHN1TDNPPXUoJWokfElPVGdyUjQrNDQjJTZYZjwtYEZta35NNm19SDJrMUN1dV9ZQCRKO2lx VzBBUUZ2cmIKejk7VDQqaTVMMjhNQWRkY3k3TEgkMjwoQldMUyQzJCQ0TWtvQVJQN05zYDZxITt7 VCNYMjNxKylQNTtjNStKOHFRCnokOSRxWUwpbVQmQUhSbztJaHJQY2JOUjFKVFhoVXx7cXUoYXhK NH5LKkppI0hsWm08U0xlKGhOV2Yzcm4hWjUqbAp6X28qSjgkMS1WMk4mbXx5QStYSTFSbn08bjFK O1BQNnIpIzcyJEB7eXkjNkR9bVJzT3wjV2sqfER9RTJfdktrSzcKek8pWUNZeUtATWlPQERLfjE4 KmV4QUl2fXRgfHZXOVUjIyNrXklMcEN3O35geCp3MEItV0NsKWc9Z0tybmUmK3d1CnpRQFN2NjBn fDtzUnBoQWQ2XzMlbTtKeHNKPkU1OHFMMW9aP2lKOyo5eT1ua0VwIzYpeT05MnZDKF45TT4yQiZW Vgp6S0BFKVBQMCglUT9ERjRUT1pQZnh8TF9EJDwoPktFZHxDe1g3bzNjMUVjdWxiZEZTVXxeIzU3 bXt1fUpwWGp0TmUKejJSNTNhbypXPDlzTVB9Mz9LX21BdDBuenBnJUwlRGl8Qz4qY2Vvd15xTld3 TlNtPHFiVD0wJj52ZUxrIz9SMzRSCno4dCorTkRUak44eyEzQFB7WHVeNz9IcmkzP2p6b2E5UmI2 Jl5KUGsrKCtCbCt8OHI4QWA7Ymh9UTE1cyZ7KzljSQp6P01mYVowfSFOTGkwWGdXMkUmVDd0RH5u fSNWcWxJNjJHKTJldD1HOzMqNFhvdUJxfi0rKEdKKXktcn5iZW0odm0KeilZNUN2eS1ZaztWcDNu Q1NAK2BMSitFe2lGak9KQEJ0eVZiTH5ZbFBaZDdIfHQhTlhzTmQhaEc7ZDI9SSM4NEY9CnpqQ3lS QEowUlRFZ2lQY1JtQWRsM2MwQmF7dTt1fU5XWFk3XjBzKE9GWDNUQHRMLTlpN1MzejVBISshcklm QkBKfgp6czdkKExxZz1hb3tfZDFYemEqYV57byVWc0RIMElNdSg5JkAqXj9CP3dkUUdrZWE/SUY8 UUhUNGpRcC1yeUNCRzMKenVXaEwxbiM2dmU7P0kxUHR6bjQoRCppSWhvQTJ0ITxjfTZOMipqTlBn WWl3TXNtelYqQkctakBhYHRzfUgjU1hUCnpNb3ghTzhuLWo4aEpPdW55ZUNfSHVqPl52MXJ9Xyt2 MDZlc3NCUzQ2SEYlfGBWN0JXanVOZ3pWZGhjeGdta3A5ewp6bUEqalJ1Wj58N3YmPWM9TjBFbUFp eCgoZzxUREM7VldvRUsjRzcxNyV6IWJDXiFAUSpXejR6byl7NUJaQUdrI0QKenpvPkZZTSZQWXBa fXswJSlzaVhUU25iRFN8SV9WblgkS3g3c1hlU2RgPylENWFFWjZsdlVqaHRzPDs7NDh+SiM/Cnp5 cGVUUFk3c1d1QkAocj9ge3RQTXVmST1oWkw9VTg/eDBiJSY4Y19teCZRZk1gTUl5WENVfmphTEdY XjlMPWU9Rgp6P1l1d0EzdytkTFZoQiFsVE1GQD5ufHJ2TzVgc0g5T1pDPUN3ODFNPVNlJDg0NzNj YllqR2hiSlUqZCFwOFU/d1MKenRvLS01Qn1RdD1BK1ZpI0Q5O1N2QXYzIzdfSyZ9S3o3Xj9zNjtW Pk1tdERpa21USnl2X2J+RE8tNztyZDlxbGJtCnptSH5najhHeVpHR2FOKE4mdD9yMHw5TEVKeGEy cFptfn10KFhUQ35GTHdVVyQzcl5AfWEmayRSMDwldUhmP3dtNwp6MzhCbnZ5NjBRNThGdVNpMzJ3 UHt1bnk/PXFhZSlLfEl1cWVDJipiSXp5KzJOT0d3ZlpDd0d+ZTtlYit3Zkh8JSkKem55TENKQlBs Nk1XeTRaRkBiblM/QXEkQW5eM0FTX2xRI01ieGkpQjJoVEcxVFBZUUBrVXchQGpEPkVrZ3cmR0py CnpPbU1LTF5jfmdoSjwqY0BBcV4zblQpb2B4TnNIPDcobXIrMyh2UktKRUdffXRMbVF6SUh4Yipf Rzd5Yzg1YExDYQp6PysqUkhHJnMoPGshJDhzPT9pWSkwZD1JRz01flFpdkt0RG1Hc0RiUkF5dmJz d207fkJ8N0MoPD0mPUthQHFMXj8Kej5DNlp8X01NfktnYmt+SF4rMV4/KWRJeUI1aEZmVTdvQihQ dFkkP3Uyb3wqY2JgITsoRkRiI0tsVjI1XkVqVEhmCnopMlNCVlJHYDcyREBWeUxobWg4WF4wMHI+ VzBvKStgNkFIaENFYU1SVHd3ZzA/fFMzS1FxKyt0VGV5OTRkXjM3Jgp6cDB0NWZZITJ2Z3lXbU4t YjwtdkdOfihpPDdhdTxPQkRxMmFqOXA7VTFkLUY5PnhUOzNFNEo3QG9SK3pwRiYmNWgKemo8NUZL emlCKmlsa3ZzPHd+aXIzdV9LXkZCaHBOJkZ6QWl5d3x7SnRJY0chck58a2s3Xzg+bmxodTA5YkVC OXFCCnotU21eRVIwWTxpVkVxMFhyJXRnIWJ5QHZ5TGxOfE1pKj5vT3J6UCRzKkdUZ0NZI0VsbUtU P3FpN1N1NChyTXxwbwp6Zm9pOGNtOTV1cm01aFgxe0NxeTMqRDd2Ny0xK1ZRb0laIyklIWdodFVh bDwoSEBzJntzeEkmcFZpSztraG5CJF8Kemxsfnx1U018NTlGSVNTTUZNYi0reDNhMzQwe0s9WUYz OSQjU2l7NzZrKHRWJTcpN25+SzBhSUdRITxtTFBPKTBTCnolO0RCJXZyRDh6MU1PTUw8PGdQVVY4 RylpeXwmTj4yZSV5QXpXLXY0QUU1eWlELTVSMDs/SmVLUmQzMD4/RShDOwp6PiFiMHZVc35USWJj K08jUzQ5YXVmfjZFMmZeQ3koeT9Lfj9jMTZtOzF+flAhVXVhQCtMcGtJaT07aFJKSikhLTYKeiV4 Wm0wKyFmWlRJbiZjSEtqVWRYUGV1PWxjTms0T0d3Q3A3eiZDPEV1NTd4bG09amcjeDZhUig+K2Ep OV97ISgjCnplKyNye1c+NjVINm5rcU1Qdmh1KXkmbmBpKGtFRV5pRj9mWlpUTVRJZmp2cFJ5e2ZP Oz5iJFZLIzxSRnNNPCVVJgp6JUhPfSQramV+c280bDQycXxpfnhzSkMwMyQ+Nm9PKEoxKX1gR2Aj Kz9ifGhHLT8oYWxPMkFzekE1Qm95OEBaZT4KemkhMWJVSnpLNihgVkdUZkxWKDtGPX5lc35vJTh2 bHg+UVNGPiklamI3UT5FfUhMcmNMPEMlaEp6aH1yYCEjZTBgCnpAbjwtPjRTfDhAJihxZlA0cj9z M0V5LW1+MUZ3RzM9TF5ZYz9+dkwxSzN3SEdtcjBSQHF4dGc4eSlsWEglOHRobwp6aG8oKExBTCFA SHtobkBoUzFURHliQnx9IUl+UnIlPjZmRn5JO2BseXpCT2NTYkU9MD5jR2ROWSVqRHdGY2swdVAK elY5Vy1rWXtBN3ZPUilYIU5WNUZrV1BCZSRaeT82JllIdTt5VzZrOz51NGEoalhBSClYZnhoIXZo JGlPakw3d29wCnokR2hxdTNlYVMjZ0pQRzhMOFZ+XlV9UUcoYyYmYX4leHRJRWlTSm5WOUVZKERf X1JWMEVXSTNEPjJKRF8/SGlDaAp6dkZ4M1RCfUtnKHdZKXw5Si1IaDBRLTN5WHc3RzdfMDIxPnxO K1FGMzNMTUUmcmt+V2BBWD11bjA+dmJAaHNtX3MKenE0SnBSbD5+aShmaEhAUih7Ukw8YUl1YCk9 Rj9jfGpfJU1XT3dzJFUzOSZhe0BENmZ4Pk8tKEllNDZDeSoyNHh0CnplNU5EJDshP2d2bX5TdFNF dz5rXl4jb1hLb3dmQ1o2WiUpdWdGaXR7Ny01fFdOREYheDRzeVo8WjQoZ2dgQCF4MAp6RD5VUGBy fWEwfEcpfTZtRXc1MDFzYHpeczI2fG5zd2lnSUBVK2d9YDx4bVc2cktLPiZIVDlWXmdgZTUhdCtp IVEKemooM3p8N1hOaGpOZGxHUk5yRUlzYiV7cGw1e1lCbTx8emhiKm1WMWo8bilpR1ZMaFhJQS1A eTxiX359XlM/ej4jCnowRyMtZSZ2fD5mP0x2aEM+MCFgbG5RcEApRSszYkgxPDhEK3AoOSh7TWJP SkduP0REP09adE9aQSNAWWJWcGVvaAp6YytRK2RyKTJ3VmpjYkl9PHZ2V0Ngaj15bilZUS15NjF3 Vmx3fkZ4X0NKZ0wqOEEqVCNvZyUlTXxGOHAzPnJYZXUKek1MOUw1QGdubU0mQWElZW53MkB3Y1k1 VG9MNFd9Y1lqQno/ZyY3Wn5eSSVXeU4jVSFRZGg2TU5yRnZVU090SSZ4CnpTdzxRWiRsZ1JZKVZs OWd4TnVtfWRSRnNPR1c/T3lYKlhHT1k1bno8JnYydH0tQTR2V3t6RHh+SFNpd0pAeDdHdwp6SWp2 dnRIQktVT0VFMDcqdkprM0lxcStKUSpiVHczcW5aXjtpa1RlckplRnMkdjB7d0g4YGt2UVArak5S UVQ/Jm4Kem8kd3pLXllFMW5AQjBHczshVj97ZEAxRiQ5UGJXWUBZaUZkeUNNZ2xvIUJKaW18MX1l P002fHooTjA2ZldZUDJVCno7PnhmJSszfkRlJUEwOXxVTnRpUkUyan5xSGB9OEprSGBHJkk4cmVZ XlAtakhtWGlyZndlP3RWTj04OHdZPGpWfgp6PUJ2PW5JZXtwYTNyQktCcW0lVmYrUFl7PyVsVUFs K0UhTFUzYWpxLTM9UzZxbn1JVH5MdHBuQCNhd3Y/dH1CNjUKent8ZTgoXzszK3UlI0h+IzA7NDZx Zm5vPDJuSkk0KjNgdSpPTGtDfkJAMmJtYz1jKVNzKDQ0czh2eVVuS3hEbSlsCno0USUkXyFROSRD WHRpMGl1eiVgJmRsSVd1OXVte3p4PFktYF5gWjV2NVotISlKZEwkVVlCZmMqcmckSXgzfiVjSQp6 YGB2MkdRUyNFfT9oWVRFS1MjPiVaZWp7d2h8M3VYVyQpSVFrRSskJXtFPlV2I1BwWVcwIXBzUXI/ TShXPkstMnMKeiNFfjZ1LWlKSCQkdFJASm91d01LZDhQJD93U2ooPD5ePSRmODQpQEE0SihQRm4m YzM2bWZXYDN0eX13KWNLKzAyCnpwUj93e1VVKm0kZzxwU0BATzk3YiNgKUltQEZ8RVJHY3lFVkAz O0EkWm9PfCQ0azJRMSZvMSVjUVlFVGR0Tz1pJQp6aHJMWFpAfV87cEsoMD5BOHlldzB5eCtHfm80 dylUY0YpQW07cGlsTGxNcyhpP2F2fTFSV05YZm8oNVk5ZyZCTn4KelhEPE93S2ctNWttIztgS1hN VHpDMDUyN2l0M1RCSEsxOXVwWHEyaiNFfGUpK2B9ZlFWLWZaMytFZWplXi1uNzUoCnpsZnw3MEot JHVLJml9VkxHSjBhSCgqSSFVV1UyTU5YN1QhKlJiWSt5UGxYKyhgX3FWblohdEpCZHEwZTNEQ1hS OAp6VlF3VGZsREV4Yl9RLUAyPHpkYFFkTzNec1RxaikyMUd7d2lCd2BAPjxPdWgha0BnKFRsQDtt MVI7QjcmdG5LbXoKemxIZyplO2h9bENnWkZeS0BATnY5IVFWNTE+VEc/ZCVXa2g5TkkrUGJzPkUh VzZNSEZtI0t1Q208OVN3XyF7eD9HCno3dHhWYUhiKjI8cnZReUl0IVhmdlVzSTNVNiNPPW1TNkA7 RlclO0xJIzYjbG53I3xJJkU/Jmo/QTFNVVkxRjxBTgp6ZGYjcXc9QGhDUUo3NERDV2JYR2U5ZCUt ZmQ5dEZoS1o3SThra0U7RGJ9Nk5meyNOSGpyfmM7M3FXTjYhI0FQdj0KemJHcFRIRFZnUUReSWZ7 fE9XYlVzOys2MX15Mk9+ck1qKDxtdzFxRDFHWmdQVmstOyt4WlNBck94Z08ta2NGRV4yCnpsVytZ dmdDPWJeUkBMMis/QEl1NGxvaWl4MzQ9THdSbDQwfFdeTHl5LXoxYDZMUVB4fDZqMDlBQGxEWitj Jmsmawp6cGolMWZfZVhWIyYlYW83PllPPDZQUlkwfFZxQyZFTWt3KVZGIT8ydGwkV183S0gzcGAm YGYhRmJHVDNtPyRxcHkKelpkejtpZEJPdi1lMl5xSDVwXkFSTzhUVXxeQz1Ua0BQSVBVenQxfTI5 UlY/YFIjaklOSzh1YXAoVlJ2bWhTTz5UCnpSKCN1PC08fCVgPk4mYD00aSN2PUdBLT5pNzJfZjJ8 SlZRUjwrUTM3IV5RdEg1T3QoNjFlSlM+b2NJSDBgKzNMSAp6dm1kcWxLPE1rb2dpU3JSTXtNclRl S0R3QlNuKFk9T3tQO2lmWnAzQkNjJCM2dkEtTz0yZ2pkeVVHQHxmN0pWTGUKelFgPHElWjBzcitl Pmh3ODxOLXF2fDQyRE5DZ05TXkdNcjB+O1hwe3J4ckNzMj10N19FYGxBIUdYRTJzei13UiZuCnoz T3gpWSlvUDZ0Y05aSU1KQUMpRyVAWmlKNit5aiV4eHtQdGNXTkRwNmJqeis5YklhJEtRYFhmN1lG LTRaJlBlZAp6PD1FcyZLXyQ7OypxMCFRd2tFPntwTSRWJUAwJmxHTEpSU3RHRDFPfT5wVDZNUFkz SXJvISNnbXk+V1R5WkJHfDUKekQ2KmlxbVQ4Tng3I3JOTCg5K19MMmlwYEtgNDc3UUohXnk3V2sj dnlEN1JUVkdJWDIwP1FLVEo5KlAtal9sZ0ZUCnp2bENtNjlDYTM+al8+dmM7bllHbEM3JGJic0Zj OSVsc3Q8NVdyUlFgJjJyaUdSX1YzTEJ7dmVhRCpfZnBNZzBBRQp6ZSEtbEhFOH1FRitudT56e2lE fjctMVFQbiYqcjA9WFlWbmYlVGhnN1kmS2ViYThqUXo8S2JtS2hVa0lPVTJyU3EKejN3NVFOKV8y PlVZeFdzRXc/NygoS0shVW5TZFAjNGtPXjVUPXZwS0BIRXlCViNXSjI9PDtSYTlyaDtLbmpaVG1z Cno4fjdRWEwwQig8UUtRfTRQMSQzfnk2OGN9ZyE4VS1CTTRPdSRKKG97My05fUBSdHVWOSYhSTJf eE80cV5rTUhuOwp6LXg3QWg/NDhoTjIoQjZ8SFRuN0RhaXVjeWo7SDk8JDBeJkhkfEMyfTtnI098 PjV3RFBsKU9wUDlCYDBxVXZuZ1IKekJDYHAzYm9SbEM4Z0s/ZD11eXx5MUJSfksmTTJFWk9DZSZB OXZKVnFLPjcpYSZZX0RXYF5vZTIjeColKW54ZyNVCnpXRT5kPFN2Rj8ze2NNanljc2dOSFIlTlRz JiFyJiRSa3d3UW57KXArcEJCWnk0cD1eTnh+XjJ2ZEFzK0d2c2pidAp6Zn1UdDR5OEtRVyZPTDxs ZWx2JHhKPl9+djRSI0ltSHRHTDVELWJ+U09GWll2YzYhc2Bta21sQl5hKFY8PlRpej0Kem9vY1hr akRlaFkpSW9nJWo3UldBczdNNEBmfiY1eGltd1dXK201e2g9JiNJOXlBTldKS0hTJV8kcHU2SVFf JFMkCnpsNU01cEk/e3hPWEM9ZkZTfmpmKCQrLXVuSkFjQXR7WjQ2LWZVX2RZPmhoQlZFWDtuSXs2 US14Y3Z0P2xfe1o5JAp6cTtNZDZKaGZsNUU3M0owPXtvJClkbzlKI0l+cGhPanxnRUpqfD9wTz5w KDFWcF5YWCZyYTshYWw+N05CKVdoQ0oKenFOT24oWVBPRF9TbzJyMjV0MmhiZ1B+MllScD8/ZnNN bD9XJDR2PWgoNDdjITlfRUpWJWVBXlBaY3tve0VMODhpCnpEV2RLX2ZZdD1QNF9ebEM5b3VXKUNy JlZKVnAtJVZaS2JNZzZ2QExwUlI8JiM/aC01MURIfFA4RDA/V15lfjw5RQp6NFUqfVRVRDFRb2Vy SF4hNDV1KGs9JldidSluIXhkJWIyXnc2UWFQMVlFOCEzQUw9R2ExTylSSzlZYUNhUzFgQlQKek5F OFp1IUk5Q1E/cnhWSWxAV2wmP18yeSNgVjYhM1UwMXxqNHdjQ1hFPCRBekpfKF8xWSstb3tGT2ZZ MVY3cGFDCnpIez40RThHJkMoSCZpQW00TFl7dG1TK1EwTSRRZjVudkBKV254YUc+QWAtVkw0X2o8 Mjx6WVRNZ317KWVTSFRlUQp6R3clNiMoPj8jT3twUXAwaTg9ZkxSYSZJaTJpSnFXcE40RChtKD9M K3BETWZJZUU8OyRnTHE9bzZzQFFpKGd1fSYKeiNxfHp0b0R4Y2N5ZEUlcVh5eXY1aD5OeCY5dUFo eVhVWC1yeXdTVWo2NXM1eTZFWi1lekUkQ3ctTG9UPyoteHZXCnpPNVlfd2k3akBSPkUoVD5TSyNe Pm5+SEdDcHUxQjR7c0ZlayR5bHhQP2UlSGE8VnpQWEBWc2R8dUl7Jkg3U1NFKgp6YE55P2VROXNe ZDFAVS13Qj5gRz1Fay15ajg0d2cxP25xbn0rUi1JTSZtNXBeI1g2QjBPKCZhcSprXnV3Wnd3NjUK ek8xaUZOVzQxZUpvUGx3TGlje2k1KzJVTn12UmRBcyF8RiZmZVYpeFBUSGdUTk0jTzBNRzMoU1pw cXFLRjFJfDgjCnpNJnw+I2dtR1dqLShEQUhZbiE/X2xyR2tXYVVuLSgpMjQwcV90QjxqdVllblg0 UXpSX15udCZ4dkB6c3JoJnRaVwp6OX5DZiNJe1pXaChxYXoxT0JZYUBSJEEoamkxeUl+bUBtVjxX OD9+T3Y2Ml5wcWEwJXZzPzBkNyM/N2R2NDJkKFkKelBHeH5ZZFpPdX0md3pTXyMhUmdrKHZyRDYk O2lzUT9HT2A4JGcqNUI0TS13elJYJmdtX01JZWQ4WT5hbntXMWU5Cnp4eC1De1RrKTN9c15MOX02 XjZuWWleIXo3WjcqMnZBKW1ac0ZoQXZjNGA2KiR7NlcjbE5BYVBxayRlZ2QwNGtqdAp6enBebldg YnVtVUBaQVFyNlk8OG9GTGdAP1A9SiRCcHBldVc+Sz5idTNPeikoPHV8KUVCSVJkNTt6dXs9dTFI c3EKem9Ob3QjO0ptVChyQ2ZSSWV6O182OCp3VXRnNEliSCkreUZrb3cxOS0zbDg1Mk1nYFZBKndv cWc8el8qSTY9YU05CnpkKGFofGMjfClVLXJAKmd5QFhIYkJaSSlXck1rNSsoXjd9Yj1fcTxEYlU1 OS0+a1Z5XyUtb0ZITyMySilhKkVvRAp6Xk9tUyhBSTMhLUVDWClTV3h8eC10XjJQWiF2cCN1MjJQ diRCOTh9byk/KW1ZUEtfekBZIyt9NkVJNGxrZnkoYV4KejMxX1lsdVF5PUJjYCR4aHVSfUwtc1ZL UnFJPGpeZEtaZnx0c0x4Z0BDK1ZHfVZBYGZRPmQ9aDxHTmAjaCFYKF5RCno4KG8zPzBPPSh6aGk4 N2E9c0d8WTBPY1Y1OXptU0lOKWc7ZXAlUDZrST58WE52ayomUyNTKXpEYGN+OWdKN3hULQp6Pmp7 bjNYYEVJSCF2S1ZeQlhkSlozenVJZk0oUjhRM3FUeGZ7cSUtUyl9JTZzZ30tSkI3YH0lPzJffm9X Zit6eUcKekM1MG00aFQzbWlZX259aSpWR1QtTGJlJj9LV3ZZU0tnUHBePj0yQyVWUGJ7eFpee1lj OGBnZEtfKDhidjNLSEgxCnojc1c3JF5mQHIjRE1gZFpfWjFRPW97eSpQbXxuQzJQQ2tyamBTSmBe SmA3Yz5mKzU1KXBiYjRDeF5uOGdYfUsxcgp6eygzeGd7fV9Zc3dffUI3cFRLbllXP0BNRllKMjkj MXwjaytNSWl7QkZUQzs5ejJHVDxVaDlpMWNOM0JGJE5fRmgKelEtdT0zQSYkdX5lWnMrZldTP1l3 eGI1anV5JmBVYkY4P3Ata2tfUW81IyhUZD9XeWspVig7NE5CNHVXRzZVWn5kCnpvTHs4R1V8flZK TU1gOXlIWHEheGBBMHJEUiY8QTZBQ3p4JDQ+eng2KDVkKnBEenh8PV5sVGI3c1RnTXBvN1gmewp6 JUd9QDU5ZW1qOGBfMnRDWTBFajckIyQ2I0k4JVB6WjJ1KzEkV2VqSj81JVppaHhGM2EtJn5PdERy cCM3RXxOUDgKemhiZy04Ny1aS15DQkFSbTdtVWQ3YGV6RDhHOTB+fjtoTDxQNCRvdVE0WkUyQjI4 WXU1Zz13Ym1TanJ6fDdsK1BpCnpwcjZJUFMlVHxHK048cVl5Yis3OHk4WVJsMUgzPFZeUS0rfUlh MWR5XnhiVWYyYSFpR3xNbFU9dWZMNzdvQHh9NAp6UGR+P0Z6SHE8TjtOTiZZTXtNdFRyeVNmUC0x WHRjeDR2cGxnYD9eWT1WRkhFYiNRKT0peT5fTzFfeXdpJT5gTCgKelJ2dC1+ZWdATyRwMURiYGJE U01XWmJeT2RjQ2YqSGZqaWJjbmlQMmk5YmlmdjgkISQ1Vmczfko2dzRhWXAqO1YhCno2MGp8TmlY aUNxSF9gIXB6TjlpUWU7eyFxe3ZPJTg9ZlpWclojVVFpQD5vdFFwLTE9Ump+Ymw3Jn58VnhiKEFR egp6K3UlPV49ejAjbitScVJpSWApSD8zQW96bDFqREp0YWh4e3dIcUs1Rzs2cXp3P3p6bkJfS1Rv RlVfI3V2R081QnMKekk9WGp9QHcxN3Q2IWZXcCVIYVJubT1+a0p4LWJ3eigoX0ZkZmNIM1gkbXpo X3hxYkhPZXh3PDg0ejZZdCQwalFBCnozdSombFIkS309OXs/PjVgWGtNdEpMUVIyU25LdFNKZWRr MlU/YXklNEFQZD89ayY3LWtafVA9WVQ7dTElbHJlUAp6TikjJjFtenkzcylxRlM8SXV0cXNhWWtL fUQqSmJGPCNPeTkyXkRGfEgzNmgoMnpfbz53ck5mZ093Kk9ZKSFzS3AKemtTNlVYdUwmdjE3K2p9 MHAlQTFDO3YlWFdMfiZSJUk4UWlYSUpxXnkjI1RvVDJ+bUpeej12MDAxfiRJYHohWDlZCnotc1d8 LTdOSmAlRTJKc3BZRTl6QjZIKD1vJis/V093YGpeKm5vS3F0aTFqb09zVj9+eU5kPHJuYmQ5fT5n TEBZcAp6eWdoKWNGdSFIZkVNfGxyWlhEVnE1ZiYpI2JpWE9GRG5sPSN3cillKTJjdVE5aX17MmQp JlhFWipxSnR6JjtoVWoKendJa3IyQE96cH1qSHVsWnZ2RTZ5Jjs/bUxwUGlCUDB1MHkwO3pUTGlo d0VUYUt2YkEjIUtraTdAWUdYV3pMLT1GCnpHODlFVCMoa04+VU52d2s5a2lxYCQjKmZ8NnxITyE7 YDBYPyFvfjEkbkFeMEhqTFNZS3tlLWpiO3RtdHQzOHEkTAp6MDkkc3pibF9lX0ptRUlmbEtFeDVH R2E4YCojcFpJVEx1SzgoY1NpU2NsRUk7YlN+blc8LTlrbnQlYW9jdWZ5K34KenpIQEVVe01UMG92 bW0mQ3F6dGhFUHsteXh6bjFBV0FYNiMwMHRrRG1HdDdTVmhyJFR6clJ6YVkme0FAPShuMjxFCnpB Vl8/MDd+eUQwREApJkZ0dX1ARyRzWFZkY3htSTVwKlV4eEJiPDFXbmFeeD1UVX1rZC04MHFOd1I7 X2JqP0lfNQp6Y0gzYlF3Z2l7Ujs8MStFWn4oWWJYKiQ5SGJqaytsYz1DeHU4alE/IXh6NXAhPVN6 OFY9JSQ/bjlqPWlwMEI1RXIKenh4MFRrNWQxbVM7NS0ybjViU01iaT19dyk/O0otKSR8VE52KH1s djlCbUdRSCV5fTUqOT9wS3JzIT8pbmFvRU81CnpCJkw8aFJTY1YzeUBxeFp6WW11azk5LUtBP2kr THZWRGVMTGx1QlYoU0Akfk5nRiNiSD1qPX59NEdNPGk/bERJLQp6aHhxfDBGb3laRzNkOE8rMVNu WTQwfXdrUU04Yyl3Yn5mZHEwfmArc199djFPYEx+PUozV15UMTFPb1cqJWFWfFgKei1yMnxSX3hr fndIYH5MVWohNWA1eVY7aExKJEpfTTVSajR8NXlpRyNsITxVWUpeZXlXS3I4PT1uSCRib0NBPT9t Cnp5dz18OEFfV3VOKlcyeTJEPS1Ja29nekhUTC1XbztCfERQVTFgXkVseT5NPiNeKX5FQHdvI1g1 RTxSX3g7Xyt1Qwp6NWxrQVEydEJITkFXcTxXS15jQCNVU0BkXjVvP25sY3dhV0NvbTUze3lmSEN3 Qn5MSG9AYjNpdWVvPndCTjlXNSkKelg3ZWA1NURoa0lCM2R3U0sqWl9DdzE5TVdFY0JYMT0yRUF2 dUtFcD56b3d8c080K1A4ciFwSGdGalprX1dMdyVGCnopR1U1c0U9JDAzNUMkNG9WY19DYGpESmA+ cTNLMlJudGZWPkc/N3o1Y2cqWmBrXiVJJWhXI2piYFg/d2RUaypybQp6b0IrbE1sKkxPI1grbCFU ekImTF5sT3t+az9mZzhtMCgtIXE5JjZHI1VKS3dORWUoKjdCO0Qra2clI1U5byRDO0kKekhxLTNQ cChTbCFGOFNuWGFiKjtNPi1ERzdhOXNlWDVhSU5MLXcmMnhncjxeVEtQWmo2NTdpQl51MXY0Rj1M IXYhCnp1NllVSClRdWQ8Qi1hWV9gNUEjMkZeK1VhWj4+RT5UOX0wMkYjeGFjb0Y5UDE+Zns0d2d8 ZzVFYEc3JGdkbmVAcwp6eWs7WCglNU1ieUdecGJNMnZeKlBpcD9hWFNkd3pYMl92Yngkey1DVDF4 NSFXaVN5LXRlfnBTcnpwZip4QVRoIVUKeipXJV5CNDRlTk1jUiNEP1dJVVFQV3lseWB2a2VxNjhO aHN+dUUrMzBZbXdhTUZGKWopT1JSd3JuITxubGp6T0A1CnpYR0xVJU4+M1V0QlMwPmVrRDk0Zjg+ Pj0/PmI1ODZ2Km4pLVl9YCQ2YDlXX0EwS3x6LTZmUFM3I0lob3wrX19Gdgp6TDMlY2BjYnN1PzEj Kn59ejg/NGxjeSp4aXd8VDYyU3ghN2xib0BgWDBUeDVSNXBUKnFQY3lDaE9UbW1icT0ydDUKejVN aH4/PnZXPFcpQHdNakVHb2QmezdXfGkpIVJlQzJ5TTx8MXImYTQmNEo4TCNSMXQwbDhKZEAkQSVZ U2VnXjBSCno9bTg4KjRJRVN8YVdVXj57QlNuVUxTQEFpOTVRTlRHQWhMTWN0fi1UcnMmflVmU2Yy RktKa05nO09AZT1ZeHA1bAp6M2kkdzRJXzQkQzdlSEtxbDxPUXxGcDJFb0dtKWBgI2dfVEh6fG0m fEMqb3FaTUUtej9IbXBvWjU/QUVTZG58JHEKem5pYzhLIUVmdHA+RWdRWFUpPyZyRl5IJjthaj5k NTtBcz9LVmN4NHFecHY1MnlJPkxZODZ0ZGZvT0VFNzZsPz1XCnphR2I8MWJYa2V1bE1yQjBxS1VZ RjEpOyVXfERxWUFwPnB2YW4+IyN2SSRhbXRfamhjK0lgY2Nmaz9sT1o/KT4zVgp6WU9fJEd1aEgz fUAzQWdlR19rdXR8Qm0xRjxoUWRVSVI8fHFuWGMmZEpManFjcXpTc3puWDBfNXRLJWolWTxra08K eng/bVQ9cTg5WnBEPz9Ma2RrVVpJOShkNExNWWI9bmFTen0rck1seFY4Z1olO2hzLTs8ZGNXYERG a2BVI0pNVFVHCnohNEFzdUpyJVVJUlBpMztOLWF6JHNHbWQ8eUJlWlpnZjtFb1QmWEUmSGNhdztO dE9FfXBHN3lSTjZOfm1ZMmFxZwp6eCM3bm85cDZsdTxAQWchRnU8PTBIZ3JnKy1ZJm1HY1R3OCNp XnY7ekU9Q2hMKkpMI3ZsIWY+elFUcHw0P2h9fGIKeihTTUMyWmdDUjNuTnVHO3ImdHBqYGFSbTcm Z1FvYGRmNmY3WTg8KnY5MWh8ZmVAWnJWPlcxMCshQn1QJDRUNXdTCno4TjZHMGA8KjZ3KFA2JkUp XlkjS3daQEJyR012eHc7eX02U2syYURJe0pgV0J4eHdARGMwQmlHMHNQYG1OMGMkOQp6MlkjJWlK RGwzKFNncytUXmdFbjRpfGU5MGZaQEA3Vj08ZU9AMkF+JEhqTEkrckB9PnxlOChoK0BBJXtCX2F6 VEkKelNVUlQ9Pj91PUFSKHQ8cTh2R3heKSVkOUE4NC11ZEU7VVU4YGZkTEghWDtFblkpOVhAZ2Ri ajhqdlhUYHU/ej8lCnpET1dOKHpkQkZUcmMmRyplaGZzfkVHZXpyTn5CYUt4a1FzdExjRUlNRns/ STtfcTt8NTFtUkFJK15zT0BXbSEmTwp6VWxxKjsmVEtGRzNOSXZaRHQkNlo8Jk9VbzVoYFI0PkIr TShxc0c2N0xARkgoVm8wUEVpd1UhYT9STm9ONV4jVVIKemklOE1CVntsYkkoQldkN3trPWBoeHox UGh5KWUmRnVofUZtMW80TT53SXFyNUFxeyg7MnZeWEdVYUwjZih7MS1NCnpVWVFoQ0EzXkFaOVhZ YjlkXyN0YkVMWCZxeDI3b3wtR1VYO3RNXntAenxOaz8zMEhvbGhhck9aPTktZlFkNSokMQp6R15G OGt5OTh1TXpAdD80c3FOO2xFdDFzYSFQNWhRSztjUHRfc3o/c2xCRz9yZ2dKQzF2ejFBT3pHIWw+ JnRDaSEKenJhbkx8T0o1eEJ0bzx4Z1NBTjtDVlZ4T2FSQCRyeFphaik+MFQxRHNhQiV+QU5zN0Rz IVFFazdyTVdPXzRpc3E/CnpAT2xMTDhXUEgxaUdpb01UclpWfXgrVilQRzBhM21OdmZlUjVFO1Qj Ui00RX1lcXQ/KTY0Qk1VYGxvbndpRm96bAp6bEY4IURROzR3USZoc01AaHMhYF5NcWxiajRUe2o8 OVBgYmNCODhqYjFFQk89eCVTe1dVaT48NG84ISVJbihIKjcKem1uVFlTa0hwNDc7QmJ0UFZMUlU2 UklYUm1oNHNhfHFkOz58XyRaOT5XJFleKEczTWw5ZW9vSCZmUX1KXnlRUEo9CnpyPjsoZFltLTMl dSVYdlZeKjklXm8wXl8hYm9SWDY3eCRgdUBaKFFRMXZ6RFY0Z0tUbkJvOzh8Uz9tO15xTEljcwp6 eURxQWphS1RodnlKJmVmYHReX1Y4OGBVJXIlUVd4dyVZPjA9PzhTK19TNHlPbkQ1Z3ZQYio4Zj4x UGgxPUdIRCsKekY/YUY1SD5SbVVXYXdyZEV3a0J8VXp0KTczcmdMYT9NNXFSOCU7SFhkflRaaldz ejg+ektnYXg5JFhCdkJCI3p6Cnp7bj0kWntaTko0Um1uU3JGSiFqI0B7OGh4d0VDKlFTaT9RRE5w SFk+KSQ+ZzI0QXY8PC1lPlohenw7aGxgeVpzRQp6OEJPPEpmQXpOdktINmNNe0cyMzFidkw7O007 UGM9ZE04QTheNX49bUJlWGZVdDM9VVNjO3VvRjdCeHk3TzxjamYKelhgYn1zYiRAZGheWkREdkpX c352d2l2aCpwUk17QTc/ZF96YUt0QUY/fmIkPkUwTC0lTm12OGRyeGZrRkV5KkRPCnpSS3s8JGhH LT0qWXhAMUlYfms5WW50LSNmbUtAJllnQjl7UThGUSohdElOaD8pI1ZDNUlob1FfWVBJUVQ5KmlG Swp6OT5kRXpXWVgoVCRvPlFiWklpNjByUkZ4NTRVK2F8czR0JXNSXzhfUHlBUCtpOUJ+eDIrQFlV NklWQD5USlk5TVQKek9yQyZQQCV6SFBARXE0RkZIcmFHJENUYUVQKEFaVGVOO2Aya2R6eW1WJGop TTg8Myo4T3BEfnFQayF8ZkQ/TEJgCnpCdll6MTRYPylhdGFLdHVlX2FzVEolVCR8KlA2QjVgeXAy U1AzWWopOzhSWXNAdEdCLSRlSldkejM4YzBfYEBiaAp6JGkxQHBCPj1ZLXFWZm5keXVTK35IPz4l TXpvOUpqT2smMVkoWkU3eEdWSWp9SW5USWJkT00/JE0oUXxtbV9aYWkKel9FKSMyX0ZaXmR5I3FE N2pRZUVodmhnenF6bXwxUDJ6eCk8e0hQRWRuLVRmaXtNZ35Ma2ZSbFNtejFiMU8hZXk1Cno5fHli K19ZYzRKLXlScnRhRmZ3JDs4SDFrM30zM2FRUzU/dUFQO25VUn5lMFRlSE0hdXBQM08jQnw1ZEJI WUNyTAp6PWlZN2dCIXl8KDhUV15LZCVBbkNnRikxOEpLQyorV3N0KGh3ZlU1QlQpQldPNHIyQkZo YXtvJDxLIXJ4e187Iz4KelRQQnptVG9DPiRWT30kYyNGZV9nTDs3SjUzUVBncT9FPDZscV4qOHBB YDUofDVud1NXVzJAXm43c150fVk4TTw1CnpSWUlmcXZFbiNyZSYlcXtGZy01YyQjbEx+QVlJMVVA MExFcGtHazlvRFRXSkk8di18c2FuU29VUGlUYFpDXjhDUwp6c2hvQXdwR21eTEh8akdzUUVJK144 P3pNVStQeFgmN01lQTQla0gxNDlheU1lOSQjPUxfP1NvQF9nKlFWSElgYUIKempPK2EqYEIqUlNP ZzclNk87SExUfE5kSHklNXRnT2NhTik/ZSZnKnxaNiRoXyhRcGo2LUBaUlJReHlMa3JhKWlVCnpX dmhPNDQwbWNET005fTBNR3FXRD5QPXQ1azYrP3szcCE3ZCZjMiNaSkh3eChUOz55Q3VZU3pFNTlw KGM1JlB6MAp6MF43SmBNIVkhaXtJSHxHP0dlWkpKWVI4SEtfRjY/Xl4mbUhENUhNSS1mXihwZTBJ fGZRe247c1Qwd1Vjb0JCbn4KelRUVldfWCs5QzFyRUVrVmpBPyZwbilvfmw0SkxRSHJjWVY9V2JQ eW5NemxqNWlMNW9+ekxMcmQ+M1g8RnVmdzlXCnpMd0djcj4rRkcmYWFtJWROKkpOY3c3SlMhRDNT dipRLW4ybDlBU2IrQG9XZnNDIzhjRElgKWh5K2ooaVQ8Myswdgp6YjxQdTRsZiN5OUhPcz5qbkRu WlBwP0B+aD9EQ0d9UzQ5dDdOQyZFQG4xfFIkYHFme2tDelpJdjc1SDZ5RnRHMCEKej03bj8pWTcr YVlYeHgyeFF0WWJ5aWt0c2pZOUYlbEokNChlYFg5fTJwVWg3YSZWQFl8cSZAN3RqNyhfaUF1N2Ar Cnp1PDVNJCRXRmJLKl5wPkFga0E+PSRtQSppY0ZTemtZR1lkeFAreTstRSUqSHZMJEYmQSZvWG51 ZCE8RkB6SUpWKAp6O3VCP19OMyFzOG5EVl95KFFjPFImd2FtYVVmc3x9bzNFVFZ6dG1TI2BKdiFR Y0QpKW90P0w1VyZMVjwyRk8kI2wKelc2fHBWaiZyOyZoM0BTc1NucEJHNUJ9Tz10QSlHeWVmNXQ0 eFo+cWRrPFpId2NGZkJyRnpZcDtOWFRyO2xsQXY1Cno+VUBFcjkhcDVfdEtSd3NNWWQhIXRES2oh TEhJdCZpVCkzeGhOPWQqbUBhIT45dz8rWG82Y0xlcl57RHhNWWV8Qwp6WmhGVDxBYnE4bGBDO0Vk al91eVVRdVhEamFPfThHXk9vZXhvalIzRHdxcnZfdUh9ajVrWD49bW5GTyE3QiFgZk8KenB+emU1 cH59X0kkfVZGdjRCUHxmZGtKMCpZMk0tT19lIVl4TE9hS34haEZ2elVoIX5UZE0jJHMkP18jX1ol eEFRCno8bFN8RT89KkBVKWI5I1gqcGUhcXo3QDUpKih9UlhPTT9CeWU2MXRFRUBOIVdxKXNYdVlS cj9DWDEqYnpifHAlVQp6bV9JeldiPmNiZyp4dVh0LURFRUZQWTUyRDBlS2N4Z2pvOzE0Xj15NHRR RURlTVctOC1vVD1VNStkM0JTSGpgZmMKekt5fjRuTkMzaF9Ve1YkNDgjSm1gYUBSN05xMWV9dCR0 bXhDT3dAQmJ4KHFlQG4yRCFjT1JZY0JhI35gP1NiZ05OCnpaUzhncFYqYitFSz1xO3spelZPMHFj ZE0jXmxUem4heEs5JDtpZ2YhakIjbipQPFhpRFRAITRPVTIpOClTa15NQAp6JHx6a3lzZWRgVXFm YXZQKDspa3MtKjc5KHUwR0wmO0JTYHhxO2F7QHdKPzMzM2JOQnlweTkpZVd+VkNvITtpYV4Keior dlJPX3BAWEU1U3cleklTPHtgRkQ5YEhINyMtOGBDNS1OUkYkcGAqY2dVVWJWfG0xK3ZlKU5lK1El JEI4QWpACnpXQ0BkWDlhaTszVF84RF5YRDtOYjZXJndwVE0pKVglTGUwSEN3UWZgT1BKVzsrfVco fi1tfWZCen5GdlhzP141Jgp6aSFFfS05S1hUdmlfUUN+bVMoQE5WeiZkUGRhUHw1SnU4Yl88Vj9l azYpKE4yNnc9WDgxNUxfNU0kY0RmYCRmSyQKensqa1ZhLVZUUXdAKFU0OEFWI3xRTW5CK2xmI0VT bSozaXB3bzd+WC1sJm5rRUIja3hUKGV5JCMwdngxaHY/KEpYCnpAbl5MeUFGUlFENj05aVF8TVBM ZENxO2ZoJG8tNzVRUz5uN3E1bURkdE5JZ3lfY21SSk96ais+QSk7biFyTmFXZQp6Znt9eiNaJDxr O29Je2Yrc05xUExBb2I0b0dJfT99SDE2YTBXPXUwa2RqWjxqaiFTPVR2RUVJeiRWakBUKXl6cW8K enN7ZlAzcipgO0R2dUp5a2BpU1I7QV9VIU1GbyRIc2wpXlhPeHppYC1uXklpcGZlZi12TmI3ZTBj ZGYoSzAwKVhBCnotJHdBTlorWXY/cHwpUS10enEkTnglPDs3JEFxP04yQ1pTNz0tPDZkdFNRbmhF Q2F2c0d2Xi1RcHAmTEBuSSE0UQp6Tkgpa092VitWWnlWKVVMcD43JiM+JTYtTzUteGpTR0hzUmQ8 UW82aThYPTcybFdtcFpsIzd2K3QpKzUzZFRxVHIKekhTV1Uhc3ZRO05oZHM2eXZOKzZ8SiFpOUx3 UWdoNHVXSXBXeXE3cWIoVGxfPU8jPn5LdUAyP15xQkNzYyVRYDNFCnpNPTNGNitrKkk7bF5KP2lL WWdaYFE0RiN6Y0Blc2ppdjRRUnxGNkM4e0ErU34tYWNYaE01eks2ST98Z0lBck9qIQp6aCk0Jk84 V09yeE5neUN5NmE8a2ZCPzx2bE48PCgpPSQoVnFnbi1ncEt1U1FtXmJYSUJVO1VsKUNwPDRzS0tI OTYKenZwYylAPyhFRTUqWH5ZIXJPZH19XlFEV1JBYUk+WiR1ekQpWm0lPSZCYWxgNGxrdWxrYj1T Z2Z4SG4wcXVkTk9vCnptWD87JGBaZytwbT55SFJedytDKyNnKTBlI19YNU57YXdKVURrXkA0Zyla eVdaY018NiVYPU1HJmx4YjBRJT43fAp6OX1AZm8/WnVXVl8oSGIkPksoYyY5UDwwa21wMDZmekMm e1pRZT98RmtWO3tXSGZDS0BAYk90alNuMyQjY0p9enAKejdVbHNzQitCTSgqc3hpY3spJnghTlp3 TTc5R2lCLW5NWDt0ezYxdzRJUyNWUGBFaWJadHFnTHYrbXxqVlpKfn1OCnpiTjdlNlFmcCh5WFEh YFBqOHpFOT97T1lrT0BVdWRSWTs9MF5qbzFGekVVdlZJQ2F2by0xSWJaVmNgfEZIOTU3bQp6azx4 OWJgR2Q5NDF5K1M5PT9XPGJMV0NiaShMPGY3X0s4UXswJC01Jm1lakMhamR1KXNxI30zTSl1UGJM Y09+dVoKekdyKGRwWGcpKEdLYmR6YG9WLV9MWXhMfHArczZYUDdhP0ptY2g5SXJuU3l1NSR+YVYp RTw4Ris8O0tkT1dxP3t3CnpGYDN2PVI2YmJtaDd8TFRHdl8wV05qMjFMTVE4ZTdzWGNBI2pHPVUr MElMMXBMKHB4WW94dCZXbyZMWFhfelRPWgp6MmV+YXEpfkNqUjshbW5TKEUhSShzOCtFVVBXciFa bz5Bd3lRZ340ZlkjbWcxfDRWbDklcCQhdypqbnlTYE1eKWsKekRiTHMmT087ZlhRfiM2KFhibGQy PXN+cnNedTJWU1l0ZTNZYDVlJk16YUpRcC1VSj98dWxHU157ITwyaWhNMk4rCnozSHpANklvU0ct KChhanpDWCErRjhuTlJncWc2PXIlREw8bUpacygwVHxfZ3BhUlNsMlkqMHdpYTZFdmN7Ny1FUwp6 JHlfJlAlT2c+XzhsVl5FampJNmNUYVp7QHYjVWNzU2ckdSEtWWhzYTh7NG5qTXZhVlptRHdGNVpu eytlKDtPSloKellldGhlYzIlfjxzQjNhYj58bjExQlI3d2Z3VVBTNiQ7SDlvKTA4I2ZpWFdGdXxO ZihUITxpJmhMJlBIZTxiYEVgCnpnQEp+KjkxPjEqezxQVjNwMjNqRm9pRHU0ITklRjgkIVpfKFpa K2RrLXQpOE8jekZJTU9hbHMjRlc8N2Y9MHpUOwp6cF5ha05lLSNGazRRN1RARXpIbkcoPFdXUilf PF9AVU1qVXlKQ0t7XmEtZikxbyU1eyR7R3tGYyokJGlWQiE5bUIKekdQRWxaYW5ScEFEbXVJNElg VWZedUVJdUlabXw4ZXdZQWxrZ0UhZmxnVlpqe2prPkU8JkxsaEl6aUR0bis8WFk7CnpHajVOVVk8 fmA+PGAmY2BrTzdfQExkc04hV3k1dVFuWTNIKEcyNG1BSDc5KiReSUkkO2hjTX4zeG4xbSYlJHZQ Rgp6OT0qeVFZSlIwfHlMTkB8XmkxY1UjPXEyc3NWe1MqWj9TRGZiNH5SfF9ZQmwrbTlEKXwqP0I+ aEBBQT1BRmE+Y1cKejxlO15GYk9ta3w2U0B2TXgpSzEhbkl1RHdPUVNRe0ZuekJWZ1hpVH40TSY4 NU0/WnxOcilgU0BAWWZSSTE/UiF7Cnp3TzR4bkpZZE9JeExLdX1uNGNDYSlFfllKcHhLc05FOHs5 aCZrK0V2RVA/WkFmPlpwNy1eZDZxMFBQSkp2dEpZNwp6dlEjaiQ3Z2c5Um9ZJSVZZ1dFYDFlaG9u RDVNU3tkLSo7TEMxJDFpKVdTITtATXF7ekgmMT0wWV5LSlpWcm5sYGwKel9Ya18/WU1nc3Q1ZTBz dlQ+bHlBXiFDPE1oaDRgOWRKNXM3U0RlUT90dncrZD9WY2tHR2t3fDlHPGBhTDYqaEBxCno2IVc5 N01BS2M8SEVhTXw/VE9tdCp9JiE1XlZKX0dnUkRDVT1IcSspWWReek82bT5NbV4yZHB9NWJIeito ZE9xcwp6e1Ypb3YzejtlVEp4S0dlMlEkfiUqMVM8T0tQdVlAPyk+bzFGKnNFUG8jJnZ1eypEfkRU QDlebFJhIVExU0RsOHIKekpIQU8zSXg5fm5qSSF7LVlsOypnQ0xNOTEoPlVaQDdBaT9ZWTJKWEdx Wmk9aEx2KiRAaWRIJD1rP350RkFGbiE/CnowQnFBeHY0ZnReVVFmRUVKQUd3fCZoZUVlPHd8NWJ4 dX1qR0Q5PGM0Xm1lP0xZJUZGRHgjVTNGYGw8X2dnejFaMwp6JSpsSUtlc1J9QUoxdEhWPUhKVFVw fWlYbC0zamZgR0tRWllWSTlofnlZRWU0eHQyYzBPN2d8YzQqbmk9TiUwTXkKemRpTCtrcnF4UVJC U3VDfD5hO0klKzgwTnYoTFVEJnUmVldSaUotJVFBbUIjZCohTSs4eT9UY2FEbzA0bWtCK0FHCnpq eHNIUjRtVWxQbkc8d0xOXkgrKiM0Rnl7PkAtVj0jez98ZTVXMD5ReU9NJS0haCE/YEFsP3VLdDdA KyQ7alZ5WAp6NCs1cGkmZmpAMC0wWTFHRCpIb2d1al9ZU1M1fDlxUGA+ej9SOT0lK0dzIz5hPShv TDB0UW1mQXV5VEJ+QjZKKXoKeno3eXFuWmN+dVVJI0IxT3ZWeypoYWtxYEA2MWZsITVZNVB5JEo+ P1VaIXYrTW1WMUYrZXEtQEEjX34oWWViQj4pCnooZmFAbUNhXmAlMlhCTmdQVFJ+fCtZVVAzX0Yk Vj4/XjAzT0AycFZTXyZ+P0o7b2ZHc2BQckNSZTIoJFElSEtPKgp6bHVANDBVQSFeTnB6QHJpb15h NSpUIylxR2dqJFRzTSVfbDFMP1pOZjZXUyVJeFpBR1JzbnN3bHBnRStXdmlFS0QKeilXTmlYTn1O WmRfKGJ+Z1pue0c8VyVkK1QjdFNVXj02cDl4Uz0hR0tmZHRtdEFMP1dSXmEhen5SfDdBcyljTE0q Cnp5c2tucHVIV2xoKTJpUmxuJHojMG5+UEJMQUItYV9AZH10OSMmQ29GbkN9UCU2TjlrV152X2VM YFZMWSh5WXFSKwp6aEcpdVdDfDRxKV9VdlZASkRrPXlDOW5qWUl5Q30lTyF1X21HIytTUlApekc+ YEg3P0xgWEhZclhKYHRGPnYlNXgKeiRaLV5oZXFPfUkqZ0cteWc+eUhLdnpAJlh4fDt8VXFWeFpM eTYxTXxJVilnS0xGb1FyMytqVjs+IX5aOW9ZN1JMCnpENXVzNDVfJWYxVXZSVjBiQU4pcWQmU0Nq eHNtU2hFMWpLYT5tOUpZTHdiT2g7PU99fHdiTHA7UG4rcjxvfEh0awp6cVZxRzZmQkdHXjN2Xz1V cTdeKFFuVk5+Sm5kWTBAXyEkMFRxZ2YoUUdFSUpXV0dKWW1uUSFuKDtDaFBCRDs3JF8KelF5UT05 UkV+R01CIVlmWTJJLSU4KFRkXmdlKVpkYTxXTEYhaU5TQjltdENEVClgP0Y3SihnPUczbFMxQ1Bt WDR1CnpNNW8mQy01VVcrU3BkTmYxeGNiRTk8cEsqVkRiWjFtc2dYUCl7Y2xITyYqZVNCQispWC0r XmotUjdMJGRXWDBFNQp6QSZtLSNhNzlQNzdHPnY0Y1BVRHtMWV97OWw5amhCXigrbEYhV3lFNXAl Pmlra0dxKUMtK0s3JCYwJGF+YF43MysKemtkXn1aWEEzVmxIcn10NVYzaEx4citHT3dGKTZzMkN1 PjxlN3gkYjBuTGxhSDE9az4rP2N8SVZPVjZQbl5Yel9pCnpqVW1QUmd+dCR8UDMkK1UobT40RUw0 U0dGPGxucys4Y0tWVDZfVUgjO1RucEZqU3ZBdl8odGpxTTVAWXVjOHNBNAp6JD1MPz1MSDF6eVlu P3J0QUEmVmQmYEtONnBALW5SRDliP05rMmVHPzJqdCpUTH1VQ2wrPCoyWEwxVFFVcEQjbTgKenlx M293T1F2M1p3KTcxY0A8Iz9CS2x6c3gqQSprIXN8YFQxOFNkaF5aLVc9e0lDb0xRdChzWFNpUz55 KXdteldDCno4U2VVYmkkLUw0Yml6fH0zX3cpOG87Q3RFPn12ZFh6SG9MezcxNnhLZmZpJFQyWW0/ c0FrQjxIQXVaRnpKNWxAZQp6OzBIcGxOajFHUjhpR0BNZH13cXBee2l5YHl2alRLPiFuK2RIJT98 cCZNfEF5RHI8JjJ4K1N6SUMyMXxfcGZ5T18Kel5nd1khNWRDKlRENmVBdzMoXiF8anR4TXRzbER7 JGdJUGxmd2d2LXEyZ2QtTmZGIXg3MlpiOVh2eFRsSm9lelUmCno3OCg1bi1vS1VaTk16YD9AZ2dw fChYcCRsMX1OQDgxT0pYR1JBbnppPCFZI3JUbTtpTlcwYllBKWFLRkZsVmUjcwp6Y056Zit5WDRk NzgrV2ZBRjBVTjk7cD42TEJpbjVlNWswQmpgMiFHYyl0RVRRaWJNXioob3FAe0kwS1NTMykoTGEK engpdklyWWA1X2FhSHdVRm5SMTtWRH5nM0AmLSFFOCFRTEAteUd2VHVWazZnJUE4a2NyWW5TKUZa T1Y7O3N3UD9qCnpHNklUfU1AeGNeOXxzK2JMYFdwPHVIND9kUlBmP00pb2NENmYpcFpVWUhpcSNJ ZDU9biZDJGk8MD51QGRFKHkrcQp6cFJJVUc8KDteLThWXmhUdzlVb1lYKmE3X19MVmVJNEFXPzxZ eWh3U1Q2fXMzRGJ3OHYwcWt5cT8ld3pMbHs0ZHUKejBXVmtoV0RtSm94NlRkKEUpQyEhX2N3T0w5 SzV1d1JBWk4oXylrVVR5YmteQUZQPjcoSkdVUVBCbG5+cWNgcDBJCnpDRE54SShEMXdTQFQqRGcr dHVTclEjQUV+UnhSVlpvISlFUiFlQXFkbSh5PkFDcX5BUHlqbTdQajN2XjEpdVopbwp6JVdSbTRJ WCRfOyk+cTwoNTFAMEwhOUN2PUh8fT8wKTVPT09KRU8wRktkRyFUc1RjKEFWUz10Mm9hMn5rM2Bu I3sKemRJKjdWMWEjUE4jSy12Rikocnw9WUBPdHVWSGxqZD9tcVchNn4zRjh1SzNeP0J7O08+P0Nt e157QFB8U0glWWZKCnpsQTxfYGI5dXNRWW5XY1kwYVU3fD9wX1B1SWBvSlA2XylfPTAzSEh3dD9g OWx2Z3wwVDFJfUZUcTRTRTgma15raAp6bkQwKFVOcGM+fkZWcTZKdz17PC1QSUhyRWooMWBSPCNu NitqOEd+M18jdFZXSm0pIVA8aCM8T3s8Q0M+Xnx2byEKekIyS1loYF5AZ35EPkBiQlRQdDNCQiFi Y2thJURCbG1VTDtgVkQzd0NRYkROPEQlP2d4U1ZDI0MhRFlOSVY2QHJzCnphM0hJeE07OSElYSg0 UXQ3K0FnR0p9Y35kcHpEYTw+OSpSNWklOzZMdlR0TjQoX1JsSVY5JHR1TChKXz16RTBqPgp6c0w8 fW5hJTdXV1c4SFlfKGdDPENWO3ZyKjNHY25hOWp7P3QmdDlCdFhwLUNQb3ZWQUZPSzFmTmcyZFRX Q3czI3cKek1BNVBESERwPGM3Wn5iWllqWU5sTUFkbVhtTVpIVG01VChGaWVQazU8Jn43SENrc2xD XytiWHhqfTkmaVNDIyl1CnpaRSZwZlZuN3BycmAyTHpeZ2JeS2EtXnBfR1F9TU9DSkVVTF9mJCtB V0JAWSpVak48cnswaWwhc3BMe09aQlh5NQp6dlNHVXVJQUp5UHh5MEd5SEhxVWxzN2QqYik0M2F6 dERXcUJlRGAtJGQ0c2d2b1o7dnl2aW9VVHdRVzchMkMxbV4KeiFncUd3IXJ+THpKPFZhRD9iPkYk YHFrb2R0V016JlFROWx0RC1NQ1JgQU9QdnYoV1I0cnlPMjNPZyhtWSheWHQ7CnppcXctUUMpQVdq cnopYkVAS2M2JVRUYEVOdjNOKlVgYXlmVD1ucHQzV1BpM1cpRldGMTxHQ3diS3E8a0FvfWliNAp6 TGdAclRjWD5WcSRTVnJESyVhS2RRbVZPY1Uxb0NxIzZHOH5uK01PO3U2cENXZXZeflVeeXI1UUNM T3hoamhZRkYKejhrYExOZXI3TCZEK1BwQHVlTnA0czNNdjg0eSEtcFBfb15hPSs9QFRJMD90PWtj SU1RbE5BR2s3Y2VTXkA3N0xPCnpAfWNwaCNrSSt3WWNRQTg5anZRPCpCPntTUnhYJSVpMkRJJTdp TTAtPjkmelY9WXk4Zj9NRGJEcV5qenNQRGFBegp6ODhLJVpea35DY2JVTkhQITRLR1FQa1UwdjU+ Vm5wVncxUkJ1WkY+MC1oK2QjVn1Idj4mQVoqWTMxfGxTdEJOZiUKemJgcE4zSn11SHwyQjMrSzQ9 aiFFO05LXzgwfmdCSXE7Qn1NWWojbURNS2tHTUtTZGMqdmUrWmdAO0JkX0srNk9iCnp0JHJiKTY0 KzAoaDY+dDZAaHgrQV87Jk10UyFPfCUhK1ElZT5NKWF4bVFeYmskPF9XOW1tKUwzUUZPJHc4V2dE TAp6S0dkWnE4Y2ZOWWFlIXZ2dSlrKXkkPCV4QytsTD1HUTFNKytPYXRoMTElJSUxT0p4I29VUCk1 RXUtdlgxQWhWdXQKelg9O2Fhb1dueEhhdXlVXnxIUEQ8dXgya1JsbjE/dFQ/KEQyYT53cX1rcCN5 fnEqYDBGMXNoTFc3QElkSUlIUFhqCnpmcXU7WD9xczNyQClgTDJXZFE/UDNOUiFEUjFxaE1xSmZf UUJ5TX1mUGUxdG4xOCZOS2lRVnNXZT9ZeSNPWTRAfAp6XkRfUDtkeEwxNlcjaTIqd29YeG5RUztW TGo+RjgwWG0rcFppaGApdHVDezMxTiElQ0JTWlUtcGJ5bUJTNyt7X0MKemFNMEI/NUB5ZTRtQT8t TVR+RWEmMUdpeH5Jc0VNT3VKYjVzdnZIdWglQX4+Xns9eWBFPiFsYzdSI0ZkJmQ2PX4qCnp5T1lO OT1XfDcmPSEtM1JATkB1IyZMT19DWn5QRk1sNnZjRDtJYz0kJGNxMGdjd1BCa09XWGQwey1XKWRL Kj9XMAp6JEJwMlcrZHc/Yy1TfGNHZGttZkgoY3B4UV9mTmchNEwhbU1Ob2dqbnBpc3lgNjs4VDlE VjI1PGlOVHpIc205fEYKekxUUExoTSEreGZBYnZqSXBLKWhmTXhkJnZKKGdAS1RaOD5ObypyPzxY bnpaNFZVdFZTWTt8TVdFe1ZnV2xMOC1LCnowRFZ4VG18PFVlczxFM296TUphKmh5KFNaa31naTg8 U1FNPXQ0NlhtaDNoeCpGeiQrVU11IU4kdHUqIytAdiUqRAp6WntSKiM1OGU1MXs4TWtINSpvS2Ml Tz1XdHh2bXt0O185KyhxN0t+NWd7Rm8lITBzR1pgMEU4eHZDVncxajhRYT8KemIpY1JVWSFVamRj dTdeaHk4NnRibHNMeShrMTxwaXBAQHJCZ2gtPGNfR3FrNHcpaXs/cW1yJEI2OEF5fClIQUFhCnpQ ZH5OOCk2eU1RQih8PkBAc2pqdHh3ZEpwZ31UPjUlb2J6UVp+RUp5UnQla3k5ZTFKOF87ZjFabEx2 KU5UR3R5fAp6K0F6N0RUTE9ZdUkkaXhSeCZTWCQ9dGQpSnFJYjw5eVUmVk1SSUN+fCRReSkyZWpm P34oVmxWZjJ4M0VGRGB6OF8Kel4zSTVCTytEc3J3UTd7KVg9YHVPLXV4KHVXKT12NmkjbEdUUjFh cD9VeWY8bzwlTG5VcDJaO2pFUnZMQCNxfnRvCnpza2haUWtHfTN+TlIkbShQMEskY0hQbUs7KEFK cng4X25JdVg+Y0w7RGxtc0BKZ051fFY7PFg+a3Q0dE8rJj1ZVgp6d2RSKU9vOUpheT1FYDhwK35q clhFfH11fWdhZk9LMmZmQl5rRmFJSGVPJDNeYSlpVXg9e2dtfHVlUFNXbSZ8YmsKemZ+NGh3LWp6 cVotSXxWelVrSkp8OWZJU3A8XzlOVUZBU2NnVW1tUiNRMENIRHkmUHJKIXVlUWE9dkM7amxRTH1S Cno7WEQ2OTkpZ04zV2lxcmRvWUomZSFuNnNoc0JVfCN2cDszSG4xcll7TmB+WnpFXj1hfTxTN3Vp aXV4JDY4VzVqQwp6Kz13ZiU9XnlAQVBUMGwxQG1mRClqdDRPQjIoe349SU1SRkIzUWsmcWR6PGpQ NiRiPHgxNm4lKVRGUGtPUU5QeTEKemtZM3wpSjlBMGh0Sn1TQnNwTy1LbkJxQH1OaFFEUyU7RyQp K0liYnFoZCsxXlRkMXdzezBkMHMoZWl0NXIkZ2h9CnpyUERDRWI5NGNwVHh9PnZqNGNBeWxjenJu NFJmcE9ad0QqbTI9X1MkRkF8TmFPYFNodCp6ZEdGaUAhVm1sI1J9ewp6eUtLPVFZRzFrMXJHdjkt KERwKzJNNkplbilqRisyJWsheUV0ei1JT0A4IUU5cTF2IWlybXl2KHNudUh2JlImWmAKejBfamd4 NTNhbzt0KCM9KmxzRTFOT3RzaSE2bmpTTjc+fTlTYXN6bytiQWcxXmVGaCpRV3RhKEc+TSt9fFpf bHdyCnpfMDBgJGkyQ0c5aXooJWYkP1ZFcGsjJVV0bG54bCp5JXlyQWAreVhmaVhCUGpEP3IrM0ly T0ZTclE1WTRtQFo0NQp6SWBqazExKC1KNzhobS1MMFRxZFlLUWdeYy1HZ1FnVXxMU25HRGh+P2Ej cGtaJSR0ZnVCZ0Y4VEQ4fjd0LW5+LVMKemMwUXdoTmFkT14+UFU2MUg7TlNPbTJ2QntKZ3BTJmdH cElkeFBAS21rJklIRzBmMEJXdzhheSRyJDNMbHZRflB8CnpTSkFaRjVkaUd0U05iZkU8ckZ4Q2FJ YkVHLVpSQXZmVUJnMk96JH4ta21fNCQye1V0JEpUeFd1TyF3R3N0bXU7aQp6VDRlSTBmY1NwVHNO QnpFelRYUWlgYGdNU0BfYVhINW02c3JgV0BlJFdhekgpIU5UMDViUig8bnt2XnNeNmU4Kz8KekhN JD8/MXdLaD54bzB2eGNGUkBuN0o3UVhVJnYzTDJMTk5rbGllS0M7bmlMSipXSkRHQ21+MyozNThg KyV3VyFUCnohKz4ofDxgTy13TGZhZkJ0RyN8eztLO1RqPzQqPCVxNyszZXZzYytBezd0dko2QG1S V2tJJCpZMD5CfUNsVHkwNAp6b2stfnkkcyUrdUNxPHBSKWorZkg3eW1jNCVVcj5tMy1zZENKN2xA O1E9TGcrd2tQXjZCbWdySHNRX1F6Vm8td30KekR1aCUkViN+ZDdHKFBIM0ZFJWE0QT9kTFlvUDUl IyZ4fGxnXnpyJmZxSFVEaCopNGl3cX15bCh3SV85K087e29MCnoocHU1aSFvQS1pWmt8SCRPZUEj YlF1ak1+ZjswaXl3ekdzZE5vKTVCNmZVIT1DUGlCKVB1Z2Aoc3coM2JYfFlFcwp6YyVAJmRTO3NS Yil2UlYydCNxJjZKe3BuJnsleXhzc0xSJnFkMV5OSjk7THBlbTJKc2E4VGgoRj9UbiVrJWx8cj4K eiY3TU5FaV4hPDc/VHVlSU1DMSl4cnFmQmdyJF9APEFDP0xWTDJPPjA2SiVHcEtCYVhyLXcwJkFO LWFQMWZ8OVBxCnppMXNTUE4mZmUlfDB+IV9OIWs1N0VVITdRP1l4RDhlT3dEZTZaNktOczhxQkxP cE0re2ZPZ2B7ISohKjJefE0yXgp6TWNqI1lNVDBKYjYtQTM5LWJSKG5kKUlKMChIfnk/OGJsM2lq OSpkaWIrSiVDKHglLSl6dTMzJEZMN341ZERLRCsKekxxe3EyWStETV9WcyZsbllkP1N3K2NUSn4o Xj9oWj4hcFBoS2Izam8jY2t6al9KRjRuZSlgTD56U3JVKSNJNEhsCnpgMDN4YmlVMEZwVV9NbEJJ bzE2QVZ+Nns2M0ZkNjJySDxpUVgwKSpOelNeWip3UG4yWEd2K3JuZlklM0B2dnBqIwp6YGBmRTtV RGxlUHwxQSttUG9gbnpvSFZ4PWo3MHFYJTN8azVpdEgyTmVLIVVEeH1jIyVeM0dKV1NTd3BWMHtm UlEKekdPViZUQyt7Q1pRR3dYc1Ngdy1EZnx8UzR6QGhUWDYqbC1KRzRwT1ptJTZIQWR5UjBFUzVC d1FXfl5UUyh9Wjd7CnpffmVFdklNdH55PHl8dng/b2ApSTN3TWsxPWlMQj5QT3NnPiVlb0M7K0dn WXMxYUtLfmYxQXk2SndiKCYtZm1jPAp6aGVlR3NMUihfITlOYjRfeShwKD5lRXJvbCM8MFQtYXlq JV97eXg2ZXhxdjJOX2hJYnZBJHVHLSt8ZS0hQl4qfDUKenJkQi1lZX1rZUU1YGRnPCFzKDFDcENS aiFlcXZ8fStWcCo0VzxkdEF5Z1JsODhCb3ZkZXhqSDVkK3UwVGJXTnJHCnpZUjR1SHhxdnV5V3Zs eGRkRERBNkpGMFJFbXg8Vj93YVk4V1ZJdCRxKjBaJDFBdnNYaTZFfkBsPVMrV2ArVGMlXgp6Pnk+ Nz53ZV9SZThWal5JaG4pRC1hO1M4OFA7MWJ7NiVOSVU0PXhkQm9qbS1WaTM7M0wmfj1zM1IjKyRZ WClqdnYKekUlZVAoT3JWY2NvfmhGUDE2eDxNdEo1WUkkV0FFPnVFb25PQjJwfSlKMVEyOWxHMjhp dzN4PntvRllJSiUzdFZvCnpyYXdgd098SCM4KnhIbio+R3tXZllGQFhAQjY+MGx3Kiptfjh5d21A YXYya0k/VjFraDtPX2taODlPTnRxRV5vJQp6S0tKZmxDUEFNZnpFcUE+bF5OUiEkclJNZT17SUFV cGY4LTZKb1J5KXg5aVJua0QtPEJfcTg+fTNBVCQ0S3p9NX4KekcqcjEkbk8tbCtNZGUwNUUlZUlk OVQ0U05xKHxnalg3QTdOSm1Na3AoI2FPeFV7R3p0U35Ld3d6dEF2ZWdGPU43CnowSWRvfXAmPVQp RG1CRCF0JntqXmIlSXxQc3UwSEFrJFFWV20we15YRk9lZWk0Uko1OT5DSSs/Jkl2JWtPM1BnYAp6 ZUpNTWhScGJLZ04wdipCUTh1akw9TFk/dFAqVnskd1BoPkVXeWd1aHYmJTQ+NEVXYDBGTWpEQlA/ OG93QXskKFUKekRAaj1GPEN1UzFsMjR0OEIpPX1AOHRLa21DJj8oX3B5a0YzP1llU0Z6Pl93T1hZ I2h8U15KVHJtJTBCRXlYNUhnCnopITtxUiZDKlVRcz9UMXwoJi1TSncmK1JqUyh+cUpmcVBzTEA4 N1p9QlJMbzlgcXRjaDBwNVdJYmpxbThTIzF7IQp6OTBabk9qQ3VHWiR2KzdAdU9xVThwSTNBfE9N RDJ5Ozw4I3VSaXY4NWRzdmdUYUU0TmIxeFg1WSV9aHtwb0ROOyMKem9KYWhIe0NpeEVeVGUzZTdS THIpUDZFODR5bFl8WnN0KEpsJUBweXZrVVpIXnFxb2tpJlg9TlhUeGJ6UDYqPSFCCno5RCQ9PVpR bigzTmw1a3h5fjRZUzQoMGgqPnRgUzNkQWgxOEI8XmJDazRnfnVTZG05ME1gVUtrV200I2R0KEdy bwp6JU5nOUFteyVxO0IkSGFUKHcpMC0wentYKGx8dnpyQV5sVzBPR0k8PWVEMFg0cSUwTjlyc0Re JWQ4dEx1XilATzEKenNtfUheNm8qKEJDRnpue2hva1dlQ1AtJFo+XiZyO1RAWnpxeCRRSGwoM1dr RGNMTHo/RCYpSXFuej4lUHA2PDVaCnpHVkF0bT1KflNnTXRMfGwzc2locy0/b2B2eiRjcjt1ODBN JVk2U0BSMmpoSTUlJHUycVchRCNHb2FPSChBRnBlOQp6WEFGYVV3NjhgKCpTb2M/bVVjZDw3dldw cyZnb2dHX1g7fGwxO0FodChTYnFhTGw4JC0kOH1JfnI/MkVQTF9fYjIKekRyS2dxS2ZWO3J3T3Uz PXFhMj1ZX31vM0E9cDNBKHZob3NweDlJeUQmJH1ieTQxKWRUOSRoS0lXM3NYWVFYcFd3CnpSIWp2 Z0Y1a3FpUkg7MllabEoxWFY7PDMkbmwwZWhaSUdyNlkkUjdBR2l3PzlTVStFc3NvWHRlTnheZEw7 VHtnfgp6S15FPn51NE0+Wm5OeT93akMlND5TM09aRXlGeW5ZQXc3RlFRc3MkRCF0MSMxcmFfKCM+ dSg5MjBnM0YqJGl2floKej9nWUlCNCt2RTNVVW8mMmg/c2RxSERYUUpOSG4hN1BadjF5dSNBfmsw MFBpP3hfZXhEayt5MlNfemQxX3JGRktYCnppdkQqPSp2KUc0KSVmQU5zUTNReURLLTZOXkhwIU9q Q19WQGU2WGRpSmBwM1J5THxtKUpLbURJOHJGLTgxX3FsZwp6Yk4wMUtxYkRxamQzcUNMVV5PeERT Vj9EVk58LSgwcnd9VHRVUCpOfj9mOWRwSGBSSjt3MjwxXnIlMlkldERvZ2YKejM7Q0RTP0B6aSN6 T2tqcmEhQWE8UEdVS0gmZHYhWXBgUndaQi1pOCk1RDdEKW1INnRpdE82NVh5dlE9WCtLV1lhCnpX JXpBMlNTITFWXnpfal91Ml40QG42IWFPKWE+dEBvMm04e0hkZjU5TiRMWWBfRE1wSyUqd0d3ODBT PlMmRmMmTwp6SVNXWEZKPXZrMTc1NU5APl9PSSpLYGBJQWR2T1hSRillY1JreFZLISUxcHk5IXBg SDdxTHY8X2BTVW5ZT0UoV14KelRJNS01ayFGfEM7ci0hKUU5dX1vJDZSQ3YqSXtpQGtIR0RvJXpu fWdqZ0wqcyQoWUYxZnwyQXloXm8pazJLfT4kCnp7QEpIKE1Ve28ze1B6TyR5eDxYVXp3bFM4eSVv OHZZZzMjK0c+eDFPYnc8dU08KXs0ZW9VVldNNFAyd2kyczRXQAp6Xil2TXNBUEJ5OEo0JkM1SiQ+ KGBYUiQzby0meVlGQSVIIz5ud3t4U1JVM1J9ZWRedTlDNDQyfWpmczBRUkx0dE8KekRxe2h8I0FS OG4ybUh5YGRIeDRLMSFwbG05X2FTc2l6PH5kdn1KS1dGRkElaD1kMXlyaSEkIzRYMCR3Mm8+Nz1T Cno0YkF1czBUaSReJCEwTGBBPD9pfEEoVSVDV2EkRlZOJlZ8LXF2fjteWTlHKEluPUlgX2ZLZXNu WCEkTUN6by1Pbgp6Mmk8aD9FQUZRMGktWXQqTD92cG9uczUpeEJ9fmYkamo9V0pBRTdhKDxoQkt3 LUs+ITJgQ2M7OFNFd3dqU2lqY00KenVFIVJxb2ArfV9VWU5uT1hRXnFeNldyMnBTYUY8IWV0OW1o LXcmTikoKmFjVXs1e1N9K3dNN2xYdWNXQygyRyVrCno1RFhuKHJwP3BhbX5VUjxFalchKENERkF6 Um5DaUs9anB9Xlh2ZzI9aV5xan1XfTNIbDMtRXNgYypERHAjQkRDdgp6aSomQl9AbHc/JVktRUFg Wmt2aSVtN2NZb1VOR3l+b2FzayYwYDJDYiZOQzBBemVnPEJObTR+T0NQY0ZHRT9xNyYKekVTV21L RTYzWlBUfUkwcXN+SjV8bDs5QXhtMVNAbHJJQj1nJTBGd0l6Y3x2WEVrb3tSUjRTRGp6cUgkYS1g eXpICnotMXN0e2R8QU48a1N5bV53PGArZ1A1V2lMQDB3O1JJQXhAODRqN1p9Yk5oVTw3QXpDS2g+ N2hZMz9TOEAwaH1WJQp6OFRweDJQRWZkVThiNFVvdUM8NlVGPHs4dERVJGsjc3hNWXJDQk4lVW1U SnVkJFhqIWEoWENxbGBwPyEpP0t5cUMKelo7RClBXyFFNTFERW5mSCs7WDd7KE1aOHV6IXo3S1Fe b1UycmA0Q2lxNjN7VlFUQ209RX1CbjlAQTdAeEgtMlVHCnooOVlKJGVDbVNCQGNwSmU/O0l+Jm5z NkNnPihxU1BnNnpEZmJEKWRpUXE8WUYqbDdIdjBSXk9ROSV0akM5I3paQQp6WWdzV0w7amlac3NW LT8jX3FjbyVrJD4ySSRKcyR5I0kyczFaQHdnZ2x6a08kMTYjSjY2a15BPG92YUFkZENwPDwKejJx c0xkTVh8WXs1MGprMnlPfmZ2dFpCTzdKP2hRbTJtMTxeal4rVlFTPXhJWj5wR0AzcFMhOERATlNu JXlnYG87Cnp3KEFTK1g/VXxscCheMmJQYylGc1N7YG1gVDYwODM8K3ltbWBrY041bkUrSmNUfXg+ THYjcmRXO1d1NEd4eXFVTgp6c0ROXztYemV9cWVVQWteWm5EYTxyQCVpfElfenJiPFNYS0VvaFhP WFghT1U9dlBDTEZEUSVlYEErP1cpPUVWTTsKelRGUGBtSj43MlN5em41aXQxLTNXRFRCRjRCWlZA fnsqaldtZFY0bz5SRDdWdUlRZis7UDdLMmdVTXxzdT56ck1GCnpIaFNkdlo4YU9gTjluX2xsSlAk XnQzNnl4THNNN1BpM2lZPz5ZXypkd2hxP3lud3NMU2xkcDduUSZaQU0xcDF1dwp6ayRhaWx5RzFV YUVxZmxYckBmOExhTGV0PmQpaVRZd014dXlzQ1RmcDl+fkV9elphR0kkb1Y1MF4yWHkrblVqWTUK ekBiWlRaSGVsTjRpM2hMVkY2dnVxQXYmazMtd29QRC1lanJ0NFJnMXk/TmZfPVo2Y2M4WFdnelV5 VCRNQEMmPlU0CnpwUG4wfCVILXRaM1QlY2ZVKCZZNnAhOCYlTmtGKkF6dG8/K1BXSVQkRjFATERI P2d1MF9vflA7S2A4Jko4eig+Ngp6TWxEfXlxWksoWFlvQXM5YT9VSlklZzVDdEVpbDdrQWc1PSYq WUFBeDVTbC1pbX17fEdwKmBoMTFeM31ZTVZkST8Kej5MQUxvSmpDTW9SZzhAbEVfVDU2JXVjOEor WTBPbjgjeEhNKmZPUXd6MHB9dHsreDR1WU9VO2pyKFhCRXU9ayNuCno8NzxWX2FzcHtqSzdMQ1BO R0lHb0x+cjs3X2JRdElDe3RCOExmVmh5d1o+O1pmSiV6cEZ8JGR2Jm9QJjYqTmU+NQp6X1RyeGA5 SS1gXmgtSnk4aVNXNkY+KFFgY1N+PVNDZEZfU1FifDtvcDVCQjgqaGd1cX4jSVB4WGdpbFY9eHVE XisKejJfN3p8cUAtbU4xPD5GSkBfUV5KaHt6dDZ0YWpER2FeP1lQQVQkbDs0WkJzbUZ1P3Z+WU54 TjthbHNYYDRCKj1oCnohYHl8LTU/M1QlR0NKdEpIa3tmYUxRQXFHKytMZXtSc0p1TWspYUAoblkj Kzw4c1IjQ3Y4fV4heGtqeXhANTBodwp6Y3U1Tio+Rj1IWWlnMU9RRTtsS0t5cH1ATzNzcFIzN1d2 bU5hak1faiteSiNgaEJpUHojQjxgN3BMcGghSyR4eGMKenpCMXg+KmJWJnUhWWhEXiFjRUw+e1hh NFpqNiNXT2tiQ2hJQCFAWU5Lb0U4aEFoRk9vJHx8d15QRkRmWjt0d0ZOCnpYR1FsSWAhN0s/OXc2 WXBTM0ZucmswUTZ8MDd7SkNFZjN+QDFUUWxKVEJzJUsjUWNIeWZPPnJDMylLY3NDK0dlbgp6KmJv YjchUGYyS0QrPWBmQDh8MGFLdnxCajdYSzFfYz9YRStXOUBydmV5MUJ4YGtWdCRjSSgtVUBJUWgj dF4tPHgKeiQpcz8rey1AO3xUKEdjME4qVXZTMzMzQSY2ajB7U2hSSHVJfEY2c2I+I35NM3xCYlQk Q01OYVV8N19XUj1Lc0dICm1eUz40SVNFfkh+VjwrU0xAbzU4KFRtQiElKit1XlhLQVAmZmNkKTlr PWw+NmZEfVM1LQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvZG9jcy9lbl9V Uy9xdWVyeV90b29sLnJzdCBiL2RvY3MvZW5fVVMvcXVlcnlfdG9vbC5yc3QKaW5kZXggODM5MzNm MC4uODBmMjdhNSAxMDA2NDQKLS0tIGEvZG9jcy9lbl9VUy9xdWVyeV90b29sLnJzdAorKysgYi9k b2NzL2VuX1VTL3F1ZXJ5X3Rvb2wucnN0CkBAIC0zMDAsMyArMzAwLDI0IEBAIHRyYW5zYWN0aW9u IHN0YXR1cyBieSBjbGlja2luZyBvbiB0aGUgc3RhdHVzIGljb24gaW4gdGhlIFF1ZXJ5IFRvb2w6 CiAuLiBpbWFnZTo6IGltYWdlcy9xdWVyeV90b29sX2Nvbm5lY3Rpb25fc3RhdHVzLnBuZwogICAg IDphbHQ6IFF1ZXJ5IHRvb2wgY29ubmVjdGlvbiBhbmQgdHJhbnNhY3Rpb24gc3RhdHVzZXMKICAg ICA6YWxpZ246IGNlbnRlcgorCitDaGFuZ2UgY29ubmVjdGlvbgorKioqKioqKioqKioqKioqKioK KworVXNlciBjYW4gY29ubmVjdCB0byBhbm90aGVyIHNlcnZlciBvciBkYXRhYmFzZSBmcm9tIGV4 aXN0aW5nIG9wZW4gc2Vzc2lvbiBvZiBxdWVyeSB0b29sLgorCisqIENsaWNrIG9uIHRoZSBjb25u ZWN0aW9uIGxpbmsgbmV4dCB0byBjb25uZWN0aW9uIHN0YXR1cy4KKyogTm93IGNsaWNrIG9uIHRo ZSAqPE5ldyBDb25uZWN0aW9uPiogb3B0aW9uIGZyb20gdGhlIGRyb3Bkb3duLgorCisuLiBpbWFn ZTo6IGltYWdlcy9uZXdfY29ubmVjdGlvbl9vcHRpb25zLnBuZworICAgIDphbHQ6IFF1ZXJ5IHRv b2wgY29ubmVjdGlvbiBvcHRpb25zCisgICAgOmFsaWduOiBjZW50ZXIKKworKiBOb3cgc2VsZWN0 IHNlcnZlciwgZGF0YWJhc2UsIHVzZXIsIGFuZCByb2xlIHRvIGNvbm5lY3QgYW5kIGNsaWNrIE9L LgorCisuLiBpbWFnZTo6IGltYWdlcy9uZXdfY29ubmVjdGlvbl9kaWFsb2cucG5nCisgICAgOmFs dDogUXVlcnkgdG9vbCBjb25uZWN0aW9uIGRpYWxvZworICAgIDphbGlnbjogY2VudGVyCisKKyog QSBuZXdseSBjcmVhdGVkIGNvbm5lY3Rpb24gd2lsbCBub3cgZ2V0IGxpc3RlZCBpbiB0aGUgb3B0 aW9ucy4KKyogVG8gY29ubmVjdCwgc2VsZWN0IHRoZSBuZXdseSBjcmVhdGVkIGNvbm5lY3Rpb24g ZnJvbSB0aGUgZHJvcGRvd24gbGlzdC4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkKaW5kZXgg M2E3ZWU1OC4uMDI4ZWU2NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkKQEAgLTE1Miwz ICsxNTIsMzggQEAgZGVmIGRlbGV0ZV9yb2xlKGNvbm5lY3Rpb24sIHJvbGVfbmFtZXMpOgogICAg ICAgICBleGNlcHRpb24gPSAiRXJyb3Igd2hpbGUgZGVsZXRpbmcgcm9sZTogJXM6IGxpbmU6JXMg JXMiICUgKAogICAgICAgICAgICAgZmlsZV9uYW1lLCBzeXMuZXhjX3RyYWNlYmFjay50Yl9saW5l bm8sIGV4Y2VwdGlvbikKICAgICAgICAgcHJpbnQoZXhjZXB0aW9uLCBmaWxlPXN5cy5zdGRlcnIp CisKKworZGVmIGNyZWF0ZV9yb2xlX3dpdGhfcGFzc3dvcmQoc2VydmVyLCByb2xlX25hbWUsIHJv bGVfcGFzc3dvcmQpOgorICAgICIiIgorICAgICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZSB0aGUgcm9s ZS4KKyAgICAgOnBhcmFtIHNlcnZlcjoKKyAgICAgOnBhcmFtIHJvbGVfbmFtZToKKyAgICAgOnBh cmFtIHJvbGVfcGFzc3dvcmQ6CisgICAgIDpyZXR1cm46CisgICAgICIiIgorICAgIHRyeToKKyAg ICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlcnZlclsnZGInXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgKKyAgICAg ICAgICAgICJDUkVBVEUgUk9MRSAlcyBMT0dJTiBQQVNTV09SRCAnJXMnIiAlIChyb2xlX25hbWUs IHJvbGVfcGFzc3dvcmQpKQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMg R2V0ICdvaWQnIGZyb20gbmV3bHkgY3JlYXRlZCB0YWJsZXNwYWNlCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKAorICAgICAgICAgICAgIlNFTEVDVCBwci5vaWQgZnJvbSBwZ19jYXRhbG9nLnBn X3JvbGVzIHByIFdIRVJFIHByLnJvbG5hbWU9JyVzJyIgJQorICAgICAgICAgICAgcm9sZV9uYW1l KQorICAgICAgICBvaWQgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAgICByb2xlX2lkID0g JycKKyAgICAgICAgaWYgb2lkOgorICAgICAgICAgICAgcm9sZV9pZCA9IG9pZFswXQorICAgICAg ICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHJvbGVfaWQKKyAgICBleGNlcHQg RXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0aW9uID0gIkVycm9yIHdoaWxl IGRlbGV0aW5nIHJvbGU6ICVzOiBsaW5lOiVzICVzIiAlICgKKyAgICAgICAgICAgIGZpbGVfbmFt ZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5vLCBleGNlcHRpb24pCisgICAgICAgIHByaW50 KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbW9k ZWwvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weQppbmRleCBiMzNh ZGMwLi5kMjRhMzUwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weQpAQCAtOTQsNiArOTQsMTUgQEAgY2xh c3MgU2VydmVyR3JvdXAoZGIuTW9kZWwpOgogICAgIG5hbWUgPSBkYi5Db2x1bW4oZGIuU3RyaW5n KDEyOCksIG51bGxhYmxlPUZhbHNlKQogICAgIF9fdGFibGVfYXJnc19fID0gKGRiLlVuaXF1ZUNv bnN0cmFpbnQoJ3VzZXJfaWQnLCAnbmFtZScpLCkKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBz ZXJpYWxpemUoc2VsZik6CisgICAgICAgICIiIlJldHVybiBvYmplY3QgZGF0YSBpbiBlYXNpbHkg c2VyaWFsaXphYmxlIGZvcm1hdCIiIgorICAgICAgICByZXR1cm4geworICAgICAgICAgICAgJ2lk Jzogc2VsZi5pZCwKKyAgICAgICAgICAgICd1c2VyX2lkJzogc2VsZi51c2VyX2lkLAorICAgICAg ICAgICAgJ25hbWUnOiBzZWxmLm5hbWUsCisgICAgICAgIH0KKwogCiBjbGFzcyBTZXJ2ZXIoZGIu TW9kZWwpOgogICAgICIiIkRlZmluZSBhIHJlZ2lzdGVyZWQgUG9zdGdyZXMgc2VydmVyIiIiCkBA IC0xNzUsNiArMTg0LDQ0IEBAIGNsYXNzIFNlcnZlcihkYi5Nb2RlbCk6CiAgICAgdHVubmVsX3Bh c3N3b3JkID0gZGIuQ29sdW1uKGRiLlN0cmluZyg2NCksIG51bGxhYmxlPVRydWUpCiAgICAgc2hh cmVkID0gZGIuQ29sdW1uKGRiLkJvb2xlYW4oKSwgbnVsbGFibGU9RmFsc2UpCiAKKyAgICBAcHJv cGVydHkKKyAgICBkZWYgc2VyaWFsaXplKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gb2JqZWN0 IGRhdGEgaW4gZWFzaWx5IHNlcmlhbGl6YWJsZSBmb3JtYXQiIiIKKyAgICAgICAgcmV0dXJuIHsK KyAgICAgICAgICAgICJpZCI6IHNlbGYuaWQsCisgICAgICAgICAgICAidXNlcl9pZCI6IHNlbGYu dXNlcl9pZCwKKyAgICAgICAgICAgICJzZXJ2ZXJncm91cF9pZCI6IHNlbGYuc2VydmVyZ3JvdXBf aWQsCisgICAgICAgICAgICAibmFtZSI6IHNlbGYubmFtZSwKKyAgICAgICAgICAgICJob3N0Ijog c2VsZi5ob3N0LAorICAgICAgICAgICAgImhvc3RhZGRyIjogc2VsZi5ob3N0YWRkciwKKyAgICAg ICAgICAgICJwb3J0Ijogc2VsZi5wb3J0LAorICAgICAgICAgICAgIm1haW50ZW5hbmNlX2RiIjog c2VsZi5tYWludGVuYW5jZV9kYiwKKyAgICAgICAgICAgICJ1c2VybmFtZSI6IHNlbGYudXNlcm5h bWUsCisgICAgICAgICAgICAicGFzc3dvcmQiOiBzZWxmLnBhc3N3b3JkLAorICAgICAgICAgICAg InNhdmVfcGFzc3dvcmQiOiBzZWxmLnNhdmVfcGFzc3dvcmQsCisgICAgICAgICAgICAicm9sZSI6 IHNlbGYucm9sZSwKKyAgICAgICAgICAgICJzc2xfbW9kZSI6IHNlbGYuc3NsX21vZGUsCisgICAg ICAgICAgICAiY29tbWVudCI6IHNlbGYuY29tbWVudCwKKyAgICAgICAgICAgICJkaXNjb3Zlcnlf aWQiOiBzZWxmLmRpc2NvdmVyeV9pZCwKKyAgICAgICAgICAgICJkYl9yZXMiOiBzZWxmLmRiX3Jl cywKKyAgICAgICAgICAgICJwYXNzZmlsZSI6IHNlbGYucGFzc2ZpbGUsCisgICAgICAgICAgICAi c3NsY2VydCI6IHNlbGYuc3NsY2VydCwKKyAgICAgICAgICAgICJzc2xrZXkiOiBzZWxmLnNzbGtl eSwKKyAgICAgICAgICAgICJzc2xyb290Y2VydCI6IHNlbGYuc3Nscm9vdGNlcnQsCisgICAgICAg ICAgICAic3NsY3JsIjogc2VsZi5zc2xjcmwsCisgICAgICAgICAgICAic3NsY29tcHJlc3Npb24i OiBzZWxmLnNzbGNvbXByZXNzaW9uLAorICAgICAgICAgICAgImJnY29sb3IiOiBzZWxmLmJnY29s b3IsCisgICAgICAgICAgICAiZmdjb2xvciI6IHNlbGYuZmdjb2xvciwKKyAgICAgICAgICAgICJz ZXJ2aWNlIjogc2VsZi5zZXJ2aWNlLAorICAgICAgICAgICAgImNvbm5lY3RfdGltZW91dCI6IHNl bGYuY29ubmVjdF90aW1lb3V0LAorICAgICAgICAgICAgInVzZV9zc2hfdHVubmVsIjogc2VsZi51 c2Vfc3NoX3R1bm5lbCwKKyAgICAgICAgICAgICJ0dW5uZWxfaG9zdCI6IHNlbGYudHVubmVsX2hv c3QsCisgICAgICAgICAgICAidHVubmVsX3BvcnQiOiBzZWxmLnR1bm5lbF9wb3J0LAorICAgICAg ICAgICAgInR1bm5lbF9hdXRoZW50aWNhdGlvbiI6IHNlbGYudHVubmVsX2F1dGhlbnRpY2F0aW9u LAorICAgICAgICAgICAgInR1bm5lbF9pZGVudGl0eV9maWxlIjogc2VsZi50dW5uZWxfaWRlbnRp dHlfZmlsZSwKKyAgICAgICAgICAgICJ0dW5uZWxfcGFzc3dvcmQiOiBzZWxmLnR1bm5lbF9wYXNz d29yZAorICAgICAgICB9CisKIAogY2xhc3MgTW9kdWxlUHJlZmVyZW5jZShkYi5Nb2RlbCk6CiAg ICAgIiIiRGVmaW5lIGEgcHJlZmVyZW5jZXMgdGFibGUgZm9yIGFueSBtb2R1bGVzLiIiIgpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9k aWFsb2cuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL25ld19jb25uZWN0aW9u X2RpYWxvZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzFjMDY0Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29u bmVjdGlvbl9kaWFsb2cuanMKQEAgLTAsMCArMSwyNjIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0IGdldHRl eHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB1cmxfZm9yIGZyb20gJ3NvdXJjZXMv dXJsX2Zvcic7CitpbXBvcnQgJCBmcm9tICdqcXVlcnknOworaW1wb3J0IEFsZXJ0aWZ5IGZyb20g J3BnYWRtaW4uYWxlcnRpZnlqcyc7CitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRt aW4nOworaW1wb3J0IEJhY2tmb3JtIGZyb20gJ3BnYWRtaW4uYmFja2Zvcm0nOworaW1wb3J0IG5l d0Nvbm5lY3Rpb25EaWFsb2dNb2RlbCBmcm9tICdzb3VyY2VzL3NxbGVkaXRvci9uZXdfY29ubmVj dGlvbl9kaWFsb2dfbW9kZWwnOworCisKK2xldCBOZXdDb25uZWN0aW9uRGlhbG9nID0geworICAn ZGlhbG9nJzogZnVuY3Rpb24oaGFuZGxlciwgcmVjb25uZWN0KSB7CisgICAgbGV0IHVybCA9IHVy bF9mb3IoJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YScsIHsKKyAgICAgICdzaWQn OiBoYW5kbGVyLnVybF9wYXJhbXMuc2lkLAorICAgICAgJ3NnaWQnOiBoYW5kbGVyLnVybF9wYXJh bXMuc2dpZCwKKyAgICB9KTsKKworICAgIGlmKHJlY29ubmVjdCkgeworICAgICAgdXJsICs9ICc/ Y29ubmVjdD0xJzsKKyAgICB9CisKKyAgICBsZXQgdGl0bGUgPSBnZXR0ZXh0KCdDb25uZWN0IHRv IHNlcnZlcicpOworCisgICAgJC5hamF4KHsKKyAgICAgIHVybDogdXJsLAorICAgICAgaGVhZGVy czogeworICAgICAgICAnQ2FjaGUtQ29udHJvbCcgOiAnbm8tY2FjaGUnLAorICAgICAgfSwKKyAg ICB9KS5kb25lKGZ1bmN0aW9uIChyZXMpIHsKKyAgICAgIGxldCByZXNwb25zZSA9IHJlcy5kYXRh LnJlc3VsdDsKKyAgICAgIHJlc3BvbnNlLmRhdGFiYXNlX2xpc3QgPSBbXTsKKyAgICAgIHJlc3Bv bnNlLnVzZXJfbGlzdCA9IFtdOworICAgICAgaWYgKEFsZXJ0aWZ5Lm5ld0Nvbm5lY3Rpb25EaWFs b2cpIHsKKyAgICAgICAgZGVsZXRlIEFsZXJ0aWZ5Lm5ld0Nvbm5lY3Rpb25EaWFsb2c7CisgICAg ICB9CisKKyAgICAgIC8vIENyZWF0ZSBEaWFsb2cKKyAgICAgIEFsZXJ0aWZ5LmRpYWxvZygnbmV3 Q29ubmVjdGlvbkRpYWxvZycsIGZ1bmN0aW9uIGZhY3RvcnkoKSB7CisgICAgICAgIGxldCAkY29u dGFpbmVyID0gJCgnPGRpdiBjbGFzcz1cJ25ldy1jb25uZWN0aW9uLWRpYWxvZ1wnPjwvZGl2Picp OworICAgICAgICByZXR1cm4geworICAgICAgICAgIG1haW46IGZ1bmN0aW9uKG1lc3NhZ2UpIHsK KyAgICAgICAgICAgIHRoaXMubXNnID0gbWVzc2FnZTsKKyAgICAgICAgICB9LAorICAgICAgICAg IGJ1aWxkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudHMuY29udGVudC5h cHBlbmRDaGlsZCgkY29udGFpbmVyLmdldCgwKSk7CisgICAgICAgICAgICBBbGVydGlmeS5wZ0Rp YWxvZ0J1aWxkLmFwcGx5KHRoaXMpOworICAgICAgICAgIH0sCisgICAgICAgICAgc2V0dXA6IGZ1 bmN0aW9uKCl7CisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICBidXR0b25zOiBb CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdGV4dDogJycsCisgICAgICAg ICAgICAgICAgICBrZXk6IDExMiwKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBi dG4tcHJpbWFyeS1pY29uIHB1bGwtbGVmdCBmYSBmYS1xdWVzdGlvbiBwZy1hbGVydGlmeS1pY29u LWJ1dHRvbicsCisgICAgICAgICAgICAgICAgICBhdHRyczogeworICAgICAgICAgICAgICAgICAg ICBuYW1lOiAnZGlhbG9nX2hlbHAnLAorICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9u JywKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0hlbHAnKSwKKyAgICAgICAg ICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBnZXR0ZXh0KCdIZWxwJyksCisgICAgICAgICAgICAg ICAgICAgIHVybDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7CisgICAgICAgICAgICAgICAgICAg ICAgJ2ZpbGVuYW1lJzogJ3F1ZXJ5X3Rvb2wuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgIH0p LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgIHRleHQ6IGdldHRleHQoJ0NhbmNlbCcpLAorICAgICAg ICAgICAgICAgICAga2V5OiAyNywKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBi dG4tc2Vjb25kYXJ5IGZhIGZhLXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisgICAgICAgICAg ICAgICAgICAnZGF0YS1idG4tbmFtZSc6ICdjYW5jZWwnLAorICAgICAgICAgICAgICAgIH0sIHsK KyAgICAgICAgICAgICAgICAgIHRleHQ6IGdldHRleHQoJ09LJyksCisgICAgICAgICAgICAgICAg ICBrZXk6IDEzLAorICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1wcmltYXJ5 IGZhIGZhLWNoZWNrIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisgICAgICAgICAgICAgICAgICAnZGF0 YS1idG4tbmFtZSc6ICdvaycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwK KyAgICAgICAgICAgICAgLy8gU2V0IG9wdGlvbnMgZm9yIGRpYWxvZworICAgICAgICAgICAgICBv cHRpb25zOiB7CisgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLAorICAgICAgICAgICAgICAg IC8vZGlzYWJsZSBib3RoIHBhZGRpbmcgYW5kIG92ZXJmbG93IGNvbnRyb2wuCisgICAgICAgICAg ICAgICAgcGFkZGluZzogITEsCisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICExLAorICAgICAg ICAgICAgICAgIG1vZGVsOiAwLAorICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSwKKyAg ICAgICAgICAgICAgICBtYXhpbWl6YWJsZTogZmFsc2UsCisgICAgICAgICAgICAgICAgcGlubmFi bGU6IGZhbHNlLAorICAgICAgICAgICAgICAgIGNsb3NhYmxlQnlEaW1tZXI6IGZhbHNlLAorICAg ICAgICAgICAgICAgIG1vZGFsOiBmYWxzZSwKKyAgICAgICAgICAgICAgICBhdXRvUmVzZXQ6IGZh bHNlLAorICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLAorICAgICAgICAgICAgICB9LAor ICAgICAgICAgICAgfTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHByZXBhcmU6IGZ1bmN0aW9u KCkgeworICAgICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAgICAgJGNvbnRhaW5l ci5odG1sKCcnKTsKKyAgICAgICAgICAgIC8vIERpc2FibGUgT2sgYnV0dG9uCisgICAgICAgICAg ICB0aGlzLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKKwor ICAgICAgICAgICAgLy8gU3RhdHVzIGJhcgorICAgICAgICAgICAgdGhpcy5zdGF0dXNCYXIgPSAk KAorICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cJ3BnLXByb3Atc3RhdHVzLWJhciBwZy1lbC14 cy0xMiBkLW5vbmVcJz4nICsKKyAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImVycm9yLWluLWZv b3RlciI+ICcgKworICAgICAgICAgICAgJyAgICA8ZGl2IGNsYXNzPSJkLWZsZXggcHgtMiBweS0x Ij4gJyArCisgICAgICAgICAgICAnICAgICAgPGRpdiBjbGFzcz0icHItMiI+ICcgKworICAgICAg ICAgICAgJyAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHRleHQt ZGFuZ2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiAnICsKKyAgICAgICAgICAgICcgICAgICA8 L2Rpdj4gJyArCisgICAgICAgICAgICAnICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtdGV4dCIgcm9s ZT0iYWxlcnQiPjwvZGl2PiAnICsKKyAgICAgICAgICAgICcgICAgPC9kaXY+ICcgKworICAgICAg ICAgICAgJyAgPC9kaXY+ICcgKworICAgICAgICAgICAgJzwvZGl2PicpLmFwcGVuZFRvKCRjb250 YWluZXIpOworCisgICAgICAgICAgICAvLyBUbyBzaG93IHByb2dyZXNzIG9uIGZpbHRlciBTYXZp bmcvVXBkYXRpbmcgb24gQUpBWAorICAgICAgICAgICAgdGhpcy5zaG93TmV3Q29ubmVjdGlvblBy b2dyZXNzID0gJCgKKyAgICAgICAgICAgICAgYDxkaXYgaWQ9InNob3dfZmlsdGVyX3Byb2dyZXNz IiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyBkLW5vbmUi PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBnLXNwLWNvbnRlbnQiPgorICAgICAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPjxkaXYgY2xhc3M9ImNvbC0xMiBwZy1zcC1pY29u IHNxbC1lZGl0b3ItYnVzeS1pY29uIj48L2Rpdj48L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAg PGRpdiBjbGFzcz0icm93Ij48ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtdGV4dCBzcWwtZWRpdG9y LWJ1c3ktdGV4dCI+YCArIGdldHRleHQoJ0xvYWRpbmcgZGF0YS4uLicpICsgYDwvZGl2PjwvZGl2 PgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+YAorICAgICAgICAg ICAgKS5hcHBlbmRUbygkY29udGFpbmVyKTsKKyAgICAgICAgICAgICQoCisgICAgICAgICAgICAg IHNlbGYuc2hvd05ld0Nvbm5lY3Rpb25Qcm9ncmVzc1swXQorICAgICAgICAgICAgKS5yZW1vdmVD bGFzcygnZC1ub25lJyk7CisKKyAgICAgICAgICAgIHNlbGYubmV3Q29ubkNvbGxlY3Rpb25Nb2Rl bCA9IG5ld0Nvbm5lY3Rpb25EaWFsb2dNb2RlbChyZXNwb25zZSwgaGFuZGxlci51cmxfcGFyYW1z LnNnaWQsIGhhbmRsZXIudXJsX3BhcmFtcy5zaWQpOworICAgICAgICAgICAgbGV0IGZpZWxkcyA9 IEJhY2tmb3JtLmdlbmVyYXRlVmlld1NjaGVtYShudWxsLCBzZWxmLm5ld0Nvbm5Db2xsZWN0aW9u TW9kZWwsICdjcmVhdGUnLCBudWxsLCBudWxsLCB0cnVlKTsKKworICAgICAgICAgICAgbGV0IHZp ZXcgPSB0aGlzLnZpZXcgPSBuZXcgQmFja2Zvcm0uRGlhbG9nKHsKKyAgICAgICAgICAgICAgZWw6 ICc8ZGl2PjwvZGl2PicsCisgICAgICAgICAgICAgIG1vZGVsOiBzZWxmLm5ld0Nvbm5Db2xsZWN0 aW9uTW9kZWwsCisgICAgICAgICAgICAgIHNjaGVtYTogZmllbGRzLAorICAgICAgICAgICAgfSk7 CisKKyAgICAgICAgICAgICQodGhpcy5lbGVtZW50cy5ib2R5LmNoaWxkTm9kZXNbMF0pLmFkZENs YXNzKAorICAgICAgICAgICAgICAnYWxlcnRpZnlfdG9vbHNfZGlhbG9nX3Byb3BlcnRpZXMgb2Jq X3Byb3BlcnRpZXMnCisgICAgICAgICAgICApOworCisgICAgICAgICAgICAkY29udGFpbmVyLmFw cGVuZCh2aWV3LnJlbmRlcigpLiRlbCk7CisKKyAgICAgICAgICAgIC8vIEVuYWJsZS9kaXNhYmxl IHNhdmUgYnV0dG9uIGFuZCBzaG93L2hpZGUgc3RhdHVzYmFyIGJhc2VkIG9uIHNlc3Npb24KKyAg ICAgICAgICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjpzdGFy dCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICB2aWV3Lmxpc3RlblRvKHZpZXcubW9kZWws ICdwZ2FkbWluLXNlc3Npb246aW52YWxpZCcsIGZ1bmN0aW9uKG1zZykgeworICAgICAgICAgICAg ICAgIHNlbGYuc3RhdHVzQmFyLnJlbW92ZUNsYXNzKCdkLW5vbmUnKTsKKyAgICAgICAgICAgICAg ICAkKHNlbGYuc3RhdHVzQmFyLmZpbmQoJy5hbGVydC10ZXh0JykpLmh0bWwobXNnKTsKKyAgICAg ICAgICAgICAgICAvLyBEaXNhYmxlIE9rYXkgYnV0dG9uCisgICAgICAgICAgICAgICAgc2VsZi5f X2ludGVybmFsLmJ1dHRvbnNbMl0uZWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAg ICAgIH0pOworCisgICAgICAgICAgICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwgJ3BnYWRt aW4tc2Vzc2lvbjp2YWxpZCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHNlbGYuc3Rh dHVzQmFyLmFkZENsYXNzKCdkLW5vbmUnKTsKKyAgICAgICAgICAgICAgICAkKHNlbGYuc3RhdHVz QmFyLmZpbmQoJy5hbGVydC10ZXh0JykpLmh0bWwoJycpOworICAgICAgICAgICAgICAgIC8vIEVu YWJsZSBPa2F5IGJ1dHRvbgorICAgICAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbC5idXR0b25z WzJdLmVsZW1lbnQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAg ICAgICB9KTsKKworICAgICAgICAgICAgdmlldy5saXN0ZW5Ubyh2aWV3Lm1vZGVsLCAncGdhZG1p bi1zZXNzaW9uOnN0b3AnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgdmlldy5zdG9wTGlz dGVuaW5nKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246aW52YWxpZCcpOworICAgICAgICAg ICAgICB2aWV3LnN0b3BMaXN0ZW5pbmcodmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjp2YWxp ZCcpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIC8vIFN0YXJ0cyBtb25pdG9yaW5n IGNoYW5nZXMgdG8gbW9kZWwKKyAgICAgICAgICAgIHZpZXcubW9kZWwuc3RhcnROZXdTZXNzaW9u KCk7CisKKyAgICAgICAgICAgIC8vIEhpZGUgUHJvZ3Jlc3MgLi4uCisgICAgICAgICAgICAkKAor ICAgICAgICAgICAgICBzZWxmLnNob3dOZXdDb25uZWN0aW9uUHJvZ3Jlc3NbMF0KKyAgICAgICAg ICAgICkuYWRkQ2xhc3MoJ2Qtbm9uZScpOworICAgICAgICAgIH0sCisgICAgICAgICAgY2FsbGJh Y2s6IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgICAg ICAgIGlmIChlLmJ1dHRvbi5lbGVtZW50Lm5hbWUgPT0gJ2RpYWxvZ19oZWxwJykgeworICAgICAg ICAgICAgICBlLmNhbmNlbCA9IHRydWU7CisgICAgICAgICAgICAgIHBnQWRtaW4uQnJvd3Nlci5z aG93SGVscChlLmJ1dHRvbi5lbGVtZW50Lm5hbWUsIGUuYnV0dG9uLmVsZW1lbnQuZ2V0QXR0cmli dXRlKCd1cmwnKSwKKyAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgICAgICAg cmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIGlmIChlLmJ1dHRvblsnZGF0YS1idG4tbmFtZSdd ID09PSAnb2snKSB7CisgICAgICAgICAgICAgIGUuY2FuY2VsID0gdHJ1ZTsgLy8gRG8gbm90IGNs b3NlIGRpYWxvZworICAgICAgICAgICAgICBsZXQgbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbCA9IHRo aXMubmV3Q29ubkNvbGxlY3Rpb25Nb2RlbC50b0pTT04oKTsKKworICAgICAgICAgICAgICBsZXQg c2VsZWN0ZWRfZGF0YWJhc2VfbmFtZSA9IG51bGw7CisgICAgICAgICAgICAgIHJlc3BvbnNlLmRh dGFiYXNlX2xpc3QuZm9yRWFjaChmdW5jdGlvbihkYXRhKXsKKyAgICAgICAgICAgICAgICBpZihu ZXdDb25uQ29sbGVjdGlvbk1vZGVsWydkYXRhYmFzZSddID09IGRhdGFbJ3ZhbHVlJ10pIHsKKyAg ICAgICAgICAgICAgICAgIHNlbGVjdGVkX2RhdGFiYXNlX25hbWUgPSBkYXRhWydsYWJlbCddOwor ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgfSk7CisgICAgICAgICAgICAgIGxldCB0aXRsZSA9ICcnOworICAgICAgICAgICAg ICBpZihuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydyb2xlJ10pIHsKKyAgICAgICAgICAgICAgICB0 aXRsZSA9IHNlbGVjdGVkX2RhdGFiYXNlX25hbWUgKyAnLycgKyBuZXdDb25uQ29sbGVjdGlvbk1v ZGVsWydyb2xlJ10gKyAnQCcgKyByZXNwb25zZS5zZXJ2ZXJfbmFtZTsKKyAgICAgICAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aXRsZSA9IHNlbGVjdGVkX2RhdGFiYXNlX25hbWUg KyAnLycgKyBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10gKyAnQCcgKyByZXNwb25zZS5z ZXJ2ZXJfbmFtZTsKKyAgICAgICAgICAgICAgICBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydyb2xl J10gPSBudWxsOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgbGV0IGlzX2NyZWF0 ZV9jb25uZWN0aW9uID0gdHJ1ZTsKKworICAgICAgICAgICAgICBoYW5kbGVyLmdyaWRWaWV3LmNv bm5lY3Rpb25fbGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGNvbm5lY3Rpb25fZGF0YSl7CisgICAgICAg ICAgICAgICAgaWYocGFyc2VJbnQoY29ubmVjdGlvbl9kYXRhWydzZXJ2ZXInXSkgPT0gbmV3Q29u bkNvbGxlY3Rpb25Nb2RlbFsnc2VydmVyJ10KKyAgICAgICAgICAgICAgICAmJiBwYXJzZUludChj b25uZWN0aW9uX2RhdGFbJ2RhdGFiYXNlJ10pID09IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ2Rh dGFiYXNlJ10KKyAgICAgICAgICAgICAgICAmJiBjb25uZWN0aW9uX2RhdGFbJ3VzZXInXSA9PSBu ZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10gJiYgY29ubmVjdGlvbl9kYXRhWydyb2xlJ10g PT0gbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsncm9sZSddKSB7CisgICAgICAgICAgICAgICAgICBp c19jcmVhdGVfY29ubmVjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgLy8gYnJlYWsg Zm9yIGxvb3AgYnkgcmV0dXJuIGZhbHNlLgorICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKHRpdGxlID09IGNvbm5l Y3Rpb25fZGF0YVsndGl0bGUnXSkgeworICAgICAgICAgICAgICAgICAgaXNfY3JlYXRlX2Nvbm5l Y3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICBpZighaXNfY3JlYXRl X2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBsZXQgZXJybXNnID0gJ0Nvbm5lY3Rpb24g d2l0aCB0aGlzIGNvbmZpZ3VyYXRpb24gYWxyZWFkeSBwcmVzZW50Lic7CisgICAgICAgICAgICAg ICAgQWxlcnRpZnkuaW5mbyhlcnJtc2cpOworICAgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAg ICAgICAgICAgbGV0IGNvbm5lY3Rpb25fZGV0YWlscyA9IHsKKyAgICAgICAgICAgICAgICAgICdz ZXJ2ZXJfZ3JvdXAnOiBoYW5kbGVyLmdyaWRWaWV3LmhhbmRsZXIudXJsX3BhcmFtcy5zZ2lkLAor ICAgICAgICAgICAgICAgICAgJ3NlcnZlcic6IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ3NlcnZl ciddLAorICAgICAgICAgICAgICAgICAgJ2RhdGFiYXNlJzogbmV3Q29ubkNvbGxlY3Rpb25Nb2Rl bFsnZGF0YWJhc2UnXSwKKyAgICAgICAgICAgICAgICAgICd0aXRsZSc6IHRpdGxlLAorICAgICAg ICAgICAgICAgICAgJ3VzZXInOiBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10sCisgICAg ICAgICAgICAgICAgICAncm9sZSc6IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ3JvbGUnXSwKKyAg ICAgICAgICAgICAgICAgICdwYXNzd29yZCc6IHJlc3BvbnNlLnBhc3N3b3JkLAorICAgICAgICAg ICAgICAgIH07CisgICAgICAgICAgICAgICAgaGFuZGxlci5ncmlkVmlldy5vbl9jaGFuZ2VfY29u bmVjdGlvbihjb25uZWN0aW9uX2RldGFpbHMsIHNlbGYpOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBzZWxmLmNsb3NlKCk7CisgICAgICAgICAg ICB9CisgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICAgIH0pOworICAgICAgc2V0VGltZW91 dChmdW5jdGlvbigpeworICAgICAgICBBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9nKCdDb25u ZWN0IHRvIHNlcnZlci4nKS5yZXNpemVUbyhwZ0FkbWluLkJyb3dzZXIuc3RkVy5tZCxwZ0FkbWlu LkJyb3dzZXIuc3RkSC5tZCk7CisgICAgICB9LCA1MDApOworICAgIH0pLmZhaWwoZnVuY3Rpb24o ZXJyb3IpIHsKKyAgICAgIEFsZXJ0aWZ5LmFsZXJ0KCkuc2V0dGluZyh7CisgICAgICAgICd0aXRs ZSc6IGdldHRleHQoJ0Nvbm5lY3Rpb24gbG9zdCcpLAorICAgICAgICAnbGFiZWwnOmdldHRleHQo J09rJyksCisgICAgICAgICdtZXNzYWdlJzogZ2V0dGV4dCgnQ29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGhhcyBiZWVuIGxvc3QuJyksCisgICAgICAgICdvbm9rJzogZnVuY3Rpb24oKXsKKyAgICAg ICAgICBhbGVydChlcnJvcik7CisgICAgICAgICAgLy9DbG9zZSB0aGUgd2luZG93IGFmdGVyIGNv bm5lY3Rpb24gaXMgbG9zdAorICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOworICAgICAgICB9LAor ICAgICAgfSkuc2hvdygpOworICAgIH0pOworCisgIH0sCisKK307CisKK21vZHVsZS5leHBvcnRz ID0gTmV3Q29ubmVjdGlvbkRpYWxvZzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nX21vZGVsLmpzIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9kaWFsb2dfbW9kZWwuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNiYTZlNgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nX21v ZGVsLmpzCkBAIC0wLDAgKzEsMzM5IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3Nv dXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgXyBmcm9tICd1bmRlcnNjb3JlJzsKK2ltcG9ydCAkIGZy b20gJ2pxdWVyeSc7CitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1w b3J0IEJhY2tmb3JtIGZyb20gJ3BnYWRtaW4uYmFja2Zvcm0nOworaW1wb3J0IHVybF9mb3IgZnJv bSAnc291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBhbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0 aWZ5anMnOworCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBuZXdDb25uZWN0aW9uRGlhbG9nTW9k ZWwocmVzcG9uc2UsIHNnaWQsIHNpZCkgeworCisgIGxldCBzZXJ2ZXJfbmFtZSA9ICcnOworICBs ZXQgZGF0YWJhc2VfbmFtZSA9ICcnOworCisgIGxldCBOZXdDb25uZWN0aW9uU2VsZWN0MkNvbnRy b2wgPSBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoeworICAgIGZldGNoRGF0YTogZnVu Y3Rpb24oKXsKKyAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgIHVybCA9IHNlbGYuZmllbGQu Z2V0KCd1cmwnKTsKKworICAgICAgbGV0IHVybCA9IHVybF9mb3IodXJsLCB7CisgICAgICAgICdz aWQnOiBzZWxmLm1vZGVsLmF0dHJpYnV0ZXMuc2VydmVyLAorICAgICAgICAnc2dpZCc6IHNnaWQs CisgICAgICB9KTsKKworICAgICAgJC5hamF4KHsKKyAgICAgICAgYXN5bmM6IGZhbHNlLAorICAg ICAgICB1cmw6IHVybCwKKyAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICdDYWNoZS1Db250 cm9sJyA6ICduby1jYWNoZScsCisgICAgICAgIH0sCisgICAgICB9KS5kb25lKGZ1bmN0aW9uIChy ZXMpIHsKKyAgICAgICAgdmFyIHRyYW5zZm9ybSA9IHNlbGYuZmllbGQuZ2V0KCd0cmFuc2Zvcm0n KTsKKyAgICAgICAgaWYocmVzLmRhdGEuc3RhdHVzKXsKKyAgICAgICAgICBsZXQgZGF0YSA9IHJl cy5kYXRhLnJlc3VsdC5kYXRhOworCisgICAgICAgICAgaWYgKHRyYW5zZm9ybSAmJiBfLmlzRnVu Y3Rpb24odHJhbnNmb3JtKSkgeworICAgICAgICAgICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMn LCB0cmFuc2Zvcm0uYmluZChzZWxmLCBkYXRhKSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywgZGF0YSk7CisgICAgICAgICAgfQorICAg ICAgICB9IGVsc2UgeworICAgICAgICAgIGlmICh0cmFuc2Zvcm0gJiYgXy5pc0Z1bmN0aW9uKHRy YW5zZm9ybSkpIHsKKyAgICAgICAgICAgIHNlbGYuZmllbGQuc2V0KCdvcHRpb25zJywgdHJhbnNm b3JtLmJpbmQoc2VsZiwgW10pKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2Vs Zi5maWVsZC5zZXQoJ29wdGlvbnMnLCBbXSk7CisgICAgICAgICAgfQorICAgICAgICAgIC8vYWxl cnRpZnkuZXJyb3IocmVzLmRhdGEubXNnKTsKKyAgICAgICAgfQorICAgICAgfSkuZmFpbChmdW5j dGlvbihlKXsKKyAgICAgICAgbGV0IG1zZyA9ICcnOworICAgICAgICBpZihlLnN0YXR1cyA9PSA0 MDQpIHsKKyAgICAgICAgICBtc2cgPSAnVW5hYmxlIHRvIGZpbmQgdXJsLic7CisgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgbXNnID0gZS5yZXNwb25zZUpTT04uZXJyb3Jtc2c7CisgICAgICAg IH0KKyAgICAgICAgYWxlcnRpZnkuZXJyb3IobXNnKTsKKyAgICAgIH0pOworICAgIH0sCisgICAg cmVuZGVyOiBmdW5jdGlvbigpIHsKKyAgICAgIHRoaXMuZmV0Y2hEYXRhKCk7CisgICAgICByZXR1 cm4gQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBh cmd1bWVudHMpOworICAgIH0sCisgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgQmFj a2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHRoaXMsIGFyZ3Vt ZW50cyk7CisgICAgfSwKKyAgfSk7CisKKyAgbGV0IG5ld0Nvbm5lY3Rpb25Nb2RlbCA9IHBnQWRt aW4uQnJvd3Nlci5EYXRhTW9kZWwuZXh0ZW5kKHsKKyAgICBpZEF0dHJpYnV0ZTogJ25hbWUnLAor ICAgIGRlZmF1bHRzOiB7CisgICAgICBzZXJ2ZXI6IHBhcnNlSW50KHNpZCksCisgICAgICBkYXRh YmFzZTogbnVsbCwKKyAgICAgIHVzZXI6IG51bGwsCisgICAgICBwYXNzd29yZDogbnVsbCwKKyAg ICAgIHNlcnZlcl9uYW1lOiBzZXJ2ZXJfbmFtZSwKKyAgICAgIGRhdGFiYXNlX25hbWU6IGRhdGFi YXNlX25hbWUsCisgICAgfSwKKyAgICBzY2hlbWE6IFt7CisgICAgICBpZDogJ3NlcnZlcicsCisg ICAgICBuYW1lOiAnc2VydmVyJywKKyAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXInKSwKKyAg ICAgIHR5cGU6ICd0ZXh0JywKKyAgICAgIGVkaXRhYmxlOiB0cnVlLAorICAgICAgZGlzYWJsZWQ6 IGZhbHNlLAorICAgICAgc2VsZWN0MjogeworICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAg ICAgIH0sCisgICAgICBjb250cm9sOiBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoewor ICAgICAgICBjb25uZWN0OiBmdW5jdGlvbihzZWxmKSB7CisgICAgICAgICAgLyppZiAoYWxlcnRp ZnkuY29ubmVjdFNlcnZlcikgeworICAgICAgICAgICAgZGVsZXRlIGFsZXJ0aWZ5LmNvbm5lY3RT ZXJ2ZXI7CisgICAgICAgICAgfSovCisgICAgICAgICAgaWYoIWFsZXJ0aWZ5LmNvbm5lY3RTZXJ2 ZXIpeworICAgICAgICAgICAgYWxlcnRpZnkuZGlhbG9nKCdjb25uZWN0U2VydmVyJywgZnVuY3Rp b24gZmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBt YWluOiBmdW5jdGlvbigKKyAgICAgICAgICAgICAgICAgIHRpdGxlLCBtZXNzYWdlLCBzaWQsIHN1 Ym1pdF9wYXNzd29yZD10cnVlCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAg ICB0aGlzLnNldCgndGl0bGUnLCB0aXRsZSk7CisgICAgICAgICAgICAgICAgICB0aGlzLm1lc3Nh Z2UgPSBtZXNzYWdlOworICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2ZXJfaWQgPSBzaWQ7Cisg ICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdF9wYXNzd29yZCA9IHN1Ym1pdF9wYXNzd29yZDsK KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHNldHVwOmZ1bmN0aW9uKCkgewor ICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgYnV0dG9uczpb eworICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGdldHRleHQoJ0NhbmNlbCcpLCBjbGFzc05h bWU6ICdidG4gYnRuLXNlY29uZGFyeSBmYSBmYS10aW1lcyBwZy1hbGVydGlmeS1idXR0b24nLAor ICAgICAgICAgICAgICAgICAgICAgIGtleTogMjcsCisgICAgICAgICAgICAgICAgICAgIH0sewor ICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGdldHRleHQoJ09LJyksIGtleTogMTMsIGNsYXNz TmFtZTogJ2J0biBidG4tcHJpbWFyeSBmYSBmYS1jaGVjayBwZy1hbGVydGlmeS1idXR0b24nLAor ICAgICAgICAgICAgICAgICAgICB9XSwKKyAgICAgICAgICAgICAgICAgICAgZm9jdXM6IHtlbGVt ZW50OiAnI3Bhc3N3b3JkJywgc2VsZWN0OiB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgb3B0 aW9uczogeworICAgICAgICAgICAgICAgICAgICAgIG1vZGFsOiAwLCByZXNpemFibGU6IGZhbHNl LCBtYXhpbWl6YWJsZTogZmFsc2UsIHBpbm5hYmxlOiBmYWxzZSwKKyAgICAgICAgICAgICAgICAg ICAgfSwKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICBidWlsZDpmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICAgIHByZXBhcmU6ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICB0aGlzLnNldENv bnRlbnQodGhpcy5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg IGNhbGxiYWNrOiBmdW5jdGlvbihjbG9zZUV2ZW50KSB7CisKKyAgICAgICAgICAgICAgICAgIGlm IChjbG9zZUV2ZW50LmJ1dHRvbi50ZXh0ID09IGdldHRleHQoJ09LJykpIHsKKyAgICAgICAgICAg ICAgICAgICAgaWYodGhpcy5zdWJtaXRfcGFzc3dvcmQpIHsKKyAgICAgICAgICAgICAgICAgICAg ICB2YXIgX3VybCA9IHVybF9mb3IoJ3NjaGVtYV9kaWZmLmNvbm5lY3Rfc2VydmVyJywgeydzaWQn OiB0aGlzLnNlcnZlcl9pZH0pOworCisgICAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdQT1NUJywKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRpbWVvdXQ6IDMwMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBfdXJsLAor ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogJCgnI2ZybVBhc3N3b3JkJykuc2VyaWFsaXpl KCksCisgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5k b25lKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vZGVsLmF0 dHJpYnV0ZXMuZGF0YWJhc2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Lm1vZGVsLmF0dHJpYnV0ZXMudXNlciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYubW9kZWwuYXR0cmlidXRlcy5yb2xlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNl bGYsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZl cl9saXN0LmZvckVhY2goZnVuY3Rpb24ob2JqKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZihvYmouaWQ9PXNlbGYubW9kZWwuY2hhbmdlZC5zZXJ2ZXIpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9uYW1lID0gb2JqLm5hbWU7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuZmFpbChm dW5jdGlvbih4aHIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVj dFNlcnZlcignQ29ubmVjdCB0byBzZXJ2ZXInLCB4aHIucmVzcG9uc2VKU09OLnJlc3VsdCwgc2Vs Zi5nZXRWYWx1ZUZyb21ET00oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5w YXNzd29yZCA9ICQoJyNwYXNzd29yZCcpLnZhbCgpOworICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZWxmLm1vZGVs LmF0dHJpYnV0ZXMuZGF0YWJhc2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBzZWxmLm1v ZGVsLmF0dHJpYnV0ZXMudXNlciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHNlbGYubW9k ZWwuYXR0cmlidXRlcy5yb2xlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgQmFja2Zvcm0u U2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7 CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBjbG9zZUV2ZW50LmNsb3Nl ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB9OworICAgICAgICAg ICAgfSk7CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICByZW5kZXI6IGZ1bmN0aW9u KCkgeworICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgICAgICBzZWxmLmNvbm5lY3Qo c2VsZik7CisgICAgICAgICAgcmV0dXJuIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlw ZS5yZW5kZXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTsKKyAgICAgICAgfSwKKyAgICAgICAgb25D aGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHRoaXMubW9kZWwuYXR0cmlidXRlcy5kYXRh YmFzZSA9IG51bGw7CisgICAgICAgICAgdGhpcy5tb2RlbC5hdHRyaWJ1dGVzLnVzZXIgPSBudWxs OworICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgICAgICBzZWxmLmNvbm5lY3Qoc2Vs Zik7CisKKyAgICAgICAgICBsZXQgdXJsID0gdXJsX2Zvcignc3FsZWRpdG9yLmNvbm5lY3Rfc2Vy dmVyJywgeworICAgICAgICAgICAgJ3NpZCc6IHNlbGYuZ2V0VmFsdWVGcm9tRE9NKCksCisgICAg ICAgICAgfSk7CisgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgIGFzeW5jOiBmYWxzZSwK KyAgICAgICAgICAgIHVybDogdXJsLAorICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAg ICAgICAnQ2FjaGUtQ29udHJvbCcgOiAnbm8tY2FjaGUnLAorICAgICAgICAgICAgfSwKKyAgICAg ICAgICB9KS5kb25lKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIEJhY2tmb3JtLlNlbGVjdDJD b250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseShzZWxmLCBhcmd1bWVudHMpOworICAgICAg ICAgICAgcmVzcG9uc2Uuc2VydmVyX2xpc3QuZm9yRWFjaChmdW5jdGlvbihvYmopeworICAgICAg ICAgICAgICBpZihvYmouaWQ9PXNlbGYubW9kZWwuY2hhbmdlZC5zZXJ2ZXIpIHsKKyAgICAgICAg ICAgICAgICByZXNwb25zZS5zZXJ2ZXJfbmFtZSA9IG9iai5uYW1lOworICAgICAgICAgICAgICB9 CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9KS5mYWlsKGZ1bmN0aW9uKHhocil7CisgICAg ICAgICAgICBhbGVydGlmeS5jb25uZWN0U2VydmVyKCdDb25uZWN0IHRvIHNlcnZlcicsIHhoci5y ZXNwb25zZUpTT04ucmVzdWx0LCBzZWxmLmdldFZhbHVlRnJvbURPTSgpKTsKKyAgICAgICAgICB9 KTsKKworICAgICAgICB9LAorICAgICAgfSksCisgICAgICBvcHRpb25zOiBmdW5jdGlvbigpIHsK KyAgICAgICAgcmV0dXJuIF8ubWFwKHJlc3BvbnNlLnNlcnZlcl9saXN0LCAob2JqKSA9PiB7Cisg ICAgICAgICAgaWYgKG9iai5pZCA9PSBwYXJzZUludChzaWQpKQorICAgICAgICAgICAgcmVzcG9u c2Uuc2VydmVyX25hbWUgPSBvYmoubmFtZTsKKworICAgICAgICAgIHJldHVybiB7CisgICAgICAg ICAgICB2YWx1ZTogb2JqLmlkLAorICAgICAgICAgICAgbGFiZWw6IG9iai5uYW1lLAorICAgICAg ICAgIH07CisgICAgICAgIH0pOworICAgICAgfSwKKyAgICB9LAorICAgIHsKKyAgICAgIGlkOiAn ZGF0YWJhc2UnLAorICAgICAgbmFtZTogJ2RhdGFiYXNlJywKKyAgICAgIGxhYmVsOiBnZXR0ZXh0 KCdEYXRhYmFzZScpLAorICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgZWRpdGFibGU6IHRydWUs CisgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICBsZXQgc2VsZl9sb2NhbCA9 IHRoaXM7CisgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChtLmdldCgnc2VydmVyJykpICYmICFf LmlzTnVsbChtLmdldCgnc2VydmVyJykpCisgICAgICAgICAgICAmJiBtLmdldCgnc2VydmVyJykg IT09ICcnKSB7CisgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg IGlmKHNlbGZfbG9jYWwub3B0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgbS5zZXQoJ2Rh dGFiYXNlJywgc2VsZl9sb2NhbC5vcHRpb25zWzBdLnZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICB9LCAxMCk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9LAorICAgICAgZGVwczogWydzZXJ2ZXInXSwKKyAg ICAgIHVybDogJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UnLAorICAgICAg c2VsZWN0MjogeworICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgd2lkdGg6ICcx MDAlJywKKyAgICAgICAgZmlyc3RfZW1wdHk6IHRydWUsCisgICAgICAgIHNlbGVjdF9maXJzdDog ZmFsc2UsCisgICAgICB9LAorICAgICAgZXh0cmFDbGFzc2VzOlsnbmV3LWNvbm5lY3Rpb24tZGlh bG9nLXN0eWxlJ10sCisgICAgICBjb250cm9sOiBOZXdDb25uZWN0aW9uU2VsZWN0MkNvbnRyb2ws CisgICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgcmVzcG9uc2UuZGF0 YWJhc2VfbGlzdCA9IGRhdGE7CisgICAgICAgIHJldHVybiBkYXRhOworICAgICAgfSwKKyAgICB9 LAorICAgIHsKKyAgICAgIGlkOiAndXNlcicsCisgICAgICBuYW1lOiAndXNlcicsCisgICAgICBs YWJlbDogZ2V0dGV4dCgnVXNlcicpLAorICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgZWRpdGFi bGU6IHRydWUsCisgICAgICBkZXBzOiBbJ3NlcnZlciddLAorICAgICAgc2VsZWN0MjogeworICAg ICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAgIH0s CisgICAgICBjb250cm9sOiBOZXdDb25uZWN0aW9uU2VsZWN0MkNvbnRyb2wsCisgICAgICB1cmw6 ICdzcWxlZGl0b3IuZ2V0X25ld19jb25uZWN0aW9uX3VzZXInLAorICAgICAgZGlzYWJsZWQ6IGZ1 bmN0aW9uKG0pIHsKKyAgICAgICAgbGV0IHNlbGZfbG9jYWwgPSB0aGlzOworICAgICAgICBpZiAo IV8uaXNVbmRlZmluZWQobS5nZXQoJ3NlcnZlcicpKSAmJiAhXy5pc051bGwobS5nZXQoJ3NlcnZl cicpKQorICAgICAgICAgICAgJiYgbS5nZXQoJ3NlcnZlcicpICE9PSAnJykgeworICAgICAgICAg IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZihzZWxmX2xvY2FsLm9wdGlv bnMubGVuZ3RoKSB7CisgICAgICAgICAgICAgIG0uc2V0KCd1c2VyJywgc2VsZl9sb2NhbC5vcHRp b25zWzBdLnZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9LCAxMCk7CisgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAg fSwKKyAgICB9LHsKKyAgICAgIGlkOiAncm9sZScsCisgICAgICBuYW1lOiAncm9sZScsCisgICAg ICBsYWJlbDogZ2V0dGV4dCgnUm9sZScpLAorICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgZWRp dGFibGU6IHRydWUsCisgICAgICBkZXBzOiBbJ3NlcnZlciddLAorICAgICAgc2VsZWN0Mjogewor ICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAg ICAgZmlyc3RfZW1wdHk6IHRydWUsCisgICAgICB9LAorICAgICAgY29udHJvbDogTmV3Q29ubmVj dGlvblNlbGVjdDJDb250cm9sLAorICAgICAgdXJsOiAnc3FsZWRpdG9yLmdldF9uZXdfY29ubmVj dGlvbl9yb2xlJywKKyAgICAgIGRpc2FibGVkOiBmYWxzZSwKKyAgICB9LAorICAgIC8qeworICAg ICAgaWQ6ICdwYXNzd29yZCcsCisgICAgICBuYW1lOiAncGFzc3dvcmQnLAorICAgICAgbGFiZWw6 IGdldHRleHQoJ1Bhc3N3b3JkJ3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weSksCisgICAgICB0 eXBlOiAncGFzc3dvcmQnLAorICAgICAgZWRpdGFibGU6IHRydWUsCisgICAgICBkaXNhYmxlZDog dHJ1ZSwKKyAgICAgIGRlcHM6IFsndXNlciddLAorICAgICAgY29udHJvbDogQmFja2Zvcm0uSW5w dXRDb250cm9sLmV4dGVuZCh7CisgICAgICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7CisgICAgICAg ICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAgIHNlbGYubW9kZWwuYXR0cmlidXRlcy5wYXNz d29yZCA9IG51bGw7CisgICAgICAgICAgQmFja2Zvcm0uSW5wdXRDb250cm9sLnByb3RvdHlwZS5y ZW5kZXIuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTsKKyAgICAgICAgICByZXR1cm4gc2VsZjsKKyAg ICAgICAgfSwKKyAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgIGxldCBz ZWxmID0gdGhpczsKKyAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9u Q2hhbmdlLmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7CisgICAgICAgIH0sCisgICAgICB9KSwKKyAg ICB9LCovCisgICAgXSwKKyAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICBsZXQgbXNn ID0gbnVsbDsKKyAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworICAgICAgaWYoXy5pc1Vu ZGVmaW5lZCh0aGlzLmdldCgnZGF0YWJhc2UnKSkgfHwgXy5pc051bGwodGhpcy5nZXQoJ2RhdGFi YXNlJykpKXsKKyAgICAgICAgbXNnID0gZ2V0dGV4dCgnUGxlYXNlIHNlbGVjdCBkYXRhYmFzZScp OworICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdkYXRhYmFzZScsIG1zZyk7CisgICAgICAg IHJldHVybiBtc2c7CisgICAgICB9IGVsc2UgaWYoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnZGF0 YWJhc2UnKSkgfHwgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgndXNlcicpKXx8IF8uaXNOdWxsKHRo aXMuZ2V0KCd1c2VyJykpKSB7CisgICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBzZWxlY3Qg dXNlcicpOworICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCd1c2VyJywgbXNnKTsKKyAgICAg ICAgcmV0dXJuIG1zZzsKKyAgICAgIH0KKyAgICAgIC8qZWxzZSBpZigodGhpcy5hdHRyaWJ1dGVz LnBhc3N3b3JkID09ICcnIHx8IF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Bhc3N3b3JkJykpIHx8 IF8uaXNOdWxsKHRoaXMuZ2V0KCdwYXNzd29yZCcpKSkpIHsKKyAgICAgICAgbXNnID0gZ2V0dGV4 dCgnUGxlYXNlIGVudGVyIHBhc3N3b3JkJyk7CisgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQo J3Bhc3N3b3JkJywgbXNnKTsKKyAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgIH0qLworICAgICAg cmV0dXJuIG51bGw7CisgICAgfSwKKyAgfSk7CisKKyAgbGV0IG1vZGVsID0gbmV3IG5ld0Nvbm5l Y3Rpb25Nb2RlbCgpOworICByZXR1cm4gbW9kZWw7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvc2Nzcy9fYWxlcnQuc2NzcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL19hbGVy dC5zY3NzCmluZGV4IGRhYzU1MmIuLjgzNmYwYWYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9zY3NzL19hbGVydC5zY3NzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL19hbGVy dC5zY3NzCkBAIC05Miw2ICs5Miw3IEBACiAgIHJpZ2h0OiAwOwogICBsZWZ0OiAwOwogICBib3R0 b206IDA7CisgIHotaW5kZXg6IDE7CiB9CiAKIC5wZy1wcm9wLXN0YXR1cy1iYXIgewpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQppbmRleCBmNWZjNzhjLi4wNzQ1OWJlIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQorKysgYi93ZWIv cGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQpAQCAtMTgsMjEgKzE4LDIyIEBAIGZy b20gZmxhc2sgaW1wb3J0IFJlc3BvbnNlLCB1cmxfZm9yLCBzZXNzaW9uLCByZXF1ZXN0LCBtYWtl X3Jlc3BvbnNlCiBmcm9tIHdlcmt6ZXVnLnVzZXJhZ2VudHMgaW1wb3J0IFVzZXJBZ2VudAogZnJv bSBmbGFzayBpbXBvcnQgY3VycmVudF9hcHAgYXMgYXBwLCByZW5kZXJfdGVtcGxhdGUKIGZyb20g Zmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dAotZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQg bG9naW5fcmVxdWlyZWQKK2Zyb20gZmxhc2tfc2VjdXJpdHkgaW1wb3J0IGxvZ2luX3JlcXVpcmVk LCBjdXJyZW50X3VzZXIKIGZyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IuY29tbWFuZCBpbXBv cnQgT2JqZWN0UmVnaXN0cnksIFNRTEZpbHRlcgorZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ciBpbXBvcnQgY2hlY2tfdHJhbnNhY3Rpb25fc3RhdHVzCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1w b3J0IFBnQWRtaW5Nb2R1bGUKIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pz b25fcmVzcG9uc2UsIGJhZF9yZXF1ZXN0LCBcCi0gICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yCisg ICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCB1bmF1dGhvcml6ZWQKIAogZnJvbSBjb25maWcgaW1w b3J0IFBHX0RFRkFVTFRfRFJJVkVSCi1mcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFNlcnZlcgor ZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTZXJ2ZXIsIFVzZXIKIGZyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24g aW1wb3J0IENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdAogZnJvbSBwZ2Fk bWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJlbmNlcwogZnJvbSBwZ2FkbWluLnNl dHRpbmdzIGltcG9ydCBnZXRfc2V0dGluZwogZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1w b3J0IHVuZGVyc2NvcmVfdW5lc2NhcGUKIGZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1w b3J0IE9iamVjdEdvbmUKLWZyb20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IE1JTUVU WVBFX0FQUF9KUworZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50cyBpbXBvcnQgTUlNRVRZUEVf QVBQX0pTLCBVTkFVVEhfUkVRCiAKIE1PRFVMRV9OQU1FID0gJ2RhdGFncmlkJwogCkBAIC03Myw3 ICs3NCw4IEBAIGNsYXNzIERhdGFHcmlkTW9kdWxlKFBnQWRtaW5Nb2R1bGUpOgogICAgICAgICAg ICAgJ2RhdGFncmlkLmZpbHRlcl92YWxpZGF0ZScsCiAgICAgICAgICAgICAnZGF0YWdyaWQuZmls dGVyJywKICAgICAgICAgICAgICdkYXRhZ3JpZC5wYW5lbCcsCi0gICAgICAgICAgICAnZGF0YWdy aWQuY2xvc2UnCisgICAgICAgICAgICAnZGF0YWdyaWQuY2xvc2UnLAorICAgICAgICAgICAgJ2Rh dGFncmlkLnVwZGF0ZV9xdWVyeV90b29sX2Nvbm5lY3Rpb24nCiAgICAgICAgIF0KIAogICAgIGRl ZiBvbl9sb2dvdXQoc2VsZiwgdXNlcik6CkBAIC0zMjAsMTAgKzMyMiwyMyBAQCBkZWYgaW5pdGlh bGl6ZV9xdWVyeV90b29sKHRyYW5zX2lkLCBzZ2lkLCBzaWQsIGRpZD1Ob25lKToKICAgICAgICAg ICAgIHJlcV9hcmdzWydyZWNyZWF0ZSddID09ICcxJyk6CiAgICAgICAgIGNvbm5lY3QgPSBGYWxz ZQogCisgICAgaXNfZXJyb3IsIGVycm1zZywgY29ubl9pZCwgdmVyc2lvbiA9IF9pbml0X3F1ZXJ5 X3Rvb2wodHJhbnNfaWQsIGNvbm5lY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2dpZCwgc2lkLCBkaWQpCisgICAgaWYgaXNfZXJy b3I6CisgICAgICAgIHJldHVybiBlcnJtc2cKKworICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgIGRhdGE9eworICAgICAgICAgICAgJ2Nvbm5JZCc6IHN0cihjb25uX2lkKSwK KyAgICAgICAgICAgICdzZXJ2ZXJWZXJzaW9uJzogdmVyc2lvbiwKKyAgICAgICAgfQorICAgICkK KworCitkZWYgX2luaXRfcXVlcnlfdG9vbCh0cmFuc19pZCwgY29ubmVjdCwgc2dpZCwgc2lkLCBk aWQsICoqa3dhcmdzKToKICAgICAjIENyZWF0ZSBhc3luY2hyb25vdXMgY29ubmVjdGlvbiB1c2lu ZyByYW5kb20gY29ubmVjdGlvbiBpZC4KICAgICBjb25uX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50 KDEsIDk5OTk5OTkpKQogCi0gICAgIyBVc2UgTWFpbnRlbmFuY2UgZGF0YWJhc2UgT0lECiAgICAg bWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdl cihzaWQpCiAKICAgICBpZiBkaWQgaXMgTm9uZToKQEAgLTMzNCwyNCArMzQ5LDUzIEBAIGRlZiBp bml0aWFsaXplX3F1ZXJ5X3Rvb2wodHJhbnNfaWQsIHNnaWQsIHNpZCwgZGlkPU5vbmUpOgogICAg ICAgICApCiAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICBhcHAubG9nZ2VyLmVy cm9yKGUpCi0gICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorICAgICAgICByZXR1cm4gVHJ1ZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSksICcnLCAnJwogCiAgICAgdHJ5OgogICAgICAgICBjb25uID0gbWFuYWdlci5jb25u ZWN0aW9uKGRpZD1kaWQsIGNvbm5faWQ9Y29ubl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhdXRvX3JlY29ubmVjdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2VfYmluYXJ5X3BsYWNlaG9sZGVyPVRydWUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJyYXlfdG9fc3RyaW5nPVRydWUpCisgICAgICAgIGlzX2Fza19w YXNzd29yZCA9IEZhbHNlCiAgICAgICAgIGlmIGNvbm5lY3Q6Ci0gICAgICAgICAgICBzdGF0dXMs IG1zZyA9IGNvbm4uY29ubmVjdCgpCisgICAgICAgICAgICB1c2VyID0gTm9uZQorICAgICAgICAg ICAgcm9sZSA9IE5vbmUKKyAgICAgICAgICAgIHBhc3N3b3JkID0gTm9uZQorCisgICAgICAgICAg ICBpZiAndXNlcicgaW4ga3dhcmdzIGFuZCAncm9sZScgaW4ga3dhcmdzOgorICAgICAgICAgICAg ICAgIHVzZXIgPSBrd2FyZ3NbJ3VzZXInXQorICAgICAgICAgICAgICAgIHJvbGUgPSBrd2FyZ3Nb J3JvbGUnXSBpZiBrd2FyZ3NbJ3JvbGUnXSBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICBwYXNz d29yZCA9IGt3YXJnc1sncGFzc3dvcmQnXSBpZiBrd2FyZ3NbJ3Bhc3N3b3JkJ10gZWxzZSBOb25l CisgICAgICAgICAgICAgICAgaXNfYXNrX3Bhc3N3b3JkID0gVHJ1ZQorICAgICAgICAgICAgaWYg dXNlcjoKKyAgICAgICAgICAgICAgICBzdGF0dXMsIG1zZyA9IGNvbm4uY29ubmVjdCh1c2VyPXVz ZXIsIHJvbGU9cm9sZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXNzd29yZD1wYXNzd29yZCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg c3RhdHVzLCBtc2cgPSBjb25uLmNvbm5lY3QoKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK ICAgICAgICAgICAgICAgICBhcHAubG9nZ2VyLmVycm9yKG1zZykKLSAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihtc2cpKQorICAgICAgICAg ICAgICAgIGlmIGlzX2Fza19wYXNzd29yZDoKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyID0g U2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFRydWUsIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MjgsCisgICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHQ9cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdzZXJ2ZXJzL3Bhc3N3b3JkLmh0bWwnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl9sYWJlbD1zZXJ2ZXIubmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2VybmFtZT11c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy cm1zZz1tc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0LAorICAgICAg ICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApLCAnJywgJycKKyAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgaW50ZXJu YWxfc2VydmVyX2Vycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9c3RyKG1z ZykpLCAnJywgJycKICAgICBleGNlcHQgKENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0 aW9uTG9zdCkgYXMgZToKICAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQogICAgICAgICByYWlz ZQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihl KQotICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KyAgICAgICAgcmV0dXJuIFRydWUsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo ZSkpLCAnJywgJycKIAogICAgIGlmICdncmlkRGF0YScgbm90IGluIHNlc3Npb246CiAgICAgICAg IHNxbF9ncmlkX2RhdGEgPSBkaWN0KCkKQEAgLTM3MywxMCArNDE3LDgwIEBAIGRlZiBpbml0aWFs aXplX3F1ZXJ5X3Rvb2wodHJhbnNfaWQsIHNnaWQsIHNpZCwgZGlkPU5vbmUpOgogICAgICMgU3Rv cmUgdGhlIGdyaWQgZGljdGlvbmFyeSBpbnRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgc2Vz c2lvblsnZ3JpZERhdGEnXSA9IHNxbF9ncmlkX2RhdGEKIAorICAgIHJldHVybiBGYWxzZSwgJycs IGNvbm5faWQsIG1hbmFnZXIudmVyc2lvbgorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9p bml0aWFsaXplL3F1ZXJ5X3Rvb2wvdXBkYXRlX2Nvbm5lY3Rpb24vPGludDp0cmFuc19pZD4vJwor ICAgICc8aW50OnNnaWQ+LzxpbnQ6c2lkPi88aW50OmRpZD4nLAorICAgIG1ldGhvZHM9WyJQT1NU Il0sIGVuZHBvaW50PSd1cGRhdGVfcXVlcnlfdG9vbF9jb25uZWN0aW9uJworKQorZGVmIHVwZGF0 ZV9xdWVyeV90b29sX2Nvbm5lY3Rpb24odHJhbnNfaWQsIHNnaWQsIHNpZCwgZGlkKToKKyAgICAj IFJlbW92ZSB0cmFuc2FjdGlvbiBJZC4KKyAgICB3aXRoIHF1ZXJ5X3Rvb2xfY2xvc2Vfc2Vzc2lv bl9sb2NrOgorICAgICAgICBkYXRhID0gZGljdCgpCisgICAgICAgIGlmIHJlcXVlc3QuZGF0YToK KyAgICAgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0 Zi04JykKKworICAgICAgICBpZiAnZ3JpZERhdGEnIG5vdCBpbiBzZXNzaW9uOgorICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVzJzogVHJ1ZX0pCisKKyAg ICAgICAgZ3JpZF9kYXRhID0gc2Vzc2lvblsnZ3JpZERhdGEnXQorCisgICAgICAgICMgUmV0dXJu IGZyb20gdGhlIGZ1bmN0aW9uIGlmIHRyYW5zYWN0aW9uIGlkIG5vdCBmb3VuZAorICAgICAgICBp ZiBzdHIodHJhbnNfaWQpIG5vdCBpbiBncmlkX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKGRhdGE9eydzdGF0dXMnOiBUcnVlfSkKKworICAgICAgICBjb25uZWN0 ID0gVHJ1ZQorCisgICAgICAgIHJlcV9hcmdzID0gcmVxdWVzdC5hcmdzCisgICAgICAgIGlmICgn cmVjcmVhdGUnIGluIHJlcV9hcmdzIGFuZAorICAgICAgICAgICAgICAgIHJlcV9hcmdzWydyZWNy ZWF0ZSddID09ICcxJyk6CisgICAgICAgICAgICBjb25uZWN0ID0gRmFsc2UKKworICAgICAgICBu ZXdfdHJhbnNfaWQgPSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisgICAgICAgIGt3 YXJncyA9IHsKKyAgICAgICAgICAgICd1c2VyJzogZGF0YVsndXNlciddLAorICAgICAgICAgICAg J3JvbGUnOiBkYXRhWydyb2xlJ10sCisgICAgICAgICAgICAncGFzc3dvcmQnOiBkYXRhWydwYXNz d29yZCddIGlmICdwYXNzd29yZCcgaW4gZGF0YSBlbHNlIE5vbmUKKyAgICAgICAgfQorCisgICAg ICAgIGlzX2Vycm9yLCBlcnJtc2csIGNvbm5faWQsIHZlcnNpb24gPSBfaW5pdF9xdWVyeV90b29s KAorICAgICAgICAgICAgbmV3X3RyYW5zX2lkLCBjb25uZWN0LCBzZ2lkLCBzaWQsIGRpZCwgKipr d2FyZ3MpCisKKyAgICAgICAgaWYgaXNfZXJyb3I6CisgICAgICAgICAgICByZXR1cm4gZXJybXNn CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBDaGVj ayB0aGUgdHJhbnNhY3Rpb24gYW5kIGNvbm5lY3Rpb24gc3RhdHVzCisgICAgICAgICAgICAgICAg c3RhdHVzLCBlcnJvcl9tc2csIGNvbm4sIHRyYW5zX29iaiwgc2Vzc2lvbl9vYmogPSBcCisgICAg ICAgICAgICAgICAgICAgIGNoZWNrX3RyYW5zYWN0aW9uX3N0YXR1cyh0cmFuc19pZCkKKworICAg ICAgICAgICAgICAgIHN0YXR1cywgZXJyb3JfbXNnLCBuZXdfY29ubiwgbmV3X3RyYW5zX29iaiwg bmV3X3Nlc3Npb25fb2JqID0gXAorICAgICAgICAgICAgICAgICAgICBjaGVja190cmFuc2FjdGlv bl9zdGF0dXMobmV3X3RyYW5zX2lkKQorCisgICAgICAgICAgICAgICAgbmV3X3Nlc3Npb25fb2Jq WydwcmltYXJ5X2tleXMnXSA9IHNlc3Npb25fb2JqWworICAgICAgICAgICAgICAgICAgICAncHJp bWFyeV9rZXlzJ10gaWYgJ3ByaW1hcnlfa2V5cycgaW4gc2Vzc2lvbl9vYmogZWxzZSBOb25lCisg ICAgICAgICAgICAgICAgbmV3X3Nlc3Npb25fb2JqWydjb2x1bW5zX2luZm8nXSA9IHNlc3Npb25f b2JqWworICAgICAgICAgICAgICAgICAgICAnY29sdW1uc19pbmZvJ10gaWYgJ2NvbHVtbnNfaW5m bycgaW4gc2Vzc2lvbl9vYmogZWxzZSBOb25lCisgICAgICAgICAgICAgICAgbmV3X3Nlc3Npb25f b2JqWydjbGllbnRfcHJpbWFyeV9rZXknXSA9IHNlc3Npb25fb2JqWworICAgICAgICAgICAgICAg ICAgICAnY2xpZW50X3ByaW1hcnlfa2V5J10gaWYgJ2NsaWVudF9wcmltYXJ5X2tleSdcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBzZXNzaW9uX29iaiBl bHNlIE5vbmUKKworICAgICAgICAgICAgICAgIGNsb3NlX3F1ZXJ5X3Rvb2xfc2Vzc2lvbih0cmFu c19pZCkKKyAgICAgICAgICAgICAgICAjIFJlbW92ZSB0aGUgaW5mb3JtYXRpb24gb2YgdW5pcXVl IHRyYW5zYWN0aW9uIGlkIGZyb20gdGhlCisgICAgICAgICAgICAgICAgIyBzZXNzaW9uIHZhcmlh YmxlLgorICAgICAgICAgICAgICAgIGdyaWRfZGF0YS5wb3Aoc3RyKHRyYW5zX2lkKSwgTm9uZSkK KyAgICAgICAgICAgICAgICBzZXNzaW9uWydncmlkRGF0YSddID0gZ3JpZF9kYXRhCisgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgYXBwLmxvZ2dlci5l cnJvcihlKQorICAgICAgICAgICAgICAgICMgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisKICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAogICAgICAg ICBkYXRhPXsKICAgICAgICAgICAgICdjb25uSWQnOiBzdHIoY29ubl9pZCksCi0gICAgICAgICAg ICAnc2VydmVyVmVyc2lvbic6IG1hbmFnZXIudmVyc2lvbiwKKyAgICAgICAgICAgICdzZXJ2ZXJW ZXJzaW9uJzogdmVyc2lvbiwKKyAgICAgICAgICAgICd0cmFuX2lkJzogbmV3X3RyYW5zX2lkCiAg ICAgICAgIH0KICAgICApCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdy aWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKaW5kZXggMDk3YTQyZS4uMTZhMjA5ZiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlk L2luZGV4Lmh0bWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2Rh dGFncmlkL2luZGV4Lmh0bWwKQEAgLTM5Miw4ICszOTIsMTcgQEAKICAgICAgICAgICAgICAgICAg ICAgdGl0bGU9IiIgcm9sZT0iaW1nIj4KICAgICAgICAgICAgICAgICA8L2k+CiAgICAgICAgICAg ICA8L2Rpdj4KLSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10aXRsZSIKLSAgICAgICAg ICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHslIGlmIGZnY29sb3IgJX17eyBiZ2Nv bG9yIG9yICcjRkZGRkZGJyB9fXslIGVuZGlmICV9OyBjb2xvcjogeyUgaWYgZmdjb2xvciAlfXt7 IGZnY29sb3IgfX17JSBlbmRpZiAlfTsiPiZuYnNwOzwvZGl2PgorICAgICAgICAgICAgPGRpdiBj bGFzcz0iY29ubmVjdGlvbi1pbmZvIGJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91cCIgYXJpYS1s YWJlbD0iIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItdGl0bGUiIGRhdGEt dG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFs c2UiCisgICAgICAgICAgICAgICAgICAgICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogeyUgaWYg Zmdjb2xvciAlfXt7IGJnY29sb3Igb3IgJyNGRkZGRkYnIH19eyUgZW5kaWYgJX07IGNvbG9yOiB7 JSBpZiBmZ2NvbG9yICV9e3sgZmdjb2xvciB9fXslIGVuZGlmICV9OyI+Jm5ic3A7CisgICAgICAg ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbm4taW5mby1k ZCBkcm9wZG93bi10b2dnbGUgZHJvcGRvd24tdG9nZ2xlLXNwbGl0IgorICAgICAgICAgICAgICAg IGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRl ZD0iZmFsc2UiPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1l bnUiIGlkPSJjb25uZWN0aW9ucy1saXN0Ij4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAg ICAgICAgPC9kaXY+CisKKwogICAgICAgICA8L2Rpdj4KICAgICAgICAgPGRpdiBpZD0iZWRpdG9y LXBhbmVsIiB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICA8ZGl2IGlkPSJmZXRjaGluZ19kYXRh IiBjbGFzcz0icGctc3AtY29udGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyI+CkBAIC00 NTYsNiArNDY1LDcgQEAgcmVxdWlyZShbJ3NvdXJjZXMvZ2VuZXJhdGVkL2Jyb3dzZXJfbm9kZXMn LCAnc291cmNlcy9nZW5lcmF0ZWQvY29kZW1pcnJvcicsICdzb3UKICAgICAgICAgICAgIHZhciBz Y3JpcHRfdHlwZV91cmwgPSAnJzsKICAgICAgICAgeyUgZW5kaWYgJX0KICAgICAgICAgLy8gU3Rh cnQgdGhlIHF1ZXJ5IHRvb2wuCisKICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlci5zdGFydCgK ICAgICAgICAgICAgIHt7IHVuaXF1ZUlkIH19LAogICAgICAgICAgICAge3sgdXJsX3BhcmFtc3xz YWZlfX0sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL2RhdGFncmlkX3Rlc3RfZGF0YS5qc29uIGIv d2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvZGF0YWdyaWRfdGVzdF9kYXRhLmpzb24K bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA3NWYzNQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL2RhdGFncmlkX3Rlc3RfZGF0 YS5qc29uCkBAIC0wLDAgKzEsMTM0IEBACit7CisgICJkYXRhX2dyaWRfaW5pdF9xdWVyeV90b29s IjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIGluaXQgcXVlcnkgdG9vbCIsCisg ICAgICAidXJsIjogIi9kYXRhZ3JpZC9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2Us CisgICAgICAidGVzdF9kYXRhIjoge30sCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfQorICBdLAorICAiZGF0YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UiOiBbCisgICAgeworICAg ICAgIm5hbWUiOiAiRGF0YWdyaWQgcXVlcnkgdG9vbCBjbG9zZSIsCisgICAgICAidXJsIjogIi9k YXRhZ3JpZC9jbG9zZS8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAg Im1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkYXRhX2dyaWRfdmFsaWRh dGVfZmlsdGVyIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIHZhbGlkYXRlIGZp bHRlciIsCisgICAgICAidXJsIjogIi9kYXRhZ3JpZC9maWx0ZXIvdmFsaWRhdGUvIiwKKyAgICAg ICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFs c2UsCisgICAgICAidGVzdF9kYXRhIjogImlkID0gMSIsCisgICAgICAibW9ja19kYXRhIjoge30s CisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisg ICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJEYXRhZ3JpZCB2YWxpZGF0ZSBm aWx0ZXIiLAorICAgICAgInVybCI6ICIvZGF0YWdyaWQvZmlsdGVyL3ZhbGlkYXRlLyIsCisgICAg ICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0 cnVlLAorICAgICAgInRlc3RfZGF0YSI6ICJpZCA9IDEiLAorICAgICAgIm1vY2tfZGF0YSI6IHsK KyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIu Y29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfc2NhbGFyIiwKKyAgICAgICAgInJldHVybl92 YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yIHdoaWxlIHZhbGlk YXRlIGZpbHRlcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkYXRhX2dyaWRf dXBkYXRlX2Nvbm5lY3Rpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgdXBk YXRlIGNvbm5lY3Rpb24gcG9zaXRpdmUiLAorICAgICAgInVybCI6ICIvZGF0YWdyaWQvaW5pdGlh bGl6ZS9xdWVyeV90b29sL3VwZGF0ZV9jb25uZWN0aW9uLyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImlz X2NyZWF0ZV9yb2xlIjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjoge30sCisgICAgICAibW9j a19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJEYXRhZ3Jp ZCB1cGRhdGUgY29ubmVjdGlvbiB3aXRoIG5ldyB1c2VyIiwKKyAgICAgICJ1cmwiOiAiL2RhdGFn cmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC91cGRhdGVfY29ubmVjdGlvbi8iLAorICAgICAgImlz X3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJpc19jcmVhdGVfcm9sZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjoge30sCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZGF0YV9ncmlkX3Bh bmVsIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIFBhbmVsIiwKKyAgICAgICJ1 cmwiOiAiL2RhdGFncmlkL3BhbmVsLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUs CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgInRlc3RfZGF0YSI6IHt9 LAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6 IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAi ZGF0YV9ncmlkX2luaXRpYWxpemUiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQg SW5pdGlhbGl6ZSIsCisgICAgICAidXJsIjogIi9kYXRhZ3JpZC9pbml0aWFsaXplL2RhdGFncmlk LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgInRlc3RfZGF0YSI6ICJpZD0xIiwKKyAgICAgICJtb2NrX2Rh dGEiOiB7CisKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSx7CisgICAgICAibmFtZSI6ICJEYXRhZ3Jp ZCBJbml0aWFsaXplIiwKKyAgICAgICJ1cmwiOiAiL2RhdGFncmlkL2luaXRpYWxpemUvZGF0YWdy aWQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3Jl cXVpcmVkIjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogbnVsbCwKKyAgICAgICJtb2NrX2Rh dGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUi OiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIElu aXRpYWxpemUiLAorICAgICAgInVybCI6ICIvZGF0YWdyaWQvaW5pdGlhbGl6ZS9kYXRhZ3JpZC8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiAiaWQ9MSIsCisgICAgICAibW9ja19kYXRh IjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3lj b3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVy bl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yIHdoaWxlIGlu aXRpYWxpemUgZGF0YWdyaWQuJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRf aW5pdF9xdWVyeV90b29sLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVz dF9kYXRhX2dyaWRfaW5pdF9xdWVyeV90b29sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjZlY2Y1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9k YXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF9pbml0X3F1ZXJ5X3Rvb2wucHkKQEAgLTAsMCAr MSw3MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitpbXBvcnQganNvbgoraW1wb3J0 IHV1aWQKK2ltcG9ydCByYW5kb20KKworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCisKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBv cnQgY29uZmlnX2RhdGEKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YV9ncmlkX3V0aWxzCisK KworY2xhc3MgRGF0YWdyaWRJbml0UXVlcnlUb29sVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgorICAgICIiIgorICAgIFRoaXMgd2lsbCBpbml0IHF1ZXJ5LXRvb2wgY29ubmVjdGlvbi4KKyAg ICAiIiIKKworICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygKKyAgICAg ICAgJ2RhdGFfZ3JpZF9pbml0X3F1ZXJ5X3Rvb2wnLAorICAgICAgICBkYXRhX2dyaWRfdXRpbHMu dGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5k YXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KKyAgICAgICAgc2Vs Zi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zaWQgPSBw YXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYu c2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lk LCBzZWxmLmRpZCkKKworICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50 KDEsIDk5OTk5OTkpKQorCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCisKKyAgICBkZWYgaW5pdF9xdWVyeV90b29sKHNlbGYp OgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxm LnVybCArIHN0cihzZWxmLnRyYW5zX2lkKSArICcvJyArIHN0cihzZWxmLnNnaWQpICsgJy8nICsg c3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2lkKSArICcvJyArIHN0cihzZWxmLmRpZCksCisg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAgICBy ZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGluaXQgcXVlcnkgdG9vbCBjb25uZWN0aW9uLiIiIgorCisgICAgICAg IGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5p bml0X3F1ZXJ5X3Rvb2woKQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNw b25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNl bGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQorCisgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGFjdHVhbF9yZXNwb25zZV9jb2RlLCBleHBlY3RlZF9yZXNwb25zZV9jb2RlKQorCisg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5l Y3QgZGF0YWJhc2UuIiIiCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90 ZXN0cy90ZXN0X2RhdGFfZ3JpZF9wYW5lbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3BhbmVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFlOGVjMTAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9k YXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF9wYW5lbC5weQpAQCAtMCwwICsxLDkzIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAoraW1w b3J0IHJhbmRvbQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdf ZGF0YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIC4g aW1wb3J0IHV0aWxzIGFzIGRhdGFfZ3JpZF91dGlscworCisKK2NsYXNzIERhdGFncmlkUGFuZWxU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyB3aWxsIGRhdGEg Z3JpZCBwYW5lbC4KKyAgICAiIiIKKworICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3Nj ZW5hcmlvcygKKyAgICAgICAgJ2RhdGFfZ3JpZF9wYW5lbCcsCisgICAgICAgIGRhdGFfZ3JpZF91 dGlscy50ZXN0X2Nhc2VzCisgICAgKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBz ZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQorICAg ICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX25hbWUiXQorICAgICAg ICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNp ZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KKyAgICAgICAg c2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zaWQsIHNlbGYuZGlkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorCisgICAgICAgIHNlbGYudHJhbnNfaWQgPSBzdHIo cmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisgICAgICAgIHF0X2luaXQgPSBkYXRhX2dyaWRf dXRpbHMuX2luaXRfcXVlcnlfdG9vbChzZWxmLCBzZWxmLnRyYW5zX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZ2lkLCBzZWxmLnNp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGlkKQorCisgICAgICAgIGlmIG5vdCBxdF9pbml0WydzdWNjZXNzJ106CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBpbml0aWFsaXplIHF1ZXJ0eSB0b29sLiIpCisK KyAgICBkZWYgcGFuZWwoc2VsZik6CisgICAgICAgIHF1ZXJ5X3BhcmFtID0gXAorICAgICAgICAg ICAgJz9pc19xdWVyeV90b29sPXswfSZzZ2lkPXsxfSZzaWQ9ezJ9JnNlcnZlcl90eXBlPXszfScg XAorICAgICAgICAgICAgJyZkaWQ9ezR9JnRpdGxlPXs1fScuZm9ybWF0KFRydWUsIHNlbGYuc2dp ZCwgc2VsZi5zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaW5mb3JtYXRpb25bJ3R5cGUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRpZCwgJ1F1ZXJ5IHBhbmVsJykKKworICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cihzZWxmLnRy YW5zX2lkKSArIHF1ZXJ5X3BhcmFtLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYu dGVzdF9kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHF1ZXJ5IHRvb2wgY29ubmVjdGlv bi4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYucGFuZWwoKQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUg PSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29k ZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0 dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYucGFuZWwoKQor ICAgICAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3Rl ZF9kYXRhWydzdGF0dXNfY29kZSddCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxf cmVzcG9uc2VfY29kZSwgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSkKKworICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IGRhdGFiYXNlLiIi IgorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlk KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRh X2dyaWRfcXVlcnlfdG9vbF9jbG9zZS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rl c3RzL3Rlc3RfZGF0YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uODIyYzJlMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UucHkK QEAgLTAsMCArMSw3NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworCitpbXBvcnQganNv bgoraW1wb3J0IHV1aWQKK2ltcG9ydCByYW5kb20KKworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9y dCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCisKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9z ZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YV9ncmlk X3V0aWxzCisKKworY2xhc3MgRGF0YWdyaWRRdWVyeVRvb2xDbG9zZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlzIHdpbGwgY2xvc2UgcXVlcnktdG9vbCBjb25u ZWN0aW9uLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFy aW9zKAorICAgICAgICAnZGF0YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UnLAorICAgICAgICBkYXRh X2dyaWRfdXRpbHMudGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV0KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0K KyAgICAgICAgc2VsZi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAg c2VsZi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisg ICAgICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2lkLCBzZWxmLmRpZCkKKworICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11b ImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorCisgICAgICAgIHNlbGYudHJhbnNf aWQgPSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisgICAgICAgIHF0X2luaXQgPSBk YXRhX2dyaWRfdXRpbHMuX2luaXRfcXVlcnlfdG9vbChzZWxmLCBzZWxmLnRyYW5zX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZ2lk LCBzZWxmLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGlkKQorCisgICAgICAgIGlmIG5vdCBxdF9pbml0WydzdWNjZXNzJ106Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBpbml0aWFsaXplIHF1ZXJ0eSB0 b29sLiIpCisKKyAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmKToKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cihzZWxm LnRyYW5zX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHF1ZXJ5IHRvb2wgY29ubmVjdGlv bi4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYuY2xvc2VfY29ubmVjdGlvbigpCisgICAgICAgICAgICBhY3R1YWxfcmVz cG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9y ZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddCisKKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jl c3BvbnNlX2NvZGUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9uLnB5 IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfdXBkYXRl X2Nvbm5lY3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQyYjE0 YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rl c3RfZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9uLnB5CkBAIC0wLDAgKzEsMTIwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAoraW1wb3J0 IHJhbmRvbQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k ZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0 YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnJvbGVzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgcm9sZXNfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZGF0YV9ncmlkX3V0aWxzCisKKworY2xhc3MgRGF0YWdyaWRVcGRhdGVDb25uZWN0aW9uVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRoaXMgd2lsbCB1cGRhdGUg cXVlcnktdG9vbCBjb25uZWN0aW9uLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKAorICAgICAgICAnZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9u JywKKyAgICAgICAgZGF0YV9ncmlkX3V0aWxzLnRlc3RfY2FzZXMKKyAgICApCisKKyAgICBkZWYg c2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2Vf aW5mb1siZGJfbmFtZSJdCisgICAgICAgIHNlbGYuZGlkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJk Yl9pZCJdCisgICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFd WyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dy b3VwJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNpZCwgc2VsZi5kaWQpCisKKyAgICAgICAgc2VsZi50 cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKKyAgICAgICAgc2VsZi5y b2xlcyA9IE5vbmUKKworICAgICAgICBpZiBzZWxmLmlzX2NyZWF0ZV9yb2xlOgorICAgICAgICAg ICAgZGF0YSA9IHJvbGVzX3V0aWxzLmdldF9yb2xlX2RhdGEoc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10pCisgICAgICAgICAgICBzZWxmLnJvbGVfbmFtZSA9IGRhdGFbJ3JvbG5hbWUnXQorICAg ICAgICAgICAgc2VsZi5yb2xlX3Bhc3N3b3JkID0gZGF0YVsncm9scGFzc3dvcmQnXQorICAgICAg ICAgICAgcm9sZXNfdXRpbHMuY3JlYXRlX3JvbGVfd2l0aF9wYXNzd29yZCgKKyAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlciwgc2VsZi5yb2xlX25hbWUsIHNlbGYucm9sZV9wYXNzd29yZCkKKwor ICAgICAgICBpZiBub3Qgc2VsZi5pc19wb3NpdGl2ZV90ZXN0IG9yIHNlbGYuaXNfY3JlYXRlX3Jv bGU6CisgICAgICAgICAgICBxdF9pbml0ID0gZGF0YV9ncmlkX3V0aWxzLl9pbml0X3F1ZXJ5X3Rv b2woc2VsZiwgc2VsZi50cmFuc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNnaWQsIHNlbGYuc2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlkKQorCisg ICAgICAgICAgICBpZiBub3QgcXRfaW5pdFsnc3VjY2VzcyddOgorICAgICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGluaXRpYWxpemUgcXVlcnR5IHRvb2wuIikKKworICAg ICAgICBzZWxmLnRlc3RfZGF0YSA9IHsKKyAgICAgICAgICAgICJkYXRhYmFzZSI6IHNlbGYuZGlk LAorICAgICAgICAgICAgInNlcnZlciI6IHNlbGYuc2lkLAorICAgICAgICB9CisKKyAgICAgICAg aWYgc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb25bJ3R5cGUnXSA9PSAncHBhcyc6CisgICAgICAgICAg ICBzZWxmLnRlc3RfZGF0YVsncGFzc3dvcmQnXSA9ICdlbnRlcnByaXNlZGInCisgICAgICAgICAg ICBzZWxmLnRlc3RfZGF0YVsndXNlciddID0gJ2VudGVycHJpc2VkYicKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWydwYXNzd29yZCddID0gJ3Bvc3RncmVzJworICAg ICAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ3VzZXInXSA9ICdwb3N0Z3JlcycKKworICAgICAgICBp ZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQor CisgICAgZGVmIHVwZGF0ZV9jb25uZWN0aW9uKHNlbGYsIHVzZXJfZGF0YT1Ob25lKToKKyAgICAg ICAgaWYgdXNlcl9kYXRhOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0 KAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQpICsgJy8nICsg c3RyKHNlbGYuc2dpZCkgKworICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNpZCkgKyAn LycgKyBzdHIoc2VsZi5kaWQpLAorICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyh1c2Vy X2RhdGEpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQpICsg Jy8nICsgc3RyKHNlbGYuc2dpZCkgKyAnLycgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLnNp ZCkgKyAnLycgKyBzdHIoc2VsZi5kaWQpLAorICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhzZWxmLnRlc3RfZGF0YSksCisgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHF1ZXJ5 IHRvb2wgY29ubmVjdGlvbi4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6 CisgICAgICAgICAgICB1c2VyX2RhdGEgPSBkaWN0KCkKKyAgICAgICAgICAgIGlmIHNlbGYuaXNf Y3JlYXRlX3JvbGU6CisgICAgICAgICAgICAgICAgdXNlcl9kYXRhWyd1c2VyJ10gPSBzZWxmLnJv bGVfbmFtZQorICAgICAgICAgICAgICAgIHVzZXJfZGF0YVsncGFzc3dvcmQnXSA9IHNlbGYucm9s ZV9wYXNzd29yZAorICAgICAgICAgICAgICAgIHVzZXJfZGF0YVsncm9sZSddID0gTm9uZQorICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9jb25uZWN0aW9uKHVzZXJfZGF0YT11c2Vy X2RhdGEpCisgICAgICAgICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1 c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3Rl ZF9kYXRhWydzdGF0dXNfY29kZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYudXBkYXRlX2Nvbm5lY3Rpb24oKQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNl X2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9u c2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQorCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2Nv ZGUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24g ZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2Rh dGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlci5weSBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlci5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWJhNWQ4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRf dmFsaWRhdGVfZmlsdGVyLnB5CkBAIC0wLDAgKzEsOTEgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCitpbXBvcnQgcmFuZG9tCisKK2Zyb20g dW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRh YmFzZV91dGlscworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJv bSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAg IGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0 YV9ncmlkX3V0aWxzCisKKworY2xhc3MgRGF0YWdyaWRWYWxpZGF0ZUZpbHRlclRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlzIHdpbGwgdmFsaWRhdGUgZmlsdGVy IGNvbm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9z Y2VuYXJpb3MoCisgICAgICAgICdkYXRhX2dyaWRfdmFsaWRhdGVfZmlsdGVyJywKKyAgICAgICAg ZGF0YV9ncmlkX3V0aWxzLnRlc3RfY2FzZXMKKyAgICApCisKKyAgICBkZWYgc2V0VXAoc2VsZik6 CisgICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfbmFt ZSJdCisgICAgICAgIHNlbGYuZGlkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9pZCJdCisgICAg ICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQi XQorICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KKworICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNpZCwgc2VsZi5kaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdWyJzY2hlbWFfaWQiXQorICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdWyJzY2hl bWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAg IGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKKyAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2Zvcl93aXphcmQlcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorCisgICAgZGVm IHZhbGlkYXRlX2ZpbHRlcihzZWxmKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi5zaWQpICsgJy8nICsgc3RyKHNl bGYuZGlkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCksCisgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgcXVlcnkgdG9vbCBjb25uZWN0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9z aXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi52YWxpZGF0ZV9maWx0ZXIo KQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29k ZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0 YVsnc3RhdHVzX2NvZGUnXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChz ZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudmFsaWRhdGVfZmlsdGVyKCkKKyAgICAgICAgICAg ICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAg ICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3Rh dHVzX2NvZGUnXQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2Nv ZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6Cisg ICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfaW5pdGlhbGl6ZV9kYXRh X2dyaWQucHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2luaXRpYWxp emVfZGF0YV9ncmlkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGEx ZDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90 ZXN0X2luaXRpYWxpemVfZGF0YV9ncmlkLnB5CkBAIC0wLDAgKzEsMTA4IEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAoraW1wb3J0IHJhbmRv bQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRl c3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGRhdGFfZ3JpZF91dGlscworCisKK2NsYXNzIERhdGFncmlkSW5pdGlhbGl6ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlzIHdpbGwgSW5pdGlhbGl6 ZSBkYXRhZ3JpZAorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2Nl bmFyaW9zKAorICAgICAgICAnZGF0YV9ncmlkX2luaXRpYWxpemUnLAorICAgICAgICBkYXRhX2dy aWRfdXRpbHMudGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAg ICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KKyAg ICAgICAgc2VsZi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2Vs Zi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAg ICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2lkLCBzZWxmLmRpZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25u ZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKKworICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX2lkIl0KKyAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX25h bWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYudGFibGVf bmFtZSA9ICJ0YWJsZV9mb3Jfd2l6YXJkJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi50 cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKKyAgICAgICAgcXRfaW5p dCA9IGRhdGFfZ3JpZF91dGlscy5faW5pdF9xdWVyeV90b29sKHNlbGYsIHNlbGYudHJhbnNfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNnaWQsIHNlbGYuc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kaWQpCisKKyAgICAgICAgaWYgbm90IHF0X2luaXRbJ3N1Y2Nlc3Mn XToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGluaXRpYWxpemUgcXVl cnkgdG9vbC4iKQorCisgICAgZGVmIGluaXRpYWxpemVfZGF0YWdyaWQoc2VsZik6CisgICAgICAg IGlmIHNlbGYudGVzdF9kYXRhOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w b3N0KAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQpICsgJy80 L3RhYmxlLycgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLnNnaWQpICsgJy8nICsgc3RyKHNl bGYuc2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGlkKSArICcvJyArIHN0 cihzZWxmLnRhYmxlX2lkKSwKKyAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50 ZXN0X2RhdGEpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAg ICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYudHJhbnNfaWQp ICsgJy80L3RhYmxlLycgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLnNnaWQpICsgJy8nICsg c3RyKHNlbGYuc2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGlkKSArICcv JyArIHN0cihzZWxmLnRhYmxlX2lkKSwKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicKKyAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUg cXVlcnkgdG9vbCBjb25uZWN0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVf dGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5pbml0aWFsaXplX2RhdGFncmlkKCkK KyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUK KyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFb J3N0YXR1c19jb2RlJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmluaXRpYWxpemVfZGF0YWdyaWQoKQorICAgICAgICAg ICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKKyAgICAg ICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydz dGF0dXNfY29kZSddCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9uc2Vf Y29kZSwgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToK KyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IGRhdGFiYXNlLiIiIgorICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlkKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdh ZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jM2Q0YmI1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9v bHMvZGF0YWdyaWQvdGVzdHMvdXRpbHMucHkKQEAgLTAsMCArMSwzMyBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKK2ltcG9ydCBvcworaW1wb3J0IGpzb24KKworZmlsZV9uYW1lID0gb3MucGF0 aC5iYXNlbmFtZShfX2ZpbGVfXykKK0NVUlJFTlRfUEFUSCA9IG9zLnBhdGguZGlybmFtZShvcy5w YXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKK3dpdGggb3BlbihDVVJSRU5UX1BBVEggKyAiL2RhdGFn cmlkX3Rlc3RfZGF0YS5qc29uIikgYXMgZGF0YV9maWxlOgorICAgIHRlc3RfY2FzZXMgPSBqc29u LmxvYWQoZGF0YV9maWxlKQorCisKK2RlZiBfaW5pdF9xdWVyeV90b29sKHNlbGYsIHRyYW5zX2lk LCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgZGJfaWQpOgorICAgIFFVRVJZX1RPT0xfSU5JVF9V UkwgPSAnL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbCcKKworICAgIHF0X2luaXQgPSBz ZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAnezB9L3sxfS97Mn0vezN9L3s0fScuZm9ybWF0KAor ICAgICAgICAgICAgUVVFUllfVE9PTF9JTklUX1VSTCwKKyAgICAgICAgICAgIHRyYW5zX2lkLAor ICAgICAgICAgICAgc2VydmVyX2dyb3VwLAorICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAg ICAgICAgZGJfaWQKKyAgICAgICAgKSwKKyAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCisg ICAgKQorICAgIGFzc2VydCBxdF9pbml0LnN0YXR1c19jb2RlID09IDIwMAorICAgIHF0X2luaXQg PSBqc29uLmxvYWRzKHF0X2luaXQuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgcmV0dXJuIHF0 X2luaXQKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQppbmRleCBjNjJiYzdj Li5hMDJmNmI5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5CkBAIC0x MCwzMyArMTAsMzggQEAKICIiIkEgYmx1ZXByaW50IG1vZHVsZSBpbXBsZW1lbnRpbmcgdGhlIHNx bGVkaXRvciBmcmFtZS4iIiIKIGltcG9ydCBvcwogaW1wb3J0IHBpY2tsZQotaW1wb3J0IHN5cwog aW1wb3J0IHJlCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdW5xdW90ZQogCiBpbXBvcnQgc2lt cGxlanNvbiBhcyBqc29uCi1mcm9tIGZsYXNrIGltcG9ydCBSZXNwb25zZSwgdXJsX2ZvciwgcmVu ZGVyX3RlbXBsYXRlLCBzZXNzaW9uLCByZXF1ZXN0LCBcCi0gICAgY3VycmVudF9hcHAKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUiwgT05fREVNQU5EX1JFQ09SRF9DT1VOVAor ZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2UsIHVybF9mb3IsIHJlbmRlcl90ZW1wbGF0ZSwgc2Vz c2lvbiwgY3VycmVudF9hcHAKK2Zyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QsIGpzb25pZnkKIGZy b20gZmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dAogZnJvbSBmbGFza19zZWN1cml0eSBpbXBv cnQgbG9naW5fcmVxdWlyZWQsIGN1cnJlbnRfdXNlcgotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0 IHVucXVvdGUKLQotZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSLCBPTl9ERU1B TkRfUkVDT1JEX0NPVU5UCiBmcm9tIHBnYWRtaW4ubWlzYy5maWxlX21hbmFnZXIgaW1wb3J0IEZp bGVtYW5hZ2VyCiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLmNvbW1hbmQgaW1wb3J0IFF1 ZXJ5VG9vbENvbW1hbmQKIGZyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuY29uc3Rh bnRfZGVmaW5pdGlvbiBpbXBvcnQgQVNZTkNfT0ssIFwKICAgICBBU1lOQ19FWEVDVVRJT05fQUJP UlRFRCwgXAogICAgIENPTk5FQ1RJT05fU1RBVFVTX01FU1NBR0VfTUFQUElORywgVFhfU1RBVFVT X0lORVJST1IKK2Zyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuZmlsdGVyX2RpYWxv ZyBpbXBvcnQgRmlsdGVyRGlhbG9nCitmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxz LnF1ZXJ5X2hpc3RvcnkgaW1wb3J0IFF1ZXJ5SGlzdG9yeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNx bGVkaXRvci51dGlscy5xdWVyeV90b29sX2ZzX3V0aWxzIGltcG9ydCBcCisgICAgcmVhZF9maWxl X2dlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV90b29s X3ByZWZlcmVuY2VzIGltcG9ydCBcCisgICAgcmVnaXN0ZXJfcXVlcnlfdG9vbF9wcmVmZXJlbmNl cwogZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5 IGltcG9ydCBTdGFydFJ1bm5pbmdRdWVyeQogZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51 dGlscy51cGRhdGVfc2Vzc2lvbl9ncmlkX3RyYW5zYWN0aW9uIGltcG9ydCBcCiAgICAgdXBkYXRl X3Nlc3Npb25fZ3JpZF90cmFuc2FjdGlvbgogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBQZ0Fk bWluTW9kdWxlCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IGdldF9zdG9yYWdlX2RpcmVjdG9y eQogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgYmFk X3JlcXVlc3QsIFwKLSAgICBzdWNjZXNzX3JldHVybiwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCisg ICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRtaW4udXRpbHMuY29uc3RhbnRzIGlt cG9ydCBNSU1FVFlQRV9BUFBfSlMKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKLWZyb20gcGdhZG1pbi51dGlscy5tZW51IGltcG9ydCBNZW51SXRlbQotZnJvbSBw Z2FkbWluLnV0aWxzLmV4Y2VwdGlvbiBpbXBvcnQgQ29ubmVjdGlvbkxvc3QsIFNTSFR1bm5lbENv bm5lY3Rpb25Mb3N0LFwKK2Zyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IENvbm5l Y3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdCwgXAogICAgIENyeXB0S2V5TWlzc2lu ZworZnJvbSBwZ2FkbWluLnV0aWxzLm1lbnUgaW1wb3J0IE1lbnVJdGVtCiBmcm9tIHBnYWRtaW4u dXRpbHMuc3FsYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZSBpbXBvcnQgU1FMQXV0b0NvbXBsZXRl CiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5j ZXMgaW1wb3J0IFwKICAgICByZWdpc3Rlcl9xdWVyeV90b29sX3ByZWZlcmVuY2VzCkBAIC00NCw4 ICs0OSwxMCBAQCBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5X3Rvb2xf ZnNfdXRpbHMgaW1wb3J0IFwKICAgICByZWFkX2ZpbGVfZ2VuZXJhdG9yCiBmcm9tIHBnYWRtaW4u dG9vbHMuc3FsZWRpdG9yLnV0aWxzLmZpbHRlcl9kaWFsb2cgaW1wb3J0IEZpbHRlckRpYWxvZwog ZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV9oaXN0b3J5IGltcG9ydCBR dWVyeUhpc3RvcnkKLWZyb20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IE1JTUVUWVBF X0FQUF9KUywgU0VSVkVSX0NPTk5FQ1RJT05fQ0xPU0VELFwKLSAgICBFUlJPUl9NU0dfVFJBTlNf SURfTk9UX0ZPVU5ECitmcm9tIHBnYWRtaW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBNSU1FVFlQ RV9BUFBfSlMsIFwKKyAgICBTRVJWRVJfQ09OTkVDVElPTl9DTE9TRUQsIEVSUk9SX01TR19UUkFO U19JRF9OT1RfRk9VTkQKK2Zyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCitmcm9tIHBn YWRtaW4udG9vbHMuc2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJl Z2lzdHJ5CiAKIE1PRFVMRV9OQU1FID0gJ3NxbGVkaXRvcicKIApAQCAtMTA5LDYgKzExNiwxMiBA QCBjbGFzcyBTcWxFZGl0b3JNb2R1bGUoUGdBZG1pbk1vZHVsZSk6CiAgICAgICAgICAgICAnc3Fs ZWRpdG9yLmdldF9xdWVyeV9oaXN0b3J5JywKICAgICAgICAgICAgICdzcWxlZGl0b3IuYWRkX3F1 ZXJ5X2hpc3RvcnknLAogICAgICAgICAgICAgJ3NxbGVkaXRvci5jbGVhcl9xdWVyeV9oaXN0b3J5 JywKKyAgICAgICAgICAgICdzcWxlZGl0b3IuZ2V0X25ld19jb25uZWN0aW9uX2RhdGEnLAorICAg ICAgICAgICAgJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UnLAorICAgICAg ICAgICAgJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fdXNlcicsCisgICAgICAgICAgICAn c3FsZWRpdG9yLmdldF9uZXdfY29ubmVjdGlvbl9yb2xlJywKKyAgICAgICAgICAgICdzcWxlZGl0 b3IuY29ubmVjdF9zZXJ2ZXInLAorICAgICAgICAgICAgJ3NxbGVkaXRvci5jb25uZWN0X3NlcnZl cl93aXRoX3VzZXInLAogICAgICAgICBdCiAKICAgICBkZWYgcmVnaXN0ZXJfcHJlZmVyZW5jZXMo c2VsZik6CkBAIC0yMjQsNyArMjM3LDcgQEAgZGVmIHN0YXJ0X3ZpZXdfZGF0YSh0cmFuc19pZCk6 CiAgICAgICAgICAgICApCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5k IFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBO b25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBp cyBub3QgTm9uZToKICAgICAgICAgIyBzZXQgZmV0Y2hlZCByb3cgY291bnQgdG8gMCBhcyB3ZSBh cmUgZXhlY3V0aW5nIHF1ZXJ5IGFnYWluLgogICAgICAgICB0cmFuc19vYmoudXBkYXRlX2ZldGNo ZWRfcm93X2NudCgwKQogCkBAIC0zNzAsNyArMzgzLDcgQEAgZGVmIHBvbGwodHJhbnNfaWQpOgog ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0cmFuc19vYmosIFF1ZXJ5VG9vbENvbW1hbmQpOgog ICAgICAgICAgICAgICAgIHRyYW5zX3N0YXR1cyA9IGNvbm4udHJhbnNhY3Rpb25fc3RhdHVzKCkK ICAgICAgICAgICAgICAgICBpZiB0cmFuc19zdGF0dXMgPT0gVFhfU1RBVFVTX0lORVJST1IgYW5k IFwKLSAgICAgICAgICAgICAgICAgICB0cmFuc19vYmouYXV0b19yb2xsYmFjazoKKyAgICAgICAg ICAgICAgICAgICAgICAgIHRyYW5zX29iai5hdXRvX3JvbGxiYWNrOgogICAgICAgICAgICAgICAg ICAgICBjb25uLmV4ZWN1dGVfdm9pZCgiUk9MTEJBQ0s7IikKIAogICAgICAgICAgICAgc3QsIHJl c3VsdCA9IGNvbm4uYXN5bmNfZmV0Y2htYW55XzJkYXJyYXkoT05fREVNQU5EX1JFQ09SRF9DT1VO VCkKQEAgLTY4MCwxMyArNjkzLDEyIEBAIGRlZiBzYXZlKHRyYW5zX2lkKToKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9NDA0KQogCiAgICAgaWYgc3RhdHVzIGFuZCBj b25uIGlzIG5vdCBOb25lIGFuZCBcCi0gICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBz ZXNzaW9uX29iaiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHRyYW5zX29iaiBpcyBub3QgTm9u ZSBhbmQgc2Vzc2lvbl9vYmogaXMgbm90IE5vbmU6CiAKICAgICAgICAgIyBJZiB0aGVyZSBpcyBu byBwcmltYXJ5IGtleSBmb3VuZCB0aGVuIHJldHVybiBmcm9tIHRoZSBmdW5jdGlvbi4KICAgICAg ICAgaWYgKCdwcmltYXJ5X2tleXMnIG5vdCBpbiBzZXNzaW9uX29iaiBvcgotICAgICAgICAgICBs ZW4oc2Vzc2lvbl9vYmpbJ3ByaW1hcnlfa2V5cyddKSA8PSAwIG9yCi0gICAgICAgICAgIGxlbihj aGFuZ2VkX2RhdGEpIDw9IDApIGFuZCBcCi0gICAgICAgICAgICdoYXNfb2lkcycgbm90IGluIHNl c3Npb25fb2JqOgorICAgICAgICAgICAgbGVuKHNlc3Npb25fb2JqWydwcmltYXJ5X2tleXMnXSkg PD0gMCBvcgorICAgICAgICAgICAgICAgIGxlbihjaGFuZ2VkX2RhdGEpIDw9IDApIGFuZCAnaGFz X29pZHMnIG5vdCBpbiBzZXNzaW9uX29iajoKICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgZGF0YT17CiAgICAgICAgICAgICAgICAgICAgICdz dGF0dXMnOiBGYWxzZSwKQEAgLTc1Myw3ICs3NjUsNyBAQCBkZWYgYXBwZW5kX2ZpbHRlcl9pbmNs dXNpdmUodHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1 cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAg ICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9u ZToKIAogICAgICAgICByZXMgPSBOb25lCiAgICAgICAgIGZpbHRlcl9zcWwgPSAnJwpAQCAtODA3 LDcgKzgxOSw3IEBAIGRlZiBhcHBlbmRfZmlsdGVyX2V4Y2x1c2l2ZSh0cmFuc19pZCk6CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbz0nREFUQUdSSURfVFJBTlNBQ1RJT05f UkVRVUlSRUQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQp CiAgICAgaWYgc3RhdHVzIGFuZCBjb25uIGlzIG5vdCBOb25lIGFuZCBcCi0gICAgICAgdHJhbnNf b2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKKyAgICAgICAgICAg IHRyYW5zX29iaiBpcyBub3QgTm9uZSBhbmQgc2Vzc2lvbl9vYmogaXMgbm90IE5vbmU6CiAKICAg ICAgICAgcmVzID0gTm9uZQogICAgICAgICBmaWx0ZXJfc3FsID0gJycKQEAgLTg2MCw3ICs4NzIs NyBAQCBkZWYgcmVtb3ZlX2ZpbHRlcih0cmFuc19pZCk6CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhdHVzPTQwNCkKIAogICAgIGlmIHN0YXR1cyBhbmQgY29ubiBpcyBub3Qg Tm9uZSBhbmQgXAotICAgICAgIHRyYW5zX29iaiBpcyBub3QgTm9uZSBhbmQgc2Vzc2lvbl9vYmog aXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Np b25fb2JqIGlzIG5vdCBOb25lOgogCiAgICAgICAgIHJlcyA9IE5vbmUKIApAQCAtOTA0LDcgKzkx Niw3IEBAIGRlZiBzZXRfbGltaXQodHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90IE5v bmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9u X29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICByZXMgPSBOb25lCiAKQEAgLTEwNDYsNyArMTA1 OCw3IEBAIGRlZiBnZXRfb2JqZWN0X25hbWUodHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMg bm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25f b2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBz ZXNzaW9uX29iaiBpcyBub3QgTm9uZToKICAgICAgICAgcmVzID0gdHJhbnNfb2JqLm9iamVjdF9u YW1lCiAgICAgZWxzZToKICAgICAgICAgc3RhdHVzID0gRmFsc2UKQEAgLTEwODIsNyArMTA5NCw3 IEBAIGRlZiBzZXRfYXV0b19jb21taXQodHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90 IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2Jq IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNz aW9uX29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICByZXMgPSBOb25lCiAKQEAgLTExMjcsNyAr MTEzOSw3IEBAIGRlZiBzZXRfYXV0b19yb2xsYmFjayh0cmFuc19pZCk6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQwNCkKIAogICAgIGlmIHN0YXR1cyBhbmQgY29u biBpcyBub3QgTm9uZSBhbmQgXAotICAgICAgIHRyYW5zX29iaiBpcyBub3QgTm9uZSBhbmQgc2Vz c2lvbl9vYmogaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUg YW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgogCiAgICAgICAgIHJlcyA9IE5vbmUKIApAQCAt MTE3OSw3ICsxMTkxLDcgQEAgZGVmIGF1dG9fY29tcGxldGUodHJhbnNfaWQpOgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5k IGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5k IHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBO b25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICAjIENyZWF0ZSBvYmpl Y3Qgb2YgU1FMQXV0b0NvbXBsZXRlIGNsYXNzIGFuZCBwYXNzIGNvbm5lY3Rpb24gb2JqZWN0CiAg ICAgICAgIGF1dG9fY29tcGxldGVfb2JqID0gU1FMQXV0b0NvbXBsZXRlKApAQCAtMTQ2NSw2ICsx NDc3LDI4NCBAQCBkZWYgZ2V0X2ZpbHRlcl9kYXRhKHRyYW5zX2lkKToKICAgICByZXR1cm4gRmls dGVyRGlhbG9nLmdldChzdGF0dXMsIGVycm9yX21zZywgY29ubiwgdHJhbnNfb2JqLCBzZXNzaW9u X29iKQogCiAKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9uZXdfY29ubmVjdGlvbl9kaWFsb2cv PGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhvZHM9WyJHRVQiXSwgZW5kcG9pbnQ9J2dl dF9uZXdfY29ubmVjdGlvbl9kYXRhJworKQorQGxvZ2luX3JlcXVpcmVkCitkZWYgZ2V0X25ld19j b25uZWN0aW9uX2RhdGEoc2dpZCwgc2lkPU5vbmUpOgorICAgICIiIgorICAgIFRoaXMgbWV0aG9k IGlzIHVzZWQgdG8gZ2V0IHJlcXVpcmVkIGRhdGEgZm9yIGdldCBuZXcgY29ubmVjdGlvbi4KKyAg ICA6ZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnMsCisgICAgIiIiCisgICAgdHJ5 OgorICAgICAgICAjIGlmIHNpZCBhbmQgbm90IGRpZDoKKyAgICAgICAgc2VydmVycyA9IFNlcnZl ci5xdWVyeS5hbGwoKQorICAgICAgICBzZXJ2ZXJfbGlzdCA9IFsKKyAgICAgICAgICAgIHsnbmFt ZSc6IHNlcnZlci5zZXJpYWxpemVbJ25hbWUnXSwgImlkIjogc2VydmVyLnNlcmlhbGl6ZVsnaWQn XX0KKyAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyc10KKworICAgICAgICBtc2cgPSAi U3VjY2VzcyIKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg IGRhdGE9eworICAgICAgICAgICAgICAgICdzdGF0dXMnOiBUcnVlLAorICAgICAgICAgICAgICAg ICdtc2cnOiBtc2csCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAgICAgICAg ICAgICAgJ3NlcnZlcl9saXN0Jzogc2VydmVyX2xpc3QKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9CisgICAgICAgICkKKworICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9eworICAgICAg ICAgICAgICAgICdzdGF0dXMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAnbXNnJzogJ1VuYWJs ZSB0byBmZXRjaCBkYXRhLicsCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAg ICAgICAgICAgICAgJ3NlcnZlcl9saXN0JzogW10KKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9CisgICAgICAgICkKKworCitAYmx1ZXByaW50LnJvdXRlKAorICAgICcvbmV3X2Nvbm5l Y3Rpb25fZGF0YWJhc2UvPGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhvZHM9WyJHRVQi XSwgZW5kcG9pbnQ9J2dldF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZScKKykKK0Bsb2dpbl9yZXF1 aXJlZAorZGVmIGdldF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZShzZ2lkLCBzaWQ9Tm9uZSk6Cisg ICAgIiIiCisgICAgVGhpcyBtZXRob2QgaXMgdXNlZCB0byBnZXQgcmVxdWlyZWQgZGF0YSBmb3Ig Z2V0IG5ldyBjb25uZWN0aW9uLgorICAgIDpleHRyYWN0X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1l dGVycywKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGRhdGFiYXNlX2xpc3QgPSBbXQorICAg ICAgICBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCisgICAgICAg IG1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFn ZXIoc2lkKQorICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKCkKKyAgICAgICAgaWYg Y29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgIGlzX2Nvbm5lY3RlZCA9IFRydWUKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICMgY29ubmVjdGlvbiA9IGNvbm4uY29ubmVjdCgpCisgICAg ICAgICAgICBpc19jb25uZWN0ZWQgPSBGYWxzZQorICAgICAgICBpZiBpc19jb25uZWN0ZWQ6Cisg ICAgICAgICAgICBpZiBzaWQ6CisgICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aCA9ICdkYXRh YmFzZXMvc3FsLyN7MH0jJy5mb3JtYXQobWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgICAg IGxhc3Rfc3lzdGVtX29pZCA9IDAKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfbm9kZV9yZXMgPSBt YW5hZ2VyCisKKyAgICAgICAgICAgICAgICBkYl9kaXNwX3JlcyA9IE5vbmUKKyAgICAgICAgICAg ICAgICBwYXJhbXMgPSBOb25lCisgICAgICAgICAgICAgICAgaWYgc2VydmVyX25vZGVfcmVzIGFu ZCBzZXJ2ZXJfbm9kZV9yZXMuZGJfcmVzOgorICAgICAgICAgICAgICAgICAgICBkYl9kaXNwX3Jl cyA9ICIsICIuam9pbigKKyAgICAgICAgICAgICAgICAgICAgICAgIFsnJXMnXSAqIGxlbihzZXJ2 ZXJfbm9kZV9yZXMuZGJfcmVzLnNwbGl0KCcsJykpCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICAgICAgcGFyYW1zID0gdHVwbGUoc2VydmVyX25vZGVfcmVzLmRiX3Jlcy5z cGxpdCgnLCcpKQorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAgICAgIi8iLmpvaW4oW3RlbXBsYXRlX3BhdGgsICdub2Rlcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgIGxhc3Rfc3lzdGVtX29pZD1sYXN0X3N5c3RlbV9vaWQsCisgICAg ICAgICAgICAgICAgICAgIGRiX3Jlc3RyaWN0aW9ucz1kYl9kaXNwX3JlcworICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIGRhdGFiYXNlcyA9IGNvbm4uZXhlY3V0ZV9k aWN0KHNxbCwgcGFyYW1zKQorICAgICAgICAgICAgICAgIGRhdGFiYXNlX2xpc3QgPSBbCisgICAg ICAgICAgICAgICAgICAgIHsnbGFiZWwnOiBkYXRhYmFzZVsnbmFtZSddLCAndmFsdWUnOiBkYXRh YmFzZVsnZGlkJ119IGZvcgorICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZSBpbiBkYXRhYmFz ZXNbJ3Jvd3MnXV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3RhdHVzID0g RmFsc2UKKworICAgICAgICAgICAgbXNnID0gIlN1Y2Nlc3MiCisgICAgICAgICAgICByZXR1cm4g bWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAnc3RhdHVzJzogc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAnbXNnJzogbXNn LAorICAgICAgICAgICAgICAgICAgICAncmVzdWx0JzogeworICAgICAgICAgICAgICAgICAgICAg ICAgJ2RhdGEnOiBkYXRhYmFzZV9saXN0LAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgJ3N0YXR1cyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAnbXNnJzog J1NlcnZlciBub3QgY29ubmVjdGVkLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxl YXNlIGNvbm5lY3Qgd2l0aCBzZXJ2ZXIgYW5kIHRyeSBhZ2Fpbi4nLAorICAgICAgICAgICAgICAg ICAgICAncmVzdWx0JzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFiYXNlX2xpc3Qn OiBbXSwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAnc3RhdHVz JzogRmFsc2UsCisgICAgICAgICAgICAgICAgJ21zZyc6ICdVbmFibGUgdG8gZmV0Y2ggZGF0YS4n LAorICAgICAgICAgICAgICAgICdyZXN1bHQnOiB7CisgICAgICAgICAgICAgICAgICAgICdkYXRh YmFzZV9saXN0JzogW10sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg ICApCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAnL25ld19jb25uZWN0aW9uX3VzZXIvPGlu dDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhvZHM9WyJHRVQiXSwgZW5kcG9pbnQ9J2dldF9u ZXdfY29ubmVjdGlvbl91c2VyJworKQorQGxvZ2luX3JlcXVpcmVkCitkZWYgZ2V0X25ld19jb25u ZWN0aW9uX3VzZXIoc2dpZCwgc2lkPU5vbmUpOgorICAgICIiIgorICAgIFRoaXMgbWV0aG9kIGlz IHVzZWQgdG8gZ2V0IHJlcXVpcmVkIGRhdGEgZm9yIGdldCBuZXcgY29ubmVjdGlvbi4KKyAgICA6 ZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnMsCisgICAgIiIiCisgICAgdHJ5Ogor ICAgICAgICBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCisgICAg ICAgIG1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21h bmFnZXIoc2lkKQorICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKCkKKyAgICAgICAg dXNlcl9saXN0ID0gW10KKyAgICAgICAgaWYgY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAg IGlzX2Nvbm5lY3RlZCA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlzX2Nvbm5l Y3RlZCA9IEZhbHNlCisgICAgICAgIGlmIGlzX2Nvbm5lY3RlZDoKKyAgICAgICAgICAgIGlmIHNp ZDoKKyAgICAgICAgICAgICAgICBzcWxfcGF0aCA9ICdyb2xlcy9zcWwvI3swfSMnLmZvcm1hdCht YW5hZ2VyLnZlcnNpb24pCisgICAgICAgICAgICAgICAgc3RhdHVzLCB1c2VycyA9IGNvbm4uZXhl Y3V0ZV8yZGFycmF5KAorICAgICAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoc3FsX3Bh dGggKyAnbm9kZXMuc3FsJykKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgdXNl cl9saXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J3ZhbHVlJzogdXNlclsncm9sbmFtZSdd LCAnbGFiZWwnOiB1c2VyWydyb2xuYW1lJ119IGZvcgorICAgICAgICAgICAgICAgICAgICB1c2Vy IGluIHVzZXJzWydyb3dzJ10gaWYgdXNlclsncm9sY2FubG9naW4nXV0KKyAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgc3RhdHVzID0gRmFsc2UKKworICAgICAgICAgICAgbXNnID0g IlN1Y2Nlc3MiCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogc3RhdHVzLAor ICAgICAgICAgICAgICAgICAgICAnbXNnJzogbXNnLAorICAgICAgICAgICAgICAgICAgICAncmVz dWx0JzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiB1c2VyX2xpc3QsCisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogRmFsc2UsCisg ICAgICAgICAgICAgICAgICAgICdtc2cnOiAnU2VydmVyIG5vdCBjb25uZWN0ZWQsICcKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgY29ubmVjdCB3aXRoIHNlcnZlciBhbmQgdHJ5 IGFnYWluLicsCisgICAgICAgICAgICAgICAgICAgICdyZXN1bHQnOiB7CisgICAgICAgICAgICAg ICAgICAgICAgICAndXNlcl9saXN0JzogW10sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICApCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT17Cisg ICAgICAgICAgICAgICAgJ3N0YXR1cyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICdtc2cnOiAn VW5hYmxlIHRvIGZldGNoIGRhdGEuJywKKyAgICAgICAgICAgICAgICAncmVzdWx0JzogeworICAg ICAgICAgICAgICAgICAgICAndXNlcl9saXN0JzogW10sCisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgfQorICAgICAgICApCisKKworQGJsdWVwcmludC5yb3V0ZSgKKyAgICAnL25ld19j b25uZWN0aW9uX3JvbGUvPGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhvZHM9WyJHRVQi XSwgZW5kcG9pbnQ9J2dldF9uZXdfY29ubmVjdGlvbl9yb2xlJworKQorQGxvZ2luX3JlcXVpcmVk CitkZWYgZ2V0X25ld19jb25uZWN0aW9uX3JvbGUoc2dpZCwgc2lkPU5vbmUpOgorICAgICIiIgor ICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ2V0IHJlcXVpcmVkIGRhdGEgZm9yIGdldCBuZXcg Y29ubmVjdGlvbi4KKyAgICA6ZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnMsCisg ICAgIiIiCisgICAgdHJ5OgorICAgICAgICBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9y dCBnZXRfZHJpdmVyCisgICAgICAgIG1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJ VkVSKS5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQorICAgICAgICBjb25uID0gbWFuYWdlci5jb25u ZWN0aW9uKCkKKyAgICAgICAgcm9sZV9saXN0ID0gW10KKyAgICAgICAgaWYgY29ubi5jb25uZWN0 ZWQoKToKKyAgICAgICAgICAgIGlzX2Nvbm5lY3RlZCA9IFRydWUKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIGlzX2Nvbm5lY3RlZCA9IEZhbHNlCisgICAgICAgIGlmIGlzX2Nvbm5lY3RlZDoK KyAgICAgICAgICAgIGlmIHNpZDoKKyAgICAgICAgICAgICAgICBzcWxfcGF0aCA9ICdyb2xlcy9z cWwvI3swfSMnLmZvcm1hdChtYW5hZ2VyLnZlcnNpb24pCisgICAgICAgICAgICAgICAgc3RhdHVz LCByb2xlcyA9IGNvbm4uZXhlY3V0ZV8yZGFycmF5KAorICAgICAgICAgICAgICAgICAgICByZW5k ZXJfdGVtcGxhdGUoc3FsX3BhdGggKyAnbm9kZXMuc3FsJykKKyAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgcm9sZV9saXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J3ZhbHVl Jzogcm9sZVsncm9sbmFtZSddLCAnbGFiZWwnOiByb2xlWydyb2xuYW1lJ119IGZvcgorICAgICAg ICAgICAgICAgICAgICByb2xlIGluIHJvbGVzWydyb3dzJ11dCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHN0YXR1cyA9IEZhbHNlCisKKyAgICAgICAgICAgIG1zZyA9ICJTdWNj ZXNzIgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IHN0YXR1cywKKyAgICAg ICAgICAgICAgICAgICAgJ21zZyc6IG1zZywKKyAgICAgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6 IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogcm9sZV9saXN0LAorICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IEZhbHNlLAorICAgICAg ICAgICAgICAgICAgICAnbXNnJzogJ1NlcnZlciBub3QgY29ubmVjdGVkLCAnCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAnUGxlYXNlIGNvbm5lY3Qgd2l0aCBzZXJ2ZXIgYW5kIHRyeSBhZ2Fp bi4nLAorICAgICAgICAgICAgICAgICAgICAncmVzdWx0JzogeworICAgICAgICAgICAgICAgICAg ICAgICAgJ3VzZXJfbGlzdCc6IFtdLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgKQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9eworICAgICAg ICAgICAgICAgICdzdGF0dXMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAnbXNnJzogJ1VuYWJs ZSB0byBmZXRjaCBkYXRhLicsCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAg ICAgICAgICAgICAgJ3VzZXJfbGlzdCc6IFtdLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgKQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9jb25uZWN0X3Nl cnZlci88aW50OnNpZD4vPHVzcj4nLAorICAgIG1ldGhvZHM9WyJHRVQiXSwKKyAgICBlbmRwb2lu dD0iY29ubmVjdF9zZXJ2ZXJfd2l0aF91c2VyIgorKQorQGJsdWVwcmludC5yb3V0ZSgKKyAgICAn L2Nvbm5lY3Rfc2VydmVyLzxpbnQ6c2lkPicsCisgICAgbWV0aG9kcz1bIkdFVCJdLAorICAgIGVu ZHBvaW50PSJjb25uZWN0X3NlcnZlciIKKykKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGNvbm5lY3Rf c2VydmVyKHNpZCwgdXNyPU5vbmUpOgorICAgICMgQ2hlY2sgaWYgc2VydmVyIGlzIGFscmVhZHkg Y29ubmVjdGVkIHRoZW4gbm8gbmVlZCB0byByZWNvbm5lY3QgYWdhaW4uCisgICAgc2VydmVyID0g U2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKKyAgICBkcml2ZXIgPSBnZXRf ZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgIG1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlv bl9tYW5hZ2VyKHNpZCkKKyAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKCkKKyAgICB1c2Vy ID0gTm9uZQorICAgIGlmIHVzciBhbmQgbWFuYWdlci51c2VyICE9IHVzcjoKKyAgICAgICAgdXNl ciA9IHVzcgorICAgIGVsc2U6CisgICAgICAgIGlmIGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN1Y2Nlc3M9 MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIlNlcnZlciBjb25uZWN0ZWQuIiksCisg ICAgICAgICAgICAgICAgZGF0YT17fQorICAgICAgICAgICAgKQorCisgICAgICAgIHZpZXcgPSBT Y2hlbWFEaWZmUmVnaXN0cnkuZ2V0X25vZGVfdmlldygnc2VydmVyJykKKyAgICAgICAgcmV0dXJu IHZpZXcuY29ubmVjdChzZXJ2ZXIuc2VydmVyZ3JvdXBfaWQsIHNpZCwgdXNlcj11c2VyKQorCisK IEBibHVlcHJpbnQucm91dGUoCiAgICAgJy9maWx0ZXJfZGlhbG9nLzxpbnQ6dHJhbnNfaWQ+JywK ICAgICBtZXRob2RzPVsiUFVUIl0sIGVuZHBvaW50PSdzZXRfZmlsdGVyX2RhdGEnCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3Nz IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcwpp bmRleCAwMDU0M2ZmLi5iOGMyZDJlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MKQEAgLTMxNSwxMCArMzE1LDYgQEAgaW5w dXQuZWRpdG9yLWNoZWNrYm94OmZvY3VzIHsKICAgcGFkZGluZzogMTBweCAwcHg7CiB9CiAKLS5l ZGl0b3ItdGl0bGUgewotICB3aWR0aDoxMDAlOwotfQotCiAuY29ubmVjdGlvbi1zdGF0dXMtaGlk ZSB7CiAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKIH0KQEAgLTM5NSwzICszOTEsNyBAQCBp bnB1dC5lZGl0b3ItY2hlY2tib3g6Zm9jdXMgewogLmhpZGUtdmVydGljYWwtc2Nyb2xsYmFyIHsK ICAgb3ZlcmZsb3cteTogaGlkZGVuOwogfQorCisubmV3LWNvbm5lY3Rpb24tZGlhbG9nLXN0eWxl IHsKKyAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKaW5kZXggZGRkOWFkNy4uOTM4OWRi NSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxl ZGl0b3IuanMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxl ZGl0b3IuanMKQEAgLTE0LDYgKzE0LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAg ICdqcXVlcnl1aS5wb3NpdGlvbicsICd1bmRlcnNjb3JlJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycs CiAgICdzb3VyY2VzL3BnYWRtaW4nLCAnYmFja2JvbmUnLCAnYnVuZGxlZF9jb2RlbWlycm9yJywg J3NvdXJjZXMvdXRpbHMnLAogICAncGdhZG1pbi5taXNjLmV4cGxhaW4nLAorICAncGdhZG1pbi51 c2VyX21hbmFnZW1lbnQuY3VycmVudF91c2VyJywKICAgJ3NvdXJjZXMvc2VsZWN0aW9uL2dyaWRf c2VsZWN0b3InLAogICAnc291cmNlcy9zZWxlY3Rpb24vYWN0aXZlX2NlbGxfY2FwdHVyZScsCiAg ICdzb3VyY2VzL3NlbGVjdGlvbi9jbGlwYm9hcmQnLApAQCAtMjYsNiArMjcsNyBAQCBkZWZpbmUo J3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnkn LAogICAnc291cmNlcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9odHRwX2Vycm9yX2hhbmRsZXInLAog ICAnc291cmNlcy9zcWxlZGl0b3IvZmlsdGVyX2RpYWxvZycsCisgICdzb3VyY2VzL3NxbGVkaXRv ci9uZXdfY29ubmVjdGlvbl9kaWFsb2cnLAogICAnc291cmNlcy9zcWxlZGl0b3IvZ2VvbWV0cnlf dmlld2VyJywKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvaGlzdG9yeV9jb2xsZWN0aW9u LmpzJywKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeScsCkBAIC01 Miw4ICs1NCw4IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAncGdhZG1pbi50b29s cy51c2VyX21hbmFnZW1lbnQnLAogXSwgZnVuY3Rpb24oCiAgIGdldHRleHQsIHVybF9mb3IsICQs IGpxdWVyeXVpLCBqcXVlcnl1aV9wb3NpdGlvbiwgXywgYWxlcnRpZnksIHBnQWRtaW4sIEJhY2ti b25lLCBjb2RlbWlycm9yLCBwZ2FkbWluVXRpbHMsCi0gIHBnRXhwbGFpbiwgR3JpZFNlbGVjdG9y LCBBY3RpdmVDZWxsQ2FwdHVyZSwgY2xpcGJvYXJkLCBjb3B5RGF0YSwgUmFuZ2VTZWxlY3Rpb25I ZWxwZXIsIGhhbmRsZVF1ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudCwKLSAgWENlbGxTZWxlY3Rpb25N b2RlbCwgc2V0U3RhZ2VkUm93cywgU3FsRWRpdG9yVXRpbHMsIEV4ZWN1dGVRdWVyeSwgaHR0cEVy cm9ySGFuZGxlciwgRmlsdGVySGFuZGxlciwKKyAgcGdFeHBsYWluLCBjdXJyZW50X3VzZXIsIEdy aWRTZWxlY3RvciwgQWN0aXZlQ2VsbENhcHR1cmUsIGNsaXBib2FyZCwgY29weURhdGEsIFJhbmdl U2VsZWN0aW9uSGVscGVyLCBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZlbnQsCisgIFhDZWxs U2VsZWN0aW9uTW9kZWwsIHNldFN0YWdlZFJvd3MsIFNxbEVkaXRvclV0aWxzLCBFeGVjdXRlUXVl cnksIGh0dHBFcnJvckhhbmRsZXIsIEZpbHRlckhhbmRsZXIsIG5ld0Nvbm5lY3Rpb25IYW5kbGVy LAogICBHZW9tZXRyeVZpZXdlciwgaGlzdG9yeUNvbGwsIHF1ZXJ5SGlzdCwgcXVlcnlTb3VyY2Vz LAogICBrZXlib2FyZFNob3J0Y3V0cywgcXVlcnlUb29sQWN0aW9ucywgcXVlcnlUb29sTm90aWZp Y2F0aW9ucywgRGF0YWdyaWQsCiAgIG1vZGlmeUFuaW1hdGlvbiwgY2FsY3VsYXRlUXVlcnlSdW5U aW1lLCBjYWxsUmVuZGVyQWZ0ZXJQb2xsLCBxdWVyeVRvb2xQcmVmLCBxdWVyeVR4blN0YXR1cywg Y3NyZlRva2VuLCBwYW5lbFRpdGxlRnVuYywKQEAgLTg5LDYgKzkxLDkgQEAgZGVmaW5lKCd0b29s cy5xdWVyeXRvb2wnLCBbCiAgICAgICB0aGlzLmxheW91dCA9IG9wdHMubGF5b3V0OwogICAgICAg dGhpcy5zZXRfc2VydmVyX3ZlcnNpb24ob3B0cy5zZXJ2ZXJfdmVyKTsKICAgICAgIHRoaXMudHJp Z2dlcigncGdhZG1pbi1zcWxlZGl0b3I6dmlldzppbml0aWFsaXNlZCcpOworICAgICAgdGhpcy5j b25uZWN0aW9uX2xpc3QgPSBbCisgICAgICAgIHsnc2VydmVyX2dyb3VwJzogbnVsbCwnc2VydmVy JzogbnVsbCwgJ2RhdGFiYXNlJzogbnVsbCwgJ3VzZXInOiBudWxsLCAncm9sZSc6IG51bGwsICd0 aXRsZSc6ICcmbHQ7TmV3IENvbm5lY3Rpb24mZ3Q7J30sCisgICAgICBdOwogICAgIH0sCiAKICAg ICAvLyBCaW5kIGFsbCB0aGUgZXZlbnRzCkBAIC0xNTEsNiArMTU2LDM1IEBAIGRlZmluZSgndG9v bHMucXVlcnl0b29sJywgWwogICAgICAgJ2NsaWNrICNidG4tcm9sbGJhY2snOiAnb25fcm9sbGJh Y2tfdHJhbnNhY3Rpb24nLAogICAgIH0sCiAKKyAgICByZW5kZXJfY29ubmVjdGlvbjogZnVuY3Rp b24oZGF0YV9saXN0KSB7CisgICAgICBpZih0aGlzLmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgewor ICAgICAgICB2YXIgZHJvcGRvd25FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv bm5lY3Rpb25zLWxpc3QnKTsKKyAgICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcn OworICAgICAgICBkYXRhX2xpc3QuZm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4geworICAgICAg ICAgICQoJyNjb25uZWN0aW9ucy1saXN0JykuYXBwZW5kKCc8bGkgY2xhc3M9ImNvbm5lY3Rpb24t bGlzdC1pdGVtIiBkYXRhLWluZGV4PScrIGluZGV4ICsnPjxhIGNsYXNzPSJkcm9wZG93bi1pdGVt IiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Jysgb3B0aW9uLnRpdGxlICsnPC9hPjwvbGk+Jyk7CisK KyAgICAgICAgfSk7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgJCgnLmNvbm5l Y3Rpb24tbGlzdC1pdGVtJykuY2xpY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgc2VsZi5nZXRf Y29ubmVjdGlvbl9kYXRhKHRoaXMpOworICAgICAgICB9KTsKKyAgICAgIH0gZWxzZSB7CisgICAg ICAgICQoJy5jb25uLWluZm8tZGQnKS5oaWRlKCk7CisgICAgICAgICQoJy5lZGl0b3ItdGl0bGUn KS5jc3Moe3BvaW50ZXJFdmVudHM6ICdub25lJ30pOworICAgICAgfQorICAgIH0sCisKKyAgICBn ZXRfY29ubmVjdGlvbl9kYXRhOiBmdW5jdGlvbihldmVudCl7CisgICAgICB2YXIgaW5kZXggPSAk KGV2ZW50KS5hdHRyKCdkYXRhLWluZGV4Jyk7CisgICAgICB2YXIgY29ubmVjdGlvbl9kZXRhaWxz ID0gdGhpcy5jb25uZWN0aW9uX2xpc3RbaW5kZXhdOworICAgICAgaWYoY29ubmVjdGlvbl9kZXRh aWxzLnNlcnZlcl9ncm91cCkgeworICAgICAgICB0aGlzLm9uX2NoYW5nZV9jb25uZWN0aW9uKGNv bm5lY3Rpb25fZGV0YWlscyk7CisgICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLm9uX25ld19j b25uZWN0aW9uKCk7CisgICAgICB9CisKKyAgICB9LAorCiAgICAgcmVmbGVjdFByZWZlcmVuY2Vz OiBmdW5jdGlvbigpIHsKICAgICAgIGxldCBzZWxmID0gdGhpcywKICAgICAgICAgYnJvd3NlciA9 IHBnV2luZG93LmRlZmF1bHQucGdBZG1pbi5Ccm93c2VyLApAQCAtMTk5LDggKzIzMywxNSBAQCBk ZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgIH0pOwogICAgIH0sCiAKLSAgICBzZXRf ZWRpdG9yX3RpdGxlOiBmdW5jdGlvbih0aXRsZSkgewotICAgICAgdGhpcy4kZWwuZmluZCgnLmVk aXRvci10aXRsZScpLnRleHQodGl0bGUpOworICAgIHNldF9lZGl0b3JfdGl0bGU6IGZ1bmN0aW9u KHRpdGxlLCBpc19jb25uZWN0ZWQpIHsKKyAgICAgIGlmKGlzX2Nvbm5lY3RlZCkgeworICAgICAg ICB0aGlzLiRlbC5maW5kKCcuZWRpdG9yLXRpdGxlJykudGV4dCh0aXRsZSk7CisgICAgICAgIHRo aXMucmVuZGVyX2Nvbm5lY3Rpb24odGhpcy5jb25uZWN0aW9uX2xpc3QpOworICAgICAgfSBlbHNl IHsKKyAgICAgICAgdGhpcy4kZWwuZmluZCgnLmVkaXRvci10aXRsZScpLnRleHQodGl0bGUpOwor ICAgICAgICB0aGlzLnJlbmRlcl9jb25uZWN0aW9uKHRoaXMuY29ubmVjdGlvbl9saXN0KTsKKyAg ICAgIH0KKwogICAgIH0sCiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVuZGVy IHRoZSB0ZW1wbGF0ZS4KQEAgLTY4NCw2ICs3MjUsOCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9v bCcsIFsKICAgICAgIHBnQnJvd3Nlci5yZWdpc3Rlcl90b19hY3Rpdml0eV9saXN0ZW5lcihkb2N1 bWVudCwgKCk9PnsKICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnVGltZW91dCcpLCBn ZXR0ZXh0KCdZb3VyIHNlc3Npb24gaGFzIHRpbWVkIG91dCBkdWUgdG8gaW5hY3Rpdml0eS4gUGxl YXNlIGNsb3NlIHRoZSB3aW5kb3cgYW5kIGxvZ2luIGFnYWluLicpKTsKICAgICAgIH0pOworCisg ICAgICBzZWxmLnJlbmRlcl9jb25uZWN0aW9uKHNlbGYuY29ubmVjdGlvbl9saXN0KTsKICAgICB9 LAogCiAgICAgLyogUmVnYXJkaW5nIFNsaWNrR3JpZCB1c2FnZSBpbiByZW5kZXJfZ3JpZCBmdW5j dGlvbi4KQEAgLTE1OTUsNiArMTYzOCwxNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsK ICAgICAgICk7CiAgICAgfSwKIAorICAgIG9uX25ld19jb25uZWN0aW9uOiBmdW5jdGlvbigpIHsK KyAgICAgIHZhciBzZWxmID0gdGhpczsKKworICAgICAgLy8gVHJpZ2dlciB0aGUgc2hvd19maWx0 ZXIgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JDb250cm9sbGVyIGNsYXNzCisgICAgICBzZWxmLmhh bmRsZXIudHJpZ2dlcigKKyAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzaG93X25l d19jb25uZWN0aW9uJywKKyAgICAgICAgc2VsZiwKKyAgICAgICAgc2VsZi5oYW5kbGVyCisgICAg ICApOworICAgIH0sCisKICAgICAvLyBDYWxsYmFjayBmdW5jdGlvbiBmb3IgaW5jbHVkZSBmaWx0 ZXIgYnV0dG9uIGNsaWNrLgogICAgIG9uX2luY2x1ZGVfZmlsdGVyOiBmdW5jdGlvbihldikgewog ICAgICAgdmFyIHNlbGYgPSB0aGlzOwpAQCAtMjAzOCw2ICsyMDkyLDgzIEBAIGRlZmluZSgndG9v bHMucXVlcnl0b29sJywgWwogCiAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4ZWN1dGVSb2xsYmFj ayh0aGlzLmhhbmRsZXIpOwogICAgIH0sCisgICAgb25fY2hhbmdlX2Nvbm5lY3Rpb246IGZ1bmN0 aW9uKGNvbm5lY3Rpb25fZGV0YWlscywgcmVmKSB7CisgICAgICBsZXQgdGl0bGUgPSB0aGlzLiRl bC5maW5kKCcuZWRpdG9yLXRpdGxlJykuaHRtbCgpOworICAgICAgaWYoY29ubmVjdGlvbl9kZXRh aWxzWyd0aXRsZSddICE9IHRpdGxlKSB7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAg ICAgJC5hamF4KHsKKyAgICAgICAgICBhc3luYzogZmFsc2UsCisgICAgICAgICAgdXJsOiB1cmxf Zm9yKCdkYXRhZ3JpZC51cGRhdGVfcXVlcnlfdG9vbF9jb25uZWN0aW9uJywgeworICAgICAgICAg ICAgJ3RyYW5zX2lkJzogc2VsZi50cmFuc0lkLAorICAgICAgICAgICAgJ3NnaWQnOiBjb25uZWN0 aW9uX2RldGFpbHNbJ3NlcnZlcl9ncm91cCddLAorICAgICAgICAgICAgJ3NpZCc6IGNvbm5lY3Rp b25fZGV0YWlsc1snc2VydmVyJ10sCisgICAgICAgICAgICAnZGlkJzogY29ubmVjdGlvbl9kZXRh aWxzWydkYXRhYmFzZSddLAorICAgICAgICAgIH0pLAorICAgICAgICAgIG1ldGhvZDogJ1BPU1Qn LAorICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICAg ZGF0YTogSlNPTi5zdHJpbmdpZnkoY29ubmVjdGlvbl9kZXRhaWxzKSwKKyAgICAgICAgfSkKKyAg ICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgIGlmKHJlcy5zdWNjZXNz KSB7CisgICAgICAgICAgICAgIHNlbGYudHJhbnNJZCA9IHJlcy5kYXRhLnRyYW5faWQ7CisgICAg ICAgICAgICAgIHNlbGYuaGFuZGxlci50cmFuc0lkID0gcmVzLmRhdGEudHJhbl9pZDsKKyAgICAg ICAgICAgICAgc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMgPSB7CisgICAgICAgICAgICAgICAgJ2Rp ZCc6IGNvbm5lY3Rpb25fZGV0YWlsc1snZGF0YWJhc2UnXSwKKyAgICAgICAgICAgICAgICAnaXNf cXVlcnlfdG9vbCc6IHNlbGYuaGFuZGxlci51cmxfcGFyYW1zLmlzX3F1ZXJ5X3Rvb2wsCisgICAg ICAgICAgICAgICAgJ3NlcnZlcl90eXBlJzogc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMuc2VydmVy X3R5cGUsCisgICAgICAgICAgICAgICAgJ3NnaWQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZl cl9ncm91cCddLAorICAgICAgICAgICAgICAgICdzaWQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3Nl cnZlciddLAorICAgICAgICAgICAgICAgICd0aXRsZSc6IGNvbm5lY3Rpb25fZGV0YWlsc1sndGl0 bGUnXSwKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgc2VsZi5zZXRfZWRpdG9yX3Rp dGxlKHNlbGYuaGFuZGxlci51cmxfcGFyYW1zLnRpdGxlKTsKKyAgICAgICAgICAgICAgc2VsZi5o YW5kbGVyLnNldFRpdGxlKHNlbGYuaGFuZGxlci51cmxfcGFyYW1zLnRpdGxlKTsKKyAgICAgICAg ICAgICAgYWxlcnRpZnkuc3VjY2VzcygnY29ubmVjdGVkIHN1Y2Nlc3NmdWxseScpOworICAgICAg ICAgICAgICBpZihyZWYpeworICAgICAgICAgICAgICAgIGxldCBjb25uZWN0aW9uX2RhdGEgPSB7 CisgICAgICAgICAgICAgICAgICAnc2VydmVyX2dyb3VwJzogc2VsZi5oYW5kbGVyLnVybF9wYXJh bXMuc2dpZCwKKyAgICAgICAgICAgICAgICAgICdzZXJ2ZXInOiBjb25uZWN0aW9uX2RldGFpbHNb J3NlcnZlciddLAorICAgICAgICAgICAgICAgICAgJ2RhdGFiYXNlJzogY29ubmVjdGlvbl9kZXRh aWxzWydkYXRhYmFzZSddLAorICAgICAgICAgICAgICAgICAgJ3VzZXInOiBjb25uZWN0aW9uX2Rl dGFpbHNbJ3VzZXInXSwKKyAgICAgICAgICAgICAgICAgICd0aXRsZSc6IGNvbm5lY3Rpb25fZGV0 YWlsc1sndGl0bGUnXSwKKyAgICAgICAgICAgICAgICAgICdyb2xlJzogY29ubmVjdGlvbl9kZXRh aWxzWydyb2xlJ10sCisgICAgICAgICAgICAgICAgICAncGFzc3dvcmQnOiBjb25uZWN0aW9uX2Rl dGFpbHNbJ3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAnaXNfYWxsb3dfbmV3X2Nvbm5l Y3Rpb24nOiB0cnVlLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgc2VsZi5j b25uZWN0aW9uX2xpc3QudW5zaGlmdChjb25uZWN0aW9uX2RhdGEpOworICAgICAgICAgICAgICAg IHNlbGYucmVuZGVyX2Nvbm5lY3Rpb24oc2VsZi5jb25uZWN0aW9uX2xpc3QpOworICAgICAgICAg ICAgICAgIHJlZi5jbG9zZSgpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9KQorICAgICAgICAgIC5mYWlsKGZ1bmN0 aW9uKHhocikgeworICAgICAgICAgICAgaWYoeGhyLnN0YXR1cyA9PSA0MjgpIHsKKyAgICAgICAg ICAgICAgYWxlcnRpZnkuY29ubmVjdFNlcnZlcignQ29ubmVjdCB0byBzZXJ2ZXInLCB4aHIucmVz cG9uc2VKU09OLnJlc3VsdCwgY29ubmVjdGlvbl9kZXRhaWxzWydzZXJ2ZXInXSwgZmFsc2UpOwor ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoeGhyLnJl c3BvbnNlSlNPTlsnZXJyb3Jtc2cnXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKmxl dCB1cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuY29ubmVjdF9zZXJ2ZXJfd2l0aF91c2VyJywgewor ICAgICAgICAgICAgICAnc2lkJzogbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsnc2VydmVyJ10sCisg ICAgICAgICAgICAgICd1c3InOiBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10KKyAgICAg ICAgICAgIH0pOworICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgYXN5bmM6IGZh bHNlLAorICAgICAgICAgICAgICB1cmw6IHVybCwKKyAgICAgICAgICAgICAgaGVhZGVyczogewor ICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCisgICAgICAgICAg ICAgIH0sCisgICAgICAgICAgICB9KS5kb25lKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg QmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNlbGYsIGFy Z3VtZW50cyk7CisgICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9saXN0LmZvckVhY2goZnVu Y3Rpb24ob2JqKXsKKyAgICAgICAgICAgICAgICBpZihvYmouaWQ9PXNlbGYubW9kZWwuY2hhbmdl ZC5zZXJ2ZXIpIHsKKyAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9uYW1lID0gb2Jq Lm5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg IH0pLmZhaWwoZnVuY3Rpb24oeGhyKXt9KTsqLworCisgICAgICAgICAgfSk7CisgICAgICB9Cisg ICAgfSwKICAgfSk7CiAKICAgLyogRGVmaW5pbmcgY29udHJvbGxlciBjbGFzcyBmb3IgZGF0YSBn cmlkLCB3aGljaCBhY3R1YWxseQpAQCAtMjM1Nyw3ICsyNDg4LDE4IEBAIGRlZmluZSgndG9vbHMu cXVlcnl0b29sJywgWwogICAgICAgICAgIH0pOwogCiAgICAgICAgICAgJCgnI2J0bi1jb25uLXN0 YXR1cyBpJykucmVtb3ZlQ2xhc3MoJ29idGFpbmluZy1jb25uJyk7Ci0gICAgICAgICAgc2VsZi5n cmlkVmlldy5zZXRfZWRpdG9yX3RpdGxlKF8udW5lc2NhcGUodXJsX3BhcmFtcy50aXRsZSkpOwor ICAgICAgICAgIHNlbGYuZ3JpZFZpZXcuc2V0X2VkaXRvcl90aXRsZShfLnVuZXNjYXBlKHVybF9w YXJhbXMudGl0bGUpLCB0cnVlKTsKKyAgICAgICAgICBsZXQgY29ubmVjdGlvbl9kYXRhID0gewor ICAgICAgICAgICAgJ3NlcnZlcl9ncm91cCc6IHNlbGYuZ3JpZFZpZXcuaGFuZGxlci51cmxfcGFy YW1zLnNnaWQsCisgICAgICAgICAgICAnc2VydmVyJzogc2VsZi5ncmlkVmlldy5oYW5kbGVyLnVy bF9wYXJhbXMuc2lkLAorICAgICAgICAgICAgJ2RhdGFiYXNlJzogc2VsZi5ncmlkVmlldy5oYW5k bGVyLnVybF9wYXJhbXMuZGlkLAorICAgICAgICAgICAgJ3VzZXInOiBudWxsLAorICAgICAgICAg ICAgJ3JvbGUnOiBudWxsLAorICAgICAgICAgICAgJ3RpdGxlJzogXy51bmVzY2FwZSh1cmxfcGFy YW1zLnRpdGxlKSwKKyAgICAgICAgICAgICdpc19hbGxvd19uZXdfY29ubmVjdGlvbic6IGZhbHNl LAorICAgICAgICAgIH07CisgICAgICAgICAgc2VsZi5ncmlkVmlldy5jb25uZWN0aW9uX2xpc3Qu dW5zaGlmdChjb25uZWN0aW9uX2RhdGEpOworICAgICAgICAgIHNlbGYuZ3JpZFZpZXcucmVuZGVy X2Nvbm5lY3Rpb24oc2VsZi5ncmlkVmlldy5jb25uZWN0aW9uX2xpc3QpOwogICAgICAgICB9Owog CiAgICAgICAgIHBnQnJvd3Nlci5FdmVudHMub24oJ3BnYWRtaW46cXVlcnlfdG9vbDpjb25uZWN0 ZWQ6JyArIHRyYW5zSWQsIGFmdGVyQ29ubik7CkBAIC0yNDUyLDYgKzI1OTQsNyBAQCBkZWZpbmUo J3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6 YnV0dG9uOnNhdmVfZmlsZScsIHNlbGYuX3NhdmVfZmlsZSwgc2VsZik7CiAgICAgICAgIHNlbGYu b24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpkZWxldGVyb3cnLCBzZWxmLl9kZWxldGUsIHNl bGYpOwogICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246c2hvd19maWx0 ZXInLCBzZWxmLl9zaG93X2ZpbHRlciwgc2VsZik7CisgICAgICAgIHNlbGYub24oJ3BnYWRtaW4t c3FsZWRpdG9yOmJ1dHRvbjpzaG93X25ld19jb25uZWN0aW9uJywgc2VsZi5fc2hvd19uZXdfY29u bmVjdGlvbiwgc2VsZik7CiAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRv bjppbmNsdWRlX2ZpbHRlcicsIHNlbGYuX2luY2x1ZGVfZmlsdGVyLCBzZWxmKTsKICAgICAgICAg c2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4Y2x1ZGVfZmlsdGVyJywgc2VsZi5f ZXhjbHVkZV9maWx0ZXIsIHNlbGYpOwogICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRv cjpidXR0b246cmVtb3ZlX2ZpbHRlcicsIHNlbGYuX3JlbW92ZV9maWx0ZXIsIHNlbGYpOwpAQCAt MzYyMiw3ICszNzY1LDYgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgICAg fQogICAgICAgICB9OwogICAgICAgfSwKLQogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHNo b3cgdGhlIGZpbHRlciBpbiB0aGUgdGV4dCBhcmVhLgogICAgICAgX3Nob3dfZmlsdGVyOiBmdW5j dGlvbigpIHsKICAgICAgICAgbGV0IHNlbGYgPSB0aGlzLApAQCAtMzYzNyw3ICszNzc5LDE5IEBA IGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICB9CiAgICAgICAgIEZpbHRlckhh bmRsZXIuZGlhbG9nKHNlbGYsIHJlY29ubmVjdCk7CiAgICAgICB9LAorICAgICAgLy8gVGhpcyBm dW5jdGlvbiB3aWxsIHNob3cgdGhlIG5ldyBjb25uZWN0aW9uLgorICAgICAgX3Nob3dfbmV3X2Nv bm5lY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgc2VsZiA9IHRoaXMsCisgICAgICAg ICAgcmVjb25uZWN0ID0gZmFsc2U7CiAKKyAgICAgICAgLyogV2hlbiBzZXJ2ZXIgaXMgZGlzY29u bmVjdGVkIGFuZCBjb25uZWN0ZWQsIGNvbm5lY3Rpb24gaXMgbG9zdCwKKyAgICAgICAgICogVG8g cmVjb25uZWN0IHBhc3MgdHJ1ZQorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGFyZ3VtZW50cy5s ZW5ndGggPiAwICYmIGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV0gPT0gJ2Nvbm5lY3Qn KSB7CisgICAgICAgICAgcmVjb25uZWN0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBuZXdD b25uZWN0aW9uSGFuZGxlci5kaWFsb2coc2VsZiwgcmVjb25uZWN0KTsKKyAgICAgIH0sCiAgICAg ICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5jbHVkZSB0aGUgZmlsdGVyIGJ5IHNlbGVjdGlvbi4K ICAgICAgIF9pbmNsdWRlX2ZpbHRlcjogZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBzZWxmID0g dGhpcywKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvc2Nz cy9fc3FsZWRpdG9yLnNjc3MgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Nj c3MvX3NxbGVkaXRvci5zY3NzCmluZGV4IGZkMWU1ZDMuLjUzZjI0NDkgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvc2Nzcy9fc3FsZWRpdG9yLnNjc3MKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9zY3NzL19zcWxlZGl0b3Iuc2Nz cwpAQCAtMzAsNiArMzAsMTkgQEAKICAgY29sb3I6ICRzcWwtdGl0bGUtZmc7CiB9CiAKKy5jb25u ZWN0aW9uLWluZm8geworICBiYWNrZ3JvdW5kOiAkc3FsLXRpdGxlLWJnOworICBjb2xvcjogJHNx bC10aXRsZS1mZzsKKyAgd2lkdGg6MTAwJTsKKyAgZGlzcGxheTogaW5oZXJpdDsKK30KKworLmNv bm4taW5mby1kZCB7CisgIHBhZGRpbmctdG9wOiAwLjNlbTsKKyAgcGFkZGluZy1sZWZ0OiAwLjJl bTsKKyAgY3Vyc29yOiBwb2ludGVyOworfQorCiAKICNlZGl0b3ItcGFuZWwgewogICB6LWluZGV4 OiAwOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rf bmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dGVzdHMvdGVzdF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yMGZlM2UzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UucHkKQEAg LTAsMCArMSw5OCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVn cmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0 dXAgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitjbGFzcyBUZXN0TmV3Q29ubmVjdGlvbkRh dGFiYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHRlc3Qg bmV3IGNvbm5lY3Rpb24gZGF0YWJhc2UuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAg KCdOZXcgY29ubmVjdGlvbiBkaWFsb2cnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB1 cmw9Ii9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UvIiwKKyAgICAgICAgICAgICBp c19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxz ZSwKKyAgICAgICAgICAgICBpc19zZXJ2ZXJfY29ubl9yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAg ICAgICB0ZXN0X2RhdGE9e30sCisgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAg ICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgICAgICAgICB9CisgICAgICAgICApKSwKKyAgICAgICAgKCdOZXcgY29ubmVjdGlvbiBk aWFsb2cgY29ubmVjdCBzZXJ2ZXInLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICB1cmw9 Ii9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UvIiwKKyAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwK KyAgICAgICAgICAgICBpc19zZXJ2ZXJfY29ubl9yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAg IHRlc3RfZGF0YT17fSwKKyAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAg ZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgICAgICAgIH0KKyAgICAgICAgICkpLAorICAgICAgICAoJ05ldyBjb25uZWN0aW9uIGRpYWxv ZyBuZWdhdGl2ZScsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD0iL3NxbGVkaXRv ci9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZS8iLAorICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rl c3Q9RmFsc2UsCisgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAg ICAgICBpc19zZXJ2ZXJfY29ubl9yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgIHRlc3RfZGF0 YT17fSwKKyAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgZXhwZWN0ZWRf ZGF0YT17CisgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAg IH0KKyAgICAgICAgICkpLAorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisg ICAgICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgZGVm IGdldF9kYXRhYmFzZShzZWxmKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQo CisgICAgICAgICAgICBzZWxmLnVybCArIHN0cihzZWxmLnNnaWQpICsgJy8nICsgc3RyKHNlbGYu c2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisK KyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAg ICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgc2VsZi5pc19zZXJ2 ZXJfY29ubl9yZXF1aXJlZDoKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQn XSA9IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddCisgICAgICAgICAgICAgICAgc2VydmVyX3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgICAgICAgICAgJy9icm93c2Vy L3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lkKSwK KyAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9kYXRhYmFzZSgpCisgICAgICAgICAg ICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAgICAg ICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29k ZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLmlzX3NlcnZlcl9jb25uX3Jl cXVpcmVkOgorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwYXNzd29yZCddID0gc2VsZi5z ZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10KKyAgICAgICAgICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgICAgICAgICAnL2Jyb3dzZXIvc2VydmVyL2Nv bm5lY3QvezB9L3sxfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaWQpLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICBzZWxmLnNpZCA9IDAKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfZGF0YWJh c2UoKQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNf Y29kZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRf ZGF0YVsnc3RhdHVzX2NvZGUnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9yZXNw b25zZV9jb2RlLCBleHBlY3RlZF9yZXNwb25zZV9jb2RlKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfbmV3X2Nvbm5lY3Rpb25fZGlhbG9nLnB5IGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfbmV3X2Nvbm5lY3Rpb25fZGlh bG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YTQ3ZWYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9uZXdf Y29ubmVjdGlvbl9kaWFsb2cucHkKQEAgLTAsMCArMSw1MCBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKK2ltcG9ydCBqc29uCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisKKworY2xh c3MgVGVzdE5ld0Nvbm5lY3Rpb25EaWFsb2coQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBU aGlzIGNsYXNzIHdpbGwgdGVzdCBuZXcgY29ubmVjdGlvbiBkaWFsb2cuICIiIgorICAgIHNjZW5h cmlvcyA9IFsKKyAgICAgICAgKCdOZXcgY29ubmVjdGlvbiBkaWFsb2cnLAorICAgICAgICAgZGlj dCgKKyAgICAgICAgICAgICB1cmw9Ii9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nLyIs CisgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgIG1vY2tp bmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgaXNfY29ubmVjdF9zZXJ2ZXI9RmFsc2Us CisgICAgICAgICAgICAgdGVzdF9kYXRhPXt9LAorICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwK KyAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICAgICAgICAgfQorICAgICAgICAgKSksCisgICAgXQorCisgICAgZGVm IHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZl ciJdWy0xXVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3Nl cnZlcl9ncm91cCddCisKKyAgICBkZWYgbmV3X2Nvbm5lY3Rpb24oc2VsZik6CisgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2Vs Zi5zZ2lkKSArICcvJyArIHN0cihzZWxmLnNnaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBl PSdodG1sL2pzb24nCisgICAgICAgICkKKworICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6Cisg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYubmV3X2Nvbm5lY3Rpb24oKQorICAgICAgICAgICAg YWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAg ZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUn XQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9uc2VfY29kZSwgZXhw ZWN0ZWRfcmVzcG9uc2VfY29kZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci90ZXN0cy90ZXN0X25ld19jb25uZWN0aW9uX3VzZXIucHkgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9uZXdfY29ubmVjdGlvbl91c2VyLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNmMxMmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9uZXdfY29ubmVjdGlvbl91c2VyLnB5 CkBAIC0wLDAgKzEsOTggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29u Citmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi50ZXN0 X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisKKworY2xhc3MgVGVzdE5ld0Nvbm5lY3Rp b25Vc2VyKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHRlc3Qg bmV3IGNvbm5lY3Rpb24gdXNlci4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ05l dyBjb25uZWN0aW9uIGRpYWxvZycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD0i L3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl91c2VyLyIsCisgICAgICAgICAgICAgaXNfcG9zaXRp dmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9RmFsc2UsCisgICAg ICAgICAgICAgaXNfc2VydmVyX2Nvbm5fcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgdGVz dF9kYXRhPXt9LAorICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICBleHBl Y3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAg ICAgICAgfQorICAgICAgICAgKSksCisgICAgICAgICgnTmV3IGNvbm5lY3Rpb24gZGlhbG9nIGNv bm5lY3Qgc2VydmVyJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdXJsPSIvc3FsZWRp dG9yL25ld19jb25uZWN0aW9uX3VzZXIvIiwKKyAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0 PVRydWUsCisgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAgICAg ICBpc19zZXJ2ZXJfY29ubl9yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgIHRlc3RfZGF0YT17 fSwKKyAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0 YT17CisgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAgIH0K KyAgICAgICAgICkpLAorICAgICAgICAoJ05ldyBjb25uZWN0aW9uIGRpYWxvZyBuZWdhdGl2ZScs CisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD0iL3NxbGVkaXRvci9uZXdfY29ubmVj dGlvbl91c2VyLyIsCisgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAg ICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgIGlzX3NlcnZlcl9j b25uX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgdGVzdF9kYXRhPXt9LAorICAgICAgICAg ICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAg ICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgfQorICAgICAgICAgKSks CisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNpZCA9IHBhcmVu dF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZ2lk ID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCisKKyAgICBkZWYgZ2V0X3VzZShzZWxmKToK KyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVy bCArIHN0cihzZWxmLnNnaWQpICsgJy8nICsgc3RyKHNlbGYuc2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIHJlc3Bv bnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2 ZV90ZXN0OgorICAgICAgICAgICAgaWYgc2VsZi5pc19zZXJ2ZXJfY29ubl9yZXF1aXJlZDoKKyAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVyWydkYl9w YXNzd29yZCddCisgICAgICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdCgKKyAgICAgICAgICAgICAgICAgICAgJy9icm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97 MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lkKSwKKyAgICAgICAgICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAgICAgICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmdldF91c2UoKQorICAgICAgICAgICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSBy ZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9 IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgaWYgc2VsZi5pc19zZXJ2ZXJfY29ubl9yZXF1aXJlZDoKKyAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddCisgICAg ICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAg ICAgICAgICAgICAgJy9icm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2lkKSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KHNlbGYuc2VydmVyKSwKKyAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5zaWQgPSAwCisgICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3VzZSgpCisgICAgICAgICAgICBhY3R1YWxfcmVzcG9u c2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9yZXNw b25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2Nv ZGUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvY29ubmVj dGlvbi5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5 CmluZGV4IDljYjY1YmMuLjgzYzJjMTcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL2Ry aXZlci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZl ci9wc3ljb3BnMi9jb25uZWN0aW9uLnB5CkBAIC0yMSw3ICsyMSw3IEBAIGltcG9ydCBwc3ljb3Bn MgogZnJvbSBmbGFzayBpbXBvcnQgZywgY3VycmVudF9hcHAKIGZyb20gZmxhc2tfYmFiZWxleCBp bXBvcnQgZ2V0dGV4dAogZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQgY3VycmVudF91c2VyCi1m cm9tIHBnYWRtaW4udXRpbHMuY3J5cHRvIGltcG9ydCBkZWNyeXB0Citmcm9tIHBnYWRtaW4udXRp bHMuY3J5cHRvIGltcG9ydCBkZWNyeXB0LCBlbmNyeXB0CiBmcm9tIHBzeWNvcGcyLmV4dGVuc2lv bnMgaW1wb3J0IGVuY29kaW5ncwogCiBpbXBvcnQgY29uZmlnCkBAIC0yMTEsOCArMjExLDE3IEBA IGNsYXNzIENvbm5lY3Rpb24oQmFzZUNvbm5lY3Rpb24pOgogICAgICAgICBwYXNzd29yZCA9IE5v bmUKICAgICAgICAgcGFzc2ZpbGUgPSBOb25lCiAgICAgICAgIG1hbmFnZXIgPSBzZWxmLm1hbmFn ZXIKKyAgICAgICAgZW5jcGFzcyA9IE5vbmUKKyAgICAgICAgaXNfdXBkYXRlX3Bhc3N3b3JkID0g VHJ1ZQorICAgICAgICBjcnlwdF9rZXlfcHJlc2VudCwgY3J5cHRfa2V5ID0gZ2V0X2NyeXB0X2tl eSgpCisKKyAgICAgICAgaWYgJ3VzZXInIGluIGt3YXJncyBhbmQga3dhcmdzWydwYXNzd29yZCdd OgorICAgICAgICAgICAgcGFzc3dvcmQgPSBrd2FyZ3NbJ3Bhc3N3b3JkJ10KKyAgICAgICAgICAg IGt3YXJncy5wb3AoJ3Bhc3N3b3JkJykKKyAgICAgICAgICAgIGlzX3VwZGF0ZV9wYXNzd29yZCA9 IEZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbmNwYXNzID0ga3dhcmdzWydwYXNz d29yZCddIGlmICdwYXNzd29yZCcgaW4ga3dhcmdzIGVsc2UgTm9uZQogCi0gICAgICAgIGVuY3Bh c3MgPSBrd2FyZ3NbJ3Bhc3N3b3JkJ10gaWYgJ3Bhc3N3b3JkJyBpbiBrd2FyZ3MgZWxzZSBOb25l CiAgICAgICAgIHBhc3NmaWxlID0ga3dhcmdzWydwYXNzZmlsZSddIGlmICdwYXNzZmlsZScgaW4g a3dhcmdzIGVsc2UgTm9uZQogICAgICAgICB0dW5uZWxfcGFzc3dvcmQgPSBrd2FyZ3NbJ3R1bm5l bF9wYXNzd29yZCddIGlmICd0dW5uZWxfcGFzc3dvcmQnIGluIFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MgZWxzZSAnJwpAQCAt MjI3LDE2ICsyMzYsMTYgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAg ICAgIGlmIG1hbmFnZXIudXNlX3NzaF90dW5uZWwgPT0gMToKICAgICAgICAgICAgIG1hbmFnZXIu Y2hlY2tfc3NoX3R1bm5lbF9hbGl2ZSgpCiAKLSAgICAgICAgaWYgZW5jcGFzcyBpcyBOb25lOgot ICAgICAgICAgICAgZW5jcGFzcyA9IHNlbGYucGFzc3dvcmQgb3IgZ2V0YXR0cihtYW5hZ2VyLCAn cGFzc3dvcmQnLCBOb25lKQorICAgICAgICBpZiBpc191cGRhdGVfcGFzc3dvcmQ6CisgICAgICAg ICAgICBpZiBlbmNwYXNzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgZW5jcGFzcyA9IHNlbGYu cGFzc3dvcmQgb3IgZ2V0YXR0cihtYW5hZ2VyLCAncGFzc3dvcmQnLCBOb25lKQogCi0gICAgICAg IHNlbGYucGFzc3dvcmQgPSBlbmNwYXNzCisgICAgICAgICAgICBzZWxmLnBhc3N3b3JkID0gZW5j cGFzcwogCiAgICAgICAgICMgUmVzZXQgdGhlIGV4aXN0aW5nIGNvbm5lY3Rpb24gcGFzc3dvcmQK ICAgICAgICAgaWYgc2VsZi5yZWNvbm5lY3RpbmcgaXMgbm90IEZhbHNlOgogICAgICAgICAgICAg c2VsZi5wYXNzd29yZCA9IE5vbmUKIAotICAgICAgICBjcnlwdF9rZXlfcHJlc2VudCwgY3J5cHRf a2V5ID0gZ2V0X2NyeXB0X2tleSgpCiAgICAgICAgIGlmIG5vdCBjcnlwdF9rZXlfcHJlc2VudDoK ICAgICAgICAgICAgIHJhaXNlIENyeXB0S2V5TWlzc2luZygpCiAKQEAgLTI2OSw3ICsyNzgsMTAg QEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAKICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgZGF0YWJhc2UgPSBzZWxmLmRiCi0gICAgICAgICAgICB1c2VyID0gbWFuYWdlci51 c2VyCisgICAgICAgICAgICBpZiAndXNlcicgaW4ga3dhcmdzIGFuZCBrd2FyZ3NbJ3VzZXInXToK KyAgICAgICAgICAgICAgICB1c2VyID0ga3dhcmdzWyd1c2VyJ10KKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgdXNlciA9IG1hbmFnZXIudXNlcgogICAgICAgICAgICAgY29ubl9p ZCA9IHNlbGYuY29ubl9pZAogCiAgICAgICAgICAgICBpbXBvcnQgb3MKQEAgLTMzOCwxMCArMzUw LDEwIEBAIGNsYXNzIENvbm5lY3Rpb24oQmFzZUNvbm5lY3Rpb24pOgogICAgICAgICAgICAgICAg IHNlbGYud2FzQ29ubmVjdGVkID0gRmFsc2UKICAgICAgICAgICAgIHJhaXNlIGUKIAotICAgICAg ICBpZiBzdGF0dXM6CisgICAgICAgIGlmIHN0YXR1cyBhbmQgaXNfdXBkYXRlX3Bhc3N3b3JkOgog ICAgICAgICAgICAgbWFuYWdlci5fdXBkYXRlX3Bhc3N3b3JkKGVuY3Bhc3MpCiAgICAgICAgIGVs c2U6Ci0gICAgICAgICAgICBpZiBub3Qgc2VsZi5yZWNvbm5lY3Rpbmc6CisgICAgICAgICAgICBp ZiBub3Qgc2VsZi5yZWNvbm5lY3RpbmcgYW5kIGlzX3VwZGF0ZV9wYXNzd29yZDoKICAgICAgICAg ICAgICAgICBzZWxmLndhc0Nvbm5lY3RlZCA9IEZhbHNlCiAKICAgICAgICAgcmV0dXJuIHN0YXR1 cywgbXNnCkBAIC0zNTksNyArMzcxLDcgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlv bik6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYuY29ubi5hdXRvY29t bWl0ID0gVHJ1ZQogCi0gICAgZGVmIF9zZXRfcm9sZShzZWxmLCBtYW5hZ2VyLCBjdXIsIGNvbm5f aWQpOgorICAgIGRlZiBfc2V0X3JvbGUoc2VsZiwgbWFuYWdlciwgY3VyLCBjb25uX2lkLCAqKmt3 YXJncyk6CiAgICAgICAgICIiIgogICAgICAgICBTZXQgcm9sZQogICAgICAgICA6cGFyYW0gbWFu YWdlcjoKQEAgLTM2Nyw4ICszNzksMTggQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlv bik6CiAgICAgICAgIDpwYXJhbSBjb25uX2lkOgogICAgICAgICA6cmV0dXJuOgogICAgICAgICAi IiIKLSAgICAgICAgaWYgbWFuYWdlci5yb2xlOgotICAgICAgICAgICAgc3RhdHVzID0gc2VsZi5f ZXhlY3V0ZShjdXIsICJTRVQgUk9MRSBUTyAlcyIsIFttYW5hZ2VyLnJvbGVdKQorICAgICAgICBp c19zZXRfcm9sZSA9IEZhbHNlCisgICAgICAgIHJvbGUgPSBOb25lCisKKyAgICAgICAgaWYgJ3Jv bGUnIGluIGt3YXJncyBhbmQga3dhcmdzWydyb2xlJ106CisgICAgICAgICAgICBpc19zZXRfcm9s ZSA9IFRydWUKKyAgICAgICAgICAgIHJvbGUgPSBrd2FyZ3NbJ3JvbGUnXQorICAgICAgICBlbGlm IG1hbmFnZXIucm9sZToKKyAgICAgICAgICAgIGlzX3NldF9yb2xlID0gVHJ1ZQorICAgICAgICAg ICAgcm9sZSA9IG1hbmFnZXIucm9sZQorCisgICAgICAgIGlmIGlzX3NldF9yb2xlOgorICAgICAg ICAgICAgc3RhdHVzID0gc2VsZi5fZXhlY3V0ZShjdXIsICJTRVQgUk9MRSBUTyAlcyIsIFtyb2xl XSkKIAogICAgICAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAg IHNlbGYuY29ubi5jbG9zZSgpCkBAIC0zODIsNyArNDA0LDcgQEAgY2xhc3MgQ29ubmVjdGlvbihC YXNlQ29ubmVjdGlvbik6CiAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9c3RhdHVzCiAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBcCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIFwKICAgICAgICAgICAg ICAgICAgICAgXygKICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gc2V0dXAgdGhl IHJvbGUgd2l0aCBlcnJvciBtZXNzYWdlOlxuezB9IgogICAgICAgICAgICAgICAgICAgICApLmZv cm1hdChzdGF0dXMpCkBAIC00NDUsNyArNDY3LDcgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29u bmVjdGlvbik6CiAKICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgc3RhdHVzCiAKLSAgICAgICAg aXNfZXJyb3IsIGVycm1zZyA9IHNlbGYuX3NldF9yb2xlKG1hbmFnZXIsIGN1ciwgY29ubl9pZCkK KyAgICAgICAgaXNfZXJyb3IsIGVycm1zZyA9IHNlbGYuX3NldF9yb2xlKG1hbmFnZXIsIGN1ciwg Y29ubl9pZCwgKiprd2FyZ3MpCiAgICAgICAgIGlmIGlzX2Vycm9yOgogICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBlcnJtc2cKIApAQCAtNDkxLDcgKzUxMyw3IEBAIFdIRVJFIGRiLmRhdG5hbWUg PSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAgICAgICAgICAgICAgICAgaWYgbGVuKG1hbmFnZXIu ZGJfaW5mbykgPT0gMToKICAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5kaWQgPSByZXNbJ2Rp ZCddCiAKLSAgICAgICAgc2VsZi5fc2V0X3VzZXJfaW5mbyhjdXIsIG1hbmFnZXIpCisgICAgICAg IHNlbGYuX3NldF91c2VyX2luZm8oY3VyLCBtYW5hZ2VyLCAqKmt3YXJncykKIAogICAgICAgICBz ZWxmLl9zZXRfc2VydmVyX3R5cGVfYW5kX3Bhc3N3b3JkKGt3YXJncywgbWFuYWdlcikKIApAQCAt NDk5LDcgKzUyMSw3IEBAIFdIRVJFIGRiLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIp CiAKICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUKIAotICAgIGRlZiBfc2V0X3VzZXJfaW5mbyhz ZWxmLCBjdXIsIG1hbmFnZXIpOgorICAgIGRlZiBfc2V0X3VzZXJfaW5mbyhzZWxmLCBjdXIsIG1h bmFnZXIsICoqa3dhcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIFNldCB1c2VyIGluZm8uCiAg ICAgICAgIDpwYXJhbSBjdXI6CkBAIC01MTcsNyArNTM5LDcgQEAgV0hFUkUgZGIuZGF0bmFtZSA9 IGN1cnJlbnRfZGF0YWJhc2UoKSIiIikKICAgICAgICAgV0hFUkUKICAgICAgICAgICAgIHJvbG5h bWUgPSBjdXJyZW50X3VzZXIiIiIpCiAKLSAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CisgICAg ICAgIGlmIHN0YXR1cyBpcyBOb25lIGFuZCAndXNlcicgbm90IGluIGt3YXJnczoKICAgICAgICAg ICAgIG1hbmFnZXIudXNlcl9pbmZvID0gZGljdCgpCiAgICAgICAgICAgICBpZiBjdXIucm93Y291 bnQgPiAwOgogICAgICAgICAgICAgICAgIG1hbmFnZXIudXNlcl9pbmZvID0gY3VyLmZldGNobWFu eSgxKVswXQo= --000000000000008ec105b0593e07--