From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140073.outbound.protection.outlook.com [40.107.14.73]) by sourceware.org (Postfix) with ESMTPS id DD4A93858416 for ; Fri, 22 Oct 2021 14:48:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DD4A93858416 Received: from AM5PR1001CA0055.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::32) by VI1PR0801MB1742.eurprd08.prod.outlook.com (2603:10a6:800:4f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Fri, 22 Oct 2021 14:48:45 +0000 Received: from AM5EUR03FT064.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:15:cafe::88) by AM5PR1001CA0055.outlook.office365.com (2603:10a6:206:15::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Fri, 22 Oct 2021 14:48:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT064.mail.protection.outlook.com (10.152.17.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Fri, 22 Oct 2021 14:48:44 +0000 Received: ("Tessian outbound d5def7722ff7:v103"); Fri, 22 Oct 2021 14:48:43 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1e6801a41a53add7 X-CR-MTA-TID: 64aa7808 Received: from 20260794978b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 237A3E03-E994-49A1-938E-B72415DB4EE5.1; Fri, 22 Oct 2021 14:48:33 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 20260794978b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 22 Oct 2021 14:48:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=elHtMt/TDuim7+QSwLBfNBZ/MmoWDRfOOOgXJAZOgdwqPaNEc3x7pcG/HDFt3r29H34NKxb3Wyyvsdmw6tArjQh4GmJAc/wZX99KH8Z+V9F/+B2nX1x3eekbGMDf0hGGsE8NcNSCxjkAOXWJpZqxkuRseeid6X9LevQN1QVK8JXhHdKsZu4Mdftn5kdyEj8HOJi9oNgh8Ub9KzZfHFoPtKmmiJL5OtMja2CBlm5M0KasDw5jFJ61dh66ugkeE3XM5uM5HPfmRsAFqftGnXlplSVlVoNI6/dUa7HkAi5lhNSP0HRpxJsynRzF37Pr3vbH+kwchlTMLT5d9zarElOBjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=b0ugZeBCHJeFWJsBsiBe94WRghbeBrPYDZMwdhKmOaQ=; b=je12igCOXQ/FWp75SeuHP2UrWPrIkkqaY+MXgBgpMOhKa3potDLlUjEFSZz2HeN2lyq9HFqUVYrJPTrYExr9KwwIAT8zAwGruMJoTwJXROVprpS0CnFs5rptQH/oJ4WD2CcA5tjmaTgmrs32BxtMdHzDULssmRuWwqtSx8kADbLXBUsOngtX19qkVScl13eJnaqbvRvJku8BudImKQnzCmakdCkJz8vYW7WrqSUZYas5hk/FODJjCoBbC/tUT0K2NngqtCnh3XQkXbLIS/y4F/XNOK35XgVBNHEuaIItoq4prZz+EAdap7uhCqmCG/UuJgZ6FHI0+bUnMP8UFE7dJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DB9PR08MB6959.eurprd08.prod.outlook.com (2603:10a6:10:2bf::11) by DB6PR0801MB1621.eurprd08.prod.outlook.com (2603:10a6:4:39::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.18; Fri, 22 Oct 2021 14:48:27 +0000 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::9172:3a83:93a3:9c1b]) by DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::9172:3a83:93a3:9c1b%8]) with mapi id 15.20.4628.018; Fri, 22 Oct 2021 14:48:27 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH 4/6] aarch64: Add machine modes for Neon vector-tuple types Thread-Topic: [PATCH 4/6] aarch64: Add machine modes for Neon vector-tuple types Thread-Index: AQHXx1OzYq5woK2iQk2OM6Qj6kBvwQ== Date: Fri, 22 Oct 2021 14:48:27 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: suggested_attachment_session_id: 5990790a-ff2c-7276-3115-13cb9e1d583e Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 7b7111a2-6872-41c4-5302-08d9956b0c04 x-ms-traffictypediagnostic: DB6PR0801MB1621:|VI1PR0801MB1742: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:3968;OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: pre0phWPLGEJjqDOXIa02xOUwuyl6kMQNoVD2lWtuOFicSUs7Bq9y7CxeZTUArLyNRHlF9ElC+qB9+t4B2r5bkRYKF/jRtmu7Vu4TTvUiHrXxa1ofQkuM1DsbdJf3Dhe5OT811eqkTYXpNzCEFs2qgrseV8NL8oBG4EfnL1frLTM75kEcQ2udn1mMI9iYBf3Jxihro7ejxQb7NIrIqGdYmEiVSaUr6DaF7ajb4yxNJ0BkOYsyO9m9x81YKusi6ppIR3T1OludtsJ8hM1ukThyQWcCHQ2GN0jn39iU0W2gMZNbJxL8kgjqaBbtW6TAEjlzIjyQYPyuW+rqk3MoA2wMKIyRV/7xh2sgxXC2teH4DdmIT9gfmsPBo1EDLm7JGsYADvf0/xDUHvFP60oeBPSpjWdO/GHjr6B9H2MUxxTNZATlKkqMv2JTyqxEH6ezViS+3Jm6VTMI4kZvioaMOmjfMcAOknF2N/+Y0V/m7EvFbS1G+Q1cNUZhY+UJ1XSok1gzdYcx06m0/BIbXMaWChSmhryoD2AiFm+CQ6YtuFk97LwxgGJqi8XGcKEBEKIHxVfU1G0EoK6WmOXMF+pDxXUk5vUTCly7qs2wzq2D9ducU8I0A8KZg2lkF/MpQtHoRgr1bmRi4OaC5qDQkxlsMOdnySnLAoME/e6Of0OpRemCOjs9ygvaES28HMBiK6Y465DYTKjcNqMZ/2pu+/gOcY1HWEcX7xsNgifqGeOy8azX4Rej983+bxVpi1cfGNChIxX1VDw0yOY2s9Z9is57DsQYiNJbhSG5vh5klAX3ka53xI= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6959.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(55016002)(8936002)(38070700005)(6506007)(26005)(66476007)(9686003)(86362001)(38100700002)(91956017)(76116006)(8676002)(66556008)(4326008)(30864003)(66946007)(66446008)(316002)(508600001)(54906003)(99936003)(2906002)(71200400001)(5660300002)(52536014)(6916009)(64756008)(33656002)(83380400001)(122000001)(7696005)(186003)(559001)(579004); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_DB9PR08MB69595EB360DA1D1070A70917EB809DB9PR08MB6959eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1621 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT064.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: d712be3d-5ded-44f5-f4c6-08d9956b0203 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LjNetcbFHXhf+Trbo9Kmiuz7nWXHlB8Spp/wLz+nPD5BdCbHMo+rYPHl7uk/DksbLbZAM/TKIaU9+wBUjqW3tp5yAHbf83BwRBs3v/SFOWTmj2n/Ypszsffj2Qal2PERqvQ+LQ3AUiuKvMFfkaCRfCXQiwmHHoE7O9icJP9pnbfo9jwH4ssF9HdrY7F+HmQg8EFAhm9jIY9PWN4l3Y2UPpxJmWu/9DLcErBZcvrrTQ552jsyYvfRkaFGTDNkTISD568rQvrCYhHP8BoQFmPt1kHqZc6PDbHktWVU/7+2w0L8IIoYZ1dPicJUxaiqnRJLV7+BMA3NHCVjwNp4ANsZS8yxu5ft9AdUY/jBNBpUleAkxUc6uFjC2qMujTwllzbfL2TXNiay5Y78dw4QF7kQVUw2FS6hnhwQzdbgzOqPVHYYgjuKckSOu8yOoAfVgLxaSUOupPphT3r3vK1Xl9pjTw9QEiDxYq4d+N1zdroGlboykFR2qp2FAfg2MaCKi1KGQlV/T1psKr9bFNSSCqcR6/fUJfMvVGGcjcaneuIuSdS0SbcQsvSSjwm767lS423pbeRGRec+/UGdi2gFCHcTmXkKNvkL5m1DlWnSxT+63k8QEd090jJ3+yCBh7zmnG1ffMEHTMvl9ZSgqxE1r7/lXQVIniUR2SD5d+Vc0EVMQ7kMUXYILMc8uzUyo9RQq7rwKHTB9z83UzZsoRo7AANWSSlxzWUKChqnThgEtVCnb6D054nCSvanQbONVyOvnUVJfaFj3xdJHntldXy75Yq13QqFmOyHDRkOYFdXVn5LQQEfyjEs2mUTMT8bFRq0evXD X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(7696005)(21470400002)(4326008)(336012)(82310400003)(55016002)(5660300002)(21480400003)(2906002)(186003)(83380400001)(36860700001)(235185007)(86362001)(316002)(70586007)(6916009)(8936002)(6506007)(70206006)(356005)(52536014)(81166007)(99936003)(9686003)(47076005)(33656002)(54906003)(30864003)(26005)(8676002)(508600001)(54036008); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2021 14:48:44.4566 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7b7111a2-6872-41c4-5302-08d9956b0c04 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT064.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1742 X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Oct 2021 14:48:54 -0000 --_002_DB9PR08MB69595EB360DA1D1070A70917EB809DB9PR08MB6959eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= Until now, GCC has used large integer machine modes (OI, CI and XI)=0A= to model Neon vector-tuple types. This is suboptimal for many=0A= reasons, the most notable are:=0A= =0A= =A01) Large integer modes are opaque and modifying one vector in the=0A= =A0 =A0 tuple requires a lot of inefficient set/get gymnastics. The=0A= =A0 =A0 result is a lot of superfluous move instructions.=0A= =A02) Large integer modes do not map well to types that are tuples of=0A= =A0 =A0 64-bit vectors - we need additional zero-padding which again=0A= =A0 =A0 results in superfluous move instructions.=0A= =0A= This patch adds new machine modes that better model the C-level Neon=0A= vector-tuple types. The approach is somewhat similar to that already=0A= used for SVE vector-tuple types.=0A= =0A= All of the AArch64 backend patterns and builtins that manipulate Neon=0A= vector tuples are updated to use the new machine modes. This has the=0A= effect of significantly reducing the amount of boiler-plate code in=0A= the arm_neon.h header.=0A= =0A= While this patch increases the quality of code generated in many=0A= instances, there is still room for significant improvement - which=0A= will be attempted in subsequent patches.=0A= =0A= Bootstrapped and regression tested on aarch64-none-linux-gnu and=0A= aarch64_be-none-linux-gnu - no issues.=0A= =0A= Ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-08-09 =A0Jonathan Wright =A0=0A= =A0 =A0 =A0 =A0 =A0 =A0 Richard Sandiford =A0=0A= =0A= * config/aarch64/aarch64-builtins.c (v2x8qi_UP): Define.=0A= (v2x4hi_UP): Likewise.=0A= (v2x4hf_UP): Likewise.=0A= (v2x4bf_UP): Likewise.=0A= (v2x2si_UP): Likewise.=0A= (v2x2sf_UP): Likewise.=0A= (v2x1di_UP): Likewise.=0A= (v2x1df_UP): Likewise.=0A= (v2x16qi_UP): Likewise.=0A= (v2x8hi_UP): Likewise.=0A= (v2x8hf_UP): Likewise.=0A= (v2x8bf_UP): Likewise.=0A= (v2x4si_UP): Likewise.=0A= (v2x4sf_UP): Likewise.=0A= (v2x2di_UP): Likewise.=0A= (v2x2df_UP): Likewise.=0A= (v3x8qi_UP): Likewise.=0A= (v3x4hi_UP): Likewise.=0A= (v3x4hf_UP): Likewise.=0A= (v3x4bf_UP): Likewise.=0A= (v3x2si_UP): Likewise.=0A= (v3x2sf_UP): Likewise.=0A= (v3x1di_UP): Likewise.=0A= (v3x1df_UP): Likewise.=0A= (v3x16qi_UP): Likewise.=0A= (v3x8hi_UP): Likewise.=0A= (v3x8hf_UP): Likewise.=0A= (v3x8bf_UP): Likewise.=0A= (v3x4si_UP): Likewise.=0A= (v3x4sf_UP): Likewise.=0A= (v3x2di_UP): Likewise.=0A= (v3x2df_UP): Likewise.=0A= (v4x8qi_UP): Likewise.=0A= (v4x4hi_UP): Likewise.=0A= (v4x4hf_UP): Likewise.=0A= (v4x4bf_UP): Likewise.=0A= (v4x2si_UP): Likewise.=0A= (v4x2sf_UP): Likewise.=0A= (v4x1di_UP): Likewise.=0A= (v4x1df_UP): Likewise.=0A= (v4x16qi_UP): Likewise.=0A= (v4x8hi_UP): Likewise.=0A= (v4x8hf_UP): Likewise.=0A= (v4x8bf_UP): Likewise.=0A= (v4x4si_UP): Likewise.=0A= (v4x4sf_UP): Likewise.=0A= (v4x2di_UP): Likewise.=0A= (v4x2df_UP): Likewise.=0A= (TYPES_GETREGP): Delete.=0A= (TYPES_SETREGP): Likewise.=0A= (TYPES_LOADSTRUCT_U): Define.=0A= (TYPES_LOADSTRUCT_P): Likewise.=0A= (TYPES_LOADSTRUCT_LANE_U): Likewise.=0A= (TYPES_LOADSTRUCT_LANE_P): Likewise.=0A= (TYPES_STORE1P): Move for consistency.=0A= (TYPES_STORESTRUCT_U): Define.=0A= (TYPES_STORESTRUCT_P): Likewise.=0A= (TYPES_STORESTRUCT_LANE_U): Likewise.=0A= (TYPES_STORESTRUCT_LANE_P): Likewise.=0A= (aarch64_simd_tuple_types): Define.=0A= (aarch64_lookup_simd_builtin_type): Handle tuple type lookup.=0A= (aarch64_init_simd_builtin_functions): Update frontend lookup=0A= for builtin functions after handling arm_neon.h pragma.=0A= (register_tuple_type): Manually set modes of single-integer=0A= tuple types. Record tuple types.=0A= * config/aarch64/aarch64-modes.def=0A= (ADV_SIMD_D_REG_STRUCT_MODES): Define D-register tuple modes.=0A= (ADV_SIMD_Q_REG_STRUCT_MODES): Define Q-register tuple modes.=0A= (SVE_MODES): Give single-vector modes priority over vector-=0A= tuple modes.=0A= (VECTOR_MODES_WITH_PREFIX): Set partial-vector mode order to=0A= be after all single-vector modes.=0A= * config/aarch64/aarch64-simd-builtins.def: Update builtin=0A= generator macros to reflect modifications to the backend=0A= patterns.=0A= * config/aarch64/aarch64-simd.md (aarch64_simd_ld2):=0A= Use vector-tuple mode iterator and rename to...=0A= (aarch64_simd_ld2): This.=0A= (aarch64_simd_ld2r): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_ld2r): This.=0A= (aarch64_vec_load_lanesoi_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (aarch64_vec_load_lanes_lane): This.=0A= (vec_load_lanesoi): Use vector-tuple mode iterator and=0A= rename to...=0A= (vec_load_lanes): This.=0A= (aarch64_simd_st2): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_st2): This.=0A= (aarch64_vec_store_lanesoi_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (aarch64_vec_store_lanes_lane): This.=0A= (vec_store_lanesoi): Use vector-tuple mode iterator and=0A= rename to...=0A= (vec_store_lanes): This.=0A= (aarch64_simd_ld3): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_ld3): This.=0A= (aarch64_simd_ld3r): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_ld3r): This.=0A= (aarch64_vec_load_lanesci_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (vec_load_lanesci): This.=0A= (aarch64_simd_st3): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_st3): This.=0A= (aarch64_vec_store_lanesci_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (vec_store_lanesci): This.=0A= (aarch64_simd_ld4): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_ld4): This.=0A= (aarch64_simd_ld4r): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_ld4r): This.=0A= (aarch64_vec_load_lanesxi_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (vec_load_lanesxi): This.=0A= (aarch64_simd_st4): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_simd_st4): This.=0A= (aarch64_vec_store_lanesxi_lane): Use vector-tuple mode=0A= iterator and rename to...=0A= (vec_store_lanesxi): This.=0A= (mov): Define for Neon vector-tuple modes.=0A= (aarch64_ld1x3): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_ld1x3): This.=0A= (aarch64_ld1_x3_): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld1_x3_): This.=0A= (aarch64_ld1x4): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_ld1x4): This.=0A= (aarch64_ld1_x4_): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld1_x4_): This.=0A= (aarch64_st1x2): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_st1x2): This.=0A= (aarch64_st1_x2_): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st1_x2_): This.=0A= (aarch64_st1x3): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_st1x3): This.=0A= (aarch64_st1_x3_): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st1_x3_): This.=0A= (aarch64_st1x4): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_st1x4): This.=0A= (aarch64_st1_x4_): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st1_x4_): This.=0A= (*aarch64_mov): Define for vector-tuple modes.=0A= (*aarch64_be_mov): Likewise.=0A= (aarch64_ldr): Use vector-tuple=0A= mode iterator and rename to...=0A= (aarch64_ldr): This.=0A= (aarch64_ld2_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld2_dreg): This.=0A= (aarch64_ld3_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld3_dreg): This.=0A= (aarch64_ld4_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld4_dreg): This.=0A= (aarch64_ld): Use vector-tuple mode=0A= iterator and rename to...=0A= (aarch64_ld): Use vector-tuple mode=0A= iterator and rename to...=0A= (aarch64_ld): Use vector-tuple mode=0A= (aarch64_ld1x2): Delete.=0A= (aarch64_ld1x2): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_ld1x2): This.=0A= (aarch64_ld_lane): Use vector-=0A= tuple mode iterator and rename to...=0A= (aarch64_ld_lane): This.=0A= (aarch64_get_dreg): Delete.=0A= (aarch64_get_qreg): Likewise.=0A= (aarch64_st2_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st2_dreg): This.=0A= (aarch64_st3_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st3_dreg): This.=0A= (aarch64_st4_dreg): Use vector-tuple mode iterator and=0A= rename to...=0A= (aarch64_st4_dreg): This.=0A= (aarch64_st): Use vector-tuple mode=0A= iterator and rename to...=0A= (aarch64_st): This.=0A= (aarch64_st): Use vector-tuple mode=0A= iterator and rename to aarch64_st.=0A= (aarch64_st_lane): Use vector-=0A= tuple mode iterator and rename to...=0A= (aarch64_st_lane): This.=0A= (aarch64_set_qreg): Delete.=0A= (aarch64_simd_ld1_x2): Use vector-tuple mode iterator=0A= and rename to...=0A= (aarch64_simd_ld1_x2): This.=0A= * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p):=0A= Refactor to include new vector-tuple modes.=0A= (aarch64_classify_vector_mode): Add cases for new vector-=0A= tuple modes.=0A= (aarch64_advsimd_partial_struct_mode_p): Define.=0A= (aarch64_advsimd_full_struct_mode_p): Likewise.=0A= (aarch64_advsimd_vector_array_mode): Likewise.=0A= (aarch64_sve_data_mode): Change location in file.=0A= (aarch64_array_mode): Handle case of Neon vector-tuple modes.=0A= (aarch64_hard_regno_nregs): Handle case of partial Neon=0A= vector structures.=0A= (aarch64_classify_address): Refactor to include handling of=0A= Neon vector-tuple modes.=0A= (aarch64_print_operand): Print "d" for "%R" for a partial=0A= Neon vector structure.=0A= (aarch64_expand_vec_perm_1): Use new vector-tuple mode.=0A= (aarch64_modes_tieable_p): Prevent tieing Neon partial struct=0A= modes with scalar machines modes larger than 8 bytes.=0A= (aarch64_can_change_mode_class): Don't allow changes between=0A= partial and full Neon vector-structure modes.=0A= * config/aarch64/arm_neon.h (vst2_lane_f16): Use updated=0A= builtin and remove boiler-plate code for opaque mode.=0A= (vst2_lane_f32): Likewise.=0A= (vst2_lane_f64): Likewise.=0A= (vst2_lane_p8): Likewise.=0A= (vst2_lane_p16): Likewise.=0A= (vst2_lane_p64): Likewise.=0A= (vst2_lane_s8): Likewise.=0A= (vst2_lane_s16): Likewise.=0A= (vst2_lane_s32): Likewise.=0A= (vst2_lane_s64): Likewise.=0A= (vst2_lane_u8): Likewise.=0A= (vst2_lane_u16): Likewise.=0A= (vst2_lane_u32): Likewise.=0A= (vst2_lane_u64): Likewise.=0A= (vst2q_lane_f16): Likewise.=0A= (vst2q_lane_f32): Likewise.=0A= (vst2q_lane_f64): Likewise.=0A= (vst2q_lane_p8): Likewise.=0A= (vst2q_lane_p16): Likewise.=0A= (vst2q_lane_p64): Likewise.=0A= (vst2q_lane_s8): Likewise.=0A= (vst2q_lane_s16): Likewise.=0A= (vst2q_lane_s32): Likewise.=0A= (vst2q_lane_s64): Likewise.=0A= (vst2q_lane_u8): Likewise.=0A= (vst2q_lane_u16): Likewise.=0A= (vst2q_lane_u32): Likewise.=0A= (vst2q_lane_u64): Likewise.=0A= (vst3_lane_f16): Likewise.=0A= (vst3_lane_f32): Likewise.=0A= (vst3_lane_f64): Likewise.=0A= (vst3_lane_p8): Likewise.=0A= (vst3_lane_p16): Likewise.=0A= (vst3_lane_p64): Likewise.=0A= (vst3_lane_s8): Likewise.=0A= (vst3_lane_s16): Likewise.=0A= (vst3_lane_s32): Likewise.=0A= (vst3_lane_s64): Likewise.=0A= (vst3_lane_u8): Likewise.=0A= (vst3_lane_u16): Likewise.=0A= (vst3_lane_u32): Likewise.=0A= (vst3_lane_u64): Likewise.=0A= (vst3q_lane_f16): Likewise.=0A= (vst3q_lane_f32): Likewise.=0A= (vst3q_lane_f64): Likewise.=0A= (vst3q_lane_p8): Likewise.=0A= (vst3q_lane_p16): Likewise.=0A= (vst3q_lane_p64): Likewise.=0A= (vst3q_lane_s8): Likewise.=0A= (vst3q_lane_s16): Likewise.=0A= (vst3q_lane_s32): Likewise.=0A= (vst3q_lane_s64): Likewise.=0A= (vst3q_lane_u8): Likewise.=0A= (vst3q_lane_u16): Likewise.=0A= (vst3q_lane_u32): Likewise.=0A= (vst3q_lane_u64): Likewise.=0A= (vst4_lane_f16): Likewise.=0A= (vst4_lane_f32): Likewise.=0A= (vst4_lane_f64): Likewise.=0A= (vst4_lane_p8): Likewise.=0A= (vst4_lane_p16): Likewise.=0A= (vst4_lane_p64): Likewise.=0A= (vst4_lane_s8): Likewise.=0A= (vst4_lane_s16): Likewise.=0A= (vst4_lane_s32): Likewise.=0A= (vst4_lane_s64): Likewise.=0A= (vst4_lane_u8): Likewise.=0A= (vst4_lane_u16): Likewise.=0A= (vst4_lane_u32): Likewise.=0A= (vst4_lane_u64): Likewise.=0A= (vst4q_lane_f16): Likewise.=0A= (vst4q_lane_f32): Likewise.=0A= (vst4q_lane_f64): Likewise.=0A= (vst4q_lane_p8): Likewise.=0A= (vst4q_lane_p16): Likewise.=0A= (vst4q_lane_p64): Likewise.=0A= (vst4q_lane_s8): Likewise.=0A= (vst4q_lane_s16): Likewise.=0A= (vst4q_lane_s32): Likewise.=0A= (vst4q_lane_s64): Likewise.=0A= (vst4q_lane_u8): Likewise.=0A= (vst4q_lane_u16): Likewise.=0A= (vst4q_lane_u32): Likewise.=0A= (vst4q_lane_u64): Likewise.=0A= (vtbl3_s8): Likewise.=0A= (vtbl3_u8): Likewise.=0A= (vtbl3_p8): Likewise.=0A= (vtbl4_s8): Likewise.=0A= (vtbl4_u8): Likewise.=0A= (vtbl4_p8): Likewise.=0A= (vld1_u8_x3): Likewise.=0A= (vld1_s8_x3): Likewise.=0A= (vld1_u16_x3): Likewise.=0A= (vld1_s16_x3): Likewise.=0A= (vld1_u32_x3): Likewise.=0A= (vld1_s32_x3): Likewise.=0A= (vld1_u64_x3): Likewise.=0A= (vld1_s64_x3): Likewise.=0A= (vld1_f16_x3): Likewise.=0A= (vld1_f32_x3): Likewise.=0A= (vld1_f64_x3): Likewise.=0A= (vld1_p8_x3): Likewise.=0A= (vld1_p16_x3): Likewise.=0A= (vld1_p64_x3): Likewise.=0A= (vld1q_u8_x3): Likewise.=0A= (vld1q_s8_x3): Likewise.=0A= (vld1q_u16_x3): Likewise.=0A= (vld1q_s16_x3): Likewise.=0A= (vld1q_u32_x3): Likewise.=0A= (vld1q_s32_x3): Likewise.=0A= (vld1q_u64_x3): Likewise.=0A= (vld1q_s64_x3): Likewise.=0A= (vld1q_f16_x3): Likewise.=0A= (vld1q_f32_x3): Likewise.=0A= (vld1q_f64_x3): Likewise.=0A= (vld1q_p8_x3): Likewise.=0A= (vld1q_p16_x3): Likewise.=0A= (vld1q_p64_x3): Likewise.=0A= (vld1_u8_x2): Likewise.=0A= (vld1_s8_x2): Likewise.=0A= (vld1_u16_x2): Likewise.=0A= (vld1_s16_x2): Likewise.=0A= (vld1_u32_x2): Likewise.=0A= (vld1_s32_x2): Likewise.=0A= (vld1_u64_x2): Likewise.=0A= (vld1_s64_x2): Likewise.=0A= (vld1_f16_x2): Likewise.=0A= (vld1_f32_x2): Likewise.=0A= (vld1_f64_x2): Likewise.=0A= (vld1_p8_x2): Likewise.=0A= (vld1_p16_x2): Likewise.=0A= (vld1_p64_x2): Likewise.=0A= (vld1q_u8_x2): Likewise.=0A= (vld1q_s8_x2): Likewise.=0A= (vld1q_u16_x2): Likewise.=0A= (vld1q_s16_x2): Likewise.=0A= (vld1q_u32_x2): Likewise.=0A= (vld1q_s32_x2): Likewise.=0A= (vld1q_u64_x2): Likewise.=0A= (vld1q_s64_x2): Likewise.=0A= (vld1q_f16_x2): Likewise.=0A= (vld1q_f32_x2): Likewise.=0A= (vld1q_f64_x2): Likewise.=0A= (vld1q_p8_x2): Likewise.=0A= (vld1q_p16_x2): Likewise.=0A= (vld1q_p64_x2): Likewise.=0A= (vld1_s8_x4): Likewise.=0A= (vld1q_s8_x4): Likewise.=0A= (vld1_s16_x4): Likewise.=0A= (vld1q_s16_x4): Likewise.=0A= (vld1_s32_x4): Likewise.=0A= (vld1q_s32_x4): Likewise.=0A= (vld1_u8_x4): Likewise.=0A= (vld1q_u8_x4): Likewise.=0A= (vld1_u16_x4): Likewise.=0A= (vld1q_u16_x4): Likewise.=0A= (vld1_u32_x4): Likewise.=0A= (vld1q_u32_x4): Likewise.=0A= (vld1_f16_x4): Likewise.=0A= (vld1q_f16_x4): Likewise.=0A= (vld1_f32_x4): Likewise.=0A= (vld1q_f32_x4): Likewise.=0A= (vld1_p8_x4): Likewise.=0A= (vld1q_p8_x4): Likewise.=0A= (vld1_p16_x4): Likewise.=0A= (vld1q_p16_x4): Likewise.=0A= (vld1_s64_x4): Likewise.=0A= (vld1_u64_x4): Likewise.=0A= (vld1_p64_x4): Likewise.=0A= (vld1q_s64_x4): Likewise.=0A= (vld1q_u64_x4): Likewise.=0A= (vld1q_p64_x4): Likewise.=0A= (vld1_f64_x4): Likewise.=0A= (vld1q_f64_x4): Likewise.=0A= (vld2_s64): Likewise.=0A= (vld2_u64): Likewise.=0A= (vld2_f64): Likewise.=0A= (vld2_s8): Likewise.=0A= (vld2_p8): Likewise.=0A= (vld2_p64): Likewise.=0A= (vld2_s16): Likewise.=0A= (vld2_p16): Likewise.=0A= (vld2_s32): Likewise.=0A= (vld2_u8): Likewise.=0A= (vld2_u16): Likewise.=0A= (vld2_u32): Likewise.=0A= (vld2_f16): Likewise.=0A= (vld2_f32): Likewise.=0A= (vld2q_s8): Likewise.=0A= (vld2q_p8): Likewise.=0A= (vld2q_s16): Likewise.=0A= (vld2q_p16): Likewise.=0A= (vld2q_p64): Likewise.=0A= (vld2q_s32): Likewise.=0A= (vld2q_s64): Likewise.=0A= (vld2q_u8): Likewise.=0A= (vld2q_u16): Likewise.=0A= (vld2q_u32): Likewise.=0A= (vld2q_u64): Likewise.=0A= (vld2q_f16): Likewise.=0A= (vld2q_f32): Likewise.=0A= (vld2q_f64): Likewise.=0A= (vld3_s64): Likewise.=0A= (vld3_u64): Likewise.=0A= (vld3_f64): Likewise.=0A= (vld3_s8): Likewise.=0A= (vld3_p8): Likewise.=0A= (vld3_s16): Likewise.=0A= (vld3_p16): Likewise.=0A= (vld3_s32): Likewise.=0A= (vld3_u8): Likewise.=0A= (vld3_u16): Likewise.=0A= (vld3_u32): Likewise.=0A= (vld3_f16): Likewise.=0A= (vld3_f32): Likewise.=0A= (vld3_p64): Likewise.=0A= (vld3q_s8): Likewise.=0A= (vld3q_p8): Likewise.=0A= (vld3q_s16): Likewise.=0A= (vld3q_p16): Likewise.=0A= (vld3q_s32): Likewise.=0A= (vld3q_s64): Likewise.=0A= (vld3q_u8): Likewise.=0A= (vld3q_u16): Likewise.=0A= (vld3q_u32): Likewise.=0A= (vld3q_u64): Likewise.=0A= (vld3q_f16): Likewise.=0A= (vld3q_f32): Likewise.=0A= (vld3q_f64): Likewise.=0A= (vld3q_p64): Likewise.=0A= (vld4_s64): Likewise.=0A= (vld4_u64): Likewise.=0A= (vld4_f64): Likewise.=0A= (vld4_s8): Likewise.=0A= (vld4_p8): Likewise.=0A= (vld4_s16): Likewise.=0A= (vld4_p16): Likewise.=0A= (vld4_s32): Likewise.=0A= (vld4_u8): Likewise.=0A= (vld4_u16): Likewise.=0A= (vld4_u32): Likewise.=0A= (vld4_f16): Likewise.=0A= (vld4_f32): Likewise.=0A= (vld4_p64): Likewise.=0A= (vld4q_s8): Likewise.=0A= (vld4q_p8): Likewise.=0A= (vld4q_s16): Likewise.=0A= (vld4q_p16): Likewise.=0A= (vld4q_s32): Likewise.=0A= (vld4q_s64): Likewise.=0A= (vld4q_u8): Likewise.=0A= (vld4q_u16): Likewise.=0A= (vld4q_u32): Likewise.=0A= (vld4q_u64): Likewise.=0A= (vld4q_f16): Likewise.=0A= (vld4q_f32): Likewise.=0A= (vld4q_f64): Likewise.=0A= (vld4q_p64): Likewise.=0A= (vld2_dup_s8): Likewise.=0A= (vld2_dup_s16): Likewise.=0A= (vld2_dup_s32): Likewise.=0A= (vld2_dup_f16): Likewise.=0A= (vld2_dup_f32): Likewise.=0A= (vld2_dup_f64): Likewise.=0A= (vld2_dup_u8): Likewise.=0A= (vld2_dup_u16): Likewise.=0A= (vld2_dup_u32): Likewise.=0A= (vld2_dup_p8): Likewise.=0A= (vld2_dup_p16): Likewise.=0A= (vld2_dup_p64): Likewise.=0A= (vld2_dup_s64): Likewise.=0A= (vld2_dup_u64): Likewise.=0A= (vld2q_dup_s8): Likewise.=0A= (vld2q_dup_p8): Likewise.=0A= (vld2q_dup_s16): Likewise.=0A= (vld2q_dup_p16): Likewise.=0A= (vld2q_dup_s32): Likewise.=0A= (vld2q_dup_s64): Likewise.=0A= (vld2q_dup_u8): Likewise.=0A= (vld2q_dup_u16): Likewise.=0A= (vld2q_dup_u32): Likewise.=0A= (vld2q_dup_u64): Likewise.=0A= (vld2q_dup_f16): Likewise.=0A= (vld2q_dup_f32): Likewise.=0A= (vld2q_dup_f64): Likewise.=0A= (vld2q_dup_p64): Likewise.=0A= (vld3_dup_s64): Likewise.=0A= (vld3_dup_u64): Likewise.=0A= (vld3_dup_f64): Likewise.=0A= (vld3_dup_s8): Likewise.=0A= (vld3_dup_p8): Likewise.=0A= (vld3_dup_s16): Likewise.=0A= (vld3_dup_p16): Likewise.=0A= (vld3_dup_s32): Likewise.=0A= (vld3_dup_u8): Likewise.=0A= (vld3_dup_u16): Likewise.=0A= (vld3_dup_u32): Likewise.=0A= (vld3_dup_f16): Likewise.=0A= (vld3_dup_f32): Likewise.=0A= (vld3_dup_p64): Likewise.=0A= (vld3q_dup_s8): Likewise.=0A= (vld3q_dup_p8): Likewise.=0A= (vld3q_dup_s16): Likewise.=0A= (vld3q_dup_p16): Likewise.=0A= (vld3q_dup_s32): Likewise.=0A= (vld3q_dup_s64): Likewise.=0A= (vld3q_dup_u8): Likewise.=0A= (vld3q_dup_u16): Likewise.=0A= (vld3q_dup_u32): Likewise.=0A= (vld3q_dup_u64): Likewise.=0A= (vld3q_dup_f16): Likewise.=0A= (vld3q_dup_f32): Likewise.=0A= (vld3q_dup_f64): Likewise.=0A= (vld3q_dup_p64): Likewise.=0A= (vld4_dup_s64): Likewise.=0A= (vld4_dup_u64): Likewise.=0A= (vld4_dup_f64): Likewise.=0A= (vld4_dup_s8): Likewise.=0A= (vld4_dup_p8): Likewise.=0A= (vld4_dup_s16): Likewise.=0A= (vld4_dup_p16): Likewise.=0A= (vld4_dup_s32): Likewise.=0A= (vld4_dup_u8): Likewise.=0A= (vld4_dup_u16): Likewise.=0A= (vld4_dup_u32): Likewise.=0A= (vld4_dup_f16): Likewise.=0A= (vld4_dup_f32): Likewise.=0A= (vld4_dup_p64): Likewise.=0A= (vld4q_dup_s8): Likewise.=0A= (vld4q_dup_p8): Likewise.=0A= (vld4q_dup_s16): Likewise.=0A= (vld4q_dup_p16): Likewise.=0A= (vld4q_dup_s32): Likewise.=0A= (vld4q_dup_s64): Likewise.=0A= (vld4q_dup_u8): Likewise.=0A= (vld4q_dup_u16): Likewise.=0A= (vld4q_dup_u32): Likewise.=0A= (vld4q_dup_u64): Likewise.=0A= (vld4q_dup_f16): Likewise.=0A= (vld4q_dup_f32): Likewise.=0A= (vld4q_dup_f64): Likewise.=0A= (vld4q_dup_p64): Likewise.=0A= (vld2_lane_u8): Likewise.=0A= (vld2_lane_u16): Likewise.=0A= (vld2_lane_u32): Likewise.=0A= (vld2_lane_u64): Likewise.=0A= (vld2_lane_s8): Likewise.=0A= (vld2_lane_s16): Likewise.=0A= (vld2_lane_s32): Likewise.=0A= (vld2_lane_s64): Likewise.=0A= (vld2_lane_f16): Likewise.=0A= (vld2_lane_f32): Likewise.=0A= (vld2_lane_f64): Likewise.=0A= (vld2_lane_p8): Likewise.=0A= (vld2_lane_p16): Likewise.=0A= (vld2_lane_p64): Likewise.=0A= (vld2q_lane_u8): Likewise.=0A= (vld2q_lane_u16): Likewise.=0A= (vld2q_lane_u32): Likewise.=0A= (vld2q_lane_u64): Likewise.=0A= (vld2q_lane_s8): Likewise.=0A= (vld2q_lane_s16): Likewise.=0A= (vld2q_lane_s32): Likewise.=0A= (vld2q_lane_s64): Likewise.=0A= (vld2q_lane_f16): Likewise.=0A= (vld2q_lane_f32): Likewise.=0A= (vld2q_lane_f64): Likewise.=0A= (vld2q_lane_p8): Likewise.=0A= (vld2q_lane_p16): Likewise.=0A= (vld2q_lane_p64): Likewise.=0A= (vld3_lane_u8): Likewise.=0A= (vld3_lane_u16): Likewise.=0A= (vld3_lane_u32): Likewise.=0A= (vld3_lane_u64): Likewise.=0A= (vld3_lane_s8): Likewise.=0A= (vld3_lane_s16): Likewise.=0A= (vld3_lane_s32): Likewise.=0A= (vld3_lane_s64): Likewise.=0A= (vld3_lane_f16): Likewise.=0A= (vld3_lane_f32): Likewise.=0A= (vld3_lane_f64): Likewise.=0A= (vld3_lane_p8): Likewise.=0A= (vld3_lane_p16): Likewise.=0A= (vld3_lane_p64): Likewise.=0A= (vld3q_lane_u8): Likewise.=0A= (vld3q_lane_u16): Likewise.=0A= (vld3q_lane_u32): Likewise.=0A= (vld3q_lane_u64): Likewise.=0A= (vld3q_lane_s8): Likewise.=0A= (vld3q_lane_s16): Likewise.=0A= (vld3q_lane_s32): Likewise.=0A= (vld3q_lane_s64): Likewise.=0A= (vld3q_lane_f16): Likewise.=0A= (vld3q_lane_f32): Likewise.=0A= (vld3q_lane_f64): Likewise.=0A= (vld3q_lane_p8): Likewise.=0A= (vld3q_lane_p16): Likewise.=0A= (vld3q_lane_p64): Likewise.=0A= (vld4_lane_u8): Likewise.=0A= (vld4_lane_u16): Likewise.=0A= (vld4_lane_u32): Likewise.=0A= (vld4_lane_u64): Likewise.=0A= (vld4_lane_s8): Likewise.=0A= (vld4_lane_s16): Likewise.=0A= (vld4_lane_s32): Likewise.=0A= (vld4_lane_s64): Likewise.=0A= (vld4_lane_f16): Likewise.=0A= (vld4_lane_f32): Likewise.=0A= (vld4_lane_f64): Likewise.=0A= (vld4_lane_p8): Likewise.=0A= (vld4_lane_p16): Likewise.=0A= (vld4_lane_p64): Likewise.=0A= (vld4q_lane_u8): Likewise.=0A= (vld4q_lane_u16): Likewise.=0A= (vld4q_lane_u32): Likewise.=0A= (vld4q_lane_u64): Likewise.=0A= (vld4q_lane_s8): Likewise.=0A= (vld4q_lane_s16): Likewise.=0A= (vld4q_lane_s32): Likewise.=0A= (vld4q_lane_s64): Likewise.=0A= (vld4q_lane_f16): Likewise.=0A= (vld4q_lane_f32): Likewise.=0A= (vld4q_lane_f64): Likewise.=0A= (vld4q_lane_p8): Likewise.=0A= (vld4q_lane_p16): Likewise.=0A= (vld4q_lane_p64): Likewise.=0A= (vqtbl2_s8): Likewise.=0A= (vqtbl2_u8): Likewise.=0A= (vqtbl2_p8): Likewise.=0A= (vqtbl2q_s8): Likewise.=0A= (vqtbl2q_u8): Likewise.=0A= (vqtbl2q_p8): Likewise.=0A= (vqtbl3_s8): Likewise.=0A= (vqtbl3_u8): Likewise.=0A= (vqtbl3_p8): Likewise.=0A= (vqtbl3q_s8): Likewise.=0A= (vqtbl3q_u8): Likewise.=0A= (vqtbl3q_p8): Likewise.=0A= (vqtbl4_s8): Likewise.=0A= (vqtbl4_u8): Likewise.=0A= (vqtbl4_p8): Likewise.=0A= (vqtbl4q_s8): Likewise.=0A= (vqtbl4q_u8): Likewise.=0A= (vqtbl4q_p8): Likewise.=0A= (vqtbx2_s8): Likewise.=0A= (vqtbx2_u8): Likewise.=0A= (vqtbx2_p8): Likewise.=0A= (vqtbx2q_s8): Likewise.=0A= (vqtbx2q_u8): Likewise.=0A= (vqtbx2q_p8): Likewise.=0A= (vqtbx3_s8): Likewise.=0A= (vqtbx3_u8): Likewise.=0A= (vqtbx3_p8): Likewise.=0A= (vqtbx3q_s8): Likewise.=0A= (vqtbx3q_u8): Likewise.=0A= (vqtbx3q_p8): Likewise.=0A= (vqtbx4_s8): Likewise.=0A= (vqtbx4_u8): Likewise.=0A= (vqtbx4_p8): Likewise.=0A= (vqtbx4q_s8): Likewise.=0A= (vqtbx4q_u8): Likewise.=0A= (vqtbx4q_p8): Likewise.=0A= (vst1_s64_x2): Likewise.=0A= (vst1_u64_x2): Likewise.=0A= (vst1_f64_x2): Likewise.=0A= (vst1_s8_x2): Likewise.=0A= (vst1_p8_x2): Likewise.=0A= (vst1_s16_x2): Likewise.=0A= (vst1_p16_x2): Likewise.=0A= (vst1_s32_x2): Likewise.=0A= (vst1_u8_x2): Likewise.=0A= (vst1_u16_x2): Likewise.=0A= (vst1_u32_x2): Likewise.=0A= (vst1_f16_x2): Likewise.=0A= (vst1_f32_x2): Likewise.=0A= (vst1_p64_x2): Likewise.=0A= (vst1q_s8_x2): Likewise.=0A= (vst1q_p8_x2): Likewise.=0A= (vst1q_s16_x2): Likewise.=0A= (vst1q_p16_x2): Likewise.=0A= (vst1q_s32_x2): Likewise.=0A= (vst1q_s64_x2): Likewise.=0A= (vst1q_u8_x2): Likewise.=0A= (vst1q_u16_x2): Likewise.=0A= (vst1q_u32_x2): Likewise.=0A= (vst1q_u64_x2): Likewise.=0A= (vst1q_f16_x2): Likewise.=0A= (vst1q_f32_x2): Likewise.=0A= (vst1q_f64_x2): Likewise.=0A= (vst1q_p64_x2): Likewise.=0A= (vst1_s64_x3): Likewise.=0A= (vst1_u64_x3): Likewise.=0A= (vst1_f64_x3): Likewise.=0A= (vst1_s8_x3): Likewise.=0A= (vst1_p8_x3): Likewise.=0A= (vst1_s16_x3): Likewise.=0A= (vst1_p16_x3): Likewise.=0A= (vst1_s32_x3): Likewise.=0A= (vst1_u8_x3): Likewise.=0A= (vst1_u16_x3): Likewise.=0A= (vst1_u32_x3): Likewise.=0A= (vst1_f16_x3): Likewise.=0A= (vst1_f32_x3): Likewise.=0A= (vst1_p64_x3): Likewise.=0A= (vst1q_s8_x3): Likewise.=0A= (vst1q_p8_x3): Likewise.=0A= (vst1q_s16_x3): Likewise.=0A= (vst1q_p16_x3): Likewise.=0A= (vst1q_s32_x3): Likewise.=0A= (vst1q_s64_x3): Likewise.=0A= (vst1q_u8_x3): Likewise.=0A= (vst1q_u16_x3): Likewise.=0A= (vst1q_u32_x3): Likewise.=0A= (vst1q_u64_x3): Likewise.=0A= (vst1q_f16_x3): Likewise.=0A= (vst1q_f32_x3): Likewise.=0A= (vst1q_f64_x3): Likewise.=0A= (vst1q_p64_x3): Likewise.=0A= (vst1_s8_x4): Likewise.=0A= (vst1q_s8_x4): Likewise.=0A= (vst1_s16_x4): Likewise.=0A= (vst1q_s16_x4): Likewise.=0A= (vst1_s32_x4): Likewise.=0A= (vst1q_s32_x4): Likewise.=0A= (vst1_u8_x4): Likewise.=0A= (vst1q_u8_x4): Likewise.=0A= (vst1_u16_x4): Likewise.=0A= (vst1q_u16_x4): Likewise.=0A= (vst1_u32_x4): Likewise.=0A= (vst1q_u32_x4): Likewise.=0A= (vst1_f16_x4): Likewise.=0A= (vst1q_f16_x4): Likewise.=0A= (vst1_f32_x4): Likewise.=0A= (vst1q_f32_x4): Likewise.=0A= (vst1_p8_x4): Likewise.=0A= (vst1q_p8_x4): Likewise.=0A= (vst1_p16_x4): Likewise.=0A= (vst1q_p16_x4): Likewise.=0A= (vst1_s64_x4): Likewise.=0A= (vst1_u64_x4): Likewise.=0A= (vst1_p64_x4): Likewise.=0A= (vst1q_s64_x4): Likewise.=0A= (vst1q_u64_x4): Likewise.=0A= (vst1q_p64_x4): Likewise.=0A= (vst1_f64_x4): Likewise.=0A= (vst1q_f64_x4): Likewise.=0A= (vst2_s64): Likewise.=0A= (vst2_u64): Likewise.=0A= (vst2_f64): Likewise.=0A= (vst2_s8): Likewise.=0A= (vst2_p8): Likewise.=0A= (vst2_s16): Likewise.=0A= (vst2_p16): Likewise.=0A= (vst2_s32): Likewise.=0A= (vst2_u8): Likewise.=0A= (vst2_u16): Likewise.=0A= (vst2_u32): Likewise.=0A= (vst2_f16): Likewise.=0A= (vst2_f32): Likewise.=0A= (vst2_p64): Likewise.=0A= (vst2q_s8): Likewise.=0A= (vst2q_p8): Likewise.=0A= (vst2q_s16): Likewise.=0A= (vst2q_p16): Likewise.=0A= (vst2q_s32): Likewise.=0A= (vst2q_s64): Likewise.=0A= (vst2q_u8): Likewise.=0A= (vst2q_u16): Likewise.=0A= (vst2q_u32): Likewise.=0A= (vst2q_u64): Likewise.=0A= (vst2q_f16): Likewise.=0A= (vst2q_f32): Likewise.=0A= (vst2q_f64): Likewise.=0A= (vst2q_p64): Likewise.=0A= (vst3_s64): Likewise.=0A= (vst3_u64): Likewise.=0A= (vst3_f64): Likewise.=0A= (vst3_s8): Likewise.=0A= (vst3_p8): Likewise.=0A= (vst3_s16): Likewise.=0A= (vst3_p16): Likewise.=0A= (vst3_s32): Likewise.=0A= (vst3_u8): Likewise.=0A= (vst3_u16): Likewise.=0A= (vst3_u32): Likewise.=0A= (vst3_f16): Likewise.=0A= (vst3_f32): Likewise.=0A= (vst3_p64): Likewise.=0A= (vst3q_s8): Likewise.=0A= (vst3q_p8): Likewise.=0A= (vst3q_s16): Likewise.=0A= (vst3q_p16): Likewise.=0A= (vst3q_s32): Likewise.=0A= (vst3q_s64): Likewise.=0A= (vst3q_u8): Likewise.=0A= (vst3q_u16): Likewise.=0A= (vst3q_u32): Likewise.=0A= (vst3q_u64): Likewise.=0A= (vst3q_f16): Likewise.=0A= (vst3q_f32): Likewise.=0A= (vst3q_f64): Likewise.=0A= (vst3q_p64): Likewise.=0A= (vst4_s64): Likewise.=0A= (vst4_u64): Likewise.=0A= (vst4_f64): Likewise.=0A= (vst4_s8): Likewise.=0A= (vst4_p8): Likewise.=0A= (vst4_s16): Likewise.=0A= (vst4_p16): Likewise.=0A= (vst4_s32): Likewise.=0A= (vst4_u8): Likewise.=0A= (vst4_u16): Likewise.=0A= (vst4_u32): Likewise.=0A= (vst4_f16): Likewise.=0A= (vst4_f32): Likewise.=0A= (vst4_p64): Likewise.=0A= (vst4q_s8): Likewise.=0A= (vst4q_p8): Likewise.=0A= (vst4q_s16): Likewise.=0A= (vst4q_p16): Likewise.=0A= (vst4q_s32): Likewise.=0A= (vst4q_s64): Likewise.=0A= (vst4q_u8): Likewise.=0A= (vst4q_u16): Likewise.=0A= (vst4q_u32): Likewise.=0A= (vst4q_u64): Likewise.=0A= (vst4q_f16): Likewise.=0A= (vst4q_f32): Likewise.=0A= (vst4q_f64): Likewise.=0A= (vst4q_p64): Likewise.=0A= (vtbx4_s8): Likewise.=0A= (vtbx4_u8): Likewise.=0A= (vtbx4_p8): Likewise.=0A= (vld1_bf16_x2): Likewise.=0A= (vld1q_bf16_x2): Likewise.=0A= (vld1_bf16_x3): Likewise.=0A= (vld1q_bf16_x3): Likewise.=0A= (vld1_bf16_x4): Likewise.=0A= (vld1q_bf16_x4): Likewise.=0A= (vld2_bf16): Likewise.=0A= (vld2q_bf16): Likewise.=0A= (vld2_dup_bf16): Likewise.=0A= (vld2q_dup_bf16): Likewise.=0A= (vld3_bf16): Likewise.=0A= (vld3q_bf16): Likewise.=0A= (vld3_dup_bf16): Likewise.=0A= (vld3q_dup_bf16): Likewise.=0A= (vld4_bf16): Likewise.=0A= (vld4q_bf16): Likewise.=0A= (vld4_dup_bf16): Likewise.=0A= (vld4q_dup_bf16): Likewise.=0A= (vst1_bf16_x2): Likewise.=0A= (vst1q_bf16_x2): Likewise.=0A= (vst1_bf16_x3): Likewise.=0A= (vst1q_bf16_x3): Likewise.=0A= (vst1_bf16_x4): Likewise.=0A= (vst1q_bf16_x4): Likewise.=0A= (vst2_bf16): Likewise.=0A= (vst2q_bf16): Likewise.=0A= (vst3_bf16): Likewise.=0A= (vst3q_bf16): Likewise.=0A= (vst4_bf16): Likewise.=0A= (vst4q_bf16): Likewise.=0A= (vld2_lane_bf16): Likewise.=0A= (vld2q_lane_bf16): Likewise.=0A= (vld3_lane_bf16): Likewise.=0A= (vld3q_lane_bf16): Likewise.=0A= (vld4_lane_bf16): Likewise.=0A= (vld4q_lane_bf16): Likewise.=0A= (vst2_lane_bf16): Likewise.=0A= (vst2q_lane_bf16): Likewise.=0A= (vst3_lane_bf16): Likewise.=0A= (vst3q_lane_bf16): Likewise.=0A= (vst4_lane_bf16): Likewise.=0A= (vst4q_lane_bf16): Likewise.=0A= * config/aarch64/geniterators.sh: Modify iterator regex to=0A= match new vector-tuple modes.=0A= * config/aarch64/iterators.md (insn_count): Extend mode=0A= attribute with vector-tuple type information.=0A= (nregs): Likewise.=0A= (Vendreg): Likewise.=0A= (Vetype): Likewise.=0A= (Vtype): Likewise.=0A= (VSTRUCT_2D): New mode iterator.=0A= (VSTRUCT_2DNX): Likewise.=0A= (VSTRUCT_2DX): Likewise.=0A= (VSTRUCT_2Q): Likewise.=0A= (VSTRUCT_2QD): Likewise.=0A= (VSTRUCT_3D): Likewise.=0A= (VSTRUCT_3DNX): Likewise.=0A= (VSTRUCT_3DX): Likewise.=0A= (VSTRUCT_3Q): Likewise.=0A= =A0 =A0 =A0 =A0 (VSTRUCT_3QD): Likewise.=0A= (VSTRUCT_4D): Likewise.=0A= (VSTRUCT_4DNX): Likewise.=0A= (VSTRUCT_4DX): Likewise.=0A= (VSTRUCT_4Q): Likewise.=0A= =A0 =A0 =A0 =A0 (VSTRUCT_4QD): Likewise.=0A= (VSTRUCT_D): Likewise.=0A= (VSTRUCT_Q): Likewise.=0A= (VSTRUCT_QD): Likewise.=0A= (VSTRUCT_ELT): New mode attribute.=0A= (vstruct_elt): Likewise.=0A= * genmodes.c (VECTOR_MODE): Add default prefix and order=0A= parameters.=0A= (VECTOR_MODE_WITH_PREFIX): Define.=0A= (make_vector_mode): Add mode prefix and order parameters.=0A= =0A= gcc/testsuite/ChangeLog:=0A= =0A= * gcc.target/aarch64/advsimd-intrinsics/bf16_vldN_lane_2.c:=0A= Relax incorrect register number requirement.=0A= * gcc.target/aarch64/sve/pcs/struct_3_256.c: Accept=0A= equivalent codegen with fmov.=0A= --_002_DB9PR08MB69595EB360DA1D1070A70917EB809DB9PR08MB6959eurp_ Content-Type: application/zip; name="rb14782.patch.zip" Content-Description: rb14782.patch.zip Content-Disposition: attachment; filename="rb14782.patch.zip"; size=38522; creation-date="Fri, 22 Oct 2021 14:47:52 GMT"; modification-date="Fri, 22 Oct 2021 14:47:52 GMT" Content-Transfer-Encoding: base64 UEsDBBQACAAIAFh8VlMAAAAAAAAAAKzyBwANACAAcmIxNDc4Mi5wYXRjaFVUDQAHCMxyYRbMcmEN zHJhdXgLAAEE9QEAAAQUAAAA7H37dxs3ku7P9l/Rm5zJShHlsB8km+MkG8dSEt/r2I5lezI3m8ND 8WFzRxIpkXTozeR/vwD6wX7gUUAXmk1JPieRRHZXo4GvPhQKVYXxbDp1jo/fz1bO8Kv3o9FXo/nV dPb+q+HwZvShGyQ/j8/Xs4vV7Gr5aOScw657OLsaTzaO15t641FnMgx8vzcehu2pfx4G591hrx96 XX/SOx/32643efTI703a3faofR564/Nud+J2uu1zt9cLPDccdc87nfPzTq8djh233e4GwcPj42No mx8eHR2B2/3dd85xL2h1nSPy/07gfPfdQ+fz8WQ6u5o459PB21cO+Xc6+P6Hy/l4sv3qYxB/eTp4 F5S+DLdfhvGXR+mX3ia8niVfkz9+eVa6IPiQuSD4iXfBNHtB+RGZ5pE/OG3wlplHeGflR3jLafaC sgR3nJHgnpQluONp9gKOhG7UEdEFXU5HhNmOCDkdEWY7IuR0RJjtCN5gBNmOCDgdEWQ7IuB0hJft CI/TEV62I7xSR/hZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgc QPhZQPg8QPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQPhZQPgcQARZQAQcQARZ QAQcQARZQAQcQARZQAQcQARZQAQcQARZQAQcQARZQAQcQARZQAQcQARZQAQ8QARZQAQcQARZQAQc QARZQAQcQARZQAQcQARZQAQcQARZQAQcQARZQAQpINL55O2rg18PnV8//5xc89DZfn727OeTwc9P fh18//bZ8zfPXgyevP7xzOmwOc3zeq2ec+T1OmRuIx/EU99g9WkxWQ7OZ1fzxWCxWKwH1+vhxWw6 m9wsf+PK+/0hmQC/cf500gsHi/nFp5bG3+ur5ez91WTs/PV42/g3/3x1ejZ4c/r6xctXg1evXr11 DgBtPCTvf/zQWa6Gq9nImVytL3NvlrnyYeGVyTdjIu9ieDUZLIazG5MXv5pfTVqqv6Pu7/ott+0c +W6b1/9RY9aD2eUlrB30X7lDs88moibj2XA14fTyL2+fnLx89fZZsYv5zWB9DOnhY96AUVkLwEsd q1BV7NzcCx7nX/DH0zevT398xYdQsUWHRvjZyrIAnNy7Mfz02xF+fJ+Hn+WH2XTlDVbzFAomreLB iPeZtLUFqJ399OyHN96zn38evH17dlYcEGm7TXG3mtzQoVmaQ081PEVoph1QRuIZH4nCNpqBMSfO FpEJXpjC0/f6Ldcl8OyGLb9dxufFfDh2MRpGFnDLFen/2RV55cHlcDGgUyMHd89fPjlxi71ebMYh 766zN6/fPn2jvvUIMk5HPCmQSfYIopzi3jgSvdegNK+W21Tl3SD6Vnq3oj6ZvFdJxcrtIe9lpF1U 0nJ1sx6tInPBGo5b5am9eGPSDtIk8vv8ZhI1KXK38NUg7qDnT16c8vqI/2bmGMjKs4z0Fr1ZbQqp +kwMKtpnfI0RvSVOv1nUIk6fFW+s2F9cTRS9HZ3kjcyv5QWol9js1Om13L5zFLidlt/hrH6ILODC J9NLKS39O9eVrLed1dyhTsWxM3QyH60+TJiQycXkcnK1cujjnfmUfu58nIxIVz9ynC+/gnVIweph AwXj35K983E+G7fKb7HFTAEsHIv77M3L16duaeg5rTqEGXVFCzcSZEC9Oi9H2ZZnxLKXE7ybxJxg 9/HtCc7NJsQRizHiWZ2OyS7Zj4QvWaZKTvsqvagRMZrAm/eSQHhL+gcowIgRmaiKZoqyp9ANlGzv 8CwUyVtVAFJlG0XdUTYsk2JnCfQN1zYpibSjg+hmSamz+MonNUwSiU9/aB+8aDm/HjpPX56cDn54 +XqQiPr88xeff/5r9lK3eGl0yeefu8wa6QY+2150e62Q2iLxkPz45p8HB4eHTtSedHCWs8txNEKz q+m8/PHS+e132tUPI91ak86YOqcv3rz+J2n/UUH26mYyKYhYLy4mkaDfnrz+efDi9OWLwU+D2LB7 cvbm99/83x9nGEksiozny2dRU6+oWfSN8+Lt8+eDN69PTx/Dbn9a7fZfhbezTd2u3yI2YOj3W27O g3Yxn/9rvYikxBvBTI5zcDkcfSBDGll5Gfq7mazWN1f55yd3Llfj5O5oZjl8TIHkONP5jXMwI+1q P3ZmztfO1eRitSS/Hh0dUoPMcWbTLT63w/vb7PdH7PnffMOa8PD4wRdfcGBAr7umF13H4vjNTK+d 0d8eR0r3Z6J7wCYcPXAcZSOOHoCfTw3i5YTz9Aw4Z7//1v7d+Y/MsNJHRJ1KLOn/iTr2f0jH+uQH 7VTaSiqSYnnwM9FFufT/+f0w94L0H+AlhR1dlB6/618RGuJbshD/i8HUdXse3ahxvU6n5fayQJ1d zVZ5sE3XV6PVjCzznIPz+fzCGQ0vLibjwfRmfjlY3AzfXw4Po8fRf5HOrFY3S9JXicz3k9WAfjY7 X68IlxyMj7+dXgzfL1sO+Y32BYNvDKgpIZfRRe7uq8nN8GIwHKdtcg6uhpeT8/W05Uzp25MfI6YI 7MmHj7NQ4zX36MGfrFdTg5OO7s3wj8EoGpgH3zgHTKLz9dfOkyevn/5E2pHMPczZfEgWZMUvfjx9 cfr6yfPHTHT6GqQv1xfD1aTUnwN2AQHWYk3nm9GQfthykjejzaD/aJdE75g0sMVGNHtB+toP/sqC nWIXpTeT0U2EJK9CZS9/Y1fT+SF62OPo6r+2YOuzUBfXC3sxK95M3s+WdGLeAtg5yA0GMR0G0WKV oCT3TTxNkek4hh2DXHRtJOkbds3xt7H2p6i8uRl+Sq5g6+bB9qMBY0rnICOnlW1EhCmKp0h2QlXR tuohh+IyN9MLPYq6s9M3gyxTpI9vOdtwlsMyYRVk+SpZPlxWoJIVFGX9FeEhNyjEnnl/Rb0NDx2q O/+6mv9xNZhcOwc/EslU6ODs2f87zXbeYctxu4fOfzkEFs7fnW5wyEbq/Wg0GC6Xk5tVhlMHr5/8 I9sqxqHc9h5GiPPaIUOc77ot10dF3IMHqdY57qGy0atiW1dURkr87Isnz5/9+CK5NO1JpndHQixl 1bE0F2xbzCY0ohBs7GR4Astz1fICHXleLC+atGITjE40D8fAwEEKp+UjapJK4+/Sy+KwQXfY7p2P 3PNee9LrDdte4J/3ur1wPOlO20EndDvt4WganvcfPRqO+r2x53m9sD/q9truOOyEo7Yb9PzuNBx5 rttxvWEw7oPDBrdNUUYNbi+lyA4Zno/Ij26fwvrZizcxrl4+azm+R/G4/ewp+SwI85/9Sj6LlO3h 0VdfOifReuLJ+OPwakTwTldazDxZMlsyWiesyQKGehA98ghneDV2AjJxJxq1jLyJ6broycm7AVuv nQxen/44iNdG9OFnBy/enT49I5zyPfnvJ/If/f3k0PlvChfyFVlLRRcO/vHszU+DV69Pf3j2q3Pw jixt6I2ff75p0TdpOSFpyOFjrft+eP7yifhO9Y0nPxDC0r6ZtfbkWf5W9r8nJ//n7dmbwYu3L569 OSN3ff/557+Q69itzpdOmFxcvO6nzz//KXNdILqOPP8sc50nuu7k889Pkuskz/z+B8Azadsg19G2 /QBs2w+FtmUvZMT5M1mHbvuv2G/ZS+Kuk10S95rskrjDFA+i/aVqi+KSuJdUbYkuoXOFRPOcA4+Z GCH7f8D+H33iHipu9Jk9EbL/B+z/XmRhqG4MmPEQsv9Hv3uROUF9j1W451rNPb/Y4x63a0w+uVsh LEAsJBgNCOmiQANClczSgEwlC1QgpSnIdQUqkLaPRxkKOih1IIcPpNfE/Se9Ju471bNovynbo7om 7i9le+JrcrRQVoqEFigwi+xwqLgz4gV2Z4EeVHdGZMDuLPAD25XYMsPZu9MMH0RjH5uZRPG3msx4 4d0JWeFN2C7n4obcv5ks2UKU3hoen89WtEein75Hf7K7aF4G+TXeK12SdcJyQZ4w+zi5+ESe8Wzl zJZX/7likgghzUari0/O1WQ0WS6HN5/odutysmIPTQ1358PkhiycljNCauwbQk7D9cXK+WO+vhgz SecTZ3QxvFwQ0iMSvn/244+nuTEcXn36MP+jRVap5Pkr8ojJ5ZLcMSEvmGzepuG4705VBHcs5akX W2IjihULaTN4qW9Mia14q5wbuc+MxpcsH1y6KiRrwgAoidMIgSzHif4noN10vfJxMvj4PpGW0hfn xphChDdGj43WpH7LDciatNenP8lH6chFGvFi041++B77wfTjxSY8ZIh5duVcTi7nFHIfJp+c+Wi0 XnxyyJphNXu/nq+XTuJAIovX2RWD3XJ4OXH+GH5yhkR/iDqMjy8mV+9XH5i8rRqdPnr/iD0oinMn eHc+DC+icIHl7H9Z6ABrTvT9o9hT94oseGdX70nnEvH0WoLG4QVRwfdrpgSTqyWbulcfhpF+RIo8 mpNGDac0VGF4ccEkzcm3N/HXcdNTr8E/np2cvnZGH4azK6JR80jaHxOigR/JPYvZ6F/0+ksmh9xL FZ8oH1O8uTN0puuLi/hV2QMi3TmGIJMMgkv4E3RtoHFtCLs2xjRQ8nZx48ZemmR4vErDc5QODxV2 MTnO9KXmYDFZ6YDBB+sIOFh06Qu6NtC4NoRdux0sjatj2c7DEqm82HhlNqKXci4ssw+5EOo4oX6Z bVqi0oFSujx2pPid8ajd64zHk2577I/P/Ynfdj1vPO6MPXfSmU5dtzPx2sGjR93+pO32Q/Jd2w3H /WlwPum13bY38YPJqN/1fJqVGZ67YEdKuUlKh0r5lmjjrtXpO0fkR9hl6ZiOk7j1352d/DJ45hx8 /4wmjZydvSXgXl8Px2My15GZ5uWL00Px5W/fktlovSxeTgmL2DnPLheR4UEMgfNPuf2SMVnjfP0u Mpz+TtXh26/fnTyNfotpLPPMk6fM1UpsrZaT3D2fsSc+efvm5eCHV4fK60ea12/K17978tpNLnwl aknLGc9kV4+0rt7wr5Z37jWnc38R9e0v+Ve/VnQt53JZz3Iuh3VsuR0t56Mn7qxyQ9TXFzs3vV7c vUuD7j2LO2AJ697i5YruLV4u7N6z5PX57Sh1V+l6RfeWrjfo3ouxu/EyvVnuzG2gbMthV7Nn0E9h orckw+GYCsJTQFyRN18q2Sz/pMJzJFf64CuDCm2XoRnW8tKFooaXLjRv983X7548f37y7Ids64/U mPgYhy9NLlYRLI4y7YskyqFxVJweByfPsncM3srvIc94lbv+Ffd6+Xv4hfeAvohv8CKie0Qv4uu8 SGD4IoHBi4juEb1I7nr5qyxXZWyJXiUTZkfoc5WMPPtY9DK5kGHFXdHr5IJo+XfIXwcKsdLr+Eav I7xL+DrFO+SvAwVa6XUCo9cR3iV8nfwdKs35OmZvE+3RZzM9LpNczWmNPiXpEZLkak5r9HlFj1W0 OEVvkAvINWEVXU6RXc9rkwk16BKD7Hpem0z0W1e7jXT7hjPujlq5b/S1W3SLQL2zl6sb5Os3SHiL QMP1GhRkL9czOlnQe8FiBrKE3ivlLwcCJmqdLmhYqD8bV3Z/tIp7/hwwVlFCherW0gtGqQW824AN 9c0bKrtV0tDibcCGBoXb5M6GleaqUsb3imt9jWuDwrVabyD1lADbX75U2PzypQB25wKlOHRAoBRv c4BTvI7qFtN0WOeBVKKcDaW6tzyfJe9avg/aVpj68tuq1l9+WyEKzGurDAaqtqohxG9rGUPZ1v7y j9gdTy4djscXnsBzn7luXbyOJVV1ei3PdY66YdAq7RKQ5w5+cLtxC122QMkqkpO6AaMsz8IFifdP sTUQOTI4bpxj5Rye9zIcq58TmD4ngD8ncgIAnyP3AgCeBO45+QId8CRw38nXzscUNuUnTS+HXzO5 QZnyfjo7IWKjEmcteiXbmKSO7hSB5S9bzodphPGe1225nnPU80OKdQpyfhuSt71enV94X2feMnqM l6oSuyDVJILz8HpG/k+r7DEFz1z8VuvqwSvdG9jmnfQGwMv6qpf1tV4WePX2ZaE3pC8rvAHwsoHq ZQOtlwVevX1Z6A3pywpvUL/sxuW+bKIt7AqR9KiirxupTtcDq86GrzrZZ6rBHV39Vu9yVv5Q85az pJvFtwBema9A2VdWQzz3ytDLM68MvmX7yhXUaMNXo+wrq4Gee2Xo5ZlXBt+yfWWlMn0fx1GwKMsn r3/+GD5yj5/QkO5HLJqbfMXMcxqYFr+8VnTKo8uxOpqDXBRHogThZDyedoNJuzOcTvxeGA7Pp8N2 xw3cabcTBMO+7/mTofvoUXs4dMPOebc3nbr+OGiPwt74vB0E/eFk5Lte3+tPpx0/7GlFotCGgOJP 6IXMoOz6ZLbtEs6If+vErPH4sfNquKIF96KujcOi4rR9VuqIha9GxQVYTN5BFBA6IF1+5XyWS726 GMcs8xk1QX47oCGrB5fD1ejDYL6Y3BBBf3/5zGk7n6VZcvHHnzmfffPHZ8QMeUBz5RaTEb3ut/Kt buGB8ZpsK+Xt6iMTwzLfEllk6fnbQVQ/iqbZtQ9/d96+OHt1+nQQL4lP3v788z8Pf4/vi797fuId ks+OFO+bXRd+RiHOfe34QQPvF9nrH6Wvn7n+N5bmK5YH65PfmZT8q5F3/ezNk9c0ro4q0WfsA/JO //3fqz//dtZ+9PU7mj/3rXPs/O1N+tdfLedvLruUvSjLt3Y+o1+RR11N5lespIU38GhsxvW39MnO oRo3NxWBEycOS+Dz/fP/C8aPU/6XjkxsUEMQ5fzOE7UdhMHJ21cAjN1og+xEF2UnKpidwHEme1MR 5G5QMDe8uGDr8yUAeITpouIr7Ib5LPLy2GMvHfjF9FV6tsd9dlt4y9kzx3c+S8ubZu6ZcVhSE9gF rmROEgmY8/0ddXTZs2YR3A/MB6R8c1a4eFTK90lHhHL0A06P8pTmz4hZ4vuXv/m/Z2ovTK6I9Kuo CtDNauMcfE1jhL+Narg8e/GGDLVzkLn1MEm5h4pLXv/0+Ztv43pHSbK6QDzjg7hOSH6OmeQVPvrz r9/+5v/OtJ7d+pda9+dXUQWlst5PNgtqwnxW1HhDZa9spViyT/ivGb0kjpUiMVDE+qHsjQLq+YD/ k35GKwB8/883p2eD75/9ODh9cfLsyYsoayVRBwIxgs/V5YKg9/3kakBeIULsy6SyROayy+HyXxmU 39DsgeVkwD7OaczXV+ur2Wr57fb2yeVsFfHbAX0M3wh2DkhDWludcpkiyCWQRtBGX5COn88yStQm ysCk0dYdbqttCF532/r8pfJX5mt1mnaRpANkhD9azaPCrEOC24ND5ysn3jPJ1ANRdFUWmfwekwvK 9FjS7eJeY4IYmbCyNccaY5kTymuh3ovKxBFhJ2QpTEtVqCzn5Qq44pJPc98khoeS2Dgz3R8Ci9mA 3zhC4ivP3ihXY7QvTHgO1DWGzMfvrpyRzHtNrplM3i+aNd2clexmreS21Epmq/jy0ox6AV6/ee6s l5Ol8+PTp4kXYLJZTa6Ws/mVMyMWwGiyZNlW04vZwplfXXxiDgNajuby/OLTI5mdva1vWDS0JcZi 5iaxtegIRpgad/qop3fpwd7chBab7J7EQMxZAAQsW6tb+hKFdZzgbY6iFmk2KbmL0yiI4eqZG64e x3BViNMxXL2y4ZpTwUleB1PD1fudKaLacI3VMbFcuYvWrFWXU6PqtG/G91hcz7VbSzqPTugiJtdj 8cP02CItEt8PK7ZggxZNsq01BTCGU/ukbJXdBiuWY3yKuwtgEBdNGH6vMTEaVqxoEHStWEXrzK3Y i7GvorOnQM/b0zKRPa1738BX+3R9TWLzNfcNfMW+gW+4b+BLnLg+x4f7VtOH6w98rX0DX7lvoABO YfriwKd5+wY+bN/A19038HVdq75q38CvuG/gK/YNfN6+gT7mzPcNRrB9gwrsVXnf4GmD9g3KVFnX toExtq1sG/j2tg18yeprzzcNfN6mwVvBpoFyy8DX3jIYKRddAj2vbKBYMk0QtwwEBorENhHrhuaW gcAmqbrYelrnloGPsmUwugtbBn7Ttwx8pC2D4ouibRkAF1uazlMhsVndMpBvCJgtsww3BHyxG8mX bgbwOiJ1JYlXXOT1OPsBb4v7ASz+r9en1QBZSknbI78FLP6vbuf/aN+c/3IAJ+5yE+8/zF/vS/31 jpG/Pm72FmCZPYSCJ19mS+69J9/nefLfVvDk+0aefKhRCfXkw2m4ll1bscFZ1dev5mpj45Pn7xfv 2O61/VmwHis6+/mmz72zX9hdNpz9OPanonVVnP2BivF+BbrLfi1z3a91O/sDtSM20GS2QNPZHyic /YGhsz+QeF4DjuP1nabjNRgEWs7+QOnsVwCnMMNx4NM8Z38Ac/YHus7+QNchGqic/UFFZ3+gcPYH PGe/PubMnf0bmLO/AntVdvb/2mRnf1CXs98Y21ac/YE9Z39we539Ac/Z/87U2R9oO/s3ynWZQM8r GyiWTBNEZ7/AQJHYJmLd0HT2C2ySqoutX+t09gcozv7NXXD2B0139gdIzv7ii6I5+4GLLU1nqZDY dpcfoFyI0b4w4TnD7QAQ8+nnB4gXZeT9OPsB73TzA8qrsjq3CDb7tkUgh739LYKghi2CQLxFILNA 936LIOBtEbyrsEUQGG0RQE1R6BYBnLwbHeyvZmcRLetRsmqHdq9N0oJBWdH/z7eG7v3/wu6y4f/H MUkVrZObpE522h6Q6wbLxcVstdXWUl8SbpMpu8id80XepRZfTT7JKKpA3WWJcFLeETuXvuB7l345 YW5TVYMGkJm8eCs9LlHgXVLFlrw+fUcPTX3+7OwNl8FY4Eg/8Fo954j8DMnPqBRpgfMTqiN/zRhP 0N+YThG9TVXx7Nn/O80pItE8pp2DV6evB+9IQxgoYfeWlbgoyokOZD2YETntx87M+ToSS349OkoZ 2NnyzHzRTihptaH94hy8S86ibDnk7xcvcypw6Bw5M4L8qJc6vVaX9lLXb7nhtrbW6wn1tDiLbImt J+OPrGRZMmIOVYJUn2iJrdJseTn/mBrEikkxAufV/Kps3DFoypBHXp58fLG9IVqI5FFx9CcbJjKv jYi1NbqZ0EcslpP1eD5YkLE4jKjlz4QB6ZX07qdk8Aod+B/f0H6lzcqwCRkE0kujCaWH/JyWpZyY wP56ePQXO8tX0mOOvMck3eUIukvUVxEUuv2WSw9g7fbDXsuN6zPGJB6t18sGX0KLnKq7sdEHjTMu U8SJzLQz8+uXAJpvP8eM0wvKjzAEfA+h75tZD5PLjFb/fPpzEldRhNOxcDYk7zTY+IP8qBRmQ/KY eFIVPFSKY8WDJbNw/FwH5BBK5KEkTGUypthsWyXpToFDX4TDrafblfh+eN1YPV+k2A2Z+9hkr4jo 09+MdyU7oy5CFpQrzrzjaXkAYCn1bjxMxclH9uiK6xM021bUeyFd3vrVhLeCXfFWgMxbgZK34Nvu XMLSCRxSIDHQjVbn9ZidXW4pN+kEcDgPjJlJN2TDFYcJFRWaU+X/M7H6lw8GjNtSUmKwsSUtmmHI XpxVn6Kciza3vCxyS1vOLaTnBhuvxC1EMs/RoMMtbTm3JA/OcwvvuTBuSeRtuQWhiFamCi2XaqCV tGR48VRG0dkbmVHE60dw7U3jglmUfh4Y1SbKBgHEb8ZlHPJeGDWyXHH5Yh6JlJZsUsopLpAqUo40 uh+dckQZKdWXYRDKKS/DaqKc0jKsIuX4asoxTMLLEIhmNlPFVRiAcExXYcYJeVLCkSZXVSOcUhKe mnDAqy/OqT8KwikuceCE43zG5xzhprct2hHvciMspCDMU15I1cQ8pYVUReaBLqS0A4KidZFmeITx Sur4AZx2TFdWxoE/UtqRBmxUox3tWJ/y0qrQj18mfaC9BZHrPK6Dna5TW6QTW3+otyZy0oq+d+cz 548WE8XbsnC++ML5j+IePOMa8sVBcRgKjorMnlPq8/v3vx3JXW7+rkPWX599x+7+nP2fP3Zfv5tc jYncb/NjyO7gr6PTO4rr6SPuqF+uL1azxcWktR3+5IDL5FDjyfvBdeu/0yCfdAXOuy5xeG2fczG5 er/6QJ70Ndv1Hc3XV6tvW0ErYLDObdOIwQXYrdFElmwXRwdW7OQt13XpRl/P9bstP0j3Q6Uq5gJV 7Hyio2WeeKOPvf6lXK087o5fBPDovS9FytQsXVoQzfjb2CXIf+1mFCb6uE0/butoxSL6hQiQADzM oRppPH+pNp6/3KbxvOaP57XBeBJGS0ZUSlohiKmiMZ3PxEQVeYpU41gipcgnpB6/iIW8TsRCvbDl JlEZ8rdCZB5fEmPAXnEuh6rPjzbIvuu8qVj9XIU7CcJcrxW2QiDERhKIPVVAbM6H2FMlxOYZiJEJ jkLMa7cVECOvhY+xoCLGgruKsa4GxjYSjP1qhrFftTAW9CKMeV7L7Uox1uVjjEUVQt3W/Hw1zZ0V PmRuWJwXMXnpyZyryTgewXyYXBQ5lTM52cKfhcCS/8iITLbgIMgoBbc6XuQviNb6hdCnqC/k0xKn CwQzEffNo1HrxKMWEMX34lHLeh80R0c2nejPItUHiAas6Ws6ewZY0QsxcpUw4W+jjWNc0F//Yn6l i+VEEIJeCNIjPTC5WJEG/O9EM/AyXhOmbbgcjj7QwaeXO4vh7Cb67ZuM/G8cou3/5bzzNkmApfN3 +lcY/ZEPnqY9EPvGSPcQRE0/0ZXaYLk+ZxGC6SNyfrVMqkfW89Y+bKWrWwcszhWLOxQ2lgq9mP+x GN6sxKkoolYIU1cePOC85IMHmUaln3nOl2mfH2bf23rLXK2WyeEb/fnDk2fPNQlPYiSBbaMt54WR we23ybI/naniZhmxnszA0bdr7h7rBfes10TWq97YHDmgtjtPO3ZYR2I2g63llHW8dr/VdyntdNut sMOlHUmQZqI1f4+9toCITVm2TQOCyxP/MzxkcxcB5t8//7+CSE26siE3RIQQbeQVSCf989mLF6ev 6XQbj1mWRpOs4i+dwhCbh3IatCzTItqStAWObCs1KnYgR2Z+2qFvG/3bBqsqpPNQUi0ANT4/Z0C3 W5pyOnSiXCdmxWG8wQlNvpEFpeZjI+OXV+9LvPhV84Bmeof8+HF6hdk59+lblnW4/sPuGw2kk1+b BiRtHClhZAtF6fasO44B5I6hwc1g7Pgg7NR71ExFEvLV2PFNsONrk5CvJCHfmIR8FXxqPTmr0UAy JSF7QNLGkRJGtlBUIKG3OiQExk4Awk69JTArklCgxk5ggp1Am4QCJQkFxiQUqOBTa0XfRgPJlITs AUkbR0oY2UJRgYTe6ZAQOM2rtIL8+t3J061bQ9uroeHU2JLNUzR/RsmdIfJmSJwZTfBlFAbF+dIJ 6bXSHFXhQDLdqCddlTcMkscXnAbMVee7Xqvfc456QafH3xXVAfMvNWNZo/5iHjvHDDs553fs907f KR2RxxKYcTGm7UdKO44/bsfJgByTAVEU4fCkgyDcTLfc/4hUIqzgW51KeHB4+cwSBNx0oAYbrw66 yDsZK/gYBbCTTWTYuMOYw8op1GLQSQJx7MLuSEBSGXJytJAJcHK7mblMAk2VkNykJJJTxJjGbBNV o6y6NaRmJmEdf82Nm9ImmhjposB/Xrk0zuWiOvy5gnN6W1uSJBd+o0p3CBslLEHZ0F0q7B2nvOLQ IrDn8zV5rdw5Ay2nTc3UuLVxjcyW8+Lt8+fSFMBCzfzkfSLlLiuQc0DevqinmZ72sgUU/d95xsnj x84pU6XJTVQ27nw9u1iRljmrOS28fDMcrZI6zAluyIU380vnYnjzfsIkzBfD6/WExjlM3k9uGOst H8XST46T21gBukcy0nhPxoraw/kXVyy6yOQCnaxkFRl514vKF4tNVKqXLODpG27p39QwWU04lUnp e747+f55Up00ljefTumi/ZtI8JeO281aLJmgCCq0lWrf2dvvWXXBvNhCGdFI9mEGlBl5OWQVormI zIxRQ58sQNcvmuN/zRl/2TpFZGA2dfS1RrS4Qe1wRveXv/Oty+zgFuOBZbxFg1qMCtum/Ca2NmAH 7xTe+yjelJcTG2+1HAR9WlS01/H7cVHRYqR60rDr1fmFp8wN/B7mJCTXaZViOZLdGcdxAWqvc5or K9ia3BWbEG++fy6sztoLuu2oIzvtuCOF3bip2I2OtDO+F/RD5tgpXq0kYT9s474E3S6+U9Ltvk63 /yrp9p4XdXvXA+DXt4hfaUkPOX79JuA39KOO7PlK/FbsRnz8PjXCr98E/PY7UbeHHQB+A4v4lZaH kOM3aAB+O+1u1JH9rhK/FbsRH7/CswKl+A0agN+O22m5bdLv3Tb7JT3LXlV2fjS/PCfff3S71zMr 4VfvFJjkH8GorOKe22h8+vLF0ydv4pB/PpLiSRK2aRhfrPsq1PzTfhF6U+k1uFuJn0c/uFkMEQh6 ARn7DkVBN2j1+4piDDeTj5CTZlewCD2884OgxQC3//TjHThC0hoznrR6TqUQUNM6gUkUhLh2RRQE IQFZ/vW4ACMvh1EqMAr+vE24goc/1I6rarBSoQoFVGltnzgU1I0DIMBVJ9VQgsXv4UFJXjfQPkX5 UihVChA1rSyooihfg6J8CZp8jOKCUWjobcIVDkVZwVU1WKlQhQKqAkW91aIoGJRg0X11ncJon6Kk h4+uKoWPmlYhVFFUoEFRNR06eptwhUNRVnBVDVYqVKGAqkBR77Qoig+lcmVcSRCppJ4uP9JKr4a3 9g6YfsSOMPYXqX53OX6gjRkZKhmdODSzjvq7kshQnTK8AOj90nTkgWMUhcCTna4KDeiqFFbaBsUU igenFszFTeCGF6Jijhv4pUYf/5TtWiCodXi2GIYCAqQ9CY804GHWwSHLPQi2koQRZE91BsVJPSii OhdPAI+S8GqJkgCcOh91cFyDRPZeDic0ott3W17oHPV6PVpyiJNHkIkMKwWGkR+TG05cGFGVOTAu rBgX5Dj/mDjj+dV/rpyryWTsDKPIsfhR5Krh0vlj4vzv5GbO7p9sVhNCHKsPRAtmV87w5nJAbbNH HxzKJ3EDybekdUtaz/DqffTIpTQCaWkQgaSZKaEbhkRmREEgKY9HREGbBhFLftWIJcERcoXiZZBo pvY2mimOg8pCvBR3Ro/EPSOaNx7epIfiOlfDywlFLHn0LD4M+ut3k4tvH2U39LLnxheui7eDeoHX 8mixnLAdtFxXsRsUJZwNLy4iVVYuPJNo7CSc28rm4UuNI+jyma/gBJ58wiI7X6CMQOHJbaXCGMeq Hs4UNzjOJd3sV/+Cl128DhYt3wUR/uBjuABbu5kbfovPIJfI1MkIrXAyqW55lRyKxrPp1Dk+fj9b OcOv3o9GX5FRmc7efxU3PPn5aOScS79+OCMT6MaZTtr9id/tue3z/nk79CbD7nQSds/dkT/s+71z 8uX5uH/effRodD4dTXuT6Wg0DMlNvbDjhufd/uh8Mpyed0PXG/lhGPaHjttud4Pg4fHxsaKFD4+O jlStpNTm9ULCaIFzxH6hNkFqDk2WqxkZzwkZK8LdH6+JRcOs0MlqTZh1++1ifvFp8HF4QSb9g++T g9LP3p0O3p0+ffPyNTWDXC+kJgblwK++dF5HEggAWCk9yv3ObEmm8E+E79n0/WT8cXg1IgYBKzYY QWV9M4mNCWKJfvXw+Hw+v3h4nDR2OP6YhRW9kJ4YXlrmHcZzYPwWBxlYsRNjaCnmaDmYJPjQMsvJ J09Ln0Tn/bAw6L/oJCR7PYd0irO4IfP0iHQcExG9C3nD4WpGUEVfaWuOkl6nV8tehg1h6HmtPhnB 0I1HkJGJQ/R09v5qMmZzORmLwZMX/xycPHnzhMzo7M+Td6x7/83+ogNGv3yctiZ7/7ZVo4vhcklL 5UV2YNQYXtOidTYtlagao3iV4WzBxWkeYxJqfzh5oeVeisQ5BXH0/V69Pj15HBvDXthnp214Ydhu dTtZ4MNfkf4bDZcTh4D9xSY8+YF+/veHsaM1fnoCMTL4/5Xr6tyrOX932rRtRxmZEQD/nvvsKeez X7OflZ5LO/G/hF0aPfcoupeg9yxRtiVVxm5wfE7YMK+PUbfEephtx7bg5N+Lnwc/8T/3zvifuycC Od//IJDP/9w743/unvA+9wXt9wXt9wXt9wXt9wXt9wXt9wXt9wXtDwTtDwTtDwTtDwTtDwTtDwTt DwTtDwrt18Vs9MerJ6/fPCOrFymCydSjCeGkgmoJM6EAw4EAw54Aw6EAw6EAw4EAw54Aw4IX8AUv 4AtewBe8gC94AV/wAr7gBXzBCwSiFwgELxAIXiAQvEAgeIFA8AKB4AWCwgsYMq8T41bNtU726amm 5z5N9ZzNcX2XHbTh9btBy+ubz3F/RcbbEZbxdsQsnSN94y2qJ52zbOiqfXoxfL8kZo3i7eYsw+5o a/1t7/0iO0yHzAwsfhmNGhXwF2UbqaWX74NMOmS+O+LeyJp/pU6hzpfZ8ALcOcm7AfqCLbaIEXsA I9pDk3f/pcq7T9cXVl5c+tLpa0qN+RTu4+FqmDhFGcRbBJaji/V4dvWeaQ9XA3Imf6SrnZAtxPy2 1291/KyyfrwYnH9akfms/PItgTJkl2pRqfJkVRYbwYk+/zj7OLkqD1vmhaKXph6yobNaLy4mDvP0 vzh9fvrzWSt5COkKxoKj+Q2ZeRfzK/r+iRjZyM8XZGwzr1VGQTx+w5ub4ScRUW1PFkj746eXZ28G /3jGth3eOFeTi8nlkssgCXuIVx1xDft/Xc3/uBpMrjM7GtEGBwNVywmTMvSRxH9/k9We2ETJtTwD bfaQH16+Hpw+efpTslsyePr8ydmZc5C5LrO5En8ZL3jYg7MrIz7+M6KYGrCmks4jjFfcpileWvw+ 4RByK6dnkv2RrJRW7N5xSldFD/kyGabDwoxa7Kj44yJ2nAMeRRElpYuvLKRXH4Yr58Nw6cTPp0+d XK2YxcguYK/Imhij9eGRGKh0DUppIOni0fBiGPf37OpqklSRZ46SNUFcN3Ci8gAJHCdX60v23GjQ nMvoByGp2XIwdL6OJU4v5sOoE74l36SS43QJ8u+/mK7GjpfBD89fPqFWRvYzogqH/JIlUgBGLxA1 KwO1bRvA+IhevCVAQHw5t2Mzi/s8OOCooIz+jGZ60MF2VnTPisBgPv9XYrI9ef36yT8zw+6ISCpt opyVVGwUbeyqtTbVwaz/IPEzkA4jI/X6yYsfCRVFkluOR4+xyHtVWCdOicxYE0r7srGOHsdoUilp fLBBLF2gDIJnxGwNeoRm98QUnoBE1ju89stmHTakadOczBzLxRyZZOnU7rfp9pFHpna34+V9rLT4 weVw+S+p/R0/YjyZDtcXq9I9kVVb8q5isN7xw+MS8o8RWC/ywVZlvWNN1uOF/bBPYax3rMN6x3qs dwxhvWMO6x3LEVhySn/Y7szHox+NPHnD+YjuH4+dP2arDww6qfEXc2HKhvHAEEERJBjI3ZBi+8j3 et1WmMX4h+HNmBY8uZoPWDQE2/mKSJF92iqPCk30pD1dWoLFzEe/3+5EbIbENBjPPgrMMpr+yXDC MafZAG+N5mIEB6GfQjt0VkvM2IkbyWtZOVyE7pI8iO94evrsuXNwMf9jsoyOlWk5DDPMkH9HC6U+ TiaAvzI+gFevB+S7s8gB0A87Adu47vc77ZbP9wAMx2NisS8TSy1DhOxzMszTufMl/X+LdTvVgqvo 2tmc7v5fXXxyzmfviT6PZ2Qh8cfs4sJhE+vkhrxkcs8PhIUuxouvlqtF9n6iFBSUcawBWVpRcBFo 0OgT+gVbaxB+GiZylmRdQdYgCXrjVRg9rCfmrAeRlib6GTnRo8Hg7UaI1tfpTfEkojL+3e5hcn1h RonebdA7n9GBpMAfRC9JnxN5qNJIh8fCdnLXwrqN9L3Dw7gjdRr5pthIhwkhvPLmw81k4vS/cj2H Oq+iC5bO6MNk9K+lcz4ZDdcElPG+GUMGDQchQ0ZuS0b0YnxDUHGTQ4USVtyxflrTWHtBcawPTAY7 SYSn3qbC/f3M/YQuixLS4+5iBojV54iikH3373/Hnw1cj4pKKLfcmKyorJhD21gMwiIWYZ1YAGMS T6HRie8SB3PLYATix7NZhTcCRMWYZQIYgXw7IHdwHp598GFONf+YOz2JUv5aUkpyQ8zQHKI3VMlf a1JJxmyoKqlze04fc1pkWYm6AY4SOXqvzVOCHBAfM/vDbfc7rBqM67a7/aiaRvqAxQ01IOMAIOfg h2fPT50vpy0W5rxpMc/cKFkC0X/nN5Phv+JVV2zs/Ofr//x7YhbTLiaWz+CVc7BhDvwfXlFL6MXb n+lH9LeX9Jut9wB6AxuOLEEooJsMVPQ0evtweTmYstcljyRv+Nn4b+PPWk76COfYedeOn01hkzkC MTluEvZmTvlR18pHObJH/ajxqE3pUa8Lj2KObs/3WIU2zwuCqLLNNuSIRWKyWGgCi8uB6xywwonM URMhY75oJ7+40S/LyQVtzl/ZFyF//8moiNqFxZqLsUUYaSbvgswmMO2fB8Kg7WzJl+jAyFbUQNK4 Q/mtrPhcfGPyfpEA+j7s3sh74Pn0YFi6i+cHnt9yPU6HsQAtspQYF1wI6SqysMYaXS4GsQJzQ4/o d8vBajYZnl/wN11czqrNY/6s2GGjQ/Tu9kz7//im5IiR3OhttZlg9XL46XwyeL/icqXL/PPQq72s Nz8m1umQACvesKVvyPPDu3lHeeYbrxCTRHeU0likjtuNgpE6Hg3Hy9HkaHg1GH0YXr2Pejr2leRH hJZmbVHxdBjZX1FMFC03esD+LK6i6S5QpPvsFrIS3d5A/hBdTjtk+ww2gxU2b4uPVO60ZVoQDzRP YtommbxkFiZvVd64pO9KrKITlm0wvCALayfqVmoRrf6YTK4KsXlLtuc1J6vLNIshAs9LagZtr91m QpChcj7ML8Z8QeSuWMDV/OpYen/+AiaD8MKcbjsmgAljwPjtMIpINwEM6SlidKZwpf6FWAnoBYdU G3lfruaHBTTHusHwoerkaJRZn1AAieIFYlWNej6J06F6J4EeUWsJjuTqHPHBFT+ItUXjiNbJS/+Z TDWKV02caCUkRZ7Yy9n7Dyt10PE2yYUfz5t+H4cdn3f9MOwEI98Luu3RaHo+ao/GYy8Yjc7H51M3 JD+98TQIHj3y271O1++3CTtNw2mn03ZH46nru95wOj13x8Nx1x+et4NQHXa8bYM47nh7DYVw2Ot6 bL+b/cKsgMGA5fcsyWJjMGC5PmSYBmTuvCC4dT7OZ+OH5E8axz07X68m5JqDA/L3xR/DT8v4qsGg RS55f7XO/U3xMJ2NKCYGdAw/LldelOg1dbsEUNTB7HYHK+fLwWCxIlNw/Mkm2Hjk0wGNbm7FUbXU LB2wm5MQ18EgzpLK51nOZ+SbOfPQJuLCWBytnPw4upX++oiI/639O6G5j7FBEbWLPTf+Mj6q9uOI GMGr9PsnT14//Yk88O2zF2/Ij6fOQfswLsmcEe3KRLsmopMXvpxcjhafnIMvyJu2nC+iZ7aYz24+ pVIyNaI53RSPwsfgw5QNJbcfyXdfHjrxwNDnUC1GEkbHNVrDOMmgxjspEUR7vRiivfbuIOp7MUR9 rwhR39t4iBAl4gI4RGm7ZBCNvjeCaF50GaIA0cgQ9ZYSVC01IaojTAXRfsKivXB3EO0GMUTJSxQg 2g02LiJEiTgPDlHaLhlEo++NIJoXXYYoQDQuRMcSTI31AKohagtPDjjDdq/V6VNwht2W7+4InYuQ LM3nF5/CDDTZ3+l8XBGYkTAyv0NxSVtUhmVsUyYIii4ywWZevGssHplCQ+rqEMGKfFdA6HGB8+SU SoQPlosl7AFprKDjJKOfR+9OYErtLgqlnCUafYBliMbS4HboQmGHLszt0IXCDoWIRrdDJQj9UBGh RLgcoR8aj1A6p1EI5Wb56AOsST6WBp/jF4o5fmE+xy8UczxENPIcL8HnmI9PGDrHCmyOudhsDDKX IY3KWmVnePon1gTPZGnM70vI/L40nt+XkPkdIH6387tyPgcLUyyRwm68ig/d3S2RlnQ2IzjKTe7s b6y5PRIGn9qXiql9aT61LxVTO0T0bqd25VQOFqYCZxiv30OvuztwUn8KwU/OwcT+xnIvRcLgzqWl wrm0NHcuLRXOJYhodOeSBE9LTXDqCFOBs58wpx/sDpzUymLh43lw4tmckTC4yblUmJxLc5NzqTA5 IaJ3aXIqjEywKKlbqe96rS51K4WBFwc17wCXa2JgrQtG5xrT6lzrmp1riNm5NjY71xCzEyB+79xK 6312K62prbUuWp5rVNNzrWt7rhW259rc9lwrbE+I6L1zK8kQ2ni30poaXOui+blGtT/XugboWmGA rs0N0LXCAIWI3q0BqodQIlyO0GXjEUqtrnXRBl2jGqFrXSt0rbBC1+ZW6FphhUJE75HjU4ZNnl2a 8X/uDpnXoAAmJFNUMpxM8nY0yZ8Akw0z3kdHmGK92w9ZIUXmlKl/uZuMqDzeB8lkQx7RADM8RkeY akT78Yj2dxHAlYyoPDwGycRBHlEPMZ5ES5h8RPvtNlvz0yENdxFTcq0KKkkX7M0azyjTRHudDDXy qHizAIwmmHnJoMpCMJo6lVpcW4Z7HLKQDKksZqGpzKtv7MIXY2Y7/U0aUtFm/y0hXjXPGm2Mc+fS ILKO+v4OrSPJzvitoFwlxSJtJffbnWQ0dxHmkIymeCu5qSsXxL1XHWGq0ezGoxnsIi4gGU3x3uut mDuVc6XBhiV/NHteq9Olw9kJdrFlea3as7wlk6fRqsVkf69B9pB0h+9WTKEGq5Y93RFLhlS2JXYr 5lHNTc493kJKhlS2h3QrJlODhSh056VZQ+qDtl6CjW88piNe7rh/O3LHU9GeTLS3y7R0PwmtwNim MhCmMCZdr99ymTHZ30FYZoJ+VVo6HvrZnAdGf7PT0kXoz4suo7/GmBA/CdvA2NIzEKZCP1kQU/Sz naCdoV+V8Y6HfmYegNHf7Ix3EfrzosvorzHeJBpglM1PbVGyqOe+2/Vb3R7Fvdvewcanr9r3DHEw n26iQiG/J8n0AujnxXs7z9X3bQZVb4Xva65+ogXyXH00RdCy+xueqy9SAIXdX2cZgNRUt+Gd2grf 1z31BPzyMgBo4NcyfBpeBkAEfoXhU2eFAd9WoG0iGB53kJhCTQi09eVBB0hWT7IHA4X7nlQYEMB+ CTF6aixgYGb0KI0cpAIGfc934xVvsLsVr7SAAZYOaNk7DS9gIMK+wt6pszaCmb2jtG+wAlq8IIxx 39lBfFKCe1ltBCzca3k4G14bQYR7hYezzrILqVMSI/THQJgK991OgvsdRHIluJeVXcDCvZaJ3/Cy CyLcK0z8Ois6mJj4CqMepaJD36MJV8y32e3uIDzKV0VHIVn5a10zf08qOgigv4aY+TUWjKjNt7mf BSMSLZAXjEBTBC1bv+EFI0QKoLD166xFUZtvcz8j7xLwy2tRoIFfy+BveC0KEfgVBn+dZS7MDH49 8O9xmYsE/PIyF2jg17L6G17mQgR+hdVfZwWNGhz7+1hBw4dW0EDBPVZobmJmYoYm4lXQ6PvdNs1a 6rvtHWQt+dAKGk0cUZwKGgbCVCPai0fU3UWsKbSCRhNHFKeChoEw1YiGbVZBo+963i4CySAVNJo4 nrZy0TLi97aChg+roNHEYbWTi7YVvrfRPrAKGk0cUjuJS1vh+1pBw1dX0GjicCJV0DCRlp1KeXNp 4MXWUWeH1pG0gkYTBxSngoaBMIVlFPjxaHZ3EWcDqaDRxNHEqaBhIEw1mkE8mrs4vNWHVNBo4mji VNAwEKYazU671QnZcIa72CKGVNBo4njWsmrZ0woaPqyCRhOH1f6qZU/38WAVNJo4pHYqaGyF7+3u FKyCRhOH1P5CdD8raASgrZdgExiP6YZXQSO4r6ABFe3LRPu7LM4RJLEmGDtgBsIUdmqn3W+51E71 dnHaZKJYquIceIrFplOwYt3Z4hwixcqLLitWjUEyQRLHgrERaSBMpVheGCvWLk7KTBRLVfcDT7GY UQNWrDtb90OkWHnRZcWqMQAnwg7KbrC2qK1S8VQq6LV6HapSfrCDneBAtREc4qhTuqsM1ab7kiIS zcqL943FI09bdqL6t8L3tWJJomTyiiVoeqa1zrq7FUtEuqVYZ9VZDCVdGtlwNG6F72t4RKJX8mIo aHqlZQ3e3WIoIr1SWIN11lkJbIVjJ4L3s85KIA9NQTIFk506qCbd11mRaNUSYgnWWMbFzBJUWn5Y ZVy6nh87MLq7c2BIy7hgqZiWEXh3y7iI1EphBNZZIcbMCFQafVgBW93Ai1Wqt4P4u0SlZBVisFRK y81+dyvEiFRK4Wavs/hM6hnHiJozEKZSqa4bq9QuDkFOVEpWfAZLpbSWVHe3+IxIpRRLqjrr2pgs qRSLKJy6Nt2w3QqZg73f3kHQYqCKWURaVa11l1X3dW0kmrWGLKtqLJtTm4N9P8vmJEomL5uDpmda a6u7WzZHpFuKtVWdFXlqc7DvZyRvolfyijxoeqW1wLq7FXlEeqVYYNVZ7MdsgaWnV3tc7CfRK3mx HzS90lpl3d1iPyK9Uqyy6qwjVMPG1T7WEQqgdYRQVAorQSGxuzGjqBHrCPW6XZa76fs7yN0MoHWE mjiiOHWEDISpRrSXjOguwuKhdYSaOKI4dYQMhKlGNOxGdYT8oLuL6FFIHaEmjqetjNyM+L2tIxTA 6gg1cVjtZORuhe9toBysjlATh9RO+uZW+L7WEQrUdYSaOJxIdYRMpGWnUt5cGnqxddTboXUkrSPU xAHFqSNkIExhGYV+PJrhLgK9IHWEmjiaOHWEDISpRjOIR7O/ixgjSB2hJo4mTh0hA2Gq0ex0W0Gb DGfQ9lpERXY0ntI6Qk0cz1pWLXtaRyiA1RFq4rDaX7Xs6e4jrI5QE4fUTh2hrfC93fiC1RFq4pDa X4jWVUco7nY2F7ttekyA65HJuBsELbcdTcYYo706v/DT5en2nKnheZJOxP6ejTdsSJ1tYpBX3Knk 9sg8HmlHspcZJb6QRyZbmc72L/f3w+LNvMSg5HK6o+hopNZsKu7+3UxWazZoxZe/Jv3qRZFgTEzU hQxgsHuihya3QQCzTsYrgYzbjyHT6eBDJjXL8phZ80GzxkfNugpq1hDUCCMHkVBzkHbWoRpAB5lr NaA0WK/XZnCKC0ts4eR7MZy6XXw4pXsTIDiluxZ4cFpUgdMCAidhpQcsOKUjZhFOi4UhnIrkFBBO cimaer1WHxVMQXY6C/Z9Osvc7P9+a6eqTi9GQ4iPhuxMFez/TIUNiD2bhbr9GCl9fKRkJyE1Uho/ CSEjZZ/ml07P77f8btc5cjv0kHjPBURdZMxZrLX0xdglGjzY+M5BtETOeDKHySI5b0bPZCDKFeCd k9EXrURHM84gkdZs/Dg9JWqOwoM4TFAz24I1wxec299PVoPxzeT9aMaeE6OhnZfjmspx83I8Uzle YUqcyeGZ9tuALv6jhT28A+HoxUbeUoW8CsCzhS4kcCFhqz5o6XQa1MRKjiFHZTO3WwBV4sLP8Vnm BHQcXEXJP9Iu+qBirWjDSDGW9EEq2tIVJOQtXUFG6KKpTVDi+qBPXDZQtsyhjAeyJmIMC2JYCKsR YDr9BqWv5CB5VPryvQJ9JdtVOfrKnGGPA60ox0raRUsVfdFGKceSPkhFX7qChPSlK8gIXTSDDEpf S336soGypRplTQQZFsawIFYjwnT6DcpfLD0Qm79Ig/LISvZmc/yVPBoLWmNlB41V7EWbpBrJ8UxF XVpShLylJcUEUmM4ZY31KcsGsJY5YPFw1TxYoaAKBVRGmDJAlU53QcC0PUAIGU7TnAGfS/ZMAZV7 OKIRP1Uao1MJqNJWAczmqXQaNJLEhZeRJENTXqv3wBizYWVNc1ZWLv00jzELhpayl5ZKjAFNGwDG dCWJMaYrydDc0uo9MMZsTIvT3LSYS4jNYwx9alT20ViJsOqTo74YMbbsG11aXaax+4gNqkXWL5/J yE0RlY+EaYZjfrv7J2cHlWfeQA4XUwZyjLd9Fpa2fdJTRbABlrO+stnBOYg1zoGaNKqyB9VEkBBl tTnpoTDTdaamh2xgwyw3OWYzlnMwa9iqMWlStZlRW4oQXiYLR11nBBRZuuvH7IHuiMi6hgZNpEfJ 4/BXnLpVNTaCkq1oPK8jumBPUkdHaEqSxEdoSjLiMJaaZjVEwgLSckESohiJpuEMDWZoKKsVZHYQ lqYfopMZOGYC2eTHiZmQ2NjxoIawmAktQbKYCS1BZla/9ZgJfJhBgyaaBTIsjGFBrEaEWQqawF5O XmtETSCvJ3GiJiSrt3gwA1jUhJYgWdSEliCz9aT1qAl8mOXDJsRRE80CGRbGsCBWI8IsRU1g7xRd a4RNIG8U4QROSPZk4sGkDwLETmgJkoVPaAky2yWyHkOBDzNoEEWzQIaFMSyI1YgwW/EU+Ma9TkAF toGPE1ABMalhARVakqQBFVqSDM18awEV+AaYTkQFthGGE1EBMXtgERVakqQRFVqSDE0xaxEV+JOk TkgF9kSJE1QBmZoAINOVJA2t0JJkOF1aiq+w4NQHRlg0za2ftKq6X99IkiTOorbtI8uhFviGGTzW oll+16RRlR2vJoJksRb1OPctx1rgT5vwYItmrS6TRlVeXpoIkgVd1OPCMI+8+OrLaOSdL7+Kilp0 3TBs+T4ratHp9PWKWnj4RS08SFELunwg3SSD4hwGRc8ghJE8WbdyxXyWKWPSzovRKFyRE+Pm0MO6 Q4Uer456E8igWGZBIS430SRI4CCiNkBYqxKBTQ/UKPJgVSIw4aAfgFpmCHW45zwK91RQhKYcI0jU UdoBmyRy0JCVdmgSMJBwUR8srBVkwGYK6nL0YAUZMAGhnytfZgp1ttQ8Sk5XMIWmHCNI1FFFAZsp ctCQFVFoEjCQcFEfLKyVPsBmCroA9mClDxABob38LfOEOsJ/Xso2KLOElhQTMNRQtACbIXKQkBUt aA4gUPBQDxzsVRtAxsE0Z1Oqqg3g2pW6m+N5NAAz++dRZr8EESaCDG1LixUCsHGRsyBUFQJwrQjd /WwOLoAGgBoXmoIMLQmLWf3YuMjNG6qsfsy5Q3cDmoOKhPj/lDL/FhR/iVChJ8jdCtKYQ6yl5CMj YpF1XcpS8pvkvASlwKu9l/pijP3Z1hPpsWGRMyzkifRNclfB0tbV/ioDOcZ+TOvZ79jYyE0i8uz3 5iw/YBnnqvWHthTD9aj1vHVcTFxD90XjUyOw6MIg8Ii3M6oK8pnHQT7KvVE9QUaMUUuuOTY6QBuk TcMGFjTqRIblBHF01gBvlyIboDjbpYqIrXkUsaXeLtWRY2aC1pDVjc4ZwP3SZiEDCRj14cJaLjY6 V4A3TJGXJDgbpopkiHmUl6reMNWRY7YkqSGBGp0rgDumzUIGEjDqw4W1tGd0rgBvmSJ7v3E2TRUR uvMoQle9baojx8z3XUOuMjpXAPdOm4UMJGDUhwt7GcbYgNDZRMU2NnE2USF2ImgTVUeQocFpMSsY HRgau6jYlgXOLirEKADtouoIMrQuLGbyogNDYxsVexrB2UiFzABqYGgKMpxK7GXfYuMCuJnaNEcn LNMV4Ok0EWTuBLeeMYsOD/CmarN8WrD8VLVTy0COsbfTeporOjjAu6rNWpjAkkrVKxMDOcZLVpu7 qxHA48TVTqfd8sI2TVzt9buwxNU4WTDAT1EMJDtw6yvSGufPzNNpix6LemYTwcv5iz5vHcNsuH5E PqS/O0LABWbBP9GIsgcAMpC1H6KzN4o7MNd6IxM939bQmFkSumNjb58ySaDD1h06bweynajMGCUN sDVGRhFSukNkIY8u2axDVx/NwbHLbXUMjoVNuySfDFtxqAMlkG3LZMYmaUCVsRGPjFF2m+7IWEgq S/at0NVGc2gqc5qE0eoYGku7VxYstXXWHuBG0sUDs749tpq1gLa1LatNc5Rui91mdaBs2G7rnHnA jzDLjNRtsd6sRXutbdlx+gN1Kyw5qwNlw6Zb5wwHfhhWZpwwrLom2HXWQqLWtiw8/YGyy3w1WXnW BmqbR42sUdMc8/HjD5KRyjXC3iRlEJagP0nZiQSwMjmZDJHl6amGIbIYrIE+LU1zbMeP1ciNkP2J ySCEQ39ishM1YWVCMhkiy1NSDUNkIbAlSclGVqFFdknLi15IBifzfGv8VpfjwWYQgRXHg+Yo3RrH g/UMemxtypkM3GCP7EjdGseDzcALK7ad/kDdDseDrYFKKo9h7yXR+JhAFraf2bBIGmBpkExCZjSH CD+Afm1pYNa5geHn2mT8DLdhaKzlvKR1M7Ano9wYcYPLshx3K8bIVpBXkh2EviOrSXB2V681jJGN LKG1rdHRZ7lbMT62mQ5/oPSp7nYMlC2625YDxPbY5QaKn0STcwfZnpUMMmt0ZyX0VJZtlhG6t85g eCxrkv0BMss2ig8sGozXCyc9tKjn+V7Lbfc958jtBu1+q+t5oOBv/JJtHrUtSoaFkxlI7GrRd6NW tD37BR0A6y7HdskiAL2C/F2pH58YSbZmXWQgTLs8Ts8iAb/+792q/mshYXVm4dQyMimExayTwpSA Wfb37pxYZuW8MivVn73BIiztJGUxgF37+S5VfrZf99nG9LDocpbORUg0yk6AV+Qlg7HEqe2bkWRk LyzQ7YWZjTPrPJpcVcqsKkwSqCXA79J5dVZOq7NTD96jm6TlHdIiLzQMCvtUC95uJXgr59R5NIes lEBWYAfU82Xu0hl11k6os2BFrsNSIlQWBtgnYt+l87DtnoZt5xRkj+bylBN5ipBo2GyxTycg2z3/ 2M6Jtx5NSClnoxRR0bAJY59Ou7V71q2lMww9mlvBSazI4gL/BEMvOQyQN+gKrZWVxQPeaqTwaXt3 eLKgR4P4ORH8pdFCV+O7dKqglTMFrRzt4l1DvMiI9Q7v2LEu+q+7u/qX3jXMndwsNOxX7UvLlS+t HOXiXQPdiKgrRBQ34j4c42LlEBc7JVC9a7AfsUlY2Kfyp/tY/NS7Bm87odqUNRY+BW496coysSzt Rsbj1+H3roF+ZtTV4Z052cfKuT5Wjm7xroFhjE0iif05tsXKoS12jpv1rmFbDs1aaezXUbOWD5q1 c6Kodw3eemiSgblPp4naPUvUzuGR3jV476FJRsQ+HRxp99hIO+cEetfgsPgmmRT7dEag3RMCLR0J 511r7EnhziOae1Kgw92AtxrNBEZ7UvjsDt+UwuX3u3RI2z4d0eZda+S54HL7XTqezcrhbEkemo8J CB+cAemrsTCCYMGvIwNyhJEBOeIlvzEhnpEQTxdGml2llUaJjCJ4GmVTcARLgFQBSVsKF0naUkyg ZDUZExlOOsmYeICqJxlzhJWMOeImY2ZgZSDI087q1Ow2jaxO7IkOktWJBqZasjpHKFmdI34gdn6m 05Oiz082c0ORgQTMDW0OlEBJnWos6YvhgklfjBmaLAcDBej8BEwpxMNVLSmFI5yUwhE/LyBPUppi DHBlMzMRm6bAmYnNQRQso1ANKQM5Qq6qBVTWMxyxyQqY4YgHrVoyHEc4GY4jfrpKnqw0xRjgymKi JLb7AJYo2RyTCpThqDap9MUI/Qe1mFTW8y2xcQXOt2zOHAjLk1TPgQZyhOCqZw60nreJjS5w3mZz pkFYvqV6HjSQI0RXLTNhDfmf2E5QjfxPTPoyyP8cmed/jvj5n1uIAG814hzD1FHsgdZIHcVkklpS R0dYqaMjfupo0d+tKciITKwcXGVjHwVetawp23KwWmMjtKplI1HVsoIXQFuS0RadlfpnLN4bF1jQ 7GY8tqonu3mElN08EsSYF/dU9OQYcJXVLGlsTEGzpBuEKlhyMwBWJoIk2yu1AAtAV6aJ1uh0BUy0 RvQw1ZFoPcJJtB7xMx9Kmys6Ykw8TBbztdG5Cpyv3RxIwfKs1ZgykCPbXbGPKgBRme2rYK/54Sm9 iAv+OlJ6RzgpvSN+Lk5pY0VHjInjwF5mMDqegJnBiH6FOjKDRziZwSN+Ek8pyFdHjIlHwWKCMTag oAnGDTLSYXnBACPdRJBkw64eI916pjI6wsCZys0xrWAZxmrTykCObNOuBtPKesYzOrzAGc/NsbFg mcpqI8tAjmzXzr6ZZT9zGh1e4Mzp5phcsIxntc1lIEeWD2Pf6qohAxsbXzoZ2Jjzo0EG9sg8A3vE z8BW7QqXbjWa1AyTt9FHWiN5G3OqqiV5e4SVvD3iJ29ztoV1BBnNVhazwNGxpZEFjjlP1ZIFPsLK Ah/xs8A5KXY6goymKvQku7RwJLpnHFyysjkGEKzM5AixZGVJlizyQFeWoTFksfwl/jnpAbhyQaCG 2QYCs6COygUbjMoFG4zKBRteujkT4hsJ8XVBqdnfWuUPkKEIL3/QFDDCSg6o0KgtpUL5AxUetaWY ANJqEQVkUOoUUcCDZT1FFDZYRRQ2WEUUNtwiChl8GgjytasxaPa/RjUG7MkbUo0BDZW1VGPYoFRj 2KBUY9jwk73y07eeFH26tFnTARmOwJoOzQEkqIqCGpH6YsxrOqgxqS/GDJTWS0NgkyWwNAQePGsp DbHBKQ2xwSkNseFnMOYpU1OMATxtVpjAJk1whYnmABNW0UGNTAM5FSpMqLFpIMcMnNYrVWBzJ7BS BR5Ea6lUscGpVLHBqVSx4efn5rlTU4wBPC0WvMB2GMEKXjTH3gSVmFDbm/pizAteqO1NfTGG9qb1 uhnY8ATXzWjOzA6rU6Ge2Q3kVKiboZ7ZDeQYzuzW629goxRcf6M5kzus3oV6djeQU6H+hnp+N5Bj NsHXUMcD2w+vUccDk04N6nhszOt4bMzreGz4dTy26ALeakR7hiVAsDGiUQIEk8xqKQGywSoBssEq AbLhlwAp7tZoCjIiNHu1RLC9PeBaIvSbRmxywwp3bNCKiWzQiolsRMVECi4fbUlGm972ypLgYhRa lgSPQespS7JBKkuyQSpLshEkphW3F/XkGNCn1fIm2NiEljdpEDphxUQA8DQRVKG8CQCgJoIMEWp5 uxHbOQmvloLonqyjWsoGp1rKBqdayoaffFnab9QRY+KetFh0BZ1BwUVXmoNMWJETNTQN5FQouqIG p4EcM3Ra3nDEdvfAS7gg+nrqKOGywSnhssEp4bLh5xaXdhx1xJj4j+xVgkGHJbASDKJ7qY5KMBuc SjAbnEowG35OciltQkeMiVvJYkEZbFxCC8o0aFkEK98CWBaZCKpQUAawLDIRZLossl6ZBh2q4Mo0 zbE/YZVg1PangZwKlWnU9qeBHEP703qFG3SYgivcNMcEhVWUUdugBnIqVLhRW6EGcszMUPuVctBh Cq6U0xyTFFaZRm2TGsipUClHbZUayDEzS2uouIONU52KO5jzvkHFnY15xZ2NecWdDb/ijip+o3Sr 0fxsWKwHHSQaxXowZ91aivVssIr1bLCK9Wz4xXo4ARw6goxmXotVf9BBqlH1B3POraXqzwar6s8G q+rPhl/1h5MTriPIaN61Vz4IfY8HXD4IL8yopvpBG8T6QSVZFeoHlWTJwo10ZRmaibZqEbFtKy8k oP3uO+fYDX3fb7ntvu8cub120G51vcAh34BKIniY0PcG4/UCVhbBU1PzHIJ776aWughzlLoIc35S EBBU+q+qk+5tAwjAlG9ELNSS8z3Hyfme89Nv4GiwkGadJJvYQAMwiRURDbVksc5xsljn/DQXOBos JI5uczos4EEnpQSVIZR25AeJJa9QZ7XtDuSFsu2uwwtar6iXNGIDCRqJI6jsUEvmyBwrc2TOzxzR YQhr63zXCi40ir/h4aKm6m9zrOpvc271NzAq8JfVa3tLC2DJgQYtLkDp+erVhb4Yw+WF/TR/G7AA p/o3aKkBy4lXrzUM5BguNuwn19vABjjBvkELD1gmunrlYSDHcOlhbes+KVtoARrAgokNmk1AxQXV s4m+GNPZxFbWUFqVzQYswCXhGjSbwGqnqWcTAzmms4mtnIg0h9sGNsAJ5JizSS0p5HO0FPK5KIUc vigxytc+hh7iYMO7CTzIAXGdipGYABhJdVoCXIgRFKwdoGDD2gQfotAYIMDOHFAhQVuKGSvgH12Q pGbgguEauhMaPRlrpqinlMMcqZTDXJATAjcjrNZOsIEIaP2EJmECVmUAAAoTQaaosF6vwApfAGsW YK5I6yhaMMcpWjDnJ+ZorEgt1gmwwhbgWgENQgQsqV4NCQM5hpiwnp1vhSuAGfqYPoo6UvTnOCn6 c352lIaHwl5WvBU4ADPjG+SWAKXrzHFS4+f8LCQNF7fFbHQbeIBmpDfJ0ITlbQMMTRNBxoam9Qxw K/AAZ4E3yLKApUurLQsDOaaWhfW8ayvgAOdeN8i4gCUpq60LAzmG5oX9bGcr4ABnPDfI1IClBqtt DQM5hsZGDTnGNtChk2eMOrNUCupNI3MhU4JZavKcn5qsM5tYC+q1M4voZBOjziO1pBPPsdKJ5/x0 Yp2ZxGL2rhVgaGTwos4htaTwzrFSeOf8FF6dWcRexqwVbyc4a7ZBlgUso3SOmDVbkmVqYdhKT012 uH1MjPhaURa+GiAjCED8WqIsRhhRFiPe1nqp9CNciKeLKt2+0grVsIAleKhGY9AEC7JQwUlbiqxq k2VAWQj42OYMWQCVTsoSIqzqSVkaYaUsjbgpS5ziJBqCPO3cJ91+A0cThVamPkhVBTxI1VJVYYRS VWHED1QvHgijI8WAq2zUZkgyECzACZj70CBAgZIW1IjSFyM5w6UGTFkOZAqscBWw8Aciumop/DHC Kfwx4mdPlA5f0RFjgi4L9UPS1BgblAXOy2kQrmD5NGpgGciRHZ1SA7QsR1V5VogLWKMGEWC11KgZ 4dSoGfETRUvnnuiIMUGXhVI3a3uWO7BoQYNMLVC1AbWppS9Gci5EHaaW9doHNtAFrn3QoFkRVrNA PSsayJEd6FDHrGi9hoINjIFrKDRoYoTVPlDPjAZyZKcx1DA3Wgss2hZks+E61agHh0plOKEjEO7A qA434leHKzpPNQWZsZnFMnM2AKZRZg6Vx2opMzfCKjM34peZ49S31xFkRmXokS1peQYb/glwbQhM dNVSG2KEVhtiJKoNUa74rSfJbHvRoMqE2jvBEitwAaaTT46IrnryyUdI+eQj9RmDBnJMmMtqXroN ZEHz0puELVg6OQBcJoIkm0L1wMt6grsVAgMmuGP6wupIcB/hJLiPlCdP6osx8oVZzJO3wl7gPPkG AQuW365GloEc2c5QDdiynm9vhbqA+faYrok68u1HOPn2I35CXGlrSEeMkVPCXtq+FVQB0/YbtGIE pcCNcNL2R/xMulJYs44YI0+Exex/G7CCZv83yZyHJe0DzHkTQRUOpEcy562XEbCCM3AZgQYZXrD0 f7XhZSCnwmnyKIaX9XIEVkAGLkfQINsLVkZAbXwZyKlwFjyG+WW/rIEVkIHLGjTIFIOVI1DbYgZy KpzkjmGN1VAewQbKdMojoM6YtZRHGKnKIxgJku5x6wgymzQtVl2wgjCNqguo02UtVRdGWFUXRvyq C5xNbh1BZjOmxfINVhCmUb4Bda6spXzDCKt8w4hfvoGT5KgjyGy6tFcHwoo3H1wHokGmGKx2wwix DkRJVoXT00uyTM0y2zUlAky8BVo1JQI12DYQsAW11JTYYNSU2GDUlNjwSgAwIb6REF8XmrodrlWY wgIg4YUpGgNJWDEIFSa1pVQoTKFCpbYUI1haLW9hAZo65S0QwVlPeYsNVnmLDVZ5iw23vEUGpQaC fO06GboDoFEnw8Z0DqmTgYfNWupkbFDqZGxQ6mRs+Il2+QldT4oBddqstmEBlMBqGw2CJai+hRqX +mLMq22okakvxhCa1ot22CBOYNEORJDWUrRjg1O0Y4NTtGPDzyHN06emGBOQ2qz9YYNAwbU/GgRP WK0NNT4N5FSo/aFGqIEcQ4haryFig0eBNUQQgVpLDZENTg2RDU4NkQ0/TzrPo5piTEBqsRSJDdcS rBRJg+xQUPEPtR2qL8a8FInaDtUXY2qHWq9oYgOk4IomDZrrYRVE1HO9gZwKFU3Uc72BHNO53npl FBtYBVdGadB0D6tEop7vDeRUqIyinvEN5BhO+TVUWLHhvdeosIJKrbVUWNlgVVjZYFVY2fArrBT9 95qCzOjVYqkWG0jVKNWCSqy1lGrZYJVq2WCVatnwS7UUkaopyIxc7dV8seGXAtd8wYRpLTVfNmg1 XzZoNV82opovBe+UtiSz3Xt71WNwoapTPQYRp/VUj9kgVY/ZIFWP2QjyAYs7pHpyTLjUahUaGwiF VqFpEkZhNV8AIDURVKEKDQCmJoJMcWq9nI0VRgWWs8H0p9ZRzmaDU85mg1POZsPPfC1tmeqIMfKn WqyKY4VNwVVxGoRPWBUaNUAN5FSoiqOGqIEcQ4xar65jhUmB1XUw3VJ1VNfZ4FTX2eBU19nw07tL m6Y6YozcUfaK9FgBJ7BIT4OW+KBE7A1OkZ4NTpGeDT8tvJQpoiPGyANlsdaPDXRCa/00adEEq6wD WDSZCKpQ6wewaDIRZLxosl40yApgwUWDGmSXwor0qO1SAzkVigap7VIDOaZ2qfXiQ1bACi4+1CDT FFbsR22bGsipUHxIbZ0ayDE0T+0XMbICVnARowaZqrCiQWpb1UBOhSJGamvVQI6huVpDMSQbaNUp hoRqCdRSDGmDVQxpg1UMacMvhsQJR9ERZGYNWKyqZAWqGlWVUO2AWqoqbbCqKm2wqipt+FWVOPEo OoLMbAGL5ZmsQFWjPBOqFVBLeaYNVnmmDVZ5pg2/PBMnSV9HkJklYK/Ok5X9KXCdpwZZq7B6ShvE Ok8lWRXqPJVkySKodGWZWq/mNaO++pLCyRtcDAlWv/zq4XffOcduP/DClueHzpHb63a7Ldf1HPIF LOfKM8M5F+ZRuwT+2cXqppV9Kn3plpNuMpA/R4kaCLpjvkV86uONBK0ml4tYE+ivW/R+HM0vz2dx m4jY+JsW+eJmMlxFn7cPD4s3u8KbXeHNfB1cxuCZ5/yf+YCoTJtTxUGRRxvrZuQ94IEyGrUo9erh 8QOHvavMp8pGkj2WjlnCUbopbPNSbaRtF5sIcXPKSG5RKeP2vclyMl5Qgl/+PHl5rdwxG8om8C2n 6pY8uLK+sWUpWN9os7gKR79Qa1z2dld8u1JHtk7cfMyMocopxeloHEsgk2rcBx2NU2dVQFROS4qp zkXJb0qd+1BR51i2hA2dE7jIU51LHlxZ59j6GqxztFlcnaNfqHUue7srvl2pJFtfdD66wlDnlOJ0 dI4lwkl1bqmjc+r8EIjOaUkx1bkoiU+pc8uKOsdSP2zonMDTn+pc8uDKOscWYGCdo83i6hz9Qq1z 2dtd8e1KJdm61PNBI4Y6pxSnoXNjlcaNdTROnegC0TgtKYYaNwbp27iCvtlbwnEzZ1gTkRZwuuu3 pWD9toSs35aC9dvyfv3G1TOM5Vt9qzeLCzeL6zZBJkWiYyirNt1F21K0aFuCFm1L0aJteb9oE6hZ 9TVbjUs2i6s1i4s1QaB9omgoSzXdldpStFJbglZqS9FKbXm/UhMoWvWFWo3rNItLNIsrNEHSQKJo KOsz3eXZUrQ8W4KWZ0vR8mx5vzzjqln11VltizOL67JtUSELaiYMImMtzT26kqptQ9GgyjYVmY9T kPk4FZmPU23zMQkqKMZ3GRuQSoF6JuRUZUJOgSoHLKekUjp9MeZm5FRlRk4rKp4tQ1IYErdVPBRj chtYB1Y8kTk5BZmTU5E5OdU2J/N6gmBQKgXqmZQqxVtqKV51o1JfjLlZqVK8ZVXFs2VYCgP8toqH YlxuwwTBiicyL6cg83IqMi+n2uZlXk8QDEylQB0TU6V2Yy21q25k6osxNTNVSjeuoHTJISoWVI5f l4g1MvPUStqW1jaCKttCsAWwgGwBLARbAIv7LQCuooEOjlGpma6QKiFci+XCZghXetqGDWUTlK1J 1Q1lPZfWvgHrm2g5twAt5xai5dzifjdApHHVV3LaUqqEcAF0rsqmQFpJ1IbOCULxU51DsSjTeH6w zokMygXIoFyIDMrFvb+Sr3HVbUltKebhJAB9k7st4/SB60L+QLcbtjy3TfMHemFbJ38gMt/wlPMa mEGQmo1IKQTbXBvjTa5zA72QyyoqhYyOI0OS6IWB5WdSqWYOKqWgKSevGYB8mszLb2OtLEbwI6+1 ErQDQvhxUmZSQXuP9/CDHO4Ss8ukzA0M7ppyTOEefgCgHSF2Hnmxk6AdEDyPk7CSCtp7tAdLOdol kRAmdXJgaNeUY4r2YAlAO0LUOvKeUYJ2QNg6TqpIKmjv0e6N5WiXGPgmhXZgaNeUY4p2bwxAe+WY cUtmuyJqHMFov7fZuUBHMtnrtditGes2bXV12DZKbsS9oc7DOIadXquZbs1Ct2mgqwOmUTITqlnn VWG9Syu8Anzt29rWzGybVrY69Bglxv/exOaxMoaFXauBbc22zoXMooMcFvhb3fzIS9p7qIdxtK1B rK1RGUw12E0EmRshU7kRghBta8cMgYXbIsW53yZXoRzukghXo1KaQLjX5iyUwx0jxtWOCQMLckWK Lr9Nhowc7pLIUqNynEC412bMyOFePbrUkqdQGV+K4CvMCdp7oOM5C2GHXKqBbiCn0gZ/Gv1iMb7T juUOCfDECai+TWY7kt8Qdg4hDO41bvAr0Y4QWWnHkoGEVla3Y3KC9h7taP4YWCVjGNpr3PJUoh0S 1+gXwhrDsN3yQhbWGPYDvbLIPqJi+OCyyL6JUow4MY1+c8oipzd7wps9w5rKI+SEHJA8gFpryaMv 76lCn/3d1GgeYdRoHpVCn7fjbiLEy/HMQB0/ve282go926APUKFnDAZhRiSYQeop9Cxikeztnvh2 pZ5iJhlBxOmxiFKcDonUXnYawiJaUoQ0oiXFlEfqLF5tg0dAxasxeIQ51cE8Uk/xahGPZG/3xLcr NRWzohpEnB6PKMXp8EjtpbQhPKIlRcgjWlJMeaTOgtw2eARUkBuDR9gyH8wj9RTkFvFI9nZPfLtS UzETMCHi9HhEKU6DR+ouDw5hES0pQhbRkmLIIrUVGbfAIMoi41XJQ9cbUkORcQFvLAXeEJ0K5ffe EHNvCIYzBMMXUp8rpIaq6TYoA1A1HYE1tDwgNVVNFzGHyAOiVXT93gNi6AFBcYCg+D9qdH/UUAje BncACsEjcIeW16OmQvAi7hB5PbTqyN97PQy9HihODxSfR40ujxpq29vgDkBtewTu0PJ01FTbXsQd Ik+HVmn8e0+HkacDxdGB4ueozc1RS7l+C8wBLddflT22WTtQ/qipXL+AP6aidYtWtf8RdrV/mEDd tYtSoN7qpe7jA1RMoi+GyyX6YszXMPWcQmCDT4CnEKDwidZapqZTCER8IlrLaB1iMMI+xAAmUHc9 oxSot6Kp+1QEEJ9UX9XoizFf19RzuIINPgEeroDCJ1rrm5oOVxDxiWh9o3U2wwj7bAaYQN01jlKg ziqn7sMeQGxSfaWjL8Z0rVPHmREWmARwZkRVEklT+qAcUsOZEQL+WAh2dHUOnLjf0TXf0QWdPaGi Dl0hXOLQFVIlvr2uUzBs0AfoFAwMBtHyktR0CoaIRUReEq1DNO53dw13d2GnaUBYpLp3RFtKlfj2 uk72sMEjoJM9MHhEazVT08keIh4RrWa0Dga5360x2q2BnRACYZHqqxhtKeZxqUinlfj500q8ttv1 Wp4fOkdu2G6HmqeVoBKOxmklqJm90HR3SeyDdrq7UhZOTMY5V01l01XdJ5+MlLnzBnLcvBzPVE5e WwE5+JlOrOkEFSsaCDpBBTU39l4Hs0vPek9jgamgphyhCmrKMVXB+k51saKBoFNdULNK7zUwu2ir 94QYmAZqyhFqoKYcUw2s76QZKxoIOmkGNR/zXgOze8D1nloD00BNOUIN1JRjqoG1nX5jQwHVp99g 5jPe656VNSDSEhBpBVjvAtD6gTxWtA5wIA9mRuC93tlY9yEt+5BWfbUu+qyfEWRF6wBnBGHm0t1r nY21HtJSD2mlV+tCz/oxR1a0DnDMEWYW2r3W2VjfIS3vkFZ3tS7uajh5yYbeQU9ews3hute+nKFU 7ylOav0zEcTVQBNB5vZmHcdBWdFB4HFQuHlP9zqYM5vqPVoKqIMYtqeJIHPrs44zqqzoIPCMKtxc oXsdzBlR9Z53BdRBDEvURJC5LVrDwVk2VBBycBZqls299lnZZ4AdnqXWPgM5XOUzkFMp1qyew7ys aCDoMC/UPJV7HbSx5wA70AumghjrQAM5VWLN6jlgzIoGgg4YQ83wuNdAG55Q2CFjMA3EsEAN5FSJ dEE59CwoZEcEba/lex7NjnA9T+/QswBRWQPwoWeBiaJuOKkRwS059Cy92Rfe7BuemLZBzigHydPg KZA8AFdpyaOd6auSwoLdnMC2wTiBbaNICtMV4uWF+EZCfN3Esu0I1HaMmw1CBB3jhsGJbPkA5sS9 OMZNxIzZ233x7UquwMySh4jTY0btLPmK4nR4sfZD5SDEqCWlwqFyEGrUkmLKjXUeTWeDG0FH02Fw I9vgA3PjXhxNJ+LG7O2++HYlXWDWeIeI0+NG7RrvFcXpcGPtB+VBuFFLSoWD8iDcqCXFlBvrPG7P BjeCjtvD4Ebm9AJz414ctyfixuztvvh2JV1gVkWBiNPjRu2qKBXFaXBj3Yf/QZhRS0qFw/8gzKgl xZAZaztC0AIrKo8QrEqIur7Fph8hKGDCpcC3qHP+4L1vsTm+RQzXIoZnEcOxWJ9fsYYzEW1wIOBM RAQa1HIn7seZiCIyFLkTtY5UvHcnNsOdiOJNRHEmovgSa3Ql1nDMow06BBzziECHWh7E/TjmUUSH Ig+i1imR9x7EZngQURyIKP5DFPdhjd7DGk6utEGHgJMrEehQy2m4HydXiuhQ5DTUOvjy3mnYBKch is8QxWWI4jGszWFYy2GcFsgQehhnVULcJnJDKXE/DuMUUOJUtGDWOstzg32WJ0yg7qJZ+yzPygL1 Fs51Hw6qokd9MVUOB1VRpL4Y8wV0PWeM2qBJ4BmjKDSptZDejzNGRTQpWkhrHVG6wT6iFCZQdzGt fURpZYF6C+q6zzwF0WT1RbW+GDFN1rSwrufoVBs0CTw6FYUmtRbY+3F0qogmRQtsrZNXN9gnr8IE 6i6ytU9erSxQZ6Fd91GuIJKsvtjWFyMmyVoW3HWcCGuBIAEnwlblxrRWBZQam34irIAUF4IAHZ3j ZO8DdJoToAM6FFZFh7pCzI+nVVGhrpAqyX91nXFrgxBBZ9xicKKW83E/zrgVMaPI+ah1RO59tE4z onVgp9xCiLG6y1FbipAaa0v+q+vcXhvcCDq3F4MbtZbS+3Fur4gbRUtprWN/7/eqm7BXDTu5F8KM 1RfQ2lKEzFhTggvSWcRB8Szintdted0urbbj+V3Ns4hRSVTjLGLUgjvQyliSkDjtylhKWTiRf+DK WGBZReKQTed1n2u8UZbZMpBT4VzjDb/MVoY/DOTkGQRQriszGDWdj2yFFUDnI6MWnbnnBUu8UPNZ yzBa0JRT4axlGC1oyjGlhfrObLbCCqAzm1HLrdyzgiVWqPn8ZxgraMqpcP4zjBU05ZiyQn3nSFth BdA50qiFRu5ZwRIr1HwmNYwVNOVUOJMaxgqackxZobazrW2Qgvpsa8xCG/d80HifApJLAcmjgORQ qNefYP24bStEADhuG7PYxD0VNN2NgORFQHIiIPkQanUhWD8B3AoRAE4AxyyzcE8ETfccIDkOkPwG SG6DWr0G1g8lt0IEgEPJMQsM3BNB050FSL4CJFcBkqegVkdBDeek26AC6DnpuOn194RgbYlQ75nr akowEVTlzHU1LZgIMl8q1HF4uxViAB7ejptQfk8M1pYM9R4EDyQGjGWDiSAxMdS2dKjjRHkrxAA8 UR43hfqeGKwtIeo9nR5IDBjLCBNBYmKobSlRwzH3NngBcsw9aurwPSU0fssRdkS9mhIM5AhPC8bY dTSQUymMWXnsMEL2rB3/AiR9FqekwL1zYW/2H5PhwqAFDNeCgRwhLdQYxqxkBYS8UTtrCEjiaPUV RE7QPSs0fQ8iGS4MVsBYPhjIEbJCjQGLSlZQZ01eDjdpvmSn3fZancA58jy/E7YCQLbkLD79x4Q2 HA5vXK/OLzwWz5hEHHpRJvjwPEmRDNkHs/FGwQ7zLTtsr7icXI4Wn5yDL1jffxELXs7+dzJnpbnI n4e5ASkLZ02Mis2kShUVV4laJR+/9O7BcrmOn9hykjuh4eUW+pympq4b0umZ0+rt9f96bdb/aTEd 3P6na+p0zbvr/t8WDLLX/4uFWf+nYaCo/X8tJx22mNk96/ALZsH7na0wqxGPhZ6XU0/NXZ/NW7Y6 DNX4x8IwyBmo7mHI+F2sDoOYhqh5RC/0MwYSMYsiAykgptKuDCQ/x1W+6VwxskhVfqUJwm+egeTn WWrHna40kDD6v1EGkp+np133v8pAwuj/RhlI/rWcdMDTg13WqTYl+E00kPxrBfXU3PVqAwlpGJpl IPnXCgaqexiUBhLSMKgNpGBrILlukBhIQXdnBlKQ46rAdK7YWKSqoNIEETTPQAryLLXjTlcaSBj9 3ygDKcjT0677X2UgYfR/owyk4FpOOuDpwS7rVJsSgiYaSMG1gnpq7nq1gYQ0DM0ykIJrBQPVPQxK AwlpGJQG0sbLGEi9dqsTMgOp396VgbTJbLFF80KmVEgTN9w26YZDsrGsPWdskl23iLuYnEZYTpvs 3ls6GvuyFZeMTHY84jF6ePyA/TMeq3VMcGZjZcPK2mT36dKx2pdtO5tjtYhZ0GysbNgFm/yenpLm mrDFt9luauSJTmde2qT7fNWpzsKYZG01Nds1bfcvHaHcuBS1yKkwbBisZ2HYsradmviatltof9hU BJjYgpndRM9PbMGOH+zMFvQltmAT9xY3fnVb0G+qLehLbcFd73qpbEHfhn3hN9UW9KW24K7HSmUL WhyrBtqCvtQW3PVejqgzEWxBv7m2oK+wBXc9Kmpb0LdmVPjNtQV9hS2482FT2oLWhw1qC2Y2Tr1+ agv2dhZ6vwkktmATt1E3QXVbMGiqLRhIbcFdb/CpbMHAhn0RNNUWDKS24K7HSmULWhyrBtqCgdQW 3PW2lagzEWzBoLm2YKCwBXc9KmpbMLBmVATNtQUDhS2482FT2oLWhw1iC96cz1ZOagv2+t1ey3fb xBjseH6/5fa7amvw43w2xhrZ5cqldWMHGy8urBmnbA+TkrFu7PD9OLyAu3dncZXY2FfMPdqXfuA4 mSNyl9ERueTb0gm/8VdPnrx++hN53LMXb8j/n7Jzcw+Lkl2lZFdPshiR5JE5SJK/S3elXbQiPUlz qg8E3Zfk7w4ZICPQVRVDBw3GGdiYWseYWhdAta6AqrURrNZiWK3zg/9WF1drMa4gopsIrAG1FxqO rWmMrXyduuG2Sp0RuraF6bTgNRXDa1oRXlMxvCCiMeE1lYBiCocXVMzusLUMk6kwzM2EZD1kOBFm N02BE2EonAfDStNgKJwFlXIRwRQvQAWddw1nKw1BuwPUIgJUtnjeMLGajSBV3IiHYWohxNQirERS CyGoAIKbiqrBctF4YC3JCiWmqrT82jA5+ikwJCtWbU2PrGglOAFbRV8Z01VesqsnGRNawQcJtD5o QAsuaIeEFeMqV9dvmFb1M0JWWshPj7PE0FrkAaDPWmJsQUQ3FVxS3moIvpa+l/BWWnx+mJxU5Rny Fqs0r8dbtBC+gLeir4x5Ky/Z1ZOMCS1vKYHWUgNacEE79DiEqcMhzPsbDA2tYqAqF1c5d4DQxlpr 2Vhima6ezOaaVxInQ0PMq3U8Da4L9tW6goG1hlhYudEXz4BrvRlQItXVlNrcyU+CqoZMfut48lsX Zr91helvDZn/cuMvnvrW+QlKC1XiaQ8itanznhRVDZn6pjFX5Y/6Gm4P+jJiq+3ZXlBgTcV0NTWn q6mYriBScemKXQkjpO2lO0RGzDf5s56G25OejBhne7gTGBliypmaU85UTDkQqbiUI/FtL+Eucg1B O3QRxBswuSLfw7TEt9H2S1rVGwqphXjjZaG38SKR6mpKbeaWnsQp0IwtvWvJvku6ANOCk2QoiJzs SFCxct2Oo0YQ1j4aknY4FrIti9s2Gnvg6b+Wu/qNfBuYAxJireHggnapHHL3+K0ajT1wJ1/L/clG Cx/M4QiwlqJwQbsci64kktBoqYE5FlgmlYagHY6FzB9++2bxxjuUr1Ue5Vs2czTeF3utcsbeqrlj D9yY16qg4Vs1gexBoO212rHcANICe2TDJnhkr9Uu2QbwDpIvEy5ol+PRVUSTN4B2cMKvNQTtcoEt dy43YDQwJwET1yxNI6MituWlQq/Xb/ltWlOgE/i9ltvv7SiNzBemkfnAYctUhkimfR+4JYCWQYaX PJYK9WRCvV1lpPk4YIaL2WHoRQxPYUaaAUDXugjFS0ZDzEMTYHQtxmi92W14IN0DozuyR3xpdpsB UrfGDBSqeIltiDltAqhOxVCtN1POxzHV4GJ2h1O6Y+sLMuXM5vpsSSn1XI+TJIeVHyea50PhNF9j yp2PFb2rI2iH4SkRMgUpdwbYLNY7U8emIGXboSXaCeC5EMKz1uQ9XHzuwZZ+tKPvC5P3zPiT+ePA /ImVt4eXsifi0LxQT08oJkqRotV1BO2QRWOICvMADYlUC6V4KYCI2X8iMhXjtN6cQlyg7kEQSBQD 4gtzCs3olLniwXSKlU6Il0kootO8UE9PKCZKkdI0dATt0P0Upt4nTnqioe9JyyhtXHqiyO8kNEpr TXnENkobH6ESBaj4kpRHQ5RqzfiNTHkUIVU849ebSIk94zc+eCeK3fEliZSGWNWa9BuZSCnCqnja rzc9E3fe34O4piiKxpemZ5p69LWotZHpmSKPvpha60369KNMTiEdwn36GoJ2iNWYVyUJo6ZY1aLW RiaMirAqptZ601B9rDRUHUE79FDFO6XCNFRDD5XWNmkj01BFHirxNmm9ya2YO/p7ktzK3ypNl+9a IMULZ/PREjG0JO1wLGSbg7dtNPZgJ+xavhVm5BnDHBCkpBgdQbtUDvmez60ajT3Y17iWb2wYLRsx hwMpQUlH0C7HoiuJbzZaFmGOBVJYOljQw6PotBQnPjEl6YPD3Q6SbJvl9k3vjd9TuFZtKtyyKaXx jvNrlef8Vk0qe+AdvlYlJtyqmWUPAvCv1f76BpAWkksaLmiX46HySTeAs5DcrvuTMSvLUGkAZeGk YexRxqzYD96A0cCcQCpkzB5cHw42waPt8YthJ+y3fM+jebNdv7uj4xfJkiUQJNIEwJHLHKFZOEb1 PpFmK9KXiPR3lJsTYIWZ6Qja8V4IH+0pZrXgjkdUAdryXEvS7vZPmec9ECahmHEPM4/B3HNHklBE DJQX6u8qsyXACh/UEbTrLScR8I0mXUwWQvJI6QjaIQfRtV0gzNww4yC2JARz0B3J3BBxUF6ov6t0 kAArLFRH0K539kTAN5p8MTkIyQmrI2h3HLSOTFJBao7BSKx112B3IjVHQEBr4TKs1nQf3HXYfmzN SXB/2xZjezAg0VZpIMm/MqQirSXZHcq/EhGSeFVWb1YX7rJsPzan5Spwq9ZmezAgUbBAIEmzM6Qk rRXaHUqzE1GSeJFWb/Ie7iptP8Iz5Cpwq5ZqezAgUXRGIM2mNBiRbWgHlJXuUDalgJWmYkOp3hzN ACtHU0fQDilJqQINsJOQxmMPApSi+KRAmjNrykhadtIdypkVMZLYTqo3EzfAysTVEbRLRlKpQAPM JKTx2IMQPZbkGAgroBqMRJofCeWiO1EBVcBCC6FHu9aqqtge7T3IJZXh/vZ5tBs/IFE+aSCpIWpI RVoLtTtUQ1RESOKFWr2VSbE92nuQwatQgQas1DA92o0fkCiLNxCeUmQWcMSi7MEBR3fklCJRwFFe qK8nFJGLcLIS4GJ2uIsTY1549JHhLo4W7O/Q0UeiXRwx8us9UAkP+nuQzxmlRwWSMmGGRqgW+u9Q mTCRESpGf73FxzDRvw/Fx2QGj5FnGtP8RMoN1BG0y71k+UR8q0ZjD6aGa9XccMsGpPFsFaWWB9LD D0230rSm6zt0+KFoK008Xdd7pGKAk8sPF7PLbTQV/BtASDijYVhZIUrkv9om8Pddv9X3AprAH/pB qxOGdSfwe5HbQuBPMjisPLEFvP31J2FpP8r013zL0IvW/0L3jAGI1rooaqR7pmk4ar5N60Wzs8R+ MgDTdvaBoqmR9hMemhDmwOZXFvJYHRRuWRqzWY3twYNntWaVpUHDDk5Qho6Y3eGHhrsIYpAMEJSG cUAh1LgYpCaCqPlhJF5UDEVQpcaMitjOO5iKmlelBg9JKAEZOmJ2SEe0X4WhSIaMpIWkRoYiNRFL zY8k8aLyKIK6NWasxOKkwazUvLo1eEhCyTLUEbPDpX8oLD1iuO7XMpIaV3qkmUZS06tHeFFtAmHp CEMoac1ujSwd0czZremZ/16UVy5M+zeEk9YE18i0/yZOcc3P2vaihGBJyrapV1KLoBqZso1JUOw6 CAU1PanWi/I1JRm1poDRoqBGZtRiUhBCTqSOmB2u/buyCFDDtb/WlkgjI0Cbt8HW9Bgl71q0LZIu urRwhBWc4SGlF2rJ2eEgCPcWbtMw7IFz/lrinTfyYOCNBEpqm46YXaqDxLd9a4ZhD7zC1xK3sNEq B28cUAqF6YjZ5SAIQ/KMVg54g4BjKO1BtoN3LfZs364puvGu4Wupb/gWzQ6N96peS92qt2Z+2AOH 5LU05PbWTBJ7ELB6rfAN75yfgE7V5lcq9K4VXtWdExCKO7L5Bdq8a0WU9s75ByPAeQ8OT/WupY7h nQ8D3jTQdLeqL82iMjjANn94+l5mUVmpyoPl8fcxwAkXsjtcylOzDJC51oVmI1Oz7FTOaRo6m28/ +8qELwOIFg9y39OELzsJ83gYRbCy4EJ2OLOL0sjMpnXmPwRP681KIxNN6RVON0eDI068rI6Y3UFS kplmAMp04xmKysZlpokqgVWpjt1EYDZ/Q92XZruZMSbzooEZs3nZbiLWrHQmOx48UQLDdcTskDel KXSG1KkFz0am0Inos1o17yYitPkhGL40Mc+MQJlvHEygzUvMExFopQPl8eCJkgqhI2aH3iRxtp+h K0nL8Gxctp/IjVTloPFmGp5NDxPxFRmEhvDUmtwbmUEogmi1w6ebObk3PYLGV+QlGoJUa35vZF6i CKTVjiNu4hTf/OAiX5ntaOqS1yLTRmY7ilzy1Q6oxSRThINLdcTsEKSKDEtTkGqRaSMzLEUgrXZm KSaZIgRK6YjZocNJmrdp6HDS2tlsZN6myOFU7eSO5u2+Nz5sSZYNaoBOrOAxHynHQUvODgdBlg16 a4ZhDzav5NmgOx0JlEQTHTG7VAdpNugtGYY92IqQZ4PudBxQsn10xOxyECTZoDsdBJQIbx0xOxwE WTboLZqiG+/mV2WD3prZofG+bFU26C2ZH/bAYavKBr0lk8QeRLOrs0F3zE8o7uHm54r66lzRHdMT igu0+bmivjpXdMfshJHFsAe5or4qV/TWTBJNd7oG0lxRgwMSdY+yvyu5oqlQXybU1xOKtcmAcow3 XMjuwC5PQDWA+1oX73coAVUA+bUY8nWmtWJhvvkLgUCZ1np/DvRdOgca5RTo5p8BHYiTZc3sGuZe Bds1tz5ZVmTRhEKDprb82wAn2lxHzO5QLsm/NcB5utUPBfqdyL8VYH0hxHqNOb2YYG9+WEQgzek1 I3bmCwUT+x3J6RXRe16orycUD/MomRo6YnZI8NJEYUOO18L8HUoUFjG9GPZ1ph9j4r75MT+BNP3Y jOvZdguY6+9I+rGI6/NCfT2heJhHSXjSEbNDB6U4p9nQO6llzN+JnGaRX1JozNeYJ41rzDc9gCpQ 5EkbQl7LtrlDedIi4Ittmzqzr3Ftm6ZHrAWK7GtD6GuZN3co+1oEfbGFU2dON6aJ0/wQwUCZ0226 H6VF/Hcop1u0HyUm/jozxQOcTHEdMTuEviJT3BT6WsR/hzLFRdAXE3+d+ecBTv65jpgd+jGl+eeG fkytEIQ7lH8u8mOKQxDqzGrHC75pfIClLKvdAPNYYa4BUq6WlpwdDoIsq/3WDMMebN/Ks9p3OhIo CXM6YnapDtKs9lsyDHuwwyXPat/pOKBkLeqI2eUgSLLadzoIKLkoOmJ2OAiyrPZbNEU3flNGldV+ a2aHxu8RqLLab8n8sAcua1VW+y2ZJPYgmUWd1b5jfkJxZTc/qz1QZ7XvmJ5QHKvNz2oP1FntO2Yn jHSjPchqD1RZ7bdmkrDkdP3uO+fY6/e9fst1nSOv23GDVt8hn+KM0Op8s80J24RsMG4KOWGr4Xny Cft7Nt6wwXK2GWBecbOB2w/JKdaOLLyUxZWRR6a7Edu/3N8PizfzssGSy73czf7vVRz2N5PVmo1N 8cWuSQ96UYAa6zkmK+ojhhiNG6PHJ/dCELJORiWBSeC2XI/BxMOHSboW3eJkXQbKmo+UNT5U1lWg srYNlW1XHUoH/yBzWYyfh8cP2D8n+50GogZr8q8CrOJUuS2sOkECKx8fVukuxBZW+Vw9GazS/Qo8 WC2qwGphHVZpV9UPq8ViIYfVV1+SMSVCvvyKIccP/DBsdfvOkd/udzutwIugI8Pe+TbiiQwpliFy MXYH52SNNNgQ63w0v1qu0gdRm4TckZgf+efTXoHgiV0xJ0AoX0ceTbovOKeWWvRkgazzxF5Lx3sL zoNts8iocSS8n6wG45vJ+/ksehQDVDsvyTWX5OYwyDpFBhmjd4Yw0/l2RYuLjmtdeISo8Aix4BGK B/U6GtQQCA8dSVJ4yF/64RGlJEsoYUXk8DnEh3NIVLRrJgPJCAYS34BDyJMNOGQUaX4eJYkoPRLJ i3LzorwKoryCWT5TE5J2B2oSEi7UrnWxFqJiTZ+QBFhT0MgoohEQ1rREybGmJcoIa5odSLEGJrXA BqkFCqCtr0i7nD8L7WDdIXrB2Gfj/EWfvI7HY7h+RD6kvztC/AVm9lI0HuwBgDHSfogmH+CO0rXp MIU2h8nIbtEdJgNVgitTvMj1gyDstNxOl6xV3Lbfaf3/9q79uW0jSf9s/RVzzKXKtkiKwDRAMKnd qsgSz6py5NiWdKkzvSw8JdZRpExQNPe82b/95oFH40U8BIt24qTKJDiNnp6ve77pGcxABuxvrqIK X+c5mnzZmYoapvx/ijlIojX7nF2oH+s5tL25xZ97ZtFKi2tOKFru6M793d46++ovtypRv8l7po3a 4dEidaz+etxRu8n7XI2gdYmDlkdGpflhk5WIZrxht8Ybdj5vNF+HyJsaVgixb2oRgtbOW9oLscfi Hrs17rHzuaf58kPjEPumSKxBBtRalD1eBvQnZLIvnUu1TWUNcqkWA+07nz0g0L4sobW6UAd1yQzK Y2xbJcYarpk24LJta1y2bY3LtvlcFp/2bqaJ1g3Wb2pRGWrnd+0F62Px4bY1Pty2xofbfD7MC9Y6 mhoE6zdFrA0yxdbi9fEyxe/suiNgv3TO2Ta9Nsg5WwzZ7xz7FXBsw+yVb6Vk8tFOSl0bdHXxdFJR jUo7Kds9yIH2T6aDuJt+OlHlPAdag04tXld5aZG140V11gPeVJfWq9TVG7b1oS8DivZPTkvPn6RF 93XUB++h3BEiRpMQ2QFsrSM/0bbDarAaXwOs8UawnR2vwZ8Hzewd+4Y7XsEbw9J61f116HDpv2wI KI3LOor2Tga7w3avf2473qbXgkuqK9o3kUAJkTQ4kZnZbPadSIr10p166f4ICtoiqDqK9k5Qu7vD Xt+cEG9+bMElX4yg5PxkSIfh/GSk7GF+Eu6Z/D45+fJUUXlq8nVMTKLtl1/rrKTynOTrmJHQKl3t +3Tkq56OtDQZ+RamIrRS99/jPKSlWci3MAeBKtTxfQLyl5yAtDT9+BYmH1CJkvb7zrZ2fNGMkvjD j5U7WzAf3K3c+CmIBgPaVVSNTzMMSrua9hiHtPI350/nZtR7ch/u3a1XOZMPq0ukNGsdu7QfZSZi FTDcoCqZWQVUFivIfwzp5+3Lzzx5Q9ajM8CtaOQmK0jjk7xndNKXkjcOek/Eud+dAStcO5VverKj XtToYIwzS599tmI/NNGTPPXAbik99YBbf1i99VbY+sc5I5PfCz/W7IZG290wflRfGq/i5bAyXoOX 1QZObRD7u3Wlo36X340g6hvEfOPTPrH1Dz3tE2uqf9oHt/+Lx33jffMF2+brjj60Sdi3Mzl/hNGn JGe2CjLmqsOX3frwVVFjhY5cUyMHQS0bEOneBkS7pQHRzgyIcRQ01JN+DUjpwEofeWBtlWDqD6wt M0zVgdVucWAt1VWvP+7Wle6Ju2Lo0Qdpu7VB2s4fpJsdI4k11T9G8sjDfcOtpAV7n+sO99CkM7az oPYtDPcla2Hh+zqb5gvb1vOFihpr8FNFjRVYqqZGDisty0BgbxnItqUMZNtSBrLNZCBxfDbUQ+tm MvDImUyr3Fk/k2mZPKtmMtsWM5lSXfWY4sGZTGVdaXbYFY+PnhVtW8uKtq1lRdv8rKjZQYdYU/2D Do+RX7W9ZwgxA+aEosV78QwFkwK//7H3EsnXeH+pZ5VNtLe2rwgNM5X7dOFemfrKuHsPiGh/6Nsg LOXTJ00ddUfi2ZMx6g4ffYfbx6rharQTrm09TMQLrW25tY6yUrfSUVcRWxeN0fDx/UqrsxBt7NbW t1l9fSxUfd/EPjmOtslxDZSVdgZNlxw3Gmh76As1OK6VztAWx9E2Oa6BslK36npXMYRfFfr4foXq HAeN3dr6frC/GsdV3yG2TwaFNhm0gbLSrmZoAYOqyh56Wg0GbaWrtcWg0CaDNlBW7FZn5nmk17ue rYl5dG3bRwwsb3Z9FGg7unYXM+ZSc71c+X3/hlgVhA5mC8fdEs1zDMu1R+7QHHrqgHoDRx95hjvQ Bqams3+H3sgaaGa/r6nuYOiA53q67diGYTuGbXhDUx/alu45qq2MXFM1VKIMBjrAQa/Xq2TtweHh YTWLeXTrwCL6UPzLLnmx43r8L3E9ufbvradH5Hnn/T86H553yPPJs6Mu6XRYADyLiidPyXP0K2OR GXOQT/7j3+ToH+9/6f2P2fu/QW80/XBIJu/5NbsgH55PPvzn0bODwzJheR3JM18uWF9jn7Lu94m6 nwT2Tj7EP5Y5Oobj1snHDEsELrZNE1TPYN1x5Fmeanugm6OB7Q2p4zI/68rItG06GPT7ruJZqkJ1 cGwLYGjotj7SVc/WXcPQFGs0HOrUGTi01MUJKwr9m5AK/tBbl02D+Icy4Ae4DsjPP5NfnI25sF2H vDv79YQs78yP9y7x16t7e32/csnt0nH9/gF5ygKB8xK/noaqydW7i7eXLy7I+9dn5MUZ+f3sA3f7 YUatDj2Lob5xbX5XRvvhTu3TE/L+St0ab84I+4CX4kN9Jz6UkzP5F4Zk0VgWjWWR+IDjcShBpQ4q dVCpg2IdVOqgUgeVOijWAVIHSB0gdQDWAVIHSB0gdQDXwcA5LAZH7TWER62Ezy6AdhtGmxpGuWGl oO9Cfbdh0NQw4IaVerJ9V5Lb2eLeD/xCzIUTuKGCi89/L3YyMzI0mSD/NnZsaCaNzaSVzKTSzAKX J82MvN3YzaGZEJsJlcwEaWZBACTNjHxfambauk+z9U1Y5s7dW3exrkB10s28QWEPlV4Iu4VsrGxo wyBsZJiasaxhbDWqnZ7IuIqRaBgyjWqHExkupcgrqvGQce6NRFiXfdyQfRxkH1fxQGdIHgfZz1XJ 4wYe6KQSKpVQqYRiJVQqoVIJlUooVgKBEpBKQCoBrASkEpBKQCoBrqQEoOZjXTWMdoFUYlrz0e6N DNES5HdBX2Ja8/HujYzfEn82cOgDHFkta6mQ1wmZ0ohoEBIPCIVqmU+FhJNU6c1NguoBwVQte9qV PmGZ0qhsEJZNCfjBmTTu5M3TXtwfm+eoyNyH8CWy9yHchgx+MA/xeevJ8t6as5mqbc7NlfRv0SyV D99s6BbDtlzFY/NfvnZ3qCjKsEsVMRcu/O8pu5eQjuJ0nrHvYxJe7LrlirWGdFRxyxX3TEf1O2LN 4gn7gbeqA74sPBlLQbHmygtf8sIbUchR6BjsO2/2juKwUMZux7CkahE2QjgW4CEkjBFXPKUJWhNJ 4BpkiEvjIwEeYgEcMurTdQgHdxQ9NIM7OmUnd3oEwTZCCzUkbFsgHiCGGhICJ8WPU1DQBBQ0CwVN QCFzywQSNIEEzSJBE0jQLBI0hQTNIkETSNAsEjSBBM0iQRNI0CwSkEACskhAAgnIIgEJJCCLBCSQ gCwSkEICskhAAgnIIgEJJCCLBCSQgBgJ0e85afxq3gmqIOslWf/zziX3PhsyZgs2L3DcxWxxTW7v 5+vZ3XyWXfTi6/fkyl4uHHHne94Vz1BXjL8n0Ay/Mxsk82hiFY4Rz6hLB4J5BOcFPTvu2OJ7VCgg D1XyQh8X8mZHSMU8kKCBm0S5sBGzQOp+ZEzAAX6iXAmqjCkgqV+6O0EASQHABqhZAwxsAGQNULEB RtoAigGgWQAoBoBmAaAYAJoFgGIAaBYAmgCAZgGgGACaBYBiAGgWAIoBoFkAAAMAWQAAAwBZAAAD AFkAAAMAWQAgAQBkAQAMAGQBAAwAZAEADADEAIR94pwZcBwZcM4EzkJt58zcqOrzrXocVI1vfYNv xReAL9TgAt0aNlQK4ws1hEDwgEINwQOqoXY1A/HAO5FtCLZmFzLdMHAdAuug/Iq3O6DVgrX3TC7M uC9Y+shPiyXRBSnx6asLTnUBoVyxfzGncAqMfBJmPjKyOAtiejnJERQhxnkP8wynuqyoiLaTUFBA wIFIC9KUnbTYTpqykxbZSVN20mI7acJOWmwnpOyEYjshZScU2QkpO6HYTkjYCcV2hkR+xT8wmfMB L8ehwlKIPC96Nc+Fs6Kid/OBDlM8H9ty4ulENCPyvujrPPJz4E9ZS4utpSlrabG1NGUtLbaWpqyl xdZCxloothZS1kKxtZCyFoqthZS1gK2tOrdO8wnPp+bLT+6K2Kbv5rLLRt49dedrxC4b4+MMs8sG bmYF7LJR/RlmFydHUPQGpsPD7MJu9ArYxfEwu/A9IwXsEtlJi+2kKTtpkZ00ZScttpMm7KTFdkLK Tii2E1J2QpGdkLITiu2EhJ1QbGfILhtFjzwvesDGyPO86AH8DANml42a53vRA5gWD7MLuzXHBNED mBYPswvfWlLELrG1tNhamrKWFltLU9bSYmtpylpabC1krIViayFlLRRbCylrodhaSFkL2Np4IUeQ Q4JCiMcIxjXtm5Bs+I/587HTV5xAeLiTTsCist38gqdMsTW88S/PotmavJDJGIzUrqKybEw3WFYm Z2U5rPVpG037tvGsT3wNviRqFD3rUzwNFF+DLyJZ6+U0yF3w03ysntdM8ILf8YJ9ueRffueEL5Fr dGPonYhwL0IK1YMrLCGaeYF7ZUpANO8i6mBZAcEkF7izZqoY4yrGOVWMcRVZAUE0cRVZAcE9F7hr JwQCRr8MOVoPrrCEAOISd/iUgADiMuq7WQEBxCXmgUwVY1zFOKeKMa4iKyCAiKvICgggLjFrJATC hDQcBPQ36ZgJU9REppIUkIlqRAtZAQHEFaaYTBVjXMU4p4oxriIrIICIq8gKyFw3ke6gFaKLmxlL YHxiLdc3ZH3jksX9rcVSmaVH3vTeutczf+2ufLJwXYclRCz1uVnOHSFoL1cr179bLpzZ4lroCjZT zc3Vtcv3XrrXrqSyrtitkNQePo1mOu/tG6bb+ieXEIrmTr/fF3sWxY3+Orpc3vE17tlywWZxOWyy YIzgB5SghpRAQ0qAIi4pvS213qwmeERNLiajcuNlulgulWEOSRSLeFExg6SUj7HycUb5GCtPF4tI UTF3JJUfY+XHyeKAN2iCN2hy7RiVGy/TxaLhFHNGolg0nGLGSCkfY+XjjPIxVp4uFg2nmCuSyo+x 8uNkccATkOAJwOVyVRSzRKJYNBwwRySKRcMBM0RK+RgrH2eUj7HydLFoOGBuSCo/xsqDi3jtOExM zPXydmbHXY/4954322aeP4muJIWnvreVmYY21MSDJ0MZhQ+egowhWNiReQX/Nv2I8olgBThIJvia T1iM8o2T6PdeeBt3T5ifhOkH/zwJfw+UhspPxKd83PQQDfH9IUkkOEIYiUXgZSwigiYjob6LJUTc ZCSUk1hChE5OLWNUyzi3ljGqJU9CORmjWvIkYj8GxJGSoAgQmg8IRYDQXEAoAoTmAkIRIDQXEIoA obmAUAQIzQWEIkBoLiAUAUJzAQEECOQDAggQyAUEECCQCwggQCAXEECAQC4ggACBXEAAAQK5gAAC BGJAJNPkTDvuwilOZ4MmOBs82whmJRs0u9mEkxtNnHpllKNrIeXkTB8sz1muwydbkkdvIrZJPkV7 d3/LM5a5u7he3/j862whF3R4IoJyo9vlxg2ncKsod2LyZjCjy0lZmKrF1F7eL9ZBAmKECYiihhmI ohdlLlXvRhPV+Kl5gqGMjJBA2MAclZURIWhglsrKiCA0ME/l1TXGdY3z6xrjunJlRCgamK1y6jrG dR3nyASEJSGMn2qrGTEBUSRmvMyXEiBFUvAuX0o+hVYxfeXWOE7UOC6ocZyoMV9KPsNWMZXl1Xic qPE4TyogNB5piNIygReQWiRmvMyXkoDpmNpypCRgOqa33BrHiRrHBTWOEzXmS0nAdEx1eTUeJ2oM ryI66Xl3LJ3yb835XNDCnPzX6wvGF/Olza9nHiONn8j1cn1nXrvT+VLRjtg/IHKxs1e/6XBE1b7Q dL4U5CMYKdz8w6V63m9nL4jJJnZr/sSf6+J6VFEoZnrBg7DMCaFrdyGL7OCQTfxDeP5H1Q3XssHW XUvVHI2ODNd1wdYGVLdGoJguwGBEtX7fHpkeuJ5lgq57+nBIdXtoDxTLsVx14ClDj5UbluZmz/+g SuPjPuhHTvNDGIklLPEp3pt+a/6vO73jZwjN+TSYfgqqDF+TZN+YK/LcMn03PCAof1mYt243eE/7 L8Rn09m5i1fiiG0uiOUS/861Z95MzlXZTXz/xIzNYO3lLZsGs8ms2CEl7sjOdyMhv0/4C+B7P0gy J1enLy5ev53++vrk9OmLLvm1S86fkQk/VigaJO0I2sGFpj/8wMR+4HL8nN/47NWpPD356uycfeNv r89RPf3vs4uX09/eno7Pfn8qP7okqK5LXr89OX3Laz0sqTW88wd0Xw0r4gYWmXaFrOJvJGKTfzbp sMWpUvLLxcXbs+PLi9Pp5fnlu9OTgxxjXQa58MHUnpu+Tyzx0ZXpCPb63YqZt+3KnCITIPLn+4U/ u16ILTNrsohdGKhLFC9XjrvKUefN5izeEqL8xKs4kcrCRSYS0mLHXJvk+eZnGeBDg6cxQyM4dVu9 qZKKgpcb/Swv+cFPFlL8yOFTfoR1un7mL+5WzBr2C+8A1r0XHW6NrjtXP97/6HfEudS6t/7oy3sJ AvoJxpBwoJ+Rv/8tdW+w0fBz2A53tWId8SlT+NOPzk+yf3FRMmE/TTp89Wq9XJL5cnHNLBXQGUO+ 12A4GjSCTry4iZAN+Ruj10/BHRspQbbMYc79XdTyZ10iPSycKt4qten9XQQDu198ChewH1Hjuer4 KhSIfmHF0XdxajdD1GvXX/v3jPX5VX/Nl9zW0VFI09nwI8E95iLmJn9m+0fijwNu5s65PE6tRgT/ cEXBwKAPB7Y3sMyhZtpDyzKoCqBZuuHYLgxNOrCoY2g6Nft9Y2hpnk11nV2qusvuYoMJHZkDW/M8 2zAUj9qON4TswNCCsfGA0oIyMd+Qs43gTTtc6bTCm/zz3nBkicgP3kmW0SHvkO9Ek92ZDVefiXPd YyxrztlXn41TPRak7q01d1e99ezW9UmH6ZlM1p83av+G9MiG9m/+mEwm79mPkw9dwr9uB/x7h6jk D/Y/G5sO62mevB/0RpMPh7KC+Kq0HtbN0i+UD/EreSN83puELDn/UzWeDxzyD4o90kxjwiG0HX9Q DhpItPRimJQQpt5B5rXYUaNqhlnYqs+phrUUaaJlSmmgKbUDjbYYZ4ABLHkVcd7bXII4A0Xkn/xl WwMcZ800JtwB7XgDUJwNa8dZEqaacQb5cQYtxZlo2eALxBk8KM7qjdL+xj26Y+NKsDeITlVNrzYs 598ZjMOe41murSmWZ+iW4Zoam63Z9mjoGUODTdM00wCgQ9Xo901vYHrqyNEUbaAONYfNzGxHNW1q G0PF8xTXM+lIsfSa43CBdRUH3oK7eY8bUf6qp0P+ofB1PfLu9JVKnkrJLlksF3f+WnkmZ3IH5Plz Gb7B7z8dHLJfnvJ/n3i3y80TZ9AlDhW//otLP+E/bgaTvsFickP5pyh8JgpZEB8ILikJpcVyTT5P 1pP+xlzNzMV6yhozWWNDJos/woD5f1BLBwjQCydm3JMAAKzyBwBQSwMEFAAIAAgAWHxWUwAAAAAA AAAAngEAABgAIABfX01BQ09TWC8uX3JiMTQ3ODIucGF0Y2hVVA0ABwjMcmEWzHJhqs5yYXV4CwAB BPUBAAAEFAAAAJVPy0rDQBS9iYiKm250nY3LzCQx7SQNLtKaARdF0ILuyphM2sG8Opm0/oobF36N X+D3ONWA0JUeuK/DuQcOHJ4fgQkwY6l1e289Wj12HJzo8gCMQk99G2/wJ8Tz+d3P9v3xoetzT2L2 /CvARVqXiDVNwVHJFcuYYuPn2fWN4uXDiktOZV22Oy+m2xXA2a9+3THJKiUqDk9NIVrlOO+GuRiQ lVLNGOOsXS6rzpZ8I/i2RbxDgrEWMVkibYIldn0SeDgTeY4l2+LFAP3v8/g06YMafbCDvaCbNXac wI1GLvHS1MkiKiTP65fInU5oQujE9oeBZ/sJTewgvgxtl4R+TEkS+qMhfAFQSwcIk5ZlWAYBAACe AQAAUEsBAhQDFAAIAAgAWHxWU9ALJ2bckwAArPIHAA0AIAAAAAAAAAAAALaBAAAAAHJiMTQ3ODIu cGF0Y2hVVA0ABwjMcmEWzHJhDcxyYXV4CwABBPUBAAAEFAAAAFBLAQIUAxQACAAIAFh8VlOTlmVY BgEAAJ4BAAAYACAAAAAAAAAAAAC2gTeUAABfX01BQ09TWC8uX3JiMTQ3ODIucGF0Y2hVVA0ABwjM cmEWzHJhqs5yYXV4CwABBPUBAAAEFAAAAFBLBQYAAAAAAgACAMEAAACjlQAAAAA= --_002_DB9PR08MB69595EB360DA1D1070A70917EB809DB9PR08MB6959eurp_--