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 1kNqtX-0004zJ-2Q for pgadmin-hackers@arkaria.postgresql.org; Thu, 01 Oct 2020 05:12:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kNqtW-0003sW-0N for pgadmin-hackers@arkaria.postgresql.org; Thu, 01 Oct 2020 05:12:42 +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 1kNqtV-0003sP-EL for pgadmin-hackers@lists.postgresql.org; Thu, 01 Oct 2020 05:12:41 +0000 Received: from mail-yb1-xb41.google.com ([2607:f8b0:4864:20::b41]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kNqtQ-0005VB-Vd for pgadmin-hackers@postgresql.org; Thu, 01 Oct 2020 05:12:40 +0000 Received: by mail-yb1-xb41.google.com with SMTP id k18so3102696ybh.1 for ; Wed, 30 Sep 2020 22:12:36 -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=7Uas1E3H8KCDvl4eBcgUjp0bGoLQn1GcYq4A7I/pv1c=; b=IvwwPh+fCQUusnVAYEuSVtSYAU6F+SoREGENRtTDShRpNm/2BbeSAzjWKQ1Wbv1JJ7 8q0cT1UyghnprGsBHUgzL7XtIl39n2Ad5xPBQEyAMz8REJekekDUaP1CKYMFAhMUmTAK A0nhAOHCkXWah8FuHPjGFmzUmduAysqIG2spY3hqg1uKASec97sPWZaQEntdtn1IjyQs nk4krk59SpuHEGxwXD3eW091PyKrc3WaixfaJpqTTD+Ocvb/f7zcegdZqXwyZh2JjMqm lrFhR/P6yQ7ATMrJqJuguIOIyMre7cYZIe5kzYPtD/QigrVC/OLER78uJoCwk5rqF71q 2EdQ== 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=7Uas1E3H8KCDvl4eBcgUjp0bGoLQn1GcYq4A7I/pv1c=; b=iGAuk/UwYw76QC8qsMEwL++hSmLBKmSGRIEKYILSDLLaQkIpeYi5jPYRtPfRQuEs/T 3OqHp2nGx6DITffLuPh/dc7RwdZop/WG1v1EW3yLG60W6lOl5alwYmTLjuEijap0B0nx vXriXah+G4QA042wrkwAG9N1NwY5fPLFaGlSWEDlnjs44YLWdpoI9OOtOc/M8JxXVYWn TCgf9ciFz3agMo06HkHq98+Qmx0iSGWuRPXQWAIBVQk8WixQsSLiVUx8ssT6M6JL39tn x6AngKXoOrJ4lOUsRfC/lDzR2M/uv7S21A7k41HQoIp+/VITMUqi0vmauaA/uAg+7V7r DWjg== X-Gm-Message-State: AOAM533g87KzU/Cpjq7C3hsbe/J7mv8O4pRsp1qiv98cx5vDqrDRrWPh bvEJikaT2y8Y0AmlHH8BMkTdgTbuHep8YtOQPCmAa9kdsIDM2didrI5epe0UHCDr33jdEtcb68K S33fdUVtYjWy+IQeaVpb5owHfhZXJU74BWY19goSMB+5wVSYqp4vMCxRS3/7VDgFOoTQ1lFbLP1 VEGolt6J9K273DsUP8qdK66S+VM9E3syxYLpMvxD4lg7WtC7dwJoTxRFJQv1raJHNBZg== X-Google-Smtp-Source: ABdhPJwICD4rPm1l8JVNGkySN+rf/v7u5EPR7dyQ6KMGG3uSloK5teG058v7H3IjPbnmWGJDXpKL29aOrCNWWFYn7Ac= X-Received: by 2002:a25:8e05:: with SMTP id p5mr8157085ybl.370.1601529154907; Wed, 30 Sep 2020 22:12:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nikhil Mohite Date: Thu, 1 Oct 2020 10:42:23 +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="000000000000607b8f05b095104f" 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 --000000000000607b8f05b095104f Content-Type: multipart/alternative; boundary="000000000000607b8e05b095104d" --000000000000607b8e05b095104d Content-Type: text/plain; charset="UTF-8" Hi Akshay, I have resolved the sonarQube issues, PFA updated patch for the same. Regards, Nikhil Mohite. On Tue, Sep 29, 2020 at 11:31 AM Akshay Joshi wrote: > Hi Nikhil > > Your patch introduces 1 new Bug and 13 new code smells, please fix those > and resend the patch. > > On Mon, Sep 28, 2020 at 7:31 PM Nikhil Mohite < > nikhil.mohite@enterprisedb.com> wrote: > >> Hi Akshay, >> >> I have resolved code conflict issues and sonarqube issues. >> PFA updated patch. >> >> Regards, >> Nikhil Mohite. >> >> On Mon, Sep 28, 2020 at 5:58 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Nikhil >>> >>> The patch is not applying, rebase, and send it again. Please check your >>> code should not create any new SonarQube issues. >>> >>> On Mon, Sep 28, 2020 at 11:20 AM Nikhil Mohite < >>> nikhil.mohite@enterprisedb.com> wrote: >>> >>>> 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 < >>>> akshay.joshi@enterprisedb.com> 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* >>>>> >>>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> *pgAdmin Hacker | Sr. Software Architect* >>> *EDB Postgres * >>> >>> *Mobile: +91 976-788-8246* >>> >> > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > --000000000000607b8e05b095104d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

I have=C2=A0resolved the= sonarQube issues, PFA updated patch for the same.


Regards,
Nikhil Mohite.


On Tu= e, Sep 29, 2020 at 11:31 AM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0Ni= khil

Your patch introduces 1 new Bug and 13 new code sme= lls, please fix those and resend the patch.

On Mon, Sep 28, 2020 at 7:= 31 PM Nikhil Mohite <nikhil.mohite@enterprisedb.com> wrote:
Hi Akshay,<= br>

I have resolved code conflict issues and sonarqube i= ssues.
PFA updated patch.

Regards,
=
Nikhil Mohite.

On Mon, Sep 28, 2020 at 5:58 PM Akshay Joshi <<= a href=3D"mailto:akshay.joshi@enterprisedb.com" target=3D"_blank">akshay.jo= shi@enterprisedb.com> wrote:
Hi=C2=A0Nikhil

The = patch is not applying, rebase, and send it again. Please check your code sh= ould not create any new SonarQube issues.

On Mon, Sep 28, 2020 at 11:2= 0 AM Nikhil Mohite <nikhil.mohite@enterprisedb.com> wrote:
Hi Akshay,

I have resolved all the review comments and also upda= ted the test cases as per the new implementation.

= PFA updated patch.



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

Following are the initial review comments:
  • Open View/Edit data on any table and click on the same database conne= ction and then click on the Execute button. Got "get_primary_keys() ta= kes 1 positional argument but 2 were given" error.
  • In my opini= on, we should hide the option to change the database connection for View/Ed= it Data.
  • If the user clicks on the same database connection multipl= e times then no need to change the backend connection and transaction id. A= dd validation at the backend, no action required in this case.
  • The = role option is missing from the "connect to server" dialog.
  • <= li>The Password field should not be there on the "connect to server&qu= ot; dialog. Sometimes we saved the password so asking a password every time= is not correct. Check the pgAdmin 3 behavior.Code review still r= emains.

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

    Regarding RM-37= 94 allow the=C2=A0user to change the database connection from an open q= uery tool:
    I have implemented the feature and also added document= ation for it.

    PFA patch.

    --=
    = Software Engineer.
    Mob.No: +91= -7798364578.


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



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



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

    --000000000000607b8e05b095104d-- --000000000000607b8f05b095104f Content-Type: application/octet-stream; name="RM_3794_V5.patch" Content-Disposition: attachment; filename="RM_3794_V5.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfqd2cbc0 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 c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggYWY4NDVlNS4uMzQ2ODBiZSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv X19pbml0X18ucHkKQEAgLTEyNDEsNyArMTI0MSw3IEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGls ZE5vZGVWaWV3KToKICAgICAgICAgICAgIH0KICAgICAgICAgKQogCi0gICAgZGVmIGNvbm5lY3Qo c2VsZiwgZ2lkLCBzaWQpOgorICAgIGRlZiBjb25uZWN0KHNlbGYsIGdpZCwgc2lkLCB1c2VyX25h bWU9Tm9uZSk6CiAgICAgICAgICIiIgogICAgICAgICBDb25uZWN0IHRoZSBTZXJ2ZXIgYW5kIHJl dHVybiB0aGUgY29ubmVjdGlvbiBvYmplY3QuCiAgICAgICAgIFZlcmlmaWNhdGlvbiBQcm9jZXNz IGJlZm9yZSBDb25uZWN0aW9uOgpAQCAtMTM2Myw3ICsxMzYzLDggQEAgY2xhc3MgU2VydmVyTm9k ZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAjIG5vdCBwcm92aWRlZCwgb3IgcGFzc3dvcmQg aGFzIG5vdCBiZWVuIHNhdmVkIGVhcmxpZXIuCiAgICAgICAgIGlmIHByb21wdF9wYXNzd29yZCBv ciBwcm9tcHRfdHVubmVsX3Bhc3N3b3JkOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3Jl c3BvbnNlX2Zvcl9wYXNzd29yZChzZXJ2ZXIsIDQyOCwgcHJvbXB0X3Bhc3N3b3JkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHRfdHVubmVs X3Bhc3N3b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcm9tcHRfdHVubmVsX3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1c2VyPXVzZXJfbmFtZSkKIAogICAgICAgICBzdGF0dXMg PSBUcnVlCiAgICAgICAgIHRyeToKQEAgLTE3OTcsNyArMTc5OCw4IEBAIGNsYXNzIFNlcnZlck5v ZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogCiAgICAgZGVmIGdldF9yZXNwb25zZV9mb3JfcGFzc3dv cmQoc2VsZiwgc2VydmVyLCBzdGF0dXMsIHByb21wdF9wYXNzd29yZD1GYWxzZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHRfdHVubmVsX3Bhc3N3b3JkPUZhbHNlLCBl cnJtc2c9Tm9uZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0X3R1 bm5lbF9wYXNzd29yZD1GYWxzZSwgZXJybXNnPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXNlcj1Ob25lKToKIAogICAgICAgICBpZiBzZXJ2ZXIudXNlX3NzaF90dW5u ZWw6CiAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKApAQCAtMTgyNCw3ICsx ODI2LDcgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAg ICAgIHJlc3VsdD1yZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXJz L3Bhc3N3b3JkLmh0bWwnLAogICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbGFiZWw9c2VydmVy Lm5hbWUsCi0gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lPXNlcnZlci51c2VybmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgdXNlcm5hbWU9dXNlciBpZiB1c2VyIGVsc2Ugc2VydmVyLnVzZXJu YW1lLAogICAgICAgICAgICAgICAgICAgICBlcnJtc2c9ZXJybXNnLAogICAgICAgICAgICAgICAg ICAgICBzZXJ2aWNlPXNlcnZlci5zZXJ2aWNlLAogICAgICAgICAgICAgICAgICAgICBfPWdldHRl eHQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yb2xlcy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3V0aWxzLnB5CmluZGV4IDNhN2VlNTguLjAyOGVlNjQgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVz L3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3Rlc3RzL3V0aWxzLnB5CkBAIC0xNTIsMyArMTUyLDM4IEBAIGRlZiBkZWxl dGVfcm9sZShjb25uZWN0aW9uLCByb2xlX25hbWVzKToKICAgICAgICAgZXhjZXB0aW9uID0gIkVy cm9yIHdoaWxlIGRlbGV0aW5nIHJvbGU6ICVzOiBsaW5lOiVzICVzIiAlICgKICAgICAgICAgICAg IGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5vLCBleGNlcHRpb24pCiAgICAg ICAgIHByaW50KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQorCisKK2RlZiBjcmVhdGVfcm9s ZV93aXRoX3Bhc3N3b3JkKHNlcnZlciwgcm9sZV9uYW1lLCByb2xlX3Bhc3N3b3JkKToKKyAgICAi IiIKKyAgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGUgdGhlIHJvbGUuCisgICAgIDpwYXJhbSBzZXJ2 ZXI6CisgICAgIDpwYXJhbSByb2xlX25hbWU6CisgICAgIDpwYXJhbSByb2xlX3Bhc3N3b3JkOgor ICAgICA6cmV0dXJuOgorICAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1 dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hv c3QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsncG9ydCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29y KCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAiQ1JFQVRFIFJPTEUg JXMgTE9HSU4gUEFTU1dPUkQgJyVzJyIgJSAocm9sZV9uYW1lLCByb2xlX3Bhc3N3b3JkKSkKKyAg ICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAjIEdldCAnb2lkJyBmcm9tIG5ld2x5 IGNyZWF0ZWQgdGFibGVzcGFjZQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgKKyAgICAgICAg ICAgICJTRUxFQ1QgcHIub2lkIGZyb20gcGdfY2F0YWxvZy5wZ19yb2xlcyBwciBXSEVSRSBwci5y b2xuYW1lPSclcyciICUKKyAgICAgICAgICAgIHJvbGVfbmFtZSkKKyAgICAgICAgb2lkID0gcGdf Y3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgcm9sZV9pZCA9ICcnCisgICAgICAgIGlmIG9pZDoK KyAgICAgICAgICAgIHJvbGVfaWQgPSBvaWRbMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgp CisgICAgICAgIHJldHVybiByb2xlX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRp b246CisgICAgICAgIGV4Y2VwdGlvbiA9ICJFcnJvciB3aGlsZSBkZWxldGluZyByb2xlOiAlczog bGluZTolcyAlcyIgJSAoCisgICAgICAgICAgICBmaWxlX25hbWUsIHN5cy5leGNfdHJhY2ViYWNr LnRiX2xpbmVubywgZXhjZXB0aW9uKQorICAgICAgICBwcmludChleGNlcHRpb24sIGZpbGU9c3lz LnN0ZGVycikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21vZGVsL19faW5pdF9fLnB5IGIvd2Vi L3BnYWRtaW4vbW9kZWwvX19pbml0X18ucHkKaW5kZXggOTc2ZTk2Mi4uYzNmZGFmMyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vbW9kZWwvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vbW9k ZWwvX19pbml0X18ucHkKQEAgLTk1LDYgKzk1LDE1IEBAIGNsYXNzIFNlcnZlckdyb3VwKGRiLk1v ZGVsKToKICAgICBuYW1lID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1GYWxz ZSkKICAgICBfX3RhYmxlX2FyZ3NfXyA9IChkYi5VbmlxdWVDb25zdHJhaW50KCd1c2VyX2lkJywg J25hbWUnKSwpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2VyaWFsaXplKHNlbGYpOgorICAg ICAgICAiIiJSZXR1cm4gb2JqZWN0IGRhdGEgaW4gZWFzaWx5IHNlcmlhbGl6YWJsZSBmb3JtYXQi IiIKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICdpZCc6IHNlbGYuaWQsCisgICAgICAg ICAgICAndXNlcl9pZCc6IHNlbGYudXNlcl9pZCwKKyAgICAgICAgICAgICduYW1lJzogc2VsZi5u YW1lLAorICAgICAgICB9CisKIAogY2xhc3MgU2VydmVyKGRiLk1vZGVsKToKICAgICAiIiJEZWZp bmUgYSByZWdpc3RlcmVkIFBvc3RncmVzIHNlcnZlciIiIgpAQCAtMTc2LDYgKzE4NSw0NCBAQCBj bGFzcyBTZXJ2ZXIoZGIuTW9kZWwpOgogICAgIHR1bm5lbF9wYXNzd29yZCA9IGRiLkNvbHVtbihk Yi5TdHJpbmcoNjQpLCBudWxsYWJsZT1UcnVlKQogICAgIHNoYXJlZCA9IGRiLkNvbHVtbihkYi5C b29sZWFuKCksIG51bGxhYmxlPUZhbHNlKQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNlcmlh bGl6ZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIG9iamVjdCBkYXRhIGluIGVhc2lseSBzZXJp YWxpemFibGUgZm9ybWF0IiIiCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiaWQiOiBz ZWxmLmlkLAorICAgICAgICAgICAgInVzZXJfaWQiOiBzZWxmLnVzZXJfaWQsCisgICAgICAgICAg ICAic2VydmVyZ3JvdXBfaWQiOiBzZWxmLnNlcnZlcmdyb3VwX2lkLAorICAgICAgICAgICAgIm5h bWUiOiBzZWxmLm5hbWUsCisgICAgICAgICAgICAiaG9zdCI6IHNlbGYuaG9zdCwKKyAgICAgICAg ICAgICJob3N0YWRkciI6IHNlbGYuaG9zdGFkZHIsCisgICAgICAgICAgICAicG9ydCI6IHNlbGYu cG9ydCwKKyAgICAgICAgICAgICJtYWludGVuYW5jZV9kYiI6IHNlbGYubWFpbnRlbmFuY2VfZGIs CisgICAgICAgICAgICAidXNlcm5hbWUiOiBzZWxmLnVzZXJuYW1lLAorICAgICAgICAgICAgInBh c3N3b3JkIjogc2VsZi5wYXNzd29yZCwKKyAgICAgICAgICAgICJzYXZlX3Bhc3N3b3JkIjogc2Vs Zi5zYXZlX3Bhc3N3b3JkLAorICAgICAgICAgICAgInJvbGUiOiBzZWxmLnJvbGUsCisgICAgICAg ICAgICAic3NsX21vZGUiOiBzZWxmLnNzbF9tb2RlLAorICAgICAgICAgICAgImNvbW1lbnQiOiBz ZWxmLmNvbW1lbnQsCisgICAgICAgICAgICAiZGlzY292ZXJ5X2lkIjogc2VsZi5kaXNjb3Zlcnlf aWQsCisgICAgICAgICAgICAiZGJfcmVzIjogc2VsZi5kYl9yZXMsCisgICAgICAgICAgICAicGFz c2ZpbGUiOiBzZWxmLnBhc3NmaWxlLAorICAgICAgICAgICAgInNzbGNlcnQiOiBzZWxmLnNzbGNl cnQsCisgICAgICAgICAgICAic3Nsa2V5Ijogc2VsZi5zc2xrZXksCisgICAgICAgICAgICAic3Ns cm9vdGNlcnQiOiBzZWxmLnNzbHJvb3RjZXJ0LAorICAgICAgICAgICAgInNzbGNybCI6IHNlbGYu c3NsY3JsLAorICAgICAgICAgICAgInNzbGNvbXByZXNzaW9uIjogc2VsZi5zc2xjb21wcmVzc2lv biwKKyAgICAgICAgICAgICJiZ2NvbG9yIjogc2VsZi5iZ2NvbG9yLAorICAgICAgICAgICAgImZn Y29sb3IiOiBzZWxmLmZnY29sb3IsCisgICAgICAgICAgICAic2VydmljZSI6IHNlbGYuc2Vydmlj ZSwKKyAgICAgICAgICAgICJjb25uZWN0X3RpbWVvdXQiOiBzZWxmLmNvbm5lY3RfdGltZW91dCwK KyAgICAgICAgICAgICJ1c2Vfc3NoX3R1bm5lbCI6IHNlbGYudXNlX3NzaF90dW5uZWwsCisgICAg ICAgICAgICAidHVubmVsX2hvc3QiOiBzZWxmLnR1bm5lbF9ob3N0LAorICAgICAgICAgICAgInR1 bm5lbF9wb3J0Ijogc2VsZi50dW5uZWxfcG9ydCwKKyAgICAgICAgICAgICJ0dW5uZWxfYXV0aGVu dGljYXRpb24iOiBzZWxmLnR1bm5lbF9hdXRoZW50aWNhdGlvbiwKKyAgICAgICAgICAgICJ0dW5u ZWxfaWRlbnRpdHlfZmlsZSI6IHNlbGYudHVubmVsX2lkZW50aXR5X2ZpbGUsCisgICAgICAgICAg ICAidHVubmVsX3Bhc3N3b3JkIjogc2VsZi50dW5uZWxfcGFzc3dvcmQKKyAgICAgICAgfQorCiAK IGNsYXNzIE1vZHVsZVByZWZlcmVuY2UoZGIuTW9kZWwpOgogICAgICIiIkRlZmluZSBhIHByZWZl cmVuY2VzIHRhYmxlIGZvciBhbnkgbW9kdWxlcy4iIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nLmpzIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9kaWFsb2cuanMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZjZDM3NAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nLmpzCkBA IC0wLDAgKzEsMjYyIEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0 dGV4dCc7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOworaW1wb3J0ICQg ZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBBbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0aWZ5anMn OworaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCBCYWNrZm9y bSBmcm9tICdwZ2FkbWluLmJhY2tmb3JtJzsKK2ltcG9ydCBuZXdDb25uZWN0aW9uRGlhbG9nTW9k ZWwgZnJvbSAnc291cmNlcy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nX21vZGVsJzsK KworCitsZXQgTmV3Q29ubmVjdGlvbkRpYWxvZyA9IHsKKyAgJ2RpYWxvZyc6IGZ1bmN0aW9uKGhh bmRsZXIsIHJlY29ubmVjdCkgeworICAgIGxldCB1cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuZ2V0 X25ld19jb25uZWN0aW9uX2RhdGEnLCB7CisgICAgICAnc2lkJzogaGFuZGxlci51cmxfcGFyYW1z LnNpZCwKKyAgICAgICdzZ2lkJzogaGFuZGxlci51cmxfcGFyYW1zLnNnaWQsCisgICAgfSk7CisK KyAgICBpZihyZWNvbm5lY3QpIHsKKyAgICAgIHVybCArPSAnP2Nvbm5lY3Q9MSc7CisgICAgfQor CisgICAgbGV0IHRpdGxlID0gZ2V0dGV4dCgnQ29ubmVjdCB0byBzZXJ2ZXInKTsKKworICAgICQu YWpheCh7CisgICAgICB1cmw6IHVybCwKKyAgICAgIGhlYWRlcnM6IHsKKyAgICAgICAgJ0NhY2hl LUNvbnRyb2wnIDogJ25vLWNhY2hlJywKKyAgICAgIH0sCisgICAgfSkuZG9uZShmdW5jdGlvbiAo cmVzKSB7CisgICAgICBsZXQgcmVzcG9uc2UgPSByZXMuZGF0YS5yZXN1bHQ7CisgICAgICByZXNw b25zZS5kYXRhYmFzZV9saXN0ID0gW107CisgICAgICByZXNwb25zZS51c2VyX2xpc3QgPSBbXTsK KyAgICAgIGlmIChBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9nKSB7CisgICAgICAgIGRlbGV0 ZSBBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9nOworICAgICAgfQorCisgICAgICAvLyBDcmVh dGUgRGlhbG9nCisgICAgICBBbGVydGlmeS5kaWFsb2coJ25ld0Nvbm5lY3Rpb25EaWFsb2cnLCBm dW5jdGlvbiBmYWN0b3J5KCkgeworICAgICAgICBsZXQgJGNvbnRhaW5lciA9ICQoJzxkaXYgY2xh c3M9XCduZXctY29ubmVjdGlvbi1kaWFsb2dcJz48L2Rpdj4nKTsKKyAgICAgICAgcmV0dXJuIHsK KyAgICAgICAgICBtYWluOiBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgICAgICB0aGlzLm1z ZyA9IG1lc3NhZ2U7CisgICAgICAgICAgfSwKKyAgICAgICAgICBidWlsZDogZnVuY3Rpb24oKSB7 CisgICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmNvbnRlbnQuYXBwZW5kQ2hpbGQoJGNvbnRhaW5l ci5nZXQoMCkpOworICAgICAgICAgICAgQWxlcnRpZnkucGdEaWFsb2dCdWlsZC5hcHBseSh0aGlz KTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHNldHVwOiBmdW5jdGlvbigpeworICAgICAgICAg ICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgYnV0dG9uczogWworICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgIHRleHQ6ICcnLAorICAgICAgICAgICAgICAgICAga2V5OiAxMTIs CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLXByaW1hcnktaWNvbiBwdWxs LWxlZnQgZmEgZmEtcXVlc3Rpb24gcGctYWxlcnRpZnktaWNvbi1idXR0b24nLAorICAgICAgICAg ICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2RpYWxvZ19oZWxw JywKKyAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsCisgICAgICAgICAgICAgICAg ICAgIGxhYmVsOiBnZXR0ZXh0KCdIZWxwJyksCisgICAgICAgICAgICAgICAgICAgICdhcmlhLWxh YmVsJzogZ2V0dGV4dCgnSGVscCcpLAorICAgICAgICAgICAgICAgICAgICB1cmw6IHVybF9mb3Io J2hlbHAuc3RhdGljJywgeworICAgICAgICAgICAgICAgICAgICAgICdmaWxlbmFtZSc6ICdxdWVy eV90b29sLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgICAg IH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwKKyAgICAgICAgICAgICAgICAgIGtleTogMjcs CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLXNlY29uZGFyeSBmYSBmYS10 aW1lcyBwZy1hbGVydGlmeS1idXR0b24nLAorICAgICAgICAgICAgICAgICAgJ2RhdGEtYnRuLW5h bWUnOiAnY2FuY2VsJywKKyAgICAgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgICB0 ZXh0OiBnZXR0ZXh0KCdPSycpLAorICAgICAgICAgICAgICAgICAga2V5OiAxMywKKyAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4tcHJpbWFyeSBmYSBmYS1jaGVjayBwZy1hbGVy dGlmeS1idXR0b24nLAorICAgICAgICAgICAgICAgICAgJ2RhdGEtYnRuLW5hbWUnOiAnb2snLAor ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgIC8vIFNl dCBvcHRpb25zIGZvciBkaWFsb2cKKyAgICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAg ICAgICAgIHRpdGxlOiB0aXRsZSwKKyAgICAgICAgICAgICAgICAvL2Rpc2FibGUgYm90aCBwYWRk aW5nIGFuZCBvdmVyZmxvdyBjb250cm9sLgorICAgICAgICAgICAgICAgIHBhZGRpbmc6ICExLAor ICAgICAgICAgICAgICAgIG92ZXJmbG93OiAhMSwKKyAgICAgICAgICAgICAgICBtb2RlbDogMCwK KyAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsCisgICAgICAgICAgICAgICAgbWF4aW1p emFibGU6IGZhbHNlLAorICAgICAgICAgICAgICAgIHBpbm5hYmxlOiBmYWxzZSwKKyAgICAgICAg ICAgICAgICBjbG9zYWJsZUJ5RGltbWVyOiBmYWxzZSwKKyAgICAgICAgICAgICAgICBtb2RhbDog ZmFsc2UsCisgICAgICAgICAgICAgICAgYXV0b1Jlc2V0OiBmYWxzZSwKKyAgICAgICAgICAgICAg ICBjbG9zYWJsZTogdHJ1ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH07CisgICAg ICAgICAgfSwKKyAgICAgICAgICBwcmVwYXJlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGxl dCBzZWxmID0gdGhpczsKKyAgICAgICAgICAgICRjb250YWluZXIuaHRtbCgnJyk7CisgICAgICAg ICAgICAvLyBEaXNhYmxlIE9rIGJ1dHRvbgorICAgICAgICAgICAgdGhpcy5fX2ludGVybmFsLmJ1 dHRvbnNbMl0uZWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAgICAgICAgIC8vIFN0YXR1 cyBiYXIKKyAgICAgICAgICAgIHRoaXMuc3RhdHVzQmFyID0gJCgKKyAgICAgICAgICAgICAgJzxk aXYgY2xhc3M9XCdwZy1wcm9wLXN0YXR1cy1iYXIgcGctZWwteHMtMTIgZC1ub25lXCc+JyArCisg ICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJlcnJvci1pbi1mb290ZXIiPiAnICsKKyAgICAgICAg ICAgICcgICAgPGRpdiBjbGFzcz0iZC1mbGV4IHB4LTIgcHktMSI+ICcgKworICAgICAgICAgICAg JyAgICAgIDxkaXYgY2xhc3M9InByLTIiPiAnICsKKyAgICAgICAgICAgICcgICAgICAgIDxpIGNs YXNzPSJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWRhbmdlciIgYXJpYS1oaWRkZW49 InRydWUiPjwvaT4gJyArCisgICAgICAgICAgICAnICAgICAgPC9kaXY+ICcgKworICAgICAgICAg ICAgJyAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0LXRleHQiIHJvbGU9ImFsZXJ0Ij48L2Rpdj4gJyAr CisgICAgICAgICAgICAnICAgIDwvZGl2PiAnICsKKyAgICAgICAgICAgICcgIDwvZGl2PiAnICsK KyAgICAgICAgICAgICc8L2Rpdj4nKS5hcHBlbmRUbygkY29udGFpbmVyKTsKKworICAgICAgICAg ICAgLy8gVG8gc2hvdyBwcm9ncmVzcyBvbiBmaWx0ZXIgU2F2aW5nL1VwZGF0aW5nIG9uIEFKQVgK KyAgICAgICAgICAgIHRoaXMuc2hvd05ld0Nvbm5lY3Rpb25Qcm9ncmVzcyA9ICQoCisgICAgICAg ICAgICAgIGA8ZGl2IGlkPSJzaG93X2ZpbHRlcl9wcm9ncmVzcyIgY2xhc3M9InBnLXNwLWNvbnRh aW5lciBzcWwtZWRpdG9yLWJ1c3ktZmV0Y2hpbmcgZC1ub25lIj4KKyAgICAgICAgICAgICAgICA8 ZGl2IGNsYXNzPSJwZy1zcC1jb250ZW50Ij4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz cz0icm93Ij48ZGl2IGNsYXNzPSJjb2wtMTIgcGctc3AtaWNvbiBzcWwtZWRpdG9yLWJ1c3ktaWNv biI+PC9kaXY+PC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+PGRp diBjbGFzcz0iY29sLTEyIHBnLXNwLXRleHQgc3FsLWVkaXRvci1idXN5LXRleHQiPmAgKyBnZXR0 ZXh0KCdMb2FkaW5nIGRhdGEuLi4nKSArIGA8L2Rpdj48L2Rpdj4KKyAgICAgICAgICAgICAgICA8 L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PmAKKyAgICAgICAgICAgICkuYXBwZW5kVG8oJGNvbnRh aW5lcik7CisgICAgICAgICAgICAkKAorICAgICAgICAgICAgICBzZWxmLnNob3dOZXdDb25uZWN0 aW9uUHJvZ3Jlc3NbMF0KKyAgICAgICAgICAgICkucmVtb3ZlQ2xhc3MoJ2Qtbm9uZScpOworCisg ICAgICAgICAgICBzZWxmLm5ld0Nvbm5Db2xsZWN0aW9uTW9kZWwgPSBuZXdDb25uZWN0aW9uRGlh bG9nTW9kZWwocmVzcG9uc2UsIGhhbmRsZXIudXJsX3BhcmFtcy5zZ2lkLCBoYW5kbGVyLnVybF9w YXJhbXMuc2lkKTsKKyAgICAgICAgICAgIGxldCBmaWVsZHMgPSBCYWNrZm9ybS5nZW5lcmF0ZVZp ZXdTY2hlbWEobnVsbCwgc2VsZi5uZXdDb25uQ29sbGVjdGlvbk1vZGVsLCAnY3JlYXRlJywgbnVs bCwgbnVsbCwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGxldCB2aWV3ID0gdGhpcy52aWV3ID0gbmV3 IEJhY2tmb3JtLkRpYWxvZyh7CisgICAgICAgICAgICAgIGVsOiAnPGRpdj48L2Rpdj4nLAorICAg ICAgICAgICAgICBtb2RlbDogc2VsZi5uZXdDb25uQ29sbGVjdGlvbk1vZGVsLAorICAgICAgICAg ICAgICBzY2hlbWE6IGZpZWxkcywKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAkKHRo aXMuZWxlbWVudHMuYm9keS5jaGlsZE5vZGVzWzBdKS5hZGRDbGFzcygKKyAgICAgICAgICAgICAg J2FsZXJ0aWZ5X3Rvb2xzX2RpYWxvZ19wcm9wZXJ0aWVzIG9ial9wcm9wZXJ0aWVzJworICAgICAg ICAgICAgKTsKKworICAgICAgICAgICAgJGNvbnRhaW5lci5hcHBlbmQodmlldy5yZW5kZXIoKS4k ZWwpOworCisgICAgICAgICAgICAvLyBFbmFibGUvZGlzYWJsZSBzYXZlIGJ1dHRvbiBhbmQgc2hv dy9oaWRlIHN0YXR1c2JhciBiYXNlZCBvbiBzZXNzaW9uCisgICAgICAgICAgICB2aWV3Lmxpc3Rl blRvKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246c3RhcnQnLCBmdW5jdGlvbigpIHsKKyAg ICAgICAgICAgICAgdmlldy5saXN0ZW5Ubyh2aWV3Lm1vZGVsLCAncGdhZG1pbi1zZXNzaW9uOmlu dmFsaWQnLCBmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c0Jhci5y ZW1vdmVDbGFzcygnZC1ub25lJyk7CisgICAgICAgICAgICAgICAgJChzZWxmLnN0YXR1c0Jhci5m aW5kKCcuYWxlcnQtdGV4dCcpKS5odG1sKG1zZyk7CisgICAgICAgICAgICAgICAgLy8gRGlzYWJs ZSBPa2F5IGJ1dHRvbgorICAgICAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbC5idXR0b25zWzJd LmVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg ICAgICB2aWV3Lmxpc3RlblRvKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246dmFsaWQnLCBm dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXR1c0Jhci5hZGRDbGFzcygnZC1u b25lJyk7CisgICAgICAgICAgICAgICAgJChzZWxmLnN0YXR1c0Jhci5maW5kKCcuYWxlcnQtdGV4 dCcpKS5odG1sKCcnKTsKKyAgICAgICAgICAgICAgICAvLyBFbmFibGUgT2theSBidXR0b24KKyAg ICAgICAgICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1syXS5lbGVtZW50LmRpc2FibGVk ID0gZmFsc2U7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAg ICAgIHZpZXcubGlzdGVuVG8odmlldy5tb2RlbCwgJ3BnYWRtaW4tc2Vzc2lvbjpzdG9wJywgZnVu Y3Rpb24oKSB7CisgICAgICAgICAgICAgIHZpZXcuc3RvcExpc3RlbmluZyh2aWV3Lm1vZGVsLCAn cGdhZG1pbi1zZXNzaW9uOmludmFsaWQnKTsKKyAgICAgICAgICAgICAgdmlldy5zdG9wTGlzdGVu aW5nKHZpZXcubW9kZWwsICdwZ2FkbWluLXNlc3Npb246dmFsaWQnKTsKKyAgICAgICAgICAgIH0p OworCisgICAgICAgICAgICAvLyBTdGFydHMgbW9uaXRvcmluZyBjaGFuZ2VzIHRvIG1vZGVsCisg ICAgICAgICAgICB2aWV3Lm1vZGVsLnN0YXJ0TmV3U2Vzc2lvbigpOworCisgICAgICAgICAgICAv LyBIaWRlIFByb2dyZXNzIC4uLgorICAgICAgICAgICAgJCgKKyAgICAgICAgICAgICAgc2VsZi5z aG93TmV3Q29ubmVjdGlvblByb2dyZXNzWzBdCisgICAgICAgICAgICApLmFkZENsYXNzKCdkLW5v bmUnKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihlKSB7Cisg ICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CisgICAgICAgICAgICBpZiAoZS5idXR0b24uZWxl bWVudC5uYW1lID09ICdkaWFsb2dfaGVscCcpIHsKKyAgICAgICAgICAgICAgZS5jYW5jZWwgPSB0 cnVlOworICAgICAgICAgICAgICBwZ0FkbWluLkJyb3dzZXIuc2hvd0hlbHAoZS5idXR0b24uZWxl bWVudC5uYW1lLCBlLmJ1dHRvbi5lbGVtZW50LmdldEF0dHJpYnV0ZSgndXJsJyksCisgICAgICAg ICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg IH0gZWxzZSBpZiAoZS5idXR0b25bJ2RhdGEtYnRuLW5hbWUnXSA9PT0gJ29rJykgeworICAgICAg ICAgICAgICBlLmNhbmNlbCA9IHRydWU7IC8vIERvIG5vdCBjbG9zZSBkaWFsb2cKKyAgICAgICAg ICAgICAgbGV0IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWwgPSB0aGlzLm5ld0Nvbm5Db2xsZWN0aW9u TW9kZWwudG9KU09OKCk7CisKKyAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkX2RhdGFiYXNlX25h bWUgPSBudWxsOworICAgICAgICAgICAgICByZXNwb25zZS5kYXRhYmFzZV9saXN0LmZvckVhY2go ZnVuY3Rpb24oZGF0YSl7CisgICAgICAgICAgICAgICAgaWYobmV3Q29ubkNvbGxlY3Rpb25Nb2Rl bFsnZGF0YWJhc2UnXSA9PSBkYXRhWyd2YWx1ZSddKSB7CisgICAgICAgICAgICAgICAgICBzZWxl Y3RlZF9kYXRhYmFzZV9uYW1lID0gZGF0YVsnbGFiZWwnXTsKKyAgICAgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0pOworICAgICAg ICAgICAgICBsZXQgdGFiX3RpdGxlID0gJyc7CisgICAgICAgICAgICAgIGlmKG5ld0Nvbm5Db2xs ZWN0aW9uTW9kZWxbJ3JvbGUnXSkgeworICAgICAgICAgICAgICAgIHRhYl90aXRsZSA9IHNlbGVj dGVkX2RhdGFiYXNlX25hbWUgKyAnLycgKyBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydyb2xlJ10g KyAnQCcgKyByZXNwb25zZS5zZXJ2ZXJfbmFtZTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICB0YWJfdGl0bGUgPSBzZWxlY3RlZF9kYXRhYmFzZV9uYW1lICsgJy8nICsg bmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsndXNlciddICsgJ0AnICsgcmVzcG9uc2Uuc2VydmVyX25h bWU7CisgICAgICAgICAgICAgICAgbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsncm9sZSddID0gbnVs bDsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIGxldCBpc19jcmVhdGVfY29ubmVj dGlvbiA9IHRydWU7CisKKyAgICAgICAgICAgICAgaGFuZGxlci5ncmlkVmlldy5jb25uZWN0aW9u X2xpc3QuZm9yRWFjaChmdW5jdGlvbihjb25uZWN0aW9uX2RhdGEpeworICAgICAgICAgICAgICAg IGlmKHBhcnNlSW50KGNvbm5lY3Rpb25fZGF0YVsnc2VydmVyJ10pID09IG5ld0Nvbm5Db2xsZWN0 aW9uTW9kZWxbJ3NlcnZlciddCisgICAgICAgICAgICAgICAgJiYgcGFyc2VJbnQoY29ubmVjdGlv bl9kYXRhWydkYXRhYmFzZSddKSA9PSBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydkYXRhYmFzZSdd CisgICAgICAgICAgICAgICAgJiYgY29ubmVjdGlvbl9kYXRhWyd1c2VyJ10gPT0gbmV3Q29ubkNv bGxlY3Rpb25Nb2RlbFsndXNlciddICYmIGNvbm5lY3Rpb25fZGF0YVsncm9sZSddID09IG5ld0Nv bm5Db2xsZWN0aW9uTW9kZWxbJ3JvbGUnXSkgeworICAgICAgICAgICAgICAgICAgaXNfY3JlYXRl X2Nvbm5lY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgIC8vIGJyZWFrIGZvciBsb29w IGJ5IHJldHVybiBmYWxzZS4KKyAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZih0YWJfdGl0bGUgPT0gY29ubmVjdGlv bl9kYXRhWyd0aXRsZSddKSB7CisgICAgICAgICAgICAgICAgICBpc19jcmVhdGVfY29ubmVjdGlv biA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIGlmKCFpc19jcmVhdGVfY29u bmVjdGlvbikgeworICAgICAgICAgICAgICAgIGxldCBlcnJtc2cgPSAnQ29ubmVjdGlvbiB3aXRo IHRoaXMgY29uZmlndXJhdGlvbiBhbHJlYWR5IHByZXNlbnQuJzsKKyAgICAgICAgICAgICAgICBB bGVydGlmeS5pbmZvKGVycm1zZyk7CisgICAgICAgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAg ICAgICBsZXQgY29ubmVjdGlvbl9kZXRhaWxzID0geworICAgICAgICAgICAgICAgICAgJ3NlcnZl cl9ncm91cCc6IGhhbmRsZXIuZ3JpZFZpZXcuaGFuZGxlci51cmxfcGFyYW1zLnNnaWQsCisgICAg ICAgICAgICAgICAgICAnc2VydmVyJzogbmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsnc2VydmVyJ10s CisgICAgICAgICAgICAgICAgICAnZGF0YWJhc2UnOiBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWydk YXRhYmFzZSddLAorICAgICAgICAgICAgICAgICAgJ3RpdGxlJzogdGFiX3RpdGxlLAorICAgICAg ICAgICAgICAgICAgJ3VzZXInOiBuZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10sCisgICAg ICAgICAgICAgICAgICAncm9sZSc6IG5ld0Nvbm5Db2xsZWN0aW9uTW9kZWxbJ3JvbGUnXSwKKyAg ICAgICAgICAgICAgICAgICdwYXNzd29yZCc6IHJlc3BvbnNlLnBhc3N3b3JkLAorICAgICAgICAg ICAgICAgIH07CisgICAgICAgICAgICAgICAgaGFuZGxlci5ncmlkVmlldy5vbl9jaGFuZ2VfY29u bmVjdGlvbihjb25uZWN0aW9uX2RldGFpbHMsIHNlbGYpOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICBzZWxmLmNsb3NlKCk7CisgICAgICAgICAg ICB9CisgICAgICAgICAgfSwKKyAgICAgICAgfTsKKyAgICAgIH0pOworICAgICAgc2V0VGltZW91 dChmdW5jdGlvbigpeworICAgICAgICBBbGVydGlmeS5uZXdDb25uZWN0aW9uRGlhbG9nKCdDb25u ZWN0IHRvIHNlcnZlci4nKS5yZXNpemVUbyhwZ0FkbWluLkJyb3dzZXIuc3RkVy5tZCxwZ0FkbWlu LkJyb3dzZXIuc3RkSC5tZCk7CisgICAgICB9LCA1MDApOworICAgIH0pLmZhaWwoZnVuY3Rpb24o ZXJyb3IpIHsKKyAgICAgIEFsZXJ0aWZ5LmFsZXJ0KCkuc2V0dGluZyh7CisgICAgICAgICd0aXRs ZSc6IGdldHRleHQoJ0Nvbm5lY3Rpb24gbG9zdCcpLAorICAgICAgICAnbGFiZWwnOmdldHRleHQo J09rJyksCisgICAgICAgICdtZXNzYWdlJzogZ2V0dGV4dCgnQ29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGhhcyBiZWVuIGxvc3QuJyksCisgICAgICAgICdvbm9rJzogZnVuY3Rpb24oKXsKKyAgICAg ICAgICBhbGVydChlcnJvcik7CisgICAgICAgICAgLy9DbG9zZSB0aGUgd2luZG93IGFmdGVyIGNv bm5lY3Rpb24gaXMgbG9zdAorICAgICAgICAgIHdpbmRvdy5jbG9zZSgpOworICAgICAgICB9LAor ICAgICAgfSkuc2hvdygpOworICAgIH0pOworCisgIH0sCisKK307CisKK21vZHVsZS5leHBvcnRz ID0gTmV3Q29ubmVjdGlvbkRpYWxvZzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nX21vZGVsLmpzIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL3NxbGVkaXRvci9uZXdfY29ubmVjdGlvbl9kaWFsb2dfbW9kZWwuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2MmQwZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fZGlhbG9nX21v ZGVsLmpzCkBAIC0wLDAgKzEsMzM5IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3Nv dXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgXyBmcm9tICd1bmRlcnNjb3JlJzsKK2ltcG9ydCAkIGZy b20gJ2pxdWVyeSc7CitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1w b3J0IEJhY2tmb3JtIGZyb20gJ3BnYWRtaW4uYmFja2Zvcm0nOworaW1wb3J0IHVybF9mb3IgZnJv bSAnc291cmNlcy91cmxfZm9yJzsKK2ltcG9ydCBhbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0 aWZ5anMnOworCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBuZXdDb25uZWN0aW9uRGlhbG9nTW9k ZWwocmVzcG9uc2UsIHNnaWQsIHNpZCkgeworCisgIGxldCBzZXJ2ZXJfbmFtZSA9ICcnOworICBs ZXQgZGF0YWJhc2VfbmFtZSA9ICcnOworCisgIGxldCBOZXdDb25uZWN0aW9uU2VsZWN0MkNvbnRy b2wgPSBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5leHRlbmQoeworICAgIGZldGNoRGF0YTogZnVu Y3Rpb24oKXsKKyAgICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgIGxldCB1cmwgPSBzZWxmLmZp ZWxkLmdldCgndXJsJyk7CisKKyAgICAgIHVybCA9IHVybF9mb3IodXJsLCB7CisgICAgICAgICdz 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 ICAgICAgICBjb25uZWN0OiBmdW5jdGlvbihzZWxmKSB7CisgICAgICAgICAgbGV0IGxvY2FsX3Nl bGYgPSBzZWxmOworICAgICAgICAgIGlmKCFhbGVydGlmeS5jb25uZWN0U2VydmVyKXsKKyAgICAg ICAgICAgIGFsZXJ0aWZ5LmRpYWxvZygnY29ubmVjdFNlcnZlcicsIGZ1bmN0aW9uIGZhY3Rvcnko KSB7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgbWFpbjogZnVuY3Rp b24oCisgICAgICAgICAgICAgICAgICB0aXRsZSwgbWVzc2FnZSwgc2VydmVyX2lkLCBzdWJtaXRf cGFzc3dvcmQ9dHJ1ZQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgdGhp cy5zZXQoJ3RpdGxlJywgdGl0bGUpOworICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0g bWVzc2FnZTsKKyAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmVyX2lkID0gc2VydmVyX2lkOwor ICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRfcGFzc3dvcmQgPSBzdWJtaXRfcGFzc3dvcmQ7 CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBzZXR1cDpmdW5jdGlvbigpIHsK KyAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6 W3sKKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdDYW5jZWwnKSwgY2xhc3NO YW1lOiAnYnRuIGJ0bi1zZWNvbmRhcnkgZmEgZmEtdGltZXMgcGctYWxlcnRpZnktYnV0dG9uJywK KyAgICAgICAgICAgICAgICAgICAgICBrZXk6IDI3LAorICAgICAgICAgICAgICAgICAgICB9LHsK KyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdPSycpLCBrZXk6IDEzLCBjbGFz c05hbWU6ICdidG4gYnRuLXByaW1hcnkgZmEgZmEtY2hlY2sgcGctYWxlcnRpZnktYnV0dG9uJywK KyAgICAgICAgICAgICAgICAgICAgfV0sCisgICAgICAgICAgICAgICAgICAgIGZvY3VzOiB7ZWxl bWVudDogJyNwYXNzd29yZCcsIHNlbGVjdDogdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgIG9w dGlvbnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICBtb2RhbDogMCwgcmVzaXphYmxlOiBmYWxz ZSwgbWF4aW1pemFibGU6IGZhbHNlLCBwaW5uYWJsZTogZmFsc2UsCisgICAgICAgICAgICAgICAg ICAgIH0sCisgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgYnVpbGQ6ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICBwcmVwYXJlOmZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgdGhpcy5zZXRD b250ZW50KHRoaXMubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg ICBjYWxsYmFjazogZnVuY3Rpb24oY2xvc2VFdmVudCkgeworCisgICAgICAgICAgICAgICAgICBp ZiAoY2xvc2VFdmVudC5idXR0b24udGV4dCA9PSBnZXR0ZXh0KCdPSycpKSB7CisgICAgICAgICAg ICAgICAgICAgIGlmKHRoaXMuc3VibWl0X3Bhc3N3b3JkKSB7CisgICAgICAgICAgICAgICAgICAg ICAgdmFyIF91cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuY29ubmVjdF9zZXJ2ZXInLCB7J3NpZCc6 IHRoaXMuc2VydmVyX2lkfSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAkLmFqYXgoeworICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLAorICAgICAgICAgICAgICAgICAgICAg ICAgdGltZW91dDogMzAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IF91cmwsCisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiAkKCcjZnJtUGFzc3dvcmQnKS5zZXJpYWxpemUo KSwKKyAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmRv bmUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX3NlbGYubW9k ZWwuYXR0cmlidXRlcy5kYXRhYmFzZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAg IGxvY2FsX3NlbGYubW9kZWwuYXR0cmlidXRlcy51c2VyID0gbnVsbDsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgbG9jYWxfc2VsZi5tb2RlbC5hdHRyaWJ1dGVzLnJvbGUgPSBudWxsOworICAg ICAgICAgICAgICAgICAgICAgICAgICBCYWNrZm9ybS5TZWxlY3QyQ29udHJvbC5wcm90b3R5cGUu b25DaGFuZ2UuYXBwbHkobG9jYWxfc2VsZiwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzcG9uc2Uuc2VydmVyX2xpc3QuZm9yRWFjaChmdW5jdGlvbihvYmopeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9iai5pZD09c2VsZi5tb2RlbC5jaGFuZ2VkLnNl cnZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2VydmVyX25h bWUgPSBvYmoubmFtZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAg ICAgICAgICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKHhocikgeworICAgICAgICAgICAgICAgICAg ICAgICAgICBhbGVydGlmeS5jb25uZWN0U2VydmVyKCdDb25uZWN0IHRvIHNlcnZlcicsIHhoci5y ZXNwb25zZUpTT04ucmVzdWx0LCBsb2NhbF9zZWxmLmdldFZhbHVlRnJvbURPTSgpKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnBhc3N3b3JkID0gJCgnI3Bhc3N3b3JkJykudmFs KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgICAgIGxvY2FsX3NlbGYubW9kZWwuYXR0cmlidXRlcy5kYXRhYmFzZSA9 IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsX3NlbGYubW9kZWwuYXR0cmlidXRlcy51 c2VyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxfc2VsZi5tb2RlbC5hdHRyaWJ1 dGVzLnJvbGUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBCYWNrZm9ybS5TZWxlY3QyQ29u dHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkobG9jYWxfc2VsZiwgYXJndW1lbnRzKTsKKyAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGNsb3NlRXZlbnQuY2xvc2UgPSB0 cnVlOworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9 KTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7 CisgICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAgIHNlbGYuY29ubmVjdChzZWxm KTsKKyAgICAgICAgICByZXR1cm4gQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLnJl bmRlci5hcHBseShzZWxmLCBhcmd1bWVudHMpOworICAgICAgICB9LAorICAgICAgICBvbkNoYW5n ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGhpcy5tb2RlbC5hdHRyaWJ1dGVzLmRhdGFiYXNl ID0gbnVsbDsKKyAgICAgICAgICB0aGlzLm1vZGVsLmF0dHJpYnV0ZXMudXNlciA9IG51bGw7Cisg ICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAgIHNlbGYuY29ubmVjdChzZWxmKTsK KworICAgICAgICAgIGxldCB1cmwgPSB1cmxfZm9yKCdzcWxlZGl0b3IuY29ubmVjdF9zZXJ2ZXIn LCB7CisgICAgICAgICAgICAnc2lkJzogc2VsZi5nZXRWYWx1ZUZyb21ET00oKSwKKyAgICAgICAg ICAgICd1c3InOiBzZWxmLm1vZGVsLmF0dHJpYnV0ZXMudXNlciwKKyAgICAgICAgICB9KTsKKyAg ICAgICAgICAkLmFqYXgoeworICAgICAgICAgICAgYXN5bmM6IGZhbHNlLAorICAgICAgICAgICAg dXJsOiB1cmwsCisgICAgICAgICAgICB0eXBlOiAnUE9TVCcsCisgICAgICAgICAgICBoZWFkZXJz OiB7CisgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA6ICduby1jYWNoZScsCisgICAgICAg ICAgICB9LAorICAgICAgICAgIH0pLmRvbmUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgQmFj a2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNlbGYsIGFyZ3Vt ZW50cyk7CisgICAgICAgICAgICByZXNwb25zZS5zZXJ2ZXJfbGlzdC5mb3JFYWNoKGZ1bmN0aW9u KG9iail7CisgICAgICAgICAgICAgIGlmKG9iai5pZD09c2VsZi5tb2RlbC5jaGFuZ2VkLnNlcnZl cikgeworICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9uYW1lID0gb2JqLm5hbWU7Cisg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0pLmZhaWwoZnVuY3Rp b24oeGhyKXsKKyAgICAgICAgICAgIGFsZXJ0aWZ5LmNvbm5lY3RTZXJ2ZXIoJ0Nvbm5lY3QgdG8g c2VydmVyJywgeGhyLnJlc3BvbnNlSlNPTi5yZXN1bHQsIHNlbGYuZ2V0VmFsdWVGcm9tRE9NKCkp OworICAgICAgICAgIH0pOworCisgICAgICAgIH0sCisgICAgICB9KSwKKyAgICAgIG9wdGlvbnM6 IGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gXy5tYXAocmVzcG9uc2Uuc2VydmVyX2xpc3Qs IChvYmopID0+IHsKKyAgICAgICAgICBpZiAob2JqLmlkID09IHBhcnNlSW50KHNpZCkpCisgICAg ICAgICAgICByZXNwb25zZS5zZXJ2ZXJfbmFtZSA9IG9iai5uYW1lOworCisgICAgICAgICAgcmV0 dXJuIHsKKyAgICAgICAgICAgIHZhbHVlOiBvYmouaWQsCisgICAgICAgICAgICBsYWJlbDogb2Jq Lm5hbWUsCisgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICB9LAorICAgIH0sCisgICAg eworICAgICAgaWQ6ICdkYXRhYmFzZScsCisgICAgICBuYW1lOiAnZGF0YWJhc2UnLAorICAgICAg bGFiZWw6IGdldHRleHQoJ0RhdGFiYXNlJyksCisgICAgICB0eXBlOiAndGV4dCcsCisgICAgICBl ZGl0YWJsZTogdHJ1ZSwKKyAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgIGxl dCBzZWxmX2xvY2FsID0gdGhpczsKKyAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG0uZ2V0KCdz ZXJ2ZXInKSkgJiYgIV8uaXNOdWxsKG0uZ2V0KCdzZXJ2ZXInKSkKKyAgICAgICAgICAgICYmIG0u Z2V0KCdzZXJ2ZXInKSAhPT0gJycpIHsKKyAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg eworICAgICAgICAgICAgaWYoc2VsZl9sb2NhbC5vcHRpb25zLmxlbmd0aCkgeworICAgICAgICAg ICAgICBtLnNldCgnZGF0YWJhc2UnLCBzZWxmX2xvY2FsLm9wdGlvbnNbMF0udmFsdWUpOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0sIDEwKTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0sCisgICAgICBkZXBzOiBb J3NlcnZlciddLAorICAgICAgdXJsOiAnc3FsZWRpdG9yLmdldF9uZXdfY29ubmVjdGlvbl9kYXRh YmFzZScsCisgICAgICBzZWxlY3QyOiB7CisgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAorICAg ICAgICB3aWR0aDogJzEwMCUnLAorICAgICAgICBmaXJzdF9lbXB0eTogdHJ1ZSwKKyAgICAgICAg c2VsZWN0X2ZpcnN0OiBmYWxzZSwKKyAgICAgIH0sCisgICAgICBleHRyYUNsYXNzZXM6WyduZXct Y29ubmVjdGlvbi1kaWFsb2ctc3R5bGUnXSwKKyAgICAgIGNvbnRyb2w6IE5ld0Nvbm5lY3Rpb25T ZWxlY3QyQ29udHJvbCwKKyAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0YSkgeworICAgICAg ICByZXNwb25zZS5kYXRhYmFzZV9saXN0ID0gZGF0YTsKKyAgICAgICAgcmV0dXJuIGRhdGE7Cisg ICAgICB9LAorICAgIH0sCisgICAgeworICAgICAgaWQ6ICd1c2VyJywKKyAgICAgIG5hbWU6ICd1 c2VyJywKKyAgICAgIGxhYmVsOiBnZXR0ZXh0KCdVc2VyJyksCisgICAgICB0eXBlOiAndGV4dCcs CisgICAgICBlZGl0YWJsZTogdHJ1ZSwKKyAgICAgIGRlcHM6IFsnc2VydmVyJ10sCisgICAgICBz ZWxlY3QyOiB7CisgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAorICAgICAgICB3aWR0aDogJzEw MCUnLAorICAgICAgfSwKKyAgICAgIGNvbnRyb2w6IE5ld0Nvbm5lY3Rpb25TZWxlY3QyQ29udHJv bCwKKyAgICAgIHVybDogJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25fdXNlcicsCisgICAg ICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICBsZXQgc2VsZl9sb2NhbCA9IHRoaXM7 CisgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChtLmdldCgnc2VydmVyJykpICYmICFfLmlzTnVs bChtLmdldCgnc2VydmVyJykpCisgICAgICAgICAgICAmJiBtLmdldCgnc2VydmVyJykgIT09ICcn KSB7CisgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmKHNl bGZfbG9jYWwub3B0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgbS5zZXQoJ3VzZXInLCBz ZWxmX2xvY2FsLm9wdGlvbnNbMF0udmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0s IDEwKTsKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICB9LAorICAgIH0seworICAgICAgaWQ6ICdyb2xlJywKKyAgICAgIG5hbWU6 ICdyb2xlJywKKyAgICAgIGxhYmVsOiBnZXR0ZXh0KCdSb2xlJyksCisgICAgICB0eXBlOiAndGV4 dCcsCisgICAgICBlZGl0YWJsZTogdHJ1ZSwKKyAgICAgIGRlcHM6IFsnc2VydmVyJ10sCisgICAg ICBzZWxlY3QyOiB7CisgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAorICAgICAgICB3aWR0aDog JzEwMCUnLAorICAgICAgICBmaXJzdF9lbXB0eTogdHJ1ZSwKKyAgICAgIH0sCisgICAgICBjb250 cm9sOiBOZXdDb25uZWN0aW9uU2VsZWN0MkNvbnRyb2wsCisgICAgICB1cmw6ICdzcWxlZGl0b3Iu Z2V0X25ld19jb25uZWN0aW9uX3JvbGUnLAorICAgICAgZGlzYWJsZWQ6IGZhbHNlLAorICAgIH0s CisgICAgLyp7CisgICAgICBpZDogJ3Bhc3N3b3JkJywKKyAgICAgIG5hbWU6ICdwYXNzd29yZCcs CisgICAgICBsYWJlbDogZ2V0dGV4dCgnUGFzc3dvcmQndG9vbHMvc3FsZWRpdG9yL19faW5pdF9f LnB5KSwKKyAgICAgIHR5cGU6ICdwYXNzd29yZCcsCisgICAgICBlZGl0YWJsZTogdHJ1ZSwKKyAg ICAgIGRpc2FibGVkOiB0cnVlLAorICAgICAgZGVwczogWyd1c2VyJ10sCisgICAgICBjb250cm9s OiBCYWNrZm9ybS5JbnB1dENvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgcmVuZGVyOiBmdW5jdGlv bigpIHsKKyAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CisgICAgICAgICAgc2VsZi5tb2RlbC5h dHRyaWJ1dGVzLnBhc3N3b3JkID0gbnVsbDsKKyAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRy b2wucHJvdG90eXBlLnJlbmRlci5hcHBseShzZWxmLCBhcmd1bWVudHMpOworICAgICAgICAgIHJl dHVybiBzZWxmOworICAgICAgICB9LAorICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAgIEJhY2tmb3JtLklucHV0Q29udHJv bC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTsKKyAgICAgICAgfSwK KyAgICAgIH0pLAorICAgIH0sKi8KKyAgICBdLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsK KyAgICAgIGxldCBtc2cgPSBudWxsOworICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7Cisg ICAgICBpZihfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdkYXRhYmFzZScpKSB8fCBfLmlzTnVsbCh0 aGlzLmdldCgnZGF0YWJhc2UnKSkpeworICAgICAgICBtc2cgPSBnZXR0ZXh0KCdQbGVhc2Ugc2Vs ZWN0IGRhdGFiYXNlJyk7CisgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2RhdGFiYXNlJywg bXNnKTsKKyAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAgIH0gZWxzZSBpZihfLmlzVW5kZWZpbmVk KHRoaXMuZ2V0KCdkYXRhYmFzZScpKSB8fCBfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCd1c2VyJykp fHwgXy5pc051bGwodGhpcy5nZXQoJ3VzZXInKSkpIHsKKyAgICAgICAgbXNnID0gZ2V0dGV4dCgn UGxlYXNlIHNlbGVjdCB1c2VyJyk7CisgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3VzZXIn LCBtc2cpOworICAgICAgICByZXR1cm4gbXNnOworICAgICAgfQorICAgICAgLyplbHNlIGlmKCh0 aGlzLmF0dHJpYnV0ZXMucGFzc3dvcmQgPT0gJycgfHwgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgn cGFzc3dvcmQnKSkgfHwgXy5pc051bGwodGhpcy5nZXQoJ3Bhc3N3b3JkJykpKSkgeworICAgICAg ICBtc2cgPSBnZXR0ZXh0KCdQbGVhc2UgZW50ZXIgcGFzc3dvcmQnKTsKKyAgICAgICAgdGhpcy5l cnJvck1vZGVsLnNldCgncGFzc3dvcmQnLCBtc2cpOworICAgICAgICByZXR1cm4gbXNnOworICAg ICAgfSovCisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9LAorICB9KTsKKworICBsZXQgbW9kZWwg PSBuZXcgbmV3Q29ubmVjdGlvbk1vZGVsKCk7CisgIHJldHVybiBtb2RlbDsKK30KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL19hbGVydC5zY3NzIGIvd2ViL3BnYWRtaW4vc3Rh dGljL3Njc3MvX2FsZXJ0LnNjc3MKaW5kZXggZGFjNTUyYi4uODM2ZjBhZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vc3RhdGljL3Njc3MvX2FsZXJ0LnNjc3MKKysrIGIvd2ViL3BnYWRtaW4vc3Rh dGljL3Njc3MvX2FsZXJ0LnNjc3MKQEAgLTkyLDYgKzkyLDcgQEAKICAgcmlnaHQ6IDA7CiAgIGxl ZnQ6IDA7CiAgIGJvdHRvbTogMDsKKyAgei1pbmRleDogMTsKIH0KIAogLnBnLXByb3Atc3RhdHVz LWJhciB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9fLnB5CmluZGV4IDFiZDg0MWYu LmY3YjgzNmEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9fLnB5CkBAIC0xOCwy MiArMTgsMjMgQEAgZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2UsIHVybF9mb3IsIHNlc3Npb24s IHJlcXVlc3QsIG1ha2VfcmVzcG9uc2UKIGZyb20gd2Vya3pldWcudXNlcmFnZW50cyBpbXBvcnQg VXNlckFnZW50CiBmcm9tIGZsYXNrIGltcG9ydCBjdXJyZW50X2FwcCBhcyBhcHAsIHJlbmRlcl90 ZW1wbGF0ZQogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0Ci1mcm9tIGZsYXNrX3Nl Y3VyaXR5IGltcG9ydCBsb2dpbl9yZXF1aXJlZAorZnJvbSBmbGFza19zZWN1cml0eSBpbXBvcnQg bG9naW5fcmVxdWlyZWQsIGN1cnJlbnRfdXNlcgogZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci5jb21tYW5kIGltcG9ydCBPYmplY3RSZWdpc3RyeSwgU1FMRmlsdGVyCitmcm9tIHBnYWRtaW4u dG9vbHMuc3FsZWRpdG9yIGltcG9ydCBjaGVja190cmFuc2FjdGlvbl9zdGF0dXMKIGZyb20gcGdh ZG1pbi51dGlscyBpbXBvcnQgUGdBZG1pbk1vZHVsZQogZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXgg aW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgYmFkX3JlcXVlc3QsIFwKLSAgICBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IKKyAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIHVuYXV0aG9yaXplZAogCiBm cm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKLWZyb20gcGdhZG1pbi5tb2RlbCBp bXBvcnQgU2VydmVyCitmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IFNlcnZlciwgVXNlcgogZnJv bSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBwZ2FkbWluLnV0 aWxzLmV4Y2VwdGlvbiBpbXBvcnQgQ29ubmVjdGlvbkxvc3QsIFNTSFR1bm5lbENvbm5lY3Rpb25M b3N0CiBmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVuY2VzCiBm cm9tIHBnYWRtaW4uc2V0dGluZ3MgaW1wb3J0IGdldF9zZXR0aW5nCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci51dGlscyBpbXBvcnQgdW5kZXJzY29yZV91bmVzY2FwZQogZnJvbSBwZ2FkbWluLnV0aWxz LmV4Y2VwdGlvbiBpbXBvcnQgT2JqZWN0R29uZQotZnJvbSBwZ2FkbWluLnV0aWxzLmNvbnN0YW50 cyBpbXBvcnQgTUlNRVRZUEVfQVBQX0pTCiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0 aWxzLm1hY3JvcyBpbXBvcnQgZ2V0X3VzZXJfbWFjcm9zCitmcm9tIHBnYWRtaW4udXRpbHMuY29u c3RhbnRzIGltcG9ydCBNSU1FVFlQRV9BUFBfSlMsIFVOQVVUSF9SRVEKIAogTU9EVUxFX05BTUUg PSAnZGF0YWdyaWQnCiAKQEAgLTc0LDcgKzc1LDggQEAgY2xhc3MgRGF0YUdyaWRNb2R1bGUoUGdB ZG1pbk1vZHVsZSk6CiAgICAgICAgICAgICAnZGF0YWdyaWQuZmlsdGVyX3ZhbGlkYXRlJywKICAg ICAgICAgICAgICdkYXRhZ3JpZC5maWx0ZXInLAogICAgICAgICAgICAgJ2RhdGFncmlkLnBhbmVs JywKLSAgICAgICAgICAgICdkYXRhZ3JpZC5jbG9zZScKKyAgICAgICAgICAgICdkYXRhZ3JpZC5j bG9zZScsCisgICAgICAgICAgICAnZGF0YWdyaWQudXBkYXRlX3F1ZXJ5X3Rvb2xfY29ubmVjdGlv bicKICAgICAgICAgXQogCiAgICAgZGVmIG9uX2xvZ291dChzZWxmLCB1c2VyKToKQEAgLTMyNCwx MCArMzI2LDQ4IEBAIGRlZiBpbml0aWFsaXplX3F1ZXJ5X3Rvb2wodHJhbnNfaWQsIHNnaWQsIHNp ZCwgZGlkPU5vbmUpOgogICAgICAgICAgICAgcmVxX2FyZ3NbJ3JlY3JlYXRlJ10gPT0gJzEnKToK ICAgICAgICAgY29ubmVjdCA9IEZhbHNlCiAKKyAgICBpc19lcnJvciwgZXJybXNnLCBjb25uX2lk LCB2ZXJzaW9uID0gX2luaXRfcXVlcnlfdG9vbCh0cmFuc19pZCwgY29ubmVjdCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZ2lkLCBz aWQsIGRpZCkKKyAgICBpZiBpc19lcnJvcjoKKyAgICAgICAgcmV0dXJuIGVycm1zZworCisgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgZGF0YT17CisgICAgICAgICAgICAn Y29ubklkJzogc3RyKGNvbm5faWQpLAorICAgICAgICAgICAgJ3NlcnZlclZlcnNpb24nOiB2ZXJz aW9uLAorICAgICAgICB9CisgICAgKQorCisKK2RlZiBfY29ubmVjdChjb25uLCAqKmt3YXJncyk6 CisgICAgIiIiCisgICAgQ29ubmVjdCB0aGUgZGF0YWJhc2UuCisgICAgOnBhcmFtIGNvbm46IENv bm5lY3Rpb24gaW5zdGFuY2UuCisgICAgOnBhcmFtIGt3YXJnczogdXNlciwgcm9sZSBhbmQgcGFz c3dvcmQgZGF0YSBmcm9tIHVzZXIuCisgICAgOnJldHVybjoKKyAgICAiIiIKKyAgICB1c2VyID0g Tm9uZQorICAgIHJvbGUgPSBOb25lCisgICAgcGFzc3dvcmQgPSBOb25lCisgICAgaXNfYXNrX3Bh c3N3b3JkID0gRmFsc2UKKyAgICBpZiAndXNlcicgaW4ga3dhcmdzIGFuZCAncm9sZScgaW4ga3dh cmdzOgorICAgICAgICB1c2VyID0ga3dhcmdzWyd1c2VyJ10KKyAgICAgICAgcm9sZSA9IGt3YXJn c1sncm9sZSddIGlmIGt3YXJnc1sncm9sZSddIGVsc2UgTm9uZQorICAgICAgICBwYXNzd29yZCA9 IGt3YXJnc1sncGFzc3dvcmQnXSBpZiBrd2FyZ3NbJ3Bhc3N3b3JkJ10gZWxzZSBOb25lCisgICAg ICAgIGlzX2Fza19wYXNzd29yZCA9IFRydWUKKyAgICBpZiB1c2VyOgorICAgICAgICBzdGF0dXMs IG1zZyA9IGNvbm4uY29ubmVjdCh1c2VyPXVzZXIsIHJvbGU9cm9sZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9cGFzc3dvcmQpCisgICAgZWxzZToKKyAgICAg ICAgc3RhdHVzLCBtc2cgPSBjb25uLmNvbm5lY3QoKQorCisgICAgcmV0dXJuIHN0YXR1cywgbXNn LCBpc19hc2tfcGFzc3dvcmQsIHVzZXIsIHJvbGUsIHBhc3N3b3JkCisKKworZGVmIF9pbml0X3F1 ZXJ5X3Rvb2wodHJhbnNfaWQsIGNvbm5lY3QsIHNnaWQsIHNpZCwgZGlkLCAqKmt3YXJncyk6CiAg ICAgIyBDcmVhdGUgYXN5bmNocm9ub3VzIGNvbm5lY3Rpb24gdXNpbmcgcmFuZG9tIGNvbm5lY3Rp b24gaWQuCiAgICAgY29ubl9pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKIAot ICAgICMgVXNlIE1haW50ZW5hbmNlIGRhdGFiYXNlIE9JRAogICAgIG1hbmFnZXIgPSBnZXRfZHJp dmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoc2lkKQogCiAgICAgaWYg ZGlkIGlzIE5vbmU6CkBAIC0zMzgsMjQgKzM3OCw0MSBAQCBkZWYgaW5pdGlhbGl6ZV9xdWVyeV90 b29sKHRyYW5zX2lkLCBzZ2lkLCBzaWQsIGRpZD1Ob25lKToKICAgICAgICAgKQogICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQotICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKyAgICAgICAgcmV0 dXJuIFRydWUsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpLCAnJywgJycK IAogICAgIHRyeToKICAgICAgICAgY29ubiA9IG1hbmFnZXIuY29ubmVjdGlvbihkaWQ9ZGlkLCBj b25uX2lkPWNvbm5faWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b19y ZWNvbm5lY3Q9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX2Jp bmFyeV9wbGFjZWhvbGRlcj1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFycmF5X3RvX3N0cmluZz1UcnVlKQorCiAgICAgICAgIGlmIGNvbm5lY3Q6Ci0gICAgICAgICAg ICBzdGF0dXMsIG1zZyA9IGNvbm4uY29ubmVjdCgpCisgICAgICAgICAgICBzdGF0dXMsIG1zZywg aXNfYXNrX3Bhc3N3b3JkLCB1c2VyLCByb2xlLCBwYXNzd29yZCA9IF9jb25uZWN0KAorICAgICAg ICAgICAgICAgIGNvbm4sICoqa3dhcmdzKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKICAg ICAgICAgICAgICAgICBhcHAubG9nZ2VyLmVycm9yKG1zZykKLSAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihtc2cpKQorICAgICAgICAgICAg ICAgIGlmIGlzX2Fza19wYXNzd29yZDoKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyID0gU2Vy dmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIFRydWUsIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MjgsCisgICAgICAg ICAgICAgICAgICAgICAgICByZXN1bHQ9cmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdzZXJ2ZXJzL3Bhc3N3b3JkLmh0bWwnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlcl9sYWJlbD1zZXJ2ZXIubmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1c2VybmFtZT11c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm1z Zz1tc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0LAorICAgICAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICApLCAnJywgJycKKyAgICAgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgaW50ZXJuYWxf c2VydmVyX2Vycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9c3RyKG1zZykp LCAnJywgJycKICAgICBleGNlcHQgKENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxDb25uZWN0aW9u TG9zdCkgYXMgZToKICAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQogICAgICAgICByYWlzZQog ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgYXBwLmxvZ2dlci5lcnJvcihlKQot ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKyAg ICAgICAgcmV0dXJuIFRydWUsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkp LCAnJywgJycKIAogICAgIGlmICdncmlkRGF0YScgbm90IGluIHNlc3Npb246CiAgICAgICAgIHNx bF9ncmlkX2RhdGEgPSBkaWN0KCkKQEAgLTM3NywxMCArNDM0LDc3IEBAIGRlZiBpbml0aWFsaXpl X3F1ZXJ5X3Rvb2wodHJhbnNfaWQsIHNnaWQsIHNpZCwgZGlkPU5vbmUpOgogICAgICMgU3RvcmUg dGhlIGdyaWQgZGljdGlvbmFyeSBpbnRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgc2Vzc2lv blsnZ3JpZERhdGEnXSA9IHNxbF9ncmlkX2RhdGEKIAorICAgIHJldHVybiBGYWxzZSwgJycsIGNv bm5faWQsIG1hbmFnZXIudmVyc2lvbgorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9pbml0 aWFsaXplL3F1ZXJ5X3Rvb2wvdXBkYXRlX2Nvbm5lY3Rpb24vPGludDp0cmFuc19pZD4vJworICAg ICc8aW50OnNnaWQ+LzxpbnQ6c2lkPi88aW50OmRpZD4nLAorICAgIG1ldGhvZHM9WyJQT1NUIl0s IGVuZHBvaW50PSd1cGRhdGVfcXVlcnlfdG9vbF9jb25uZWN0aW9uJworKQorZGVmIHVwZGF0ZV9x dWVyeV90b29sX2Nvbm5lY3Rpb24odHJhbnNfaWQsIHNnaWQsIHNpZCwgZGlkKToKKyAgICAjIFJl bW92ZSB0cmFuc2FjdGlvbiBJZC4KKyAgICB3aXRoIHF1ZXJ5X3Rvb2xfY2xvc2Vfc2Vzc2lvbl9s b2NrOgorICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1 dGYtOCcpCisKKyAgICAgICAgaWYgJ2dyaWREYXRhJyBub3QgaW4gc2Vzc2lvbjoKKyAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoZGF0YT17J3N0YXR1cyc6IFRydWV9KQorCisg ICAgICAgIGdyaWRfZGF0YSA9IHNlc3Npb25bJ2dyaWREYXRhJ10KKworICAgICAgICAjIFJldHVy biBmcm9tIHRoZSBmdW5jdGlvbiBpZiB0cmFuc2FjdGlvbiBpZCBub3QgZm91bmQKKyAgICAgICAg aWYgc3RyKHRyYW5zX2lkKSBub3QgaW4gZ3JpZF9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZShkYXRhPXsnc3RhdHVzJzogVHJ1ZX0pCisKKyAgICAgICAgY29ubmVj dCA9IFRydWUKKworICAgICAgICByZXFfYXJncyA9IHJlcXVlc3QuYXJncworICAgICAgICBpZiAo J3JlY3JlYXRlJyBpbiByZXFfYXJncyBhbmQKKyAgICAgICAgICAgICAgICByZXFfYXJnc1sncmVj cmVhdGUnXSA9PSAnMScpOgorICAgICAgICAgICAgY29ubmVjdCA9IEZhbHNlCisKKyAgICAgICAg bmV3X3RyYW5zX2lkID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICAgICBr d2FyZ3MgPSB7CisgICAgICAgICAgICAndXNlcic6IGRhdGFbJ3VzZXInXSwKKyAgICAgICAgICAg ICdyb2xlJzogZGF0YVsncm9sZSddLAorICAgICAgICAgICAgJ3Bhc3N3b3JkJzogZGF0YVsncGFz c3dvcmQnXSBpZiAncGFzc3dvcmQnIGluIGRhdGEgZWxzZSBOb25lCisgICAgICAgIH0KKworICAg ICAgICBpc19lcnJvciwgZXJybXNnLCBjb25uX2lkLCB2ZXJzaW9uID0gX2luaXRfcXVlcnlfdG9v bCgKKyAgICAgICAgICAgIG5ld190cmFuc19pZCwgY29ubmVjdCwgc2dpZCwgc2lkLCBkaWQsICoq a3dhcmdzKQorCisgICAgICAgIGlmIGlzX2Vycm9yOgorICAgICAgICAgICAgcmV0dXJuIGVycm1z ZworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgQ2hl Y2sgdGhlIHRyYW5zYWN0aW9uIGFuZCBjb25uZWN0aW9uIHN0YXR1cworICAgICAgICAgICAgICAg IHN0YXR1cywgZXJyb3JfbXNnLCBjb25uLCB0cmFuc19vYmosIHNlc3Npb25fb2JqID0gXAorICAg ICAgICAgICAgICAgICAgICBjaGVja190cmFuc2FjdGlvbl9zdGF0dXModHJhbnNfaWQpCisKKyAg ICAgICAgICAgICAgICBzdGF0dXMsIGVycm9yX21zZywgbmV3X2Nvbm4sIG5ld190cmFuc19vYmos IG5ld19zZXNzaW9uX29iaiA9IFwKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tfdHJhbnNhY3Rp b25fc3RhdHVzKG5ld190cmFuc19pZCkKKworICAgICAgICAgICAgICAgIG5ld19zZXNzaW9uX29i alsncHJpbWFyeV9rZXlzJ10gPSBzZXNzaW9uX29ialsKKyAgICAgICAgICAgICAgICAgICAgJ3By aW1hcnlfa2V5cyddIGlmICdwcmltYXJ5X2tleXMnIGluIHNlc3Npb25fb2JqIGVsc2UgTm9uZQor ICAgICAgICAgICAgICAgIG5ld19zZXNzaW9uX29ialsnY29sdW1uc19pbmZvJ10gPSBzZXNzaW9u X29ialsKKyAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbnNfaW5mbyddIGlmICdjb2x1bW5zX2lu Zm8nIGluIHNlc3Npb25fb2JqIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgIG5ld19zZXNzaW9u X29ialsnY2xpZW50X3ByaW1hcnlfa2V5J10gPSBzZXNzaW9uX29ialsKKyAgICAgICAgICAgICAg ICAgICAgJ2NsaWVudF9wcmltYXJ5X2tleSddIGlmICdjbGllbnRfcHJpbWFyeV9rZXknXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gc2Vzc2lvbl9vYmog ZWxzZSBOb25lCisKKyAgICAgICAgICAgICAgICBjbG9zZV9xdWVyeV90b29sX3Nlc3Npb24odHJh bnNfaWQpCisgICAgICAgICAgICAgICAgIyBSZW1vdmUgdGhlIGluZm9ybWF0aW9uIG9mIHVuaXF1 ZSB0cmFuc2FjdGlvbiBpZCBmcm9tIHRoZQorICAgICAgICAgICAgICAgICMgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgICAgICAgICAgICAgICBncmlkX2RhdGEucG9wKHN0cih0cmFuc19pZCksIE5vbmUp CisgICAgICAgICAgICAgICAgc2Vzc2lvblsnZ3JpZERhdGEnXSA9IGdyaWRfZGF0YQorICAgICAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIGFwcC5sb2dnZXIu ZXJyb3IoZSkKKwogICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCiAgICAgICAgIGRhdGE9 ewogICAgICAgICAgICAgJ2Nvbm5JZCc6IHN0cihjb25uX2lkKSwKLSAgICAgICAgICAgICdzZXJ2 ZXJWZXJzaW9uJzogbWFuYWdlci52ZXJzaW9uLAorICAgICAgICAgICAgJ3NlcnZlclZlcnNpb24n OiB2ZXJzaW9uLAorICAgICAgICAgICAgJ3RyYW5faWQnOiBuZXdfdHJhbnNfaWQKICAgICAgICAg fQogICAgICkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxh dGVzL2RhdGFncmlkL2luZGV4Lmh0bWwgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1w bGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbAppbmRleCBhMGVlYmM4Li40OTcwMDI3IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXgu aHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQv aW5kZXguaHRtbApAQCAtNDE3LDggKzQxNywxNyBAQAogICAgICAgICAgICAgICAgICAgICB0aXRs ZT0iIiByb2xlPSJpbWciPgogICAgICAgICAgICAgICAgIDwvaT4KICAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXRpdGxlIgotICAgICAgICAgICAgICAg ICBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogeyUgaWYgZmdjb2xvciAlfXt7IGJnY29sb3Igb3Ig JyNGRkZGRkYnIH19eyUgZW5kaWYgJX07IGNvbG9yOiB7JSBpZiBmZ2NvbG9yICV9e3sgZmdjb2xv ciB9fXslIGVuZGlmICV9OyI+Jm5ic3A7PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJj b25uZWN0aW9uLWluZm8gYnRuLWdyb3VwIG1yLTEiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIi PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVkaXRvci10aXRsZSIgZGF0YS10b2dnbGU9 ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIKKyAg ICAgICAgICAgICAgICAgICAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB7JSBpZiBmZ2NvbG9y ICV9e3sgYmdjb2xvciBvciAnI0ZGRkZGRicgfX17JSBlbmRpZiAlfTsgY29sb3I6IHslIGlmIGZn Y29sb3IgJX17eyBmZ2NvbG9yIH19eyUgZW5kaWYgJX07Ij4mbmJzcDsKKyAgICAgICAgICAgICAg ICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29ubi1pbmZvLWRkIGRyb3Bk b3duLXRvZ2dsZSBkcm9wZG93bi10b2dnbGUtc3BsaXQiCisgICAgICAgICAgICAgICAgZGF0YS10 b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBhcmlhLWV4cGFuZGVkPSJmYWxz ZSI+PC9zcGFuPgorICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgaWQ9 ImNvbm5lY3Rpb25zLWxpc3QiPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8 L2Rpdj4KKworCiAgICAgICAgIDwvZGl2PgogICAgICAgICA8ZGl2IGlkPSJlZGl0b3ItcGFuZWwi IHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgIDxkaXYgaWQ9ImZldGNoaW5nX2RhdGEiIGNsYXNz PSJwZy1zcC1jb250YWluZXIgc3FsLWVkaXRvci1idXN5LWZldGNoaW5nIj4KQEAgLTQ4MSw2ICs0 OTAsNyBAQCByZXF1aXJlKFsnc291cmNlcy9nZW5lcmF0ZWQvYnJvd3Nlcl9ub2RlcycsICdzb3Vy Y2VzL2dlbmVyYXRlZC9jb2RlbWlycm9yJywgJ3NvdQogICAgICAgICAgICAgdmFyIHNjcmlwdF90 eXBlX3VybCA9ICcnOwogICAgICAgICB7JSBlbmRpZiAlfQogICAgICAgICAvLyBTdGFydCB0aGUg cXVlcnkgdG9vbC4KKwogICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyLnN0YXJ0KAogICAgICAg ICAgICAge3sgdW5pcXVlSWQgfX0sCiAgICAgICAgICAgICB7eyB1cmxfcGFyYW1zfHNhZmV9fSwK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvZGF0YWdyaWRfdGVzdF9kYXRhLmpzb24gYi93ZWIvcGdh ZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy9kYXRhZ3JpZF90ZXN0X2RhdGEuanNvbgpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDc1ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvZGF0YWdyaWRfdGVzdF9kYXRhLmpzb24K QEAgLTAsMCArMSwxMzQgQEAKK3sKKyAgImRhdGFfZ3JpZF9pbml0X3F1ZXJ5X3Rvb2wiOiBbCisg ICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgaW5pdCBxdWVyeSB0b29sIiwKKyAgICAgICJ1 cmwiOiAiL2RhdGFncmlkL2luaXRpYWxpemUvcXVlcnlfdG9vbC8iLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAg ICJ0ZXN0X2RhdGEiOiB7fSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3Rl ZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9Cisg IF0sCisgICJkYXRhX2dyaWRfcXVlcnlfdG9vbF9jbG9zZSI6IFsKKyAgICB7CisgICAgICAibmFt ZSI6ICJEYXRhZ3JpZCBxdWVyeSB0b29sIGNsb3NlIiwKKyAgICAgICJ1cmwiOiAiL2RhdGFncmlk L2Nsb3NlLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgInRlc3RfZGF0YSI6IHt9LAorICAgICAgIm1vY2tf ZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRhdGFfZ3JpZF92YWxpZGF0ZV9maWx0 ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgdmFsaWRhdGUgZmlsdGVyIiwK KyAgICAgICJ1cmwiOiAiL2RhdGFncmlkL2ZpbHRlci92YWxpZGF0ZS8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJ0ZXN0X2RhdGEiOiAiaWQgPSAxIiwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0K KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIHZhbGlkYXRlIGZpbHRlciIs CisgICAgICAidXJsIjogIi9kYXRhZ3JpZC9maWx0ZXIvdmFsaWRhdGUvIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisg ICAgICAidGVzdF9kYXRhIjogImlkID0gMSIsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAg ICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0 aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjog IihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3Igd2hpbGUgdmFsaWRhdGUgZmls dGVyJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRhdGFfZ3JpZF91cGRhdGVf Y29ubmVjdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEYXRhZ3JpZCB1cGRhdGUgY29u bmVjdGlvbiBwb3NpdGl2ZSIsCisgICAgICAidXJsIjogIi9kYXRhZ3JpZC9pbml0aWFsaXplL3F1 ZXJ5X3Rvb2wvdXBkYXRlX2Nvbm5lY3Rpb24vIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAiaXNfY3JlYXRl X3JvbGUiOiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKKyAgICAgICJtb2NrX2RhdGEi OiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIHVwZGF0 ZSBjb25uZWN0aW9uIHdpdGggbmV3IHVzZXIiLAorICAgICAgInVybCI6ICIvZGF0YWdyaWQvaW5p dGlhbGl6ZS9xdWVyeV90b29sL3VwZGF0ZV9jb25uZWN0aW9uLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg ImlzX2NyZWF0ZV9yb2xlIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKKyAgICAgICJt b2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkYXRhX2dyaWRfcGFuZWwiOiBb CisgICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgUGFuZWwiLAorICAgICAgInVybCI6ICIv ZGF0YWdyaWQvcGFuZWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjoge30sCisgICAg ICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkYXRhX2dy aWRfaW5pdGlhbGl6ZSI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEYXRhZ3JpZCBJbml0aWFs aXplIiwKKyAgICAgICJ1cmwiOiAiL2RhdGFncmlkL2luaXRpYWxpemUvZGF0YWdyaWQvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogImlkPTEiLAorICAgICAgIm1vY2tfZGF0YSI6IHsK KworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2Nv ZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LHsKKyAgICAgICJuYW1lIjogIkRhdGFncmlkIEluaXRp YWxpemUiLAorICAgICAgInVybCI6ICIvZGF0YWdyaWQvaW5pdGlhbGl6ZS9kYXRhZ3JpZC8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQi OiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiBudWxsLAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRGF0YWdyaWQgSW5pdGlhbGl6 ZSIsCisgICAgICAidXJsIjogIi9kYXRhZ3JpZC9pbml0aWFsaXplL2RhdGFncmlkLyIsCisgICAg ICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0 cnVlLAorICAgICAgInRlc3RfZGF0YSI6ICJpZD0xIiwKKyAgICAgICJtb2NrX2RhdGEiOiB7Cisg ICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNv bm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVl IjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3Igd2hpbGUgaW5pdGlhbGl6 ZSBkYXRhZ3JpZC4nKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAg ICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF9pbml0X3F1 ZXJ5X3Rvb2wucHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFf Z3JpZF9pbml0X3F1ZXJ5X3Rvb2wucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZjY0ZTU2MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX2luaXRfcXVlcnlfdG9vbC5weQpAQCAtMCwwICsxLDczIEBA CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAor aW1wb3J0IHJhbmRvbQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmV4Y2VwdGlv biBpbXBvcnQgRXhlY3V0ZUVycm9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRh Citmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFfZ3JpZF91dGlscworCisKK2NsYXNzIERhdGFn cmlkSW5pdFF1ZXJ5VG9vbFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAg ICBUaGlzIHdpbGwgaW5pdCBxdWVyeS10b29sIGNvbm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBz Y2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoCisgICAgICAgICdkYXRhX2dyaWRf aW5pdF9xdWVyeV90b29sJywKKyAgICAgICAgZGF0YV9ncmlkX3V0aWxzLnRlc3RfY2FzZXMKKyAg ICApCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCisgICAgICAgIHNlbGYuZGJfbmFtZSA9 IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfbmFtZSJdCisgICAgICAgIHNlbGYuZGlkID0gc2VsZi5k YXRhYmFzZV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGlj dFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdf ZGF0YVsnc2VydmVyX2dyb3VwJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNpZCwgc2VsZi5kaWQpCisK KyAgICAgICAgc2VsZi50cmFuc19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkK KworICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAg ICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSB0YWJsZS4iKQorCisgICAgZGVmIGluaXRfcXVlcnlfdG9vbChzZWxmKToKKyAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo c2VsZi50cmFuc19pZCkgKyAnLycgKyBzdHIoc2VsZi5zZ2lkKSArICcvJyArIHN0cigKKyAgICAg ICAgICAgICAgICBzZWxmLnNpZCkgKyAnLycgKyBzdHIoc2VsZi5kaWQpLAorICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3Bv bnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBpbml0IHF1ZXJ5IHRvb2wgY29ubmVjdGlvbi4iIiIKKworICAgICAgICBpZiBzZWxmLmlz X3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuaW5pdF9xdWVyeV90 b29sKCkKKyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVz X2NvZGUKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVk X2RhdGFbJ3N0YXR1c19jb2RlJ10KKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1 YWxfcmVzcG9uc2VfY29kZSwgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSkKKworICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IGRhdGFiYXNl LiIiIgorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl bGYuc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGlkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9k YXRhX2dyaWRfcGFuZWwucHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0 X2RhdGFfZ3JpZF9wYW5lbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 NGJiZTMxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVz dHMvdGVzdF9kYXRhX2dyaWRfcGFuZWwucHkKQEAgLTAsMCArMSw5MCBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2ltcG9ydCByYW5kb20K KworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IEV4ZWN1 dGVFcnJvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQorZnJvbSAuIGltcG9y dCB1dGlscyBhcyBkYXRhX2dyaWRfdXRpbHMKKworCitjbGFzcyBEYXRhZ3JpZFBhbmVsVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIgorICAgIFRoaXMgd2lsbCBkYXRhIGdyaWQg cGFuZWwuCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJp b3MoCisgICAgICAgICdkYXRhX2dyaWRfcGFuZWwnLAorICAgICAgICBkYXRhX2dyaWRfdXRpbHMu dGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5k YXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KKyAgICAgICAgc2Vs Zi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zaWQgPSBw YXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYu c2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lk LCBzZWxmLmRpZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToK KyAgICAgICAgICAgIHJhaXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKKworICAgICAgICBzZWxmLnRyYW5zX2lkID0gc3RyKHJh bmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICAgICBxdF9pbml0ID0gZGF0YV9ncmlkX3V0 aWxzLl9pbml0X3F1ZXJ5X3Rvb2woc2VsZiwgc2VsZi50cmFuc19pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2dpZCwgc2VsZi5zaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRpZCkKKworICAgICAgICBpZiBub3QgcXRfaW5pdFsnc3VjY2VzcyddOgorICAgICAgICAgICAg cmFpc2UgRXhlY3V0ZUVycm9yKCJDb3VsZCBub3QgaW5pdGlhbGl6ZSBxdWVydHkgdG9vbC4iKQor CisgICAgZGVmIHBhbmVsKHNlbGYpOgorICAgICAgICBxdWVyeV9wYXJhbSA9IFwKKyAgICAgICAg ICAgICc/aXNfcXVlcnlfdG9vbD17MH0mc2dpZD17MX0mc2lkPXsyfSZzZXJ2ZXJfdHlwZT17M30n IFwKKyAgICAgICAgICAgICcmZGlkPXs0fSZ0aXRsZT17NX0nLmZvcm1hdChUcnVlLCBzZWxmLnNn aWQsIHNlbGYuc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2luZm9ybWF0aW9uWyd0eXBlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kaWQsICdRdWVyeSBwYW5lbCcpCisKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi50 cmFuc19pZCkgKyBxdWVyeV9wYXJhbSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxm LnRlc3RfZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAg ICAgKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBxdWVyeSB0b29sIGNvbm5lY3Rp b24uIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnBhbmVsKCkKKyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2Rl ID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2Nv ZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJl dHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnBhbmVsKCkK KyAgICAgICAgICAgICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19j b2RlCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0 ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFs X3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUpCisKKyAgICBkZWYgdGVhckRv d24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4i IiIKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRp ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0 YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UucHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90 ZXN0cy90ZXN0X2RhdGFfZ3JpZF9xdWVyeV90b29sX2Nsb3NlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjdlNGI1NmMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF9xdWVyeV90b29sX2Nsb3NlLnB5 CkBAIC0wLDAgKzEsNzggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKworaW1wb3J0IGpz b24KK2ltcG9ydCB1dWlkCitpbXBvcnQgcmFuZG9tCisKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBv cnQgcGF0Y2gKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uLnRlc3Rf c2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFfZ3Jp ZF91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLmV4Y2VwdGlvbiBpbXBvcnQgRXhlY3V0ZUVycm9y CisKKworY2xhc3MgRGF0YWdyaWRRdWVyeVRvb2xDbG9zZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKKyAgICAiIiIKKyAgICBUaGlzIHdpbGwgY2xvc2UgcXVlcnktdG9vbCBjb25uZWN0aW9u LgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKAor ICAgICAgICAnZGF0YV9ncmlkX3F1ZXJ5X3Rvb2xfY2xvc2UnLAorICAgICAgICBkYXRhX2dyaWRf dXRpbHMudGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KKyAg ICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KKyAgICAg ICAgc2VsZi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5z aWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAg IHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dS T1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2lkLCBzZWxmLmRpZCkKKworICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorCisgICAgICAgIHNlbGYudHJhbnNfaWQg PSBzdHIocmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpCisgICAgICAgIHF0X2luaXQgPSBkYXRh X2dyaWRfdXRpbHMuX2luaXRfcXVlcnlfdG9vbChzZWxmLCBzZWxmLnRyYW5zX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZ2lkLCBz ZWxmLnNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGlkKQorCisgICAgICAgIGlmIG5vdCBxdF9pbml0WydzdWNjZXNzJ106CisgICAg ICAgICAgICByYWlzZSBFeGVjdXRlRXJyb3IoIkNvdWxkIG5vdCBpbml0aWFsaXplIHF1ZXJ0eSB0 b29sLiIpCisKKyAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmKToKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cihzZWxm LnRyYW5zX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHF1ZXJ5IHRvb2wgY29ubmVjdGlv bi4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYuY2xvc2VfY29ubmVjdGlvbigpCisgICAgICAgICAgICBhY3R1YWxfcmVz cG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9y ZXNwb25zZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddCisKKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jl c3BvbnNlX2NvZGUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gZGlzY29ubmVjdCBkYXRhYmFzZS4iIiIKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rlc3RfZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9uLnB5 IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfdXBkYXRl X2Nvbm5lY3Rpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE1NzAy YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3Rlc3RzL3Rl c3RfZGF0YV9ncmlkX3VwZGF0ZV9jb25uZWN0aW9uLnB5CkBAIC0wLDAgKzEsMTIxIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAoraW1wb3J0 IHJhbmRvbQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k ZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0 YQorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnJvbGVzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgcm9sZXNfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZGF0YV9ncmlkX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBF eGVjdXRlRXJyb3IKKworCitjbGFzcyBEYXRhZ3JpZFVwZGF0ZUNvbm5lY3Rpb25UZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyB3aWxsIHVwZGF0ZSBxdWVyeS10 b29sIGNvbm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0 ZV9zY2VuYXJpb3MoCisgICAgICAgICdkYXRhX2dyaWRfdXBkYXRlX2Nvbm5lY3Rpb24nLAorICAg ICAgICBkYXRhX2dyaWRfdXRpbHMudGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChz ZWxmKToKKyAgICAgICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0 YWJhc2UiXVstMV0KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJk Yl9uYW1lIl0KKyAgICAgICAgc2VsZi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0K KyAgICAgICAgc2VsZi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZl cl9pZCJdCisgICAgICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQor CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg dXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2lkLCBzZWxmLmRpZCkKKworICAgICAgICBzZWxmLnRyYW5zX2lk ID0gc3RyKHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICAgICBzZWxmLnJvbGVzID0g Tm9uZQorCisgICAgICAgIGlmIHNlbGYuaXNfY3JlYXRlX3JvbGU6CisgICAgICAgICAgICBkYXRh ID0gcm9sZXNfdXRpbHMuZ2V0X3JvbGVfZGF0YShzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkK KyAgICAgICAgICAgIHNlbGYucm9sZV9uYW1lID0gZGF0YVsncm9sbmFtZSddCisgICAgICAgICAg ICBzZWxmLnJvbGVfcGFzc3dvcmQgPSBkYXRhWydyb2xwYXNzd29yZCddCisgICAgICAgICAgICBy b2xlc191dGlscy5jcmVhdGVfcm9sZV93aXRoX3Bhc3N3b3JkKAorICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLnJvbGVfbmFtZSwgc2VsZi5yb2xlX3Bhc3N3b3JkKQorCisgICAgICAg IGlmIG5vdCBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Qgb3Igc2VsZi5pc19jcmVhdGVfcm9sZToKKyAg ICAgICAgICAgIHF0X2luaXQgPSBkYXRhX2dyaWRfdXRpbHMuX2luaXRfcXVlcnlfdG9vbChzZWxm LCBzZWxmLnRyYW5zX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2dpZCwgc2VsZi5zaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kaWQpCisKKyAgICAgICAg ICAgIGlmIG5vdCBxdF9pbml0WydzdWNjZXNzJ106CisgICAgICAgICAgICAgICAgcmFpc2UgRXhl Y3V0ZUVycm9yKCJDb3VsZCBub3QgaW5pdGlhbGl6ZSBxdWVydHkgdG9vbC4iKQorCisgICAgICAg IHNlbGYudGVzdF9kYXRhID0geworICAgICAgICAgICAgImRhdGFiYXNlIjogc2VsZi5kaWQsCisg ICAgICAgICAgICAic2VydmVyIjogc2VsZi5zaWQsCisgICAgICAgIH0KKworICAgICAgICBpZiBz ZWxmLnNlcnZlcl9pbmZvcm1hdGlvblsndHlwZSddID09ICdwcGFzJzoKKyAgICAgICAgICAgIHNl bGYudGVzdF9kYXRhWydwYXNzd29yZCddID0gJ2VudGVycHJpc2VkYicKKyAgICAgICAgICAgIHNl bGYudGVzdF9kYXRhWyd1c2VyJ10gPSAnZW50ZXJwcmlzZWRiJworICAgICAgICBlbHNlOgorICAg ICAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ3Bhc3N3b3JkJ10gPSAncG9zdGdyZXMnCisgICAgICAg ICAgICBzZWxmLnRlc3RfZGF0YVsndXNlciddID0gJ3Bvc3RncmVzJworCisgICAgICAgIGlmIG5v dCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGVjdXRl RXJyb3IoIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCisK KyAgICBkZWYgdXBkYXRlX2Nvbm5lY3Rpb24oc2VsZiwgdXNlcl9kYXRhPU5vbmUpOgorICAgICAg ICBpZiB1c2VyX2RhdGE6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo CisgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi50cmFuc19pZCkgKyAnLycgKyBz dHIoc2VsZi5zZ2lkKSArCisgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2lkKSArICcv JyArIHN0cihzZWxmLmRpZCksCisgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHVzZXJf ZGF0YSksCisgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAg ICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QoCisgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi50cmFuc19pZCkgKyAn LycgKyBzdHIoc2VsZi5zZ2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2lk KSArICcvJyArIHN0cihzZWxmLmRpZCksCisgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicKKyAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgcXVlcnkg dG9vbCBjb25uZWN0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoK KyAgICAgICAgICAgIHVzZXJfZGF0YSA9IGRpY3QoKQorICAgICAgICAgICAgaWYgc2VsZi5pc19j cmVhdGVfcm9sZToKKyAgICAgICAgICAgICAgICB1c2VyX2RhdGFbJ3VzZXInXSA9IHNlbGYucm9s ZV9uYW1lCisgICAgICAgICAgICAgICAgdXNlcl9kYXRhWydwYXNzd29yZCddID0gc2VsZi5yb2xl X3Bhc3N3b3JkCisgICAgICAgICAgICAgICAgdXNlcl9kYXRhWydyb2xlJ10gPSBOb25lCisgICAg ICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRlX2Nvbm5lY3Rpb24odXNlcl9kYXRhPXVzZXJf ZGF0YSkKKyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVz X2NvZGUKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVk X2RhdGFbJ3N0YXR1c19jb2RlJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi51cGRhdGVfY29ubmVjdGlvbigpCisgICAgICAgICAgICBhY3R1YWxfcmVzcG9uc2Vf Y29kZSA9IHJlc3BvbnNlLnN0YXR1c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9yZXNwb25z ZV9jb2RlID0gc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddCisKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9uc2VfY29kZSwgZXhwZWN0ZWRfcmVzcG9uc2VfY29k ZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBk aXNjb25uZWN0IGRhdGFiYXNlLiIiIgorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGlkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0 YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfdmFsaWRhdGVfZmlsdGVyLnB5IGIvd2ViL3BnYWRt aW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9kYXRhX2dyaWRfdmFsaWRhdGVfZmlsdGVyLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NjdiNmQKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2RhdGFfZ3JpZF92 YWxpZGF0ZV9maWx0ZXIucHkKQEAgLTAsMCArMSw5MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2ltcG9ydCByYW5kb20KKworZnJvbSB1 bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFi YXNlX3V0aWxzCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBv cnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAg aW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBkYXRh X2dyaWRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IEV4ZWN1dGVF cnJvcgorCisKK2NsYXNzIERhdGFncmlkVmFsaWRhdGVGaWx0ZXJUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyB3aWxsIHZhbGlkYXRlIGZpbHRlciBjb25uZWN0 aW9uLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9z KAorICAgICAgICAnZGF0YV9ncmlkX3ZhbGlkYXRlX2ZpbHRlcicsCisgICAgICAgIGRhdGFfZ3Jp ZF91dGlscy50ZXN0X2Nhc2VzCisgICAgKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAg ICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQor ICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX25hbWUiXQorICAg ICAgICBzZWxmLmRpZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxm LnNpZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KKyAgICAg ICAgc2VsZi5zZ2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJf R1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zaWQsIHNlbGYuZGlkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX2lkIl0KKyAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX25h bWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYudGFi bGVfbmFtZSA9ICJ0YWJsZV9mb3Jfd2l6YXJkJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKworICAgIGRlZiB2 YWxpZGF0ZV9maWx0ZXIoc2VsZik6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9z dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYuc2lkKSArICcvJyArIHN0cihzZWxm LmRpZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpLAorICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIHF1ZXJ5IHRvb2wgY29ubmVjdGlvbi4iIiIKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0 aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudmFsaWRhdGVfZmlsdGVyKCkK KyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUK KyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFb J3N0YXR1c19jb2RlJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnZhbGlkYXRlX2ZpbHRlcigpCisgICAgICAgICAgICAg ICAgYWN0dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1 c19jb2RlJ10KKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbF9yZXNwb25zZV9jb2Rl LCBleHBlY3RlZF9yZXNwb25zZV9jb2RlKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgZGF0YWJhc2UuIiIiCisgICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZXN0cy90ZXN0X2luaXRpYWxpemVfZGF0YV9n cmlkLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVzdF9pbml0aWFsaXpl X2RhdGFfZ3JpZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDA3MTM5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVzdHMvdGVz dF9pbml0aWFsaXplX2RhdGFfZ3JpZC5weQpAQCAtMCwwICsxLDEwOSBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2ltcG9ydCByYW5kb20K KworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0 cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSAuIGltcG9ydCB1dGls cyBhcyBkYXRhX2dyaWRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0 IEV4ZWN1dGVFcnJvcgorCisKK2NsYXNzIERhdGFncmlkSW5pdGlhbGl6ZVRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlzIHdpbGwgSW5pdGlhbGl6ZSBkYXRhZ3Jp ZAorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKAor ICAgICAgICAnZGF0YV9ncmlkX2luaXRpYWxpemUnLAorICAgICAgICBkYXRhX2dyaWRfdXRpbHMu dGVzdF9jYXNlcworICAgICkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5k YXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KKyAgICAgICAgc2Vs Zi5kaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zaWQgPSBw YXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYu c2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lk LCBzZWxmLmRpZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToK KyAgICAgICAgICAgIHJhaXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKKworICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVu dF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXVsic2NoZW1hX25hbWUiXQor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhlY3V0ZUVycm9yKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFt ZSA9ICJ0YWJsZV9mb3Jfd2l6YXJkJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi50cmFu c19pZCA9IHN0cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKKyAgICAgICAgcXRfaW5pdCA9 IGRhdGFfZ3JpZF91dGlscy5faW5pdF9xdWVyeV90b29sKHNlbGYsIHNlbGYudHJhbnNfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNn aWQsIHNlbGYuc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kaWQpCisKKyAgICAgICAgaWYgbm90IHF0X2luaXRbJ3N1Y2Nlc3MnXToK KyAgICAgICAgICAgIHJhaXNlIEV4ZWN1dGVFcnJvcigiQ291bGQgbm90IGluaXRpYWxpemUgcXVl 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 eSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQppbmRleCAwZjU2YjYw Li45ZGE4ODQyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5CkBAIC0x MCwxNyArMTAsMTUgQEAKICIiIkEgYmx1ZXByaW50IG1vZHVsZSBpbXBsZW1lbnRpbmcgdGhlIHNx bGVkaXRvciBmcmFtZS4iIiIKIGltcG9ydCBvcwogaW1wb3J0IHBpY2tsZQotaW1wb3J0IHN5cwog aW1wb3J0IHJlCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdW5xdW90ZQogCiBpbXBvcnQgc2lt cGxlanNvbiBhcyBqc29uCi1mcm9tIGZsYXNrIGltcG9ydCBSZXNwb25zZSwgdXJsX2ZvciwgcmVu ZGVyX3RlbXBsYXRlLCBzZXNzaW9uLCByZXF1ZXN0LCBcCi0gICAgY3VycmVudF9hcHAKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUiwgT05fREVNQU5EX1JFQ09SRF9DT1VOVAor ZnJvbSBmbGFzayBpbXBvcnQgUmVzcG9uc2UsIHVybF9mb3IsIHJlbmRlcl90ZW1wbGF0ZSwgc2Vz c2lvbiwgY3VycmVudF9hcHAKK2Zyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QsIGpzb25pZnkKIGZy b20gZmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dAogZnJvbSBmbGFza19zZWN1cml0eSBpbXBv cnQgbG9naW5fcmVxdWlyZWQsIGN1cnJlbnRfdXNlcgotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0 IHVucXVvdGUKLQotZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSLCBPTl9ERU1B TkRfUkVDT1JEX0NPVU5UCiBmcm9tIHBnYWRtaW4ubWlzYy5maWxlX21hbmFnZXIgaW1wb3J0IEZp bGVtYW5hZ2VyCiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLmNvbW1hbmQgaW1wb3J0IFF1 ZXJ5VG9vbENvbW1hbmQKIGZyb20gcGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuY29uc3Rh bnRfZGVmaW5pdGlvbiBpbXBvcnQgQVNZTkNfT0ssIFwKQEAgLTMyLDExICszMCwxMSBAQCBmcm9t IHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnVwZGF0ZV9zZXNzaW9uX2dyaWRfdHJhbnNh Y3Rpb24gaW1wb3J0IFwKIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgUGdBZG1pbk1vZHVsZQog ZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBnZXRfc3RvcmFnZV9kaXJlY3RvcnkKIGZyb20gcGdh ZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGJhZF9yZXF1ZXN0LCBc Ci0gICAgc3VjY2Vzc19yZXR1cm4sIGludGVybmFsX3NlcnZlcl9lcnJvciwgbWFrZV9yZXNwb25z ZSBhcyBhamF4X3Jlc3BvbnNlCisgICAgc3VjY2Vzc19yZXR1cm4sIGludGVybmFsX3NlcnZlcl9l cnJvcgogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgotZnJvbSBw Z2FkbWluLnV0aWxzLm1lbnUgaW1wb3J0IE1lbnVJdGVtCi1mcm9tIHBnYWRtaW4udXRpbHMuZXhj ZXB0aW9uIGltcG9ydCBDb25uZWN0aW9uTG9zdCwgU1NIVHVubmVsQ29ubmVjdGlvbkxvc3QsXAor ZnJvbSBwZ2FkbWluLnV0aWxzLmV4Y2VwdGlvbiBpbXBvcnQgQ29ubmVjdGlvbkxvc3QsIFNTSFR1 bm5lbENvbm5lY3Rpb25Mb3N0LCBcCiAgICAgQ3J5cHRLZXlNaXNzaW5nCitmcm9tIHBnYWRtaW4u dXRpbHMubWVudSBpbXBvcnQgTWVudUl0ZW0KIGZyb20gcGdhZG1pbi51dGlscy5zcWxhdXRvY29t cGxldGUuYXV0b2NvbXBsZXRlIGltcG9ydCBTUUxBdXRvQ29tcGxldGUKIGZyb20gcGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMucXVlcnlfdG9vbF9wcmVmZXJlbmNlcyBpbXBvcnQgXAogICAg IHJlZ2lzdGVyX3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMKQEAgLTQ0LDEzICs0MiwxNiBAQCBmcm9t IHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5X3Rvb2xfZnNfdXRpbHMgaW1wb3J0 IFwKICAgICByZWFkX2ZpbGVfZ2VuZXJhdG9yCiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9y LnV0aWxzLmZpbHRlcl9kaWFsb2cgaW1wb3J0IEZpbHRlckRpYWxvZwogZnJvbSBwZ2FkbWluLnRv b2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV9oaXN0b3J5IGltcG9ydCBRdWVyeUhpc3RvcnkKLWZy b20gcGdhZG1pbi51dGlscy5jb25zdGFudHMgaW1wb3J0IE1JTUVUWVBFX0FQUF9KUywgU0VSVkVS X0NPTk5FQ1RJT05fQ0xPU0VELFwKLSAgICBFUlJPUl9NU0dfVFJBTlNfSURfTk9UX0ZPVU5ECiBm cm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLm1hY3JvcyBpbXBvcnQgZ2V0X21hY3Jv cyxcCiAgICAgZ2V0X3VzZXJfbWFjcm9zLCBzZXRfbWFjcm9zCitmcm9tIHBnYWRtaW4udXRpbHMu Y29uc3RhbnRzIGltcG9ydCBNSU1FVFlQRV9BUFBfSlMsIFwKKyAgICBTRVJWRVJfQ09OTkVDVElP Tl9DTE9TRUQsIEVSUk9SX01TR19UUkFOU19JRF9OT1RfRk9VTkQsIEVSUk9SX0ZFVENISU5HX0RB VEEKK2Zyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCitmcm9tIHBnYWRtaW4udG9vbHMu c2NoZW1hX2RpZmYubm9kZV9yZWdpc3RyeSBpbXBvcnQgU2NoZW1hRGlmZlJlZ2lzdHJ5CiAKIE1P RFVMRV9OQU1FID0gJ3NxbGVkaXRvcicKIFRSQU5TQUNUSU9OX1NUQVRVU19DSEVDS19GQUlMRUQg PSBnZXR0ZXh0KCJUcmFuc2FjdGlvbiBzdGF0dXMgY2hlY2sgZmFpbGVkLiIpCitfTk9ERVNfU1FM ID0gJ25vZGVzLnNxbCcKIAogCiBjbGFzcyBTcWxFZGl0b3JNb2R1bGUoUGdBZG1pbk1vZHVsZSk6 CkBAIC0xMTQsNyArMTE1LDEzIEBAIGNsYXNzIFNxbEVkaXRvck1vZHVsZShQZ0FkbWluTW9kdWxl KToKICAgICAgICAgICAgICdzcWxlZGl0b3IuY2xlYXJfcXVlcnlfaGlzdG9yeScsCiAgICAgICAg ICAgICAnc3FsZWRpdG9yLmdldF9tYWNybycsCiAgICAgICAgICAgICAnc3FsZWRpdG9yLmdldF9t YWNyb3MnLAotICAgICAgICAgICAgJ3NxbGVkaXRvci5zZXRfbWFjcm9zJworICAgICAgICAgICAg J3NxbGVkaXRvci5zZXRfbWFjcm9zJywKKyAgICAgICAgICAgICdzcWxlZGl0b3IuZ2V0X25ld19j b25uZWN0aW9uX2RhdGEnLAorICAgICAgICAgICAgJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rp b25fZGF0YWJhc2UnLAorICAgICAgICAgICAgJ3NxbGVkaXRvci5nZXRfbmV3X2Nvbm5lY3Rpb25f dXNlcicsCisgICAgICAgICAgICAnc3FsZWRpdG9yLmdldF9uZXdfY29ubmVjdGlvbl9yb2xlJywK KyAgICAgICAgICAgICdzcWxlZGl0b3IuY29ubmVjdF9zZXJ2ZXInLAorICAgICAgICAgICAgJ3Nx bGVkaXRvci5jb25uZWN0X3NlcnZlcl93aXRoX3VzZXInLAogICAgICAgICBdCiAKICAgICBkZWYg cmVnaXN0ZXJfcHJlZmVyZW5jZXMoc2VsZik6CkBAIC0yMzAsNyArMjM3LDcgQEAgZGVmIHN0YXJ0 X3ZpZXdfZGF0YSh0cmFuc19pZCk6CiAgICAgICAgICAgICApCiAKICAgICBpZiBzdGF0dXMgYW5k IGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5k IHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBO b25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKICAgICAgICAgIyBzZXQgZmV0Y2hlZCBy b3cgY291bnQgdG8gMCBhcyB3ZSBhcmUgZXhlY3V0aW5nIHF1ZXJ5IGFnYWluLgogICAgICAgICB0 cmFuc19vYmoudXBkYXRlX2ZldGNoZWRfcm93X2NudCgwKQogCkBAIC0zNzYsNyArMzgzLDcgQEAg ZGVmIHBvbGwodHJhbnNfaWQpOgogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0cmFuc19vYmos IFF1ZXJ5VG9vbENvbW1hbmQpOgogICAgICAgICAgICAgICAgIHRyYW5zX3N0YXR1cyA9IGNvbm4u dHJhbnNhY3Rpb25fc3RhdHVzKCkKICAgICAgICAgICAgICAgICBpZiB0cmFuc19zdGF0dXMgPT0g VFhfU1RBVFVTX0lORVJST1IgYW5kIFwKLSAgICAgICAgICAgICAgICAgICB0cmFuc19vYmouYXV0 b19yb2xsYmFjazoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX29iai5hdXRvX3JvbGxi YWNrOgogICAgICAgICAgICAgICAgICAgICBjb25uLmV4ZWN1dGVfdm9pZCgiUk9MTEJBQ0s7IikK IAogICAgICAgICAgICAgc3QsIHJlc3VsdCA9IGNvbm4uYXN5bmNfZmV0Y2htYW55XzJkYXJyYXko T05fREVNQU5EX1JFQ09SRF9DT1VOVCkKQEAgLTY4NiwxMyArNjkzLDEyIEBAIGRlZiBzYXZlKHRy YW5zX2lkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9NDA0KQog CiAgICAgaWYgc3RhdHVzIGFuZCBjb25uIGlzIG5vdCBOb25lIGFuZCBcCi0gICAgICAgdHJhbnNf b2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKKyAgICAgICAgICAg IHRyYW5zX29iaiBpcyBub3QgTm9uZSBhbmQgc2Vzc2lvbl9vYmogaXMgbm90IE5vbmU6CiAKICAg ICAgICAgIyBJZiB0aGVyZSBpcyBubyBwcmltYXJ5IGtleSBmb3VuZCB0aGVuIHJldHVybiBmcm9t IHRoZSBmdW5jdGlvbi4KICAgICAgICAgaWYgKCdwcmltYXJ5X2tleXMnIG5vdCBpbiBzZXNzaW9u X29iaiBvcgotICAgICAgICAgICBsZW4oc2Vzc2lvbl9vYmpbJ3ByaW1hcnlfa2V5cyddKSA8PSAw IG9yCi0gICAgICAgICAgIGxlbihjaGFuZ2VkX2RhdGEpIDw9IDApIGFuZCBcCi0gICAgICAgICAg ICdoYXNfb2lkcycgbm90IGluIHNlc3Npb25fb2JqOgorICAgICAgICAgICAgbGVuKHNlc3Npb25f b2JqWydwcmltYXJ5X2tleXMnXSkgPD0gMCBvcgorICAgICAgICAgICAgICAgIGxlbihjaGFuZ2Vk X2RhdGEpIDw9IDApIGFuZCAnaGFzX29pZHMnIG5vdCBpbiBzZXNzaW9uX29iajoKICAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgZGF0YT17CiAg ICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiBGYWxzZSwKQEAgLTc1OSw3ICs3NjUsNyBAQCBk ZWYgYXBwZW5kX2ZpbHRlcl9pbmNsdXNpdmUodHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMg bm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25f b2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBz ZXNzaW9uX29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICByZXMgPSBOb25lCiAgICAgICAgIGZp bHRlcl9zcWwgPSAnJwpAQCAtODEzLDcgKzgxOSw3IEBAIGRlZiBhcHBlbmRfZmlsdGVyX2V4Y2x1 c2l2ZSh0cmFuc19pZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbz0n REFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXR1cz00MDQpCiAgICAgaWYgc3RhdHVzIGFuZCBjb25uIGlzIG5vdCBOb25l IGFuZCBcCi0gICAgICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgIHRyYW5zX29iaiBpcyBub3QgTm9uZSBhbmQgc2Vzc2lvbl9v YmogaXMgbm90IE5vbmU6CiAKICAgICAgICAgcmVzID0gTm9uZQogICAgICAgICBmaWx0ZXJfc3Fs ID0gJycKQEAgLTg2Niw3ICs4NzIsNyBAQCBkZWYgcmVtb3ZlX2ZpbHRlcih0cmFuc19pZCk6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQwNCkKIAogICAgIGlmIHN0 YXR1cyBhbmQgY29ubiBpcyBub3QgTm9uZSBhbmQgXAotICAgICAgIHRyYW5zX29iaiBpcyBub3Qg Tm9uZSBhbmQgc2Vzc2lvbl9vYmogaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cmFuc19vYmog aXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgogCiAgICAgICAgIHJlcyA9 IE5vbmUKIApAQCAtOTEwLDcgKzkxNiw3IEBAIGRlZiBzZXRfbGltaXQodHJhbnNfaWQpOgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBzdGF0 dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90IE5v bmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2JqIGlz IG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICByZXMgPSBO b25lCiAKQEAgLTEwNTIsNyArMTA1OCw3IEBAIGRlZiBnZXRfb2JqZWN0X25hbWUodHJhbnNfaWQp OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBp ZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMg bm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNf b2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKICAgICAgICAgcmVz ID0gdHJhbnNfb2JqLm9iamVjdF9uYW1lCiAgICAgZWxzZToKICAgICAgICAgc3RhdHVzID0gRmFs c2UKQEAgLTEwODgsNyArMTA5NCw3IEBAIGRlZiBzZXRfYXV0b19jb21taXQodHJhbnNfaWQpOgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQpCiAKICAgICBpZiBz dGF0dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFuc19vYmogaXMgbm90 IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJhbnNfb2Jq IGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKIAogICAgICAgICByZXMg PSBOb25lCiAKQEAgLTExMzMsNyArMTEzOSw3IEBAIGRlZiBzZXRfYXV0b19yb2xsYmFjayh0cmFu c19pZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQwNCkKIAog ICAgIGlmIHN0YXR1cyBhbmQgY29ubiBpcyBub3QgTm9uZSBhbmQgXAotICAgICAgIHRyYW5zX29i aiBpcyBub3QgTm9uZSBhbmQgc2Vzc2lvbl9vYmogaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0 cmFuc19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgogCiAgICAg ICAgIHJlcyA9IE5vbmUKIApAQCAtMTE4NSw3ICsxMTkxLDcgQEAgZGVmIGF1dG9fY29tcGxldGUo dHJhbnNfaWQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MDQp CiAKICAgICBpZiBzdGF0dXMgYW5kIGNvbm4gaXMgbm90IE5vbmUgYW5kIFwKLSAgICAgICB0cmFu c19vYmogaXMgbm90IE5vbmUgYW5kIHNlc3Npb25fb2JqIGlzIG5vdCBOb25lOgorICAgICAgICAg ICAgdHJhbnNfb2JqIGlzIG5vdCBOb25lIGFuZCBzZXNzaW9uX29iaiBpcyBub3QgTm9uZToKIAog ICAgICAgICAjIENyZWF0ZSBvYmplY3Qgb2YgU1FMQXV0b0NvbXBsZXRlIGNsYXNzIGFuZCBwYXNz IGNvbm5lY3Rpb24gb2JqZWN0CiAgICAgICAgIGF1dG9fY29tcGxldGVfb2JqID0gU1FMQXV0b0Nv bXBsZXRlKApAQCAtMTQ3Miw2ICsxNDc4LDI4MiBAQCBkZWYgZ2V0X2ZpbHRlcl9kYXRhKHRyYW5z X2lkKToKICAgICByZXR1cm4gRmlsdGVyRGlhbG9nLmdldChzdGF0dXMsIGVycm9yX21zZywgY29u biwgdHJhbnNfb2JqLCBzZXNzaW9uX29iKQogCiAKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9u ZXdfY29ubmVjdGlvbl9kaWFsb2cvPGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1ldGhvZHM9 WyJHRVQiXSwgZW5kcG9pbnQ9J2dldF9uZXdfY29ubmVjdGlvbl9kYXRhJworKQorQGxvZ2luX3Jl cXVpcmVkCitkZWYgZ2V0X25ld19jb25uZWN0aW9uX2RhdGEoc2dpZCwgc2lkPU5vbmUpOgorICAg ICIiIgorICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ2V0IHJlcXVpcmVkIGRhdGEgZm9yIGdl dCBuZXcgY29ubmVjdGlvbi4KKyAgICA6ZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRl cnMsCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICAjIGlmIHNpZCBhbmQgbm90IGRpZDoKKyAg ICAgICAgc2VydmVycyA9IFNlcnZlci5xdWVyeS5hbGwoKQorICAgICAgICBzZXJ2ZXJfbGlzdCA9 IFsKKyAgICAgICAgICAgIHsnbmFtZSc6IHNlcnZlci5zZXJpYWxpemVbJ25hbWUnXSwgImlkIjog c2VydmVyLnNlcmlhbGl6ZVsnaWQnXX0KKyAgICAgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVy c10KKworICAgICAgICBtc2cgPSAiU3VjY2VzcyIKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICdzdGF0dXMnOiBU cnVlLAorICAgICAgICAgICAgICAgICdtc2cnOiBtc2csCisgICAgICAgICAgICAgICAgJ3Jlc3Vs dCc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3NlcnZlcl9saXN0Jzogc2VydmVyX2xpc3QKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkKKworICAgIGV4Y2VwdCBF eGNlcHRpb246CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICBkYXRhPXsKKyAgICAgICAgICAgICAgICAnc3RhdHVzJzogRmFsc2UsCisgICAgICAgICAgICAg ICAgJ21zZyc6IEVSUk9SX0ZFVENISU5HX0RBVEEsCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6 IHsKKyAgICAgICAgICAgICAgICAgICAgJ3NlcnZlcl9saXN0JzogW10KKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICB9CisgICAgICAgICkKKworCitAYmx1ZXByaW50LnJvdXRlKAorICAg ICcvbmV3X2Nvbm5lY3Rpb25fZGF0YWJhc2UvPGludDpzZ2lkPi88aW50OnNpZD4nLAorICAgIG1l dGhvZHM9WyJHRVQiXSwgZW5kcG9pbnQ9J2dldF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZScKKykK K0Bsb2dpbl9yZXF1aXJlZAorZGVmIGdldF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZShzZ2lkLCBz aWQ9Tm9uZSk6CisgICAgIiIiCisgICAgVGhpcyBtZXRob2QgaXMgdXNlZCB0byBnZXQgcmVxdWly ZWQgZGF0YSBmb3IgZ2V0IG5ldyBjb25uZWN0aW9uLgorICAgIDpleHRyYWN0X3NxbF9mcm9tX25l dHdvcmtfcGFyYW1ldGVycywKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGRhdGFiYXNlX2xp c3QgPSBbXQorICAgICAgICBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJp dmVyCisgICAgICAgIG1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25u ZWN0aW9uX21hbmFnZXIoc2lkKQorICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKCkK KyAgICAgICAgaWYgY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgIGlzX2Nvbm5lY3RlZCA9 IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlzX2Nvbm5lY3RlZCA9IEZhbHNlCisg ICAgICAgIGlmIGlzX2Nvbm5lY3RlZDoKKyAgICAgICAgICAgIGlmIHNpZDoKKyAgICAgICAgICAg ICAgICB0ZW1wbGF0ZV9wYXRoID0gJ2RhdGFiYXNlcy9zcWwvI3swfSMnLmZvcm1hdChtYW5hZ2Vy LnZlcnNpb24pCisgICAgICAgICAgICAgICAgbGFzdF9zeXN0ZW1fb2lkID0gMAorICAgICAgICAg ICAgICAgIHNlcnZlcl9ub2RlX3JlcyA9IG1hbmFnZXIKKworICAgICAgICAgICAgICAgIGRiX2Rp c3BfcmVzID0gTm9uZQorICAgICAgICAgICAgICAgIHBhcmFtcyA9IE5vbmUKKyAgICAgICAgICAg ICAgICBpZiBzZXJ2ZXJfbm9kZV9yZXMgYW5kIHNlcnZlcl9ub2RlX3Jlcy5kYl9yZXM6CisgICAg ICAgICAgICAgICAgICAgIGRiX2Rpc3BfcmVzID0gIiwgIi5qb2luKAorICAgICAgICAgICAgICAg ICAgICAgICAgWyclcyddICogbGVuKHNlcnZlcl9ub2RlX3Jlcy5kYl9yZXMuc3BsaXQoJywnKSkK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSB0dXBs ZShzZXJ2ZXJfbm9kZV9yZXMuZGJfcmVzLnNwbGl0KCcsJykpCisgICAgICAgICAgICAgICAgc3Fs ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbdGVtcGxh dGVfcGF0aCwgX05PREVTX1NRTF0pLAorICAgICAgICAgICAgICAgICAgICBsYXN0X3N5c3RlbV9v aWQ9bGFzdF9zeXN0ZW1fb2lkLAorICAgICAgICAgICAgICAgICAgICBkYl9yZXN0cmljdGlvbnM9 ZGJfZGlzcF9yZXMKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3RhdHVzLCBk YXRhYmFzZXMgPSBjb25uLmV4ZWN1dGVfZGljdChzcWwsIHBhcmFtcykKKyAgICAgICAgICAgICAg ICBkYXRhYmFzZV9saXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J2xhYmVsJzogZGF0YWJh c2VbJ25hbWUnXSwgJ3ZhbHVlJzogZGF0YWJhc2VbJ2RpZCddfSBmb3IKKyAgICAgICAgICAgICAg ICAgICAgZGF0YWJhc2UgaW4gZGF0YWJhc2VzWydyb3dzJ11dCisgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgIHN0YXR1cyA9IEZhbHNlCisKKyAgICAgICAgICAgIG1zZyA9ICJTdWNj ZXNzIgorICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IHN0YXR1cywKKyAgICAg ICAgICAgICAgICAgICAgJ21zZyc6IG1zZywKKyAgICAgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6 IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogZGF0YWJhc2VfbGlzdCwKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnOiBGYWxzZSwKKyAg ICAgICAgICAgICAgICAgICAgJ21zZyc6IFNFUlZFUl9DT05ORUNUSU9OX0NMT1NFRCwKKyAgICAg ICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRh YmFzZV9saXN0JzogW10sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICApCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICdz dGF0dXMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAnbXNnJzogRVJST1JfRkVUQ0hJTkdfREFU QSwKKyAgICAgICAgICAgICAgICAncmVzdWx0JzogeworICAgICAgICAgICAgICAgICAgICAnZGF0 YWJhc2VfbGlzdCc6IFtdLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg ICAgKQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9uZXdfY29ubmVjdGlvbl91c2VyLzxp bnQ6c2dpZD4vPGludDpzaWQ+JywKKyAgICBtZXRob2RzPVsiR0VUIl0sIGVuZHBvaW50PSdnZXRf bmV3X2Nvbm5lY3Rpb25fdXNlcicKKykKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGdldF9uZXdfY29u bmVjdGlvbl91c2VyKHNnaWQsIHNpZD1Ob25lKToKKyAgICAiIiIKKyAgICBUaGlzIG1ldGhvZCBp cyB1c2VkIHRvIGdldCByZXF1aXJlZCBkYXRhIGZvciBnZXQgbmV3IGNvbm5lY3Rpb24uCisgICAg OmV4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzLAorICAgICIiIgorICAgIHRyeToK KyAgICAgICAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorICAg ICAgICBtYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9t YW5hZ2VyKHNpZCkKKyAgICAgICAgY29ubiA9IG1hbmFnZXIuY29ubmVjdGlvbigpCisgICAgICAg IHVzZXJfbGlzdCA9IFtdCisgICAgICAgIGlmIGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAg ICBpc19jb25uZWN0ZWQgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpc19jb25u ZWN0ZWQgPSBGYWxzZQorICAgICAgICBpZiBpc19jb25uZWN0ZWQ6CisgICAgICAgICAgICBpZiBz aWQ6CisgICAgICAgICAgICAgICAgc3FsX3BhdGggPSAncm9sZXMvc3FsLyN7MH0jJy5mb3JtYXQo bWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgICAgIHN0YXR1cywgdXNlcnMgPSBjb25uLmV4 ZWN1dGVfMmRhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKHNxbF9w YXRoICsgX05PREVTX1NRTCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgdXNl cl9saXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J3ZhbHVlJzogdXNlclsncm9sbmFtZSdd LCAnbGFiZWwnOiB1c2VyWydyb2xuYW1lJ119IGZvcgorICAgICAgICAgICAgICAgICAgICB1c2Vy IGluIHVzZXJzWydyb3dzJ10gaWYgdXNlclsncm9sY2FubG9naW4nXV0KKyAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgc3RhdHVzID0gRmFsc2UKKworICAgICAgICAgICAgbXNnID0g IlN1Y2Nlc3MiCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogc3RhdHVzLAor ICAgICAgICAgICAgICAgICAgICAnbXNnJzogbXNnLAorICAgICAgICAgICAgICAgICAgICAncmVz dWx0JzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiB1c2VyX2xpc3QsCisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogRmFsc2UsCisg ICAgICAgICAgICAgICAgICAgICdtc2cnOiBTRVJWRVJfQ09OTkVDVElPTl9DTE9TRUQsCisgICAg ICAgICAgICAgICAgICAgICdyZXN1bHQnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAndXNl cl9saXN0JzogW10sCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICApCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICdzdGF0 dXMnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAnbXNnJzogJ1VuYWJsZSB0byBmZXRjaCBkYXRh LicsCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3Vz ZXJfbGlzdCc6IFtdLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg KQorCisKK0BibHVlcHJpbnQucm91dGUoCisgICAgJy9uZXdfY29ubmVjdGlvbl9yb2xlLzxpbnQ6 c2dpZD4vPGludDpzaWQ+JywKKyAgICBtZXRob2RzPVsiR0VUIl0sIGVuZHBvaW50PSdnZXRfbmV3 X2Nvbm5lY3Rpb25fcm9sZScKKykKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGdldF9uZXdfY29ubmVj dGlvbl9yb2xlKHNnaWQsIHNpZD1Ob25lKToKKyAgICAiIiIKKyAgICBUaGlzIG1ldGhvZCBpcyB1 c2VkIHRvIGdldCByZXF1aXJlZCBkYXRhIGZvciBnZXQgbmV3IGNvbm5lY3Rpb24uCisgICAgOmV4 dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzLAorICAgICIiIgorICAgIHRyeToKKyAg ICAgICAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgorICAgICAg ICBtYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKHNpZCkKKyAgICAgICAgY29ubiA9IG1hbmFnZXIuY29ubmVjdGlvbigpCisgICAgICAgIHJv bGVfbGlzdCA9IFtdCisgICAgICAgIGlmIGNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICBp c19jb25uZWN0ZWQgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpc19jb25uZWN0 ZWQgPSBGYWxzZQorICAgICAgICBpZiBpc19jb25uZWN0ZWQ6CisgICAgICAgICAgICBpZiBzaWQ6 CisgICAgICAgICAgICAgICAgc3FsX3BhdGggPSAncm9sZXMvc3FsLyN7MH0jJy5mb3JtYXQobWFu YWdlci52ZXJzaW9uKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcm9sZXMgPSBjb25uLmV4ZWN1 dGVfMmRhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKHNxbF9wYXRo ICsgX05PREVTX1NRTCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgcm9sZV9s aXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J3ZhbHVlJzogcm9sZVsncm9sbmFtZSddLCAn bGFiZWwnOiByb2xlWydyb2xuYW1lJ119IGZvcgorICAgICAgICAgICAgICAgICAgICByb2xlIGlu IHJvbGVzWydyb3dzJ11dCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN0YXR1 cyA9IEZhbHNlCisKKyAgICAgICAgICAgIG1zZyA9ICJTdWNjZXNzIgorICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgJ3N0YXR1cyc6IHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgJ21zZyc6 IG1zZywKKyAgICAgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICdkYXRhJzogcm9sZV9saXN0LAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgJ3N0YXR1cyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAnbXNnJzog U0VSVkVSX0NPTk5FQ1RJT05fQ0xPU0VELAorICAgICAgICAgICAgICAgICAgICAncmVzdWx0Jzog eworICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXJfbGlzdCc6IFtdLAorICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgIGV4Y2VwdCBF eGNlcHRpb246CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICBkYXRhPXsKKyAgICAgICAgICAgICAgICAnc3RhdHVzJzogRmFsc2UsCisgICAgICAgICAgICAg ICAgJ21zZyc6ICdVbmFibGUgdG8gZmV0Y2ggZGF0YS4nLAorICAgICAgICAgICAgICAgICdyZXN1 bHQnOiB7CisgICAgICAgICAgICAgICAgICAgICd1c2VyX2xpc3QnOiBbXSwKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICkKKworCitAYmx1ZXByaW50LnJvdXRlKAor ICAgICcvY29ubmVjdF9zZXJ2ZXIvPGludDpzaWQ+Lzx1c3I+JywKKyAgICBtZXRob2RzPVsiUE9T VCJdLAorICAgIGVuZHBvaW50PSJjb25uZWN0X3NlcnZlcl93aXRoX3VzZXIiCispCitAYmx1ZXBy aW50LnJvdXRlKAorICAgICcvY29ubmVjdF9zZXJ2ZXIvPGludDpzaWQ+JywKKyAgICBtZXRob2Rz PVsiUE9TVCJdLAorICAgIGVuZHBvaW50PSJjb25uZWN0X3NlcnZlciIKKykKK0Bsb2dpbl9yZXF1 aXJlZAorZGVmIGNvbm5lY3Rfc2VydmVyKHNpZCwgdXNyPU5vbmUpOgorICAgICMgQ2hlY2sgaWYg c2VydmVyIGlzIGFscmVhZHkgY29ubmVjdGVkIHRoZW4gbm8gbmVlZCB0byByZWNvbm5lY3QgYWdh aW4uCisgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkK KyAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgIG1hbmFnZXIg PSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKHNpZCkKKyAgICBjb25uID0gbWFuYWdlci5jb25u ZWN0aW9uKCkKKyAgICB1c2VyID0gTm9uZQorCisgICAgaWYgdXNyIGFuZCBtYW5hZ2VyLnVzZXIg IT0gdXNyOgorICAgICAgICB1c2VyID0gdXNyCisgICAgZWxzZToKKyAgICAgICAgdXNlciA9IG1h bmFnZXIudXNlcgorICAgICAgICBpZiBjb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAg ICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJTZXJ2ZXIgY29ubmVjdGVkLiIpLAorICAgICAgICAg ICAgICAgIGRhdGE9e30KKyAgICAgICAgICAgICkKKworICAgIHZpZXcgPSBTY2hlbWFEaWZmUmVn aXN0cnkuZ2V0X25vZGVfdmlldygnc2VydmVyJykKKyAgICByZXR1cm4gdmlldy5jb25uZWN0KHNl cnZlci5zZXJ2ZXJncm91cF9pZCwgc2lkLCB1c2VyX25hbWU9dXNlcikKKworCiBAYmx1ZXByaW50 LnJvdXRlKAogICAgICcvZmlsdGVyX2RpYWxvZy88aW50OnRyYW5zX2lkPicsCiAgICAgbWV0aG9k cz1bIlBVVCJdLCBlbmRwb2ludD0nc2V0X2ZpbHRlcl9kYXRhJwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MKaW5kZXggYzI4MWQ1 My4uMjA1OTBkMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRp Yy9jc3Mvc3FsZWRpdG9yLmNzcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3Rh dGljL2Nzcy9zcWxlZGl0b3IuY3NzCkBAIC0zMTUsMTAgKzMxNSw2IEBAIGlucHV0LmVkaXRvci1j aGVja2JveDpmb2N1cyB7CiAgIHBhZGRpbmc6IDEwcHggMHB4OwogfQogCi0uZWRpdG9yLXRpdGxl IHsKLSAgd2lkdGg6MTAwJTsKLX0KLQogLmNvbm5lY3Rpb24tc3RhdHVzLWhpZGUgewogICBkaXNw bGF5OiBub25lICFpbXBvcnRhbnQ7CiB9CkBAIC0zOTYsNyArMzkyLDYgQEAgaW5wdXQuZWRpdG9y LWNoZWNrYm94OmZvY3VzIHsKICAgb3ZlcmZsb3cteTogaGlkZGVuOwogfQogCi0KIC8qICBNYWNy b3MgKi8KIAogLm1hY3JvLXRhYiB7CkBAIC00MjQsMyArNDE5LDcgQEAgaW5wdXQuZWRpdG9yLWNo ZWNrYm94OmZvY3VzIHsKIC5tYWNyb19kaWFsb2cgIC5wZy1wcm9wLXN0YXR1cy1iYXIgewogICB6 LWluZGV4OiAxOwogfQorCisubmV3LWNvbm5lY3Rpb24tZGlhbG9nLXN0eWxlIHsKKyAgd2lkdGg6 IDEwMCUgIWltcG9ydGFudDsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKaW5kZXggZWQzYmQ1OS4uNGVmNGI4ZiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKQEAg LTE0LDYgKzE0LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICdqcXVlcnl1aS5w b3NpdGlvbicsICd1bmRlcnNjb3JlJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsCiAgICdzb3VyY2Vz L3BnYWRtaW4nLCAnYmFja2JvbmUnLCAnYnVuZGxlZF9jb2RlbWlycm9yJywgJ3NvdXJjZXMvdXRp bHMnLAogICAncGdhZG1pbi5taXNjLmV4cGxhaW4nLAorICAncGdhZG1pbi51c2VyX21hbmFnZW1l bnQuY3VycmVudF91c2VyJywKICAgJ3NvdXJjZXMvc2VsZWN0aW9uL2dyaWRfc2VsZWN0b3InLAog ICAnc291cmNlcy9zZWxlY3Rpb24vYWN0aXZlX2NlbGxfY2FwdHVyZScsCiAgICdzb3VyY2VzL3Nl bGVjdGlvbi9jbGlwYm9hcmQnLApAQCAtMjYsNiArMjcsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5 dG9vbCcsIFsKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnknLAogICAnc291cmNl cy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9odHRwX2Vycm9yX2hhbmRsZXInLAogICAnc291cmNlcy9z cWxlZGl0b3IvZmlsdGVyX2RpYWxvZycsCisgICdzb3VyY2VzL3NxbGVkaXRvci9uZXdfY29ubmVj dGlvbl9kaWFsb2cnLAogICAnc291cmNlcy9zcWxlZGl0b3IvZ2VvbWV0cnlfdmlld2VyJywKICAg J3NvdXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvaGlzdG9yeV9jb2xsZWN0aW9uLmpzJywKICAgJ3Nv dXJjZXMvc3FsZWRpdG9yL2hpc3RvcnkvcXVlcnlfaGlzdG9yeScsCkBAIC01Myw4ICs1NSw4IEBA IGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAncGdhZG1pbi50b29scy51c2VyX21hbmFn ZW1lbnQnLAogXSwgZnVuY3Rpb24oCiAgIGdldHRleHQsIHVybF9mb3IsICQsIGpxdWVyeXVpLCBq cXVlcnl1aV9wb3NpdGlvbiwgXywgYWxlcnRpZnksIHBnQWRtaW4sIEJhY2tib25lLCBjb2RlbWly cm9yLCBwZ2FkbWluVXRpbHMsCi0gIHBnRXhwbGFpbiwgR3JpZFNlbGVjdG9yLCBBY3RpdmVDZWxs Q2FwdHVyZSwgY2xpcGJvYXJkLCBjb3B5RGF0YSwgUmFuZ2VTZWxlY3Rpb25IZWxwZXIsIGhhbmRs ZVF1ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudCwKLSAgWENlbGxTZWxlY3Rpb25Nb2RlbCwgc2V0U3Rh Z2VkUm93cywgU3FsRWRpdG9yVXRpbHMsIEV4ZWN1dGVRdWVyeSwgaHR0cEVycm9ySGFuZGxlciwg RmlsdGVySGFuZGxlciwKKyAgcGdFeHBsYWluLCBjdXJyZW50X3VzZXIsIEdyaWRTZWxlY3Rvciwg QWN0aXZlQ2VsbENhcHR1cmUsIGNsaXBib2FyZCwgY29weURhdGEsIFJhbmdlU2VsZWN0aW9uSGVs cGVyLCBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZlbnQsCisgIFhDZWxsU2VsZWN0aW9uTW9k ZWwsIHNldFN0YWdlZFJvd3MsIFNxbEVkaXRvclV0aWxzLCBFeGVjdXRlUXVlcnksIGh0dHBFcnJv ckhhbmRsZXIsIEZpbHRlckhhbmRsZXIsIG5ld0Nvbm5lY3Rpb25IYW5kbGVyLAogICBHZW9tZXRy eVZpZXdlciwgaGlzdG9yeUNvbGwsIHF1ZXJ5SGlzdCwgcXVlcnlTb3VyY2VzLAogICBrZXlib2Fy ZFNob3J0Y3V0cywgcXVlcnlUb29sQWN0aW9ucywgcXVlcnlUb29sTm90aWZpY2F0aW9ucywgRGF0 YWdyaWQsCiAgIG1vZGlmeUFuaW1hdGlvbiwgY2FsY3VsYXRlUXVlcnlSdW5UaW1lLCBjYWxsUmVu ZGVyQWZ0ZXJQb2xsLCBxdWVyeVRvb2xQcmVmLCBxdWVyeVR4blN0YXR1cywgY3NyZlRva2VuLCBw YW5lbFRpdGxlRnVuYywKQEAgLTk4LDYgKzEwMCw5IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29s JywgWwogICAgICAgdGhpcy5sYXlvdXQgPSBvcHRzLmxheW91dDsKICAgICAgIHRoaXMuc2V0X3Nl cnZlcl92ZXJzaW9uKG9wdHMuc2VydmVyX3Zlcik7CiAgICAgICB0aGlzLnRyaWdnZXIoJ3BnYWRt aW4tc3FsZWRpdG9yOnZpZXc6aW5pdGlhbGlzZWQnKTsKKyAgICAgIHRoaXMuY29ubmVjdGlvbl9s aXN0ID0gWworICAgICAgICB7J3NlcnZlcl9ncm91cCc6IG51bGwsJ3NlcnZlcic6IG51bGwsICdk YXRhYmFzZSc6IG51bGwsICd1c2VyJzogbnVsbCwgJ3JvbGUnOiBudWxsLCAndGl0bGUnOiAnJmx0 O05ldyBDb25uZWN0aW9uJmd0Oyd9LAorICAgICAgXTsKICAgICB9LAogCiAgICAgLy8gQmluZCBh bGwgdGhlIGV2ZW50cwpAQCAtMTYzLDYgKzE2OCwzNSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9v bCcsIFsKICAgICAgICdjbGljayAuYnRuLW1hY3JvJzogJ29uX2V4ZWN1dGVfbWFjcm8nLAogICAg IH0sCiAKKyAgICByZW5kZXJfY29ubmVjdGlvbjogZnVuY3Rpb24oZGF0YV9saXN0KSB7CisgICAg ICBpZih0aGlzLmhhbmRsZXIuaXNfcXVlcnlfdG9vbCkgeworICAgICAgICB2YXIgZHJvcGRvd25F bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvbm5lY3Rpb25zLWxpc3QnKTsKKyAg ICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOworICAgICAgICBkYXRhX2xpc3Qu Zm9yRWFjaCgob3B0aW9uLCBpbmRleCkgPT4geworICAgICAgICAgICQoJyNjb25uZWN0aW9ucy1s aXN0JykuYXBwZW5kKCc8bGkgY2xhc3M9ImNvbm5lY3Rpb24tbGlzdC1pdGVtIiBkYXRhLWluZGV4 PScrIGluZGV4ICsnPjxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBocmVmPSIjIiB0YWJpbmRleD0i MCI+Jysgb3B0aW9uLnRpdGxlICsnPC9hPjwvbGk+Jyk7CisKKyAgICAgICAgfSk7CisgICAgICAg IHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgJCgnLmNvbm5lY3Rpb24tbGlzdC1pdGVtJykuY2xp Y2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgc2VsZi5nZXRfY29ubmVjdGlvbl9kYXRhKHRoaXMp OworICAgICAgICB9KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgICQoJy5jb25uLWluZm8tZGQn KS5oaWRlKCk7CisgICAgICAgICQoJy5lZGl0b3ItdGl0bGUnKS5jc3Moe3BvaW50ZXJFdmVudHM6 ICdub25lJ30pOworICAgICAgfQorICAgIH0sCisKKyAgICBnZXRfY29ubmVjdGlvbl9kYXRhOiBm dW5jdGlvbihldmVudCl7CisgICAgICB2YXIgaW5kZXggPSAkKGV2ZW50KS5hdHRyKCdkYXRhLWlu ZGV4Jyk7CisgICAgICB2YXIgY29ubmVjdGlvbl9kZXRhaWxzID0gdGhpcy5jb25uZWN0aW9uX2xp c3RbaW5kZXhdOworICAgICAgaWYoY29ubmVjdGlvbl9kZXRhaWxzLnNlcnZlcl9ncm91cCkgewor ICAgICAgICB0aGlzLm9uX2NoYW5nZV9jb25uZWN0aW9uKGNvbm5lY3Rpb25fZGV0YWlscyk7Cisg ICAgICB9IGVsc2UgeworICAgICAgICB0aGlzLm9uX25ld19jb25uZWN0aW9uKCk7CisgICAgICB9 CisKKyAgICB9LAorCiAgICAgcmVmbGVjdFByZWZlcmVuY2VzOiBmdW5jdGlvbigpIHsKICAgICAg IGxldCBzZWxmID0gdGhpcywKICAgICAgICAgYnJvd3NlciA9IHBnV2luZG93LmRlZmF1bHQucGdB ZG1pbi5Ccm93c2VyLApAQCAtMjEzLDYgKzI0Nyw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29s JywgWwogCiAgICAgc2V0X2VkaXRvcl90aXRsZTogZnVuY3Rpb24odGl0bGUpIHsKICAgICAgIHRo aXMuJGVsLmZpbmQoJy5lZGl0b3ItdGl0bGUnKS50ZXh0KHRpdGxlKTsKKyAgICAgIHRoaXMucmVu ZGVyX2Nvbm5lY3Rpb24odGhpcy5jb25uZWN0aW9uX2xpc3QpOwogICAgIH0sCiAKICAgICAvLyBU aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVuZGVyIHRoZSB0ZW1wbGF0ZS4KQEAgLTY5Niw2ICs3 MzEsOCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgIHBnQnJvd3Nlci5yZWdp c3Rlcl90b19hY3Rpdml0eV9saXN0ZW5lcihkb2N1bWVudCwgKCk9PnsKICAgICAgICAgYWxlcnRp ZnkuYWxlcnQoZ2V0dGV4dCgnVGltZW91dCcpLCBnZXR0ZXh0KCdZb3VyIHNlc3Npb24gaGFzIHRp bWVkIG91dCBkdWUgdG8gaW5hY3Rpdml0eS4gUGxlYXNlIGNsb3NlIHRoZSB3aW5kb3cgYW5kIGxv Z2luIGFnYWluLicpKTsKICAgICAgIH0pOworCisgICAgICBzZWxmLnJlbmRlcl9jb25uZWN0aW9u KHNlbGYuY29ubmVjdGlvbl9saXN0KTsKICAgICB9LAogCiAgICAgLyogUmVnYXJkaW5nIFNsaWNr R3JpZCB1c2FnZSBpbiByZW5kZXJfZ3JpZCBmdW5jdGlvbi4KQEAgLTE2MDcsNiArMTY0NCwxNyBA QCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICk7CiAgICAgfSwKIAorICAgIG9u X25ld19jb25uZWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKwor ICAgICAgLy8gVHJpZ2dlciB0aGUgc2hvd19maWx0ZXIgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JD b250cm9sbGVyIGNsYXNzCisgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKKyAgICAgICAgJ3Bn YWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzaG93X25ld19jb25uZWN0aW9uJywKKyAgICAgICAgc2Vs ZiwKKyAgICAgICAgc2VsZi5oYW5kbGVyCisgICAgICApOworICAgIH0sCisKICAgICAvLyBDYWxs YmFjayBmdW5jdGlvbiBmb3IgaW5jbHVkZSBmaWx0ZXIgYnV0dG9uIGNsaWNrLgogICAgIG9uX2lu Y2x1ZGVfZmlsdGVyOiBmdW5jdGlvbihldikgewogICAgICAgdmFyIHNlbGYgPSB0aGlzOwpAQCAt MjA3MCw2ICsyMTE4LDgzIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgcXVl cnlUb29sQWN0aW9ucy5leGVjdXRlTWFjcm8odGhpcy5oYW5kbGVyLCBtYWNyb0lkKTsKICAgICB9 LAogCisgICAgb25fY2hhbmdlX2Nvbm5lY3Rpb246IGZ1bmN0aW9uKGNvbm5lY3Rpb25fZGV0YWls cywgcmVmKSB7CisgICAgICBsZXQgdGl0bGUgPSB0aGlzLiRlbC5maW5kKCcuZWRpdG9yLXRpdGxl JykuaHRtbCgpOworICAgICAgaWYoY29ubmVjdGlvbl9kZXRhaWxzWyd0aXRsZSddICE9IHRpdGxl KSB7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgJC5hamF4KHsKKyAgICAgICAg ICBhc3luYzogZmFsc2UsCisgICAgICAgICAgdXJsOiB1cmxfZm9yKCdkYXRhZ3JpZC51cGRhdGVf cXVlcnlfdG9vbF9jb25uZWN0aW9uJywgeworICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50 cmFuc0lkLAorICAgICAgICAgICAgJ3NnaWQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZlcl9n cm91cCddLAorICAgICAgICAgICAgJ3NpZCc6IGNvbm5lY3Rpb25fZGV0YWlsc1snc2VydmVyJ10s CisgICAgICAgICAgICAnZGlkJzogY29ubmVjdGlvbl9kZXRhaWxzWydkYXRhYmFzZSddLAorICAg ICAgICAgIH0pLAorICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAorICAgICAgICAgIGNvbnRlbnRU eXBlOiAnYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnko Y29ubmVjdGlvbl9kZXRhaWxzKSwKKyAgICAgICAgfSkKKyAgICAgICAgICAuZG9uZShmdW5jdGlv bihyZXMpIHsKKyAgICAgICAgICAgIGlmKHJlcy5zdWNjZXNzKSB7CisgICAgICAgICAgICAgIHNl bGYudHJhbnNJZCA9IHJlcy5kYXRhLnRyYW5faWQ7CisgICAgICAgICAgICAgIHNlbGYuaGFuZGxl ci50cmFuc0lkID0gcmVzLmRhdGEudHJhbl9pZDsKKyAgICAgICAgICAgICAgc2VsZi5oYW5kbGVy LnVybF9wYXJhbXMgPSB7CisgICAgICAgICAgICAgICAgJ2RpZCc6IGNvbm5lY3Rpb25fZGV0YWls c1snZGF0YWJhc2UnXSwKKyAgICAgICAgICAgICAgICAnaXNfcXVlcnlfdG9vbCc6IHNlbGYuaGFu ZGxlci51cmxfcGFyYW1zLmlzX3F1ZXJ5X3Rvb2wsCisgICAgICAgICAgICAgICAgJ3NlcnZlcl90 eXBlJzogc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMuc2VydmVyX3R5cGUsCisgICAgICAgICAgICAg ICAgJ3NnaWQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZlcl9ncm91cCddLAorICAgICAgICAg ICAgICAgICdzaWQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZlciddLAorICAgICAgICAgICAg ICAgICd0aXRsZSc6IGNvbm5lY3Rpb25fZGV0YWlsc1sndGl0bGUnXSwKKyAgICAgICAgICAgICAg fTsKKyAgICAgICAgICAgICAgc2VsZi5zZXRfZWRpdG9yX3RpdGxlKHNlbGYuaGFuZGxlci51cmxf cGFyYW1zLnRpdGxlKTsKKyAgICAgICAgICAgICAgc2VsZi5oYW5kbGVyLnNldFRpdGxlKHNlbGYu aGFuZGxlci51cmxfcGFyYW1zLnRpdGxlKTsKKyAgICAgICAgICAgICAgYWxlcnRpZnkuc3VjY2Vz cygnY29ubmVjdGVkIHN1Y2Nlc3NmdWxseScpOworICAgICAgICAgICAgICBpZihyZWYpeworICAg ICAgICAgICAgICAgIGxldCBjb25uZWN0aW9uX2RhdGEgPSB7CisgICAgICAgICAgICAgICAgICAn c2VydmVyX2dyb3VwJzogc2VsZi5oYW5kbGVyLnVybF9wYXJhbXMuc2dpZCwKKyAgICAgICAgICAg ICAgICAgICdzZXJ2ZXInOiBjb25uZWN0aW9uX2RldGFpbHNbJ3NlcnZlciddLAorICAgICAgICAg ICAgICAgICAgJ2RhdGFiYXNlJzogY29ubmVjdGlvbl9kZXRhaWxzWydkYXRhYmFzZSddLAorICAg ICAgICAgICAgICAgICAgJ3VzZXInOiBjb25uZWN0aW9uX2RldGFpbHNbJ3VzZXInXSwKKyAgICAg ICAgICAgICAgICAgICd0aXRsZSc6IGNvbm5lY3Rpb25fZGV0YWlsc1sndGl0bGUnXSwKKyAgICAg ICAgICAgICAgICAgICdyb2xlJzogY29ubmVjdGlvbl9kZXRhaWxzWydyb2xlJ10sCisgICAgICAg ICAgICAgICAgICAncGFzc3dvcmQnOiBjb25uZWN0aW9uX2RldGFpbHNbJ3Bhc3N3b3JkJ10sCisg ICAgICAgICAgICAgICAgICAnaXNfYWxsb3dfbmV3X2Nvbm5lY3Rpb24nOiB0cnVlLAorICAgICAg ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uX2xpc3QudW5zaGlm dChjb25uZWN0aW9uX2RhdGEpOworICAgICAgICAgICAgICAgIHNlbGYucmVuZGVyX2Nvbm5lY3Rp b24oc2VsZi5jb25uZWN0aW9uX2xpc3QpOworICAgICAgICAgICAgICAgIHJlZi5jbG9zZSgpOwor ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgICAgICB9KQorICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKHhocikgeworICAgICAgICAg ICAgaWYoeGhyLnN0YXR1cyA9PSA0MjgpIHsKKyAgICAgICAgICAgICAgYWxlcnRpZnkuY29ubmVj dFNlcnZlcignQ29ubmVjdCB0byBzZXJ2ZXInLCB4aHIucmVzcG9uc2VKU09OLnJlc3VsdCwgY29u bmVjdGlvbl9kZXRhaWxzWydzZXJ2ZXInXSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoeGhyLnJlc3BvbnNlSlNPTlsnZXJyb3Jtc2cn XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKmxldCB1cmwgPSB1cmxfZm9yKCdzcWxl ZGl0b3IuY29ubmVjdF9zZXJ2ZXJfd2l0aF91c2VyJywgeworICAgICAgICAgICAgICAnc2lkJzog bmV3Q29ubkNvbGxlY3Rpb25Nb2RlbFsnc2VydmVyJ10sCisgICAgICAgICAgICAgICd1c3InOiBu ZXdDb25uQ29sbGVjdGlvbk1vZGVsWyd1c2VyJ10KKyAgICAgICAgICAgIH0pOworICAgICAgICAg ICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgYXN5bmM6IGZhbHNlLAorICAgICAgICAgICAgICB1 cmw6IHVybCwKKyAgICAgICAgICAgICAgaGVhZGVyczogeworICAgICAgICAgICAgICAgICdDYWNo ZS1Db250cm9sJyA6ICduby1jYWNoZScsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9 KS5kb25lKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgQmFja2Zvcm0uU2VsZWN0MkNvbnRy b2wucHJvdG90eXBlLm9uQ2hhbmdlLmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7CisgICAgICAgICAg ICAgIHJlc3BvbnNlLnNlcnZlcl9saXN0LmZvckVhY2goZnVuY3Rpb24ob2JqKXsKKyAgICAgICAg ICAgICAgICBpZihvYmouaWQ9PXNlbGYubW9kZWwuY2hhbmdlZC5zZXJ2ZXIpIHsKKyAgICAgICAg ICAgICAgICAgIHJlc3BvbnNlLnNlcnZlcl9uYW1lID0gb2JqLm5hbWU7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pLmZhaWwoZnVuY3Rpb24oeGhy KXt9KTsqLworCisgICAgICAgICAgfSk7CisgICAgICB9CisgICAgfSwKICAgfSk7CiAKIApAQCAt MjM5Myw2ICsyNTE4LDE3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogCiAgICAgICAg ICAgJCgnI2J0bi1jb25uLXN0YXR1cyBpJykucmVtb3ZlQ2xhc3MoJ29idGFpbmluZy1jb25uJyk7 CiAgICAgICAgICAgc2VsZi5ncmlkVmlldy5zZXRfZWRpdG9yX3RpdGxlKF8udW5lc2NhcGUodXJs X3BhcmFtcy50aXRsZSkpOworICAgICAgICAgIGxldCBjb25uZWN0aW9uX2RhdGEgPSB7CisgICAg ICAgICAgICAnc2VydmVyX2dyb3VwJzogc2VsZi5ncmlkVmlldy5oYW5kbGVyLnVybF9wYXJhbXMu c2dpZCwKKyAgICAgICAgICAgICdzZXJ2ZXInOiBzZWxmLmdyaWRWaWV3LmhhbmRsZXIudXJsX3Bh cmFtcy5zaWQsCisgICAgICAgICAgICAnZGF0YWJhc2UnOiBzZWxmLmdyaWRWaWV3LmhhbmRsZXIu dXJsX3BhcmFtcy5kaWQsCisgICAgICAgICAgICAndXNlcic6IG51bGwsCisgICAgICAgICAgICAn cm9sZSc6IG51bGwsCisgICAgICAgICAgICAndGl0bGUnOiBfLnVuZXNjYXBlKHVybF9wYXJhbXMu dGl0bGUpLAorICAgICAgICAgICAgJ2lzX2FsbG93X25ld19jb25uZWN0aW9uJzogZmFsc2UsCisg ICAgICAgICAgfTsKKyAgICAgICAgICBzZWxmLmdyaWRWaWV3LmNvbm5lY3Rpb25fbGlzdC51bnNo aWZ0KGNvbm5lY3Rpb25fZGF0YSk7CisgICAgICAgICAgc2VsZi5ncmlkVmlldy5yZW5kZXJfY29u bmVjdGlvbihzZWxmLmdyaWRWaWV3LmNvbm5lY3Rpb25fbGlzdCk7CiAgICAgICAgIH07CiAKICAg ICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigncGdhZG1pbjpxdWVyeV90b29sOmNvbm5lY3RlZDon ICsgdHJhbnNJZCwgYWZ0ZXJDb25uKTsKQEAgLTI0ODcsNiArMjYyMyw3IEBAIGRlZmluZSgndG9v bHMucXVlcnl0b29sJywgWwogICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0 b246c2F2ZV9maWxlJywgc2VsZi5fc2F2ZV9maWxlLCBzZWxmKTsKICAgICAgICAgc2VsZi5vbign cGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmRlbGV0ZXJvdycsIHNlbGYuX2RlbGV0ZSwgc2VsZik7 CiAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpzaG93X2ZpbHRlcics IHNlbGYuX3Nob3dfZmlsdGVyLCBzZWxmKTsKKyAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxl ZGl0b3I6YnV0dG9uOnNob3dfbmV3X2Nvbm5lY3Rpb24nLCBzZWxmLl9zaG93X25ld19jb25uZWN0 aW9uLCBzZWxmKTsKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmlu Y2x1ZGVfZmlsdGVyJywgc2VsZi5faW5jbHVkZV9maWx0ZXIsIHNlbGYpOwogICAgICAgICBzZWxm Lm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246ZXhjbHVkZV9maWx0ZXInLCBzZWxmLl9leGNs dWRlX2ZpbHRlciwgc2VsZik7CiAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1 dHRvbjpyZW1vdmVfZmlsdGVyJywgc2VsZi5fcmVtb3ZlX2ZpbHRlciwgc2VsZik7CkBAIC0zNjk2 LDcgKzM4MzMsNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICB9CiAg ICAgICAgIH07CiAgICAgICB9LAotCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0 aGUgZmlsdGVyIGluIHRoZSB0ZXh0IGFyZWEuCiAgICAgICBfc2hvd19maWx0ZXI6IGZ1bmN0aW9u KCkgewogICAgICAgICBsZXQgc2VsZiA9IHRoaXMsCkBAIC0zNzExLDcgKzM4NDcsMTkgQEAgZGVm aW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIH0KICAgICAgICAgRmlsdGVySGFuZGxl ci5kaWFsb2coc2VsZiwgcmVjb25uZWN0KTsKICAgICAgIH0sCisgICAgICAvLyBUaGlzIGZ1bmN0 aW9uIHdpbGwgc2hvdyB0aGUgbmV3IGNvbm5lY3Rpb24uCisgICAgICBfc2hvd19uZXdfY29ubmVj dGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBzZWxmID0gdGhpcywKKyAgICAgICAgICBy ZWNvbm5lY3QgPSBmYWxzZTsKIAorICAgICAgICAvKiBXaGVuIHNlcnZlciBpcyBkaXNjb25uZWN0 ZWQgYW5kIGNvbm5lY3RlZCwgY29ubmVjdGlvbiBpcyBsb3N0LAorICAgICAgICAgKiBUbyByZWNv bm5lY3QgcGFzcyB0cnVlCisgICAgICAgICAqLworICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0 aCA+IDAgJiYgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSA9PSAnY29ubmVjdCcpIHsK KyAgICAgICAgICByZWNvbm5lY3QgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG5ld0Nvbm5l Y3Rpb25IYW5kbGVyLmRpYWxvZyhzZWxmLCByZWNvbm5lY3QpOworICAgICAgfSwKICAgICAgIC8v IFRoaXMgZnVuY3Rpb24gd2lsbCBpbmNsdWRlIHRoZSBmaWx0ZXIgYnkgc2VsZWN0aW9uLgogICAg ICAgX2luY2x1ZGVfZmlsdGVyOiBmdW5jdGlvbigpIHsKICAgICAgICAgdmFyIHNlbGYgPSB0aGlz LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9zY3NzL19z cWxlZGl0b3Iuc2NzcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvc2Nzcy9f c3FsZWRpdG9yLnNjc3MKaW5kZXggZmQxZTVkMy4uNTNmMjQ0OSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9zY3NzL19zcWxlZGl0b3Iuc2NzcworKysgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL3Njc3MvX3NxbGVkaXRvci5zY3NzCkBA IC0zMCw2ICszMCwxOSBAQAogICBjb2xvcjogJHNxbC10aXRsZS1mZzsKIH0KIAorLmNvbm5lY3Rp b24taW5mbyB7CisgIGJhY2tncm91bmQ6ICRzcWwtdGl0bGUtYmc7CisgIGNvbG9yOiAkc3FsLXRp dGxlLWZnOworICB3aWR0aDoxMDAlOworICBkaXNwbGF5OiBpbmhlcml0OworfQorCisuY29ubi1p bmZvLWRkIHsKKyAgcGFkZGluZy10b3A6IDAuM2VtOworICBwYWRkaW5nLWxlZnQ6IDAuMmVtOwor ICBjdXJzb3I6IHBvaW50ZXI7Cit9CisKIAogI2VkaXRvci1wYW5lbCB7CiAgIHotaW5kZXg6IDA7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9uZXdf Y29ubmVjdGlvbl9kYXRhYmFzZS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0 cy90ZXN0X25ld19jb25uZWN0aW9uX2RhdGFiYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmU3OTkwOTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9uZXdfY29ubmVjdGlvbl9kYXRhYmFzZS5weQpAQCAtMCww ICsxLDEwMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAg aW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworCitjbGFzcyBUZXN0TmV3Q29ubmVjdGlvbkRhdGFi YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHRlc3QgbmV3 IGNvbm5lY3Rpb24gZGF0YWJhc2UuICIiIgorICAgIEFQSV9VUkwgPSAiL3NxbGVkaXRvci9uZXdf Y29ubmVjdGlvbl9kYXRhYmFzZS8iCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ05ldyBj b25uZWN0aW9uIGRpYWxvZycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD1BUElf VVJMLAorICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICBt b2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgIGlzX3NlcnZlcl9jb25uX3JlcXVp cmVkPUZhbHNlLAorICAgICAgICAgICAgIHRlc3RfZGF0YT17fSwKKyAgICAgICAgICAgICBtb2Nr X2RhdGE9e30sCisgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAgIH0KKyAgICAgICAgICkpLAorICAgICAg ICAoJ05ldyBjb25uZWN0aW9uIGRpYWxvZyBjb25uZWN0IHNlcnZlcicsCisgICAgICAgICBkaWN0 KAorICAgICAgICAgICAgIHVybD1BUElfVVJMLAorICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rl c3Q9VHJ1ZSwKKyAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAg ICAgIGlzX3NlcnZlcl9jb25uX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgdGVzdF9kYXRh PXt9LAorICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICBleHBlY3RlZF9k YXRhPXsKKyAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAg fQorICAgICAgICAgKSksCisgICAgICAgICgnTmV3IGNvbm5lY3Rpb24gZGlhbG9nIG5lZ2F0aXZl JywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgdXJsPUFQSV9VUkwsCisgICAgICAgICAg ICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVk PUZhbHNlLAorICAgICAgICAgICAgIGlzX3NlcnZlcl9jb25uX3JlcXVpcmVkPVRydWUsCisgICAg ICAgICAgICAgdGVzdF9kYXRhPXt9LAorICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAg ICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjog MjAwCisgICAgICAgICAgICAgfQorICAgICAgICAgKSksCisgICAgXQorCisgICAgZGVmIHNldFVw KHNlbGYpOgorICAgICAgICBzZWxmLmNvbnRlbnRfdHlwZSA9ICdodG1sL2pzb24nCisgICAgICAg IHNlbGYuc2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLnNnaWQgPSBjb25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KKworICAgIGRl ZiBnZXRfZGF0YWJhc2Uoc2VsZik6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIoc2VsZi5zZ2lkKSArICcvJyArIHN0cihzZWxm LnNpZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9c2VsZi5jb250ZW50X3R5cGUKKyAgICAg ICAgKQorCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIGlmIHNlbGYu aXNfc2VydmVyX2Nvbm5fcmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bh c3N3b3JkJ10gPSBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXQorICAgICAgICAgICAgICAgIHNl bGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICAgICAgICAgICcvYnJvd3Nlci9zZXJ2ZXIvY29u bmVjdC97MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNpZCksCisgICAgICAgICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAgICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT1zZWxmLmNvbnRlbnRfdHlwZQorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfZGF0YWJhc2UoKQorICAgICAgICAgICAgYWN0 dWFsX3Jlc3BvbnNlX2NvZGUgPSByZXNwb25zZS5zdGF0dXNfY29kZQorICAgICAgICAgICAgZXhw ZWN0ZWRfcmVzcG9uc2VfY29kZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2VsZi5pc19zZXJ2ZXJfY29ubl9yZXF1aXJl ZDoKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddCisgICAgICAgICAgICAgICAgc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAg ICAgICAgICAgICAgICAgJy9icm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgK KyAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2lkKSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKHNlbGYuc2VydmVyKSwKKyAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPXNlbGYu Y29udGVudF90eXBlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5zaWQgPSAw CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2RhdGFiYXNlKCkKKyAgICAgICAgICAg IGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKKyAgICAgICAgICAg IGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2Rl J10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9uc2VfY29kZSwgZXhwZWN0 ZWRfcmVzcG9uc2VfY29kZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci90ZXN0cy90ZXN0X25ld19jb25uZWN0aW9uX2RpYWxvZy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci90ZXN0cy90ZXN0X25ld19jb25uZWN0aW9uX2RpYWxvZy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWE0N2VmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfbmV3X2Nvbm5lY3Rpb25fZGlhbG9n LnB5CkBAIC0wLDAgKzEsNTAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNv bgorZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24udGVz dF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworCisKK2NsYXNzIFRlc3ROZXdDb25uZWN0 aW9uRGlhbG9nKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHRl c3QgbmV3IGNvbm5lY3Rpb24gZGlhbG9nLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAg ICgnTmV3IGNvbm5lY3Rpb24gZGlhbG9nJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAg dXJsPSIvc3FsZWRpdG9yL25ld19jb25uZWN0aW9uX2RpYWxvZy8iLAorICAgICAgICAgICAgIGlz X3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNl LAorICAgICAgICAgICAgIGlzX2Nvbm5lY3Rfc2VydmVyPUZhbHNlLAorICAgICAgICAgICAgIHRl c3RfZGF0YT17fSwKKyAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgZXhw ZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg ICAgICAgIH0KKyAgICAgICAgICkpLAorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgc2VsZi5zaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9p ZCJdCisgICAgICAgIHNlbGYuc2dpZCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorCisg ICAgZGVmIG5ld19jb25uZWN0aW9uKHNlbGYpOgorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNlbGYuc2dpZCkgKyAnLycgKyBz dHIoc2VsZi5zZ2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAg ICAgICApCisKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLm5ld19jb25uZWN0aW9uKCkKKyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9j b2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNl X2NvZGUgPSBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10KKyAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3Jlc3BvbnNlX2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlX2Nv ZGUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9u ZXdfY29ubmVjdGlvbl91c2VyLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3Rz L3Rlc3RfbmV3X2Nvbm5lY3Rpb25fdXNlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi43YzY5YmJkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3Fs ZWRpdG9yL3Rlc3RzL3Rlc3RfbmV3X2Nvbm5lY3Rpb25fdXNlci5weQpAQCAtMCwwICsxLDEwMCBA QAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNv bmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKKworCitjbGFzcyBUZXN0TmV3Q29ubmVjdGlvblVzZXIoQmFzZVRlc3RH ZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdGVzdCBuZXcgY29ubmVjdGlvbiB1 c2VyLiAiIiIKKyAgICBBUElfVVJMID0gJy9zcWxlZGl0b3IvbmV3X2Nvbm5lY3Rpb25fdXNlci8n CisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoJ05ldyBjb25uZWN0aW9uIGRpYWxvZycsCisg ICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD1BUElfVVJMLAorICAgICAgICAgICAgIGlz X3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNl LAorICAgICAgICAgICAgIGlzX3NlcnZlcl9jb25uX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAg ICAgIHRlc3RfZGF0YT17fSwKKyAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAg ICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgICAgICAgIH0KKyAgICAgICAgICkpLAorICAgICAgICAoJ05ldyBjb25uZWN0aW9uIGRp YWxvZyBjb25uZWN0IHNlcnZlcicsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHVybD1B UElfVVJMLAorICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAg ICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgIGlzX3NlcnZlcl9jb25uX3Jl cXVpcmVkPVRydWUsCisgICAgICAgICAgICAgdGVzdF9kYXRhPXt9LAorICAgICAgICAgICAgIG1v Y2tfZGF0YT17fSwKKyAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAg ICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgfQorICAgICAgICAgKSksCisgICAg ICAgICgnTmV3IGNvbm5lY3Rpb24gZGlhbG9nIG5lZ2F0aXZlJywKKyAgICAgICAgIGRpY3QoCisg ICAgICAgICAgICAgdXJsPUFQSV9VUkwsCisgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1G YWxzZSwKKyAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAg IGlzX3NlcnZlcl9jb25uX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgdGVzdF9kYXRhPXt9 LAorICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICBleHBlY3RlZF9kYXRh PXsKKyAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgfQor ICAgICAgICAgKSksCisgICAgXQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxm LmNvbnRlbnRfdHlwZSA9ICdodG1sL2pzb24nCisgICAgICAgIHNlbGYuc2lkID0gcGFyZW50X25v ZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLnNnaWQgPSBj b25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KKworICAgIGRlZiBnZXRfdXNlKHNlbGYpOgorICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHNlbGYuc2dpZCkgKyAnLycgKyBzdHIoc2VsZi5zaWQpLAorICAgICAgICAgICAgY29udGVu dF90eXBlPXNlbGYuY29udGVudF90eXBlCisgICAgICAgICkKKworICAgICAgICByZXR1cm4gcmVz cG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0 aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBzZWxmLmlzX3NlcnZlcl9jb25uX3JlcXVpcmVkOgor ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwYXNzd29yZCddID0gc2VsZi5zZXJ2ZXJbJ2Ri X3Bhc3N3b3JkJ10KKyAgICAgICAgICAgICAgICBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAg ICAgICAgICAgICAnL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvezB9L3sxfScuZm9ybWF0KAorICAg ICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zaWQpLAorICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo c2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9c2VsZi5jb250 ZW50X3R5cGUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu Z2V0X3VzZSgpCisgICAgICAgICAgICBhY3R1YWxfcmVzcG9uc2VfY29kZSA9IHJlc3BvbnNlLnN0 YXR1c19jb2RlCisgICAgICAgICAgICBleHBlY3RlZF9yZXNwb25zZV9jb2RlID0gc2VsZi5leHBl Y3RlZF9kYXRhWydzdGF0dXNfY29kZSddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBz ZWxmLmlzX3NlcnZlcl9jb25uX3JlcXVpcmVkOgorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy WydwYXNzd29yZCddID0gc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10KKyAgICAgICAgICAgICAg ICBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgICAgICAgICAnL2Jyb3dzZXIvc2VydmVy L2Nvbm5lY3QvezB9L3sxfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaWQpLAorICAgICAg ICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAg ICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICBzZWxmLnNpZCA9IDAKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfdXNl KCkKKyAgICAgICAgICAgIGFjdHVhbF9yZXNwb25zZV9jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlX2NvZGUgPSBzZWxmLmV4cGVjdGVkX2Rh dGFbJ3N0YXR1c19jb2RlJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWxfcmVzcG9u c2VfY29kZSwgZXhwZWN0ZWRfcmVzcG9uc2VfY29kZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3V0aWxzL2NvbnN0YW50cy5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2NvbnN0YW50cy5weQppbmRl eCAwMTAxODVmLi4yNzg4ODFiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9jb25zdGFu dHMucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvY29uc3RhbnRzLnB5CkBAIC00NCwzICs0NCw1 IEBAIEVSUk9SX01TR19UUkFOU19JRF9OT1RfRk9VTkQgPSBnZXR0ZXh0KAogIyBSb2xlIG1vZHVs ZSBjb25zdGFudAogRVJST1JfRkVUQ0hJTkdfUk9MRV9JTkZPUk1BVElPTiA9IGdldHRleHQoCiAg ICAgJ0Vycm9yIGZldGNoaW5nIHJvbGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YWJhc2Ugc2Vy dmVyLicpCisKK0VSUk9SX0ZFVENISU5HX0RBVEEgPSBnZXR0ZXh0KCdVbmFibGUgdG8gZmV0Y2gg ZGF0YS4nKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL2Nv bm5lY3Rpb24ucHkgYi93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvY29ubmVjdGlv bi5weQppbmRleCA1Mjk1YzUxLi40ZjQwZTY1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGls cy9kcml2ZXIvcHN5Y29wZzIvY29ubmVjdGlvbi5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9k cml2ZXIvcHN5Y29wZzIvY29ubmVjdGlvbi5weQpAQCAtMjEsNyArMjEsNyBAQCBpbXBvcnQgcHN5 Y29wZzIKIGZyb20gZmxhc2sgaW1wb3J0IGcsIGN1cnJlbnRfYXBwCiBmcm9tIGZsYXNrX2JhYmVs ZXggaW1wb3J0IGdldHRleHQKIGZyb20gZmxhc2tfc2VjdXJpdHkgaW1wb3J0IGN1cnJlbnRfdXNl cgotZnJvbSBwZ2FkbWluLnV0aWxzLmNyeXB0byBpbXBvcnQgZGVjcnlwdAorZnJvbSBwZ2FkbWlu LnV0aWxzLmNyeXB0byBpbXBvcnQgZGVjcnlwdCwgZW5jcnlwdAogZnJvbSBwc3ljb3BnMi5leHRl bnNpb25zIGltcG9ydCBlbmNvZGluZ3MKIAogaW1wb3J0IGNvbmZpZwpAQCAtMjA0LDYgKzIwNCw0 NSBAQCBjbGFzcyBDb25uZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKICAgICBkZWYgX19zdHJfXyhz ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX19yZXByX18oKQogCisgICAgZGVmIF9jaGVja191 c2VyX3Bhc3N3b3JkKHNlbGYsIGt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBDaGVjayB1 c2VyIGFuZCBwYXNzd29yZC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3N3b3JkID0gTm9uZQor ICAgICAgICBlbmNwYXNzID0gTm9uZQorICAgICAgICBpc191cGRhdGVfcGFzc3dvcmQgPSBUcnVl CisKKyAgICAgICAgaWYgJ3VzZXInIGluIGt3YXJncyBhbmQga3dhcmdzWydwYXNzd29yZCddOgor ICAgICAgICAgICAgcGFzc3dvcmQgPSBrd2FyZ3NbJ3Bhc3N3b3JkJ10KKyAgICAgICAgICAgIGt3 YXJncy5wb3AoJ3Bhc3N3b3JkJykKKyAgICAgICAgICAgIGlzX3VwZGF0ZV9wYXNzd29yZCA9IEZh bHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbmNwYXNzID0ga3dhcmdzWydwYXNzd29y ZCddIGlmICdwYXNzd29yZCcgaW4ga3dhcmdzIGVsc2UgTm9uZQorCisgICAgICAgIHJldHVybiBw YXNzd29yZCwgZW5jcGFzcywgaXNfdXBkYXRlX3Bhc3N3b3JkCisKKyAgICBkZWYgX2RlY29kZV9w YXNzd29yZChzZWxmLCBlbmNwYXNzLCBtYW5hZ2VyLCBwYXNzd29yZCwgY3J5cHRfa2V5KToKKyAg ICAgICAgaWYgZW5jcGFzczoKKyAgICAgICAgICAgICMgRmV0Y2ggTG9nZ2VkIGluIFVzZXIgRGV0 YWlscy4KKyAgICAgICAgICAgIHVzZXIgPSBVc2VyLnF1ZXJ5LmZpbHRlcl9ieShpZD1jdXJyZW50 X3VzZXIuaWQpLmZpcnN0KCkKKworICAgICAgICAgICAgaWYgdXNlciBpcyBOb25lOgorICAgICAg ICAgICAgICAgIHJldHVybiBUcnVlLCBzZWxmLlVOQVVUSE9SSVpFRF9SRVFVRVNULCBwYXNzd29y ZAorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcGFzc3dvcmQgPSBkZWNyeXB0 KGVuY3Bhc3MsIGNyeXB0X2tleSkKKyAgICAgICAgICAgICAgICAjIHBhc3N3b3JkIGlzIGluIGJ5 dGVzLCBmb3IgcHl0aG9uMyB3ZSBuZWVkIGl0IGluIHN0cmluZworICAgICAgICAgICAgICAgIGlm IGlzaW5zdGFuY2UocGFzc3dvcmQsIGJ5dGVzKToKKyAgICAgICAgICAgICAgICAgICAgcGFzc3dv cmQgPSBwYXNzd29yZC5kZWNvZGUoKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgICAgIG1hbmFnZXIuc3RvcF9zc2hfdHVubmVsKCkKKyAgICAgICAgICAg ICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXhjZXB0aW9uKGUpCisgICAgICAgICAgICAgICAgcmV0 dXJuIFRydWUsIFwKKyAgICAgICAgICAgICAgICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAg ICAgICJGYWlsZWQgdG8gZGVjcnlwdCB0aGUgc2F2ZWQgcGFzc3dvcmQuXG5FcnJvcjogezB9Igor ICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChzdHIoZSkpCisgICAgICAgIHJldHVybiBGYWxz ZSwgJycsIHBhc3N3b3JkCisKICAgICBkZWYgY29ubmVjdChzZWxmLCAqKmt3YXJncyk6CiAgICAg ICAgIGlmIHNlbGYuY29ubjoKICAgICAgICAgICAgIGlmIHNlbGYuY29ubi5jbG9zZWQ6CkBAIC0y MTIsMTEgKzI1MSwxMyBAQCBjbGFzcyBDb25uZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKICAgICAg ICAgICAgICAgICByZXR1cm4gVHJ1ZSwgTm9uZQogCiAgICAgICAgIHBnX2Nvbm4gPSBOb25lCi0g ICAgICAgIHBhc3N3b3JkID0gTm9uZQogICAgICAgICBwYXNzZmlsZSA9IE5vbmUKICAgICAgICAg bWFuYWdlciA9IHNlbGYubWFuYWdlcgorICAgICAgICBjcnlwdF9rZXlfcHJlc2VudCwgY3J5cHRf a2V5ID0gZ2V0X2NyeXB0X2tleSgpCisKKyAgICAgICAgcGFzc3dvcmQsIGVuY3Bhc3MsIGlzX3Vw ZGF0ZV9wYXNzd29yZCA9IHNlbGYuX2NoZWNrX3VzZXJfcGFzc3dvcmQoCisgICAgICAgICAgICBr d2FyZ3MpCiAKLSAgICAgICAgZW5jcGFzcyA9IGt3YXJnc1sncGFzc3dvcmQnXSBpZiAncGFzc3dv cmQnIGluIGt3YXJncyBlbHNlIE5vbmUKICAgICAgICAgcGFzc2ZpbGUgPSBrd2FyZ3NbJ3Bhc3Nm aWxlJ10gaWYgJ3Bhc3NmaWxlJyBpbiBrd2FyZ3MgZWxzZSBOb25lCiAgICAgICAgIHR1bm5lbF9w YXNzd29yZCA9IGt3YXJnc1sndHVubmVsX3Bhc3N3b3JkJ10gaWYgJ3R1bm5lbF9wYXNzd29yZCcg aW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGt3YXJncyBlbHNlICcnCkBAIC0yMzEsMzggKzI3MiwyMyBAQCBjbGFzcyBDb25uZWN0aW9u KEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgaWYgbWFuYWdlci51c2Vfc3NoX3R1bm5lbCA9PSAx OgogICAgICAgICAgICAgbWFuYWdlci5jaGVja19zc2hfdHVubmVsX2FsaXZlKCkKIAotICAgICAg ICBpZiBlbmNwYXNzIGlzIE5vbmU6Ci0gICAgICAgICAgICBlbmNwYXNzID0gc2VsZi5wYXNzd29y ZCBvciBnZXRhdHRyKG1hbmFnZXIsICdwYXNzd29yZCcsIE5vbmUpCisgICAgICAgIGlmIGlzX3Vw ZGF0ZV9wYXNzd29yZDoKKyAgICAgICAgICAgIGlmIGVuY3Bhc3MgaXMgTm9uZToKKyAgICAgICAg ICAgICAgICBlbmNwYXNzID0gc2VsZi5wYXNzd29yZCBvciBnZXRhdHRyKG1hbmFnZXIsICdwYXNz d29yZCcsIE5vbmUpCiAKLSAgICAgICAgc2VsZi5wYXNzd29yZCA9IGVuY3Bhc3MKKyAgICAgICAg ICAgIHNlbGYucGFzc3dvcmQgPSBlbmNwYXNzCiAKICAgICAgICAgIyBSZXNldCB0aGUgZXhpc3Rp bmcgY29ubmVjdGlvbiBwYXNzd29yZAogICAgICAgICBpZiBzZWxmLnJlY29ubmVjdGluZyBpcyBu b3QgRmFsc2U6CiAgICAgICAgICAgICBzZWxmLnBhc3N3b3JkID0gTm9uZQogCi0gICAgICAgIGNy eXB0X2tleV9wcmVzZW50LCBjcnlwdF9rZXkgPSBnZXRfY3J5cHRfa2V5KCkKICAgICAgICAgaWYg bm90IGNyeXB0X2tleV9wcmVzZW50OgogICAgICAgICAgICAgcmFpc2UgQ3J5cHRLZXlNaXNzaW5n KCkKIAotICAgICAgICBpZiBlbmNwYXNzOgotICAgICAgICAgICAgIyBGZXRjaCBMb2dnZWQgaW4g VXNlciBEZXRhaWxzLgotICAgICAgICAgICAgdXNlciA9IFVzZXIucXVlcnkuZmlsdGVyX2J5KGlk PWN1cnJlbnRfdXNlci5pZCkuZmlyc3QoKQotCi0gICAgICAgICAgICBpZiB1c2VyIGlzIE5vbmU6 Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBzZWxmLlVOQVVUSE9SSVpFRF9SRVFVRVNU Ci0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwYXNzd29yZCA9IGRlY3J5cHQo ZW5jcGFzcywgY3J5cHRfa2V5KQotICAgICAgICAgICAgICAgICMgcGFzc3dvcmQgaXMgaW4gYnl0 ZXMsIGZvciBweXRob24zIHdlIG5lZWQgaXQgaW4gc3RyaW5nCi0gICAgICAgICAgICAgICAgaWYg aXNpbnN0YW5jZShwYXNzd29yZCwgYnl0ZXMpOgotICAgICAgICAgICAgICAgICAgICBwYXNzd29y ZCA9IHBhc3N3b3JkLmRlY29kZSgpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 Ci0gICAgICAgICAgICAgICAgbWFuYWdlci5zdG9wX3NzaF90dW5uZWwoKQotICAgICAgICAgICAg ICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkKLSAgICAgICAgICAgICAgICByZXR1 cm4gRmFsc2UsIFwKLSAgICAgICAgICAgICAgICAgICAgXygKLSAgICAgICAgICAgICAgICAgICAg ICAgICJGYWlsZWQgdG8gZGVjcnlwdCB0aGUgc2F2ZWQgcGFzc3dvcmQuXG5FcnJvcjogezB9Igot ICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChzdHIoZSkpCisgICAgICAgIGlzX2Vycm9yLCBl cnJtc2csIHBhc3N3b3JkID0gc2VsZi5fZGVjb2RlX3Bhc3N3b3JkKGVuY3Bhc3MsIG1hbmFnZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhc3N3b3JkLCBjcnlwdF9rZXkpCisgICAgICAgIGlmIGlzX2Vycm9yOgorICAgICAgICAg ICAgcmV0dXJuIEZhbHNlLCBlcnJtc2cKIAogICAgICAgICAjIElmIG5vIHBhc3N3b3JkIGNyZWRl bnRpYWwgaXMgZm91bmQgdGhlbiBjb25uZWN0IHJlcXVlc3QgbWlnaHQKICAgICAgICAgIyBjb21l IGZyb20gUXVlcnkgdG9vbCwgVmlld0RhdGEgZ3JpZCwgZGVidWdnZXIgZXRjIHRvb2xzLgpAQCAt MjczLDcgKzI5OSwxMCBAQCBjbGFzcyBDb25uZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKIAogICAg ICAgICB0cnk6CiAgICAgICAgICAgICBkYXRhYmFzZSA9IHNlbGYuZGIKLSAgICAgICAgICAgIHVz ZXIgPSBtYW5hZ2VyLnVzZXIKKyAgICAgICAgICAgIGlmICd1c2VyJyBpbiBrd2FyZ3MgYW5kIGt3 YXJnc1sndXNlciddOgorICAgICAgICAgICAgICAgIHVzZXIgPSBrd2FyZ3NbJ3VzZXInXQorICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB1c2VyID0gbWFuYWdlci51c2VyCiAgICAg ICAgICAgICBjb25uX2lkID0gc2VsZi5jb25uX2lkCiAKICAgICAgICAgICAgIGltcG9ydCBvcwpA QCAtMzQyLDEwICszNzEsMTAgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAg ICAgICAgICAgICAgICAgc2VsZi53YXNDb25uZWN0ZWQgPSBGYWxzZQogICAgICAgICAgICAgcmFp c2UgZQogCi0gICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgaWYgc3RhdHVzIGFuZCBpc191cGRh dGVfcGFzc3dvcmQ6CiAgICAgICAgICAgICBtYW5hZ2VyLl91cGRhdGVfcGFzc3dvcmQoZW5jcGFz cykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlY29ubmVjdGluZzoK KyAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJlY29ubmVjdGluZyBhbmQgaXNfdXBkYXRlX3Bhc3N3 b3JkOgogICAgICAgICAgICAgICAgIHNlbGYud2FzQ29ubmVjdGVkID0gRmFsc2UKIAogICAgICAg ICByZXR1cm4gc3RhdHVzLCBtc2cKQEAgLTM2Myw3ICszOTIsNyBAQCBjbGFzcyBDb25uZWN0aW9u KEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2Vs Zi5jb25uLmF1dG9jb21taXQgPSBUcnVlCiAKLSAgICBkZWYgX3NldF9yb2xlKHNlbGYsIG1hbmFn ZXIsIGN1ciwgY29ubl9pZCk6CisgICAgZGVmIF9zZXRfcm9sZShzZWxmLCBtYW5hZ2VyLCBjdXIs IGNvbm5faWQsICoqa3dhcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIFNldCByb2xlCiAgICAg ICAgIDpwYXJhbSBtYW5hZ2VyOgpAQCAtMzcxLDggKzQwMCwxOCBAQCBjbGFzcyBDb25uZWN0aW9u KEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgOnBhcmFtIGNvbm5faWQ6CiAgICAgICAgIDpyZXR1 cm46CiAgICAgICAgICIiIgotICAgICAgICBpZiBtYW5hZ2VyLnJvbGU6Ci0gICAgICAgICAgICBz dGF0dXMgPSBzZWxmLl9leGVjdXRlKGN1ciwgIlNFVCBST0xFIFRPICVzIiwgW21hbmFnZXIucm9s ZV0pCisgICAgICAgIGlzX3NldF9yb2xlID0gRmFsc2UKKyAgICAgICAgcm9sZSA9IE5vbmUKKwor ICAgICAgICBpZiAncm9sZScgaW4ga3dhcmdzIGFuZCBrd2FyZ3NbJ3JvbGUnXToKKyAgICAgICAg ICAgIGlzX3NldF9yb2xlID0gVHJ1ZQorICAgICAgICAgICAgcm9sZSA9IGt3YXJnc1sncm9sZSdd CisgICAgICAgIGVsaWYgbWFuYWdlci5yb2xlOgorICAgICAgICAgICAgaXNfc2V0X3JvbGUgPSBU cnVlCisgICAgICAgICAgICByb2xlID0gbWFuYWdlci5yb2xlCisKKyAgICAgICAgaWYgaXNfc2V0 X3JvbGU6CisgICAgICAgICAgICBzdGF0dXMgPSBzZWxmLl9leGVjdXRlKGN1ciwgIlNFVCBST0xF IFRPICVzIiwgW3JvbGVdKQogCiAgICAgICAgICAgICBpZiBzdGF0dXMgaXMgbm90IE5vbmU6CiAg ICAgICAgICAgICAgICAgc2VsZi5jb25uLmNsb3NlKCkKQEAgLTM4Niw3ICs0MjUsNyBAQCBjbGFz cyBDb25uZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgICAgICAgICAgICAgICAgIG1z Zz1zdGF0dXMKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2UsIFwKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwg XAogICAgICAgICAgICAgICAgICAgICBfKAogICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxl ZCB0byBzZXR1cCB0aGUgcm9sZSB3aXRoIGVycm9yIG1lc3NhZ2U6XG57MH0iCiAgICAgICAgICAg ICAgICAgICAgICkuZm9ybWF0KHN0YXR1cykKQEAgLTQ0OSw3ICs0ODgsNyBAQCBjbGFzcyBDb25u ZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKIAogICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBzdGF0 dXMKIAotICAgICAgICBpc19lcnJvciwgZXJybXNnID0gc2VsZi5fc2V0X3JvbGUobWFuYWdlciwg Y3VyLCBjb25uX2lkKQorICAgICAgICBpc19lcnJvciwgZXJybXNnID0gc2VsZi5fc2V0X3JvbGUo bWFuYWdlciwgY3VyLCBjb25uX2lkLCAqKmt3YXJncykKICAgICAgICAgaWYgaXNfZXJyb3I6CiAg ICAgICAgICAgICByZXR1cm4gRmFsc2UsIGVycm1zZwogCkBAIC00OTUsNyArNTM0LDcgQEAgV0hF UkUgZGIuZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSIiIikKICAgICAgICAgICAgICAgICBp ZiBsZW4obWFuYWdlci5kYl9pbmZvKSA9PSAxOgogICAgICAgICAgICAgICAgICAgICBtYW5hZ2Vy LmRpZCA9IHJlc1snZGlkJ10KIAotICAgICAgICBzZWxmLl9zZXRfdXNlcl9pbmZvKGN1ciwgbWFu YWdlcikKKyAgICAgICAgc2VsZi5fc2V0X3VzZXJfaW5mbyhjdXIsIG1hbmFnZXIsICoqa3dhcmdz KQogCiAgICAgICAgIHNlbGYuX3NldF9zZXJ2ZXJfdHlwZV9hbmRfcGFzc3dvcmQoa3dhcmdzLCBt YW5hZ2VyKQogCkBAIC01MDMsNyArNTQyLDcgQEAgV0hFUkUgZGIuZGF0bmFtZSA9IGN1cnJlbnRf ZGF0YWJhc2UoKSIiIikKIAogICAgICAgICByZXR1cm4gVHJ1ZSwgTm9uZQogCi0gICAgZGVmIF9z ZXRfdXNlcl9pbmZvKHNlbGYsIGN1ciwgbWFuYWdlcik6CisgICAgZGVmIF9zZXRfdXNlcl9pbmZv KHNlbGYsIGN1ciwgbWFuYWdlciwgKiprd2FyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgU2V0 IHVzZXIgaW5mby4KICAgICAgICAgOnBhcmFtIGN1cjoKQEAgLTUyMSw3ICs1NjAsNyBAQCBXSEVS RSBkYi5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpIiIiKQogICAgICAgICBXSEVSRQogICAg ICAgICAgICAgcm9sbmFtZSA9IGN1cnJlbnRfdXNlciIiIikKIAotICAgICAgICBpZiBzdGF0dXMg aXMgTm9uZToKKyAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmUgYW5kICd1c2VyJyBub3QgaW4ga3dh cmdzOgogICAgICAgICAgICAgbWFuYWdlci51c2VyX2luZm8gPSBkaWN0KCkKICAgICAgICAgICAg IGlmIGN1ci5yb3djb3VudCA+IDA6CiAgICAgICAgICAgICAgICAgbWFuYWdlci51c2VyX2luZm8g PSBjdXIuZmV0Y2htYW55KDEpWzBdCg== --000000000000607b8f05b095104f--