From patchwork Thu Oct 17 14:50:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Xuelei Zhang X-Patchwork-Id: 1178705 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-106062-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="EMXn8k27"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46vBvC3lZDz9sCJ for ; Fri, 18 Oct 2019 01:51:35 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=default; b=iNo EIIAR14dVgCNPMD7SmgSbejxofMzVY+gw66UqVvelpgc9Ji55KeQOx8MetauZu41 vrbdDUtAuKcjzXEAQ1KwE+1TkwDMzMTSXh22JyUW3OvqrFsxsR2TE3Pr9wz6gXnn O5F5EuTz98mov2cGY0UcqCUD25QhUUqsVsc+40OI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:mime-version :content-type:content-transfer-encoding; s=default; bh=6kBpNcdp1 4BvZq3SuLoPx7WAY/E=; b=EMXn8k27Jd0Am8rJh7reZpnVnRFvbOfw91+LFSHK5 dK/yCTdx7a7q/cECdZH708owQa/SOdIDsdfv4gRFRIbsGsBqXO6nCaoIJUdbwmOa YEJe9A2d0fvwU31qpYyh0gS2KsEURml65vC65ReBJYmk9dVw1J+kV3nI+EYVFhO1 98= Received: (qmail 1388 invoked by alias); 17 Oct 2019 14:51:27 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 1378 invoked by uid 89); 17 Oct 2019 14:51:27 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_MANYTO, KAM_SHORT, MIME_CHARSET_FARAWAY, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy=1225, 1525 X-HELO: huawei.com From: Xuelei Zhang To: , , , , , Subject: [PATCH] aarch64: Optimized strcpy for Kunpeng processor. Date: Thu, 17 Oct 2019 22:50:59 +0800 Message-ID: <20191017145059.8732-1-zhangxuelei4@huawei.com> MIME-Version: 1.0 Optimize the strcpy implementation by using vector loads and operations in main loop.Compared to aarch64/strcpy.S, it reduces latency of cases in bench-strlen by 5%~18% when the length of src is greater than 64 bytes, with gains throughout the benchmark. Here is the result: simple_strcpy __strcpy_kunpeng __strcpy_generic Length 0, alignments in bytes 0/ 0: 14.375 11.875 11.7188 Length 0, alignments in bytes 0/ 0: 10.9375 12.0312 12.0312 Length 0, alignments in bytes 0/ 0: 10.625 12.3438 11.875 Length 0, alignments in bytes 0/ 0: 10.7812 12.1875 11.7188 Length 1, alignments in bytes 0/ 0: 11.0938 12.0312 11.5625 Length 1, alignments in bytes 0/ 0: 10.4688 12.0312 11.7188 Length 1, alignments in bytes 0/ 1: 10.4688 12.1875 11.875 Length 1, alignments in bytes 1/ 0: 10.625 13.4375 11.0938 Length 2, alignments in bytes 0/ 0: 12.6562 11.875 11.875 Length 2, alignments in bytes 0/ 0: 12.8125 11.7188 11.4062 Length 2, alignments in bytes 0/ 2: 12.1875 11.5625 11.25 Length 2, alignments in bytes 2/ 0: 11.7188 11.5625 11.25 Length 3, alignments in bytes 0/ 0: 12.9688 11.7188 11.5625 Length 3, alignments in bytes 0/ 0: 11.875 11.4062 11.25 Length 3, alignments in bytes 0/ 3: 11.5625 11.5625 11.4062 Length 3, alignments in bytes 3/ 0: 11.5625 11.25 11.25 Length 4, alignments in bytes 0/ 0: 13.2812 12.1875 11.4062 Length 4, alignments in bytes 0/ 0: 12.1875 11.5625 11.25 Length 4, alignments in bytes 0/ 4: 12.1875 11.7188 11.0938 Length 4, alignments in bytes 4/ 0: 11.7188 11.875 11.25 Length 5, alignments in bytes 0/ 0: 13.5938 11.875 11.4062 Length 5, alignments in bytes 0/ 0: 12.6562 11.7188 11.4062 Length 5, alignments in bytes 0/ 5: 12.3438 11.4062 11.0938 Length 5, alignments in bytes 5/ 0: 12.1875 11.5625 11.5625 Length 6, alignments in bytes 0/ 0: 13.2812 11.5625 11.5625 Length 6, alignments in bytes 0/ 0: 12.9688 11.5625 11.25 Length 6, alignments in bytes 0/ 6: 12.8125 11.875 11.0938 Length 6, alignments in bytes 6/ 0: 12.8125 11.5625 12.0312 Length 7, alignments in bytes 0/ 0: 14.0625 12.0312 11.25 Length 7, alignments in bytes 0/ 0: 14.0625 11.875 11.875 Length 7, alignments in bytes 0/ 7: 13.4375 11.5625 11.0938 Length 7, alignments in bytes 7/ 0: 13.5938 11.7188 11.7188 Length 8, alignments in bytes 0/ 0: 15 11.0938 11.0938 Length 8, alignments in bytes 0/ 0: 15.7812 11.5625 11.0938 Length 8, alignments in bytes 0/ 0: 14.5312 11.0938 10.9375 Length 8, alignments in bytes 0/ 0: 13.9062 11.4062 11.0938 Length 9, alignments in bytes 0/ 0: 14.6875 11.4062 11.25 Length 9, alignments in bytes 0/ 0: 13.9062 11.0938 10.9375 Length 9, alignments in bytes 0/ 1: 14.0625 11.5625 10.7812 Length 9, alignments in bytes 1/ 0: 13.75 11.875 11.0938 Length 10, alignments in bytes 0/ 0: 16.4062 11.4062 11.25 Length 10, alignments in bytes 0/ 0: 15.3125 11.0938 11.0938 Length 10, alignments in bytes 0/ 2: 14.8438 11.875 11.4062 Length 10, alignments in bytes 2/ 0: 14.5312 11.5625 10.9375 Length 11, alignments in bytes 0/ 0: 15.3125 11.4062 11.25 Length 11, alignments in bytes 0/ 0: 15 11.5625 11.0938 Length 11, alignments in bytes 0/ 3: 15.3125 11.25 10.9375 Length 11, alignments in bytes 3/ 0: 15.4688 11.5625 10.9375 Length 12, alignments in bytes 0/ 0: 16.0938 11.4062 11.25 Length 12, alignments in bytes 0/ 0: 15.7812 11.5625 11.25 Length 12, alignments in bytes 0/ 4: 15.4688 11.0938 10.9375 Length 12, alignments in bytes 4/ 0: 15.7812 11.5625 11.0938 Length 13, alignments in bytes 0/ 0: 16.0938 11.7188 11.7188 Length 13, alignments in bytes 0/ 0: 16.4062 11.5625 11.0938 Length 13, alignments in bytes 0/ 5: 16.25 11.0938 10.7812 Length 13, alignments in bytes 5/ 0: 15.9375 11.5625 11.25 Length 14, alignments in bytes 0/ 0: 15.9375 11.0938 11.0938 Length 14, alignments in bytes 0/ 0: 15.625 11.5625 11.25 Length 14, alignments in bytes 0/ 6: 15.9375 11.25 10.9375 Length 14, alignments in bytes 6/ 0: 15.7812 11.7188 10.9375 Length 15, alignments in bytes 0/ 0: 16.4062 11.25 10.9375 Length 15, alignments in bytes 0/ 0: 16.25 11.7188 11.4062 Length 15, alignments in bytes 0/ 7: 16.25 11.4062 10.9375 Length 15, alignments in bytes 7/ 0: 16.25 12.1875 11.4062 Length 16, alignments in bytes 0/ 0: 18.125 12.9688 13.125 Length 16, alignments in bytes 7/ 2: 16.875 12.8125 13.125 Length 32, alignments in bytes 0/ 0: 24.6875 14.0625 14.5312 Length 32, alignments in bytes 6/ 4: 22.8125 13.125 13.9062 Length 64, alignments in bytes 0/ 0: 57.3438 17.5 17.9688 Length 64, alignments in bytes 5/ 6: 57.5 15.9375 17.6562 Length 128, alignments in bytes 0/ 0: 81.0938 21.4062 23.5938 Length 128, alignments in bytes 4/ 0: 75.625 19.6875 23.2812 Length 256, alignments in bytes 0/ 0: 144.531 28.125 34.5312 Length 256, alignments in bytes 3/ 2: 147.5 28.4375 34.375 Length 512, alignments in bytes 0/ 0: 329.219 44.8438 55.1562 Length 512, alignments in bytes 2/ 4: 330.312 45.4688 54.8438 Length 1024, alignments in bytes 0/ 0: 527.031 79.0625 118.125 Length 1024, alignments in bytes 1/ 6: 585.469 78.4375 118.438 Length 16, alignments in bytes 1/ 2: 17.3438 13.75 13.5938 Length 16, alignments in bytes 2/ 1: 17.0312 12.1875 12.3438 Length 16, alignments in bytes 1/ 1: 17.0312 12.1875 12.5 Length 16, alignments in bytes 1/ 1: 17.9688 12.6562 12.5 Length 32, alignments in bytes 2/ 4: 25.1562 13.9062 14.5312 Length 32, alignments in bytes 4/ 2: 23.125 13.2812 13.75 Length 32, alignments in bytes 2/ 2: 22.9688 13.4375 14.0625 Length 32, alignments in bytes 2/ 2: 23.2812 13.9062 13.9062 Length 64, alignments in bytes 3/ 6: 41.875 16.4062 18.5938 Length 64, alignments in bytes 6/ 3: 37.8125 16.0938 17.8125 Length 64, alignments in bytes 3/ 3: 35.625 15.3125 16.5625 Length 64, alignments in bytes 3/ 3: 35.625 15.7812 17.3438 Length 128, alignments in bytes 4/ 0: 75.4688 19.6875 23.9062 Length 128, alignments in bytes 0/ 4: 80.625 19.5312 23.125 Length 128, alignments in bytes 4/ 4: 78.75 19.2188 23.125 Length 128, alignments in bytes 4/ 4: 76.0938 18.5938 23.2812 Length 256, alignments in bytes 5/ 2: 123.906 28.9062 34.375 Length 256, alignments in bytes 2/ 5: 119.062 28.75 34.375 Length 256, alignments in bytes 5/ 5: 123.594 28.5938 34.0625 Length 256, alignments in bytes 5/ 5: 149.531 28.5938 34.2188 Length 512, alignments in bytes 6/ 4: 230.312 45.1562 55.4688 Length 512, alignments in bytes 4/ 6: 276.719 45.3125 54.6875 Length 512, alignments in bytes 6/ 6: 229.219 45.4688 54.6875 Length 512, alignments in bytes 6/ 6: 321.094 44.6875 55 Length 1024, alignments in bytes 7/ 6: 549.531 78.2812 119.375 Length 1024, alignments in bytes 6/ 7: 545.469 79.0625 118.75 Length 1024, alignments in bytes 7/ 7: 548.438 78.75 95.4688 Length 1024, alignments in bytes 7/ 7: 581.562 78.4375 95.625 Length 16, alignments in bytes 0/ 4: 16.875 12.1875 13.2812 Length 16, alignments in bytes 4/ 0: 17.1875 12.3438 12.9688 Length 16, alignments in bytes 4/ 4: 17.0312 12.6562 12.5 Length 16, alignments in bytes 2/ 2: 17.0312 12.0312 12.1875 Length 16, alignments in bytes 2/ 6: 16.875 12.1875 12.6562 Length 16, alignments in bytes 6/ 2: 16.7188 12.8125 12.1875 Length 16, alignments in bytes 1/ 7: 17.1875 12.5 12.5 Length 16, alignments in bytes 7/ 1: 16.875 12.3438 12.5 Length 16, alignments in bytes 3/ 4: 16.875 12.5 12.6562 Length 16, alignments in bytes 4/ 3: 17.0312 12.6562 12.3438 Length 16, alignments in bytes 5/ 7: 16.7188 12.5 12.5 Length 16, alignments in bytes 7/ 5: 16.875 12.6562 12.6562 Length 20, alignments in bytes 0/ 4: 19.5312 12.5 12.5 Length 20, alignments in bytes 4/ 0: 18.2812 12.3438 12.3438 Length 20, alignments in bytes 4/ 4: 18.2812 12.5 12.5 Length 20, alignments in bytes 2/ 2: 18.75 12.5 12.3438 Length 20, alignments in bytes 2/ 6: 18.4375 12.1875 12.5 Length 20, alignments in bytes 6/ 2: 18.5938 12.5 12.5 Length 20, alignments in bytes 1/ 7: 19.0625 12.3438 12.6562 Length 20, alignments in bytes 7/ 1: 18.2812 12.1875 12.8125 Length 20, alignments in bytes 3/ 4: 18.75 12.8125 12.5 Length 20, alignments in bytes 4/ 3: 18.125 12.6562 12.8125 Length 20, alignments in bytes 5/ 7: 18.4375 12.1875 12.1875 Length 20, alignments in bytes 7/ 5: 18.2812 12.8125 12.6562 Length 24, alignments in bytes 0/ 4: 21.7188 12.5 12.5 Length 24, alignments in bytes 4/ 0: 20.1562 12.6562 12.9688 Length 24, alignments in bytes 4/ 4: 20.4688 12.3438 12.3438 Length 24, alignments in bytes 2/ 2: 20.4688 12.3438 12.6562 Length 24, alignments in bytes 2/ 6: 19.8438 12.1875 12.3438 Length 24, alignments in bytes 6/ 2: 20.4688 12.6562 12.3438 Length 24, alignments in bytes 1/ 7: 20.3125 12.5 12.6562 Length 24, alignments in bytes 7/ 1: 20 11.875 11.875 Length 24, alignments in bytes 3/ 4: 20.1562 12.0312 12.3438 Length 24, alignments in bytes 4/ 3: 20.3125 12.5 12.3438 Length 24, alignments in bytes 5/ 7: 20.1562 12.8125 12.3438 Length 24, alignments in bytes 7/ 5: 19.8438 11.875 12.1875 Length 28, alignments in bytes 0/ 4: 23.125 12.0312 12.3438 Length 28, alignments in bytes 4/ 0: 21.875 13.5938 14.2188 Length 28, alignments in bytes 4/ 4: 21.7188 14.0625 13.9062 Length 28, alignments in bytes 2/ 2: 21.7188 12.3438 12.6562 Length 28, alignments in bytes 2/ 6: 21.7188 12.1875 12.8125 Length 28, alignments in bytes 6/ 2: 21.875 13.5938 13.9062 Length 28, alignments in bytes 1/ 7: 21.875 12.5 12.6562 Length 28, alignments in bytes 7/ 1: 21.875 13.9062 14.0625 Length 28, alignments in bytes 3/ 4: 21.5625 12.1875 12.5 Length 28, alignments in bytes 4/ 3: 21.875 13.75 13.75 Length 28, alignments in bytes 5/ 7: 21.875 13.2812 14.0625 Length 28, alignments in bytes 7/ 5: 21.875 13.4375 14.0625 Length 32, alignments in bytes 0/ 4: 23.5938 12.9688 14.0625 Length 32, alignments in bytes 4/ 0: 23.75 13.2812 14.0625 Length 32, alignments in bytes 4/ 4: 23.4375 13.125 13.9062 Length 32, alignments in bytes 2/ 2: 23.75 13.2812 13.9062 Length 32, alignments in bytes 2/ 6: 23.5938 13.4375 13.75 Length 32, alignments in bytes 6/ 2: 23.2812 13.4375 14.2188 Length 32, alignments in bytes 1/ 7: 23.4375 12.9688 13.9062 Length 32, alignments in bytes 7/ 1: 23.2812 13.2812 14.375 Length 32, alignments in bytes 3/ 4: 23.2812 13.2812 14.0625 Length 32, alignments in bytes 4/ 3: 22.8125 13.125 14.0625 Length 32, alignments in bytes 5/ 7: 22.9688 12.9688 14.375 Length 32, alignments in bytes 7/ 5: 23.4375 13.75 14.0625 Length 36, alignments in bytes 0/ 4: 25.1562 12.9688 14.2188 Length 36, alignments in bytes 4/ 0: 25 13.125 14.0625 Length 36, alignments in bytes 4/ 4: 24.8438 13.125 14.0625 Length 36, alignments in bytes 2/ 2: 25 13.5938 14.2188 Length 36, alignments in bytes 2/ 6: 24.8438 13.75 14.0625 Length 36, alignments in bytes 6/ 2: 24.8438 13.2812 14.0625 Length 36, alignments in bytes 1/ 7: 24.5312 13.125 13.9062 Length 36, alignments in bytes 7/ 1: 25 13.125 14.2188 Length 36, alignments in bytes 3/ 4: 24.8438 12.9688 14.0625 Length 36, alignments in bytes 4/ 3: 25 12.9688 14.375 Length 36, alignments in bytes 5/ 7: 25.3125 13.2812 14.375 Length 36, alignments in bytes 7/ 5: 25 13.2812 14.2188 Length 40, alignments in bytes 0/ 4: 26.875 12.6562 14.0625 Length 40, alignments in bytes 4/ 0: 26.5625 13.125 14.2188 Length 40, alignments in bytes 4/ 4: 26.4062 12.9688 14.2188 Length 40, alignments in bytes 2/ 2: 26.875 13.2812 14.0625 Length 40, alignments in bytes 2/ 6: 26.5625 13.125 13.9062 Length 40, alignments in bytes 6/ 2: 27.1875 13.125 14.2188 Length 40, alignments in bytes 1/ 7: 26.25 13.4375 14.0625 Length 40, alignments in bytes 7/ 1: 27.0312 12.8125 13.4375 Length 40, alignments in bytes 3/ 4: 26.7188 13.2812 14.375 Length 40, alignments in bytes 4/ 3: 27.0312 12.9688 14.375 Length 40, alignments in bytes 5/ 7: 27.0312 13.125 14.0625 Length 40, alignments in bytes 7/ 5: 27.6562 12.6562 13.2812 Length 44, alignments in bytes 0/ 4: 28.2812 13.125 13.75 Length 44, alignments in bytes 4/ 0: 27.9688 15.7812 17.1875 Length 44, alignments in bytes 4/ 4: 28.2812 15 15.625 Length 44, alignments in bytes 2/ 2: 27.9688 13.4375 14.0625 Length 44, alignments in bytes 2/ 6: 27.8125 13.125 14.0625 Length 44, alignments in bytes 6/ 2: 27.9688 15 15.625 Length 44, alignments in bytes 1/ 7: 27.9688 12.9688 13.9062 Length 44, alignments in bytes 7/ 1: 27.9688 14.5312 15.625 Length 44, alignments in bytes 3/ 4: 27.9688 12.9688 13.5938 Length 44, alignments in bytes 4/ 3: 28.125 14.375 15.7812 Length 44, alignments in bytes 5/ 7: 28.125 14.5312 15.1562 Length 44, alignments in bytes 7/ 5: 28.2812 14.2188 15.625 Length 48, alignments in bytes 0/ 4: 32.8125 13.75 15.1562 Length 48, alignments in bytes 4/ 0: 32.1875 14.0625 15.625 Length 48, alignments in bytes 4/ 4: 32.3438 14.2188 15.4688 Length 48, alignments in bytes 2/ 2: 32.5 14.0625 15.3125 Length 48, alignments in bytes 2/ 6: 33.125 14.0625 15.3125 Length 48, alignments in bytes 6/ 2: 32.5 14.0625 15.1562 Length 48, alignments in bytes 1/ 7: 32.5 13.9062 15.4688 Length 48, alignments in bytes 7/ 1: 32.3438 14.0625 15.4688 Length 48, alignments in bytes 3/ 4: 32.5 13.9062 15.3125 Length 48, alignments in bytes 4/ 3: 32.6562 14.0625 15.3125 Length 48, alignments in bytes 5/ 7: 32.1875 13.75 15.625 Length 48, alignments in bytes 7/ 5: 32.5 13.75 15.3125 Length 52, alignments in bytes 0/ 4: 31.0938 13.9062 15.4688 Length 52, alignments in bytes 4/ 0: 31.4062 13.9062 15.1562 Length 52, alignments in bytes 4/ 4: 31.0938 14.375 15.4688 Length 52, alignments in bytes 2/ 2: 31.25 14.0625 15.625 Length 52, alignments in bytes 2/ 6: 31.25 14.2188 15.3125 Length 52, alignments in bytes 6/ 2: 31.25 13.9062 15.3125 Length 52, alignments in bytes 1/ 7: 31.25 14.2188 15.1562 Length 52, alignments in bytes 7/ 1: 31.0938 14.2188 16.5625 Length 52, alignments in bytes 3/ 4: 31.4062 14.2188 15.3125 Length 52, alignments in bytes 4/ 3: 30.7812 14.2188 15.1562 Length 52, alignments in bytes 5/ 7: 30.7812 13.9062 15.1562 Length 52, alignments in bytes 7/ 5: 30.7812 14.0625 15.4688 Length 56, alignments in bytes 0/ 4: 37.5 13.9062 15.7812 Length 56, alignments in bytes 4/ 0: 34.2188 14.0625 15.3125 Length 56, alignments in bytes 4/ 4: 34.0625 13.9062 15.625 Length 56, alignments in bytes 2/ 2: 33.75 13.9062 15.625 Length 56, alignments in bytes 2/ 6: 33.9062 14.2188 15.625 Length 56, alignments in bytes 6/ 2: 34.0625 14.0625 15.3125 Length 56, alignments in bytes 1/ 7: 34.0625 14.2188 15.4688 Length 56, alignments in bytes 7/ 1: 34.0625 13.75 15 Length 56, alignments in bytes 3/ 4: 34.0625 14.0625 15.7812 Length 56, alignments in bytes 4/ 3: 34.0625 14.5312 15.3125 Length 56, alignments in bytes 5/ 7: 33.9062 14.5312 15.4688 Length 56, alignments in bytes 7/ 5: 34.0625 14.5312 15 Length 60, alignments in bytes 0/ 4: 35.1562 14.375 15.3125 Length 60, alignments in bytes 4/ 0: 34.8438 16.875 17.0312 Length 60, alignments in bytes 4/ 4: 34.0625 15.7812 17.5 Length 60, alignments in bytes 2/ 2: 34.8438 14.375 15.4688 Length 60, alignments in bytes 2/ 6: 34.8438 14.375 15.7812 Length 60, alignments in bytes 6/ 2: 37.9688 17.0312 17.6562 Length 60, alignments in bytes 1/ 7: 35 14.8438 15.625 Length 60, alignments in bytes 7/ 1: 34.6875 16.0938 17.5 Length 60, alignments in bytes 3/ 4: 34.8438 14.2188 15.1562 Length 60, alignments in bytes 4/ 3: 33.9062 16.25 17.6562 Length 60, alignments in bytes 5/ 7: 33.75 15.625 17.3438 Length 60, alignments in bytes 7/ 5: 34.0625 15.625 17.8125 Length 64, alignments in bytes 0/ 4: 38.2812 14.8438 17.5 Length 64, alignments in bytes 4/ 0: 37.6562 15.625 16.7188 Length 64, alignments in bytes 4/ 4: 35.4688 15.9375 17.1875 Length 64, alignments in bytes 2/ 2: 35.625 15.4688 17.3438 Length 64, alignments in bytes 2/ 6: 35.4688 15.4688 17.5 Length 64, alignments in bytes 6/ 2: 35.4688 15.4688 17.6562 Length 64, alignments in bytes 1/ 7: 35.625 15.9375 17.3438 Length 64, alignments in bytes 7/ 1: 39.5312 15.625 17.5 Length 64, alignments in bytes 3/ 4: 38.4375 14.8438 16.7188 Length 64, alignments in bytes 4/ 3: 37.6562 15.4688 16.7188 Length 64, alignments in bytes 5/ 7: 39.8438 15.4688 17.5 Length 64, alignments in bytes 7/ 5: 40.4688 15.4688 17.3438 Length 68, alignments in bytes 0/ 4: 38.9062 14.5312 17.3438 Length 68, alignments in bytes 4/ 0: 38.125 15.625 16.5625 Length 68, alignments in bytes 4/ 4: 37.3438 14.8438 17.3438 Length 68, alignments in bytes 2/ 2: 38.4375 15.7812 16.4062 Length 68, alignments in bytes 2/ 6: 42.1875 14.8438 17.5 Length 68, alignments in bytes 6/ 2: 38.2812 15.7812 16.4062 Length 68, alignments in bytes 1/ 7: 37.0312 14.8438 16.7188 Length 68, alignments in bytes 7/ 1: 38.9062 15.9375 17.0312 Length 68, alignments in bytes 3/ 4: 37.0312 15.4688 17.6562 Length 68, alignments in bytes 4/ 3: 37.0312 15.4688 17.1875 Length 68, alignments in bytes 5/ 7: 38.9062 15.4688 17.5 Length 68, alignments in bytes 7/ 5: 43.2812 15.3125 17.6562 Length 72, alignments in bytes 0/ 4: 40.3125 15.9375 17.5 Length 72, alignments in bytes 4/ 0: 45 15.7812 17.5 Length 72, alignments in bytes 4/ 4: 45.3125 15.625 17.6562 Length 72, alignments in bytes 2/ 2: 44.8438 15.4688 17.3438 Length 72, alignments in bytes 2/ 6: 45.4688 15.4688 17.5 Length 72, alignments in bytes 6/ 2: 45.4688 15.625 17.5 Length 72, alignments in bytes 1/ 7: 38.9062 15.7812 17.6562 Length 72, alignments in bytes 7/ 1: 44.8438 14.6875 16.0938 Length 72, alignments in bytes 3/ 4: 40.3125 15.9375 17.6562 Length 72, alignments in bytes 4/ 3: 45.1562 15.4688 17.3438 Length 72, alignments in bytes 5/ 7: 44.8438 15.625 17.5 Length 72, alignments in bytes 7/ 5: 45 14.375 16.0938 Length 76, alignments in bytes 0/ 4: 40.3125 15.625 16.25 Length 76, alignments in bytes 4/ 0: 47.3438 18.5938 19.0625 Length 76, alignments in bytes 4/ 4: 44.375 16.4062 17.6562 Length 76, alignments in bytes 2/ 2: 45.9375 15 17.5 Length 76, alignments in bytes 2/ 6: 44.375 15.625 17.6562 Length 76, alignments in bytes 6/ 2: 47.6562 16.5625 17.5 Length 76, alignments in bytes 1/ 7: 40.3125 15.4688 17.3438 Length 76, alignments in bytes 7/ 1: 47.1875 16.25 17.6562 Length 76, alignments in bytes 3/ 4: 47.5 14.8438 15.7812 Length 76, alignments in bytes 4/ 3: 47.1875 16.4062 17.5 Length 76, alignments in bytes 5/ 7: 44.5312 15.9375 17.5 Length 76, alignments in bytes 7/ 5: 47.1875 15.9375 17.8125 Length 80, alignments in bytes 0/ 4: 43.9062 15.7812 17.8125 Length 80, alignments in bytes 4/ 0: 41.7188 16.25 17.6562 Length 80, alignments in bytes 4/ 4: 43.9062 16.0938 18.125 Length 80, alignments in bytes 2/ 2: 49.0625 16.0938 17.6562 Length 80, alignments in bytes 2/ 6: 43.9062 15.625 17.5 Length 80, alignments in bytes 6/ 2: 49.0625 15.9375 17.6562 Length 80, alignments in bytes 1/ 7: 41.5625 15.625 17.6562 Length 80, alignments in bytes 7/ 1: 49.0625 15.7812 17.5 Length 80, alignments in bytes 3/ 4: 49.5312 15.7812 17.8125 Length 80, alignments in bytes 4/ 3: 41.875 15.625 17.8125 Length 80, alignments in bytes 5/ 7: 41.7188 15.7812 17.8125 Length 80, alignments in bytes 7/ 5: 42.0312 15.4688 18.125 Length 84, alignments in bytes 0/ 4: 47.3438 15.625 17.3438 Length 84, alignments in bytes 4/ 0: 43.4375 15.625 17.9688 Length 84, alignments in bytes 4/ 4: 43.2812 15.7812 17.9688 Length 84, alignments in bytes 2/ 2: 47.0312 15.9375 17.6562 Length 84, alignments in bytes 2/ 6: 46.875 15.625 18.2812 Length 84, alignments in bytes 6/ 2: 50.9375 15.625 17.5 Length 84, alignments in bytes 1/ 7: 46.7188 15.625 17.8125 Length 84, alignments in bytes 7/ 1: 50.625 15.625 17.9688 Length 84, alignments in bytes 3/ 4: 43.2812 15.7812 18.2812 Length 84, alignments in bytes 4/ 3: 43.5938 15.625 17.8125 Length 84, alignments in bytes 5/ 7: 51.25 15.625 17.6562 Length 84, alignments in bytes 7/ 5: 50.7812 15.4688 17.9688 Length 88, alignments in bytes 0/ 4: 45.4688 15.9375 17.3438 Length 88, alignments in bytes 4/ 0: 45.3125 15.625 17.5 Length 88, alignments in bytes 4/ 4: 52.9688 15.625 17.8125 Length 88, alignments in bytes 2/ 2: 52.8125 15.625 17.8125 Length 88, alignments in bytes 2/ 6: 45.7812 16.4062 17.6562 Length 88, alignments in bytes 6/ 2: 45.625 15.4688 17.6562 Length 88, alignments in bytes 1/ 7: 45.7812 15.7812 17.5 Length 88, alignments in bytes 7/ 1: 45.3125 15.625 17.6562 Length 88, alignments in bytes 3/ 4: 53.2812 15.4688 17.9688 Length 88, alignments in bytes 4/ 3: 45.3125 15.9375 17.8125 Length 88, alignments in bytes 5/ 7: 45.4688 15.7812 17.6562 Length 88, alignments in bytes 7/ 5: 45.3125 15.625 17.9688 Length 92, alignments in bytes 0/ 4: 50.625 15.9375 17.5 Length 92, alignments in bytes 4/ 0: 50.4688 18.9062 20.4688 Length 92, alignments in bytes 4/ 4: 55.7812 17.1875 19.375 Length 92, alignments in bytes 2/ 2: 54.5312 16.7188 17.5 Length 92, alignments in bytes 2/ 6: 55.4688 15.7812 17.5 Length 92, alignments in bytes 6/ 2: 56.4062 17.5 19.2188 Length 92, alignments in bytes 1/ 7: 50.625 16.4062 17.5 Length 92, alignments in bytes 7/ 1: 55.625 17.0312 19.8438 Length 92, alignments in bytes 3/ 4: 54.8438 15.9375 17.3438 Length 92, alignments in bytes 4/ 3: 55.1562 17.1875 19.8438 Length 92, alignments in bytes 5/ 7: 55.1562 17.0312 19.0625 Length 92, alignments in bytes 7/ 5: 47.0312 16.5625 19.0625 Length 96, alignments in bytes 0/ 4: 54.375 16.25 18.9062 Length 96, alignments in bytes 4/ 0: 53.75 16.5625 19.2188 Length 96, alignments in bytes 4/ 4: 57.1875 17.0312 19.6875 Length 96, alignments in bytes 2/ 2: 48.5938 16.875 19.0625 Length 96, alignments in bytes 2/ 6: 56.875 16.7188 19.0625 Length 96, alignments in bytes 6/ 2: 57.6562 16.7188 19.375 Length 96, alignments in bytes 1/ 7: 48.5938 16.7188 19.0625 Length 96, alignments in bytes 7/ 1: 64.8438 16.5625 19.6875 Length 96, alignments in bytes 3/ 4: 65.7812 16.5625 19.2188 Length 96, alignments in bytes 4/ 3: 63.2812 16.7188 19.5312 Length 96, alignments in bytes 5/ 7: 64.0625 16.5625 19.2188 Length 96, alignments in bytes 7/ 5: 65.4688 16.5625 18.9062 Length 100, alignments in bytes 0/ 4: 73.2812 16.25 18.9062 Length 100, alignments in bytes 4/ 0: 66.7188 17.3438 19.375 Length 100, alignments in bytes 4/ 4: 66.7188 16.7188 19.0625 Length 100, alignments in bytes 2/ 2: 65.625 16.5625 19.375 Length 100, alignments in bytes 2/ 6: 65.625 17.0312 19.0625 Length 100, alignments in bytes 6/ 2: 65.3125 16.5625 18.75 Length 100, alignments in bytes 1/ 7: 72.9688 16.7188 19.375 Length 100, alignments in bytes 7/ 1: 64.6875 16.7188 18.75 Length 100, alignments in bytes 3/ 4: 72.9688 17.0312 19.5312 Length 100, alignments in bytes 4/ 3: 72.9688 17.1875 19.2188 Length 100, alignments in bytes 5/ 7: 65.9375 16.7188 19.375 Length 100, alignments in bytes 7/ 5: 72.8125 17.1875 19.0625 Length 104, alignments in bytes 0/ 4: 74.375 16.25 19.0625 Length 104, alignments in bytes 4/ 0: 68.4375 16.7188 19.2188 Length 104, alignments in bytes 4/ 4: 68.2812 16.875 19.2188 Length 104, alignments in bytes 2/ 2: 66.4062 16.875 18.9062 Length 104, alignments in bytes 2/ 6: 66.875 16.875 19.2188 Length 104, alignments in bytes 6/ 2: 68.9062 16.4062 19.0625 Length 104, alignments in bytes 1/ 7: 66.0938 16.5625 18.9062 Length 104, alignments in bytes 7/ 1: 74.375 16.4062 18.5938 Length 104, alignments in bytes 3/ 4: 68.2812 16.5625 19.0625 Length 104, alignments in bytes 4/ 3: 68.4375 16.5625 18.9062 Length 104, alignments in bytes 5/ 7: 67.5 16.4062 19.2188 Length 104, alignments in bytes 7/ 5: 68.5938 16.25 18.5938 Length 108, alignments in bytes 0/ 4: 77.0312 16.875 19.0625 Length 108, alignments in bytes 4/ 0: 76.7188 20.1562 22.1875 Length 108, alignments in bytes 4/ 4: 76.875 18.75 20.7812 Length 108, alignments in bytes 2/ 2: 76.875 17.6562 19.8438 Length 108, alignments in bytes 2/ 6: 70.1562 17.0312 19.2188 Length 108, alignments in bytes 6/ 2: 70.3125 18.2812 20.625 Length 108, alignments in bytes 1/ 7: 67.1875 17.0312 18.9062 Length 108, alignments in bytes 7/ 1: 70.7812 17.9688 20.9375 Length 108, alignments in bytes 3/ 4: 58.125 16.5625 18.5938 Length 108, alignments in bytes 4/ 3: 69.6875 17.8125 20.9375 Length 108, alignments in bytes 5/ 7: 69.375 17.6562 20.9375 Length 108, alignments in bytes 7/ 5: 76.25 18.125 20.9375 Length 112, alignments in bytes 0/ 4: 74.8438 17.3438 20.4688 Length 112, alignments in bytes 4/ 0: 70 17.3438 20.625 Length 112, alignments in bytes 4/ 4: 70.1562 17.3438 20.7812 Length 112, alignments in bytes 2/ 2: 70 17.5 20.9375 Length 112, alignments in bytes 2/ 6: 75.7812 17.6562 20.7812 Length 112, alignments in bytes 6/ 2: 75.4688 17.6562 20.7812 Length 112, alignments in bytes 1/ 7: 72.3438 17.5 20.625 Length 112, alignments in bytes 7/ 1: 78.9062 17.6562 20.625 Length 112, alignments in bytes 3/ 4: 74.0625 17.5 20.4688 Length 112, alignments in bytes 4/ 3: 74.375 17.8125 20.4688 Length 112, alignments in bytes 5/ 7: 73.125 17.6562 20.7812 Length 112, alignments in bytes 7/ 5: 73.75 17.5 21.0938 Length 116, alignments in bytes 0/ 4: 74.2188 17.1875 20.3125 Length 116, alignments in bytes 4/ 0: 73.9062 17.5 20.4688 Length 116, alignments in bytes 4/ 4: 71.875 17.6562 20.4688 Length 116, alignments in bytes 2/ 2: 74.2188 17.5 20.625 Length 116, alignments in bytes 2/ 6: 72.0312 17.6562 20.7812 Length 116, alignments in bytes 6/ 2: 71.0938 17.6562 20.4688 Length 116, alignments in bytes 1/ 7: 74.0625 17.1875 20.625 Length 116, alignments in bytes 7/ 1: 70.9375 17.5 20.625 Length 116, alignments in bytes 3/ 4: 74.0625 17.6562 20.625 Length 116, alignments in bytes 4/ 3: 71.875 17.3438 20.625 Length 116, alignments in bytes 5/ 7: 71.4062 17.6562 20.625 Length 116, alignments in bytes 7/ 5: 71.25 17.5 20.4688 Length 120, alignments in bytes 0/ 4: 74.6875 17.3438 20.3125 Length 120, alignments in bytes 4/ 0: 75.3125 17.5 20.4688 Length 120, alignments in bytes 4/ 4: 75.3125 17.8125 20.4688 Length 120, alignments in bytes 2/ 2: 75.3125 17.6562 20.625 Length 120, alignments in bytes 2/ 6: 78.4375 17.6562 20.625 Length 120, alignments in bytes 6/ 2: 76.5625 17.5 20.4688 Length 120, alignments in bytes 1/ 7: 72.0312 17.6562 20.4688 Length 120, alignments in bytes 7/ 1: 72.5 18.125 20.1562 Length 120, alignments in bytes 3/ 4: 78.125 17.6562 20.625 Length 120, alignments in bytes 4/ 3: 76.0938 17.5 20.4688 Length 120, alignments in bytes 5/ 7: 73.5938 17.8125 20.4688 Length 120, alignments in bytes 7/ 5: 72.5 17.8125 19.6875 Length 124, alignments in bytes 0/ 4: 84.5312 17.1875 20.1562 Length 124, alignments in bytes 4/ 0: 76.7188 20.4688 35.4688 Length 124, alignments in bytes 4/ 4: 76.7188 19.6875 23.125 Length 124, alignments in bytes 2/ 2: 81.7188 18.5938 20.625 Length 124, alignments in bytes 2/ 6: 81.875 17.9688 21.0938 Length 124, alignments in bytes 6/ 2: 68.4375 20.625 22.8125 Length 124, alignments in bytes 1/ 7: 77.3438 17.8125 20.9375 Length 124, alignments in bytes 7/ 1: 87.0312 19.6875 23.5938 Length 124, alignments in bytes 3/ 4: 74.0625 17.6562 20 Length 124, alignments in bytes 4/ 3: 68.125 19.5312 21.875 Length 124, alignments in bytes 5/ 7: 58.4375 19.2188 22.8125 Length 124, alignments in bytes 7/ 5: 60.9375 20 21.875 Length 128, alignments in bytes 0/ 4: 80.625 18.9062 22.8125 Length 128, alignments in bytes 4/ 0: 69.8438 18.9062 22.1875 Length 128, alignments in bytes 4/ 4: 77.6562 19.5312 22.6562 Length 128, alignments in bytes 2/ 2: 80.9375 18.9062 22.9688 Length 128, alignments in bytes 2/ 6: 77.3438 18.9062 22.6562 Length 128, alignments in bytes 6/ 2: 83.125 19.0625 22.9688 Length 128, alignments in bytes 1/ 7: 81.875 18.9062 22.6562 Length 128, alignments in bytes 7/ 1: 84.5312 19.0625 22.8125 Length 128, alignments in bytes 3/ 4: 80.3125 18.9062 22.9688 Length 128, alignments in bytes 4/ 3: 76.0938 19.5312 22.5 Length 128, alignments in bytes 5/ 7: 72.1875 18.9062 22.6562 Length 128, alignments in bytes 7/ 5: 84.8438 18.9062 22.8125 Length 132, alignments in bytes 0/ 4: 87.5 18.75 23.2812 Length 132, alignments in bytes 4/ 0: 76.4062 18.9062 21.7188 Length 132, alignments in bytes 4/ 4: 76.5625 19.375 22.6562 Length 132, alignments in bytes 2/ 2: 85 19.5312 22.6562 Length 132, alignments in bytes 2/ 6: 87.6562 18.9062 21.875 Length 132, alignments in bytes 6/ 2: 91.0938 18.9062 22.5 Length 132, alignments in bytes 1/ 7: 71.0938 18.9062 22.1875 Length 132, alignments in bytes 7/ 1: 82.8125 19.375 22.5 Length 132, alignments in bytes 3/ 4: 72.8125 19.2188 21.875 Length 132, alignments in bytes 4/ 3: 76.5625 18.9062 22.8125 Length 132, alignments in bytes 5/ 7: 71.25 19.2188 22.0312 Length 132, alignments in bytes 7/ 5: 90.1562 19.375 22.9688 Length 136, alignments in bytes 0/ 4: 99.8438 18.75 22.9688 Length 136, alignments in bytes 4/ 0: 84.8438 18.75 22.8125 Length 136, alignments in bytes 4/ 4: 85 19.6875 22.5 Length 136, alignments in bytes 2/ 2: 78.5938 18.75 22.8125 Length 136, alignments in bytes 2/ 6: 79.0625 18.5938 22.8125 Length 136, alignments in bytes 6/ 2: 72.8125 18.9062 21.875 Length 136, alignments in bytes 1/ 7: 82.0312 18.5938 22.8125 Length 136, alignments in bytes 7/ 1: 74.0625 18.75 21.5625 Length 136, alignments in bytes 3/ 4: 77.8125 18.9062 22.8125 Length 136, alignments in bytes 4/ 3: 77.3438 19.5312 22.8125 Length 136, alignments in bytes 5/ 7: 77.6562 18.9062 22.9688 Length 136, alignments in bytes 7/ 5: 81.25 19.6875 21.25 Length 140, alignments in bytes 0/ 4: 91.25 18.9062 21.5625 Length 140, alignments in bytes 4/ 0: 87.3438 20.9375 24.0625 Length 140, alignments in bytes 4/ 4: 87.5 20.625 23.5938 Length 140, alignments in bytes 2/ 2: 91.875 19.0625 22.9688 Length 140, alignments in bytes 2/ 6: 87.9688 19.0625 22.6562 Length 140, alignments in bytes 6/ 2: 88.2812 20.7812 23.4375 Length 140, alignments in bytes 1/ 7: 93.4375 18.9062 22.5 Length 140, alignments in bytes 7/ 1: 85.7812 20.3125 23.5938 Length 140, alignments in bytes 3/ 4: 76.5625 18.5938 21.0938 Length 140, alignments in bytes 4/ 3: 80.1562 21.7188 23.125 Length 140, alignments in bytes 5/ 7: 79.375 20.4688 23.2812 Length 140, alignments in bytes 7/ 5: 88.2812 21.0938 23.125 Length 144, alignments in bytes 0/ 4: 103.281 20.4688 23.125 Length 144, alignments in bytes 4/ 0: 77.1875 20.4688 23.2812 Length 144, alignments in bytes 4/ 4: 91.4062 20.7812 23.4375 Length 144, alignments in bytes 2/ 2: 75 20.4688 23.4375 Length 144, alignments in bytes 2/ 6: 97.5 20.3125 23.75 Length 144, alignments in bytes 6/ 2: 102.656 20.1562 23.4375 Length 144, alignments in bytes 1/ 7: 87.5 20.7812 22.9688 Length 144, alignments in bytes 7/ 1: 86.4062 20.3125 23.75 Length 144, alignments in bytes 3/ 4: 75.4688 20.7812 22.9688 Length 144, alignments in bytes 4/ 3: 76.875 20.1562 23.9062 Length 144, alignments in bytes 5/ 7: 75.625 20.625 23.2812 Length 144, alignments in bytes 7/ 5: 102.5 20.4688 23.9062 Length 148, alignments in bytes 0/ 4: 106.719 20.7812 23.5938 Length 148, alignments in bytes 4/ 0: 102.031 20.3125 23.4375 Length 148, alignments in bytes 4/ 4: 101.875 20.1562 23.75 Length 148, alignments in bytes 2/ 2: 77.5 20.3125 23.2812 Length 148, alignments in bytes 2/ 6: 98.2812 20.625 23.4375 Length 148, alignments in bytes 6/ 2: 85.9375 20.1562 23.75 Length 148, alignments in bytes 1/ 7: 78.9062 20.625 22.9688 Length 148, alignments in bytes 7/ 1: 100.312 20.3125 23.75 Length 148, alignments in bytes 3/ 4: 77.3438 20.9375 23.5938 Length 148, alignments in bytes 4/ 3: 96.7188 20.1562 23.2812 Length 148, alignments in bytes 5/ 7: 78.2812 20.1562 23.9062 Length 148, alignments in bytes 7/ 5: 100.469 20.3125 23.9062 Length 152, alignments in bytes 0/ 4: 93.75 20.9375 22.9688 Length 152, alignments in bytes 4/ 0: 79.2188 20.3125 23.5938 Length 152, alignments in bytes 4/ 4: 79.2188 20.1562 23.9062 Length 152, alignments in bytes 2/ 2: 82.8125 21.0938 22.9688 Length 152, alignments in bytes 2/ 6: 94.6875 20.1562 23.9062 Length 152, alignments in bytes 6/ 2: 91.5625 20.625 23.2812 Length 152, alignments in bytes 1/ 7: 78.4375 20.1562 23.75 Length 152, alignments in bytes 7/ 1: 79.8438 19.8438 22.6562 Length 152, alignments in bytes 3/ 4: 95.7812 20.1562 23.2812 Length 152, alignments in bytes 4/ 3: 88.125 20.4688 23.2812 Length 152, alignments in bytes 5/ 7: 99.0625 20.625 23.4375 Length 152, alignments in bytes 7/ 5: 99.2188 20.3125 22.8125 Length 156, alignments in bytes 0/ 4: 100.156 20 22.8125 Length 156, alignments in bytes 4/ 0: 100 24.375 25.4688 Length 156, alignments in bytes 4/ 4: 99.8438 22.3438 25.1562 Length 156, alignments in bytes 2/ 2: 90 21.25 23.5938 Length 156, alignments in bytes 2/ 6: 80.625 20.3125 23.5938 Length 156, alignments in bytes 6/ 2: 82.1875 22.9688 24.6875 Length 156, alignments in bytes 1/ 7: 80.4688 20 23.75 Length 156, alignments in bytes 7/ 1: 95.4688 22.3438 24.8438 Length 156, alignments in bytes 3/ 4: 80.625 20.4688 22.8125 Length 156, alignments in bytes 4/ 3: 82.5 22.6562 24.6875 Length 156, alignments in bytes 5/ 7: 80.625 21.875 25.1562 Length 156, alignments in bytes 7/ 5: 102.344 22.8125 24.8438 Length 160, alignments in bytes 0/ 4: 112.812 21.4062 24.6875 Length 160, alignments in bytes 4/ 0: 84.375 22.5 24.5312 Length 160, alignments in bytes 4/ 4: 99.2188 21.7188 25.1562 Length 160, alignments in bytes 2/ 2: 85.7812 21.7188 24.6875 Length 160, alignments in bytes 2/ 6: 102.812 21.4062 25 Length 160, alignments in bytes 6/ 2: 104.531 21.5625 24.375 Length 160, alignments in bytes 1/ 7: 82.0312 21.875 24.8438 Length 160, alignments in bytes 7/ 1: 98.125 22.6562 24.375 Length 160, alignments in bytes 3/ 4: 103.906 21.7188 24.5312 Length 160, alignments in bytes 4/ 3: 84.0625 22.3438 24.6875 Length 160, alignments in bytes 5/ 7: 98.9062 21.875 24.8438 Length 160, alignments in bytes 7/ 5: 83.9062 22.5 25 Length 164, alignments in bytes 0/ 4: 99.375 21.0938 24.6875 Length 164, alignments in bytes 4/ 0: 100.469 22.3438 24.5312 Length 164, alignments in bytes 4/ 4: 84.0625 21.7188 25.1562 Length 164, alignments in bytes 2/ 2: 96.5625 21.7188 24.5312 Length 164, alignments in bytes 2/ 6: 100.625 22.0312 25 Length 164, alignments in bytes 6/ 2: 85 21.875 25 Length 164, alignments in bytes 1/ 7: 100.938 22.0312 24.8438 Length 164, alignments in bytes 7/ 1: 85.9375 21.875 24.375 Length 164, alignments in bytes 3/ 4: 87.5 22.0312 24.8438 Length 164, alignments in bytes 4/ 3: 92.5 22.5 24.5312 Length 164, alignments in bytes 5/ 7: 85.4688 22.1875 25.3125 Length 164, alignments in bytes 7/ 5: 86.875 22.1875 25.3125 Length 168, alignments in bytes 0/ 4: 107.031 21.0938 24.6875 Length 168, alignments in bytes 4/ 0: 87.6562 22.5 24.8438 Length 168, alignments in bytes 4/ 4: 87.3438 21.5625 24.8438 Length 168, alignments in bytes 2/ 2: 85.4688 21.875 24.8438 Length 168, alignments in bytes 2/ 6: 95.7812 21.875 24.8438 Length 168, alignments in bytes 6/ 2: 87.3438 21.7188 24.5312 Length 168, alignments in bytes 1/ 7: 86.4062 21.5625 24.5312 Length 168, alignments in bytes 7/ 1: 101.25 21.875 24.6875 Length 168, alignments in bytes 3/ 4: 91.0938 21.875 25 Length 168, alignments in bytes 4/ 3: 94.5312 21.5625 25.3125 Length 168, alignments in bytes 5/ 7: 86.7188 21.875 24.8438 Length 168, alignments in bytes 7/ 5: 100.938 21.7188 24.2188 Length 172, alignments in bytes 0/ 4: 103.75 21.0938 24.375 Length 172, alignments in bytes 4/ 0: 88.9062 26.0938 25.9375 Length 172, alignments in bytes 4/ 4: 96.5625 23.9062 26.4062 Length 172, alignments in bytes 2/ 2: 101.25 23.125 25.3125 Length 172, alignments in bytes 2/ 6: 88.125 21.7188 24.8438 Length 172, alignments in bytes 6/ 2: 88.5938 24.8438 26.0938 Length 172, alignments in bytes 1/ 7: 100.469 22.1875 25 Length 172, alignments in bytes 7/ 1: 101.406 23.75 26.4062 Length 172, alignments in bytes 3/ 4: 94.5312 22.3438 24.2188 Length 172, alignments in bytes 4/ 3: 115 23.9062 25.7812 Length 172, alignments in bytes 5/ 7: 93.75 24.6875 26.4062 Length 172, alignments in bytes 7/ 5: 101.406 23.4375 26.0938 Length 176, alignments in bytes 0/ 4: 111.562 22.6562 25.625 Length 176, alignments in bytes 4/ 0: 106.875 24.2188 25.7812 Length 176, alignments in bytes 4/ 4: 106.875 23.125 25.9375 Length 176, alignments in bytes 2/ 2: 92.1875 22.8125 25.7812 Length 176, alignments in bytes 2/ 6: 105.938 23.75 25.625 Length 176, alignments in bytes 6/ 2: 90.4688 23.2812 26.0938 Length 176, alignments in bytes 1/ 7: 99.5312 23.5938 25.7812 Length 176, alignments in bytes 7/ 1: 102.344 23.2812 25.7812 Length 176, alignments in bytes 3/ 4: 100.938 23.4375 26.0938 Length 176, alignments in bytes 4/ 3: 107.969 22.8125 25.7812 Length 176, alignments in bytes 5/ 7: 98.4375 23.2812 25.7812 Length 176, alignments in bytes 7/ 5: 91.4062 22.8125 25.7812 Length 180, alignments in bytes 0/ 4: 125.938 22.5 25.4688 Length 180, alignments in bytes 4/ 0: 101.25 22.8125 25.7812 Length 180, alignments in bytes 4/ 4: 96.875 23.2812 25.625 Length 180, alignments in bytes 2/ 2: 97.5 23.2812 25.625 Length 180, alignments in bytes 2/ 6: 97.8125 22.8125 25.625 Length 180, alignments in bytes 6/ 2: 100.781 22.9688 25.625 Length 180, alignments in bytes 1/ 7: 90.1562 23.2812 25.625 Length 180, alignments in bytes 7/ 1: 105.469 23.2812 25.7812 Length 180, alignments in bytes 3/ 4: 97.0312 23.125 25.625 Length 180, alignments in bytes 4/ 3: 120.156 22.9688 25.7812 Length 180, alignments in bytes 5/ 7: 106.562 22.9688 25.7812 Length 180, alignments in bytes 7/ 5: 125.625 23.2812 25.625 Length 184, alignments in bytes 0/ 4: 115.625 22.6562 25.7812 Length 184, alignments in bytes 4/ 0: 112.5 22.9688 25.9375 Length 184, alignments in bytes 4/ 4: 117.656 22.8125 25.9375 Length 184, alignments in bytes 2/ 2: 93.5938 23.125 25.7812 Length 184, alignments in bytes 2/ 6: 102.031 24.0625 26.4062 Length 184, alignments in bytes 6/ 2: 105.156 22.8125 25.9375 Length 184, alignments in bytes 1/ 7: 99.8438 23.75 25.7812 Length 184, alignments in bytes 7/ 1: 102.656 23.75 25.4688 Length 184, alignments in bytes 3/ 4: 100.938 23.9062 25.7812 Length 184, alignments in bytes 4/ 3: 94.5312 23.2812 26.0938 Length 184, alignments in bytes 5/ 7: 110.625 23.5938 26.25 Length 184, alignments in bytes 7/ 5: 110.312 24.2188 25.3125 Length 188, alignments in bytes 0/ 4: 112.188 22.8125 25.625 Length 188, alignments in bytes 4/ 0: 106.094 24.8438 29.2188 Length 188, alignments in bytes 4/ 4: 119.688 24.2188 29.0625 Length 188, alignments in bytes 2/ 2: 117.188 23.9062 25.7812 Length 188, alignments in bytes 2/ 6: 109.219 23.75 25.9375 Length 188, alignments in bytes 6/ 2: 130.625 24.6875 29.0625 Length 188, alignments in bytes 1/ 7: 110.469 23.75 26.0938 Length 188, alignments in bytes 7/ 1: 110.781 24.0625 28.5938 Length 188, alignments in bytes 3/ 4: 111.406 24.8438 25.4688 Length 188, alignments in bytes 4/ 3: 97.6562 25.3125 29.2188 Length 188, alignments in bytes 5/ 7: 118.125 24.375 29.375 Length 188, alignments in bytes 7/ 5: 112.5 24.6875 28.75 Length 192, alignments in bytes 0/ 4: 120.156 23.75 28.9062 Length 192, alignments in bytes 4/ 0: 99.2188 24.5312 29.0625 Length 192, alignments in bytes 4/ 4: 115.781 25 28.5938 Length 192, alignments in bytes 2/ 2: 98.9062 24.2188 29.375 Length 192, alignments in bytes 2/ 6: 112.031 24.5312 28.9062 Length 192, alignments in bytes 6/ 2: 97.9688 24.0625 28.75 Length 192, alignments in bytes 1/ 7: 101.875 24.6875 28.75 Length 192, alignments in bytes 7/ 1: 105.781 24.2188 28.75 Length 192, alignments in bytes 3/ 4: 107.031 24.8438 28.75 Length 192, alignments in bytes 4/ 3: 115.312 24.0625 29.2188 Length 192, alignments in bytes 5/ 7: 97.8125 24.5312 28.9062 Length 192, alignments in bytes 7/ 5: 109.062 24.375 29.2188 Length 196, alignments in bytes 0/ 4: 93.4375 24.0625 28.75 Length 196, alignments in bytes 4/ 0: 97.8125 24.5312 29.0625 Length 196, alignments in bytes 4/ 4: 117.188 24.8438 28.5938 Length 196, alignments in bytes 2/ 2: 100.625 24.0625 29.0625 Length 196, alignments in bytes 2/ 6: 101.094 24.8438 29.0625 Length 196, alignments in bytes 6/ 2: 106.875 24.375 28.75 Length 196, alignments in bytes 1/ 7: 98.4375 24.6875 28.75 Length 196, alignments in bytes 7/ 1: 116.719 24.375 28.5938 Length 196, alignments in bytes 3/ 4: 118.125 24.2188 28.75 Length 196, alignments in bytes 4/ 3: 119.531 24.375 28.5938 Length 196, alignments in bytes 5/ 7: 132.969 24.375 28.9062 Length 196, alignments in bytes 7/ 5: 116.875 24.6875 28.75 Length 200, alignments in bytes 0/ 4: 123.125 23.75 28.75 Length 200, alignments in bytes 4/ 0: 115.781 24.8438 28.4375 Length 200, alignments in bytes 4/ 4: 115.469 24.2188 28.75 Length 200, alignments in bytes 2/ 2: 124.219 24.5312 28.5938 Length 200, alignments in bytes 2/ 6: 128.438 24.2188 28.4375 Length 200, alignments in bytes 6/ 2: 109.375 24.8438 28.4375 Length 200, alignments in bytes 1/ 7: 99.375 24.2188 28.5938 Length 200, alignments in bytes 7/ 1: 118.594 23.75 26.0938 Length 200, alignments in bytes 3/ 4: 114.375 24.2188 28.5938 Length 200, alignments in bytes 4/ 3: 118.438 24.8438 28.5938 Length 200, alignments in bytes 5/ 7: 117.5 24.5312 28.9062 Length 200, alignments in bytes 7/ 5: 126.094 24.375 26.25 Length 204, alignments in bytes 0/ 4: 140 23.9062 28.75 Length 204, alignments in bytes 4/ 0: 112.188 26.25 28.5938 Length 204, alignments in bytes 4/ 4: 101.719 25.3125 28.5938 Length 204, alignments in bytes 2/ 2: 107.031 24.2188 28.75 Length 204, alignments in bytes 2/ 6: 116.719 24.375 29.0625 Length 204, alignments in bytes 6/ 2: 100.625 26.4062 28.2812 Length 204, alignments in bytes 1/ 7: 110.625 24.0625 28.9062 Length 204, alignments in bytes 7/ 1: 127.5 26.25 28.4375 Length 204, alignments in bytes 3/ 4: 126.719 23.9062 26.4062 Length 204, alignments in bytes 4/ 3: 101.719 25.4688 29.0625 Length 204, alignments in bytes 5/ 7: 100.781 25.4688 28.5938 Length 204, alignments in bytes 7/ 5: 127.812 25.4688 28.5938 Length 208, alignments in bytes 0/ 4: 143.125 24.6875 28.2812 Length 208, alignments in bytes 4/ 0: 102.969 25.3125 28.125 Length 208, alignments in bytes 4/ 4: 119.219 26.0938 28.2812 Length 208, alignments in bytes 2/ 2: 107.969 25.625 28.75 Length 208, alignments in bytes 2/ 6: 111.719 26.25 28.2812 Length 208, alignments in bytes 6/ 2: 103.281 25.625 28.5938 Length 208, alignments in bytes 1/ 7: 102.969 26.0938 28.5938 Length 208, alignments in bytes 7/ 1: 103.438 25.7812 29.375 Length 208, alignments in bytes 3/ 4: 146.719 25.625 28.2812 Length 208, alignments in bytes 4/ 3: 122.656 25.7812 28.5938 Length 208, alignments in bytes 5/ 7: 102.5 26.25 28.9062 Length 208, alignments in bytes 7/ 5: 100.781 25 28.9062 Length 212, alignments in bytes 0/ 4: 122.5 24.5312 28.4375 Length 212, alignments in bytes 4/ 0: 106.25 25.625 28.2812 Length 212, alignments in bytes 4/ 4: 125.938 26.5625 28.75 Length 212, alignments in bytes 2/ 2: 104.375 25.3125 28.75 Length 212, alignments in bytes 2/ 6: 107.344 26.0938 28.4375 Length 212, alignments in bytes 6/ 2: 103.125 26.7188 29.375 Length 212, alignments in bytes 1/ 7: 125.625 25.625 28.5938 Length 212, alignments in bytes 7/ 1: 103.906 25.4688 28.5938 Length 212, alignments in bytes 3/ 4: 115.469 25.9375 28.75 Length 212, alignments in bytes 4/ 3: 123.438 25.1562 28.5938 Length 212, alignments in bytes 5/ 7: 105.938 25.4688 28.2812 Length 212, alignments in bytes 7/ 5: 123.125 25.7812 28.9062 Length 216, alignments in bytes 0/ 4: 132.188 25.625 28.5938 Length 216, alignments in bytes 4/ 0: 107.5 26.0938 28.2812 Length 216, alignments in bytes 4/ 4: 127.656 25.4688 28.5938 Length 216, alignments in bytes 2/ 2: 126.406 25.9375 28.4375 Length 216, alignments in bytes 2/ 6: 125.781 25.625 28.75 Length 216, alignments in bytes 6/ 2: 107.031 25.7812 28.9062 Length 216, alignments in bytes 1/ 7: 142.188 26.4062 28.9062 Length 216, alignments in bytes 7/ 1: 107.969 25 27.8125 Length 216, alignments in bytes 3/ 4: 111.25 25.625 28.5938 Length 216, alignments in bytes 4/ 3: 124.375 25.625 28.2812 Length 216, alignments in bytes 5/ 7: 106.875 25.1562 28.5938 Length 216, alignments in bytes 7/ 5: 107.969 25 27.8125 Length 220, alignments in bytes 0/ 4: 149.531 25.3125 28.2812 Length 220, alignments in bytes 4/ 0: 128.906 26.7188 30.1562 Length 220, alignments in bytes 4/ 4: 140.312 27.0312 29.6875 Length 220, alignments in bytes 2/ 2: 128.594 25.7812 28.4375 Length 220, alignments in bytes 2/ 6: 111.406 25.1562 28.75 Length 220, alignments in bytes 6/ 2: 130.469 26.7188 30.1562 Length 220, alignments in bytes 1/ 7: 108.594 26.0938 29.2188 Length 220, alignments in bytes 7/ 1: 129.219 28.2812 30.4688 Length 220, alignments in bytes 3/ 4: 135.625 25.7812 28.5938 Length 220, alignments in bytes 4/ 3: 145.625 27.0312 30 Length 220, alignments in bytes 5/ 7: 150.312 26.7188 29.5312 Length 220, alignments in bytes 7/ 5: 129.219 26.5625 29.8438 Length 224, alignments in bytes 0/ 4: 153.281 26.7188 29.375 Length 224, alignments in bytes 4/ 0: 114.531 27.0312 29.6875 Length 224, alignments in bytes 4/ 4: 108.438 26.5625 29.8438 Length 224, alignments in bytes 2/ 2: 116.719 26.7188 29.6875 Length 224, alignments in bytes 2/ 6: 112.969 26.875 29.8438 Length 224, alignments in bytes 6/ 2: 132.031 26.875 29.5312 Length 224, alignments in bytes 1/ 7: 110.156 26.0938 30.3125 Length 224, alignments in bytes 7/ 1: 130.625 26.5625 29.5312 Length 224, alignments in bytes 3/ 4: 135.156 26.7188 29.6875 Length 224, alignments in bytes 4/ 3: 131.25 26.4062 29.5312 Length 224, alignments in bytes 5/ 7: 133.75 26.7188 29.5312 Length 224, alignments in bytes 7/ 5: 131.562 26.7188 29.375 Length 228, alignments in bytes 0/ 4: 130.625 26.7188 29.6875 Length 228, alignments in bytes 4/ 0: 130.469 26.7188 29.5312 Length 228, alignments in bytes 4/ 4: 112.656 27.0312 29.6875 Length 228, alignments in bytes 2/ 2: 114.062 26.25 29.6875 Length 228, alignments in bytes 2/ 6: 133.125 26.5625 29.8438 Length 228, alignments in bytes 6/ 2: 139.844 26.875 29.5312 Length 228, alignments in bytes 1/ 7: 111.875 26.7188 29.6875 Length 228, alignments in bytes 7/ 1: 132.031 26.4062 29.6875 Length 228, alignments in bytes 3/ 4: 123.281 26.4062 29.8438 Length 228, alignments in bytes 4/ 3: 130.312 26.7188 29.5312 Length 228, alignments in bytes 5/ 7: 111.562 26.7188 29.5312 Length 228, alignments in bytes 7/ 5: 132.031 26.7188 29.6875 Length 232, alignments in bytes 0/ 4: 158.125 25.9375 29.375 Length 232, alignments in bytes 4/ 0: 114.219 26.7188 29.5312 Length 232, alignments in bytes 4/ 4: 114.219 26.7188 29.6875 Length 232, alignments in bytes 2/ 2: 133.75 26.5625 29.6875 Length 232, alignments in bytes 2/ 6: 134.062 26.7188 30 Length 232, alignments in bytes 6/ 2: 112.969 26.7188 29.6875 Length 232, alignments in bytes 1/ 7: 112.344 26.25 29.6875 Length 232, alignments in bytes 7/ 1: 115.312 26.4062 29.375 Length 232, alignments in bytes 3/ 4: 139.375 26.7188 30 Length 232, alignments in bytes 4/ 3: 133.438 26.4062 29.6875 Length 232, alignments in bytes 5/ 7: 113.281 26.5625 29.8438 Length 232, alignments in bytes 7/ 5: 142.344 26.5625 29.375 Length 236, alignments in bytes 0/ 4: 143.594 26.7188 29.8438 Length 236, alignments in bytes 4/ 0: 133.906 29.5312 31.5625 Length 236, alignments in bytes 4/ 4: 134.062 26.875 30.7812 Length 236, alignments in bytes 2/ 2: 137.188 27.0312 30 Length 236, alignments in bytes 2/ 6: 140 26.5625 29.8438 Length 236, alignments in bytes 6/ 2: 113.75 28.9062 32.0312 Length 236, alignments in bytes 1/ 7: 117.656 27.0312 30 Length 236, alignments in bytes 7/ 1: 143.75 30.625 31.875 Length 236, alignments in bytes 3/ 4: 114.844 26.7188 29.375 Length 236, alignments in bytes 4/ 3: 133.281 29.6875 31.875 Length 236, alignments in bytes 5/ 7: 114.844 27.3438 30.9375 Length 236, alignments in bytes 7/ 5: 120 27.1875 30.7812 Length 240, alignments in bytes 0/ 4: 137.188 26.7188 30.7812 Length 240, alignments in bytes 4/ 0: 117.031 28.125 31.0938 Length 240, alignments in bytes 4/ 4: 116.562 26.875 30.9375 Length 240, alignments in bytes 2/ 2: 118.75 27.3438 30.7812 Length 240, alignments in bytes 2/ 6: 116.25 27.8125 31.25 Length 240, alignments in bytes 6/ 2: 116.094 27.6562 30.9375 Length 240, alignments in bytes 1/ 7: 116.094 28.2812 31.0938 Length 240, alignments in bytes 7/ 1: 146.406 28.125 31.0938 Length 240, alignments in bytes 3/ 4: 116.562 27.0312 31.5625 Length 240, alignments in bytes 4/ 3: 117.344 27.1875 31.0938 Length 240, alignments in bytes 5/ 7: 138.75 27.3438 30.9375 Length 240, alignments in bytes 7/ 5: 117.812 27.0312 30.7812 Length 244, alignments in bytes 0/ 4: 113.125 26.7188 30.9375 Length 244, alignments in bytes 4/ 0: 141.562 27.0312 31.25 Length 244, alignments in bytes 4/ 4: 142.812 27.9688 31.4062 Length 244, alignments in bytes 2/ 2: 120.781 27.1875 30.9375 Length 244, alignments in bytes 2/ 6: 120.781 27.0312 30.7812 Length 244, alignments in bytes 6/ 2: 117.812 27.6562 30.7812 Length 244, alignments in bytes 1/ 7: 117.344 27.0312 30.9375 Length 244, alignments in bytes 7/ 1: 140.312 28.125 30.7812 Length 244, alignments in bytes 3/ 4: 119.062 28.2812 30.7812 Length 244, alignments in bytes 4/ 3: 143.438 27.0312 31.0938 Length 244, alignments in bytes 5/ 7: 117.969 26.875 31.0938 Length 244, alignments in bytes 7/ 5: 132.344 27.0312 31.25 Length 248, alignments in bytes 0/ 4: 141.094 26.875 30.7812 Length 248, alignments in bytes 4/ 0: 144.375 27.8125 31.0938 Length 248, alignments in bytes 4/ 4: 145.312 27.3438 30.7812 Length 248, alignments in bytes 2/ 2: 123.125 27.1875 31.25 Length 248, alignments in bytes 2/ 6: 123.125 27.0312 31.7188 Length 248, alignments in bytes 6/ 2: 145 27.8125 31.0938 Length 248, alignments in bytes 1/ 7: 144.844 28.4375 31.0938 Length 248, alignments in bytes 7/ 1: 120.625 27.5 30.3125 Length 248, alignments in bytes 3/ 4: 123.281 27.0312 31.25 Length 248, alignments in bytes 4/ 3: 145.625 27.0312 31.7188 Length 248, alignments in bytes 5/ 7: 145.312 27.6562 30.625 Length 248, alignments in bytes 7/ 5: 119.844 27.3438 30.4688 Length 252, alignments in bytes 0/ 4: 152.031 26.4062 31.25 Length 252, alignments in bytes 4/ 0: 135.938 29.2188 34.2188 Length 252, alignments in bytes 4/ 4: 143.125 28.9062 34.375 Length 252, alignments in bytes 2/ 2: 124.531 27.1875 31.4062 Length 252, alignments in bytes 2/ 6: 140 27.0312 31.4062 Length 252, alignments in bytes 6/ 2: 120.781 29.5312 34.8438 Length 252, alignments in bytes 1/ 7: 120.781 27.6562 31.875 Length 252, alignments in bytes 7/ 1: 136.562 29.2188 34.375 Length 252, alignments in bytes 3/ 4: 125.312 27.6562 30.9375 Length 252, alignments in bytes 4/ 3: 143.438 30.1562 34.375 Length 252, alignments in bytes 5/ 7: 144.219 28.9062 34.8438 Length 252, alignments in bytes 7/ 5: 129.531 28.9062 34.0625 Length 256, alignments in bytes 0/ 4: 144.688 28.2812 34.6875 Length 256, alignments in bytes 4/ 0: 136.406 28.9062 34.375 Length 256, alignments in bytes 4/ 4: 135.938 28.5938 34.375 Length 256, alignments in bytes 2/ 2: 125.938 28.75 34.5312 Length 256, alignments in bytes 2/ 6: 141.719 28.4375 34.375 Length 256, alignments in bytes 6/ 2: 124.219 29.2188 34.2188 Length 256, alignments in bytes 1/ 7: 140.312 29.375 34.375 Length 256, alignments in bytes 7/ 1: 154.688 28.75 34.375 Length 256, alignments in bytes 3/ 4: 145.938 28.5938 34.2188 Length 256, alignments in bytes 4/ 3: 141.406 28.5938 34.5312 Length 256, alignments in bytes 5/ 7: 124.375 29.2188 34.375 Length 256, alignments in bytes 7/ 5: 154.531 28.5938 34.6875 Length 260, alignments in bytes 0/ 4: 156.25 28.125 33.9062 Length 260, alignments in bytes 4/ 0: 150.469 28.5938 34.2188 Length 260, alignments in bytes 4/ 4: 150.312 28.4375 34.5312 Length 260, alignments in bytes 2/ 2: 132.344 28.9062 34.375 Length 260, alignments in bytes 2/ 6: 149.688 29.0625 34.2188 Length 260, alignments in bytes 6/ 2: 126.562 28.75 34.6875 Length 260, alignments in bytes 1/ 7: 149.062 28.4375 34.2188 Length 260, alignments in bytes 7/ 1: 125.938 28.5938 34.2188 Length 260, alignments in bytes 3/ 4: 148.281 29.0625 34.375 Length 260, alignments in bytes 4/ 3: 129.375 28.5938 34.8438 Length 260, alignments in bytes 5/ 7: 150.625 28.9062 34.5312 Length 260, alignments in bytes 7/ 5: 126.25 29.375 34.5312 Length 264, alignments in bytes 0/ 4: 149.844 28.2812 34.0625 Length 264, alignments in bytes 4/ 0: 130 28.75 34.6875 Length 264, alignments in bytes 4/ 4: 153.281 28.9062 34.2188 Length 264, alignments in bytes 2/ 2: 131.562 28.9062 34.2188 Length 264, alignments in bytes 2/ 6: 128.594 28.75 34.2188 Length 264, alignments in bytes 6/ 2: 125.781 29.0625 34.2188 Length 264, alignments in bytes 1/ 7: 142.969 28.9062 34.2188 Length 264, alignments in bytes 7/ 1: 136.094 28.125 31.875 Length 264, alignments in bytes 3/ 4: 151.25 28.5938 34.2188 Length 264, alignments in bytes 4/ 3: 130.156 28.75 34.5312 Length 264, alignments in bytes 5/ 7: 137.969 29.0625 34.2188 Length 264, alignments in bytes 7/ 5: 125.156 28.2812 32.3438 Length 268, alignments in bytes 0/ 4: 180 28.125 34.0625 Length 268, alignments in bytes 4/ 0: 133.594 29.5312 34.0625 Length 268, alignments in bytes 4/ 4: 140.938 29.2188 34.2188 Length 268, alignments in bytes 2/ 2: 173.75 28.75 35 Length 268, alignments in bytes 2/ 6: 130.312 28.9062 34.375 Length 268, alignments in bytes 6/ 2: 155 30.4688 33.9062 Length 268, alignments in bytes 1/ 7: 126.406 28.9062 34.8438 Length 268, alignments in bytes 7/ 1: 128.438 29.5312 34.375 Length 268, alignments in bytes 3/ 4: 145.469 28.5938 31.875 Length 268, alignments in bytes 4/ 3: 128.125 30 33.9062 Length 268, alignments in bytes 5/ 7: 127.656 30 33.9062 Length 268, alignments in bytes 7/ 5: 127.344 30.1562 33.9062 Length 272, alignments in bytes 0/ 4: 152.812 29.375 33.75 Length 272, alignments in bytes 4/ 0: 156.094 30 34.2188 Length 272, alignments in bytes 4/ 4: 156.25 29.375 33.5938 Length 272, alignments in bytes 2/ 2: 134.844 29.5312 33.9062 Length 272, alignments in bytes 2/ 6: 131.719 29.5312 34.375 Length 272, alignments in bytes 6/ 2: 157.188 29.6875 33.75 Length 272, alignments in bytes 1/ 7: 128.125 30.4688 34.375 Length 272, alignments in bytes 7/ 1: 130.938 29.375 34.0625 Length 272, alignments in bytes 3/ 4: 131.719 29.5312 34.0625 Length 272, alignments in bytes 4/ 3: 155.938 29.6875 33.5938 Length 272, alignments in bytes 5/ 7: 128.438 30 34.375 Length 272, alignments in bytes 7/ 5: 130.625 29.5312 34.0625 Length 276, alignments in bytes 0/ 4: 164.375 29.2188 33.9062 Length 276, alignments in bytes 4/ 0: 132.344 30 34.0625 Length 276, alignments in bytes 4/ 4: 132.812 29.8438 34.2188 Length 276, alignments in bytes 2/ 2: 138.125 29.6875 33.5938 Length 276, alignments in bytes 2/ 6: 168.906 30.3125 34.0625 Length 276, alignments in bytes 6/ 2: 131.562 29.8438 34.0625 Length 276, alignments in bytes 1/ 7: 148.125 29.5312 33.75 Length 276, alignments in bytes 7/ 1: 158.594 30 33.9062 Length 276, alignments in bytes 3/ 4: 136.094 29.5312 34.5312 Length 276, alignments in bytes 4/ 3: 147.031 30.3125 34.0625 Length 276, alignments in bytes 5/ 7: 159.375 29.5312 34.0625 Length 276, alignments in bytes 7/ 5: 158.75 29.375 33.75 Length 280, alignments in bytes 0/ 4: 186.094 29.375 33.9062 Length 280, alignments in bytes 4/ 0: 133.594 30 34.0625 Length 280, alignments in bytes 4/ 4: 160.938 29.6875 33.5938 Length 280, alignments in bytes 2/ 2: 135.938 30.1562 34.0625 Length 280, alignments in bytes 2/ 6: 136.406 30 34.0625 Length 280, alignments in bytes 6/ 2: 161.25 29.5312 33.9062 Length 280, alignments in bytes 1/ 7: 136.719 29.6875 33.75 Length 280, alignments in bytes 7/ 1: 133.125 29.6875 33.4375 Length 280, alignments in bytes 3/ 4: 163.125 29.6875 33.5938 Length 280, alignments in bytes 4/ 3: 140.312 29.375 34.0625 Length 280, alignments in bytes 5/ 7: 159.531 30 34.0625 Length 280, alignments in bytes 7/ 5: 134.375 29.6875 33.125 Length 284, alignments in bytes 0/ 4: 189.375 29.375 33.5938 Length 284, alignments in bytes 4/ 0: 134.688 31.4062 35.3125 Length 284, alignments in bytes 4/ 4: 135.938 30.4688 35.3125 Length 284, alignments in bytes 2/ 2: 182.188 32.3438 34.5312 Length 284, alignments in bytes 2/ 6: 182.5 30.1562 33.5938 Length 284, alignments in bytes 6/ 2: 133.75 30.625 35.1562 Length 284, alignments in bytes 1/ 7: 128.906 29.8438 34.0625 Length 284, alignments in bytes 7/ 1: 136.406 30.4688 35.4688 Length 284, alignments in bytes 3/ 4: 138.281 30 33.4375 Length 284, alignments in bytes 4/ 3: 135.156 30.7812 35.1562 Length 284, alignments in bytes 5/ 7: 161.719 30.7812 35.1562 Length 284, alignments in bytes 7/ 5: 141.406 31.0938 35.4688 Length 288, alignments in bytes 0/ 4: 161.562 30.7812 35.1562 Length 288, alignments in bytes 4/ 0: 141.875 30.7812 35.7812 Length 288, alignments in bytes 4/ 4: 137.812 30.9375 35.3125 Length 288, alignments in bytes 2/ 2: 170.312 30.625 35.7812 Length 288, alignments in bytes 2/ 6: 139.844 30.7812 35.625 Length 288, alignments in bytes 6/ 2: 136.094 30.4688 35.625 Length 288, alignments in bytes 1/ 7: 136.094 31.25 35.4688 Length 288, alignments in bytes 7/ 1: 137.812 30.7812 35.3125 Length 288, alignments in bytes 3/ 4: 139.688 30.9375 35.625 Length 288, alignments in bytes 4/ 3: 137.031 30.7812 35.1562 Length 288, alignments in bytes 5/ 7: 136.406 30.7812 35.3125 Length 288, alignments in bytes 7/ 5: 136.406 30.4688 35.4688 Length 292, alignments in bytes 0/ 4: 194.688 30.7812 35.3125 Length 292, alignments in bytes 4/ 0: 138.125 30.7812 35.1562 Length 292, alignments in bytes 4/ 4: 158.594 30.9375 35.4688 Length 292, alignments in bytes 2/ 2: 140 31.0938 35.3125 Length 292, alignments in bytes 2/ 6: 192.344 31.25 35.4688 Length 292, alignments in bytes 6/ 2: 137.812 31.25 35.1562 Length 292, alignments in bytes 1/ 7: 137.344 31.25 35.4688 Length 292, alignments in bytes 7/ 1: 161.094 30.7812 35.3125 Length 292, alignments in bytes 3/ 4: 157.5 31.0938 35.4688 Length 292, alignments in bytes 4/ 3: 145.312 30.7812 35.4688 Length 292, alignments in bytes 5/ 7: 137.812 30.4688 35.7812 Length 292, alignments in bytes 7/ 5: 174.375 30.9375 35.4688 Length 296, alignments in bytes 0/ 4: 175.156 30.4688 35.7812 Length 296, alignments in bytes 4/ 0: 139.844 31.5625 35.625 Length 296, alignments in bytes 4/ 4: 168.906 30.7812 35.7812 Length 296, alignments in bytes 2/ 2: 191.25 31.0938 35.4688 Length 296, alignments in bytes 2/ 6: 172.5 30.7812 35.4688 Length 296, alignments in bytes 6/ 2: 139.531 30.7812 35.3125 Length 296, alignments in bytes 1/ 7: 138.906 30.7812 36.0938 Length 296, alignments in bytes 7/ 1: 140.469 30.7812 34.375 Length 296, alignments in bytes 3/ 4: 142.812 30.625 35.7812 Length 296, alignments in bytes 4/ 3: 139.844 31.5625 35.4688 Length 296, alignments in bytes 5/ 7: 139.375 30.7812 35.625 Length 296, alignments in bytes 7/ 5: 140.781 31.25 34.375 Length 300, alignments in bytes 0/ 4: 166.562 30.3125 35.625 Length 300, alignments in bytes 4/ 0: 149.062 32.3438 36.7188 Length 300, alignments in bytes 4/ 4: 165.312 32.3438 36.5625 Length 300, alignments in bytes 2/ 2: 167.656 31.7188 35.9375 Length 300, alignments in bytes 2/ 6: 175 30.3125 35.9375 Length 300, alignments in bytes 6/ 2: 140.938 32.3438 36.7188 Length 300, alignments in bytes 1/ 7: 140 31.4062 35.625 Length 300, alignments in bytes 7/ 1: 141.094 31.7188 36.7188 Length 300, alignments in bytes 3/ 4: 144.531 31.0938 34.6875 Length 300, alignments in bytes 4/ 3: 140.625 31.7188 36.7188 Length 300, alignments in bytes 5/ 7: 161.719 32.0312 37.3438 Length 300, alignments in bytes 7/ 5: 188.281 31.875 36.7188 Length 304, alignments in bytes 0/ 4: 179.375 32.0312 36.25 Length 304, alignments in bytes 4/ 0: 162.812 32.0312 37.0312 Length 304, alignments in bytes 4/ 4: 163.125 32.6562 36.5625 Length 304, alignments in bytes 2/ 2: 144.375 32.5 36.875 Length 304, alignments in bytes 2/ 6: 182.031 32.3438 37.1875 Length 304, alignments in bytes 6/ 2: 173.438 31.875 36.7188 Length 304, alignments in bytes 1/ 7: 141.562 32.3438 36.7188 Length 304, alignments in bytes 7/ 1: 142.344 31.7188 36.875 Length 304, alignments in bytes 3/ 4: 145.781 32.8125 37.1875 Length 304, alignments in bytes 4/ 3: 172.188 31.875 36.7188 Length 304, alignments in bytes 5/ 7: 167.969 32.0312 36.875 Length 304, alignments in bytes 7/ 5: 190 32.1875 36.7188 Length 308, alignments in bytes 0/ 4: 171.25 31.875 36.4062 Length 308, alignments in bytes 4/ 0: 184.219 32.0312 37.0312 Length 308, alignments in bytes 4/ 4: 184.219 31.7188 36.4062 Length 308, alignments in bytes 2/ 2: 182.656 31.875 36.5625 Length 308, alignments in bytes 2/ 6: 146.094 31.5625 36.875 Length 308, alignments in bytes 6/ 2: 167.812 31.7188 36.5625 Length 308, alignments in bytes 1/ 7: 169.531 32.1875 37.1875 Length 308, alignments in bytes 7/ 1: 169.531 31.875 36.5625 Length 308, alignments in bytes 3/ 4: 197.188 32.3438 37.1875 Length 308, alignments in bytes 4/ 3: 168.281 31.875 36.875 Length 308, alignments in bytes 5/ 7: 143.75 32.5 36.5625 Length 308, alignments in bytes 7/ 5: 158.438 32.8125 37.0312 Length 312, alignments in bytes 0/ 4: 184.219 31.25 36.25 Length 312, alignments in bytes 4/ 0: 165.625 33.2812 36.7188 Length 312, alignments in bytes 4/ 4: 170.625 32.3438 37.5 Length 312, alignments in bytes 2/ 2: 148.281 33.75 37.5 Length 312, alignments in bytes 2/ 6: 200.781 32.5 36.7188 Length 312, alignments in bytes 6/ 2: 195 31.7188 36.5625 Length 312, alignments in bytes 1/ 7: 145.156 32.5 36.5625 Length 312, alignments in bytes 7/ 1: 145.781 31.7188 36.0938 Length 312, alignments in bytes 3/ 4: 173.75 32.0312 37.3438 Length 312, alignments in bytes 4/ 3: 176.875 31.5625 36.7188 Length 312, alignments in bytes 5/ 7: 145.781 32.1875 37.0312 Length 312, alignments in bytes 7/ 5: 145.312 31.875 36.25 Length 316, alignments in bytes 0/ 4: 175 31.4062 36.4062 Length 316, alignments in bytes 4/ 0: 170.625 34.2188 39.5312 Length 316, alignments in bytes 4/ 4: 172.5 33.4375 39.5312 Length 316, alignments in bytes 2/ 2: 204.375 32.6562 36.7188 Length 316, alignments in bytes 2/ 6: 151.406 32.3438 37.0312 Length 316, alignments in bytes 6/ 2: 147.656 35 39.0625 Length 316, alignments in bytes 1/ 7: 147.812 32.3438 36.875 Length 316, alignments in bytes 7/ 1: 165.781 33.2812 39.0625 Length 316, alignments in bytes 3/ 4: 151.562 31.875 36.4062 Length 316, alignments in bytes 4/ 3: 180 33.75 39.2188 Length 316, alignments in bytes 5/ 7: 149.219 33.125 39.2188 Length 316, alignments in bytes 7/ 5: 165.625 33.2812 39.0625 Length 320, alignments in bytes 0/ 4: 188.281 32.6562 39.5312 Length 320, alignments in bytes 4/ 0: 165 33.9062 39.5312 Length 320, alignments in bytes 4/ 4: 165.312 33.125 39.8438 Length 320, alignments in bytes 2/ 2: 166.875 33.4375 38.75 Length 320, alignments in bytes 2/ 6: 153.281 33.4375 39.8438 Length 320, alignments in bytes 6/ 2: 182.344 33.125 39.2188 Length 320, alignments in bytes 1/ 7: 163.906 33.75 38.9062 Length 320, alignments in bytes 7/ 1: 179.375 33.2812 39.375 Length 320, alignments in bytes 3/ 4: 175.312 33.125 39.8438 Length 320, alignments in bytes 4/ 3: 164.688 33.5938 38.9062 Length 320, alignments in bytes 5/ 7: 150.625 33.4375 38.9062 Length 320, alignments in bytes 7/ 5: 179.375 32.9688 38.9062 Length 324, alignments in bytes 0/ 4: 180.312 32.6562 39.6875 Length 324, alignments in bytes 4/ 0: 172.344 33.4375 39.375 Length 324, alignments in bytes 4/ 4: 181.25 33.4375 39.5312 Length 324, alignments in bytes 2/ 2: 156.562 33.5938 39.0625 Length 324, alignments in bytes 2/ 6: 154.531 33.125 39.6875 Length 324, alignments in bytes 6/ 2: 212.969 33.75 39.8438 Length 324, alignments in bytes 1/ 7: 152.5 33.2812 39.8438 Length 324, alignments in bytes 7/ 1: 152.188 33.125 39.5312 Length 324, alignments in bytes 3/ 4: 173.281 32.8125 38.9062 Length 324, alignments in bytes 4/ 3: 182.5 32.8125 39.375 Length 324, alignments in bytes 5/ 7: 180.469 33.4375 39.5312 Length 324, alignments in bytes 7/ 5: 152.5 33.2812 39.375 Length 328, alignments in bytes 0/ 4: 216.875 32.6562 39.8438 Length 328, alignments in bytes 4/ 0: 153.125 32.8125 39.5312 Length 328, alignments in bytes 4/ 4: 175.625 34.2188 40 Length 328, alignments in bytes 2/ 2: 203.594 33.4375 39.5312 Length 328, alignments in bytes 2/ 6: 159.062 33.125 38.9062 Length 328, alignments in bytes 6/ 2: 185.781 33.75 38.75 Length 328, alignments in bytes 1/ 7: 151.875 33.4375 39.6875 Length 328, alignments in bytes 7/ 1: 167.969 32.9688 36.875 Length 328, alignments in bytes 3/ 4: 188.906 33.2812 40 Length 328, alignments in bytes 4/ 3: 152.969 33.5938 39.2188 Length 328, alignments in bytes 5/ 7: 185.469 33.9062 38.75 Length 328, alignments in bytes 7/ 5: 152.969 33.4375 37.0312 Length 332, alignments in bytes 0/ 4: 183.125 32.6562 39.8438 Length 332, alignments in bytes 4/ 0: 170.938 33.9062 39.375 Length 332, alignments in bytes 4/ 4: 155.625 34.2188 39.2188 Length 332, alignments in bytes 2/ 2: 165.938 33.75 39.0625 Length 332, alignments in bytes 2/ 6: 221.25 33.4375 39.8438 Length 332, alignments in bytes 6/ 2: 207.656 35.3125 39.6875 Length 332, alignments in bytes 1/ 7: 152.188 33.75 39.0625 Length 332, alignments in bytes 7/ 1: 153.438 34.2188 39.2188 Length 332, alignments in bytes 3/ 4: 171.406 33.125 36.875 Length 332, alignments in bytes 4/ 3: 172.812 34.0625 39.5312 Length 332, alignments in bytes 5/ 7: 168.125 34.0625 39.2188 Length 332, alignments in bytes 7/ 5: 153.281 34.0625 39.0625 Length 336, alignments in bytes 0/ 4: 197.188 33.125 38.9062 Length 336, alignments in bytes 4/ 0: 156.094 34.0625 39.375 Length 336, alignments in bytes 4/ 4: 155.938 34.375 39.0625 Length 336, alignments in bytes 2/ 2: 214.531 34.0625 39.375 Length 336, alignments in bytes 2/ 6: 193.75 34.0625 39.0625 Length 336, alignments in bytes 6/ 2: 194.062 34.375 39.2188 Length 336, alignments in bytes 1/ 7: 155.469 34.0625 39.0625 Length 336, alignments in bytes 7/ 1: 156.406 33.75 39.0625 Length 336, alignments in bytes 3/ 4: 179.844 34.375 39.375 Length 336, alignments in bytes 4/ 3: 156.875 34.2188 39.0625 Length 336, alignments in bytes 5/ 7: 187.812 34.0625 39.0625 Length 336, alignments in bytes 7/ 5: 156.25 33.75 38.9062 Length 340, alignments in bytes 0/ 4: 223.594 33.2812 38.75 Length 340, alignments in bytes 4/ 0: 191.562 33.9062 39.2188 Length 340, alignments in bytes 4/ 4: 168.906 33.5938 39.375 Length 340, alignments in bytes 2/ 2: 191.25 34.375 39.375 Length 340, alignments in bytes 2/ 6: 160.625 33.5938 39.2188 Length 340, alignments in bytes 6/ 2: 190 34.0625 39.0625 Length 340, alignments in bytes 1/ 7: 193.438 33.5938 39.375 Length 340, alignments in bytes 7/ 1: 158.594 34.2188 39.0625 Length 340, alignments in bytes 3/ 4: 199.219 33.9062 39.2188 Length 340, alignments in bytes 4/ 3: 176.406 34.0625 38.75 Length 340, alignments in bytes 5/ 7: 156.406 34.5312 38.9062 Length 340, alignments in bytes 7/ 5: 183.594 34.0625 39.0625 Length 344, alignments in bytes 0/ 4: 226.562 33.125 38.9062 Length 344, alignments in bytes 4/ 0: 160.625 34.2188 39.2188 Length 344, alignments in bytes 4/ 4: 193.75 33.75 39.375 Length 344, alignments in bytes 2/ 2: 180.938 34.2188 39.0625 Length 344, alignments in bytes 2/ 6: 219.375 33.75 38.9062 Length 344, alignments in bytes 6/ 2: 158.75 34.2188 38.9062 Length 344, alignments in bytes 1/ 7: 158.281 34.0625 38.9062 Length 344, alignments in bytes 7/ 1: 158.438 33.75 38.125 Length 344, alignments in bytes 3/ 4: 175 34.0625 39.2188 Length 344, alignments in bytes 4/ 3: 160.625 34.2188 39.0625 Length 344, alignments in bytes 5/ 7: 188.438 34.2188 39.375 Length 344, alignments in bytes 7/ 5: 159.688 33.5938 38.125 Length 348, alignments in bytes 0/ 4: 191.562 33.2812 38.5938 Length 348, alignments in bytes 4/ 0: 161.094 34.6875 40.7812 Length 348, alignments in bytes 4/ 4: 205.938 35 40.3125 Length 348, alignments in bytes 2/ 2: 165.312 33.9062 39.2188 Length 348, alignments in bytes 2/ 6: 181.719 33.75 39.0625 Length 348, alignments in bytes 6/ 2: 160 35.1562 40.3125 Length 348, alignments in bytes 1/ 7: 159.844 36.0938 39.375 Length 348, alignments in bytes 7/ 1: 190.312 35 41.0938 Length 348, alignments in bytes 3/ 4: 163.438 33.75 39.375 Length 348, alignments in bytes 4/ 3: 161.25 35.4688 40.7812 Length 348, alignments in bytes 5/ 7: 183.906 34.6875 40.7812 Length 348, alignments in bytes 7/ 5: 191.875 34.8438 40.7812 Length 352, alignments in bytes 0/ 4: 231.406 34.6875 40.1562 Length 352, alignments in bytes 4/ 0: 190.156 34.6875 40.4688 Length 352, alignments in bytes 4/ 4: 220.938 35.3125 40.4688 Length 352, alignments in bytes 2/ 2: 197.031 34.6875 40.9375 Length 352, alignments in bytes 2/ 6: 168.75 34.5312 40.7812 Length 352, alignments in bytes 6/ 2: 229.844 34.6875 40.4688 Length 352, alignments in bytes 1/ 7: 228.75 35 40.7812 Length 352, alignments in bytes 7/ 1: 188.438 35 40.3125 Length 352, alignments in bytes 3/ 4: 194.375 35.3125 40.625 Length 352, alignments in bytes 4/ 3: 190.312 34.8438 40.4688 Length 352, alignments in bytes 5/ 7: 161.562 34.6875 40.1562 Length 352, alignments in bytes 7/ 5: 188.438 35 40.625 Length 356, alignments in bytes 0/ 4: 207.5 34.375 40.4688 Length 356, alignments in bytes 4/ 0: 165.938 35 40.4688 Length 356, alignments in bytes 4/ 4: 165 34.5312 40.625 Length 356, alignments in bytes 2/ 2: 166.562 35 40.3125 Length 356, alignments in bytes 2/ 6: 185 35 40.625 Length 356, alignments in bytes 6/ 2: 191.719 35.1562 40.3125 Length 356, alignments in bytes 1/ 7: 232.344 34.6875 40.1562 Length 356, alignments in bytes 7/ 1: 191.094 35.1562 40.625 Length 356, alignments in bytes 3/ 4: 182.5 34.8438 40.625 Length 356, alignments in bytes 4/ 3: 185 35 40.1562 Length 356, alignments in bytes 5/ 7: 193.438 34.8438 40.3125 Length 356, alignments in bytes 7/ 5: 164.062 34.8438 40.3125 Length 360, alignments in bytes 0/ 4: 196.875 34.5312 40 Length 360, alignments in bytes 4/ 0: 165.781 35 40.3125 Length 360, alignments in bytes 4/ 4: 165.781 35.3125 40.625 Length 360, alignments in bytes 2/ 2: 170.469 34.8438 40.4688 Length 360, alignments in bytes 2/ 6: 197.812 35.1562 40.3125 Length 360, alignments in bytes 6/ 2: 198.75 34.8438 40.4688 Length 360, alignments in bytes 1/ 7: 165.156 34.6875 40.4688 Length 360, alignments in bytes 7/ 1: 200.469 34.6875 40 Length 360, alignments in bytes 3/ 4: 205.781 35 40.3125 Length 360, alignments in bytes 4/ 3: 202.344 34.5312 40.7812 Length 360, alignments in bytes 5/ 7: 203.125 34.8438 40.625 Length 360, alignments in bytes 7/ 5: 208.125 34.8438 40.1562 Length 364, alignments in bytes 0/ 4: 211.875 34.2188 40.1562 Length 364, alignments in bytes 4/ 0: 196.562 36.25 42.3438 Length 364, alignments in bytes 4/ 4: 203.438 36.5625 41.25 Length 364, alignments in bytes 2/ 2: 197.656 35.625 40.3125 Length 364, alignments in bytes 2/ 6: 230.625 34.8438 40.625 Length 364, alignments in bytes 6/ 2: 166.25 36.25 42.0312 Length 364, alignments in bytes 1/ 7: 165.938 35.3125 40.625 Length 364, alignments in bytes 7/ 1: 166.25 37.6562 42.0312 Length 364, alignments in bytes 3/ 4: 227.969 34.6875 39.8438 Length 364, alignments in bytes 4/ 3: 227.812 37.5 41.875 Length 364, alignments in bytes 5/ 7: 203.281 36.5625 41.7188 Length 364, alignments in bytes 7/ 5: 229.531 35.9375 41.875 Length 368, alignments in bytes 0/ 4: 201.406 35.9375 42.0312 Length 368, alignments in bytes 4/ 0: 191.562 35.7812 41.4062 Length 368, alignments in bytes 4/ 4: 162.031 36.875 41.25 Length 368, alignments in bytes 2/ 2: 209.688 36.25 41.875 Length 368, alignments in bytes 2/ 6: 172.188 36.7188 41.25 Length 368, alignments in bytes 6/ 2: 237.812 36.5625 41.875 Length 368, alignments in bytes 1/ 7: 202.5 35.7812 41.4062 Length 368, alignments in bytes 7/ 1: 195.938 36.4062 41.875 Length 368, alignments in bytes 3/ 4: 234.531 36.5625 41.4062 Length 368, alignments in bytes 4/ 3: 190.625 36.4062 41.7188 Length 368, alignments in bytes 5/ 7: 205.312 35.7812 41.875 Length 368, alignments in bytes 7/ 5: 230 35.9375 42.0312 Length 372, alignments in bytes 0/ 4: 216.406 35.3125 41.7188 Length 372, alignments in bytes 4/ 0: 219.531 36.5625 41.5625 Length 372, alignments in bytes 4/ 4: 228.438 35.7812 41.5625 Length 372, alignments in bytes 2/ 2: 205.312 37.3438 41.7188 Length 372, alignments in bytes 2/ 6: 205 36.7188 41.7188 Length 372, alignments in bytes 6/ 2: 189.375 35.7812 41.5625 Length 372, alignments in bytes 1/ 7: 170 35.7812 41.4062 Length 372, alignments in bytes 7/ 1: 192.188 36.5625 41.4062 Length 372, alignments in bytes 3/ 4: 174.688 36.875 41.5625 Length 372, alignments in bytes 4/ 3: 172.188 36.0938 42.0312 Length 372, alignments in bytes 5/ 7: 208.906 35.7812 41.5625 Length 372, alignments in bytes 7/ 5: 172.188 35.7812 41.7188 Length 376, alignments in bytes 0/ 4: 241.25 36.875 41.875 Length 376, alignments in bytes 4/ 0: 195.312 36.4062 41.7188 Length 376, alignments in bytes 4/ 4: 172.656 36.5625 42.3438 Length 376, alignments in bytes 2/ 2: 175.781 36.7188 41.7188 Length 376, alignments in bytes 2/ 6: 215 37.0312 41.875 Length 376, alignments in bytes 6/ 2: 233.125 36.5625 41.875 Length 376, alignments in bytes 1/ 7: 170.938 36.25 42.1875 Length 376, alignments in bytes 7/ 1: 201.406 36.875 41.7188 Length 376, alignments in bytes 3/ 4: 225.625 36.5625 42.1875 Length 376, alignments in bytes 4/ 3: 195.312 36.4062 41.7188 Length 376, alignments in bytes 5/ 7: 197.031 36.4062 41.875 Length 376, alignments in bytes 7/ 5: 172.344 36.4062 41.7188 Length 380, alignments in bytes 0/ 4: 220.625 36.25 41.875 Length 380, alignments in bytes 4/ 0: 237.5 37.5 45.3125 Length 380, alignments in bytes 4/ 4: 236.406 37.1875 44.8438 Length 380, alignments in bytes 2/ 2: 177.344 36.5625 42.6562 Length 380, alignments in bytes 2/ 6: 210.781 36.5625 42.3438 Length 380, alignments in bytes 6/ 2: 174.688 37.3438 45.3125 Length 380, alignments in bytes 1/ 7: 174.375 36.4062 42.1875 Length 380, alignments in bytes 7/ 1: 208.906 37.3438 45.7812 Length 380, alignments in bytes 3/ 4: 202.5 36.25 41.5625 Length 380, alignments in bytes 4/ 3: 213.281 38.125 45.1562 Length 380, alignments in bytes 5/ 7: 175.625 37.6562 44.8438 Length 380, alignments in bytes 7/ 5: 216.094 37.0312 45.1562 Length 384, alignments in bytes 0/ 4: 210.312 37.0312 45.625 Length 384, alignments in bytes 4/ 0: 214.531 37.0312 45.3125 Length 384, alignments in bytes 4/ 4: 214.844 37.5 44.8438 Length 384, alignments in bytes 2/ 2: 179.375 37.1875 45 Length 384, alignments in bytes 2/ 6: 181.406 37.0312 45.3125 Length 384, alignments in bytes 6/ 2: 220.781 37.8125 45 Length 384, alignments in bytes 1/ 7: 192.969 37.1875 45 Length 384, alignments in bytes 7/ 1: 195 37.3438 45 Length 384, alignments in bytes 3/ 4: 200.312 37.3438 45.625 Length 384, alignments in bytes 4/ 3: 194.531 37.1875 45 Length 384, alignments in bytes 5/ 7: 212.969 37.5 45.1562 Length 384, alignments in bytes 7/ 5: 168.594 37.1875 45.3125 Length 388, alignments in bytes 0/ 4: 253.75 37.0312 45 Length 388, alignments in bytes 4/ 0: 215.938 37.3438 45.3125 Length 388, alignments in bytes 4/ 4: 210.312 37.0312 45 Length 388, alignments in bytes 2/ 2: 192.031 37.8125 45.3125 Length 388, alignments in bytes 2/ 6: 211.719 37.5 45.3125 Length 388, alignments in bytes 6/ 2: 200 37.1875 44.8438 Length 388, alignments in bytes 1/ 7: 196.562 37.1875 45.4688 Length 388, alignments in bytes 7/ 1: 221.562 37.1875 44.8438 Length 388, alignments in bytes 3/ 4: 201.719 37.3438 45.3125 Length 388, alignments in bytes 4/ 3: 195.625 37.5 45.1562 Length 388, alignments in bytes 5/ 7: 196.719 37.1875 45.1562 Length 388, alignments in bytes 7/ 5: 221.562 37.3438 45.1562 Length 392, alignments in bytes 0/ 4: 213.281 37.3438 45.3125 Length 392, alignments in bytes 4/ 0: 218.594 37.0312 45.1562 Length 392, alignments in bytes 4/ 4: 214.531 37.3438 45.1562 Length 392, alignments in bytes 2/ 2: 183.594 37.5 45.1562 Length 392, alignments in bytes 2/ 6: 183.75 37.8125 45.4688 Length 392, alignments in bytes 6/ 2: 251.406 37.1875 44.8438 Length 392, alignments in bytes 1/ 7: 196.562 37.0312 45 Length 392, alignments in bytes 7/ 1: 224.375 36.875 42.6562 Length 392, alignments in bytes 3/ 4: 205.625 37.5 45.1562 Length 392, alignments in bytes 4/ 3: 208.75 37.0312 44.8438 Length 392, alignments in bytes 5/ 7: 244.062 37.1875 45 Length 392, alignments in bytes 7/ 5: 177.969 37.1875 42.9688 Length 396, alignments in bytes 0/ 4: 229.688 36.875 45.3125 Length 396, alignments in bytes 4/ 0: 216.562 39.0625 45.1562 Length 396, alignments in bytes 4/ 4: 245.781 38.4375 44.6875 Length 396, alignments in bytes 2/ 2: 223.125 37.8125 45.3125 Length 396, alignments in bytes 2/ 6: 176.719 37.0312 45.1562 Length 396, alignments in bytes 6/ 2: 224.531 38.5938 44.8438 Length 396, alignments in bytes 1/ 7: 240.938 37.3438 45.1562 Length 396, alignments in bytes 7/ 1: 229.219 38.9062 44.8438 Length 396, alignments in bytes 3/ 4: 254.062 37.3438 43.4375 Length 396, alignments in bytes 4/ 3: 192.031 38.5938 44.8438 Length 396, alignments in bytes 5/ 7: 245.781 38.125 44.8438 Length 396, alignments in bytes 7/ 5: 181.562 38.125 44.8438 Length 400, alignments in bytes 0/ 4: 260.625 37.6562 44.5312 Length 400, alignments in bytes 4/ 0: 182.188 38.125 45 Length 400, alignments in bytes 4/ 4: 178.594 38.75 45.1562 Length 400, alignments in bytes 2/ 2: 236.406 38.4375 44.5312 Length 400, alignments in bytes 2/ 6: 236.406 38.2812 44.6875 Length 400, alignments in bytes 6/ 2: 227.969 38.2812 44.5312 Length 400, alignments in bytes 1/ 7: 181.875 38.5938 44.8438 Length 400, alignments in bytes 7/ 1: 184.062 38.5938 44.8438 Length 400, alignments in bytes 3/ 4: 220 38.125 45.1562 Length 400, alignments in bytes 4/ 3: 223.594 38.5938 44.8438 Length 400, alignments in bytes 5/ 7: 182.031 38.125 44.6875 Length 400, alignments in bytes 7/ 5: 182.969 38.125 45 Length 404, alignments in bytes 0/ 4: 263.75 37.9688 44.6875 Length 404, alignments in bytes 4/ 0: 220.938 38.5938 44.5312 Length 404, alignments in bytes 4/ 4: 221.25 38.75 44.6875 Length 404, alignments in bytes 2/ 2: 219.375 38.2812 44.6875 Length 404, alignments in bytes 2/ 6: 192.812 38.5938 44.8438 Length 404, alignments in bytes 6/ 2: 204.062 38.75 45 Length 404, alignments in bytes 1/ 7: 180.781 38.9062 45.1562 Length 404, alignments in bytes 7/ 1: 224.531 38.2812 44.6875 Length 404, alignments in bytes 3/ 4: 248.594 38.9062 45 Length 404, alignments in bytes 4/ 3: 221.875 38.125 44.6875 Length 404, alignments in bytes 5/ 7: 250.469 38.2812 45 Length 404, alignments in bytes 7/ 5: 232.656 38.75 45 Length 408, alignments in bytes 0/ 4: 221.875 37.9688 44.6875 Length 408, alignments in bytes 4/ 0: 187.344 38.5938 44.6875 Length 408, alignments in bytes 4/ 4: 187.188 38.2812 44.8438 Length 408, alignments in bytes 2/ 2: 230.469 38.5938 45.1562 Length 408, alignments in bytes 2/ 6: 247.812 37.9688 44.5312 Length 408, alignments in bytes 6/ 2: 206.719 38.75 45 Length 408, alignments in bytes 1/ 7: 195.625 38.75 45 Length 408, alignments in bytes 7/ 1: 259.375 38.2812 44.375 Length 408, alignments in bytes 3/ 4: 223.906 38.5938 45 Length 408, alignments in bytes 4/ 3: 197.812 38.125 44.5312 Length 408, alignments in bytes 5/ 7: 251.875 38.125 45 Length 408, alignments in bytes 7/ 5: 206.562 38.2812 44.2188 Length 412, alignments in bytes 0/ 4: 268.906 37.6562 44.2188 Length 412, alignments in bytes 4/ 0: 199.844 39.6875 46.5625 Length 412, alignments in bytes 4/ 4: 253.281 39.2188 45.9375 Length 412, alignments in bytes 2/ 2: 232.812 38.9062 45.1562 Length 412, alignments in bytes 2/ 6: 199.531 37.9688 44.6875 Length 412, alignments in bytes 6/ 2: 213.906 39.375 46.4062 Length 412, alignments in bytes 1/ 7: 215 38.125 45.1562 Length 412, alignments in bytes 7/ 1: 188.125 39.8438 46.4062 Length 412, alignments in bytes 3/ 4: 252.5 37.8125 44.6875 Length 412, alignments in bytes 4/ 3: 200 39.375 46.25 Length 412, alignments in bytes 5/ 7: 230.469 39.5312 46.25 Length 412, alignments in bytes 7/ 5: 188.281 39.6875 46.25 Length 416, alignments in bytes 0/ 4: 240.469 39.375 46.875 Length 416, alignments in bytes 4/ 0: 236.25 39.5312 45.9375 Length 416, alignments in bytes 4/ 4: 226.562 40 46.25 Length 416, alignments in bytes 2/ 2: 191.25 39.5312 46.25 Length 416, alignments in bytes 2/ 6: 193.438 39.5312 46.0938 Length 416, alignments in bytes 6/ 2: 189.844 39.5312 45.9375 Length 416, alignments in bytes 1/ 7: 188.906 39.5312 45.9375 Length 416, alignments in bytes 7/ 1: 190.625 39.6875 46.25 Length 416, alignments in bytes 3/ 4: 192.656 39.5312 46.4062 Length 416, alignments in bytes 4/ 3: 190.625 39.6875 45.7812 Length 416, alignments in bytes 5/ 7: 232.344 39.2188 46.0938 Length 416, alignments in bytes 7/ 5: 191.094 39.2188 45.9375 Length 420, alignments in bytes 0/ 4: 227.5 39.375 45.4688 Length 420, alignments in bytes 4/ 0: 233.125 39.2188 45.9375 Length 420, alignments in bytes 4/ 4: 234.375 39.8438 45.9375 Length 420, alignments in bytes 2/ 2: 259.844 39.6875 46.0938 Length 420, alignments in bytes 2/ 6: 223.281 39.375 46.25 Length 420, alignments in bytes 6/ 2: 210.469 39.8438 45.625 Length 420, alignments in bytes 1/ 7: 220 39.6875 46.25 Length 420, alignments in bytes 7/ 1: 267.344 39.375 46.0938 Length 420, alignments in bytes 3/ 4: 243.125 39.5312 46.4062 Length 420, alignments in bytes 4/ 3: 240.781 39.375 46.25 Length 420, alignments in bytes 5/ 7: 186.875 39.6875 45.9375 Length 420, alignments in bytes 7/ 5: 230.781 39.8438 45.9375 Length 424, alignments in bytes 0/ 4: 244.375 39.2188 45.4688 Length 424, alignments in bytes 4/ 0: 231.25 39.375 45.9375 Length 424, alignments in bytes 4/ 4: 234.219 39.8438 45.9375 Length 424, alignments in bytes 2/ 2: 244.375 39.2188 46.0938 Length 424, alignments in bytes 2/ 6: 237.969 39.2188 46.4062 Length 424, alignments in bytes 6/ 2: 192.656 39.375 46.0938 Length 424, alignments in bytes 1/ 7: 189.062 39.6875 46.4062 Length 424, alignments in bytes 7/ 1: 232.188 39.2188 45.3125 Length 424, alignments in bytes 3/ 4: 258.906 39.6875 46.0938 Length 424, alignments in bytes 4/ 3: 232.188 39.5312 45.9375 Length 424, alignments in bytes 5/ 7: 224.219 39.375 46.0938 Length 424, alignments in bytes 7/ 5: 231.875 39.375 45.625 Length 428, alignments in bytes 0/ 4: 231.406 39.2188 45.7812 Length 428, alignments in bytes 4/ 0: 195.938 41.5625 47.8125 Length 428, alignments in bytes 4/ 4: 233.594 40.1562 47.5 Length 428, alignments in bytes 2/ 2: 265.625 40.4688 45.7812 Length 428, alignments in bytes 2/ 6: 236.562 39.6875 46.0938 Length 428, alignments in bytes 6/ 2: 261.562 40.3125 47.1875 Length 428, alignments in bytes 1/ 7: 193.75 40.4688 46.0938 Length 428, alignments in bytes 7/ 1: 195 41.25 47.3438 Length 428, alignments in bytes 3/ 4: 241.406 40 45.4688 Length 428, alignments in bytes 4/ 3: 233.438 41.25 47.6562 Length 428, alignments in bytes 5/ 7: 194.062 40 47.0312 Length 428, alignments in bytes 7/ 5: 195 41.0938 47.1875 Length 432, alignments in bytes 0/ 4: 249.219 40 47.3438 Length 432, alignments in bytes 4/ 0: 196.562 40.4688 47.5 Length 432, alignments in bytes 4/ 4: 231.25 40.9375 47.1875 Length 432, alignments in bytes 2/ 2: 233.125 40.1562 47.3438 Length 432, alignments in bytes 2/ 6: 209.375 40.1562 47.9688 Length 432, alignments in bytes 6/ 2: 194.219 40.625 47.6562 Length 432, alignments in bytes 1/ 7: 190.938 40.7812 47.8125 Length 432, alignments in bytes 7/ 1: 196.094 40.1562 47.6562 Length 432, alignments in bytes 3/ 4: 235.469 40 47.5 Length 432, alignments in bytes 4/ 3: 235 40.625 47.5 Length 432, alignments in bytes 5/ 7: 265.312 40.3125 47.6562 Length 432, alignments in bytes 7/ 5: 234.844 40.4688 47.5 Length 436, alignments in bytes 0/ 4: 187.031 40.3125 47.1875 Length 436, alignments in bytes 4/ 0: 270 40.1562 47.6562 Length 436, alignments in bytes 4/ 4: 266.562 40.1562 47.3438 Length 436, alignments in bytes 2/ 2: 244.062 40.4688 47.6562 Length 436, alignments in bytes 2/ 6: 200.938 40.9375 47.5 Length 436, alignments in bytes 6/ 2: 246.25 40.7812 47.3438 Length 436, alignments in bytes 1/ 7: 195.938 40 47.3438 Length 436, alignments in bytes 7/ 1: 197.344 40.4688 47.3438 Length 436, alignments in bytes 3/ 4: 199.219 40.3125 47.5 Length 436, alignments in bytes 4/ 3: 242.5 40.3125 47.6562 Length 436, alignments in bytes 5/ 7: 198.594 40.9375 47.5 Length 436, alignments in bytes 7/ 5: 249.062 40.3125 47.1875 Length 440, alignments in bytes 0/ 4: 252.969 40 47.0312 Length 440, alignments in bytes 4/ 0: 220.312 40.7812 47.0312 Length 440, alignments in bytes 4/ 4: 199.688 40.4688 47.0312 Length 440, alignments in bytes 2/ 2: 246.562 40.7812 47.1875 Length 440, alignments in bytes 2/ 6: 201.25 40.7812 47.1875 Length 440, alignments in bytes 6/ 2: 197.344 40.4688 47.1875 Length 440, alignments in bytes 1/ 7: 198.125 40.625 47.3438 Length 440, alignments in bytes 7/ 1: 200.469 40.4688 46.5625 Length 440, alignments in bytes 3/ 4: 243.594 40.7812 47.1875 Length 440, alignments in bytes 4/ 3: 239.219 40.3125 47.1875 Length 440, alignments in bytes 5/ 7: 220 41.25 47.8125 Length 440, alignments in bytes 7/ 5: 200.625 40.4688 46.7188 Length 444, alignments in bytes 0/ 4: 240.625 40 47.5 Length 444, alignments in bytes 4/ 0: 241.875 42.6562 48.75 Length 444, alignments in bytes 4/ 4: 241.562 41.5625 48.5938 Length 444, alignments in bytes 2/ 2: 200.469 40.1562 47.8125 Length 444, alignments in bytes 2/ 6: 240.469 42.0312 47.1875 Length 444, alignments in bytes 6/ 2: 250.625 41.875 49.0625 Length 444, alignments in bytes 1/ 7: 199.688 40.3125 47.1875 Length 444, alignments in bytes 7/ 1: 200.781 42.8125 49.0625 Length 444, alignments in bytes 3/ 4: 243.75 40.625 46.7188 Length 444, alignments in bytes 4/ 3: 241.875 42.8125 49.2188 Length 444, alignments in bytes 5/ 7: 200.469 41.875 48.75 Length 444, alignments in bytes 7/ 5: 202.031 41.4062 48.4375 Length 448, alignments in bytes 0/ 4: 290.781 40.9375 48.5938 Length 448, alignments in bytes 4/ 0: 243.75 41.7188 48.4375 Length 448, alignments in bytes 4/ 4: 202.188 41.5625 48.2812 Length 448, alignments in bytes 2/ 2: 201.406 41.5625 48.5938 Length 448, alignments in bytes 2/ 6: 204.375 41.7188 48.4375 Length 448, alignments in bytes 6/ 2: 248.594 41.5625 48.4375 Length 448, alignments in bytes 1/ 7: 224.531 41.5625 48.4375 Length 448, alignments in bytes 7/ 1: 254.844 41.4062 48.5938 Length 448, alignments in bytes 3/ 4: 244.844 41.7188 48.5938 Length 448, alignments in bytes 4/ 3: 202.344 41.875 48.4375 Length 448, alignments in bytes 5/ 7: 202.656 41.5625 48.2812 Length 448, alignments in bytes 7/ 5: 203.438 41.25 48.5938 Length 452, alignments in bytes 0/ 4: 243.75 40.7812 48.125 Length 452, alignments in bytes 4/ 0: 246.406 41.875 48.4375 Length 452, alignments in bytes 4/ 4: 203.906 41.25 48.4375 Length 452, alignments in bytes 2/ 2: 238.438 42.0312 48.9062 Length 452, alignments in bytes 2/ 6: 250.156 41.5625 48.4375 Length 452, alignments in bytes 6/ 2: 202.188 41.7188 48.9062 Length 452, alignments in bytes 1/ 7: 202.812 41.4062 48.5938 Length 452, alignments in bytes 7/ 1: 204.375 41.5625 48.75 Length 452, alignments in bytes 3/ 4: 205.625 41.5625 59.2188 Length 452, alignments in bytes 4/ 3: 203.125 44.375 48.75 Length 452, alignments in bytes 5/ 7: 286.25 42.1875 48.9062 Length 452, alignments in bytes 7/ 5: 281.562 41.5625 48.5938 Length 456, alignments in bytes 0/ 4: 261.875 41.0938 47.9688 Length 456, alignments in bytes 4/ 0: 202.188 41.5625 48.4375 Length 456, alignments in bytes 4/ 4: 248.594 41.5625 48.75 Length 456, alignments in bytes 2/ 2: 207.188 41.7188 48.75 Length 456, alignments in bytes 2/ 6: 294.531 41.5625 48.75 Length 456, alignments in bytes 6/ 2: 277.344 41.5625 48.5938 Length 456, alignments in bytes 1/ 7: 204.219 41.5625 48.5938 Length 456, alignments in bytes 7/ 1: 205 41.4062 47.9688 Length 456, alignments in bytes 3/ 4: 249.375 41.5625 48.75 Length 456, alignments in bytes 4/ 3: 248.438 41.7188 48.5938 Length 456, alignments in bytes 5/ 7: 252.812 41.7188 48.4375 Length 456, alignments in bytes 7/ 5: 251.406 40.9375 47.8125 Length 460, alignments in bytes 0/ 4: 297.188 41.5625 50 Length 460, alignments in bytes 4/ 0: 277.812 45 50.3125 Length 460, alignments in bytes 4/ 4: 225.938 43.5938 50.1562 Length 460, alignments in bytes 2/ 2: 228.594 42.3438 50.3125 Length 460, alignments in bytes 2/ 6: 209.844 41.875 50.3125 Length 460, alignments in bytes 6/ 2: 267.5 44.375 50.4688 Length 460, alignments in bytes 1/ 7: 206.25 42.3438 50.3125 Length 460, alignments in bytes 7/ 1: 202.656 44.2188 50.4688 Length 460, alignments in bytes 3/ 4: 224.844 41.7188 48.4375 Length 460, alignments in bytes 4/ 3: 277.812 43.75 50.3125 Length 460, alignments in bytes 5/ 7: 291.719 43.4375 50.1562 Length 460, alignments in bytes 7/ 5: 280.625 43.75 50.1562 Length 464, alignments in bytes 0/ 4: 300.469 42.0312 49.6875 Length 464, alignments in bytes 4/ 0: 207.5 42.9688 50 Length 464, alignments in bytes 4/ 4: 247.969 42.9688 49.6875 Length 464, alignments in bytes 2/ 2: 231.406 43.4375 50.1562 Length 464, alignments in bytes 2/ 6: 231.25 44.0625 50.1562 Length 464, alignments in bytes 6/ 2: 226.406 43.5938 49.8438 Length 464, alignments in bytes 1/ 7: 207.969 43.2812 49.8438 Length 464, alignments in bytes 7/ 1: 210.156 43.4375 50.3125 Length 464, alignments in bytes 3/ 4: 260.156 42.8125 49.6875 Length 464, alignments in bytes 4/ 3: 248.281 43.2812 50 Length 464, alignments in bytes 5/ 7: 254.375 43.4375 50.3125 Length 464, alignments in bytes 7/ 5: 210.781 42.8125 49.8438 Length 468, alignments in bytes 0/ 4: 251.562 42.1875 49.8438 Length 468, alignments in bytes 4/ 0: 251.25 43.4375 50.1562 Length 468, alignments in bytes 4/ 4: 283.594 42.5 49.8438 Length 468, alignments in bytes 2/ 2: 252.031 43.125 49.8438 Length 468, alignments in bytes 2/ 6: 271.406 43.5938 50.1562 Length 468, alignments in bytes 6/ 2: 210.938 43.5938 49.8438 Length 468, alignments in bytes 1/ 7: 258.75 42.9688 49.6875 Length 468, alignments in bytes 7/ 1: 210.938 43.5938 50 Length 468, alignments in bytes 3/ 4: 255.469 43.5938 50.3125 Length 468, alignments in bytes 4/ 3: 212.188 42.6562 50.1562 Length 468, alignments in bytes 5/ 7: 211.562 42.8125 49.5312 Length 468, alignments in bytes 7/ 5: 212.656 42.9688 49.6875 Length 472, alignments in bytes 0/ 4: 305.156 42.8125 49.8438 Length 472, alignments in bytes 4/ 0: 214.688 42.6562 50.1562 Length 472, alignments in bytes 4/ 4: 259.688 43.4375 50 Length 472, alignments in bytes 2/ 2: 261.25 42.9688 49.8438 Length 472, alignments in bytes 2/ 6: 217.188 43.5938 50.1562 Length 472, alignments in bytes 6/ 2: 212.5 43.5938 50 Length 472, alignments in bytes 1/ 7: 210.938 42.9688 49.8438 Length 472, alignments in bytes 7/ 1: 212.656 42.9688 49.5312 Length 472, alignments in bytes 3/ 4: 218.125 43.75 50.1562 Length 472, alignments in bytes 4/ 3: 259.844 42.6562 50.1562 Length 472, alignments in bytes 5/ 7: 257.969 42.8125 49.8438 Length 472, alignments in bytes 7/ 5: 212.5 42.9688 49.5312 Length 476, alignments in bytes 0/ 4: 272.5 43.2812 49.8438 Length 476, alignments in bytes 4/ 0: 254.844 43.4375 51.5625 Length 476, alignments in bytes 4/ 4: 285.938 44.0625 51.0938 Length 476, alignments in bytes 2/ 2: 259.844 44.375 50.4688 Length 476, alignments in bytes 2/ 6: 260 43.5938 49.8438 Length 476, alignments in bytes 6/ 2: 214.062 43.4375 51.25 Length 476, alignments in bytes 1/ 7: 237.5 43.5938 50.3125 Length 476, alignments in bytes 7/ 1: 214.844 44.375 51.4062 Length 476, alignments in bytes 3/ 4: 218.281 43.4375 50 Length 476, alignments in bytes 4/ 3: 206.094 44.2188 51.4062 Length 476, alignments in bytes 5/ 7: 214.219 43.4375 51.0938 Length 476, alignments in bytes 7/ 5: 214.062 43.75 51.0938 Length 480, alignments in bytes 0/ 4: 257.5 43.125 52.0312 Length 480, alignments in bytes 4/ 0: 257.656 44.375 51.0938 Length 480, alignments in bytes 4/ 4: 255.469 44.2188 50.9375 Length 480, alignments in bytes 2/ 2: 259.062 44.375 51.0938 Length 480, alignments in bytes 2/ 6: 258.125 43.75 50.9375 Length 480, alignments in bytes 6/ 2: 265.625 43.4375 51.0938 Length 480, alignments in bytes 1/ 7: 223.75 44.375 51.0938 Length 480, alignments in bytes 7/ 1: 263.594 44.2188 51.25 Length 480, alignments in bytes 3/ 4: 268.906 43.75 51.25 Length 480, alignments in bytes 4/ 3: 254.219 43.5938 50.9375 Length 480, alignments in bytes 5/ 7: 262.5 44.375 51.25 Length 480, alignments in bytes 7/ 5: 217.5 43.75 50.9375 Length 484, alignments in bytes 0/ 4: 207.812 42.9688 51.25 Length 484, alignments in bytes 4/ 0: 245.781 44.0625 51.0938 Length 484, alignments in bytes 4/ 4: 265.156 43.9062 51.0938 Length 484, alignments in bytes 2/ 2: 271.406 43.4375 51.0938 Length 484, alignments in bytes 2/ 6: 222.5 43.9062 51.25 Length 484, alignments in bytes 6/ 2: 256.094 44.0625 51.0938 Length 484, alignments in bytes 1/ 7: 215.781 44.2188 51.25 Length 484, alignments in bytes 7/ 1: 218.125 43.75 51.0938 Length 484, alignments in bytes 3/ 4: 222.812 43.75 51.25 Length 484, alignments in bytes 4/ 3: 245.156 44.2188 51.0938 Length 484, alignments in bytes 5/ 7: 217.188 43.75 50.9375 Length 484, alignments in bytes 7/ 5: 217.344 43.5938 51.0938 Length 488, alignments in bytes 0/ 4: 261.406 43.4375 51.5625 Length 488, alignments in bytes 4/ 0: 220.938 43.4375 51.0938 Length 488, alignments in bytes 4/ 4: 264.375 44.0625 51.0938 Length 488, alignments in bytes 2/ 2: 283.75 43.9062 51.0938 Length 488, alignments in bytes 2/ 6: 267.344 44.375 51.0938 Length 488, alignments in bytes 6/ 2: 218.906 43.75 50.9375 Length 488, alignments in bytes 1/ 7: 306.406 44.375 51.0938 Length 488, alignments in bytes 7/ 1: 219.062 43.4375 50.625 Length 488, alignments in bytes 3/ 4: 250.156 44.2188 51.0938 Length 488, alignments in bytes 4/ 3: 296.719 43.5938 51.25 Length 488, alignments in bytes 5/ 7: 252.344 44.0625 50.9375 Length 488, alignments in bytes 7/ 5: 222.5 43.125 50.7812 Length 492, alignments in bytes 0/ 4: 281.25 43.2812 51.5625 Length 492, alignments in bytes 4/ 0: 270 45.3125 52.9688 Length 492, alignments in bytes 4/ 4: 264.219 44.6875 52.8125 Length 492, alignments in bytes 2/ 2: 226.25 44.0625 51.25 Length 492, alignments in bytes 2/ 6: 267.812 44.0625 51.0938 Length 492, alignments in bytes 6/ 2: 221.25 44.8438 53.125 Length 492, alignments in bytes 1/ 7: 219.688 44.2188 51.25 Length 492, alignments in bytes 7/ 1: 221.562 45.3125 52.6562 Length 492, alignments in bytes 3/ 4: 227.031 43.2812 51.0938 Length 492, alignments in bytes 4/ 3: 265 44.5312 52.8125 Length 492, alignments in bytes 5/ 7: 220.312 45 52.6562 Length 492, alignments in bytes 7/ 5: 221.875 44.6875 52.8125 Length 496, alignments in bytes 0/ 4: 265.156 44.0625 52.5 Length 496, alignments in bytes 4/ 0: 270.781 45.3125 52.6562 Length 496, alignments in bytes 4/ 4: 270.156 45.3125 52.6562 Length 496, alignments in bytes 2/ 2: 228.75 45.3125 52.6562 Length 496, alignments in bytes 2/ 6: 228.906 45 52.5 Length 496, alignments in bytes 6/ 2: 270.938 44.5312 52.5 Length 496, alignments in bytes 1/ 7: 221.094 44.5312 52.8125 Length 496, alignments in bytes 7/ 1: 223.281 44.6875 52.3438 Length 496, alignments in bytes 3/ 4: 228.594 44.5312 52.1875 Length 496, alignments in bytes 4/ 3: 224.375 44.6875 52.5 Length 496, alignments in bytes 5/ 7: 222.344 45 52.6562 Length 496, alignments in bytes 7/ 5: 222.969 45.1562 52.9688 Length 500, alignments in bytes 0/ 4: 285.312 43.75 52.3438 Length 500, alignments in bytes 4/ 0: 272.344 45 52.5 Length 500, alignments in bytes 4/ 4: 272.344 44.5312 52.8125 Length 500, alignments in bytes 2/ 2: 268.125 44.5312 52.6562 Length 500, alignments in bytes 2/ 6: 284.844 44.6875 52.8125 Length 500, alignments in bytes 6/ 2: 280.312 44.8438 52.8125 Length 500, alignments in bytes 1/ 7: 222.656 45.3125 52.3438 Length 500, alignments in bytes 7/ 1: 274.062 45.1562 52.6562 Length 500, alignments in bytes 3/ 4: 264.688 44.6875 52.6562 Length 500, alignments in bytes 4/ 3: 225.781 44.5312 52.5 Length 500, alignments in bytes 5/ 7: 223.125 44.5312 52.3438 Length 500, alignments in bytes 7/ 5: 274.062 45.1562 52.5 Length 504, alignments in bytes 0/ 4: 270.156 44.0625 52.6562 Length 504, alignments in bytes 4/ 0: 276.094 45 52.5 Length 504, alignments in bytes 4/ 4: 276.25 44.6875 52.8125 Length 504, alignments in bytes 2/ 2: 269.219 44.8438 52.6562 Length 504, alignments in bytes 2/ 6: 276.562 45.7812 52.8125 Length 504, alignments in bytes 6/ 2: 226.25 45.3125 52.5 Length 504, alignments in bytes 1/ 7: 218.125 45.3125 52.6562 Length 504, alignments in bytes 7/ 1: 224.844 44.8438 52.0312 Length 504, alignments in bytes 3/ 4: 268.125 44.6875 52.9688 Length 504, alignments in bytes 4/ 3: 275 44.5312 52.6562 Length 504, alignments in bytes 5/ 7: 225.469 45 52.6562 Length 504, alignments in bytes 7/ 5: 224.844 44.8438 52.3438 Length 508, alignments in bytes 0/ 4: 327.344 43.9062 52.6562 Length 508, alignments in bytes 4/ 0: 279.844 46.0938 54.375 Length 508, alignments in bytes 4/ 4: 272.5 45.7812 54.6875 Length 508, alignments in bytes 2/ 2: 272.5 45.1562 52.9688 Length 508, alignments in bytes 2/ 6: 270.938 45.4688 52.1875 Length 508, alignments in bytes 6/ 2: 225.312 45.9375 55.9375 Length 508, alignments in bytes 1/ 7: 226.875 44.8438 53.125 Length 508, alignments in bytes 7/ 1: 226.406 46.25 55.625 Length 508, alignments in bytes 3/ 4: 268.75 44.8438 52.3438 Length 508, alignments in bytes 4/ 3: 262.969 46.5625 55 Length 508, alignments in bytes 5/ 7: 228.125 46.0938 54.8438 Length 508, alignments in bytes 7/ 5: 226.719 45.7812 55.1562 Length 512, alignments in bytes 0/ 4: 329.844 45.4688 55.625 Length 512, alignments in bytes 4/ 0: 247.969 45.7812 55.3125 Length 512, alignments in bytes 4/ 4: 279.219 46.0938 53.5938 Length 512, alignments in bytes 2/ 2: 303.906 45.7812 55.4688 Length 512, alignments in bytes 2/ 6: 274.688 45.625 54.6875 Length 512, alignments in bytes 6/ 2: 230.625 46.25 55.1562 Length 512, alignments in bytes 1/ 7: 220.781 45.7812 54.5312 Length 512, alignments in bytes 7/ 1: 255.469 45.9375 55.3125 Length 512, alignments in bytes 3/ 4: 271.562 45.9375 55.1562 Length 512, alignments in bytes 4/ 3: 247.812 45.9375 54.6875 Length 512, alignments in bytes 5/ 7: 229.844 45.7812 55.625 Length 512, alignments in bytes 7/ 5: 254.531 45.625 54.8438 --- sysdeps/aarch64/multiarch/Makefile | 1 + sysdeps/aarch64/multiarch/ifunc-impl-list.c | 4 + sysdeps/aarch64/multiarch/strcpy.c | 37 ++++ sysdeps/aarch64/multiarch/strcpy_generic.S | 35 ++++ sysdeps/aarch64/multiarch/strcpy_kunpeng.S | 313 ++++++++++++++++++++++++++++ sysdeps/aarch64/strcpy.S | 10 +- 6 files changed, 396 insertions(+), 4 deletions(-) create mode 100644 sysdeps/aarch64/multiarch/strcpy.c create mode 100644 sysdeps/aarch64/multiarch/strcpy_generic.S create mode 100644 sysdeps/aarch64/multiarch/strcpy_kunpeng.S diff --git a/sysdeps/aarch64/multiarch/Makefile b/sysdeps/aarch64/multiarch/Makefile index 4150b89a90..896faa260e 100644 --- a/sysdeps/aarch64/multiarch/Makefile +++ b/sysdeps/aarch64/multiarch/Makefile @@ -3,5 +3,6 @@ sysdep_routines += memcpy_generic memcpy_thunderx memcpy_thunderx2 \ memcpy_falkor memmove_falkor \ memset_generic memset_falkor memset_emag \ memchr_generic memchr_nosimd \ + strcpy_generic strcpy_kunpeng \ strlen_generic strlen_asimd endif diff --git a/sysdeps/aarch64/multiarch/ifunc-impl-list.c b/sysdeps/aarch64/multiarch/ifunc-impl-list.c index be13b916e5..b7877137ac 100644 --- a/sysdeps/aarch64/multiarch/ifunc-impl-list.c +++ b/sysdeps/aarch64/multiarch/ifunc-impl-list.c @@ -62,5 +62,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strlen, 1, __strlen_asimd) IFUNC_IMPL_ADD (array, i, strlen, 1, __strlen_generic)) + IFUNC_IMPL (i, name, strcpy, + IFUNC_IMPL_ADD (array, i, strcpy, 1, __strcpy_kunpeng) + IFUNC_IMPL_ADD (array, i, strcpy, 1, __strcpy_generic)) + return i; } diff --git a/sysdeps/aarch64/multiarch/strcpy.c b/sysdeps/aarch64/multiarch/strcpy.c new file mode 100644 index 0000000000..582c7c70d1 --- /dev/null +++ b/sysdeps/aarch64/multiarch/strcpy.c @@ -0,0 +1,37 @@ +/* Multiple versions of strlen. AARCH64 version. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* Define multiple versions only for the definition in libc. */ +#if IS_IN (libc) +# undef strcpy +# define strcpy __redirect_strcpy +# include +# include + + +extern __typeof (__redirect_strcpy) __strcpy; + +extern __typeof (__redirect_strcpy) __strcpy_generic attribute_hidden; +extern __typeof (__redirect_strcpy) __strcpy_kunpeng attribute_hidden; + +libc_ifunc (__strcpy, + (IS_KUNPENG (midr) ? __strcpy_kunpeng : __strcpy_generic)); + +# undef strcpy +strong_alias (__strcpy, strcpy); +#endif diff --git a/sysdeps/aarch64/multiarch/strcpy_generic.S b/sysdeps/aarch64/multiarch/strcpy_generic.S new file mode 100644 index 0000000000..30e5838edd --- /dev/null +++ b/sysdeps/aarch64/multiarch/strcpy_generic.S @@ -0,0 +1,35 @@ +/* strcpy/stpcpy - copy a string returning pointer to start/end. + Copyright (C) 2013-2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +#if IS_IN (libc) + +# define STRCPY __strcpy_generic + +/* Do not hide the generic version of strcpy, we use it internally. */ +# undef libc_hidden_builtin_def +# define libc_hidden_builtin_def(name) + +# ifdef SHARED +/* It doesn't make sense to send libc-internal strcpy calls through a PLT. */ + .globl __GI_strcpy; __GI_strcpy = __strcpy_generic +# endif +#endif +weak_alias (STRCPY, strcpy) +#include "../strcpy.S" diff --git a/sysdeps/aarch64/multiarch/strcpy_kunpeng.S b/sysdeps/aarch64/multiarch/strcpy_kunpeng.S new file mode 100644 index 0000000000..6a897405a2 --- /dev/null +++ b/sysdeps/aarch64/multiarch/strcpy_kunpeng.S @@ -0,0 +1,313 @@ +/* Optimized strcpy for Huawei Kunpeng processor. + Copyright (C) 2013-2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* To build as stpcpy, define BUILD_STPCPY before compiling this file. + + To test the page crossing code path more thoroughly, compile with + -DSTRCPY_TEST_PAGE_CROSS - this will force all unaligned copies through + the slower entry path. This option is not intended for production use. */ + +#include + +/* Assumptions: + * + * ARMv8-a, AArch64, unaligned accesses, min page size 4k. + */ + +/* Arguments and results. */ +#define dstin x0 +#define srcin x1 + +/* Locals and temporaries. */ +#define src x2 +#define dst x3 +#define data1 x4 +#define data1w w4 +#define data2 x5 +#define data2w w5 +#define has_nul1 x6 +#define has_nul2 x7 +#define tmp1 x8 +#define tmp2 x9 +#define tmp3 x10 +#define tmp4 x11 +#define zeroones x12 +#define data1a x13 +#define data2a x14 +#define pos x15 +#define len x16 +#define to_align x17 + +/* NEON register */ +#define dataq q2 +#define datav v2 +#define datab2 b3 +#define datav2 v3 + +#define STRCPY __strcpy_kunpeng + + /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 + (=> (X - 1) & ~(X | 0x7f)) is non-zero iff a byte is zero, and + can be done in parallel across the entire word. */ + +#define REP8_01 0x0101010101010101 +#define REP8_7f 0x7f7f7f7f7f7f7f7f +#define REP8_80 0x8080808080808080 + + /* AArch64 systems have a minimum page size of 4k. We can do a quick + page size check for crossing this boundary on entry and if we + do not, then we can short-circuit much of the entry code. We + expect early page-crossing strings to be rare (probability of + 16/MIN_PAGE_SIZE ~= 0.4%), so the branch should be quite + predictable, even with random strings. + + We don't bother checking for larger page sizes, the cost of setting + up the correct page size is just not worth the extra gain from + a small reduction in the cases taking the slow path. Note that + we only care about whether the first fetch, which may be + misaligned, crosses a page boundary - after that we move to aligned + fetches for the remainder of the string. */ + +#ifdef STRCPY_TEST_PAGE_CROSS + /* Make everything that isn't Qword aligned look like a page cross. */ +#define MIN_PAGE_P2 4 +#else +#define MIN_PAGE_P2 12 +#endif + +#define MIN_PAGE_SIZE (1 << MIN_PAGE_P2) + +ENTRY_ALIGN (STRCPY, 6) + DELOUSE (0) + DELOUSE (1) + /* For moderately short strings, the fastest way to do the copy is to + calculate the length of the string in the same way as strlen, then + essentially do a memcpy of the result. This avoids the need for + multiple byte copies and further means that by the time we + reach the bulk copy loop we know we can always use DWord + accesses. We expect strcpy to rarely be called repeatedly + with the same source string, so branch prediction is likely to + always be difficult - we mitigate against this by preferring + conditional select operations over branches whenever this is + feasible. */ + and tmp2, srcin, #(MIN_PAGE_SIZE - 1) + mov zeroones, #REP8_01 + and to_align, srcin, #15 + cmp tmp2, #(MIN_PAGE_SIZE - 16) + neg tmp1, to_align + /* The first fetch will straddle a (possible) page boundary iff + srcin + 15 causes bit[MIN_PAGE_P2] to change value. A 16-byte + aligned string will never fail the page align check, so will + always take the fast path. */ + b.gt L(page_cross) + +L(page_cross_ok): + ldp data1, data2, [srcin] +#ifdef __AARCH64EB__ + /* Because we expect the end to be found within 16 characters + (profiling shows this is the most common case), it's worth + swapping the bytes now to save having to recalculate the + termination syndrome later. We preserve data1 and data2 + so that we can re-use the values later on. */ + rev tmp2, data1 + sub tmp1, tmp2, zeroones + orr tmp2, tmp2, #REP8_7f + bics has_nul1, tmp1, tmp2 + b.ne L(fp_le8) + rev tmp4, data2 + sub tmp3, tmp4, zeroones + orr tmp4, tmp4, #REP8_7f +#else + sub tmp1, data1, zeroones + orr tmp2, data1, #REP8_7f + bics has_nul1, tmp1, tmp2 + b.ne L(fp_le8) + sub tmp3, data2, zeroones + orr tmp4, data2, #REP8_7f +#endif + bics has_nul2, tmp3, tmp4 + b.eq L(bulk_entry) + + /* The string is short (<=16 bytes). We don't know exactly how + short though, yet. Work out the exact length so that we can + quickly select the optimal copy strategy. */ +L(fp_gt8): + rev has_nul2, has_nul2 + clz pos, has_nul2 + mov tmp2, #56 + add dst, dstin, pos, lsr #3 /* Bits to bytes. */ + sub pos, tmp2, pos +#ifdef __AARCH64EB__ + lsr data2, data2, pos +#else + lsl data2, data2, pos +#endif + str data2, [dst, #1] + str data1, [dstin] +#ifdef BUILD_STPCPY + add dstin, dst, #8 +#endif + ret + +L(fp_le8): + rev has_nul1, has_nul1 + clz pos, has_nul1 + add dst, dstin, pos, lsr #3 /* Bits to bytes. */ + subs tmp2, pos, #24 /* Pos in bits. */ + b.lt L(fp_lt4) +#ifdef __AARCH64EB__ + mov tmp2, #56 + sub pos, tmp2, pos + lsr data2, data1, pos + lsr data1, data1, #32 +#else + lsr data2, data1, tmp2 +#endif + /* 4->7 bytes to copy. */ + str data2w, [dst, #-3] + str data1w, [dstin] +#ifdef BUILD_STPCPY + mov dstin, dst +#endif + ret +L(fp_lt4): + cbz pos, L(fp_lt2) + /* 2->3 bytes to copy. */ +#ifdef __AARCH64EB__ + lsr data1, data1, #48 +#endif + strh data1w, [dstin] + /* Fall-through, one byte (max) to go. */ +L(fp_lt2): + /* Null-terminated string. Last character must be zero! */ + strb wzr, [dst] +#ifdef BUILD_STPCPY + mov dstin, dst +#endif + ret + + /* Aligning here ensures that the entry code and main loop all lies + within one 64-byte cache line. */ +L(bulk_entry): + sub to_align, to_align, #16 + stp data1, data2, [dstin] + sub src, srcin, to_align + sub dst, dstin, to_align + b L(entry_no_page_cross) + + /* The inner loop deals with two Dwords at a time. This has a + slightly higher start-up cost, but we should win quite quickly, + especially on cores with a high number of issue slots per + cycle, as we get much better parallelism out of the operations. */ +L(main_loop): + str dataq, [dst], #16 +L(entry_no_page_cross): + ldr dataq, [src], #16 + uminv datab2, datav.16b + mov tmp3, datav2.d[0] + cbnz tmp3, L(main_loop) + + /* Since we know we are copying at least 16 bytes, the fastest way + to deal with the tail is to determine the location of the + trailing NUL, then (re)copy the 16 bytes leading up to that. */ +#ifdef __AARCH64EB__ + rev64 datav.16b, datav.16b +#endif + /* 算出loc */ + cmeq datav.16b, datav.16b, #0 + mov data1, datav.d[0] + mov data2, datav.d[1] + cmp data1, 0 + csel data1, data1, data2, ne + mov pos, 8 + rev data1, data1 + clz tmp1, data1 + csel pos, xzr, pos, ne + add pos, pos, tmp1, lsr 3 + add src, src, pos + add dst, dst, pos + ldr dataq,[src, #-31] + str dataq,[dst, #-15] +#ifdef BUILD_STPCPY + mov dstin, dst +#endif + ret + +L(page_cross): + bic src, srcin, #15 + /* Start by loading two words at [srcin & ~15], then forcing the + bytes that precede srcin to 0xff. This means they never look + like termination bytes. */ + ldp data1, data2, [src] + lsl tmp1, tmp1, #3 /* Bytes beyond alignment -> bits. */ + tst to_align, #7 + csetm tmp2, ne +#ifdef __AARCH64EB__ + lsl tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ +#else + lsr tmp2, tmp2, tmp1 /* Shift (tmp1 & 63). */ +#endif + orr data1, data1, tmp2 + orr data2a, data2, tmp2 + cmp to_align, #8 + csinv data1, data1, xzr, lt + csel data2, data2, data2a, lt + sub tmp1, data1, zeroones + orr tmp2, data1, #REP8_7f + sub tmp3, data2, zeroones + orr tmp4, data2, #REP8_7f + bic has_nul1, tmp1, tmp2 + bics has_nul2, tmp3, tmp4 + ccmp has_nul1, #0, #0, eq /* NZCV = 0000 */ + b.eq L(page_cross_ok) + /* We now need to make data1 and data2 look like they've been + loaded directly from srcin. Do a rotate on the 128-bit value. */ + lsl tmp1, to_align, #3 /* Bytes->bits. */ + neg tmp2, to_align, lsl #3 +#ifdef __AARCH64EB__ + lsl data1a, data1, tmp1 + lsr tmp4, data2, tmp2 + lsl data2, data2, tmp1 + orr tmp4, tmp4, data1a + cmp to_align, #8 + csel data1, tmp4, data2, lt + rev tmp2, data1 + rev tmp4, data2 + sub tmp1, tmp2, zeroones + orr tmp2, tmp2, #REP8_7f + sub tmp3, tmp4, zeroones + orr tmp4, tmp4, #REP8_7f +#else + lsr data1a, data1, tmp1 + lsl tmp4, data2, tmp2 + lsr data2, data2, tmp1 + orr tmp4, tmp4, data1a + cmp to_align, #8 + csel data1, tmp4, data2, lt + sub tmp1, data1, zeroones + orr tmp2, data1, #REP8_7f + sub tmp3, data2, zeroones + orr tmp4, data2, #REP8_7f +#endif + bic has_nul1, tmp1, tmp2 + cbnz has_nul1, L(fp_le8) + bic has_nul2, tmp3, tmp4 + b L(fp_gt8) +END (STRCPY) +weak_alias (STRCPY, strcpy_kunpeng) +libc_hidden_builtin_def (strcpy_kunpeng) diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S index edc16252f6..12767c05d6 100644 --- a/sysdeps/aarch64/strcpy.S +++ b/sysdeps/aarch64/strcpy.S @@ -54,9 +54,11 @@ #define to_align x17 #ifdef BUILD_STPCPY -#define STRCPY __stpcpy +# define STRCPY __stpcpy #else -#define STRCPY strcpy +# ifndef STRCPY +# define STRCPY strcpy +# endif #endif /* NUL detection works on the principle that (X - 1) & (~X) & 0x80 @@ -320,8 +322,8 @@ L(page_cross): END (STRCPY) #ifdef BUILD_STPCPY -weak_alias (__stpcpy, stpcpy) -libc_hidden_def (__stpcpy) +weak_alias (STRCPY, stpcpy) +libc_hidden_def (STRCPY) libc_hidden_builtin_def (stpcpy) #else libc_hidden_builtin_def (strcpy)