From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10781 invoked by alias); 15 Apr 2013 10:38:52 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 10770 invoked by uid 89); 15 Apr 2013 10:38:52 -0000 X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_CP autolearn=ham version=3.3.1 Received: from mail-ie0-f171.google.com (HELO mail-ie0-f171.google.com) (209.85.223.171) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 15 Apr 2013 10:38:51 +0000 Received: by mail-ie0-f171.google.com with SMTP id e11so122907iej.2 for ; Mon, 15 Apr 2013 03:38:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=jCYQsEpK5u4iwEc0e5AYkXxj0AYICljR35ptjRVYDOc=; b=QsucQ4d5pU/vpAcWvSU7xzeiw1z75pfkFwL9lPzUzj5mlDCyUQwgOZGCDviI8fOnOP jVUByD8W5M5nmqjYK92hS40pz3SjA7e4bqxYHBZXlNtSlcAO86jjOjkIWVeF67T64D/S jOtZO49I5nIFUGBs2aJOPD8VoGsJYMUzDJ0kcXCq7aBqi3IGHNV2lVbM/7dr+y0XJSiP /ofFyXRRdGIXhUC94oMVpUZzn/yi+w71yr28KrffKYCxr4lUl3WER4wh0l0NVJHpxNPt d9bU4ez+TX0YLZ2R2WVHox7MbMq5A9uRlnktAfeo1uTJOny9mSELFXjTFm0evA8z5RCJ tnNw== MIME-Version: 1.0 X-Received: by 10.50.196.234 with SMTP id ip10mr4969117igc.27.1366022329324; Mon, 15 Apr 2013 03:38:49 -0700 (PDT) Received: by 10.64.100.174 with HTTP; Mon, 15 Apr 2013 03:38:49 -0700 (PDT) In-Reply-To: References: <516BCEE5.9070809@linaro.org> Date: Mon, 15 Apr 2013 10:38:00 -0000 Message-ID: Subject: Re: [PATCH] ARM: Add Cortex-A15 optimized NEON and VFP memcpy routines, with IFUNC. From: Will Newton To: =?ISO-8859-1?Q?M=E5ns_Rullg=E5rd?= Cc: libc-ports@sourceware.org, patches@linaro.org Content-Type: multipart/mixed; boundary=14dae9341213b1f5ab04da63db9e X-Gm-Message-State: ALoCoQmSzz4HYb1Q6zCpsN81ikOi33xbXQURx0GBPLHs1VrnSAmdq2934AcW/9SCjmdh4dfhhTDi X-Virus-Found: No X-SW-Source: 2013-04/txt/msg00061.txt.bz2 --14dae9341213b1f5ab04da63db9e Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 505 On 15 April 2013 11:06, M=E5ns Rullg=E5rd wrote: Hi M=E5ns, >> Add a high performance memcpy routine optimized for Cortex-A15 with >> variants for use in the presence of NEON and VFP hardware, selected >> at runtime using indirect function support. > > How does this perform on Cortex-A9? The code is also faster on A9 although the gains are not quite as pronounced. A set of numbers is attached (they linewrap pretty horribly inline). -- Will Newton Toolchain Working Group, Linaro --14dae9341213b1f5ab04da63db9e Content-Type: text/plain; charset=US-ASCII; name="memcpy_benchmark_a9.txt" Content-Disposition: attachment; filename="memcpy_benchmark_a9.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfjieu1z0 Content-length: 11456 YmVmb3JlOjg6MTAwMDAwMDAwOjE6My44NDczODI6IHRvb2sgMy44NDczODIg cyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA4IGJ5dGVzLiAg fjI1OC42MzAgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjg6MTAwMDAwMDAwOjE6 My4xNzE3ODM6IHRvb2sgMy4xNzE3ODMgcyBmb3IgMTAwMDAwMDAwIGNhbGxz IHRvIG1lbWNweSBvZiA4IGJ5dGVzLiAgfjMzNS40NTggTUIvcyBjb3JyZWN0 ZWQuCmJlZm9yZTo4OjEwMDAwMDAwMDoyOjMuNzYzNTUwOiB0b29rIDMuNzYz NTUwIHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgOCBieXRl cy4gIH4yNjYuMTk1IE1CL3MgY29ycmVjdGVkLgphZnRlcjo4OjEwMDAwMDAw MDoyOjIuMzYwMTY4OiB0b29rIDIuMzYwMTY4IHMgZm9yIDEwMDAwMDAwMCBj YWxscyB0byBtZW1jcHkgb2YgOCBieXRlcy4gIH41MjEuNTk0IE1CL3MgY29y cmVjdGVkLgpiZWZvcmU6ODoxMDAwMDAwMDA6NDozLjE4Mzk5MDogdG9vayAz LjE4Mzk5MCBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDgg Ynl0ZXMuICB+MzMzLjY2NyBNQi9zIGNvcnJlY3RlZC4KYWZ0ZXI6ODoxMDAw MDAwMDA6NDoyLjM1NzQyMjogdG9vayAyLjM1NzQyMiBzIGZvciAxMDAwMDAw MDAgY2FsbHMgdG8gbWVtY3B5IG9mIDggYnl0ZXMuICB+NTIyLjU3NSBNQi9z IGNvcnJlY3RlZC4KYmVmb3JlOjg6MTAwMDAwMDAwOjg6My4xMDU2NTI6IHRv b2sgMy4xMDU2NTIgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBv ZiA4IGJ5dGVzLiAgfjM0NS41MDQgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjg6 MTAwMDAwMDAwOjg6Mi4zMzkwODE6IHRvb2sgMi4zMzkwODEgcyBmb3IgMTAw MDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA4IGJ5dGVzLiAgfjUyOS4yMjMg TUIvcyBjb3JyZWN0ZWQuCmJlZm9yZToxNjoxMDAwMDAwMDA6MTozLjg4NzY5 NTogdG9vayAzLjg4NzY5NSBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVt Y3B5IG9mIDE2IGJ5dGVzLiAgfjUxMC4yODcgTUIvcyBjb3JyZWN0ZWQuCmFm dGVyOjE2OjEwMDAwMDAwMDoxOjIuNTA2Mzc4OiB0b29rIDIuNTA2Mzc4IHMg Zm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMTYgYnl0ZXMuICB+ OTQ4LjM4OCBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjE2OjEwMDAwMDAwMDoy OjQuMTE0NDEwOiB0b29rIDQuMTE0NDEwIHMgZm9yIDEwMDAwMDAwMCBjYWxs cyB0byBtZW1jcHkgb2YgMTYgYnl0ZXMuICB+NDc0LjMyNSBNQi9zIGNvcnJl Y3RlZC4KYWZ0ZXI6MTY6MTAwMDAwMDAwOjI6Mi41MDYyMjY6IHRvb2sgMi41 MDYyMjYgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiAxNiBi eXRlcy4gIH45NDguNDc4IE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6MTY6MTAw MDAwMDAwOjQ6My40NjAyMzY6IHRvb2sgMy40NjAyMzYgcyBmb3IgMTAwMDAw MDAwIGNhbGxzIHRvIG1lbWNweSBvZiAxNiBieXRlcy4gIH41OTUuNDAxIE1C L3MgY29ycmVjdGVkLgphZnRlcjoxNjoxMDAwMDAwMDA6NDoyLjUwOTE1NTog dG9vayAyLjUwOTE1NSBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5 IG9mIDE2IGJ5dGVzLiAgfjk0Ni43NTQgTUIvcyBjb3JyZWN0ZWQuCmJlZm9y ZToxNjoxMDAwMDAwMDA6ODozLjM0NDA1NTogdG9vayAzLjM0NDA1NSBzIGZv ciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDE2IGJ5dGVzLiAgfjYy My42NzQgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjE2OjEwMDAwMDAwMDo4OjIu MzM5MjY0OiB0b29rIDIuMzM5MjY0IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0 byBtZW1jcHkgb2YgMTYgYnl0ZXMuICB+MTA1OC4zMTIgTUIvcyBjb3JyZWN0 ZWQuCmJlZm9yZToyMDoxMDAwMDAwMDA6MTo0LjA4MDQ0NDogdG9vayA0LjA4 MDQ0NCBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDIwIGJ5 dGVzLiAgfjU5OS4yMzMgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjIwOjEwMDAw MDAwMDoxOjMuMDk0NDUyOiB0b29rIDMuMDk0NDUyIHMgZm9yIDEwMDAwMDAw MCBjYWxscyB0byBtZW1jcHkgb2YgMjAgYnl0ZXMuICB+ODY4LjE2NCBNQi9z IGNvcnJlY3RlZC4KYmVmb3JlOjIwOjEwMDAwMDAwMDoyOjQuMzk5NjU4OiB0 b29rIDQuMzk5NjU4IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkg b2YgMjAgYnl0ZXMuICB+NTQ0LjYxNSBNQi9zIGNvcnJlY3RlZC4KYWZ0ZXI6 MjA6MTAwMDAwMDAwOjI6My4wOTE1MjI6IHRvb2sgMy4wOTE1MjIgcyBmb3Ig MTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiAyMCBieXRlcy4gIH44Njku MzIzIE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6MjA6MTAwMDAwMDAwOjQ6My41 MTI0NTE6IHRvb2sgMy41MTI0NTEgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRv IG1lbWNweSBvZiAyMCBieXRlcy4gIH43MjkuMzkwIE1CL3MgY29ycmVjdGVk LgphZnRlcjoyMDoxMDAwMDAwMDA6NDozLjA5NDY5NjogdG9vayAzLjA5NDY5 NiBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDIwIGJ5dGVz LiAgfjg2OC4wNjcgTUIvcyBjb3JyZWN0ZWQuCmJlZm9yZToyMDoxMDAwMDAw MDA6ODozLjU3OTk1NjogdG9vayAzLjU3OTk1NiBzIGZvciAxMDAwMDAwMDAg Y2FsbHMgdG8gbWVtY3B5IG9mIDIwIGJ5dGVzLiAgfjcxMS4wMzUgTUIvcyBj b3JyZWN0ZWQuCmFmdGVyOjIwOjEwMDAwMDAwMDo4OjIuMzM5NjAwOiB0b29r IDIuMzM5NjAwIHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2Yg MjAgYnl0ZXMuICB+MTMyMi41ODMgTUIvcyBjb3JyZWN0ZWQuCmJlZm9yZToz MToxMDAwMDAwMDA6MTo0LjcyMjkzMTogdG9vayA0LjcyMjkzMSBzIGZvciAx MDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDMxIGJ5dGVzLiAgfjc3Mi44 MTcgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjMxOjEwMDAwMDAwMDoxOjMuNTEy NjM0OiB0b29rIDMuNTEyNjM0IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBt ZW1jcHkgb2YgMzEgYnl0ZXMuICB+MTEzMC40NzUgTUIvcyBjb3JyZWN0ZWQu CmJlZm9yZTozMToxMDAwMDAwMDA6Mjo0LjkyNjQyMjogdG9vayA0LjkyNjQy MiBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDMxIGJ5dGVz LiAgfjczMy43ODUgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjMxOjEwMDAwMDAw MDoyOjMuNzAwNjg0OiB0b29rIDMuNzAwNjg0IHMgZm9yIDEwMDAwMDAwMCBj YWxscyB0byBtZW1jcHkgb2YgMzEgYnl0ZXMuICB+MTA1NC42NDAgTUIvcyBj b3JyZWN0ZWQuCmJlZm9yZTozMToxMDAwMDAwMDA6NDozLjcyNTY0NzogdG9v ayAzLjcyNTY0NyBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9m IDMxIGJ5dGVzLiAgfjEwNDUuMzMxIE1CL3MgY29ycmVjdGVkLgphZnRlcjoz MToxMDAwMDAwMDA6NDozLjQzMDQ4MTogdG9vayAzLjQzMDQ4MSBzIGZvciAx MDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDMxIGJ5dGVzLiAgfjExNjcu MTQwIE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6MzE6MTAwMDAwMDAwOjg6My43 MDYwODU6IHRvb2sgMy43MDYwODUgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRv IG1lbWNweSBvZiAzMSBieXRlcy4gIH4xMDUyLjYxMSBNQi9zIGNvcnJlY3Rl ZC4KYWZ0ZXI6MzE6MTAwMDAwMDAwOjg6Mi42NjkzNzM6IHRvb2sgMi42Njkz NzMgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiAzMSBieXRl cy4gIH4xNjY4LjQ3NCBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjMyOjEwMDAw MDAwMDoxOjQuNTIxMzYyOiB0b29rIDQuNTIxMzYyIHMgZm9yIDEwMDAwMDAw MCBjYWxscyB0byBtZW1jcHkgb2YgMzIgYnl0ZXMuICB+ODQyLjExOSBNQi9z IGNvcnJlY3RlZC4KYWZ0ZXI6MzI6MTAwMDAwMDAwOjE6My42ODIzNzM6IHRv b2sgMy42ODIzNzMgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBv ZiAzMiBieXRlcy4gIH4xMDk1LjgxOCBNQi9zIGNvcnJlY3RlZC4KYmVmb3Jl OjMyOjEwMDAwMDAwMDoyOjQuODc5NDU2OiB0b29rIDQuODc5NDU2IHMgZm9y IDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMzIgYnl0ZXMuICB+NzY2 LjM4OSBNQi9zIGNvcnJlY3RlZC4KYWZ0ZXI6MzI6MTAwMDAwMDAwOjI6My42 ODA1NDI6IHRvb2sgMy42ODA1NDIgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRv IG1lbWNweSBvZiAzMiBieXRlcy4gIH4xMDk2LjUzOSBNQi9zIGNvcnJlY3Rl ZC4KYmVmb3JlOjMyOjEwMDAwMDAwMDo0OjMuNTYzOTM0OiB0b29rIDMuNTYz OTM0IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMzIgYnl0 ZXMuICB+MTE0NC40OTIgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjMyOjEwMDAw MDAwMDo0OjMuNjc5OTMyOiB0b29rIDMuNjc5OTMyIHMgZm9yIDEwMDAwMDAw MCBjYWxscyB0byBtZW1jcHkgb2YgMzIgYnl0ZXMuICB+MTA5Ni43NzkgTUIv cyBjb3JyZWN0ZWQuCmJlZm9yZTozMjoxMDAwMDAwMDA6ODozLjYwMjE0Mjog dG9vayAzLjYwMjE0MiBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5 IG9mIDMyIGJ5dGVzLiAgfjExMjguMzI0IE1CL3MgY29ycmVjdGVkLgphZnRl cjozMjoxMDAwMDAwMDA6ODoyLjcwMzk0OTogdG9vayAyLjcwMzk0OSBzIGZv ciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDMyIGJ5dGVzLiAgfjE2 ODkuMzMxIE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6NjM6MTAwMDAwMDAwOjE6 NS41NDgzNzA6IHRvb2sgNS41NDgzNzAgcyBmb3IgMTAwMDAwMDAwIGNhbGxz IHRvIG1lbWNweSBvZiA2MyBieXRlcy4gIH4xMjkxLjgyMiBNQi9zIGNvcnJl Y3RlZC4KYWZ0ZXI6NjM6MTAwMDAwMDAwOjE6NS44NTQ1MjM6IHRvb2sgNS44 NTQ1MjMgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA2MyBi eXRlcy4gIH4xMjEyLjAzOCBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjYzOjEw MDAwMDAwMDoyOjUuNjg1ODgzOiB0b29rIDUuNjg1ODgzIHMgZm9yIDEwMDAw MDAwMCBjYWxscyB0byBtZW1jcHkgb2YgNjMgYnl0ZXMuICB+MTI1NC43MjQg TUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjYzOjEwMDAwMDAwMDoyOjYuMDg0ODM5 OiB0b29rIDYuMDg0ODM5IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1j cHkgb2YgNjMgYnl0ZXMuICB+MTE1OC4yMjQgTUIvcyBjb3JyZWN0ZWQuCmJl Zm9yZTo2MzoxMDAwMDAwMDA6NDo0LjY4MzEzNjogdG9vayA0LjY4MzEzNiBz IGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDYzIGJ5dGVzLiAg fjE1ODcuMDc0IE1CL3MgY29ycmVjdGVkLgphZnRlcjo2MzoxMDAwMDAwMDA6 NDo1Ljc3MTE3OTogdG9vayA1Ljc3MTE3OSBzIGZvciAxMDAwMDAwMDAgY2Fs bHMgdG8gbWVtY3B5IG9mIDYzIGJ5dGVzLiAgfjEyMzIuNzY1IE1CL3MgY29y cmVjdGVkLgpiZWZvcmU6NjM6MTAwMDAwMDAwOjg6NC42NDA1OTQ6IHRvb2sg NC42NDA1OTQgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA2 MyBieXRlcy4gIH4xNjA1LjExMiBNQi9zIGNvcnJlY3RlZC4KYWZ0ZXI6NjM6 MTAwMDAwMDAwOjg6NC4wOTgzODk6IHRvb2sgNC4wOTgzODkgcyBmb3IgMTAw MDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA2MyBieXRlcy4gIH4xODc3LjAw MiBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjY0OjEwMDAwMDAwMDoxOjUuMzk1 NjYwOiB0b29rIDUuMzk1NjYwIHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBt ZW1jcHkgb2YgNjQgYnl0ZXMuICB+MTM1Ni44NzkgTUIvcyBjb3JyZWN0ZWQu CmFmdGVyOjY0OjEwMDAwMDAwMDoxOjQuMzQ5Mjc0OiB0b29rIDQuMzQ5Mjc0 IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgNjQgYnl0ZXMu ICB+MTc2OC4yMDUgTUIvcyBjb3JyZWN0ZWQuCmJlZm9yZTo2NDoxMDAwMDAw MDA6Mjo1LjY5MjEwODogdG9vayA1LjY5MjEwOCBzIGZvciAxMDAwMDAwMDAg Y2FsbHMgdG8gbWVtY3B5IG9mIDY0IGJ5dGVzLiAgfjEyNzIuOTg1IE1CL3Mg Y29ycmVjdGVkLgphZnRlcjo2NDoxMDAwMDAwMDA6Mjo0LjQ1NzMwNjogdG9v ayA0LjQ1NzMwNiBzIGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9m IDY0IGJ5dGVzLiAgfjE3MTQuNTQ1IE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6 NjQ6MTAwMDAwMDAwOjQ6NC40Njg1Njc6IHRvb2sgNC40Njg1NjcgcyBmb3Ig MTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiA2NCBieXRlcy4gIH4xNzA5 LjEzOCBNQi9zIGNvcnJlY3RlZC4KYWZ0ZXI6NjQ6MTAwMDAwMDAwOjQ6NC43 NzI2MTQ6IHRvb2sgNC43NzI2MTQgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRv IG1lbWNweSBvZiA2NCBieXRlcy4gIH4xNTc1LjAzOCBNQi9zIGNvcnJlY3Rl ZC4KYmVmb3JlOjY0OjEwMDAwMDAwMDo4OjQuMzA5MTQzOiB0b29rIDQuMzA5 MTQzIHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgNjQgYnl0 ZXMuICB+MTc4OS4wMDQgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjY0OjEwMDAw MDAwMDo4OjMuMjYyMDU0OiB0b29rIDMuMjYyMDU0IHMgZm9yIDEwMDAwMDAw MCBjYWxscyB0byBtZW1jcHkgb2YgNjQgYnl0ZXMuICB+MjU4MS4yMTAgTUIv cyBjb3JyZWN0ZWQuCmJlZm9yZToxMDA6MTAwMDAwMDAwOjE6Ny44Nzc2MjU6 IHRvb2sgNy44Nzc2MjUgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNw eSBvZiAxMDAgYnl0ZXMuICB+MTM2Ni4yNjMgTUIvcyBjb3JyZWN0ZWQuCmFm dGVyOjEwMDoxMDAwMDAwMDA6MTo0LjkzNTIxMTogdG9vayA0LjkzNTIxMSBz IGZvciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDEwMCBieXRlcy4g IH4yMzYxLjg5NSBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjEwMDoxMDAwMDAw MDA6Mjo4LjMwOTE3NDogdG9vayA4LjMwOTE3NCBzIGZvciAxMDAwMDAwMDAg Y2FsbHMgdG8gbWVtY3B5IG9mIDEwMCBieXRlcy4gIH4xMjg2LjcxMiBNQi9z IGNvcnJlY3RlZC4KYWZ0ZXI6MTAwOjEwMDAwMDAwMDoyOjQuODUxNjI0OiB0 b29rIDQuODUxNjI0IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkg b2YgMTAwIGJ5dGVzLiAgfjI0MTEuODIzIE1CL3MgY29ycmVjdGVkLgpiZWZv cmU6MTAwOjEwMDAwMDAwMDo0OjUuNDUwNzQ1OiB0b29rIDUuNDUwNzQ1IHMg Zm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMTAwIGJ5dGVzLiAg fjIwOTQuNDc2IE1CL3MgY29ycmVjdGVkLgphZnRlcjoxMDA6MTAwMDAwMDAw OjQ6NS41MTU0NzI6IHRvb2sgNS41MTU0NzIgcyBmb3IgMTAwMDAwMDAwIGNh bGxzIHRvIG1lbWNweSBvZiAxMDAgYnl0ZXMuICB+MjA2NS4xMTkgTUIvcyBj b3JyZWN0ZWQuCmJlZm9yZToxMDA6MTAwMDAwMDAwOjg6NS4yMTQxNDI6IHRv b2sgNS4yMTQxNDIgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBv ZiAxMDAgYnl0ZXMuICB+MjIwOS4yNzYgTUIvcyBjb3JyZWN0ZWQuCmFmdGVy OjEwMDoxMDAwMDAwMDA6ODo0LjUxNjExMzogdG9vayA0LjUxNjExMyBzIGZv ciAxMDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDEwMCBieXRlcy4gIH4y NjM1LjQ0MCBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjIwMDoxMDAwMDAwMDA6 MTo4LjYyMzA3NzogdG9vayA4LjYyMzA3NyBzIGZvciAxMDAwMDAwMDAgY2Fs bHMgdG8gbWVtY3B5IG9mIDIwMCBieXRlcy4gIH4yNDY4Ljg2MiBNQi9zIGNv cnJlY3RlZC4KYWZ0ZXI6MjAwOjEwMDAwMDAwMDoxOjcuNjk0OTc3OiB0b29r IDcuNjk0OTc3IHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2Yg MjAwIGJ5dGVzLiAgfjI4MDUuOTQ5IE1CL3MgY29ycmVjdGVkLgpiZWZvcmU6 MjAwOjEwMDAwMDAwMDoyOjkuMTQ4ODk1OiB0b29rIDkuMTQ4ODk1IHMgZm9y IDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMjAwIGJ5dGVzLiAgfjIz MTEuNTM2IE1CL3MgY29ycmVjdGVkLgphZnRlcjoyMDA6MTAwMDAwMDAwOjI6 Ny40NDQwNjE6IHRvb2sgNy40NDQwNjEgcyBmb3IgMTAwMDAwMDAwIGNhbGxz IHRvIG1lbWNweSBvZiAyMDAgYnl0ZXMuICB+MjkxMy40OTQgTUIvcyBjb3Jy ZWN0ZWQuCmJlZm9yZToyMDA6MTAwMDAwMDAwOjQ6OC4zODIzODU6IHRvb2sg OC4zODIzODUgcyBmb3IgMTAwMDAwMDAwIGNhbGxzIHRvIG1lbWNweSBvZiAy MDAgYnl0ZXMuICB+MjU0OC4yNTMgTUIvcyBjb3JyZWN0ZWQuCmFmdGVyOjIw MDoxMDAwMDAwMDA6NDo3Ljg2MjA5MTogdG9vayA3Ljg2MjA5MSBzIGZvciAx MDAwMDAwMDAgY2FsbHMgdG8gbWVtY3B5IG9mIDIwMCBieXRlcy4gIH4yNzM4 LjYyMSBNQi9zIGNvcnJlY3RlZC4KYmVmb3JlOjIwMDoxMDAwMDAwMDA6ODo4 LjExMDE2ODogdG9vayA4LjExMDE2OCBzIGZvciAxMDAwMDAwMDAgY2FsbHMg dG8gbWVtY3B5IG9mIDIwMCBieXRlcy4gIH4yNjQ0LjQyOCBNQi9zIGNvcnJl Y3RlZC4KYWZ0ZXI6MjAwOjEwMDAwMDAwMDo4OjYuODE2NzQyOiB0b29rIDYu ODE2NzQyIHMgZm9yIDEwMDAwMDAwMCBjYWxscyB0byBtZW1jcHkgb2YgMjAw IGJ5dGVzLiAgfjMyMjIuMjY0IE1CL3MgY29ycmVjdGVkLgo= --14dae9341213b1f5ab04da63db9e--