From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93834 invoked by alias); 23 Oct 2017 16:59:05 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 93774 invoked by uid 89); 23 Oct 2017 16:59:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy= X-HELO: mail-wr0-f180.google.com Received: from mail-wr0-f180.google.com (HELO mail-wr0-f180.google.com) (209.85.128.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 23 Oct 2017 16:59:03 +0000 Received: by mail-wr0-f180.google.com with SMTP id l8so5229173wre.12 for ; Mon, 23 Oct 2017 09:59:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:mail-followup-to:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=OstFXghDWWZLvmrjqM8NCfXFkYkujGRIw8y1eOEHsok=; b=M6tnX4LbFzfpfq6Akkz/Y+mgPEY4p5TsRUS21Jx0FWMe52+Ixc6Qt73+k8qlIqvrQz oPGCiqxoMSJEcwkeTSwz2wf/ZR8O6KY9r9vgdTo9x+D3WN0v4ST1R+v+vKHMrzLyE7vU DUnOUt28Wn9Rs2Jhq+3YOSLJCssGWzQDwRPGqtWUsQNJLd0BGeVWdeq/cCXhCe30q/zR tkiFqPJ/uRA0PraPrRX9nrNC9yMB9sIQJnXT1LXB0fDHBLtURZiiWVJWq9Or9wreUDSN IyYLvIrjkJojxSaTAJjWw7jzMD8SWCeFg3aR4i1Xj1XZk9YxymUBmaY5wAsEtiQ/ybiI gNXA== X-Gm-Message-State: AMCzsaWbqxK0SksPgmwoj3OHZojvcDhngAUAKcMvwz4q2jfhoN7Ek+I1 tdORRpKWTw7u8n4PNnyz8I802SCICQ0= X-Google-Smtp-Source: ABhQp+RpYdwOq0EAo0b1UnQdk26LTWOttJNvFmNHwJzRUlszO7VQLWgLWdl+FwWq8zdCGwZFqrcDsw== X-Received: by 10.223.143.54 with SMTP id p51mr3702499wrb.138.1508777940604; Mon, 23 Oct 2017 09:59:00 -0700 (PDT) Received: from localhost ([2.26.27.199]) by smtp.gmail.com with ESMTPSA id 31sm5615415wrr.6.2017.10.23.09.58.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Oct 2017 09:58:59 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org Subject: [002/nnn] poly_int: IN_TARGET_CODE References: <871sltvm7r.fsf@linaro.org> Date: Mon, 23 Oct 2017 16:59:00 -0000 In-Reply-To: <871sltvm7r.fsf@linaro.org> (Richard Sandiford's message of "Mon, 23 Oct 2017 17:54:32 +0100") Message-ID: <87po9du7fx.fsf@linaro.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-SW-Source: 2017-10/txt/msg01502.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 8110 This patch makes each target-specific TU define an IN_TARGET_CODE macro, which is used to decide whether poly_int<1, C> should convert to C. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the target C file. * genautomata.c (main): Likewise. * genconditions.c (write_header): Likewise. * genemit.c (main): Likewise. * genextract.c (print_header): Likewise. * genopinit.c (main): Likewise. * genoutput.c (output_prologue): Likewise. * genpeep.c (main): Likewise. * genpreds.c (write_insn_preds_c): Likewise. * genrecog.c (writer_header): Likewise. * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define. * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise. * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise. * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise. * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise. * config/alpha/alpha.c (IN_TARGET_CODE): Likewise. * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise. * config/arc/arc-c.c (IN_TARGET_CODE): Likewise. * config/arc/arc.c (IN_TARGET_CODE): Likewise. * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise. * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise. * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise. * config/arm/arm-c.c (IN_TARGET_CODE): Likewise. * config/arm/arm.c (IN_TARGET_CODE): Likewise. * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise. * config/avr/avr-c.c (IN_TARGET_CODE): Likewise. * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise. * config/avr/avr-log.c (IN_TARGET_CODE): Likewise. * config/avr/avr.c (IN_TARGET_CODE): Likewise. * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise. * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise. * config/bfin/bfin.c (IN_TARGET_CODE): Likewise. * config/c6x/c6x.c (IN_TARGET_CODE): Likewise. * config/cr16/cr16.c (IN_TARGET_CODE): Likewise. * config/cris/cris.c (IN_TARGET_CODE): Likewise. * config/darwin.c (IN_TARGET_CODE): Likewise. * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise. * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise. * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise. * config/fr30/fr30.c (IN_TARGET_CODE): Likewise. * config/frv/frv.c (IN_TARGET_CODE): Likewise. * config/ft32/ft32.c (IN_TARGET_CODE): Likewise. * config/h8300/h8300.c (IN_TARGET_CODE): Likewise. * config/i386/djgpp.c (IN_TARGET_CODE): Likewise. * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise. * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise. * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise. * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise. * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise. * config/i386/i386-c.c (IN_TARGET_CODE): Likewise. * config/i386/i386.c (IN_TARGET_CODE): Likewise. * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise. * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise. * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise. * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise. * config/i386/winnt.c (IN_TARGET_CODE): Likewise. * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise. * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise. * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise. * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise. * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise. * config/ia64/ia64.c (IN_TARGET_CODE): Likewise. * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise. * config/lm32/lm32.c (IN_TARGET_CODE): Likewise. * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise. * config/m32c/m32c.c (IN_TARGET_CODE): Likewise. * config/m32r/m32r.c (IN_TARGET_CODE): Likewise. * config/m68k/m68k.c (IN_TARGET_CODE): Likewise. * config/mcore/mcore.c (IN_TARGET_CODE): Likewise. * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise. * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise. * config/mips/driver-native.c (IN_TARGET_CODE): Likewise. * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise. * config/mips/mips.c (IN_TARGET_CODE): Likewise. * config/mmix/mmix.c (IN_TARGET_CODE): Likewise. * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise. * config/moxie/moxie.c (IN_TARGET_CODE): Likewise. * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise. * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise. * config/msp430/msp430.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise. * config/nds32/nds32.c (IN_TARGET_CODE): Likewise. * config/nios2/nios2.c (IN_TARGET_CODE): Likewise. * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise. * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise. * config/pa/pa.c (IN_TARGET_CODE): Likewise. * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise. * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise. * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise. * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise. * config/riscv/riscv.c (IN_TARGET_CODE): Likewise. * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise. * config/rl78/rl78.c (IN_TARGET_CODE): Likewise. * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise. * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise. * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise. * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise. * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise. * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise. * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise. * config/rx/rx.c (IN_TARGET_CODE): Likewise. * config/s390/driver-native.c (IN_TARGET_CODE): Likewise. * config/s390/s390-c.c (IN_TARGET_CODE): Likewise. * config/s390/s390.c (IN_TARGET_CODE): Likewise. * config/sh/sh-c.c (IN_TARGET_CODE): Likewise. * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise. * config/sh/sh.c (IN_TARGET_CODE): Likewise. * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise. * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise. * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise. * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise. * config/sparc/sparc.c (IN_TARGET_CODE): Likewise. * config/spu/spu-c.c (IN_TARGET_CODE): Likewise. * config/spu/spu.c (IN_TARGET_CODE): Likewise. * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise. * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise. * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise. * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise. * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise. * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise. * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise. * config/v850/v850-c.c (IN_TARGET_CODE): Likewise. * config/v850/v850.c (IN_TARGET_CODE): Likewise. * config/vax/vax.c (IN_TARGET_CODE): Likewise. * config/visium/visium.c (IN_TARGET_CODE): Likewise. * config/vms/vms-c.c (IN_TARGET_CODE): Likewise. * config/vms/vms-f.c (IN_TARGET_CODE): Likewise. * config/vms/vms.c (IN_TARGET_CODE): Likewise. * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise. --=-=-= Content-Type: application/x-bzip2 Content-Disposition: attachment; filename=in-target-code.diff.bz2 Content-Transfer-Encoding: base64 Content-length: 5535 QlpoOTFBWSZTWTFTllgAOr7fgEIwWP/////n3+T////4YBd+D6HLR8AQ1XTX oXSljoFEKVAqiqVUkVB9sqlUSVSlSCqIQKIdY2GTQip+ap6U9NNU/0mqZM8p E0YCYEZAAwhgARoGgJ6iAiT1D2qAAAGnqA0aAAAACNVHvVQAAAAAAAAAaAAA AqT/9VVAaMmgGhgmgMgGTE0wTQyA0aGQRJCCAJppBk0jTQyU/QIJtTxQ8p6T 01DZT1NlApSgQJkImTEp6jR6nqek9QaAGRoNAxA8p6i6Iu2BIN0+0FQKzTbG fvOb6D1Yt/ewlpcPVhJpRIEisigN37lB7igR7v7faWhq7taQ+WxY1y3H0w0m DsBAKFFdP6Tif53ymt9FOOENzMEP+uzggubW2Kf9yQgQWRJCSiLVjb4+8CAa oP8oKjgPfFQJ8qofJUNVQ15k4xWZSPbhPfl6lUVoCL4q+eIKFAIsUF8BiZER sk6iqyIo+ErzXXKmgahyhJJDtAAHuyQUH+oP5xl+6eV/TA9b4dkYDpBTfFX+ SERHZAP5/MKge75Z57fNe3unj89/nxeWhWiFhnrIEUlmiGpQKREO4JiADvqK CVs1BYWhUNXdUoYYSKFWiZsCzPZAoeZrYWIBiMVlrWeeLGLZVlChUD8ez6EP KKgdEDiCBzKhifBNaV68p3EeeKyYqQk7PJcVHzRUHbH8kUd4FLiKoGoqNgpV MCWtTZF2P9wKHv5PyzTJBe/fmYzasWA+Pn+wFnJy/Lm4pyywBXxILnZFG0Io 8I0M7RkQiRRoSIdsLXxq8fcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANiEd38642ONV3Qerx6Wv1zpFGdO gnz7mbNJsVoCEf0wabkUe5FH9X2Z84bBU4NrIowdQKompHn+1c0Fv3Io6h2A eCqrIgAQ+T6p0PrZUKaopqim6JVJ9ArQIBExKsjEDEyPkQfkWGaVAMGMGMGB t28R8/5+V82ah+EAP8Zzy1Uev2enj6cJ/QTpmSh+9Zp9aQ9qoYIIKgQVAsIi M13J7fS7/kE9x/l7vcqFAIE7oQb4RKbkA3MSC+5jS1Vq1CJoWYCUUWXW2KhJ JNL2MQvVFFFJa0pqqa1KAtLGTpTZheii+VWJAqVUWqptZohampeqkx6P4yoe qoaRojYqGiBuKgQH47oexoH0PIPVJJ627Z4+301VVVV1tjFqLWRvzwXrhu38 K3wczMys82YE0GZlaDmZmVnmzWOGzhw4Y4ZPF8zvHhOElVUlVUnF46PVzdpZ u5uTgbbZJLPubu50pvnJJxaf2Y9pENXJpyHJs2dgMeb7HNzcD8QG/mDwdp9a h0iqaREqc4JrCRGfxkT0oo8b0KgbxUCdbobp3kMGJUzEaOgSLSYGfIRzZE0X h5HEYkutxyWJ014Xa41fyrqLr8LQsrOb116ltgMr8efjUXS9X3l5eZDlsai1 QdDIs2SIwomkeGzKNd0940ykUklhSoMOI7DmcA4ChWLLOApoDHNqWmDeUbDj R5xhMOndON9XXEZ23VdYvac4rr1WvezZSL8dKXRZsV04lgYy2G0yHUaKK5Ei 5KmBV9Fm6uVDCIUpB1QbiGCapaRo6hIudICmISx0STw8jiKJdbOSxN04wnZf V4MoXRtsNTWQfPUtsBlfjpjUXS9X3l0zIc5bJe0uuigacbByzaKY47+bLn5p XkDjXHya45VVVVYPEQXJcKKxFWxTEfGAlQEyghUUZES/Tle0lyqjGglMaqHY IL7BAD1Ie0kkIP8RBcIrYcX7Uc6vWxfMsjaMq9SxHdj1Y4BQHN8jZ2MGmzq4 dXVwPkdJJJ2scnxdiFmOHvafFjq5iuTZ1dbSSUNVJJQ2UHcMGmzSIubHIYOb H0sdGMGDsYhwGOjHc4adjcaQx1kk2qNlGMbMHix8WOiEENXihSHiMHYrAHRj QxDxQisHkNIeUYPBjkMR4WRyWLWy9tl6RkcR9qKwvS1uQKgci5vta3NvarlU L7CC0CoHqv7MWta1rWtSGBUC9MIXvazCFrWswha1mmzTFYMVobDgFQKbA3kh JISSJlkZZVyLjGYzKZZV8lQ+0qGpUOLHJac2GXxnTc3bW8kZdbDSZGGTTHDi ttVQ6qh+wQabWZjOccMjmvsn4yocyofSur6lnWbkp4ioFnM4F0s7g37w33d6 5Oml2q8fCSZll1XFweiocqjlUehUOFxxOFQ4JduRLNjVNU08rbynJyTW8ZsF Sa23kzResSRJEAjYNou0XsFQfgv5CobbdzSNI0Orx7Dffe2jWVAtRh2hueFz RM87Ohm00lJGgwYMF24WtZbXgaZOiGEuoIWEJyhKlwVA5CVWVSvtRRpAQ6Qk JEjB7MSSRjrqDI9gD6/iO+1WlrWsWtZppRwGjveZo5CEwxI8+fFLlzIVAsuM VdDATRpP8KrAoNitJTsTI1cwwHccZDAVKKuGDoxkppOGjQ53O3npr378XPk9 6ofBG1quGmh0CzZMjeWS8LN0oKLuHYX2789MssNttGN3l5al+VzsW23Z2c7s cTo3RFAaMULQSiI3ZYIm8VAw0t0gyLAjCBdIiRliAORYLQM3waXe2cObZMkL pYMXvukCVvsy1Vx/oKga5EwjMYxjGGKssk6Xqk6qh4LQ+AN8knwDRUJCRWDc zNXfT1Gw6vEN83NjaxUOq5XDdx21zleI51HDMyEiCoYeAOCBYenS57Qc3Fkz 2G1xhQQ4CoFWqrsq02ogGWQI4lREKgDyLmyMvRcpofWWkdF9RZFdp0rgMJa4 X1DCdonkeZlapfK9y9GQJFaHdDue9UOtvOZy6O3Xq6zrc7nycjkcro4jJ1c1 zTPPUNXV1NUNcw0DRNA0dHRzTMt7e3bnOcOns9miodLnRz5nOanhUPCK8lQ2 VDmqHkqH8qn7kT9SKP3e+QhEhAkkYMgSIwJGMGMkkjCSSRiSEWSSBGD/AVA/ Akl8/0ZmfjRXu2VD8pUOURyVDJD8/6fv/M1VDR/tv4lL7ZS04rdUNJS/N/o7 x+tUNv+q8v0Khx/3p2eMVBCl+7TduoBHjwKYijEUbn9hUDde4dPubf87Vw++ Us56hG7XRUvmVDj9XbroRa/ToVc8DPZz1AV5kAENztFQNIijy6dyqO4VAs1p 1NNTVpBf1P1sKgd0MbsOgqBy7VuZbzYZGxFGn0qn4QfSi2Rfy+bBVUYh+NBa xGCXPrKt9EKHu9bkauMBdN3aeQVA/Wjvud51puKgeor/Tk/e19X9S8PohCCV uTEKYCAAiL7AUi5m1JQkkoSSUCgoVgsiD3poxmVcHlg5j9Pc/1ry7jW3v33+ A+ugchF27iEg5gaG6nPI5GxlEBn/DTpzkkmyiVRKopCIfeK4QXJ5H5OS5kJF vmR7Vrcdq7p3tB7rlFea5WHJhgoeLWxCzJJJVCH3jmDxDs97NyHhueoOdYNf 97iOw/QUvTMYIZlmZkQzIQV+Sd70HR+xyNC5EtC8G0kAhAtC0G0JBhEtC0G0 kSDcFAYMFblovgvC4HXLpToklw+b428la3wso5l4+APIDOcWkQRwFPFyLh0E QPCPgoW1phv7czMNUDa1sXUYu5dXkK7g0chDMduTnEKhCPcwyG6UFMG+ZutV VTVVfZokiSJkgt+0QEerC3/qohxqYAvhsBk4FQNW1efpQbHkMVHFqpYqW4C8 vTt7dp6yly1ivlC0UjnVN5W6/U8uOBkpe3d8dVp9+gPBjsRR4Zakvw0/fnJJ 8OjTvB2vF5GhrRrjjoVjBWMYLYwYtjBWjSGHA4bIbws7lwO3De53bkNmN9ev XmXFayllUyUuZm5IKF3ar0QXg7c33tHPc0ogbNwWTd4L399B4w5/N59/jufw DBcL1RXuOnwLtTzegqXC3FBbCtmIWrmJczegrkpbGfXcaNbcbtpa1rFrWsHE QA7RBbgahq4vaoGm1xYqGdDJPj47P5pS1tl7raw5CKAdqIvjCegdQFC3zDo6 W4Pqu2HuQjaMiUDtQXaKjJJJJJJMwQNMiT0RWSldbS4SS4sdvw1sykZHYVQy MgyOhkfn778Agub+7vQycx/S71e2UuYC9b42WWIyl3WoNV8S2sLL1uIU9x4t i+rYq0GPyZx1hNX9xBadAkkgAHevL4HJ0A8HAgvpcA9o3/EefHh9mPX6RBBN ysiueg+xCz3uuXrWRZFjy1EBH38XVEPWB77XR4dq9B5O5Dghd8/Y13MRPb5X aO3sU1AQ9I7ld4OoFnYPV7DsYSYAeXmHPg41LSSYcgiMv2YrweF4WtvUe3nH F+tfB8tl7XqOvQHZZ8gMfWiLUUCIdfLYfR5BBc3qM08DZanqt76d4q9LpGSJ a3mO+41OkQ4gTdRVUVW0VAsrTmO4BzNz8T5B8CPF1dqu3Ue1+EcnPbvjWt1r e6A2GA6hqPNveSSMHaxCm78GSXHB3iFDlJJAx1W3OxM47ax9wNZpsZhmGYZh mGmXVaxWyHs3c1g4zCJfZpOeZnnFe3TZUM6HkpcqqOCw2VlhslBpkpZXJi3W hoXpvYFYrizIyMoBWgpjPQhQURB7RBcUOaGathPPyYxxEOiwHmOA9o/Ygvmy kkmQFdRrtYpsVwBsUOO2pJBFsKoBoijQU5EymT2ve2d/XZZRA+MQWwaD793C bR8bol3afwgqMPX9zh/mgvZ9OEzDjsFdw+Hhyb9/nva1rWta3wjuEO57RBfR 6Bujoviq1WsHmfPdfxIH0FqXT1y8rgG23YN5JIocWh5wdr39EDoOxWgLbgdw wCvBDkDZ7EyMmw5oj2stEFxFcxjGMYKQ+nSiqoqqUKfAdo4yDm8gbWydSPTt oqzIrVpHjm8XmebtXxqm9ubey35kq6j39ueZmTdTzVyR9h8KjQudLonFXBZH pLoq24L3ZmZkWtPnuxvcLojfhbTVbtruMZ6aXzqUZwuEt08WlQWyUOSxLSoL FQ5LEtKgsXFKuLeN46rdS7VeiTT5dF6F1HUh1kdegij5sxBe53u8Vw3ZvU1W 2xvkIZO2SSCchWmgc3n8Rq7wGsnvUQMx4Fm8d26n42PsUQNTY6MrdEUd/O3B w5IQKlF2PJUzMzMrMy8rOtOxtCZjal1HwAIGQA9HW8uPDU5JtdLKQzyWt0tV Oq4lLpCmRWOeXA9irzvjGDUq4MXPjm77Whe/uvNFazp4Nm9h0uDh534kV0OL qXrFdo4QPS0vZZdkVi7XoiCPo70P1fOBk6unaPCyC7Ae21q4uaWHkLEo0Gw7 ngPdJJIxDuELvJ3oc9ws0qMppbi3+idY0keL6UV5LS9Irp5qvG+LMWZOsZxb wrkitkVhghT46RftF9MSSSCSSSQSSkpRIRklGCSli6Kh3XRaarD1vUc89l6v eNjTGYzGR7lxad0D20h3Lzvu/B+7/+LuSKcKEgYqcssA --=-=-=--