From baldrick at free.fr Mon Jan 21 02:39:31 2008 From: baldrick at free.fr (Duncan Sands) Date: Mon, 21 Jan 2008 08:39:31 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46205 - /llvm-gcc-4.2/trunk/gcc/llvm-abi.h Message-ID: <200801210839.m0L8dVIb004859@zion.cs.uiuc.edu> Author: baldrick Date: Mon Jan 21 02:39:31 2008 New Revision: 46205 URL: http://llvm.org/viewvc/llvm-project?rev=46205&view=rev Log: Remove extra tokens at end of #ifndef directive. Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46205&r1=46204&r2=46205&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Mon Jan 21 02:39:31 2008 @@ -123,7 +123,7 @@ // LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR - Return true if this aggregate // value should be passed by value, i.e. passing its address with the byval // attribute bit set. The default is false. -#ifndef LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) +#ifndef LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR #define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) \ false #endif @@ -132,7 +132,7 @@ // value should be passed in a mixture of integer, floating point, and vector // registers. The routine should also return by reference a vector of the // types of the registers being used. The default is false. -#ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) +#ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS #define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) \ false #endif From baldrick at free.fr Mon Jan 21 05:28:00 2008 From: baldrick at free.fr (Duncan Sands) Date: Mon, 21 Jan 2008 11:28:00 -0000 Subject: [llvm-commits] [llvm] r46206 - /llvm/trunk/lib/VMCore/Instructions.cpp Message-ID: <200801211128.m0LBS2dh020979@zion.cs.uiuc.edu> Author: baldrick Date: Mon Jan 21 05:27:55 2008 New Revision: 46206 URL: http://llvm.org/viewvc/llvm-project?rev=46206&view=rev Log: Be consistent with other attribute methods, and check the callee also if it is known. Modified: llvm/trunk/lib/VMCore/Instructions.cpp Modified: llvm/trunk/lib/VMCore/Instructions.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=46206&r1=46205&r2=46206&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/Instructions.cpp (original) +++ llvm/trunk/lib/VMCore/Instructions.cpp Mon Jan 21 05:27:55 2008 @@ -406,7 +406,13 @@ /// @brief Determine if any call argument is an aggregate passed by value. bool CallInst::hasByValArgument() const { - return ParamAttrs && ParamAttrs->hasAttrSomewhere(ParamAttr::ByVal); + if (ParamAttrs && ParamAttrs->hasAttrSomewhere(ParamAttr::ByVal)) + return true; + // Be consistent with other methods and check the callee too. + if (const Function *F = getCalledFunction()) + if (const ParamAttrsList *PAL = F->getParamAttrs()) + return PAL->hasAttrSomewhere(ParamAttr::ByVal); + return false; } void CallInst::setDoesNotThrow(bool doesNotThrow) { From baldrick at free.fr Mon Jan 21 05:28:49 2008 From: baldrick at free.fr (Duncan Sands) Date: Mon, 21 Jan 2008 11:28:49 -0000 Subject: [llvm-commits] [llvm] r46207 - /llvm/trunk/lib/VMCore/ParameterAttributes.cpp Message-ID: <200801211128.m0LBSnxf021022@zion.cs.uiuc.edu> Author: baldrick Date: Mon Jan 21 05:28:49 2008 New Revision: 46207 URL: http://llvm.org/viewvc/llvm-project?rev=46207&view=rev Log: Check that sret is only used on pointers to types with a size, like byval. Modified: llvm/trunk/lib/VMCore/ParameterAttributes.cpp Modified: llvm/trunk/lib/VMCore/ParameterAttributes.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/ParameterAttributes.cpp?rev=46207&r1=46206&r2=46207&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/ParameterAttributes.cpp (original) +++ llvm/trunk/lib/VMCore/ParameterAttributes.cpp Mon Jan 21 05:28:49 2008 @@ -202,8 +202,8 @@ if (const PointerType *PTy = dyn_cast(Ty)) { if (!PTy->getElementType()->isSized()) - // The byval attribute only applies to pointers to types with a size. - Incompatible |= ParamAttr::ByVal; + // The byval and sret attributes only apply to pointers to sized types. + Incompatible |= ByVal | StructRet; } else { // Attributes that only apply to pointers. Incompatible |= ByVal | Nest | NoAlias | StructRet; From tonic at nondot.org Mon Jan 21 13:24:55 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 19:24:55 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46208 - in /llvm-gcc-4.2/branches/release_22: build_gcc gcc/version.c Message-ID: <200801211924.m0LJOtqN021323@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 13:24:54 2008 New Revision: 46208 URL: http://llvm.org/viewvc/llvm-project?rev=46208&view=rev Log: Fix LLVM_VERSION_INFO so we get the correct version of llvm when building with this option. Modified: llvm-gcc-4.2/branches/release_22/build_gcc llvm-gcc-4.2/branches/release_22/gcc/version.c Modified: llvm-gcc-4.2/branches/release_22/build_gcc URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/release_22/build_gcc?rev=46208&r1=46207&r2=46208&view=diff ============================================================================== --- llvm-gcc-4.2/branches/release_22/build_gcc (original) +++ llvm-gcc-4.2/branches/release_22/build_gcc Mon Jan 21 13:24:54 2008 @@ -181,7 +181,7 @@ if [ "$ENABLE_LLVM" == true ]; then # Build llvm-gcc in 'dylib mode'. MAKEFLAGS="$MAKEFLAGS BUILD_LLVM_INTO_A_DYLIB=1" - MAKEFLAGS="$MAKEFLAGS LLVM_VERSION_INFO=$LLVM_GCC_SUBMIT_VERSION" + MAKEFLAGS="$MAKEFLAGS LLVM_VERSION_INFO=$LLVM_SUBMIT_VERSION" fi # LLVM LOCAL end Modified: llvm-gcc-4.2/branches/release_22/gcc/version.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/release_22/gcc/version.c?rev=46208&r1=46207&r2=46208&view=diff ============================================================================== --- llvm-gcc-4.2/branches/release_22/gcc/version.c (original) +++ llvm-gcc-4.2/branches/release_22/gcc/version.c Mon Jan 21 13:24:54 2008 @@ -9,7 +9,15 @@ the revision of your modified compiler. */ /* APPLE LOCAL begin Apple version */ -#define VERSUFFIX "(llvm) (Based on Apple Inc. build 5546)" +#ifdef ENABLE_LLVM +#ifdef LLVM_VERSION_INFO +#define VERSUFFIX " (Based on Apple Inc. build 5546) (LLVM build " LLVM_VERSION_INFO ")" +#else +#define VERSUFFIX " (Based on Apple Inc. build 5546) (LLVM build)" +#endif +#else +#define VERSUFFIX " (Based on Apple Inc. build 5546)" +#endif /* APPLE LOCAL end Apple version */ /* This is the location of the online document giving instructions for From dpatel at apple.com Mon Jan 21 13:28:16 2008 From: dpatel at apple.com (Devang Patel) Date: Mon, 21 Jan 2008 19:28:16 -0000 Subject: [llvm-commits] [llvm] r46209 - /llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c Message-ID: <200801211928.m0LJSG6s021573@zion.cs.uiuc.edu> Author: dpatel Date: Mon Jan 21 13:28:13 2008 New Revision: 46209 URL: http://llvm.org/viewvc/llvm-project?rev=46209&view=rev Log: New test. Added: llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c Added: llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c?rev=46209&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c (added) +++ llvm/trunk/test/CFrontend/2008-01-21-PackedBitFields.c Mon Jan 21 13:28:13 2008 @@ -0,0 +1,7 @@ +// RUN: %llvmgcc %s -S -o - + +typedef double Al1Double __attribute__((aligned(1))); +struct x { int a:23; Al1Double v; }; +struct x X = { 5, 3.0 }; +double foo() { return X.v; } + From dpatel at apple.com Mon Jan 21 13:29:54 2008 From: dpatel at apple.com (Devang Patel) Date: Mon, 21 Jan 2008 19:29:54 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46210 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801211929.m0LJTtno021687@zion.cs.uiuc.edu> Author: dpatel Date: Mon Jan 21 13:29:51 2008 New Revision: 46210 URL: http://llvm.org/viewvc/llvm-project?rev=46210&view=rev Log: Used packed struct for typedef double Al1Double __attribute__((aligned(1))); struct x { int a:23; Al1Double v; }; test case : http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080121/057396.html Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46210&r1=46209&r2=46210&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Mon Jan 21 13:29:51 2008 @@ -1260,6 +1260,8 @@ ExtraBitsAvailable = E; } + bool isPacked() { return Packed; } + void markAsPacked() { Packed = true; } @@ -1793,7 +1795,15 @@ // ordering. Therefore convert to a packed struct and try again. Info.convertToPacked(); DecodeStructFields(Field, Info); - } else + } + else if (TYPE_USER_ALIGN(TREE_TYPE(Field)) + && DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) + && !Info.isPacked()) { + // If Field has user defined alignment and it does not match Ty alignment + // then convert to a packed struct and try again. + Info.convertToPacked(); + DecodeStructFields(Field, Info); + } else // At this point, we know that adding the element will happen at the right // offset. Add it. Info.addElement(Ty, StartOffsetInBytes, Info.getTypeSize(Ty)); From tonic at nondot.org Mon Jan 21 14:07:30 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 20:07:30 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46211 - in /llvm-gcc-4.2/trunk: build_gcc gcc/version.c Message-ID: <200801212007.m0LK7UAr024257@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 14:07:27 2008 New Revision: 46211 URL: http://llvm.org/viewvc/llvm-project?rev=46211&view=rev Log: Fix LLVM_VERSION_INFO so we get the correct version of llvm when building with this option. Modified: llvm-gcc-4.2/trunk/build_gcc llvm-gcc-4.2/trunk/gcc/version.c Modified: llvm-gcc-4.2/trunk/build_gcc URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/build_gcc?rev=46211&r1=46210&r2=46211&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/build_gcc (original) +++ llvm-gcc-4.2/trunk/build_gcc Mon Jan 21 14:07:27 2008 @@ -181,7 +181,7 @@ if [ "$ENABLE_LLVM" == true ]; then # Build llvm-gcc in 'dylib mode'. MAKEFLAGS="$MAKEFLAGS BUILD_LLVM_INTO_A_DYLIB=1" - MAKEFLAGS="$MAKEFLAGS LLVM_VERSION_INFO=$LLVM_GCC_SUBMIT_VERSION" + MAKEFLAGS="$MAKEFLAGS LLVM_VERSION_INFO=$LLVM_SUBMIT_VERSION" fi # LLVM LOCAL end Modified: llvm-gcc-4.2/trunk/gcc/version.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/version.c?rev=46211&r1=46210&r2=46211&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/version.c (original) +++ llvm-gcc-4.2/trunk/gcc/version.c Mon Jan 21 14:07:27 2008 @@ -9,7 +9,15 @@ the revision of your modified compiler. */ /* APPLE LOCAL begin Apple version */ -#define VERSUFFIX "(llvm) (Based on Apple Inc. build 5546)" +#ifdef ENABLE_LLVM +#ifdef LLVM_VERSION_INFO +#define VERSUFFIX " (Based on Apple Inc. build 5546) (LLVM build " LLVM_VERSION_INFO ")" +#else +#define VERSUFFIX " (Based on Apple Inc. build 5546) (LLVM build)" +#endif +#else +#define VERSUFFIX " (Based on Apple Inc. build 5546)" +#endif /* APPLE LOCAL end Apple version */ /* This is the location of the online document giving instructions for From tonic at nondot.org Mon Jan 21 14:43:03 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 20:43:03 -0000 Subject: [llvm-commits] [llvm] r46213 - /llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp Message-ID: <200801212043.m0LKh3xq027255@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 14:43:02 2008 New Revision: 46213 URL: http://llvm.org/viewvc/llvm-project?rev=46213&view=rev Log: Merge from mainline. Make sure the caller doesn't use freed memory. Fixes PR1935. Modified: llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp Modified: llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp?rev=46213&r1=46212&r2=46213&view=diff ============================================================================== --- llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp (original) +++ llvm/branches/release_22/lib/Transforms/Scalar/CodeGenPrepare.cpp Mon Jan 21 14:43:02 2008 @@ -401,8 +401,10 @@ } // If we removed all uses, nuke the cast. - if (CI->use_empty()) + if (CI->use_empty()) { CI->eraseFromParent(); + MadeChange = true; + } return MadeChange; } From tonic at nondot.org Mon Jan 21 14:45:28 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 20:45:28 -0000 Subject: [llvm-commits] [llvm] r46214 - /llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp Message-ID: <200801212045.m0LKjSdQ027449@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 14:45:28 2008 New Revision: 46214 URL: http://llvm.org/viewvc/llvm-project?rev=46214&view=rev Log: Merge from mainline. Honour ByVal parameter attribute for name decoration. Modified: llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp Modified: llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp?rev=46214&r1=46213&r2=46214&view=diff ============================================================================== --- llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp (original) +++ llvm/branches/release_22/lib/Target/X86/X86AsmPrinter.cpp Mon Jan 21 14:45:28 2008 @@ -25,6 +25,7 @@ #include "llvm/Constants.h" #include "llvm/Module.h" #include "llvm/DerivedTypes.h" +#include "llvm/ParameterAttributes.h" #include "llvm/Type.h" #include "llvm/Assembly/Writer.h" #include "llvm/Support/Mangler.h" @@ -48,11 +49,19 @@ return Info; } + unsigned argNum = 1; for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end(); - AI != AE; ++AI) + AI != AE; ++AI, ++argNum) { + const Type* Ty = AI->getType(); + + // 'Dereference' type in case of byval parameter attribute + if (F->paramHasAttr(argNum, ParamAttr::ByVal)) + Ty = cast(Ty)->getElementType(); + // Size should be aligned to DWORD boundary - Size += ((TD->getABITypeSize(AI->getType()) + 3)/4)*4; - + Size += ((TD->getABITypeSize(Ty) + 3)/4)*4; + } + // We're not supporting tooooo huge arguments :) Info.setBytesToPopOnReturn((unsigned int)Size); return Info; From tonic at nondot.org Mon Jan 21 14:47:25 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 20:47:25 -0000 Subject: [llvm-commits] [llvm] r46215 - /llvm/branches/release_22/lib/Target/X86/X86CallingConv.td Message-ID: <200801212047.m0LKlPi3027702@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 14:47:24 2008 New Revision: 46215 URL: http://llvm.org/viewvc/llvm-project?rev=46215&view=rev Log: Merge from mainline. Need to handle any 'nest' parameter before integer parameters, since otherwise it won't be passed in the right register. With this change trampolines work on x86-64 (thanks to Luke Guest for providing access to an x86-64 box). Modified: llvm/branches/release_22/lib/Target/X86/X86CallingConv.td Modified: llvm/branches/release_22/lib/Target/X86/X86CallingConv.td URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/lib/Target/X86/X86CallingConv.td?rev=46215&r1=46214&r2=46215&view=diff ============================================================================== --- llvm/branches/release_22/lib/Target/X86/X86CallingConv.td (original) +++ llvm/branches/release_22/lib/Target/X86/X86CallingConv.td Mon Jan 21 14:47:24 2008 @@ -101,7 +101,10 @@ // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType>, - + + // The 'nest' parameter, if any, is passed in R10. + CCIfNest>, + // The first 6 integer arguments are passed in integer registers. CCIfType<[i32], CCAssignToReg<[EDI, ESI, EDX, ECX, R8D, R9D]>>, CCIfType<[i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8 , R9 ]>>, @@ -114,9 +117,6 @@ CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8 , R9 ]>>, - // The 'nest' parameter, if any, is passed in R10. - CCIfNest>, - // Integer/FP values get stored in stack slots that are 8 bytes in size and // 8-byte aligned if there are no more registers to hold them. CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>, @@ -140,7 +140,10 @@ // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType>, - + + // The 'nest' parameter, if any, is passed in R10. + CCIfNest>, + // The first 6 integer arguments are passed in integer registers. CCIfType<[i32], CCAssignToReg<[EDI, ESI, EDX, ECX, R8D]>>, CCIfType<[i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8]>>, @@ -153,9 +156,6 @@ CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8]>>, - // The 'nest' parameter, if any, is passed in R10. - CCIfNest>, - // Integer/FP values get stored in stack slots that are 8 bytes in size and // 8-byte aligned if there are no more registers to hold them. CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>, From baldrick at free.fr Mon Jan 21 15:37:42 2008 From: baldrick at free.fr (Duncan Sands) Date: Mon, 21 Jan 2008 21:37:42 -0000 Subject: [llvm-commits] [llvm] r46216 - /llvm/trunk/lib/VMCore/ParameterAttributes.cpp Message-ID: <200801212137.m0LLbgRm032628@zion.cs.uiuc.edu> Author: baldrick Date: Mon Jan 21 15:37:41 2008 New Revision: 46216 URL: http://llvm.org/viewvc/llvm-project?rev=46216&view=rev Log: It turns out that in C++ it is legal to declare functions that return an opaque type by value, as long as you don't call it or provide a body (you can take the address of it). So it is wrong to insist that sret parameters not be an opaque*. And I guess it is really up to codegen to complain if someone tries to call such a function. I'm also removing the analogous check from byval parameters, since I don't see why we shouldn't allow them as long as no-one tries to call the function or give it a body. Modified: llvm/trunk/lib/VMCore/ParameterAttributes.cpp Modified: llvm/trunk/lib/VMCore/ParameterAttributes.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/ParameterAttributes.cpp?rev=46216&r1=46215&r2=46216&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/ParameterAttributes.cpp (original) +++ llvm/trunk/lib/VMCore/ParameterAttributes.cpp Mon Jan 21 15:37:41 2008 @@ -200,14 +200,9 @@ // Attributes that only apply to integers. Incompatible |= SExt | ZExt; - if (const PointerType *PTy = dyn_cast(Ty)) { - if (!PTy->getElementType()->isSized()) - // The byval and sret attributes only apply to pointers to sized types. - Incompatible |= ByVal | StructRet; - } else { + if (!isa(Ty)) // Attributes that only apply to pointers. Incompatible |= ByVal | Nest | NoAlias | StructRet; - } return Incompatible; } From resistor at mac.com Mon Jan 21 16:01:04 2008 From: resistor at mac.com (Owen Anderson) Date: Mon, 21 Jan 2008 22:01:04 -0000 Subject: [llvm-commits] [llvm] r46217 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Message-ID: <200801212201.m0LM14ZD019095@zion.cs.uiuc.edu> Author: resistor Date: Mon Jan 21 16:01:01 2008 New Revision: 46217 URL: http://llvm.org/viewvc/llvm-project?rev=46217&view=rev Log: Improve a few comments. Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=46217&r1=46216&r2=46217&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Mon Jan 21 16:01:01 2008 @@ -550,7 +550,9 @@ for (DomForestNode::iterator CI = DFNode->begin(), CE = DFNode->end(); CI != CE; ++CI) { DomForestNode* child = *CI; - + + // If the current node is live-out of the defining block of one of its + // children, insert a copy for it if (isLiveOut(DFNode->getReg(), MRI.getVRegDef(child->getReg())->getParent(), MRI, LV)) { // Insert copies for parent @@ -565,6 +567,9 @@ PHIUnion.erase(SrcReg); } } + + // If a node is live-in to the defining block of one of its children, but + // not live-out, then we need to scan that block for local interferences. } else if (isLiveIn(DFNode->getReg(), MRI.getVRegDef(child->getReg())->getParent(), MRI, LV) || From resistor at mac.com Mon Jan 21 16:03:00 2008 From: resistor at mac.com (Owen Anderson) Date: Mon, 21 Jan 2008 22:03:00 -0000 Subject: [llvm-commits] [llvm] r46218 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Message-ID: <200801212203.m0LM30oL019289@zion.cs.uiuc.edu> Author: resistor Date: Mon Jan 21 16:03:00 2008 New Revision: 46218 URL: http://llvm.org/viewvc/llvm-project?rev=46218&view=rev Log: Clarify a deviation from the original algorithm. Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=46218&r1=46217&r2=46218&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Mon Jan 21 16:03:00 2008 @@ -552,7 +552,10 @@ DomForestNode* child = *CI; // If the current node is live-out of the defining block of one of its - // children, insert a copy for it + // children, insert a copy for it. NOTE: The paper actually calls for + // a more elaborate heuristic for determining whether to insert copies + // for the child or the parent. In the interest of simplicity, we're + // just always choosing the parent. if (isLiveOut(DFNode->getReg(), MRI.getVRegDef(child->getReg())->getParent(), MRI, LV)) { // Insert copies for parent From dalej at apple.com Mon Jan 21 16:03:59 2008 From: dalej at apple.com (Dale Johannesen) Date: Mon, 21 Jan 2008 22:03:59 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46219 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801212203.m0LM3x86019381@zion.cs.uiuc.edu> Author: johannes Date: Mon Jan 21 16:03:58 2008 New Revision: 46219 URL: http://llvm.org/viewvc/llvm-project?rev=46219&view=rev Log: Fix 2 testsuite crashes where initializer size was != size of its type. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46219&r1=46218&r2=46219&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Mon Jan 21 16:03:58 2008 @@ -10567,7 +10567,10 @@ obstack_free (&util_obstack, util_firstobj); /* Set offset. */ - ivar = tree_cons (NULL_TREE, byte_position (field_decl), ivar); +/* LLVM LOCAL begin make initializer size match type size */ + ivar = tree_cons (NULL_TREE, convert (integer_type_node, + byte_position (field_decl)), ivar); +/* LLVM LOCAL end */ initlist = tree_cons (NULL_TREE, objc_build_constructor (type, nreverse (ivar)), initlist); @@ -10836,8 +10839,13 @@ decl = start_var_decl (type, synth_id_with_class_suffix (name, objc_implementation_context)); + /* LLVM LOCAL begin make initializer size match type size */ /* APPLE LOCAL ObjC new abi */ - initlist = build_tree_list (NULL_TREE, build_int_cst (NULL_TREE, init_val)); + initlist = build_tree_list (NULL_TREE, build_int_cst (newabi + ? NULL_TREE + : ptr_type_node, + init_val)); + /* LLVM LOCAL end */ initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, size), initlist); initlist = tree_cons (NULL_TREE, list, initlist); From dpatel at apple.com Mon Jan 21 16:15:59 2008 From: dpatel at apple.com (Devang Patel) Date: Mon, 21 Jan 2008 22:15:59 -0000 Subject: [llvm-commits] [llvm] r46220 - /llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c Message-ID: <200801212215.m0LMFxYI020471@zion.cs.uiuc.edu> Author: dpatel Date: Mon Jan 21 16:15:58 2008 New Revision: 46220 URL: http://llvm.org/viewvc/llvm-project?rev=46220&view=rev Log: New test. Added: llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c Added: llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c?rev=46220&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c (added) +++ llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c Mon Jan 21 16:15:58 2008 @@ -0,0 +1,5 @@ +// RUN: %llvmgcc %s -S -o - + +struct X { long double b; unsigned char c; double __attribute__((packed)) d; }; +struct X x = { 3.0L, 5, 3.0 }; + From dpatel at apple.com Mon Jan 21 16:19:26 2008 From: dpatel at apple.com (Devang Patel) Date: Mon, 21 Jan 2008 22:19:26 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46221 - in /llvm-gcc-4.2/trunk/gcc: llvm-internal.h llvm-types.cpp Message-ID: <200801212219.m0LMJQ19020792@zion.cs.uiuc.edu> Author: dpatel Date: Mon Jan 21 16:19:26 2008 New Revision: 46221 URL: http://llvm.org/viewvc/llvm-project?rev=46221&view=rev Log: Instead of converting llvm struct as packed llvm struct on the fly (through converToPacked()), redecode struct fields again after marking struct as packed struct. This fixes http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080121/057406.html Modified: llvm-gcc-4.2/trunk/gcc/llvm-internal.h llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-internal.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-internal.h?rev=46221&r1=46220&r2=46221&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-internal.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-internal.h Mon Jan 21 16:19:26 2008 @@ -172,7 +172,7 @@ const Type *ConvertRECORD(tree_node *type, tree_node *orig_type); const Type *ConvertUNION(tree_node *type, tree_node *orig_type); void SetFieldIndex(tree_node *field_decl, unsigned int Index); - void DecodeStructFields(tree_node *Field, StructTypeConversionInfo &Info); + bool DecodeStructFields(tree_node *Field, StructTypeConversionInfo &Info); void DecodeStructBitField(tree_node *Field, StructTypeConversionInfo &Info); }; Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46221&r1=46220&r2=46221&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Mon Jan 21 16:19:26 2008 @@ -1509,37 +1509,9 @@ void addNewBitField(unsigned Size, unsigned FirstUnallocatedByte); - void convertToPacked(); - void dump() const; }; -// LLVM disagrees as to where to put field natural field ordering. -// ordering. Therefore convert to a packed struct. -void StructTypeConversionInfo::convertToPacked() { - assert (!Packed && "Packing a packed struct!"); - Packed = true; - - // Fill the padding that existed from alignment restrictions - // with byte arrays to ensure the same layout when converting - // to a packed struct. - for (unsigned x = 1; x < ElementOffsetInBytes.size(); ++x) { - if (ElementOffsetInBytes[x-1] + ElementSizeInBytes[x-1] - < ElementOffsetInBytes[x]) { - uint64_t padding = ElementOffsetInBytes[x] - - ElementOffsetInBytes[x-1] - ElementSizeInBytes[x-1]; - const Type *Pad = Type::Int8Ty; - Pad = ArrayType::get(Pad, padding); - ElementOffsetInBytes.insert(ElementOffsetInBytes.begin() + x, - ElementOffsetInBytes[x-1] + - ElementSizeInBytes[x-1]); - ElementSizeInBytes.insert(ElementSizeInBytes.begin() + x, padding); - Elements.insert(Elements.begin() + x, Pad); - PaddingElement.insert(PaddingElement.begin() + x, true); - } - } -} - // Add new element which is a bit field. Size is not the size of bit filed, // but size of bits required to determine type of new Field which will be // used to access this bit field. @@ -1765,17 +1737,18 @@ /// DecodeStructFields - This method decodes the specified field, if it is a /// FIELD_DECL, adding or updating the specified StructTypeConversionInfo to -/// reflect it. -void TypeConverter::DecodeStructFields(tree Field, +/// reflect it. Return tree if field is decoded correctly. Otherwise return +/// false. +bool TypeConverter::DecodeStructFields(tree Field, StructTypeConversionInfo &Info) { if (TREE_CODE(Field) != FIELD_DECL || TREE_CODE(DECL_FIELD_OFFSET(Field)) != INTEGER_CST) - return; + return true; // Handle bit-fields specially. if (isBitfield(Field)) { DecodeStructBitField(Field, Info); - return; + return true; } Info.allFieldsAreNotBitFields(); @@ -1793,20 +1766,19 @@ if (!Info.ResizeLastElementIfOverlapsWith(StartOffsetInBytes, Field, Ty)) { // LLVM disagrees as to where this field should go in the natural field // ordering. Therefore convert to a packed struct and try again. - Info.convertToPacked(); - DecodeStructFields(Field, Info); + return false; } else if (TYPE_USER_ALIGN(TREE_TYPE(Field)) && DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) && !Info.isPacked()) { // If Field has user defined alignment and it does not match Ty alignment // then convert to a packed struct and try again. - Info.convertToPacked(); - DecodeStructFields(Field, Info); + return false; } else // At this point, we know that adding the element will happen at the right // offset. Add it. Info.addElement(Ty, StartOffsetInBytes, Info.getTypeSize(Ty)); + return true; } /// DecodeStructBitField - This method decodes the specified bit-field, adding @@ -1984,8 +1956,24 @@ FixBaseClassFields(type); // Convert over all of the elements of the struct. - for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) - DecodeStructFields(Field, *Info); + bool retryAsPackedStruct = false; + for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) { + if (DecodeStructFields(Field, *Info) == false) { + retryAsPackedStruct = true; + break; + } + } + + if (retryAsPackedStruct) { + delete Info; + Info = new StructTypeConversionInfo(*TheTarget, TYPE_ALIGN_UNIT(type), + true); + for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) { + if (DecodeStructFields(Field, *Info) == false) { + assert(0 && "Unable to decode struct fields."); + } + } + } // If the LLVM struct requires explicit tail padding to be the same size as // the GCC struct, insert tail padding now. This handles, e.g., "{}" in C++. From sabre at nondot.org Mon Jan 21 16:27:27 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 21 Jan 2008 22:27:27 -0000 Subject: [llvm-commits] [llvm] r46222 - /llvm/trunk/include/llvm/CodeGen/MachineRelocation.h Message-ID: <200801212227.m0LMRRFX021645@zion.cs.uiuc.edu> Author: lattner Date: Mon Jan 21 16:27:27 2008 New Revision: 46222 URL: http://llvm.org/viewvc/llvm-project?rev=46222&view=rev Log: Fix the failures in the PPC JIT by marking relocation entries for external symbols (e.g. 'fmod') as needing a stub. This regression was introduced by Evan's jit patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071231/056749.html With this fixed, the two ExecutionEngine failures are passing on ppc, and the ppc jit works on freebench and olden. This should be pulled into the 2.2 release branch. Modified: llvm/trunk/include/llvm/CodeGen/MachineRelocation.h Modified: llvm/trunk/include/llvm/CodeGen/MachineRelocation.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineRelocation.h?rev=46222&r1=46221&r2=46222&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/MachineRelocation.h (original) +++ llvm/trunk/include/llvm/CodeGen/MachineRelocation.h Mon Jan 21 16:27:27 2008 @@ -141,7 +141,7 @@ Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isExtSym; - Result.NeedStub = false; + Result.NeedStub = true; Result.GOTRelative = GOTrelative; Result.Target.ExtSym = ES; return Result; From asl at math.spbu.ru Mon Jan 21 16:30:27 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Mon, 21 Jan 2008 22:30:27 -0000 Subject: [llvm-commits] [llvm] r46223 - /llvm/trunk/utils/TableGen/Record.h Message-ID: <200801212230.m0LMURiR022003@zion.cs.uiuc.edu> Author: asl Date: Mon Jan 21 16:30:26 2008 New Revision: 46223 URL: http://llvm.org/viewvc/llvm-project?rev=46223&view=rev Log: Provide iterator access to ListInit contents Modified: llvm/trunk/utils/TableGen/Record.h Modified: llvm/trunk/utils/TableGen/Record.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/Record.h?rev=46223&r1=46222&r2=46223&view=diff ============================================================================== --- llvm/trunk/utils/TableGen/Record.h (original) +++ llvm/trunk/utils/TableGen/Record.h Mon Jan 21 16:30:26 2008 @@ -643,6 +643,17 @@ virtual Init *resolveReferences(Record &R, const RecordVal *RV); virtual std::string getAsString() const; + + typedef std::vector::iterator iterator; + typedef std::vector::const_iterator const_iterator; + + inline iterator begin() { return Values.begin(); } + inline const_iterator begin() const { return Values.begin(); } + inline iterator end () { return Values.end(); } + inline const_iterator end () const { return Values.end(); } + + inline size_t size () const { return Values.size(); } + inline bool empty() const { return Values.empty(); } }; /// BinOpInit - !op (X, Y) - Combine two inits. From clattner at apple.com Mon Jan 21 16:30:24 2008 From: clattner at apple.com (Chris Lattner) Date: Mon, 21 Jan 2008 14:30:24 -0800 Subject: [llvm-commits] [llvm] r46216 - /llvm/trunk/lib/VMCore/ParameterAttributes.cpp In-Reply-To: <200801212137.m0LLbgRm032628@zion.cs.uiuc.edu> References: <200801212137.m0LLbgRm032628@zion.cs.uiuc.edu> Message-ID: <50A5A32C-56FB-4461-A2E5-9BBECA539595@apple.com> On Jan 21, 2008, at 1:37 PM, Duncan Sands wrote: > URL: http://llvm.org/viewvc/llvm-project?rev=46216&view=rev > Log: > It turns out that in C++ it is legal to declare functions > that return an opaque type by value, as long as you don't > call it or provide a body (you can take the address of it). > So it is wrong to insist that sret parameters not be an > opaque*. And I guess it is really up to codegen to complain > if someone tries to call such a function. I'm also removing > the analogous check from byval parameters, since I don't > see why we shouldn't allow them as long as no-one tries to > call the function or give it a body. Makes sense, thanks Duncan, -Chris From kremenek at apple.com Mon Jan 21 16:33:30 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 22:33:30 -0000 Subject: [llvm-commits] [llvm] r46224 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h Message-ID: <200801212233.m0LMXUM5022148@zion.cs.uiuc.edu> Author: kremenek Date: Mon Jan 21 16:33:30 2008 New Revision: 46224 URL: http://llvm.org/viewvc/llvm-project?rev=46224&view=rev Log: Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based scheme. The problem was that we previously hashed based on the pointers of the left and right children, but this is bogus: we can easily have different trees that represent the same set. Now we use a hashing based scheme that compares the *contents* of the trees, but not without having to do a full scan of a tree. The only caveat is that with hashing is that we may have collisions, which result in two different trees being falsely labeled as equivalent. If this becomes a problem, we can add extra data to the profile to hopefully resolve most collisions. Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46224&r1=46223&r2=46224&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Mon Jan 21 16:33:30 2008 @@ -198,6 +198,7 @@ ImutAVLTree* Right; unsigned Height; value_type Value; + unsigned Hash; //===----------------------------------------------------===// // Profiling or FoldingSet. @@ -205,22 +206,38 @@ private: + static inline + unsigned ComputeHash(ImutAVLTree* L, ImutAVLTree* R, value_type_ref V) { + FoldingSetNodeID ID; + + ID.AddInteger(L ? L->ComputeHash() : 0); + ImutInfo::Profile(ID,V); + ID.AddInteger(R ? R->ComputeHash() : 0); + + return ID.ComputeHash(); + } + + inline unsigned ComputeHash() { + if (!isMutable() && Hash) return Hash; + Hash = ComputeHash(getSafeLeft(), getRight(), getValue()); + return Hash; + } + /// Profile - Generates a FoldingSet profile for a tree node before it is /// created. This is used by the ImutAVLFactory when creating /// trees. static inline void Profile(FoldingSetNodeID& ID, ImutAVLTree* L, ImutAVLTree* R, - value_type_ref V) { - ID.AddPointer(L); - ID.AddPointer(R); - ImutInfo::Profile(ID,V); + value_type_ref V) { + + ID.AddInteger(ComputeHash(L, R, V)); } public: /// Profile - Generates a FoldingSet profile for an existing tree node. void Profile(FoldingSetNodeID& ID) { - Profile(ID,getSafeLeft(),getRight(),getValue()); + ID.AddInteger(ComputeHash()); } //===----------------------------------------------------===// @@ -235,7 +252,7 @@ /// ImutAVLFactory. ImutAVLTree(ImutAVLTree* l, ImutAVLTree* r, value_type_ref v, unsigned height) : Left(reinterpret_cast(l) | Mutable), - Right(r), Height(height), Value(v) {} + Right(r), Height(height), Value(v), Hash(0) {} /// isMutable - Returns true if the left and right subtree references From clattner at apple.com Mon Jan 21 16:36:05 2008 From: clattner at apple.com (Chris Lattner) Date: Mon, 21 Jan 2008 14:36:05 -0800 Subject: [llvm-commits] [llvm] r46224 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h In-Reply-To: <200801212233.m0LMXUM5022148@zion.cs.uiuc.edu> References: <200801212233.m0LMXUM5022148@zion.cs.uiuc.edu> Message-ID: <3E7D9094-0B9A-4492-814D-AC96AEDE655B@apple.com> On Jan 21, 2008, at 2:33 PM, Ted Kremenek wrote: > URL: http://llvm.org/viewvc/llvm-project?rev=46224&view=rev > Log: > Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based > scheme. The > problem was that we previously hashed based on the pointers of the > left and > right children, but this is bogus: we can easily have different > trees that > represent the same set. Now we use a hashing based scheme that > compares the > *contents* of the trees, but not without having to do a full scan of > a tree. The > only caveat is that with hashing is that we may have collisions, > which result in > two different trees being falsely labeled as equivalent. If this > becomes a > problem, we can add extra data to the profile to hopefully resolve > most > collisions. I don't think this works Ted: collisions *will* cause the tree to be corrupt, and you can't guarantee that they won't happen. I don't think this is valid for all clients of the data structure. -Chris From tonic at nondot.org Mon Jan 21 16:45:15 2008 From: tonic at nondot.org (Tanya Lattner) Date: Mon, 21 Jan 2008 22:45:15 -0000 Subject: [llvm-commits] [llvm] r46225 - /llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h Message-ID: <200801212245.m0LMjFUV022918@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 16:45:15 2008 New Revision: 46225 URL: http://llvm.org/viewvc/llvm-project?rev=46225&view=rev Log: Merge from mainline. Fix the failures in the PPC JIT by marking relocation entries for external symbols (e.g. 'fmod') as needing a stub. This regression was introduced by Evan's jit patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071231/056749.html With this fixed, the two ExecutionEngine failures are passing on ppc, and the ppc jit works on freebench and olden. Modified: llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h Modified: llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h?rev=46225&r1=46224&r2=46225&view=diff ============================================================================== --- llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h (original) +++ llvm/branches/release_22/include/llvm/CodeGen/MachineRelocation.h Mon Jan 21 16:45:15 2008 @@ -141,7 +141,7 @@ Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isExtSym; - Result.NeedStub = false; + Result.NeedStub = true; Result.GOTRelative = GOTrelative; Result.Target.ExtSym = ES; return Result; From kremenek at apple.com Mon Jan 21 16:49:23 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 22:49:23 -0000 Subject: [llvm-commits] [llvm] r46226 - /llvm/trunk/include/llvm/ADT/FoldingSet.h Message-ID: <200801212249.m0LMnNZO023071@zion.cs.uiuc.edu> Author: kremenek Date: Mon Jan 21 16:49:22 2008 New Revision: 46226 URL: http://llvm.org/viewvc/llvm-project?rev=46226&view=rev Log: Added "clear" method to FoldingSetNodeID to allow a FoldingSetNodeID object to be reused to compute multiple object profiles. Modified: llvm/trunk/include/llvm/ADT/FoldingSet.h Modified: llvm/trunk/include/llvm/ADT/FoldingSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/FoldingSet.h?rev=46226&r1=46225&r2=46226&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/FoldingSet.h (original) +++ llvm/trunk/include/llvm/ADT/FoldingSet.h Mon Jan 21 16:49:22 2008 @@ -208,6 +208,10 @@ void AddAPFloat(const APFloat& apf); void AddString(const std::string &String); + /// clear - Clear the accumulated profile, allowing this FoldingSetNodeID + /// object to be used to compute a new profile. + inline void clear() { Bits.clear(); } + /// ComputeHash - Compute a strong hash value for this FoldingSetNodeID, used /// to lookup the node in the FoldingSetImpl. unsigned ComputeHash() const; From kremenek at apple.com Mon Jan 21 16:50:38 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 22:50:38 -0000 Subject: [llvm-commits] [llvm] r46227 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h Message-ID: <200801212250.m0LMoceT023145@zion.cs.uiuc.edu> Author: kremenek Date: Mon Jan 21 16:50:37 2008 New Revision: 46227 URL: http://llvm.org/viewvc/llvm-project?rev=46227&view=rev Log: Adjusted ImutAVLTree::ComputeHash to compute a hash value that is based on a clearer sequence of hashing compositions. Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46227&r1=46226&r2=46227&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Mon Jan 21 16:50:37 2008 @@ -210,11 +210,24 @@ unsigned ComputeHash(ImutAVLTree* L, ImutAVLTree* R, value_type_ref V) { FoldingSetNodeID ID; - ID.AddInteger(L ? L->ComputeHash() : 0); + if (L) ID.AddInteger(L->ComputeHash()); ImutInfo::Profile(ID,V); - ID.AddInteger(R ? R->ComputeHash() : 0); - return ID.ComputeHash(); + // Compute the "intermediate" hash. Basically, we want the net profile to + // be: H(H(....H(H(H(item0),item1),item2)...),itemN), where + // H(item) is the hash of the data item and H(hash,item) is a hash + // of the last item hash and the the next item. + + unsigned X = ID.ComputeHash(); + ID.clear(); + + if (R) { + ID.AddInteger(X); + ID.AddInteger(R->ComputeHash()); + X = ID.ComputeHash(); + } + + return X; } inline unsigned ComputeHash() { From kremenek at apple.com Mon Jan 21 16:51:44 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 22:51:44 -0000 Subject: [llvm-commits] [llvm] r46228 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h Message-ID: <200801212251.m0LMpi1x023189@zion.cs.uiuc.edu> Author: kremenek Date: Mon Jan 21 16:51:35 2008 New Revision: 46228 URL: http://llvm.org/viewvc/llvm-project?rev=46228&view=rev Log: Moved method call within a conditional branch because its effects will be ignored on the false branch. Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46228&r1=46227&r2=46228&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Mon Jan 21 16:51:35 2008 @@ -219,9 +219,9 @@ // of the last item hash and the the next item. unsigned X = ID.ComputeHash(); - ID.clear(); if (R) { + ID.clear(); ID.AddInteger(X); ID.AddInteger(R->ComputeHash()); X = ID.ComputeHash(); From kremenek at apple.com Mon Jan 21 16:54:46 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 22:54:46 -0000 Subject: [llvm-commits] [llvm] r46229 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h Message-ID: <200801212254.m0LMsk0K023311@zion.cs.uiuc.edu> Author: kremenek Date: Mon Jan 21 16:54:46 2008 New Revision: 46229 URL: http://llvm.org/viewvc/llvm-project?rev=46229&view=rev Log: Fixed buggy caching of the hash value of an ImutAVLTree node. Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46229&r1=46228&r2=46229&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Mon Jan 21 16:54:46 2008 @@ -231,9 +231,12 @@ } inline unsigned ComputeHash() { - if (!isMutable() && Hash) return Hash; - Hash = ComputeHash(getSafeLeft(), getRight(), getValue()); - return Hash; + if (Hash) return Hash; + + unsigned X = ComputeHash(getSafeLeft(), getRight(), getValue()); + if (!isMutable()) Hash = X; + + return X; } /// Profile - Generates a FoldingSet profile for a tree node before it is From kremenek at apple.com Mon Jan 21 17:08:56 2008 From: kremenek at apple.com (Ted Kremenek) Date: Mon, 21 Jan 2008 15:08:56 -0800 Subject: [llvm-commits] [llvm] r46224 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h In-Reply-To: <3E7D9094-0B9A-4492-814D-AC96AEDE655B@apple.com> References: <200801212233.m0LMXUM5022148@zion.cs.uiuc.edu> <3E7D9094-0B9A-4492-814D-AC96AEDE655B@apple.com> Message-ID: On Jan 21, 2008, at 2:36 PM, Chris Lattner wrote: > On Jan 21, 2008, at 2:33 PM, Ted Kremenek wrote: >> URL: http://llvm.org/viewvc/llvm-project?rev=46224&view=rev >> Log: >> Replaced (FoldingSet) profiling of ImutAVLTree with a hashing based >> scheme. The >> problem was that we previously hashed based on the pointers of the >> left and >> right children, but this is bogus: we can easily have different >> trees that >> represent the same set. Now we use a hashing based scheme that >> compares the >> *contents* of the trees, but not without having to do a full scan of >> a tree. The >> only caveat is that with hashing is that we may have collisions, >> which result in >> two different trees being falsely labeled as equivalent. If this >> becomes a >> problem, we can add extra data to the profile to hopefully resolve >> most >> collisions. > > I don't think this works Ted: collisions *will* cause the tree to be > corrupt, and you can't guarantee that they won't happen. I don't > think this is valid for all clients of the data structure. I agree that it doesn't work for all clients. I'll come up with something more sound that works for all clients, while providing something like the hashing scheme that is much quicker but doesn't provide the same guarantees. From dalej at apple.com Mon Jan 21 19:29:51 2008 From: dalej at apple.com (Dale Johannesen) Date: Tue, 22 Jan 2008 01:29:51 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46236 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801220129.m0M1TpS4000970@zion.cs.uiuc.edu> Author: johannes Date: Mon Jan 21 19:29:51 2008 New Revision: 46236 URL: http://llvm.org/viewvc/llvm-project?rev=46236&view=rev Log: Back out one of previous changes for Obj-C++; it handles the issue differently in the C++ FE code. Fix another type/initializer mismatch in INSTANCE_VARIABLES. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46236&r1=46235&r2=46236&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Mon Jan 21 19:29:51 2008 @@ -10456,6 +10456,8 @@ { tree initlist = NULL_TREE; int val; + /* LLVM LOCAL make sizes add up right */ + int skipped = 0; do { tree ivar = NULL_TREE; @@ -10463,8 +10465,12 @@ /* Unnamed bitfields are ignored. */ if (!DECL_NAME (field_decl)) { - do + /* LLVM LOCAL begin make sizes add up right */ + do { field_decl = TREE_CHAIN (field_decl); + skipped++; + } + /* LLVM LOCAL end */ while (field_decl && TREE_CODE (field_decl) != FIELD_DECL); continue; } @@ -10522,6 +10528,26 @@ } while (field_decl); +#ifndef OBJCPLUS + /* LLVM LOCAL begin make sizes add up right. The size in 'type' counted + any unnamed bitfields that we skipped above; add null nodes at the + end of the list to compensate. */ + while (skipped--) + { + tree ivar = NULL_TREE; + ivar = tree_cons (NULL_TREE, build_int_cst (ptr_type_node, 0), ivar); + ivar = tree_cons (NULL_TREE, build_int_cst (string_type_node, 0), ivar); + ivar = tree_cons (NULL_TREE, build_int_cst (string_type_node, 0), ivar); + ivar = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), ivar); + ivar = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), ivar); + + initlist = tree_cons (NULL_TREE, + objc_build_constructor (type, nreverse(ivar)), + initlist); + } + /* LLVM LOCAL end */ +#endif + return objc_build_constructor (build_array_type (type, 0), nreverse (initlist)); } @@ -10841,9 +10867,13 @@ /* LLVM LOCAL begin make initializer size match type size */ /* APPLE LOCAL ObjC new abi */ - initlist = build_tree_list (NULL_TREE, build_int_cst (newabi - ? NULL_TREE - : ptr_type_node, + initlist = build_tree_list (NULL_TREE, build_int_cst ( +#ifdef OBJCPLUS + NULL_TREE, +#else + newabi ? NULL_TREE : ptr_type_node, +#endif + init_val)); /* LLVM LOCAL end */ initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, size), initlist); From echristo at apple.com Mon Jan 21 19:38:57 2008 From: echristo at apple.com (Eric Christopher) Date: Tue, 22 Jan 2008 01:38:57 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46237 - /llvm-gcc-4.2/trunk/configure Message-ID: <200801220138.m0M1cvQD001411@zion.cs.uiuc.edu> Author: echristo Date: Mon Jan 21 19:38:56 2008 New Revision: 46237 URL: http://llvm.org/viewvc/llvm-project?rev=46237&view=rev Log: Regenerate with autoconf-2.13. Fixes infinite loop in configure. Modified: llvm-gcc-4.2/trunk/configure Modified: llvm-gcc-4.2/trunk/configure URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/configure?rev=46237&r1=46236&r2=46237&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/configure (original) +++ llvm-gcc-4.2/trunk/configure Mon Jan 21 19:38:56 2008 @@ -1893,7 +1893,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1871: checking for $ac_word" >&5 +echo "configure:1897: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1923,7 +1923,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1901: checking for $ac_word" >&5 +echo "configure:1927: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1974,7 +1974,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1952: checking for $ac_word" >&5 +echo "configure:1978: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2006,7 +2006,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1984: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2010: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2017,12 +2017,12 @@ cat > conftest.$ac_ext << EOF -#line 1995 "configure" +#line 2021 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2048,12 +2048,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2026: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2052: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2031: checking whether we are using GNU C" >&5 +echo "configure:2057: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2062,7 +2062,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2081,7 +2081,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2059: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2085: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2148,7 +2148,7 @@ # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2126: checking for $ac_word" >&5 +echo "configure:2152: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2180,7 +2180,7 @@ # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2158: checking for $ac_word" >&5 +echo "configure:2184: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2213,7 +2213,7 @@ fi echo $ac_n "checking whether compiler driver understands Ada""... $ac_c" 1>&6 -echo "configure:2191: checking whether compiler driver understands Ada" >&5 +echo "configure:2217: checking whether compiler driver understands Ada" >&5 if eval "test \"`echo '$''{'acx_cv_cc_gcc_supports_ada'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2245,7 +2245,7 @@ fi echo $ac_n "checking how to compare bootstrapped objects""... $ac_c" 1>&6 -echo "configure:2223: checking how to compare bootstrapped objects" >&5 +echo "configure:2249: checking how to compare bootstrapped objects" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_cmp_skip'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2365,9 +2365,9 @@ CFLAGS="$CFLAGS $gmpinc" # Check GMP actually works echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6 -echo "configure:2343: checking for correct version of gmp.h" >&5 +echo "configure:2369: checking for correct version of gmp.h" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -2391,9 +2391,9 @@ if test x"$have_gmp" = xyes; then echo $ac_n "checking for correct version of mpfr.h""... $ac_c" 1>&6 -echo "configure:2369: checking for correct version of mpfr.h" >&5 +echo "configure:2395: checking for correct version of mpfr.h" >&5 cat > conftest.$ac_ext < @@ -2405,7 +2405,7 @@ ; return 0; } EOF -if { (eval echo configure:2383: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -2419,9 +2419,9 @@ saved_LIBS="$LIBS" LIBS="$LIBS $gmplibs" echo $ac_n "checking for any version of mpfr.h""... $ac_c" 1>&6 -echo "configure:2397: checking for any version of mpfr.h" >&5 +echo "configure:2423: checking for any version of mpfr.h" >&5 cat > conftest.$ac_ext < #include @@ -2429,7 +2429,7 @@ mpfr_t n; mpfr_init(n); ; return 0; } EOF -if { (eval echo configure:2407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3540,7 +3540,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3518: checking for $ac_word" >&5 +echo "configure:3544: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3580,7 +3580,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3558: checking for $ac_word" >&5 +echo "configure:3584: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3619,7 +3619,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3597: checking for $ac_word" >&5 +echo "configure:3623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_M4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3658,7 +3658,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3636: checking for $ac_word" >&5 +echo "configure:3662: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3698,7 +3698,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3676: checking for $ac_word" >&5 +echo "configure:3702: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3737,7 +3737,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3715: checking for $ac_word" >&5 +echo "configure:3741: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3790,7 +3790,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3768: checking for $ac_word" >&5 +echo "configure:3794: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_EXPECT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3831,7 +3831,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3809: checking for $ac_word" >&5 +echo "configure:3835: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RUNTEST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3879,7 +3879,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3857: checking for $ac_word" >&5 +echo "configure:3883: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3910,7 +3910,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3888: checking for $ac_word" >&5 +echo "configure:3914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3954,7 +3954,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3932: checking for $ac_word" >&5 +echo "configure:3958: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3985,7 +3985,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3963: checking for $ac_word" >&5 +echo "configure:3989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4029,7 +4029,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4007: checking for $ac_word" >&5 +echo "configure:4033: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4060,7 +4060,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4038: checking for $ac_word" >&5 +echo "configure:4064: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4104,7 +4104,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4082: checking for $ac_word" >&5 +echo "configure:4108: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4135,7 +4135,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4113: checking for $ac_word" >&5 +echo "configure:4139: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4179,7 +4179,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4157: checking for $ac_word" >&5 +echo "configure:4183: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4210,7 +4210,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4188: checking for $ac_word" >&5 +echo "configure:4214: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4254,7 +4254,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4232: checking for $ac_word" >&5 +echo "configure:4258: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4285,7 +4285,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4263: checking for $ac_word" >&5 +echo "configure:4289: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4329,7 +4329,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4307: checking for $ac_word" >&5 +echo "configure:4333: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4360,7 +4360,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4338: checking for $ac_word" >&5 +echo "configure:4364: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4399,7 +4399,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4377: checking for $ac_word" >&5 +echo "configure:4403: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4430,7 +4430,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4408: checking for $ac_word" >&5 +echo "configure:4434: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4469,7 +4469,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4447: checking for $ac_word" >&5 +echo "configure:4473: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4500,7 +4500,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4478: checking for $ac_word" >&5 +echo "configure:4504: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4544,7 +4544,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4522: checking for $ac_word" >&5 +echo "configure:4548: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4575,7 +4575,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4553: checking for $ac_word" >&5 +echo "configure:4579: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4619,7 +4619,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4597: checking for $ac_word" >&5 +echo "configure:4623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4650,7 +4650,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4628: checking for $ac_word" >&5 +echo "configure:4654: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4714,7 +4714,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in cc gcc; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4692: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4718: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_CC_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4731,7 +4731,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4709: checking for $ac_word" >&5 +echo "configure:4735: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4762,7 +4762,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4740: checking for $ac_word" >&5 +echo "configure:4766: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4807,7 +4807,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in c++ g++ cxx gxx; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4785: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4811: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_CXX_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4824,7 +4824,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4802: checking for $ac_word" >&5 +echo "configure:4828: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4855,7 +4855,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4833: checking for $ac_word" >&5 +echo "configure:4859: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4900,7 +4900,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gcc; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4878: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4904: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GCC_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4917,7 +4917,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4895: checking for $ac_word" >&5 +echo "configure:4921: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4948,7 +4948,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4926: checking for $ac_word" >&5 +echo "configure:4952: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4988,7 +4988,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gcj; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4966: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4992: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GCJ_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5005,7 +5005,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4983: checking for $ac_word" >&5 +echo "configure:5009: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5036,7 +5036,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5014: checking for $ac_word" >&5 +echo "configure:5040: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5081,7 +5081,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gfortran; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5059: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5085: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GFORTRAN_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5098,7 +5098,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5076: checking for $ac_word" >&5 +echo "configure:5102: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5129,7 +5129,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5107: checking for $ac_word" >&5 +echo "configure:5133: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5238,7 +5238,7 @@ if test -z "$ac_cv_path_AR_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ar in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5216: checking for ar in $with_build_time_tools" >&5 +echo "configure:5242: checking for ar in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ar; then AR_FOR_TARGET=`cd $with_build_time_tools && pwd`/ar ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET @@ -5256,7 +5256,7 @@ # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5234: checking for $ac_word" >&5 +echo "configure:5260: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5293,7 +5293,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ar; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5271: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5297: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_AR_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5310,7 +5310,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5288: checking for $ac_word" >&5 +echo "configure:5314: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5341,7 +5341,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5319: checking for $ac_word" >&5 +echo "configure:5345: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5393,7 +5393,7 @@ if test -z "$ac_cv_path_AS_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for as in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5371: checking for as in $with_build_time_tools" >&5 +echo "configure:5397: checking for as in $with_build_time_tools" >&5 if test -x $with_build_time_tools/as; then AS_FOR_TARGET=`cd $with_build_time_tools && pwd`/as ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET @@ -5411,7 +5411,7 @@ # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5389: checking for $ac_word" >&5 +echo "configure:5415: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5448,7 +5448,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in as; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5426: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5452: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_AS_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5465,7 +5465,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5443: checking for $ac_word" >&5 +echo "configure:5469: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5496,7 +5496,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5474: checking for $ac_word" >&5 +echo "configure:5500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5548,7 +5548,7 @@ if test -z "$ac_cv_path_DLLTOOL_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for dlltool in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5526: checking for dlltool in $with_build_time_tools" >&5 +echo "configure:5552: checking for dlltool in $with_build_time_tools" >&5 if test -x $with_build_time_tools/dlltool; then DLLTOOL_FOR_TARGET=`cd $with_build_time_tools && pwd`/dlltool ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET @@ -5566,7 +5566,7 @@ # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5544: checking for $ac_word" >&5 +echo "configure:5570: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5603,7 +5603,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in dlltool; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5581: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5607: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_DLLTOOL_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5620,7 +5620,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5598: checking for $ac_word" >&5 +echo "configure:5624: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5651,7 +5651,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5629: checking for $ac_word" >&5 +echo "configure:5655: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5703,7 +5703,7 @@ if test -z "$ac_cv_path_LD_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ld in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5681: checking for ld in $with_build_time_tools" >&5 +echo "configure:5707: checking for ld in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ld; then LD_FOR_TARGET=`cd $with_build_time_tools && pwd`/ld ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET @@ -5721,7 +5721,7 @@ # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5699: checking for $ac_word" >&5 +echo "configure:5725: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5758,7 +5758,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ld; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5736: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5762: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_LD_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5775,7 +5775,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5753: checking for $ac_word" >&5 +echo "configure:5779: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5806,7 +5806,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5784: checking for $ac_word" >&5 +echo "configure:5810: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5858,7 +5858,7 @@ if test -z "$ac_cv_path_LIPO_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for lipo in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5836: checking for lipo in $with_build_time_tools" >&5 +echo "configure:5862: checking for lipo in $with_build_time_tools" >&5 if test -x $with_build_time_tools/lipo; then LIPO_FOR_TARGET=`cd $with_build_time_tools && pwd`/lipo ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET @@ -5876,7 +5876,7 @@ # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5854: checking for $ac_word" >&5 +echo "configure:5880: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5913,7 +5913,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in lipo; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5891: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5917: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_LIPO_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5930,7 +5930,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5908: checking for $ac_word" >&5 +echo "configure:5934: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5961,7 +5961,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5939: checking for $ac_word" >&5 +echo "configure:5965: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6013,7 +6013,7 @@ if test -z "$ac_cv_path_NM_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for nm in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5991: checking for nm in $with_build_time_tools" >&5 +echo "configure:6017: checking for nm in $with_build_time_tools" >&5 if test -x $with_build_time_tools/nm; then NM_FOR_TARGET=`cd $with_build_time_tools && pwd`/nm ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET @@ -6031,7 +6031,7 @@ # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6009: checking for $ac_word" >&5 +echo "configure:6035: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6068,7 +6068,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in nm; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6046: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6072: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_NM_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6085,7 +6085,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6063: checking for $ac_word" >&5 +echo "configure:6089: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6116,7 +6116,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6094: checking for $ac_word" >&5 +echo "configure:6120: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6168,7 +6168,7 @@ if test -z "$ac_cv_path_OBJDUMP_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for objdump in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6146: checking for objdump in $with_build_time_tools" >&5 +echo "configure:6172: checking for objdump in $with_build_time_tools" >&5 if test -x $with_build_time_tools/objdump; then OBJDUMP_FOR_TARGET=`cd $with_build_time_tools && pwd`/objdump ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET @@ -6186,7 +6186,7 @@ # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6164: checking for $ac_word" >&5 +echo "configure:6190: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6223,7 +6223,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in objdump; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6201: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6227: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_OBJDUMP_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6240,7 +6240,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6218: checking for $ac_word" >&5 +echo "configure:6244: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6271,7 +6271,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6249: checking for $ac_word" >&5 +echo "configure:6275: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6323,7 +6323,7 @@ if test -z "$ac_cv_path_RANLIB_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ranlib in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6301: checking for ranlib in $with_build_time_tools" >&5 +echo "configure:6327: checking for ranlib in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ranlib; then RANLIB_FOR_TARGET=`cd $with_build_time_tools && pwd`/ranlib ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET @@ -6341,7 +6341,7 @@ # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6319: checking for $ac_word" >&5 +echo "configure:6345: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6378,7 +6378,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ranlib; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6356: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6382: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_RANLIB_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6395,7 +6395,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6373: checking for $ac_word" >&5 +echo "configure:6399: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6426,7 +6426,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6404: checking for $ac_word" >&5 +echo "configure:6430: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6478,7 +6478,7 @@ if test -z "$ac_cv_path_STRIP_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for strip in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6456: checking for strip in $with_build_time_tools" >&5 +echo "configure:6482: checking for strip in $with_build_time_tools" >&5 if test -x $with_build_time_tools/strip; then STRIP_FOR_TARGET=`cd $with_build_time_tools && pwd`/strip ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET @@ -6496,7 +6496,7 @@ # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6474: checking for $ac_word" >&5 +echo "configure:6500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6533,7 +6533,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in strip; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6511: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6537: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_STRIP_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6550,7 +6550,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6528: checking for $ac_word" >&5 +echo "configure:6554: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6581,7 +6581,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6559: checking for $ac_word" >&5 +echo "configure:6585: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6633,7 +6633,7 @@ if test -z "$ac_cv_path_WINDRES_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for windres in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6611: checking for windres in $with_build_time_tools" >&5 +echo "configure:6637: checking for windres in $with_build_time_tools" >&5 if test -x $with_build_time_tools/windres; then WINDRES_FOR_TARGET=`cd $with_build_time_tools && pwd`/windres ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET @@ -6651,7 +6651,7 @@ # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6629: checking for $ac_word" >&5 +echo "configure:6655: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6688,7 +6688,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in windres; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6666: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6692: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_WINDRES_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6705,7 +6705,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6683: checking for $ac_word" >&5 +echo "configure:6709: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6736,7 +6736,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6714: checking for $ac_word" >&5 +echo "configure:6740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6786,7 +6786,7 @@ RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET" echo $ac_n "checking where to find the target ar""... $ac_c" 1>&6 -echo "configure:6764: checking where to find the target ar" >&5 +echo "configure:6790: checking where to find the target ar" >&5 if test "x${build}" != "x${host}" ; then if expr "x$AR_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6819,7 +6819,7 @@ fi fi echo $ac_n "checking where to find the target as""... $ac_c" 1>&6 -echo "configure:6797: checking where to find the target as" >&5 +echo "configure:6823: checking where to find the target as" >&5 if test "x${build}" != "x${host}" ; then if expr "x$AS_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6852,7 +6852,7 @@ fi fi echo $ac_n "checking where to find the target cc""... $ac_c" 1>&6 -echo "configure:6830: checking where to find the target cc" >&5 +echo "configure:6856: checking where to find the target cc" >&5 if test "x${build}" != "x${host}" ; then if expr "x$CC_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6885,7 +6885,7 @@ fi fi echo $ac_n "checking where to find the target c++""... $ac_c" 1>&6 -echo "configure:6863: checking where to find the target c++" >&5 +echo "configure:6889: checking where to find the target c++" >&5 if test "x${build}" != "x${host}" ; then if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6921,7 +6921,7 @@ fi fi echo $ac_n "checking where to find the target c++ for libstdc++""... $ac_c" 1>&6 -echo "configure:6899: checking where to find the target c++ for libstdc++" >&5 +echo "configure:6925: checking where to find the target c++ for libstdc++" >&5 if test "x${build}" != "x${host}" ; then if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6957,7 +6957,7 @@ fi fi echo $ac_n "checking where to find the target dlltool""... $ac_c" 1>&6 -echo "configure:6935: checking where to find the target dlltool" >&5 +echo "configure:6961: checking where to find the target dlltool" >&5 if test "x${build}" != "x${host}" ; then if expr "x$DLLTOOL_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6990,7 +6990,7 @@ fi fi echo $ac_n "checking where to find the target gcc""... $ac_c" 1>&6 -echo "configure:6968: checking where to find the target gcc" >&5 +echo "configure:6994: checking where to find the target gcc" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GCC_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7023,7 +7023,7 @@ fi fi echo $ac_n "checking where to find the target gcj""... $ac_c" 1>&6 -echo "configure:7001: checking where to find the target gcj" >&5 +echo "configure:7027: checking where to find the target gcj" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GCJ_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7059,7 +7059,7 @@ fi fi echo $ac_n "checking where to find the target gfortran""... $ac_c" 1>&6 -echo "configure:7037: checking where to find the target gfortran" >&5 +echo "configure:7063: checking where to find the target gfortran" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GFORTRAN_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7095,7 +7095,7 @@ fi fi echo $ac_n "checking where to find the target ld""... $ac_c" 1>&6 -echo "configure:7073: checking where to find the target ld" >&5 +echo "configure:7099: checking where to find the target ld" >&5 if test "x${build}" != "x${host}" ; then if expr "x$LD_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7128,7 +7128,7 @@ fi fi echo $ac_n "checking where to find the target lipo""... $ac_c" 1>&6 -echo "configure:7106: checking where to find the target lipo" >&5 +echo "configure:7132: checking where to find the target lipo" >&5 if test "x${build}" != "x${host}" ; then if expr "x$LIPO_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7151,7 +7151,7 @@ fi fi echo $ac_n "checking where to find the target nm""... $ac_c" 1>&6 -echo "configure:7129: checking where to find the target nm" >&5 +echo "configure:7155: checking where to find the target nm" >&5 if test "x${build}" != "x${host}" ; then if expr "x$NM_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7184,7 +7184,7 @@ fi fi echo $ac_n "checking where to find the target objdump""... $ac_c" 1>&6 -echo "configure:7162: checking where to find the target objdump" >&5 +echo "configure:7188: checking where to find the target objdump" >&5 if test "x${build}" != "x${host}" ; then if expr "x$OBJDUMP_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7217,7 +7217,7 @@ fi fi echo $ac_n "checking where to find the target ranlib""... $ac_c" 1>&6 -echo "configure:7195: checking where to find the target ranlib" >&5 +echo "configure:7221: checking where to find the target ranlib" >&5 if test "x${build}" != "x${host}" ; then if expr "x$RANLIB_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7250,7 +7250,7 @@ fi fi echo $ac_n "checking where to find the target strip""... $ac_c" 1>&6 -echo "configure:7228: checking where to find the target strip" >&5 +echo "configure:7254: checking where to find the target strip" >&5 if test "x${build}" != "x${host}" ; then if expr "x$STRIP_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7283,7 +7283,7 @@ fi fi echo $ac_n "checking where to find the target windres""... $ac_c" 1>&6 -echo "configure:7261: checking where to find the target windres" >&5 +echo "configure:7287: checking where to find the target windres" >&5 if test "x${build}" != "x${host}" ; then if expr "x$WINDRES_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7344,7 +7344,7 @@ echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:7322: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:7348: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -7395,9 +7395,9 @@ # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. CFLAGS="$CFLAGS -fkeep-inline-functions" echo $ac_n "checking whether -fkeep-inline-functions is supported""... $ac_c" 1>&6 -echo "configure:7371: checking whether -fkeep-inline-functions is supported" >&5 +echo "configure:7399: checking whether -fkeep-inline-functions is supported" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; stage1_cflags="$stage1_cflags -fkeep-inline-functions" else From tonic at nondot.org Mon Jan 21 19:41:51 2008 From: tonic at nondot.org (Tanya Lattner) Date: Tue, 22 Jan 2008 01:41:51 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46238 - /llvm-gcc-4.2/branches/release_22/configure Message-ID: <200801220141.m0M1fpus001660@zion.cs.uiuc.edu> Author: tbrethou Date: Mon Jan 21 19:41:49 2008 New Revision: 46238 URL: http://llvm.org/viewvc/llvm-project?rev=46238&view=rev Log: Merge from mainline. Regenerate with autoconf-2.13. Fixes infinite loop in configure. Modified: llvm-gcc-4.2/branches/release_22/configure Modified: llvm-gcc-4.2/branches/release_22/configure URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/release_22/configure?rev=46238&r1=46237&r2=46238&view=diff ============================================================================== --- llvm-gcc-4.2/branches/release_22/configure (original) +++ llvm-gcc-4.2/branches/release_22/configure Mon Jan 21 19:41:49 2008 @@ -1893,7 +1893,7 @@ # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1871: checking for $ac_word" >&5 +echo "configure:1897: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1923,7 +1923,7 @@ # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1901: checking for $ac_word" >&5 +echo "configure:1927: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1974,7 +1974,7 @@ # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1952: checking for $ac_word" >&5 +echo "configure:1978: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2006,7 +2006,7 @@ fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1984: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2010: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2017,12 +2017,12 @@ cat > conftest.$ac_ext << EOF -#line 1995 "configure" +#line 2021 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2048,12 +2048,12 @@ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2026: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2052: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2031: checking whether we are using GNU C" >&5 +echo "configure:2057: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2062,7 +2062,7 @@ yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2081,7 +2081,7 @@ ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2059: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2085: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2148,7 +2148,7 @@ # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args. set dummy ${ac_tool_prefix}gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2126: checking for $ac_word" >&5 +echo "configure:2152: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2180,7 +2180,7 @@ # Extract the first word of "gnatbind", so it can be a program name with args. set dummy gnatbind; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2158: checking for $ac_word" >&5 +echo "configure:2184: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2213,7 +2213,7 @@ fi echo $ac_n "checking whether compiler driver understands Ada""... $ac_c" 1>&6 -echo "configure:2191: checking whether compiler driver understands Ada" >&5 +echo "configure:2217: checking whether compiler driver understands Ada" >&5 if eval "test \"`echo '$''{'acx_cv_cc_gcc_supports_ada'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2245,7 +2245,7 @@ fi echo $ac_n "checking how to compare bootstrapped objects""... $ac_c" 1>&6 -echo "configure:2223: checking how to compare bootstrapped objects" >&5 +echo "configure:2249: checking how to compare bootstrapped objects" >&5 if eval "test \"`echo '$''{'gcc_cv_prog_cmp_skip'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2365,9 +2365,9 @@ CFLAGS="$CFLAGS $gmpinc" # Check GMP actually works echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6 -echo "configure:2343: checking for correct version of gmp.h" >&5 +echo "configure:2369: checking for correct version of gmp.h" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -2391,9 +2391,9 @@ if test x"$have_gmp" = xyes; then echo $ac_n "checking for correct version of mpfr.h""... $ac_c" 1>&6 -echo "configure:2369: checking for correct version of mpfr.h" >&5 +echo "configure:2395: checking for correct version of mpfr.h" >&5 cat > conftest.$ac_ext < @@ -2405,7 +2405,7 @@ ; return 0; } EOF -if { (eval echo configure:2383: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -2419,9 +2419,9 @@ saved_LIBS="$LIBS" LIBS="$LIBS $gmplibs" echo $ac_n "checking for any version of mpfr.h""... $ac_c" 1>&6 -echo "configure:2397: checking for any version of mpfr.h" >&5 +echo "configure:2423: checking for any version of mpfr.h" >&5 cat > conftest.$ac_ext < #include @@ -2429,7 +2429,7 @@ mpfr_t n; mpfr_init(n); ; return 0; } EOF -if { (eval echo configure:2407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 else @@ -3540,7 +3540,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3518: checking for $ac_word" >&5 +echo "configure:3544: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3580,7 +3580,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3558: checking for $ac_word" >&5 +echo "configure:3584: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3619,7 +3619,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3597: checking for $ac_word" >&5 +echo "configure:3623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_M4'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3658,7 +3658,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3636: checking for $ac_word" >&5 +echo "configure:3662: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3698,7 +3698,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3676: checking for $ac_word" >&5 +echo "configure:3702: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3737,7 +3737,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3715: checking for $ac_word" >&5 +echo "configure:3741: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3790,7 +3790,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3768: checking for $ac_word" >&5 +echo "configure:3794: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_EXPECT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3831,7 +3831,7 @@ # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3809: checking for $ac_word" >&5 +echo "configure:3835: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RUNTEST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3879,7 +3879,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3857: checking for $ac_word" >&5 +echo "configure:3883: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3910,7 +3910,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3888: checking for $ac_word" >&5 +echo "configure:3914: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3954,7 +3954,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3932: checking for $ac_word" >&5 +echo "configure:3958: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3985,7 +3985,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3963: checking for $ac_word" >&5 +echo "configure:3989: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4029,7 +4029,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4007: checking for $ac_word" >&5 +echo "configure:4033: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4060,7 +4060,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4038: checking for $ac_word" >&5 +echo "configure:4064: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4104,7 +4104,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4082: checking for $ac_word" >&5 +echo "configure:4108: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4135,7 +4135,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4113: checking for $ac_word" >&5 +echo "configure:4139: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4179,7 +4179,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4157: checking for $ac_word" >&5 +echo "configure:4183: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4210,7 +4210,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4188: checking for $ac_word" >&5 +echo "configure:4214: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4254,7 +4254,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4232: checking for $ac_word" >&5 +echo "configure:4258: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4285,7 +4285,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4263: checking for $ac_word" >&5 +echo "configure:4289: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4329,7 +4329,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4307: checking for $ac_word" >&5 +echo "configure:4333: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4360,7 +4360,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4338: checking for $ac_word" >&5 +echo "configure:4364: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4399,7 +4399,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4377: checking for $ac_word" >&5 +echo "configure:4403: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4430,7 +4430,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4408: checking for $ac_word" >&5 +echo "configure:4434: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4469,7 +4469,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4447: checking for $ac_word" >&5 +echo "configure:4473: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4500,7 +4500,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4478: checking for $ac_word" >&5 +echo "configure:4504: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4544,7 +4544,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4522: checking for $ac_word" >&5 +echo "configure:4548: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4575,7 +4575,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4553: checking for $ac_word" >&5 +echo "configure:4579: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4619,7 +4619,7 @@ # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4597: checking for $ac_word" >&5 +echo "configure:4623: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4650,7 +4650,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4628: checking for $ac_word" >&5 +echo "configure:4654: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4714,7 +4714,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in cc gcc; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4692: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4718: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_CC_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4731,7 +4731,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4709: checking for $ac_word" >&5 +echo "configure:4735: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4762,7 +4762,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4740: checking for $ac_word" >&5 +echo "configure:4766: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4807,7 +4807,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in c++ g++ cxx gxx; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4785: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4811: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_CXX_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4824,7 +4824,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4802: checking for $ac_word" >&5 +echo "configure:4828: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4855,7 +4855,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4833: checking for $ac_word" >&5 +echo "configure:4859: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4900,7 +4900,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gcc; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4878: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4904: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GCC_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -4917,7 +4917,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4895: checking for $ac_word" >&5 +echo "configure:4921: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4948,7 +4948,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4926: checking for $ac_word" >&5 +echo "configure:4952: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCC_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4988,7 +4988,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gcj; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:4966: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:4992: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GCJ_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5005,7 +5005,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4983: checking for $ac_word" >&5 +echo "configure:5009: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5036,7 +5036,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5014: checking for $ac_word" >&5 +echo "configure:5040: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5081,7 +5081,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in gfortran; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5059: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5085: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_GFORTRAN_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5098,7 +5098,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5076: checking for $ac_word" >&5 +echo "configure:5102: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5129,7 +5129,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5107: checking for $ac_word" >&5 +echo "configure:5133: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5238,7 +5238,7 @@ if test -z "$ac_cv_path_AR_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ar in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5216: checking for ar in $with_build_time_tools" >&5 +echo "configure:5242: checking for ar in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ar; then AR_FOR_TARGET=`cd $with_build_time_tools && pwd`/ar ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET @@ -5256,7 +5256,7 @@ # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5234: checking for $ac_word" >&5 +echo "configure:5260: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5293,7 +5293,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ar; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5271: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5297: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_AR_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5310,7 +5310,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5288: checking for $ac_word" >&5 +echo "configure:5314: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5341,7 +5341,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5319: checking for $ac_word" >&5 +echo "configure:5345: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5393,7 +5393,7 @@ if test -z "$ac_cv_path_AS_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for as in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5371: checking for as in $with_build_time_tools" >&5 +echo "configure:5397: checking for as in $with_build_time_tools" >&5 if test -x $with_build_time_tools/as; then AS_FOR_TARGET=`cd $with_build_time_tools && pwd`/as ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET @@ -5411,7 +5411,7 @@ # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5389: checking for $ac_word" >&5 +echo "configure:5415: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5448,7 +5448,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in as; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5426: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5452: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_AS_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5465,7 +5465,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5443: checking for $ac_word" >&5 +echo "configure:5469: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5496,7 +5496,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5474: checking for $ac_word" >&5 +echo "configure:5500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5548,7 +5548,7 @@ if test -z "$ac_cv_path_DLLTOOL_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for dlltool in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5526: checking for dlltool in $with_build_time_tools" >&5 +echo "configure:5552: checking for dlltool in $with_build_time_tools" >&5 if test -x $with_build_time_tools/dlltool; then DLLTOOL_FOR_TARGET=`cd $with_build_time_tools && pwd`/dlltool ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET @@ -5566,7 +5566,7 @@ # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5544: checking for $ac_word" >&5 +echo "configure:5570: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5603,7 +5603,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in dlltool; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5581: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5607: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_DLLTOOL_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5620,7 +5620,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5598: checking for $ac_word" >&5 +echo "configure:5624: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5651,7 +5651,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5629: checking for $ac_word" >&5 +echo "configure:5655: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5703,7 +5703,7 @@ if test -z "$ac_cv_path_LD_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ld in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5681: checking for ld in $with_build_time_tools" >&5 +echo "configure:5707: checking for ld in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ld; then LD_FOR_TARGET=`cd $with_build_time_tools && pwd`/ld ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET @@ -5721,7 +5721,7 @@ # Extract the first word of "ld", so it can be a program name with args. set dummy ld; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5699: checking for $ac_word" >&5 +echo "configure:5725: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5758,7 +5758,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ld; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5736: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5762: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_LD_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5775,7 +5775,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5753: checking for $ac_word" >&5 +echo "configure:5779: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5806,7 +5806,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5784: checking for $ac_word" >&5 +echo "configure:5810: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5858,7 +5858,7 @@ if test -z "$ac_cv_path_LIPO_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for lipo in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5836: checking for lipo in $with_build_time_tools" >&5 +echo "configure:5862: checking for lipo in $with_build_time_tools" >&5 if test -x $with_build_time_tools/lipo; then LIPO_FOR_TARGET=`cd $with_build_time_tools && pwd`/lipo ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET @@ -5876,7 +5876,7 @@ # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5854: checking for $ac_word" >&5 +echo "configure:5880: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5913,7 +5913,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in lipo; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5891: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:5917: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_LIPO_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -5930,7 +5930,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5908: checking for $ac_word" >&5 +echo "configure:5934: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5961,7 +5961,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5939: checking for $ac_word" >&5 +echo "configure:5965: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6013,7 +6013,7 @@ if test -z "$ac_cv_path_NM_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for nm in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:5991: checking for nm in $with_build_time_tools" >&5 +echo "configure:6017: checking for nm in $with_build_time_tools" >&5 if test -x $with_build_time_tools/nm; then NM_FOR_TARGET=`cd $with_build_time_tools && pwd`/nm ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET @@ -6031,7 +6031,7 @@ # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6009: checking for $ac_word" >&5 +echo "configure:6035: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6068,7 +6068,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in nm; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6046: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6072: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_NM_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6085,7 +6085,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6063: checking for $ac_word" >&5 +echo "configure:6089: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6116,7 +6116,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6094: checking for $ac_word" >&5 +echo "configure:6120: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6168,7 +6168,7 @@ if test -z "$ac_cv_path_OBJDUMP_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for objdump in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6146: checking for objdump in $with_build_time_tools" >&5 +echo "configure:6172: checking for objdump in $with_build_time_tools" >&5 if test -x $with_build_time_tools/objdump; then OBJDUMP_FOR_TARGET=`cd $with_build_time_tools && pwd`/objdump ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET @@ -6186,7 +6186,7 @@ # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6164: checking for $ac_word" >&5 +echo "configure:6190: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6223,7 +6223,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in objdump; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6201: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6227: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_OBJDUMP_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6240,7 +6240,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6218: checking for $ac_word" >&5 +echo "configure:6244: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6271,7 +6271,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6249: checking for $ac_word" >&5 +echo "configure:6275: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6323,7 +6323,7 @@ if test -z "$ac_cv_path_RANLIB_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for ranlib in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6301: checking for ranlib in $with_build_time_tools" >&5 +echo "configure:6327: checking for ranlib in $with_build_time_tools" >&5 if test -x $with_build_time_tools/ranlib; then RANLIB_FOR_TARGET=`cd $with_build_time_tools && pwd`/ranlib ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET @@ -6341,7 +6341,7 @@ # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6319: checking for $ac_word" >&5 +echo "configure:6345: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6378,7 +6378,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in ranlib; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6356: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6382: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_RANLIB_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6395,7 +6395,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6373: checking for $ac_word" >&5 +echo "configure:6399: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6426,7 +6426,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6404: checking for $ac_word" >&5 +echo "configure:6430: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6478,7 +6478,7 @@ if test -z "$ac_cv_path_STRIP_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for strip in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6456: checking for strip in $with_build_time_tools" >&5 +echo "configure:6482: checking for strip in $with_build_time_tools" >&5 if test -x $with_build_time_tools/strip; then STRIP_FOR_TARGET=`cd $with_build_time_tools && pwd`/strip ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET @@ -6496,7 +6496,7 @@ # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6474: checking for $ac_word" >&5 +echo "configure:6500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6533,7 +6533,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in strip; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6511: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6537: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_STRIP_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6550,7 +6550,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6528: checking for $ac_word" >&5 +echo "configure:6554: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6581,7 +6581,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6559: checking for $ac_word" >&5 +echo "configure:6585: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6633,7 +6633,7 @@ if test -z "$ac_cv_path_WINDRES_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then echo $ac_n "checking for windres in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6611: checking for windres in $with_build_time_tools" >&5 +echo "configure:6637: checking for windres in $with_build_time_tools" >&5 if test -x $with_build_time_tools/windres; then WINDRES_FOR_TARGET=`cd $with_build_time_tools && pwd`/windres ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET @@ -6651,7 +6651,7 @@ # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6629: checking for $ac_word" >&5 +echo "configure:6655: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6688,7 +6688,7 @@ if test -n "$with_build_time_tools"; then for ncn_progname in windres; do echo $ac_n "checking for ${ncn_progname} in $with_build_time_tools""... $ac_c" 1>&6 -echo "configure:6666: checking for ${ncn_progname} in $with_build_time_tools" >&5 +echo "configure:6692: checking for ${ncn_progname} in $with_build_time_tools" >&5 if test -x $with_build_time_tools/${ncn_progname}; then ac_cv_prog_WINDRES_FOR_TARGET=$with_build_time_tools/${ncn_progname} echo "$ac_t""yes" 1>&6 @@ -6705,7 +6705,7 @@ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6683: checking for $ac_word" >&5 +echo "configure:6709: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6736,7 +6736,7 @@ # Extract the first word of "${ncn_progname}", so it can be a program name with args. set dummy ${ncn_progname}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6714: checking for $ac_word" >&5 +echo "configure:6740: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6786,7 +6786,7 @@ RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET" echo $ac_n "checking where to find the target ar""... $ac_c" 1>&6 -echo "configure:6764: checking where to find the target ar" >&5 +echo "configure:6790: checking where to find the target ar" >&5 if test "x${build}" != "x${host}" ; then if expr "x$AR_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6819,7 +6819,7 @@ fi fi echo $ac_n "checking where to find the target as""... $ac_c" 1>&6 -echo "configure:6797: checking where to find the target as" >&5 +echo "configure:6823: checking where to find the target as" >&5 if test "x${build}" != "x${host}" ; then if expr "x$AS_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6852,7 +6852,7 @@ fi fi echo $ac_n "checking where to find the target cc""... $ac_c" 1>&6 -echo "configure:6830: checking where to find the target cc" >&5 +echo "configure:6856: checking where to find the target cc" >&5 if test "x${build}" != "x${host}" ; then if expr "x$CC_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6885,7 +6885,7 @@ fi fi echo $ac_n "checking where to find the target c++""... $ac_c" 1>&6 -echo "configure:6863: checking where to find the target c++" >&5 +echo "configure:6889: checking where to find the target c++" >&5 if test "x${build}" != "x${host}" ; then if expr "x$CXX_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6921,7 +6921,7 @@ fi fi echo $ac_n "checking where to find the target c++ for libstdc++""... $ac_c" 1>&6 -echo "configure:6899: checking where to find the target c++ for libstdc++" >&5 +echo "configure:6925: checking where to find the target c++ for libstdc++" >&5 if test "x${build}" != "x${host}" ; then if expr "x$RAW_CXX_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6957,7 +6957,7 @@ fi fi echo $ac_n "checking where to find the target dlltool""... $ac_c" 1>&6 -echo "configure:6935: checking where to find the target dlltool" >&5 +echo "configure:6961: checking where to find the target dlltool" >&5 if test "x${build}" != "x${host}" ; then if expr "x$DLLTOOL_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -6990,7 +6990,7 @@ fi fi echo $ac_n "checking where to find the target gcc""... $ac_c" 1>&6 -echo "configure:6968: checking where to find the target gcc" >&5 +echo "configure:6994: checking where to find the target gcc" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GCC_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7023,7 +7023,7 @@ fi fi echo $ac_n "checking where to find the target gcj""... $ac_c" 1>&6 -echo "configure:7001: checking where to find the target gcj" >&5 +echo "configure:7027: checking where to find the target gcj" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GCJ_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7059,7 +7059,7 @@ fi fi echo $ac_n "checking where to find the target gfortran""... $ac_c" 1>&6 -echo "configure:7037: checking where to find the target gfortran" >&5 +echo "configure:7063: checking where to find the target gfortran" >&5 if test "x${build}" != "x${host}" ; then if expr "x$GFORTRAN_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7095,7 +7095,7 @@ fi fi echo $ac_n "checking where to find the target ld""... $ac_c" 1>&6 -echo "configure:7073: checking where to find the target ld" >&5 +echo "configure:7099: checking where to find the target ld" >&5 if test "x${build}" != "x${host}" ; then if expr "x$LD_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7128,7 +7128,7 @@ fi fi echo $ac_n "checking where to find the target lipo""... $ac_c" 1>&6 -echo "configure:7106: checking where to find the target lipo" >&5 +echo "configure:7132: checking where to find the target lipo" >&5 if test "x${build}" != "x${host}" ; then if expr "x$LIPO_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7151,7 +7151,7 @@ fi fi echo $ac_n "checking where to find the target nm""... $ac_c" 1>&6 -echo "configure:7129: checking where to find the target nm" >&5 +echo "configure:7155: checking where to find the target nm" >&5 if test "x${build}" != "x${host}" ; then if expr "x$NM_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7184,7 +7184,7 @@ fi fi echo $ac_n "checking where to find the target objdump""... $ac_c" 1>&6 -echo "configure:7162: checking where to find the target objdump" >&5 +echo "configure:7188: checking where to find the target objdump" >&5 if test "x${build}" != "x${host}" ; then if expr "x$OBJDUMP_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7217,7 +7217,7 @@ fi fi echo $ac_n "checking where to find the target ranlib""... $ac_c" 1>&6 -echo "configure:7195: checking where to find the target ranlib" >&5 +echo "configure:7221: checking where to find the target ranlib" >&5 if test "x${build}" != "x${host}" ; then if expr "x$RANLIB_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7250,7 +7250,7 @@ fi fi echo $ac_n "checking where to find the target strip""... $ac_c" 1>&6 -echo "configure:7228: checking where to find the target strip" >&5 +echo "configure:7254: checking where to find the target strip" >&5 if test "x${build}" != "x${host}" ; then if expr "x$STRIP_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7283,7 +7283,7 @@ fi fi echo $ac_n "checking where to find the target windres""... $ac_c" 1>&6 -echo "configure:7261: checking where to find the target windres" >&5 +echo "configure:7287: checking where to find the target windres" >&5 if test "x${build}" != "x${host}" ; then if expr "x$WINDRES_FOR_TARGET" : "x/" > /dev/null; then # We already found the complete path @@ -7344,7 +7344,7 @@ echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:7322: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:7348: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -7395,9 +7395,9 @@ # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it. CFLAGS="$CFLAGS -fkeep-inline-functions" echo $ac_n "checking whether -fkeep-inline-functions is supported""... $ac_c" 1>&6 -echo "configure:7371: checking whether -fkeep-inline-functions is supported" >&5 +echo "configure:7399: checking whether -fkeep-inline-functions is supported" >&5 cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7414: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6; stage1_cflags="$stage1_cflags -fkeep-inline-functions" else From dalej at apple.com Mon Jan 21 20:15:50 2008 From: dalej at apple.com (Dale Johannesen) Date: Tue, 22 Jan 2008 02:15:50 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46239 - in /llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg: next-runtime-1-64bit.m next-runtime-1.m objc-gc-section-1.m objc-gc-section-2.m objc2-protocol-enc-1.m symtab-1-64bit.m symtab-1.m Message-ID: <200801220215.m0M2FoZZ003663@zion.cs.uiuc.edu> Author: johannes Date: Mon Jan 21 20:15:50 2008 New Revision: 46239 URL: http://llvm.org/viewvc/llvm-project?rev=46239&view=rev Log: Upgrade some testcases that scan-assembler to accept functionally equivalent syntax produced by llvm. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-1.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-2.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-enc-1.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1.m Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1-64bit.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1-64bit.m Mon Jan 21 20:15:50 2008 @@ -14,4 +14,5 @@ - (void)boo { } @end -/* { dg-final { scan-assembler "L_OBJC_MODULES:\n\[ \t\]*\.quad\t7\n" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_MODULES:.*\n\[ \t\]*\.quad\t7\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/next-runtime-1.m Mon Jan 21 20:15:50 2008 @@ -20,4 +20,5 @@ @end /* APPLE LOCAL radar 4585769 */ -/* { dg-final { scan-assembler "L_OBJC_MODULES:\n\[ \t\]*\.long\t7\n" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_MODULES:.*\n\[ \t\]*\.long\t7\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-1.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-1.m Mon Jan 21 20:15:50 2008 @@ -9,6 +9,7 @@ @end @implementation INTF @end -/* { dg-final { scan-assembler ".section __OBJC, __image_info" } } */ -/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:\n\t.space 8" } } */ - +/* LLVM LOCAL begin llvm syntax */ +/* { dg-final { scan-assembler ".section __OBJC,.*__image_info" } } */ +/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:.*\n\t.space( |\t)8" } } */ +/* LLVM LOCAL end */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-2.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-2.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-2.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc-gc-section-2.m Mon Jan 21 20:15:50 2008 @@ -8,5 +8,7 @@ @end @implementation INTF @end -/* { dg-final { scan-assembler ".section __OBJC, __image_info" } } */ -/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:\n\t.long\t0\n\t.long\t6" } } */ +/* LLVM LOCAL begin accept llvm syntax */ +/* { dg-final { scan-assembler ".section __OBJC,.*__image_info" } } */ +/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:.*\n\t(.long\t0|.space\t4)\n\t.long\t6" } } */ +/* LLVM LOCAL end */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-enc-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-enc-1.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-enc-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-enc-1.m Mon Jan 21 20:15:50 2008 @@ -28,9 +28,10 @@ @dynamic x, xy, xyz, fooxyz; @end - -/* { dg-final { scan-assembler ".ascii.*T\@.*.*" } } */ -/* { dg-final { scan-assembler ".ascii.*T\@.*Foo.*" } } */ +/* LLVM LOCAL begin accept llvm syntax (asciz) */ +/* { dg-final { scan-assembler ".asci.*T\@.*.*" } } */ +/* { dg-final { scan-assembler ".asci.*T\@.*Foo.*" } } */ +/* LLVM LOCAL end */ /** This protocol should generate the following metadata: Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1-64bit.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1-64bit.m Mon Jan 21 20:15:50 2008 @@ -22,4 +22,5 @@ @end /* APPLE LOCAL testing */ -/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:\n\t.quad\t0\n\t.long\t0\n\t.space 4\n\t.(short|word)\t2\n\t.(short|word)\t0\n\t.space 4\n\t.quad\tL_OBJC_CLASS_Derived.*\n\t.quad\tL_OBJC_CLASS_Base.*\n" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:.*\n\t(.quad\t0|.space\t8)\n\t(.long\t0\n\t.space 4|.space\t8)\n\t.(short|word)\t2\n\t.((short|word)\t0|space\t2)\n\t.space( |\t)4\n\t.quad\tL_OBJC_CLASS_Derived.*\n\t.quad\tL_OBJC_CLASS_Base.*\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1.m?rev=46239&r1=46238&r2=46239&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/symtab-1.m Mon Jan 21 20:15:50 2008 @@ -25,4 +25,5 @@ @end /* APPLE LOCAL testing */ -/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:\n\t.long\t0\n\t.long\t0\n\t.(short|word)\t2\n\t.(short|word)\t0\n\t.long\tL_OBJC_CLASS_Derived.*\n\t.long\tL_OBJC_CLASS_Base.*\n" } } */ +/* LLVM LOCAL llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_SYMBOLS.*:.*\n\t(.long\t0|.space\t4)\n\t(.long\t0|.space\t4)\n\t.(short|word)\t2\n\t.((short|word)\t0|space\t2)\n\t.long\tL_OBJC_CLASS_Derived.*\n\t.long\tL_OBJC_CLASS_Base.*\n" } } */ From echristo at apple.com Mon Jan 21 21:06:28 2008 From: echristo at apple.com (Eric Christopher) Date: Tue, 22 Jan 2008 03:06:28 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46240 - in /llvm-gcc-4.2/trunk/gcc: java/lang.c stub-c.c Message-ID: <200801220306.m0M36Skg007327@zion.cs.uiuc.edu> Author: echristo Date: Mon Jan 21 21:06:28 2008 New Revision: 46240 URL: http://llvm.org/viewvc/llvm-project?rev=46240&view=rev Log: Fix normal configure bootstrap. Remove unnecessary local code. Update stub-c.c for changes. Modified: llvm-gcc-4.2/trunk/gcc/java/lang.c llvm-gcc-4.2/trunk/gcc/stub-c.c Modified: llvm-gcc-4.2/trunk/gcc/java/lang.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/java/lang.c?rev=46240&r1=46239&r2=46240&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/java/lang.c (original) +++ llvm-gcc-4.2/trunk/gcc/java/lang.c Mon Jan 21 21:06:28 2008 @@ -139,7 +139,7 @@ /* int flag_optimize_sci = 0; */ /* Don't attempt to verify invocations. */ -int flag_verify_invocations = 0; +int flag_verify_invocations = 0; /* When nonzero, print extra version information. */ static int v_flag = 0; @@ -342,7 +342,7 @@ case OPT_version: v_flag = 1; break; - + default: if (cl_options[code].flags & CL_Java) break; @@ -798,103 +798,9 @@ } /* APPLE LOCAL end AltiVec */ -/* APPLE LOCAL begin constant cfstrings */ -enum { blabla } c_language; -const char *constant_string_class_name = "die die"; -int flag_weak = 1; -int parse_in = 0; -void build_stmt (void); -void build_stmt (void) { abort (); } -void store_init_value(void); -void store_init_value(void) { abort (); } -/* APPLE LOCAL end constant cfstrings */ - /* APPLE LOCAL disable_typechecking_for_spec_flag */ int disable_typechecking_for_spec_flag = 0; -/* APPLE LOCAL begin CW asm blocks */ -/* Dummies needed because we use them from cpplib, yuck. */ -int flag_iasm_blocks; -int iasm_state; -bool iasm_in_operands; -void build_modify_expr (void); -void iasm_addr (void); -void iasm_build_bracket (void); -void build_function_call (void); -void iasm_get_register_var (void); -bool iasm_is_pseudo (void); -void iasm_for_constraint (void); -void iasm_print_operand (void); -void iasm_force_constraint (void); -void pointer_int_sum (void); -tree decl_attributes (tree *tp, tree p, int s); -void build_modify_expr (void) { abort (); } -void iasm_addr (void) { abort (); } -void iasm_build_bracket (void) { abort (); } -void build_function_call (void) { abort (); } -void iasm_get_register_var (void) { abort (); } -bool iasm_is_pseudo (void) { abort (); } -void iasm_for_constraint (void) { abort (); } -void iasm_print_operand (void) { abort (); } -void iasm_force_constraint (void) { abort (); } -void pointer_int_sum (void) { abort (); } -tree decl_attributes (tree *ARG_UNUSED (tp), - tree ARG_UNUSED (p), - int ARG_UNUSED (s)) -{ - abort (); -} -/* APPLE LOCAL end CW asm blocks */ - -/* APPLE LOCAL begin 4174833 */ -tree objc_is_class_name (tree); - -tree -objc_is_class_name (tree ARG_UNUSED (arg)) -{ - return 0; -} - -bool objc_method_decl (enum tree_code ARG_UNUSED (opcode)); -bool -objc_method_decl (enum tree_code ARG_UNUSED (opcode)) -{ - return false; -} -/* APPLE LOCAL end 4174833 */ -/* APPLE LOCAL begin radar 4441049 */ -tree objc_v2_bitfield_ivar_bitpos (tree); - -tree -objc_v2_bitfield_ivar_bitpos (tree ARG_UNUSED (exp)) -{ - return 0; -} - -tree objc_v2_component_ref_field_offset (tree); - -tree -objc_v2_component_ref_field_offset (tree ARG_UNUSED (exp)) -{ - return 0; -} -/* APPLE LOCAL end radar 4441049 */ -/* APPLE LOCAL begin fariborz 2996215 */ -tree objc_create_init_utf16_var (void); -tree -objc_create_init_utf16_var (void) -{ - return NULL; -} - -bool objc_anonymous_local_objc_name (const char * ARG_UNUSED (name)); -bool -objc_anonymous_local_objc_name (const char * ARG_UNUSED (name)) -{ - return false; -} -/* APPLE LOCAL end fariborz 2996215 */ - /* Every call to a static constructor has an associated boolean variable which is in the outermost scope of the calling method. This variable is used to avoid multiple calls to the static Modified: llvm-gcc-4.2/trunk/gcc/stub-c.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/stub-c.c?rev=46240&r1=46239&r2=46240&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/stub-c.c (original) +++ llvm-gcc-4.2/trunk/gcc/stub-c.c Mon Jan 21 21:06:28 2008 @@ -31,6 +31,7 @@ enum iasm_states iasm_state ATTRIBUTE_WEAK; bool iasm_in_operands ATTRIBUTE_WEAK; int flag_iasm_blocks ATTRIBUTE_WEAK; +int parse_in ATTRIBUTE_WEAK; tree iasm_addr (tree) ATTRIBUTE_WEAK; From echristo at apple.com Mon Jan 21 21:07:25 2008 From: echristo at apple.com (Eric Christopher) Date: Tue, 22 Jan 2008 03:07:25 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46241 - in /llvm-gcc-4.2/trunk/gcc/autom4te.cache: output.0 requests traces.0 Message-ID: <200801220307.m0M37QRC007436@zion.cs.uiuc.edu> Author: echristo Date: Mon Jan 21 21:07:23 2008 New Revision: 46241 URL: http://llvm.org/viewvc/llvm-project?rev=46241&view=rev Log: Remove unnecessary directory. Modified: llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0 llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0 Modified: llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0 URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0?rev=46241&r1=46240&r2=46241&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0 (original) +++ llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0 Mon Jan 21 21:07:23 2008 @@ -1,18503 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.59. -@%:@ -@%:@ Copyright (C) 2003 Free Software Foundation, Inc. -@%:@ This configure script is free software; the Free Software Foundation -@%:@ gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="tree.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP strict1_warn cxx_compat_warn warn_cflags WERROR checkingenabled_flag nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep DSYMUTIL LLVMBASEPATH LLVMBUILDMODE datarootdir docdir htmldir! SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR stage1_cflags COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT host_cc_for_libada CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS STMP_FIXINC STMP_FIXPROTO collect2 gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir objdir subdirs srcdir all_boot_languages all_compilers all_gtfiles all_gtfiles_files_langs all_gtfiles_files_files all_lang_makefrags all_lang_makefiles all_languages all_selected_languages all_stagestuff build_exeext build! _install_headers_dir build_xm_file_list build_xm_include_list ! build_xm _defines check_languages cc_set_by_configure quoted_cc_set_by_configure cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_cxx_file out_object_file out_cxx_object_file stage_prefix_set_by_configure quoted_stage_prefix_set_by_configure thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs target_cpu_default GMPLIBS GMPINC LIB@&t at OBJS LTLIBOBJS' -ac_subst_files='language_hooks' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -ac_env_GMPLIBS_set=${GMPLIBS+set} -ac_env_GMPLIBS_value=$GMPLIBS -ac_cv_env_GMPLIBS_set=${GMPLIBS+set} -ac_cv_env_GMPLIBS_value=$GMPLIBS -ac_env_GMPINC_set=${GMPINC+set} -ac_env_GMPINC_value=$GMPINC -ac_cv_env_GMPINC_set=${GMPINC+set} -ac_cv_env_GMPINC_value=$GMPINC - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] - --target=TARGET configure for building compilers for TARGET [HOST] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-generated-files-in-srcdir - put copies of generated files in source dir - intended for creating source tarballs for users - without texinfo bison or flex. - --enable-werror-always enable -Werror always - --enable-werror enable -Werror in bootstrap stage2 and later - --enable-checking=LIST - enable expensive run-time checks. With LIST, - enable only specific categories of checks. - Categories are: yes,no,all,none,release. - Flags are: assert,fold,gc,gcac,misc, - rtlflag,rtl,runtime,tree,valgrind. - --enable-mapped-location location_t is fileline integer cookie - --enable-coverage=LEVEL - enable compiler's code coverage collection. - Use to measure compiler performance and locate - unused parts of the compiler. With LEVEL, specify - optimization. Values are opt, noopt, - default is noopt - --enable-gather-detailed-mem-stats enable detailed memory allocation stats gathering - --enable-multilib enable library support for multiple ABIs - --enable-__cxa_atexit enable __cxa_atexit for C++ - --enable-decimal-float enable decimal float extension to C - --enable-threads enable thread usage for target GCC - --enable-threads=LIB use LIB thread package for target GCC - --enable-tls enable or disable generation of tls code - overriding the assembler check for tls support - --enable-objc-gc enable the use of Boehm's garbage collector with - the GNU Objective-C runtime - --disable-shared don't provide a shared libgcc - --enable-intermodule build the compiler in one step - --enable-llvm=DIR enable the LLVM backend, use DIR as LLVM root - --enable-languages=LIST specify which front-ends to build - --disable-rpath do not hardcode runtime library paths - --enable-initfini-array use .init_array/.fini_array sections - --enable-sjlj-exceptions - arrange to use setjmp/longjmp exception handling - --enable-secureplt enable -msecure-plt by default for PowerPC - --disable-win32-registry - disable lookup of installation paths in the - Registry on Windows hosts - --enable-win32-registry enable registry lookup (default) - --enable-win32-registry=KEY - use KEY instead of GCC version as the last portion - of the registry key - --enable-maintainer-mode - enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --enable-version-specific-runtime-libs - specify that runtime libraries should be - installed in a compiler-specific directory - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-build-libsubdir=DIR Directory where to find libraries for build system - --with-local-prefix=DIR specifies directory to put local include - --with-gxx-include-dir=DIR - specifies directory to put g++ header files - --with-cpp-install-dir=DIR - install the user visible C preprocessor in DIR - (relative to PREFIX) as well as PREFIX/bin - --with-gnu-ld arrange to work with GNU ld. - --with-ld arrange to use the specified ld (full pathname) - --with-demangler-in-ld try to use demangler in GNU ld. - --with-gnu-as arrange to work with GNU as - --with-as arrange to use the specified as (full pathname) - --with-stabs arrange to use stabs instead of host debug format - --with-dwarf2 force the default debug format to be DWARF 2 - --with-build-sysroot=sysroot - use sysroot as the system root during the build - --with-sysroot=DIR Search for usr/lib, usr/include, et al, within DIR. - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-system-libunwind use installed libunwind - --with-long-double-128 Use 128-bit long double by default. - --with-gc={page,zone} choose the garbage collection mechanism to use - with the compiler - --with-system-zlib use installed libz - --with-slibdir=DIR shared libraries in DIR [LIBDIR] - --with-datarootdir=DIR Use DIR as the data root [PREFIX/share] - --with-docdir=DIR Install documentation in DIR [DATAROOTDIR] - --with-htmldir=DIR html documentation in in DIR [DOCDIR] - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - GMPLIBS How to link GMP - GMPINC How to find GMP include files - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -@%:@@%:@ --------- @%:@@%:@ -@%:@@%:@ Platform. @%:@@%:@ -@%:@@%:@ --------- @%:@@%:@ - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -@%:@@%:@ ----------- @%:@@%:@ -@%:@@%:@ Core tests. @%:@@%:@ -@%:@@%:@ ----------- @%:@@%:@ - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -@%:@@%:@ ---------------- @%:@@%:@ -@%:@@%:@ Cache variables. @%:@@%:@ -@%:@@%:@ ---------------- @%:@@%:@ -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -@%:@@%:@ ----------------- @%:@@%:@ -@%:@@%:@ Output variables. @%:@@%:@ -@%:@@%:@ ----------------- @%:@@%:@ -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -@%:@@%:@ ------------- @%:@@%:@ -@%:@@%:@ Output files. @%:@@%:@ -@%:@@%:@ ------------- @%:@@%:@ -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -@%:@@%:@ ----------- @%:@@%:@ -@%:@@%:@ confdefs.h. @%:@@%:@ -@%:@@%:@ ----------- @%:@@%:@ -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - ac_config_headers="$ac_config_headers auto-host.h:config.in" - - -gcc_version=`cat $srcdir/BASE-VER` - -# Determine the host, build, and target systems -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking target system type" >&5 -echo $ECHO_N "checking target system type... $ECHO_C" >&6 -if test "${ac_cv_target+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_target_alias=$target_alias -test "x$ac_cv_target_alias" = "x" && - ac_cv_target_alias=$ac_cv_host_alias -ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_target" >&5 -echo "${ECHO_T}$ac_cv_target" >&6 -target=$ac_cv_target -target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -# Determine the noncanonical target name, for directory use. - case ${build_alias} in - "") build_noncanonical=${build} ;; - *) build_noncanonical=${build_alias} ;; -esac - - case ${host_alias} in - "") host_noncanonical=${build_noncanonical} ;; - *) host_noncanonical=${host_alias} ;; -esac - - case ${target_alias} in - "") target_noncanonical=${host_noncanonical} ;; - *) target_noncanonical=${target_alias} ;; -esac - - - - -# Determine the target- and build-specific subdirectories - -# post-stage1 host modules use a different CC_FOR_BUILD so, in order to -# have matching libraries, they should use host libraries: Makefile.tpl -# arranges to pass --with-build-libsubdir=$(HOST_SUBDIR). -# However, they still use the build modules, because the corresponding -# host modules (e.g. bison) are only built for the host when bootstrap -# finishes. So: -# - build_subdir is where we find build modules, and never changes. -# - build_libsubdir is where we find build libraries, and can be overridden. - -# Prefix 'build-' so this never conflicts with target_subdir. -build_subdir="build-${build_noncanonical}" - -# Check whether --with-build-libsubdir or --without-build-libsubdir was given. -if test "${with_build_libsubdir+set}" = set; then - withval="$with_build_libsubdir" - build_libsubdir="$withval" -else - build_libsubdir="$build_subdir" -fi; -# --srcdir=. covers the toplevel, while "test -d" covers the subdirectories -if ( test $srcdir = . && test -d gcc ) \ - || test -d $srcdir/../host-${host_noncanonical}; then - host_subdir="host-${host_noncanonical}" -else - host_subdir=. -fi -# No prefix. -target_subdir=${target_noncanonical} - - -# Set program_transform_name -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - - -# Check for bogus environment variables. -# Test if LIBRARY_PATH contains the notation for the current directory -# since this would lead to problems installing/building glibc. -# LIBRARY_PATH contains the current directory if one of the following -# is true: -# - one of the terminals (":" and ";") is the first or last sign -# - two terminals occur directly after each other -# - the path contains an element with a dot in it -echo "$as_me:$LINENO: checking LIBRARY_PATH variable" >&5 -echo $ECHO_N "checking LIBRARY_PATH variable... $ECHO_C" >&6 -case ${LIBRARY_PATH} in - [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) - library_path_setting="contains current directory" - ;; - *) - library_path_setting="ok" - ;; -esac -echo "$as_me:$LINENO: result: $library_path_setting" >&5 -echo "${ECHO_T}$library_path_setting" >&6 -if test "$library_path_setting" != "ok"; then -{ { echo "$as_me:$LINENO: error: -*** LIBRARY_PATH shouldn't contain the current directory when -*** building gcc. Please change the environment variable -*** and run configure again." >&5 -echo "$as_me: error: -*** LIBRARY_PATH shouldn't contain the current directory when -*** building gcc. Please change the environment variable -*** and run configure again." >&2;} - { (exit 1); exit 1; }; } -fi - -# Test if GCC_EXEC_PREFIX contains the notation for the current directory -# since this would lead to problems installing/building glibc. -# GCC_EXEC_PREFIX contains the current directory if one of the following -# is true: -# - one of the terminals (":" and ";") is the first or last sign -# - two terminals occur directly after each other -# - the path contains an element with a dot in it -echo "$as_me:$LINENO: checking GCC_EXEC_PREFIX variable" >&5 -echo $ECHO_N "checking GCC_EXEC_PREFIX variable... $ECHO_C" >&6 -case ${GCC_EXEC_PREFIX} in - [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) - gcc_exec_prefix_setting="contains current directory" - ;; - *) - gcc_exec_prefix_setting="ok" - ;; -esac -echo "$as_me:$LINENO: result: $gcc_exec_prefix_setting" >&5 -echo "${ECHO_T}$gcc_exec_prefix_setting" >&6 -if test "$gcc_exec_prefix_setting" != "ok"; then -{ { echo "$as_me:$LINENO: error: -*** GCC_EXEC_PREFIX shouldn't contain the current directory when -*** building gcc. Please change the environment variable -*** and run configure again." >&5 -echo "$as_me: error: -*** GCC_EXEC_PREFIX shouldn't contain the current directory when -*** building gcc. Please change the environment variable -*** and run configure again." >&2;} - { (exit 1); exit 1; }; } -fi - -# ----------- -# Directories -# ----------- - -# Specify the local prefix -local_prefix= - -# Check whether --with-local-prefix or --without-local-prefix was given. -if test "${with_local_prefix+set}" = set; then - withval="$with_local_prefix" - case "${withval}" in -yes) { { echo "$as_me:$LINENO: error: bad value ${withval} given for local include directory prefix" >&5 -echo "$as_me: error: bad value ${withval} given for local include directory prefix" >&2;} - { (exit 1); exit 1; }; } ;; -no) ;; -*) local_prefix=$with_local_prefix ;; -esac -fi; - -# Default local prefix if it is empty -if test x$local_prefix = x; then - local_prefix=/usr/local -fi - -# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only -# passed in by the toplevel make and thus we'd get different behavior -# depending on where we built the sources. -gcc_gxx_include_dir= -# Specify the g++ header file directory - -# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. -if test "${with_gxx_include_dir+set}" = set; then - withval="$with_gxx_include_dir" - case "${withval}" in -yes) { { echo "$as_me:$LINENO: error: bad value ${withval} given for g++ include directory" >&5 -echo "$as_me: error: bad value ${withval} given for g++ include directory" >&2;} - { (exit 1); exit 1; }; } ;; -no) ;; -*) gcc_gxx_include_dir=$with_gxx_include_dir ;; -esac -fi; - -# This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO. -if test x${gcc_gxx_include_dir} = x; then - if test x${enable_version_specific_runtime_libs} = xyes; then - gcc_gxx_include_dir='${libsubdir}/include/c++' - else - libstdcxx_incdir='include/c++/$(version)' - if test x$host != x$target; then - libstdcxx_incdir="$target_alias/$libstdcxx_incdir" - fi - gcc_gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/$libstdcxx_incdir" - fi -fi - - -# Check whether --with-cpp_install_dir or --without-cpp_install_dir was given. -if test "${with_cpp_install_dir+set}" = set; then - withval="$with_cpp_install_dir" - if test x$withval = xyes; then - { { echo "$as_me:$LINENO: error: option --with-cpp-install-dir requires an argument" >&5 -echo "$as_me: error: option --with-cpp-install-dir requires an argument" >&2;} - { (exit 1); exit 1; }; } -elif test x$withval != xno; then - cpp_install_dir=$withval -fi -fi; - -# We would like to our source tree to be readonly. However when releases or -# pre-releases are generated, the flex/bison generated files as well as the -# various formats of manuals need to be included along with the rest of the -# sources. Therefore we have --enable-generated-files-in-srcdir to do -# just that. - -echo "$as_me:$LINENO: checking whether to place generated files in the source directory" >&5 -echo $ECHO_N "checking whether to place generated files in the source directory... $ECHO_C" >&6 - # Check whether --enable-generated-files-in-srcdir or --disable-generated-files-in-srcdir was given. -if test "${enable_generated_files_in_srcdir+set}" = set; then - enableval="$enable_generated_files_in_srcdir" - generated_files_in_srcdir=$enableval -else - generated_files_in_srcdir=no -fi; - -echo "$as_me:$LINENO: result: $generated_files_in_srcdir" >&5 -echo "${ECHO_T}$generated_files_in_srcdir" >&6 - -if test "$generated_files_in_srcdir" = "yes"; then - GENINSRC='' -else - GENINSRC='#' -fi - - -# ------------------- -# Find default linker -# ------------------- - -# With GNU ld - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - gnu_ld_flag="$with_gnu_ld" -else - gnu_ld_flag=no -fi; - -# With pre-defined ld - -# Check whether --with-ld or --without-ld was given. -if test "${with_ld+set}" = set; then - withval="$with_ld" - DEFAULT_LINKER="$with_ld" -fi; -if test x"${DEFAULT_LINKER+set}" = x"set"; then - if test ! -x "$DEFAULT_LINKER"; then - { { echo "$as_me:$LINENO: error: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&5 -echo "$as_me: error: cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER" >&2;} - { (exit 1); exit 1; }; } - elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then - gnu_ld_flag=yes - fi - -cat >>confdefs.h <<_ACEOF -@%:@define DEFAULT_LINKER "$DEFAULT_LINKER" -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether a default linker was specified" >&5 -echo $ECHO_N "checking whether a default linker was specified... $ECHO_C" >&6 -if test x"${DEFAULT_LINKER+set}" = x"set"; then - if test x"$gnu_ld_flag" = x"no"; then - echo "$as_me:$LINENO: result: yes ($DEFAULT_LINKER)" >&5 -echo "${ECHO_T}yes ($DEFAULT_LINKER)" >&6 - else - echo "$as_me:$LINENO: result: yes ($DEFAULT_LINKER - GNU ld)" >&5 -echo "${ECHO_T}yes ($DEFAULT_LINKER - GNU ld)" >&6 - fi -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -# With demangler in GNU ld - -# Check whether --with-demangler-in-ld or --without-demangler-in-ld was given. -if test "${with_demangler_in_ld+set}" = set; then - withval="$with_demangler_in_ld" - demangler_in_ld="$with_demangler_in_ld" -else - demangler_in_ld=no -fi; - -# ---------------------- -# Find default assembler -# ---------------------- - -# With GNU as - -# Check whether --with-gnu-as or --without-gnu-as was given. -if test "${with_gnu_as+set}" = set; then - withval="$with_gnu_as" - gas_flag="$with_gnu_as" -else - gas_flag=no -fi; - - -# Check whether --with-as or --without-as was given. -if test "${with_as+set}" = set; then - withval="$with_as" - DEFAULT_ASSEMBLER="$with_as" -fi; -if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then - if test ! -x "$DEFAULT_ASSEMBLER"; then - { { echo "$as_me:$LINENO: error: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&5 -echo "$as_me: error: cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER" >&2;} - { (exit 1); exit 1; }; } - elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then - gas_flag=yes - fi - -cat >>confdefs.h <<_ACEOF -@%:@define DEFAULT_ASSEMBLER "$DEFAULT_ASSEMBLER" -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether a default assembler was specified" >&5 -echo $ECHO_N "checking whether a default assembler was specified... $ECHO_C" >&6 -if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then - if test x"$gas_flag" = x"no"; then - echo "$as_me:$LINENO: result: yes ($DEFAULT_ASSEMBLER)" >&5 -echo "${ECHO_T}yes ($DEFAULT_ASSEMBLER)" >&6 - else - echo "$as_me:$LINENO: result: yes ($DEFAULT_ASSEMBLER - GNU as)" >&5 -echo "${ECHO_T}yes ($DEFAULT_ASSEMBLER - GNU as)" >&6 - fi -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -# --------------- -# Find C compiler -# --------------- - -# If a non-executable a.out is present (e.g. created by GNU as above even if -# invoked with -v only), the IRIX 6 native ld just overwrites the existing -# file, even when creating an executable, so an execution test fails. -# Remove possible default executable files to avoid this. -# -# FIXME: This really belongs into AC_PROG_CC and can be removed once -# Autoconf includes it. -rm -f a.out a.exe b.out - -# Find the native compiler -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $@%:@ != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -@%:@ifndef __cplusplus - choke me -@%:@endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -@%:@include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test "x$CC" != xcc; then - echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 -echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 -echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6 -fi -set dummy $CC; ac_cc=`echo $2 | - sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -# Make sure it works both with $CC and with simple cc. -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&5' -if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; -then - eval ac_cv_prog_cc_${ac_cc}_c_o=yes - if test "x$CC" != xcc; then - # Test first that cc exists at all. - if { ac_try='cc -c conftest.$ac_ext >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&5' - if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; - then - # cc works too. - : - else - # cc exists but doesn't like -o. - eval ac_cv_prog_cc_${ac_cc}_c_o=no - fi - fi - fi -else - eval ac_cv_prog_cc_${ac_cc}_c_o=no -fi -rm -f conftest* - -fi -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - -cat >>confdefs.h <<\_ACEOF -@%:@define NO_MINUS_C_MINUS_O 1 -_ACEOF - -fi - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -# FIXME: we rely on the cache variable name because -# there is no other way. -set dummy $CC -ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi - -# autoconf is lame and doesn't give us any substitution variable for this. -if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then - NO_MINUS_C_MINUS_O=yes -else - OUTPUT_OPTION='-o $@' -fi - - - -# Remove the -O2: for historical reasons, unless bootstrapping we prefer -# optimizations to be activated explicitly by the toplevel. -case "$CC" in - */prev-gcc/xgcc*) ;; - *) CFLAGS=`echo $CFLAGS | sed "s/-O[s0-9]* *//" ` ;; -esac - - -# ------------------------- -# Check C compiler features -# ------------------------- - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@ifdef __STDC__ -@%:@ include -@%:@else -@%:@ include -@%:@endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifndef __cplusplus -typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 - - -case $ac_cv_c_inline in - inline | yes) ;; - *) - case $ac_cv_c_inline in - no) ac_val=;; - *) ac_val=$ac_cv_c_inline;; - esac - cat >>confdefs.h <<_ACEOF -#ifndef __cplusplus -#define inline $ac_val -#endif -_ACEOF - ;; -esac - - -# sizeof(char) is 1 by definition. - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -@%:@include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -echo "$as_me:$LINENO: checking for void *" >&5 -echo $ECHO_N "checking for void *... $ECHO_C" >&6 -if test "${ac_cv_type_void_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((void * *) 0) - return 0; -if (sizeof (void *)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_void_p=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_void_p=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_void_p" >&5 -echo "${ECHO_T}$ac_cv_type_void_p" >&6 - -echo "$as_me:$LINENO: checking size of void *" >&5 -echo $ECHO_N "checking size of void *... $ECHO_C" >&6 -if test "${ac_cv_sizeof_void_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_void_p" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (void *))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (void *))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (void *))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (void *))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (void *))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_void_p=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (void *), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (void *), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (void *)); } -unsigned long ulongval () { return (long) (sizeof (void *)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (void *))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (void *)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (void *)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_void_p=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (void *), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (void *), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_void_p=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5 -echo "${ECHO_T}$ac_cv_sizeof_void_p" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF - - -echo "$as_me:$LINENO: checking for short" >&5 -echo $ECHO_N "checking for short... $ECHO_C" >&6 -if test "${ac_cv_type_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((short *) 0) - return 0; -if (sizeof (short)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_short=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_short=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 -echo "${ECHO_T}$ac_cv_type_short" >&6 - -echo "$as_me:$LINENO: checking size of short" >&5 -echo $ECHO_N "checking size of short... $ECHO_C" >&6 -if test "${ac_cv_sizeof_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_short" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (short))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (short))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_short=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (short)); } -unsigned long ulongval () { return (long) (sizeof (short)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (short))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_short=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_short=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 -echo "${ECHO_T}$ac_cv_sizeof_short" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -echo "$as_me:$LINENO: checking for int" >&5 -echo $ECHO_N "checking for int... $ECHO_C" >&6 -if test "${ac_cv_type_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((int *) 0) - return 0; -if (sizeof (int)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_int=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 -echo "${ECHO_T}$ac_cv_type_int" >&6 - -echo "$as_me:$LINENO: checking size of int" >&5 -echo $ECHO_N "checking size of int... $ECHO_C" >&6 -if test "${ac_cv_sizeof_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_int" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_int=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (int)); } -unsigned long ulongval () { return (long) (sizeof (int)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (int))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_int=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_int=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 -echo "${ECHO_T}$ac_cv_sizeof_int" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -echo "$as_me:$LINENO: checking for long" >&5 -echo $ECHO_N "checking for long... $ECHO_C" >&6 -if test "${ac_cv_type_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long *) 0) - return 0; -if (sizeof (long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 -echo "${ECHO_T}$ac_cv_type_long" >&6 - -echo "$as_me:$LINENO: checking size of long" >&5 -echo $ECHO_N "checking size of long... $ECHO_C" >&6 -if test "${ac_cv_sizeof_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (long)); } -unsigned long ulongval () { return (long) (sizeof (long)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (long))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_long=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${ac_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long long *) 0) - return 0; -if (sizeof (long long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_long_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_long_long" >&6 -if test $ac_cv_type_long_long = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_LONG_LONG 1 -_ACEOF - -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${ac_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long long *) 0) - return 0; -if (sizeof (long long)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_long_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_long_long" >&6 - -echo "$as_me:$LINENO: checking size of long long" >&5 -echo $ECHO_N "checking size of long long... $ECHO_C" >&6 -if test "${ac_cv_sizeof_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_long_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long long))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long long))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (long long)); } -unsigned long ulongval () { return (long) (sizeof (long long)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (long long))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long_long=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof_long_long=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking for __int64" >&5 -echo $ECHO_N "checking for __int64... $ECHO_C" >&6 -if test "${ac_cv_type___int64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((__int64 *) 0) - return 0; -if (sizeof (__int64)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type___int64=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type___int64=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type___int64" >&5 -echo "${ECHO_T}$ac_cv_type___int64" >&6 -if test $ac_cv_type___int64 = yes; then - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE___INT64 1 -_ACEOF - -echo "$as_me:$LINENO: checking for __int64" >&5 -echo $ECHO_N "checking for __int64... $ECHO_C" >&6 -if test "${ac_cv_type___int64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((__int64 *) 0) - return 0; -if (sizeof (__int64)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type___int64=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type___int64=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type___int64" >&5 -echo "${ECHO_T}$ac_cv_type___int64" >&6 - -echo "$as_me:$LINENO: checking size of __int64" >&5 -echo $ECHO_N "checking size of __int64... $ECHO_C" >&6 -if test "${ac_cv_sizeof___int64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type___int64" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (__int64))) >= 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (__int64))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (__int64))) < 0)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=-1 ac_mid=-1 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (__int64))) >= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=$ac_mid; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo= ac_hi= -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array @<:@1 - 2 * !(((long) (sizeof (__int64))) <= $ac_mid)@:>@; -test_array @<:@0@:>@ = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_hi=$ac_mid -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_lo=`expr '(' $ac_mid ')' + 1` -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof___int64=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (__int64), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (__int64), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; -esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -long longval () { return (long) (sizeof (__int64)); } -unsigned long ulongval () { return (long) (sizeof (__int64)); } -@%:@include -@%:@include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - exit (1); - if (((long) (sizeof (__int64))) < 0) - { - long i = longval (); - if (i != ((long) (sizeof (__int64)))) - exit (1); - fprintf (f, "%ld\n", i); - } - else - { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (__int64)))) - exit (1); - fprintf (f, "%lu\n", i); - } - exit (ferror (f) || fclose (f) != 0); - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof___int64=`cat conftest.val` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (__int64), 77 -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (__int64), 77 -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.val -else - ac_cv_sizeof___int64=0 -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof___int64" >&5 -echo "${ECHO_T}$ac_cv_sizeof___int64" >&6 -cat >>confdefs.h <<_ACEOF -@%:@define SIZEOF___INT64 $ac_cv_sizeof___int64 -_ACEOF - - -fi - - -# --------------------- -# Warnings and checking -# --------------------- - -# Check $CC warning features (if it's GCC). -# We want to use -pedantic, but we don't want warnings about -# * 'long long' -# * variadic macros -# * overlong strings -# So, we only use -pedantic if we can disable those warnings. - -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wno-long-long" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wno-long-long... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_no_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wno-long-long" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_no_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_no_long_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_no_long_long" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_no_long_long" >&6 - -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wno-variadic-macros" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wno-variadic-macros... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_no_variadic_macros+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wno-variadic-macros" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_no_variadic_macros=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_no_variadic_macros=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_no_variadic_macros" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_no_variadic_macros" >&6 - -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wno-overlength-strings" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wno-overlength-strings... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_no_overlength_strings+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wno-overlength-strings" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_no_overlength_strings=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_no_overlength_strings=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_no_overlength_strings" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_no_overlength_strings" >&6 - -strict1_warn= -if test $ac_cv_prog_cc_w_no_long_long = yes \ - && test $ac_cv_prog_cc_w_no_variadic_macros = yes \ - && test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then - strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings" -fi - -# Add -Wold-style-definition if it's accepted -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wold-style-definition" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wold-style-definition... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_old_style_definition+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wold-style-definition" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_old_style_definition=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_old_style_definition=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_old_style_definition" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_old_style_definition" >&6 -if test $ac_cv_prog_cc_w_old_style_definition = yes ; then - strict1_warn="${strict1_warn} -Wold-style-definition" -fi - -# Add -Wmissing-format-attribute if it's accepted -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wmissing-format-attribute" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wmissing-format-attribute... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_missing_format_attribute+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wmissing-format-attribute" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_missing_format_attribute=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_missing_format_attribute=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_missing_format_attribute" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_missing_format_attribute" >&6 -if test $ac_cv_prog_cc_w_missing_format_attribute = yes ; then - strict1_warn="${strict1_warn} -Wmissing-format-attribute" -fi - -# Enable -Werror, period. -# Check whether --enable-werror_always or --disable-werror_always was given. -if test "${enable_werror_always+set}" = set; then - enableval="$enable_werror_always" - -else - enable_werror_always=no -fi; -if test x${enable_werror_always} = xyes ; then - strict1_warn="${strict1_warn} -Werror" - WERROR=-Werror -fi - - - -# Get C++ compatibility warning flag, if supported. -echo "$as_me:$LINENO: checking whether ${CC} accepts -Wc++-compat" >&5 -echo $ECHO_N "checking whether ${CC} accepts -Wc++-compat... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_w_cxx_compat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_CFLAGS="$CFLAGS" - CFLAGS="-Wc++-compat" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_w_cxx_compat=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_w_cxx_compat=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_w_cxx_compat" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_w_cxx_compat" >&6 -if test x${ac_cv_prog_cc_w_cxx_compat} = xyes; then - cxx_compat_warn="-Wc++-compat" -fi - - - -# If the native compiler is GCC, we can enable warnings even in stage1. -# That's useful for people building cross-compilers, or just running a -# quick `make'. -warn_cflags= -if test "x$GCC" = "xyes"; then - warn_cflags='$(GCC_WARN_CFLAGS)' -fi - - -# Enable -Werror in bootstrap stage2 and later. -is_release= -if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then - is_release=yes -fi -# Check whether --enable-werror or --disable-werror was given. -if test "${enable_werror+set}" = set; then - enableval="$enable_werror" - -else - if test x$is_release = x ; then - # Default to "yes" on development branches. - enable_werror=yes -else - # Default to "no" on release branches. - enable_werror=no -fi -fi; -if test x$enable_werror = xyes ; then - WERROR=-Werror -fi - - -# Enable expensive internal checks -# Check whether --enable-checking or --disable-checking was given. -if test "${enable_checking+set}" = set; then - enableval="$enable_checking" - ac_checking_flags="${enableval}" -else - -# Determine the default checks. -if test x$is_release = x ; then - ac_checking_flags=yes -else - ac_checking_flags=release -fi -fi; -ac_assert_checking=1 -ac_checking= -ac_fold_checking= -ac_gc_checking= -ac_gc_always_collect= -ac_rtl_checking= -ac_rtlflag_checking= -ac_runtime_checking=1 -ac_tree_checking= -ac_valgrind_checking= -IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," -for check in $ac_checking_flags -do - case $check in - # these set all the flags to specific states - yes) ac_assert_checking=1 ; ac_checking=1 ; - ac_fold_checking= ; ac_gc_checking=1 ; - ac_gc_always_collect= ; ac_rtl_checking= ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1 ; - ac_tree_checking=1 ; ac_valgrind_checking= ;; - no|none) ac_assert_checking= ; ac_checking= ; - ac_fold_checking= ; ac_gc_checking= ; - ac_gc_always_collect= ; ac_rtl_checking= ; - ac_rtlflag_checking= ; ac_runtime_checking= ; - ac_tree_checking= ; ac_valgrind_checking= ;; - all) ac_assert_checking=1 ; ac_checking=1 ; - ac_fold_checking=1 ; ac_gc_checking=1 ; - ac_gc_always_collect=1 ; ac_rtl_checking=1 ; - ac_rtlflag_checking=1 ; ac_runtime_checking=1 ; - ac_tree_checking=1 ; ac_valgrind_checking= ;; - release) ac_assert_checking=1 ; ac_checking= ; - ac_fold_checking= ; ac_gc_checking= ; - ac_gc_always_collect= ; ac_rtl_checking= ; - ac_rtlflag_checking= ; ac_runtime_checking=1 ; - ac_tree_checking= ; ac_valgrind_checking= ;; - # these enable particular checks - assert) ac_assert_checking=1 ;; - fold) ac_fold_checking=1 ;; - gc) ac_gc_checking=1 ;; - gcac) ac_gc_always_collect=1 ;; - misc) ac_checking=1 ;; - rtl) ac_rtl_checking=1 ;; - rtlflag) ac_rtlflag_checking=1 ;; - runtime) ac_runtime_checking=1 ;; - tree) ac_tree_checking=1 ;; - valgrind) ac_valgrind_checking=1 ;; - *) { { echo "$as_me:$LINENO: error: unknown check category $check" >&5 -echo "$as_me: error: unknown check category $check" >&2;} - { (exit 1); exit 1; }; } ;; - esac -done -IFS="$ac_save_IFS" - -nocommon_flag="" -# LLVM LOCAL -# Expose a flag in the makefile so we can tell when ENABLE_CHECKING is set. -checkingenabled_flag="" -if test x$ac_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_CHECKING 1 -_ACEOF - - nocommon_flag=-fno-common - # LLVM LOCAL - checkingenabled_flag=CHECKING_ENABLED=1 -fi -# LLVM LOCAL - - -if test x$ac_assert_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_ASSERT_CHECKING 1 -_ACEOF - -fi - -if test x$ac_runtime_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_RUNTIME_CHECKING 1 -_ACEOF - -fi -if test x$ac_tree_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_TREE_CHECKING 1 -_ACEOF - - TREEBROWSER=tree-browser.o -fi - -if test x$ac_rtl_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_RTL_CHECKING 1 -_ACEOF - -fi -if test x$ac_rtlflag_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_RTL_FLAG_CHECKING 1 -_ACEOF - -fi -if test x$ac_gc_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_GC_CHECKING 1 -_ACEOF - -fi -if test x$ac_gc_always_collect != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_GC_ALWAYS_COLLECT 1 -_ACEOF - -fi -if test x$ac_fold_checking != x ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_FOLD_CHECKING 1 -_ACEOF - -fi -valgrind_path_defines= -valgrind_command= - -if test "${ac_cv_header_valgrind_h+set}" = set; then - echo "$as_me:$LINENO: checking for valgrind.h" >&5 -echo $ECHO_N "checking for valgrind.h... $ECHO_C" >&6 -if test "${ac_cv_header_valgrind_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_valgrind_h" >&5 -echo "${ECHO_T}$ac_cv_header_valgrind_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking valgrind.h usability" >&5 -echo $ECHO_N "checking valgrind.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -@%:@include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking valgrind.h presence" >&5 -echo $ECHO_N "checking valgrind.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: valgrind.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: valgrind.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: valgrind.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: valgrind.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: valgrind.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: valgrind.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: valgrind.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: valgrind.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: valgrind.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: valgrind.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: valgrind.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ ------------------------------------------ @%:@@%:@ -@%:@@%:@ Report this to the AC_PACKAGE_NAME lists. @%:@@%:@ -@%:@@%:@ ------------------------------------------ @%:@@%:@ -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for valgrind.h" >&5 -echo $ECHO_N "checking for valgrind.h... $ECHO_C" >&6 -if test "${ac_cv_header_valgrind_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_valgrind_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_valgrind_h" >&5 -echo "${ECHO_T}$ac_cv_header_valgrind_h" >&6 - -fi -if test $ac_cv_header_valgrind_h = yes; then - have_valgrind_h=yes -else - have_valgrind_h=no -fi - - - -if test x$ac_valgrind_checking != x ; then - # It is certainly possible that there's valgrind but no valgrind.h. - # GCC relies on making annotations so we must have both. - echo "$as_me:$LINENO: checking for VALGRIND_DISCARD in " >&5 -echo $ECHO_N "checking for VALGRIND_DISCARD in ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifndef VALGRIND_DISCARD -#error VALGRIND_DISCARD not defined -#endif -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - gcc_cv_header_valgrind_memcheck_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gcc_cv_header_valgrind_memcheck_h=no -fi -rm -f conftest.err conftest.$ac_ext - echo "$as_me:$LINENO: result: $gcc_cv_header_valgrind_memcheck_h" >&5 -echo "${ECHO_T}$gcc_cv_header_valgrind_memcheck_h" >&6 - echo "$as_me:$LINENO: checking for VALGRIND_DISCARD in " >&5 -echo $ECHO_N "checking for VALGRIND_DISCARD in ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#ifndef VALGRIND_DISCARD -#error VALGRIND_DISCARD not defined -#endif -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - gcc_cv_header_memcheck_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - gcc_cv_header_memcheck_h=no -fi -rm -f conftest.err conftest.$ac_ext - echo "$as_me:$LINENO: result: $gcc_cv_header_memcheck_h" >&5 -echo "${ECHO_T}$gcc_cv_header_memcheck_h" >&6 - -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Find out how to test for executable files. Don't use a zero-byte file, -# as systems may use methods other than mode bits to determine executability. -cat >conf$$.file <<_ASEOF -#! /bin/sh -exit 0 -_ASEOF -chmod +x conf$$.file -if test -x conf$$.file >/dev/null 2>&1; then - ac_executable_p="test -x" -else - ac_executable_p="test -f" -fi -rm -f conf$$.file - -# Extract the first word of "valgrind", so it can be a program name with args. -set dummy valgrind; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_valgrind_path+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$valgrind_path" in - [\\/]* | ?:[\\/]*) - ac_cv_path_valgrind_path="$valgrind_path" # Let the user override the test with a path. - ;; - *) - ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS="$ac_save_IFS" - test -z "$ac_dir" && ac_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then - if $ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1; then - ac_cv_path_valgrind_path="$ac_dir/$ac_word$ac_exec_ext" - break 2 - fi - fi - done - done - IFS="$ac_save_IFS" - ;; -esac -fi -valgrind_path="$ac_cv_path_valgrind_path" -if test -n "$valgrind_path"; then - echo "$as_me:$LINENO: result: $valgrind_path" >&5 -echo "${ECHO_T}$valgrind_path" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - if test "x$valgrind_path" = "x" \ - || (test $have_valgrind_h = no \ - && test $gcc_cv_header_memcheck_h = no \ - && test $gcc_cv_header_valgrind_memcheck_h = no); then - { { echo "$as_me:$LINENO: error: *** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h" >&5 -echo "$as_me: error: *** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h" >&2;} - { (exit 1); exit 1; }; } - fi - valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"' - valgrind_command="$valgrind_path -q" - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_VALGRIND_CHECKING 1 -_ACEOF - - if test $gcc_cv_header_valgrind_memcheck_h = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_VALGRIND_MEMCHECK_H 1 -_ACEOF - - fi - if test $gcc_cv_header_memcheck_h = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MEMCHECK_H 1 -_ACEOF - - fi -fi - - - -# Check whether --enable-mapped-location or --disable-mapped-location was given. -if test "${enable_mapped_location+set}" = set; then - enableval="$enable_mapped_location" - -else - enable_mapped_location=no -fi; - -if test "$enable_mapped_location" = yes ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define USE_MAPPED_LOCATION 1 -_ACEOF - -fi - -# Enable code coverage collection -# Check whether --enable-coverage or --disable-coverage was given. -if test "${enable_coverage+set}" = set; then - enableval="$enable_coverage" - case "${enableval}" in - yes|noopt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0" - ;; - opt) - coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2" - ;; - no) - # a.k.a. --disable-coverage - coverage_flags="" - ;; - *) - { { echo "$as_me:$LINENO: error: unknown coverage setting $enableval" >&5 -echo "$as_me: error: unknown coverage setting $enableval" >&2;} - { (exit 1); exit 1; }; } - ;; -esac -else - coverage_flags="" -fi; - - -# Check whether --enable-gather-detailed-mem-stats or --disable-gather-detailed-mem-stats was given. -if test "${enable_gather_detailed_mem_stats+set}" = set; then - enableval="$enable_gather_detailed_mem_stats" - -else - enable_gather_detailed_mem_stats=no -fi; -if test x$enable_gather_detailed_mem_stats = xyes ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define GATHER_STATISTICS 1 -_ACEOF - -fi - -# ------------------------------- -# Miscenalleous configure options -# ------------------------------- - -# With stabs - -# Check whether --with-stabs or --without-stabs was given. -if test "${with_stabs+set}" = set; then - withval="$with_stabs" - stabs="$with_stabs" -else - stabs=no -fi; - -# Determine whether or not multilibs are enabled. -# Check whether --enable-multilib or --disable-multilib was given. -if test "${enable_multilib+set}" = set; then - enableval="$enable_multilib" - -else - enable_multilib=yes -fi; - - -# Enable __cxa_atexit for C++. -# Check whether --enable-__cxa_atexit or --disable-__cxa_atexit was given. -if test "${enable___cxa_atexit+set}" = set; then - enableval="$enable___cxa_atexit" - -fi; - -# Enable C extension for decimal float if target supports it. -# Check whether --enable-decimal-float or --disable-decimal-float was given. -if test "${enable_decimal_float+set}" = set; then - enableval="$enable_decimal_float" - - if test x$enablevar = xyes ; then - case $target in - powerpc*-*-linux* | i?86*-*-linux*) - enable_decimal_float=yes - ;; - *) - { echo "$as_me:$LINENO: WARNING: decimal float is not supported for this target" >&5 -echo "$as_me: WARNING: decimal float is not supported for this target" >&2;} - enable_decimal_float=no - ;; - esac - fi - -else - enable_decimal_float=no -fi; - - - -dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi` - -cat >>confdefs.h <<_ACEOF -@%:@define ENABLE_DECIMAL_FLOAT $dfp -_ACEOF - - -# Enable threads -# Pass with no value to take the default -# Pass with a value to specify a thread package -# Check whether --enable-threads or --disable-threads was given. -if test "${enable_threads+set}" = set; then - enableval="$enable_threads" - -else - enable_threads='' -fi; - -# Check whether --enable-tls or --disable-tls was given. -if test "${enable_tls+set}" = set; then - enableval="$enable_tls" - - case $enable_tls in - yes | no) ;; - *) { { echo "$as_me:$LINENO: error: '$enable_tls' is an invalid value for --enable-tls. -Valid choices are 'yes' and 'no'." >&5 -echo "$as_me: error: '$enable_tls' is an invalid value for --enable-tls. -Valid choices are 'yes' and 'no'." >&2;} - { (exit 1); exit 1; }; } ;; - esac - -else - enable_tls='' -fi; - -# Check whether --enable-objc-gc or --disable-objc-gc was given. -if test "${enable_objc_gc+set}" = set; then - enableval="$enable_objc_gc" - if test x$enable_objc_gc = xno; then - objc_boehm_gc='' -else - objc_boehm_gc=1 -fi -else - objc_boehm_gc='' -fi; - - -# Check whether --with-dwarf2 or --without-dwarf2 was given. -if test "${with_dwarf2+set}" = set; then - withval="$with_dwarf2" - dwarf2="$with_dwarf2" -else - dwarf2=no -fi; - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - - case $enable_shared in - yes | no) ;; - *) - enable_shared=no - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; - esac - -else - enable_shared=yes -fi; - - - -# Check whether --with-build-sysroot or --without-build-sysroot was given. -if test "${with_build_sysroot+set}" = set; then - withval="$with_build_sysroot" - -fi; - - -# Check whether --with-sysroot or --without-sysroot was given. -if test "${with_sysroot+set}" = set; then - withval="$with_sysroot" - - case ${with_sysroot} in - yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;; - *) TARGET_SYSTEM_ROOT=$with_sysroot ;; - esac - - TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' - CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)' - - if test "x$exec_prefix" = xNONE; then - if test "x$prefix" = xNONE; then - test_prefix=/usr/local - else - test_prefix=$prefix - fi - else - test_prefix=$exec_prefix - fi - case ${TARGET_SYSTEM_ROOT} in - "${test_prefix}"|"${test_prefix}/"*|\ - '${exec_prefix}'|'${exec_prefix}/'*) - t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE" - TARGET_SYSTEM_ROOT_DEFINE="$t" - ;; - esac - -else - - TARGET_SYSTEM_ROOT= - TARGET_SYSTEM_ROOT_DEFINE= - CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include' - -fi; - - - - -# Build with intermodule optimisations -# Check whether --enable-intermodule or --disable-intermodule was given. -if test "${enable_intermodule+set}" = set; then - enableval="$enable_intermodule" - case ${enable_intermodule} in - yes) onestep="-onestep";; - *) onestep="";; -esac -else - onestep="" -fi; - - -# LLVM LOCAL begin -# See if dsymutil has been installed and is modern enough -# that we can use DWARF. - -ac_executable_extensions="$build_exeext" - -# Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -n "$DSYMUTIL"; then - # Found it, now check the version. - echo "$as_me:$LINENO: checking for modern dsymutil" >&5 -echo $ECHO_N "checking for modern dsymutil... $ECHO_C" >&6 -if test "${gcc_cv_prog_dsymutil_modern+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_prog_version=`$DSYMUTIL --version 2>&1 | - sed -n 's/^.*.*dwarfutils.\([0-9]*\).*$/\1/p'` - echo "configure:__oline__: version of dsymutil is $ac_prog_version" >&5 - case $ac_prog_version in - '') gcc_cv_prog_dsymutil_modern=no;; - 2[5-9]*) - gcc_cv_prog_dsymutil_modern=yes;; - *) gcc_cv_prog_dsymutil_modern=no;; - esac - -fi -echo "$as_me:$LINENO: result: $gcc_cv_prog_dsymutil_modern" >&5 -echo "${ECHO_T}$gcc_cv_prog_dsymutil_modern" >&6 -else - gcc_cv_prog_dsymutil_modern=no -fi - -if test $gcc_cv_prog_dsymutil_modern = no; then - echo "$as_me:$LINENO: result: dsymutil is not available" >&5 -echo "${ECHO_T}dsymutil is not available" >&6 -else - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_DSYMUTIL 1 -_ACEOF - -fi - - -# Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -n "$DSYMUTIL"; then - # Found it, now check the version. - echo "$as_me:$LINENO: checking for modern dsymutil" >&5 -echo $ECHO_N "checking for modern dsymutil... $ECHO_C" >&6 -if test "${gcc_cv_prog_dsymutil_modern+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_prog_version=`$DSYMUTIL --version 2>&1 | - sed -n 's/^.*.*dwarfutils.\([0-9]*\).*$/\1/p'` - echo "configure:__oline__: version of dsymutil is $ac_prog_version" >&5 - case $ac_prog_version in - '') gcc_cv_prog_dsymutil_modern=no;; - [3-9][0-9]*) - gcc_cv_prog_dsymutil_modern=yes;; - *) gcc_cv_prog_dsymutil_modern=no;; - esac - -fi -echo "$as_me:$LINENO: result: $gcc_cv_prog_dsymutil_modern" >&5 -echo "${ECHO_T}$gcc_cv_prog_dsymutil_modern" >&6 -else - gcc_cv_prog_dsymutil_modern=no -fi - -if test $gcc_cv_prog_dsymutil_modern = no; then - echo "$as_me:$LINENO: result: dsymutil is not available" >&5 -echo "${ECHO_T}dsymutil is not available" >&6 -else - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_DSYMUTIL 1 -_ACEOF - -fi - -# Check whether --enable-llvm or --disable-llvm was given. -if test "${enable_llvm+set}" = set; then - enableval="$enable_llvm" - case "${enableval}" in - yes) { { echo "$as_me:$LINENO: error: You must specify a path to your LLVM tree with --enable-llvm=DIR" >&5 -echo "$as_me: error: You must specify a path to your LLVM tree with --enable-llvm=DIR" >&2;} - { (exit 1); exit 1; }; } - ;; - *) LLVMBASEPATH="${enableval}" - ;; - esac - - case "${LLVMBASEPATH}" in - /* | [A-Za-z]:[\\/]* ) # absolute path is OK - ;; - *) { { echo "$as_me:$LINENO: error: You must specify *absolute* path to your LLVM tree with --enable-llvm=DIR" >&5 -echo "$as_me: error: You must specify *absolute* path to your LLVM tree with --enable-llvm=DIR" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - - LLVMBUILDMODE="" - if test -x "$LLVMBASEPATH/Release/bin/llc$EXEEXT"; then - if test x$checkingenabled_flag == x ; then - echo Found Release LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Release" - fi - fi - if test -x "$LLVMBASEPATH/Debug/bin/llc$EXEEXT"; then - if test x$checkingenabled_flag != x ; then - echo Found Debug LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Debug" - fi - fi - if test -x "$LLVMBASEPATH/Release-Asserts/bin/llc$EXEEXT"; then - echo Found Release-Asserts LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Release-Asserts" - fi - if test -x "$LLVMBASEPATH/Debug-Asserts/bin/llc$EXEEXT"; then - echo Found Debug-Asserts LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Debug-Asserts" - fi - if test -x "$LLVMBASEPATH/Release+Checks/bin/llc$EXEEXT"; then - echo Found Release+Checks LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Release+Checks" - fi - if test -x "$LLVMBASEPATH/Debug+Checks/bin/llc$EXEEXT"; then - echo Found Debug+Checks LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Debug+Checks" - fi - if test -x "$LLVMBASEPATH/Release-Asserts+Checks/bin/llc$EXEEXT"; then - echo Found Release-Asserts+Checks LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Release-Asserts+Checks" - fi - if test -x "$LLVMBASEPATH/Debug-Asserts+Checks/bin/llc$EXEEXT"; then - echo Found Debug-Asserts+Checks LLVM Tree in $LLVMBASEPATH - LLVMBUILDMODE="Debug-Asserts+Checks" - fi - if test -x "$LLVMBASEPATH/bin/llc$EXEEXT"; then - echo Found Installed LLVM Tree in $LLVMBASEPATH - fi - if test x$LLVMBUILDMODE == x; then - { { echo "$as_me:$LINENO: error: You must specify valid path to your LLVM tree with --enable-llvm=DIR" >&5 -echo "$as_me: error: You must specify valid path to your LLVM tree with --enable-llvm=DIR" >&2;} - { (exit 1); exit 1; }; } - fi - -else - LLVMBASEPATH="" - LLVMBUILDMODE="" - -fi; - -# Send llvm build mode to gcc Makefiles - -# LLVM LOCAL end - -# Sanity check enable_languages in case someone does not run the toplevel -# configure # script. -# Check whether --enable-languages or --disable-languages was given. -if test "${enable_languages+set}" = set; then - enableval="$enable_languages" - case ,${enable_languages}, in - ,,|,yes,) - # go safe -- we cannot be much sure without the toplevel - # configure's - # analysis of which target libs are present and usable - enable_languages=c - ;; - *,all,*) - { { echo "$as_me:$LINENO: error: only the toplevel supports --enable-languages=all" >&5 -echo "$as_me: error: only the toplevel supports --enable-languages=all" >&2;} - { (exit 1); exit 1; }; } - ;; - *,c,*) - ;; - *) - enable_languages=c,${enable_languages} - ;; -esac -else - enable_languages=c -fi; - -# Used by documentation targets - - - - -# ------------------------- -# Checks for other programs -# ------------------------- - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -# Find some useful tools -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -# We need awk to create options.c and options.h. -# Bail out if it's missing. -case ${AWK} in - "") { { echo "$as_me:$LINENO: error: can't build without awk, bailing out" >&5 -echo "$as_me: error: can't build without awk, bailing out" >&2;} - { (exit 1); exit 1; }; } ;; -esac - -echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 -if test "${gcc_cv_prog_LN_S+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f conftestdata_t -echo >conftestdata_f -if ln -s conftestdata_f conftestdata_t 2>/dev/null -then - gcc_cv_prog_LN_S="ln -s" -else - if ln conftestdata_f conftestdata_t 2>/dev/null - then - gcc_cv_prog_LN_S=ln - else - if cp -p conftestdata_f conftestdata_t 2>/dev/null - then - gcc_cv_prog_LN_S="cp -p" - else - gcc_cv_prog_LN_S=cp - fi - fi -fi -rm -f conftestdata_f conftestdata_t - -fi -LN_S="$gcc_cv_prog_LN_S" -if test "$gcc_cv_prog_LN_S" = "ln -s"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - if test "$gcc_cv_prog_LN_S" = "ln"; then - echo "$as_me:$LINENO: result: no, using ln" >&5 -echo "${ECHO_T}no, using ln" >&6 - else - echo "$as_me:$LINENO: result: no, and neither does ln, so using $gcc_cv_prog_LN_S" >&5 -echo "${ECHO_T}no, and neither does ln, so using $gcc_cv_prog_LN_S" >&6 - fi -fi - -echo "$as_me:$LINENO: checking whether ln works" >&5 -echo $ECHO_N "checking whether ln works... $ECHO_C" >&6 -if test "${acx_cv_prog_LN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - rm -f conftestdata_t -echo >conftestdata_f -if ln conftestdata_f conftestdata_t 2>/dev/null -then - acx_cv_prog_LN=ln -else - acx_cv_prog_LN=no -fi -rm -f conftestdata_f conftestdata_t - -fi -if test $acx_cv_prog_LN = no; then - LN="$LN_S" - echo "$as_me:$LINENO: result: no, using $LN" >&5 -echo "${ECHO_T}no, using $LN" >&6 -else - LN="$acx_cv_prog_LN" - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -case "${host}" in -*-*-darwin*) - # By default, the Darwin ranlib will not treat common symbols as - # definitions when building the archive table of contents. Other - # ranlibs do that; pass an option to the Darwin ranlib that makes - # it behave similarly. - ranlib_flags="-c" - ;; -*) - ranlib_flags="" -esac - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD compatible install" >&5 -echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - # OSF/1 installbsd also uses dspmsg, but is usable. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -# APPLE LOCAL begin Mach time - -for ac_header in mach/mach_time.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -@%:@include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ ------------------------------------------ @%:@@%:@ -@%:@@%:@ Report this to the AC_PACKAGE_NAME lists. @%:@@%:@ -@%:@@%:@ ------------------------------------------ @%:@@%:@ -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -# APPLE LOCAL end Mach time - -# See if cmp has --ignore-initial. -echo "$as_me:$LINENO: checking for cmp's capabilities" >&5 -echo $ECHO_N "checking for cmp's capabilities... $ECHO_C" >&6 -if test "${gcc_cv_prog_cmp_skip+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - echo abfoo >t1 - echo cdfoo >t2 - gcc_cv_prog_cmp_skip=slowcompare - if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then - if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then - : - else - gcc_cv_prog_cmp_skip=gnucompare - fi - fi - if test $gcc_cv_prog_cmp_skip = slowcompare ; then - if cmp t1 t2 2 2 > /dev/null 2>&1; then - if cmp t1 t2 1 1 > /dev/null 2>&1; then - : - else - gcc_cv_prog_cmp_skip=fastcompare - fi - fi - fi - rm t1 t2 - -fi -echo "$as_me:$LINENO: result: $gcc_cv_prog_cmp_skip" >&5 -echo "${ECHO_T}$gcc_cv_prog_cmp_skip" >&6 -make_compare_target=$gcc_cv_prog_cmp_skip - - - -# See if we have the mktemp command. -# Extract the first word of "mktemp", so it can be a program name with args. -set dummy mktemp; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_have_mktemp_command+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$have_mktemp_command"; then - ac_cv_prog_have_mktemp_command="$have_mktemp_command" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_have_mktemp_command="yes" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_have_mktemp_command" && ac_cv_prog_have_mktemp_command="no" -fi -fi -have_mktemp_command=$ac_cv_prog_have_mktemp_command -if test -n "$have_mktemp_command"; then - echo "$as_me:$LINENO: result: $have_mktemp_command" >&5 -echo "${ECHO_T}$have_mktemp_command" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - -MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing" - -# See if makeinfo has been installed and is modern enough -# that we can use it. - -# Extract the first word of "makeinfo", so it can be a program name with args. -set dummy makeinfo; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAKEINFO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAKEINFO"; then - ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MAKEINFO="makeinfo" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -MAKEINFO=$ac_cv_prog_MAKEINFO -if test -n "$MAKEINFO"; then - echo "$as_me:$LINENO: result: $MAKEINFO" >&5 -echo "${ECHO_T}$MAKEINFO" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test -n "$MAKEINFO"; then - # Found it, now check the version. - echo "$as_me:$LINENO: checking for modern makeinfo" >&5 -echo $ECHO_N "checking for modern makeinfo... $ECHO_C" >&6 -if test "${gcc_cv_prog_makeinfo_modern+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_prog_version=`$MAKEINFO --version 2>&1 | - sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` - echo "configure:__oline__: version of makeinfo is $ac_prog_version" >&5 - case $ac_prog_version in - '') gcc_cv_prog_makeinfo_modern=no;; - 4.[4-9]*) - gcc_cv_prog_makeinfo_modern=yes;; - *) gcc_cv_prog_makeinfo_modern=no;; - esac - -fi -echo "$as_me:$LINENO: result: $gcc_cv_prog_makeinfo_modern" >&5 -echo "${ECHO_T}$gcc_cv_prog_makeinfo_modern" >&6 -else - gcc_cv_prog_makeinfo_modern=no -fi - -if test $gcc_cv_prog_makeinfo_modern = no; then - MAKEINFO="$MISSING makeinfo" - { echo "$as_me:$LINENO: WARNING: -*** Makeinfo is missing or too old. -*** Info documentation will not be built." >&5 -echo "$as_me: WARNING: -*** Makeinfo is missing or too old. -*** Info documentation will not be built." >&2;} - BUILD_INFO= -else - BUILD_INFO=info -fi - - -# Is pod2man recent enough to regenerate manpages? -echo "$as_me:$LINENO: checking for recent Pod::Man" >&5 -echo $ECHO_N "checking for recent Pod::Man... $ECHO_C" >&6 -if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - GENERATED_MANPAGES=generated-manpages -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - GENERATED_MANPAGES= -fi - - -# How about lex? -for ac_prog in flex -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_FLEX+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$FLEX"; then - ac_cv_prog_FLEX="$FLEX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_FLEX="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -FLEX=$ac_cv_prog_FLEX -if test -n "$FLEX"; then - echo "$as_me:$LINENO: result: $FLEX" >&5 -echo "${ECHO_T}$FLEX" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$FLEX" && break -done -test -n "$FLEX" || FLEX="$MISSING flex" - - -# Bison? -for ac_prog in bison -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_BISON+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$BISON"; then - ac_cv_prog_BISON="$BISON" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_BISON="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -BISON=$ac_cv_prog_BISON -if test -n "$BISON"; then - echo "$as_me:$LINENO: result: $BISON" >&5 -echo "${ECHO_T}$BISON" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$BISON" && break -done -test -n "$BISON" || BISON="$MISSING bison" - - -# Binutils are not build modules, unlike bison/flex/makeinfo. So we -# check for build == host before using them. - -# NM -if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \ - && test -d ../binutils ; then - NM='$(objdir)/../binutils/nm-new' -else - # Extract the first word of "nm", so it can be a program name with args. -set dummy nm; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$NM"; then - ac_cv_prog_NM="$NM" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_NM="nm" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_NM" && ac_cv_prog_NM="${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm" -fi -fi -NM=$ac_cv_prog_NM -if test -n "$NM"; then - echo "$as_me:$LINENO: result: $NM" >&5 -echo "${ECHO_T}$NM" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi - -# AR -if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \ - && test -d ../binutils ; then - AR='$(objdir)/../binutils/ar' -else - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar" -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi - - -# -------------------- -# Checks for C headers -# -------------------- - -echo "$as_me:$LINENO: checking for GNU C library" >&5 -echo $ECHO_N "checking for GNU C library... $ECHO_C" >&6 -if test "${gcc_cv_glibc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ - -#if ! (defined __GLIBC__ || defined __GNU_LIBRARY__) -#error Not a GNU C library system -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_glibc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_glibc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $gcc_cv_glibc" >&5 -echo "${ECHO_T}$gcc_cv_glibc" >&6 -if test $gcc_cv_glibc = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define _GNU_SOURCE 1 -_ACEOF - -fi - -# Need to reject headers which give warnings, so that the -Werror bootstrap -# works later. *sigh* This needs to come before all header checks. - -ac_c_preproc_warn_flag=yes - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define STDC_HEADERS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether string.h and strings.h may both be included" >&5 -echo $ECHO_N "checking whether string.h and strings.h may both be included... $ECHO_C" >&6 -if test "${gcc_cv_header_string+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_header_string=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_header_string=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gcc_cv_header_string" >&5 -echo "${ECHO_T}$gcc_cv_header_string" >&6 -if test $gcc_cv_header_string = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define STRING_WITH_STRINGS 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 -echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 -if test "${ac_cv_header_sys_wait_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - -int -main () -{ - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_sys_wait_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_sys_wait_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 -if test $ac_cv_header_sys_wait_h = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_SYS_WAIT_H 1 -_ACEOF - -fi - - - - - - - - - - - - - - - - - - - - - - - -for ac_header in limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \ - fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \ - sys/resource.h sys/param.h sys/times.h sys/stat.h \ - direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -# Check for thread headers. -echo "$as_me:$LINENO: checking for thread.h" >&5 -echo $ECHO_N "checking for thread.h... $ECHO_C" >&6 -if test "${ac_cv_header_thread_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_thread_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_thread_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_thread_h" >&5 -echo "${ECHO_T}$ac_cv_header_thread_h" >&6 -if test $ac_cv_header_thread_h = yes; then - have_thread_h=yes -else - have_thread_h= -fi - -echo "$as_me:$LINENO: checking for pthread.h" >&5 -echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6 -if test "${ac_cv_header_pthread_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_pthread_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_pthread_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_pthread_h" >&5 -echo "${ECHO_T}$ac_cv_header_pthread_h" >&6 -if test $ac_cv_header_pthread_h = yes; then - have_pthread_h=yes -else - have_pthread_h= -fi - - -# These tests can't be done till we know if we have limits.h. -echo "$as_me:$LINENO: checking for CHAR_BIT" >&5 -echo $ECHO_N "checking for CHAR_BIT... $ECHO_C" >&6 -if test "${gcc_cv_decl_char_bit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef HAVE_LIMITS_H -#include -#endif -#ifdef CHAR_BIT -found -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "found" >/dev/null 2>&1; then - gcc_cv_decl_char_bit=yes -else - gcc_cv_decl_char_bit=no -fi -rm -f conftest* - - -fi -echo "$as_me:$LINENO: result: $gcc_cv_decl_char_bit" >&5 -echo "${ECHO_T}$gcc_cv_decl_char_bit" >&6 -if test $gcc_cv_decl_char_bit = no; then - echo "$as_me:$LINENO: checking number of bits in a byte" >&5 -echo $ECHO_N "checking number of bits in a byte... $ECHO_C" >&6 -if test "${gcc_cv_c_nbby+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - i=8 - gcc_cv_c_nbby= - while test $i -lt 65; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -switch(0) { - case (unsigned char)((unsigned long)1 << $i) == ((unsigned long)1 << $i): - case (unsigned char)((unsigned long)1<<($i-1)) == ((unsigned long)1<<($i-1)): - ; } - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_c_nbby=$i; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - i=`expr $i + 1` - done - test -z "$gcc_cv_c_nbby" && gcc_cv_c_nbby=failed - -fi -echo "$as_me:$LINENO: result: $gcc_cv_c_nbby" >&5 -echo "${ECHO_T}$gcc_cv_c_nbby" >&6 -if test $gcc_cv_c_nbby = failed; then - { { echo "$as_me:$LINENO: error: cannot determine number of bits in a byte" >&5 -echo "$as_me: error: cannot determine number of bits in a byte" >&2;} - { (exit 1); exit 1; }; } -else - -cat >>confdefs.h <<_ACEOF -@%:@define CHAR_BIT $gcc_cv_c_nbby -_ACEOF - -fi -fi -echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 -if test "${ac_cv_c_bigendian+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # See if sys/param.h defines the BYTE_ORDER macro. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It does; now see whether it defined to BIG_ENDIAN or not. -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_c_bigendian=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -# It does not; compile a test program. -if test "$cross_compiling" = yes; then - # try to guess the endianness by grepping values into an object file - ac_cv_c_bigendian=unknown - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; -void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } -short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; -short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; -void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } -int -main () -{ - _ascii (); _ebcdic (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then - ac_cv_c_bigendian=yes -fi -if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi -fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -int -main () -{ - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_c_bigendian=yes -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -echo "${ECHO_T}$ac_cv_c_bigendian" >&6 -case $ac_cv_c_bigendian in - yes) - -cat >>confdefs.h <<\_ACEOF -@%:@define WORDS_BIGENDIAN 1 -_ACEOF - ;; - no) - ;; - *) - { { echo "$as_me:$LINENO: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&5 -echo "$as_me: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} - { (exit 1); exit 1; }; } ;; -esac - - -# -------- -# UNSORTED -# -------- - -# Stage specific cflags for build. -stage1_cflags= -case $build in -vax-*-*) - if test x$GCC = xyes - then - stage1_cflags="-Wa,-J" - else - stage1_cflags="-J" - fi - ;; -esac - - -# These libraries may be used by collect2. -# We may need a special search path to get them linked. -echo "$as_me:$LINENO: checking for collect2 libraries" >&5 -echo $ECHO_N "checking for collect2 libraries... $ECHO_C" >&6 -if test "${gcc_cv_collect2_libs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - save_LIBS="$LIBS" -for libs in '' -lld -lmld \ - '-L/usr/lib/cmplrs/cc2.11 -lmld' \ - '-L/usr/lib/cmplrs/cc3.11 -lmld' -do - LIBS="$libs" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char ldopen (); -int -main () -{ -ldopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_collect2_libs="$libs"; break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -done -LIBS="$save_LIBS" -test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required' -fi -echo "$as_me:$LINENO: result: $gcc_cv_collect2_libs" >&5 -echo "${ECHO_T}$gcc_cv_collect2_libs" >&6 -case $gcc_cv_collect2_libs in - "none required") ;; - *) COLLECT2_LIBS=$gcc_cv_collect2_libs ;; -esac - - -# When building Ada code on Alpha, we need exc_resume which is usually in -# -lexc. So test for it. -save_LIBS="$LIBS" -LIBS= -echo "$as_me:$LINENO: checking for library containing exc_resume" >&5 -echo $ECHO_N "checking for library containing exc_resume... $ECHO_C" >&6 -if test "${ac_cv_search_exc_resume+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_exc_resume=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char exc_resume (); -int -main () -{ -exc_resume (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_exc_resume="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_exc_resume" = no; then - for ac_lib in exc; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char exc_resume (); -int -main () -{ -exc_resume (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_exc_resume="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_exc_resume" >&5 -echo "${ECHO_T}$ac_cv_search_exc_resume" >&6 -if test "$ac_cv_search_exc_resume" != no; then - test "$ac_cv_search_exc_resume" = "none required" || LIBS="$ac_cv_search_exc_resume $LIBS" - -fi - -GNAT_LIBEXC="$LIBS" -LIBS="$save_LIBS" - - -# Some systems put ldexp and frexp in libm instead of libc; assume -# they're both in the same place. jcf-dump needs them. -save_LIBS="$LIBS" -LIBS= -echo "$as_me:$LINENO: checking for library containing ldexp" >&5 -echo $ECHO_N "checking for library containing ldexp... $ECHO_C" >&6 -if test "${ac_cv_search_ldexp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_ldexp=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char ldexp (); -int -main () -{ -ldexp (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_ldexp="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_ldexp" = no; then - for ac_lib in m; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char ldexp (); -int -main () -{ -ldexp (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_ldexp="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_ldexp" >&5 -echo "${ECHO_T}$ac_cv_search_ldexp" >&6 -if test "$ac_cv_search_ldexp" != no; then - test "$ac_cv_search_ldexp" = "none required" || LIBS="$ac_cv_search_ldexp $LIBS" - -fi - -LDEXP_LIB="$LIBS" -LIBS="$save_LIBS" - - -# Use only if it exists, -# doesn't clash with , and declares intmax_t. -echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 -if test "${gcc_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -intmax_t i = -1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_header_inttypes_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_header_inttypes_h=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:$LINENO: result: $gcc_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$gcc_cv_header_inttypes_h" >&6 -if test $gcc_cv_header_inttypes_h = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_INTTYPES_H 1 -_ACEOF - -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in times clock kill getrlimit setrlimit atoll atoq \ - sysconf strsignal getrusage nl_langinfo scandir alphasort \ - gettimeofday mbstowcs wcswidth mmap mincore setlocale \ - clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -if test x$ac_cv_func_mbstowcs = xyes; then - echo "$as_me:$LINENO: checking whether mbstowcs works" >&5 -echo $ECHO_N "checking whether mbstowcs works... $ECHO_C" >&6 -if test "${gcc_cv_func_mbstowcs_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - gcc_cv_func_mbstowcs_works=yes -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int main() -{ - mbstowcs(0, "", 0); - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_func_mbstowcs_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -gcc_cv_func_mbstowcs_works=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_func_mbstowcs_works" >&5 -echo "${ECHO_T}$gcc_cv_func_mbstowcs_works" >&6 - if test x$gcc_cv_func_mbstowcs_works = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WORKING_MBSTOWCS 1 -_ACEOF - - fi -fi - -echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 -if test "${ac_cv_type_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((ssize_t *) 0) - return 0; -if (sizeof (ssize_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ssize_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ssize_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 -if test $ac_cv_type_ssize_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -@%:@define ssize_t int -_ACEOF - -fi - - -# Try to determine the array type of the second argument of getgroups -# for the target system (int or gid_t). -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 -if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then - ac_cv_type_uid_t=yes -else - ac_cv_type_uid_t=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 -if test $ac_cv_type_uid_t = no; then - -cat >>confdefs.h <<\_ACEOF -@%:@define uid_t int -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -@%:@define gid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 -echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6 -if test "${ac_cv_type_getgroups+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_type_getgroups=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Thanks to Mike Rendell for this test. */ -#include -#define NGID 256 -#undef MAX -#define MAX(x, y) ((x) > (y) ? (x) : (y)) - -int -main () -{ - gid_t gidset[NGID]; - int i, n; - union { gid_t gval; long lval; } val; - - val.lval = -1; - for (i = 0; i < NGID; i++) - gidset[i] = val.gval; - n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, - gidset); - /* Exit non-zero if getgroups seems to require an array of ints. This - happens when gid_t is short but getgroups modifies an array of ints. */ - exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_getgroups=gid_t -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_type_getgroups=int -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -if test $ac_cv_type_getgroups = cross; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then - ac_cv_type_getgroups=gid_t -else - ac_cv_type_getgroups=int -fi -rm -f conftest* - -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 -echo "${ECHO_T}$ac_cv_type_getgroups" >&6 - -cat >>confdefs.h <<_ACEOF -@%:@define GETGROUPS_T $ac_cv_type_getgroups -_ACEOF - - -if test "${target}" = "${build}"; then - TARGET_GETGROUPS_T=$ac_cv_type_getgroups -else - case "${target}" in - # This condition may need some tweaking. It should include all - # targets where the array type of the second argument of getgroups - # is int and the type of gid_t is not equivalent to int. - *-*-sunos* | *-*-ultrix*) - TARGET_GETGROUPS_T=int - ;; - *) - TARGET_GETGROUPS_T=gid_t - ;; - esac -fi - - - -echo "$as_me:$LINENO: checking for sys/mman.h" >&5 -echo $ECHO_N "checking for sys/mman.h... $ECHO_C" >&6 -if test "${ac_cv_header_sys_mman_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_sys_mman_h=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_sys_mman_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_mman_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_mman_h" >&6 -if test $ac_cv_header_sys_mman_h = yes; then - gcc_header_sys_mman_h=yes -else - gcc_header_sys_mman_h=no -fi - -echo "$as_me:$LINENO: checking for mmap" >&5 -echo $ECHO_N "checking for mmap... $ECHO_C" >&6 -if test "${ac_cv_func_mmap+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define mmap to an innocuous variant, in case declares mmap. - For example, HP-UX 11i declares gettimeofday. */ -#define mmap innocuous_mmap - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mmap (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef mmap - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mmap (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_mmap) || defined (__stub___mmap) -choke me -#else -char (*f) () = mmap; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != mmap; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_mmap=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap" >&5 -echo "${ECHO_T}$ac_cv_func_mmap" >&6 -if test $ac_cv_func_mmap = yes; then - gcc_func_mmap=yes -else - gcc_func_mmap=no -fi - -if test "$gcc_header_sys_mman_h" != yes \ - || test "$gcc_func_mmap" != yes; then - gcc_cv_func_mmap_file=no - gcc_cv_func_mmap_dev_zero=no - gcc_cv_func_mmap_anon=no -else - echo "$as_me:$LINENO: checking whether read-only mmap of a plain file works" >&5 -echo $ECHO_N "checking whether read-only mmap of a plain file works... $ECHO_C" >&6 -if test "${gcc_cv_func_mmap_file+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Add a system to this blacklist if - # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a - # memory area containing the same data that you'd get if you applied - # read() to the same fd. The only system known to have a problem here - # is VMS, where text files have record structure. - case "$host_os" in - vms* | ultrix*) - gcc_cv_func_mmap_file=no ;; - *) - gcc_cv_func_mmap_file=yes;; - esac -fi -echo "$as_me:$LINENO: result: $gcc_cv_func_mmap_file" >&5 -echo "${ECHO_T}$gcc_cv_func_mmap_file" >&6 - echo "$as_me:$LINENO: checking whether mmap from /dev/zero works" >&5 -echo $ECHO_N "checking whether mmap from /dev/zero works... $ECHO_C" >&6 -if test "${gcc_cv_func_mmap_dev_zero+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Add a system to this blacklist if it has mmap() but /dev/zero - # does not exist, or if mmapping /dev/zero does not give anonymous - # zeroed pages with both the following properties: - # 1. If you map N consecutive pages in with one call, and then - # unmap any subset of those pages, the pages that were not - # explicitly unmapped remain accessible. - # 2. If you map two adjacent blocks of memory and then unmap them - # both at once, they must both go away. - # Systems known to be in this category are Windows (all variants), - # VMS, and Darwin. - case "$host_os" in - vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) - gcc_cv_func_mmap_dev_zero=no ;; - *) - gcc_cv_func_mmap_dev_zero=yes;; - esac -fi -echo "$as_me:$LINENO: result: $gcc_cv_func_mmap_dev_zero" >&5 -echo "${ECHO_T}$gcc_cv_func_mmap_dev_zero" >&6 - - # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for. - echo "$as_me:$LINENO: checking for MAP_ANON(YMOUS)" >&5 -echo $ECHO_N "checking for MAP_ANON(YMOUS)... $ECHO_C" >&6 -if test "${gcc_cv_decl_map_anon+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -#ifndef MAP_ANONYMOUS -#define MAP_ANONYMOUS MAP_ANON -#endif - -int -main () -{ -int n = MAP_ANONYMOUS; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_decl_map_anon=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_decl_map_anon=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gcc_cv_decl_map_anon" >&5 -echo "${ECHO_T}$gcc_cv_decl_map_anon" >&6 - - if test $gcc_cv_decl_map_anon = no; then - gcc_cv_func_mmap_anon=no - else - echo "$as_me:$LINENO: checking whether mmap with MAP_ANON(YMOUS) works" >&5 -echo $ECHO_N "checking whether mmap with MAP_ANON(YMOUS) works... $ECHO_C" >&6 -if test "${gcc_cv_func_mmap_anon+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Add a system to this blacklist if it has mmap() and MAP_ANON or - # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) - # doesn't give anonymous zeroed pages with the same properties listed - # above for use of /dev/zero. - # Systems known to be in this category are Windows, VMS, and SCO Unix. - case "$host_os" in - vms* | cygwin* | pe | mingw* | sco* | udk* ) - gcc_cv_func_mmap_anon=no ;; - *) - gcc_cv_func_mmap_anon=yes;; - esac -fi -echo "$as_me:$LINENO: result: $gcc_cv_func_mmap_anon" >&5 -echo "${ECHO_T}$gcc_cv_func_mmap_anon" >&6 - fi -fi - -if test $gcc_cv_func_mmap_file = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MMAP_FILE 1 -_ACEOF - -fi -if test $gcc_cv_func_mmap_dev_zero = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MMAP_DEV_ZERO 1 -_ACEOF - -fi -if test $gcc_cv_func_mmap_anon = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_MMAP_ANON 1 -_ACEOF - -fi - - -case "${host}" in -*-*-*vms*) - # Under VMS, vfork works very differently than on Unix. The standard test - # won't work, and it isn't easily adaptable. It makes more sense to - # just force it. - ac_cv_func_vfork_works=yes - ;; -esac -echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 -if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((pid_t *) 0) - return 0; -if (sizeof (pid_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_pid_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_pid_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6 -if test $ac_cv_type_pid_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -@%:@define pid_t int -_ACEOF - -fi - - - -for ac_header in unistd.h vfork.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -@%:@include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - -for ac_func in fork vfork -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -if test "x$ac_cv_func_fork" = xyes; then - echo "$as_me:$LINENO: checking for working fork" >&5 -echo $ECHO_N "checking for working fork... $ECHO_C" >&6 -if test "${ac_cv_func_fork_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_fork_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* By Ruediger Kuhlmann. */ - #include - #if HAVE_UNISTD_H - # include - #endif - /* Some systems only have a dummy stub for fork() */ - int main () - { - if (fork() < 0) - exit (1); - exit (0); - } -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fork_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_fork_works=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5 -echo "${ECHO_T}$ac_cv_func_fork_works" >&6 - -else - ac_cv_func_fork_works=$ac_cv_func_fork -fi -if test "x$ac_cv_func_fork_works" = xcross; then - case $host in - *-*-amigaos* | *-*-msdosdjgpp*) - # Override, as these systems have only a dummy fork() stub - ac_cv_func_fork_works=no - ;; - *) - ac_cv_func_fork_works=yes - ;; - esac - { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 -echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} -fi -ac_cv_func_vfork_works=$ac_cv_func_vfork -if test "x$ac_cv_func_vfork" = xyes; then - echo "$as_me:$LINENO: checking for working vfork" >&5 -echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 -if test "${ac_cv_func_vfork_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_vfork_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Thanks to Paul Eggert for this test. */ -#include -#include -#include -#include -#include -#if HAVE_UNISTD_H -# include -#endif -#if HAVE_VFORK_H -# include -#endif -/* On some sparc systems, changes by the child to local and incoming - argument registers are propagated back to the parent. The compiler - is told about this with #include , but some compilers - (e.g. gcc -O) don't grok . Test for this by using a - static variable whose address is put into a register that is - clobbered by the vfork. */ -static void -#ifdef __cplusplus -sparc_address_test (int arg) -# else -sparc_address_test (arg) int arg; -#endif -{ - static pid_t child; - if (!child) { - child = vfork (); - if (child < 0) { - perror ("vfork"); - _exit(2); - } - if (!child) { - arg = getpid(); - write(-1, "", 0); - _exit (arg); - } - } -} - -int -main () -{ - pid_t parent = getpid (); - pid_t child; - - sparc_address_test (0); - - child = vfork (); - - if (child == 0) { - /* Here is another test for sparc vfork register problems. This - test uses lots of local variables, at least as many local - variables as main has allocated so far including compiler - temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris - 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should - reuse the register of parent for one of the local variables, - since it will think that parent can't possibly be used any more - in this routine. Assigning to the local variable will thus - munge parent in the parent process. */ - pid_t - p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), - p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); - /* Convince the compiler that p..p7 are live; otherwise, it might - use the same hardware register for all 8 local variables. */ - if (p != p1 || p != p2 || p != p3 || p != p4 - || p != p5 || p != p6 || p != p7) - _exit(1); - - /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent - from child file descriptors. If the child closes a descriptor - before it execs or exits, this munges the parent's descriptor - as well. Test for this by closing stdout in the child. */ - _exit(close(fileno(stdout)) != 0); - } else { - int status; - struct stat st; - - while (wait(&status) != child) - ; - exit( - /* Was there some problem with vforking? */ - child < 0 - - /* Did the child fail? (This shouldn't happen.) */ - || status - - /* Did the vfork/compiler bug occur? */ - || parent != getpid() - - /* Did the file descriptor bug occur? */ - || fstat(fileno(stdout), &st) != 0 - ); - } -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_vfork_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_func_vfork_works=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5 -echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 - -fi; -if test "x$ac_cv_func_fork_works" = xcross; then - ac_cv_func_vfork_works=$ac_cv_func_vfork - { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 -echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} -fi - -if test "x$ac_cv_func_vfork_works" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WORKING_VFORK 1 -_ACEOF - -else - -cat >>confdefs.h <<\_ACEOF -@%:@define vfork fork -_ACEOF - -fi -if test "x$ac_cv_func_fork_works" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_WORKING_FORK 1 -_ACEOF - -fi - - - - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -# Prepare PATH_SEPARATOR. -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi -fi -echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 -if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - -fi -echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6 - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath or --disable-rpath was given. -if test "${enable_rpath+set}" = set; then - enableval="$enable_rpath" - : -else - enable_rpath=yes -fi; - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then - withval="$with_libiconv_prefix" - - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi - -fi; - LIBICONV= - LTLIBICONV= - INCICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - - - - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6 -if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6 - if test "$am_cv_func_iconv" = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_ICONV 1 -_ACEOF - - fi - if test "$am_cv_lib_iconv" = yes; then - echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6 - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - if test "$am_cv_func_iconv" = yes; then - echo "$as_me:$LINENO: checking for iconv declaration" >&5 -echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6 - if test "${am_cv_proto_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_proto_iconv_arg1="" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_proto_iconv_arg1="const" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" -fi - - am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - echo "$as_me:$LINENO: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -echo "${ECHO_T}${ac_t:- - }$am_cv_proto_iconv" >&6 - -cat >>confdefs.h <<_ACEOF -@%:@define ICONV_CONST $am_cv_proto_iconv_arg1 -_ACEOF - - fi - -# Until we have in-tree GNU iconv: -LIBICONV_DEP= - - - - echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 -echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 -if test "${am_cv_val_LC_MESSAGES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -return LC_MESSAGES - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_val_LC_MESSAGES=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_val_LC_MESSAGES=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 -echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 - if test $am_cv_val_LC_MESSAGES = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LC_MESSAGES 1 -_ACEOF - - fi - - - - echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 -if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_langinfo_codeset=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -am_cv_langinfo_codeset=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 - if test $am_cv_langinfo_codeset = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LANGINFO_CODESET 1 -_ACEOF - - fi - - -# We will need to find libiberty.h and ansidecl.h -saved_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -for ac_func in getenv atol asprintf sbrk abort atof getcwd getwd \ - strsignal strstr strverscmp \ - errno snprintf vsnprintf vasprintf malloc realloc calloc \ - free basename getopt clock getpagesize clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked -do - ac_tr_decl=`echo "HAVE_DECL_$ac_func" | $as_tr_cpp` -echo "$as_me:$LINENO: checking whether $ac_func is declared" >&5 -echo $ECHO_N "checking whether $ac_func is declared... $ECHO_C" >&6 -if eval "test \"\${gcc_cv_have_decl_$ac_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef $ac_tr_decl -#define $ac_tr_decl 1 - -#include "ansidecl.h" -#include "system.h" - -int -main () -{ -#ifndef $ac_func -char *(*pfn) = (char *(*)) $ac_func ; -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "gcc_cv_have_decl_$ac_func=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "gcc_cv_have_decl_$ac_func=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$gcc_cv_have_decl_'$ac_func`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 0 -_ACEOF - -fi - -done - - - - - -for ac_func in getrlimit setrlimit getrusage -do - ac_tr_decl=`echo "HAVE_DECL_$ac_func" | $as_tr_cpp` -echo "$as_me:$LINENO: checking whether $ac_func is declared" >&5 -echo $ECHO_N "checking whether $ac_func is declared... $ECHO_C" >&6 -if eval "test \"\${gcc_cv_have_decl_$ac_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef $ac_tr_decl -#define $ac_tr_decl 1 - -#include "ansidecl.h" -#include "system.h" -#ifdef HAVE_SYS_RESOURCE_H -#include -#endif - - -int -main () -{ -#ifndef $ac_func -char *(*pfn) = (char *(*)) $ac_func ; -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "gcc_cv_have_decl_$ac_func=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "gcc_cv_have_decl_$ac_func=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$gcc_cv_have_decl_'$ac_func`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 0 -_ACEOF - -fi - -done - - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include "ansidecl.h" -#include "system.h" -#ifdef HAVE_SYS_RESOURCE_H -#include -#endif - -int -main () -{ -rlim_t l = 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -cat >>confdefs.h <<\_ACEOF -@%:@define rlim_t long -_ACEOF - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -# On AIX 5.2, conflicts with , as both define incompatible -# FREAD and FWRITE macros. Fortunately, for GCC's single usage of ldgetname -# in collect2.c, isn't visible, but the configure test below needs -# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME. - -for ac_func in ldgetname -do - ac_tr_decl=`echo "HAVE_DECL_$ac_func" | $as_tr_cpp` -echo "$as_me:$LINENO: checking whether $ac_func is declared" >&5 -echo $ECHO_N "checking whether $ac_func is declared... $ECHO_C" >&6 -if eval "test \"\${gcc_cv_have_decl_$ac_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef $ac_tr_decl -#define $ac_tr_decl 1 - -#include "ansidecl.h" -#include "system.h" -#ifdef HAVE_LDFCN_H -#undef FREAD -#undef FWRITE -#include -#endif - - -int -main () -{ -#ifndef $ac_func -char *(*pfn) = (char *(*)) $ac_func ; -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "gcc_cv_have_decl_$ac_func=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "gcc_cv_have_decl_$ac_func=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$gcc_cv_have_decl_'$ac_func`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 0 -_ACEOF - -fi - -done - - - -for ac_func in times -do - ac_tr_decl=`echo "HAVE_DECL_$ac_func" | $as_tr_cpp` -echo "$as_me:$LINENO: checking whether $ac_func is declared" >&5 -echo $ECHO_N "checking whether $ac_func is declared... $ECHO_C" >&6 -if eval "test \"\${gcc_cv_have_decl_$ac_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef $ac_tr_decl -#define $ac_tr_decl 1 - -#include "ansidecl.h" -#include "system.h" -#ifdef HAVE_SYS_TIMES_H -#include -#endif - - -int -main () -{ -#ifndef $ac_func -char *(*pfn) = (char *(*)) $ac_func ; -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "gcc_cv_have_decl_$ac_func=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "gcc_cv_have_decl_$ac_func=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$gcc_cv_have_decl_'$ac_func`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 0 -_ACEOF - -fi - -done - - - -for ac_func in sigaltstack -do - ac_tr_decl=`echo "HAVE_DECL_$ac_func" | $as_tr_cpp` -echo "$as_me:$LINENO: checking whether $ac_func is declared" >&5 -echo $ECHO_N "checking whether $ac_func is declared... $ECHO_C" >&6 -if eval "test \"\${gcc_cv_have_decl_$ac_func+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#undef $ac_tr_decl -#define $ac_tr_decl 1 - -#include "ansidecl.h" -#include "system.h" -#include - - -int -main () -{ -#ifndef $ac_func -char *(*pfn) = (char *(*)) $ac_func ; -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "gcc_cv_have_decl_$ac_func=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "gcc_cv_have_decl_$ac_func=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -if eval "test \"`echo '$gcc_cv_have_decl_'$ac_func`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 ; cat >>confdefs.h <<_ACEOF -@%:@define $ac_tr_decl 0 -_ACEOF - -fi - -done - - -# More time-related stuff. -echo "$as_me:$LINENO: checking for struct tms" >&5 -echo $ECHO_N "checking for struct tms... $ECHO_C" >&6 -if test "${ac_cv_struct_tms+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include "ansidecl.h" -#include "system.h" -#ifdef HAVE_SYS_TIMES_H -#include -#endif - -int -main () -{ -struct tms tms; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_struct_tms=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_struct_tms=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tms" >&5 -echo "${ECHO_T}$ac_cv_struct_tms" >&6 -if test $ac_cv_struct_tms = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_STRUCT_TMS 1 -_ACEOF - -fi - -# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE. -# revisit after autoconf 2.50. -echo "$as_me:$LINENO: checking for clock_t" >&5 -echo $ECHO_N "checking for clock_t... $ECHO_C" >&6 -if test "${gcc_cv_type_clock_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include "ansidecl.h" -#include "system.h" - -int -main () -{ -clock_t x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_type_clock_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_type_clock_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gcc_cv_type_clock_t" >&5 -echo "${ECHO_T}$gcc_cv_type_clock_t" >&6 -if test $gcc_cv_type_clock_t = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_CLOCK_T 1 -_ACEOF - -fi - -# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests. -CFLAGS="$saved_CFLAGS" - -# Check whether --enable-initfini-array or --disable-initfini-array was given. -if test "${enable_initfini_array+set}" = set; then - enableval="$enable_initfini_array" - -else - -echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5 -echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6 -if test "${gcc_cv_initfini_array+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - gcc_cv_initfini_array=no -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -static int x = -1; -int main (void) { return x; } -int foo (void) { x = 0; } -int (*fp) (void) __attribute__ ((section (".init_array"))) = foo; -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_initfini_array=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -gcc_cv_initfini_array=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_initfini_array" >&5 -echo "${ECHO_T}$gcc_cv_initfini_array" >&6 - enable_initfini_array=$gcc_cv_initfini_array - -fi; -if test $enable_initfini_array = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_INITFINI_ARRAY 1 -_ACEOF - -fi - -# mkdir takes a single argument on some systems. -echo "$as_me:$LINENO: checking if mkdir takes one argument" >&5 -echo $ECHO_N "checking if mkdir takes one argument... $ECHO_C" >&6 -if test "${gcc_cv_mkdir_takes_one_arg+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif -#ifdef HAVE_DIRECT_H -# include -#endif -int -main () -{ -mkdir ("foo", 0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_mkdir_takes_one_arg=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_mkdir_takes_one_arg=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gcc_cv_mkdir_takes_one_arg" >&5 -echo "${ECHO_T}$gcc_cv_mkdir_takes_one_arg" >&6 -if test $gcc_cv_mkdir_takes_one_arg = yes ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define MKDIR_TAKES_ONE_ARG 1 -_ACEOF - -fi - - -# File extensions -manext='.1' -objext='.o' - - - -# With Setjmp/Longjmp based exception handling. -# Check whether --enable-sjlj-exceptions or --disable-sjlj-exceptions was given. -if test "${enable_sjlj_exceptions+set}" = set; then - enableval="$enable_sjlj_exceptions" - sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi` - -cat >>confdefs.h <<_ACEOF -@%:@define CONFIG_SJLJ_EXCEPTIONS $sjlj -_ACEOF - -fi; - -# For platforms with the unwind ABI which includes an unwind library, -# libunwind, we can choose to use the system libunwind. - -# Check whether --with-system-libunwind or --without-system-libunwind was given. -if test "${with_system_libunwind+set}" = set; then - withval="$with_system_libunwind" - -fi; - -# config.gcc also contains tests of with_system_libunwind. -if test x$with_system_libunwind = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GETIPINFO 1 -_ACEOF - -fi - -# -------------------------------------------------------- -# Build, host, and target specific configuration fragments -# -------------------------------------------------------- - -# Collect build-machine-specific information. -. ${srcdir}/config.build - -# Collect host-machine-specific information. -. ${srcdir}/config.host - -target_gtfiles= - -# Collect target-machine-specific information. -. ${srcdir}/config.gcc - -extra_objs="${host_extra_objs} ${extra_objs}" -extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}" - -# Default the target-machine variables that were not explicitly set. -if test x"$tm_file" = x -then tm_file=$cpu_type/$cpu_type.h; fi - -if test x"$extra_headers" = x -then extra_headers=; fi - -if test x$md_file = x -then md_file=$cpu_type/$cpu_type.md; fi - -if test x$out_file = x -then out_file=$cpu_type/$cpu_type.c; fi - -if test x"$tmake_file" = x -then tmake_file=$cpu_type/t-$cpu_type -fi - -if test x"$dwarf2" = xyes -then tm_file="$tm_file tm-dwarf2.h" -fi - -# Say what files are being used for the output code and MD file. -echo "Using \`$srcdir/config/$out_file' for machine-specific logic." -# LLVM LOCAL -echo "Using \`$srcdir/config/$out_cxx_file' for machine-specific C++ logic." -echo "Using \`$srcdir/config/$md_file' as machine description file." - -# If any of the xm_file variables contain nonexistent files, warn -# about them and drop them. - -bx= -for x in $build_xm_file; do - if test -f $srcdir/config/$x - then bx="$bx $x" - else { echo "$as_me:$LINENO: WARNING: $srcdir/config/$x does not exist." >&5 -echo "$as_me: WARNING: $srcdir/config/$x does not exist." >&2;} - fi -done -build_xm_file="$bx" - -hx= -for x in $host_xm_file; do - if test -f $srcdir/config/$x - then hx="$hx $x" - else { echo "$as_me:$LINENO: WARNING: $srcdir/config/$x does not exist." >&5 -echo "$as_me: WARNING: $srcdir/config/$x does not exist." >&2;} - fi -done -host_xm_file="$hx" - -tx= -for x in $xm_file; do - if test -f $srcdir/config/$x - then tx="$tx $x" - else { echo "$as_me:$LINENO: WARNING: $srcdir/config/$x does not exist." >&5 -echo "$as_me: WARNING: $srcdir/config/$x does not exist." >&2;} - fi -done -xm_file="$tx" - -count=a -for f in $tm_file; do - count=${count}x -done -if test $count = ax; then - echo "Using \`$srcdir/config/$tm_file' as target machine macro file." -else - echo "Using the following target machine macro files:" - for f in $tm_file; do - echo " $srcdir/config/$f" - done -fi - -if test x$need_64bit_hwint = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define NEED_64BIT_HOST_WIDE_INT 1 -_ACEOF - -fi - -if test x$use_long_long_for_widest_fast_int = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define USE_LONG_LONG_FOR_WIDEST_FAST_INT 1 -_ACEOF - -fi - -count=a -for f in $host_xm_file; do - count=${count}x -done -if test $count = a; then - : -elif test $count = ax; then - echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file." -else - echo "Using the following host machine macro files:" - for f in $host_xm_file; do - echo " $srcdir/config/$f" - done -fi -echo "Using ${out_host_hook_obj} for host machine hooks." - -if test "$host_xm_file" != "$build_xm_file"; then - count=a - for f in $build_xm_file; do - count=${count}x - done - if test $count = a; then - : - elif test $count = ax; then - echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file." - else - echo "Using the following build machine macro files:" - for f in $build_xm_file; do - echo " $srcdir/config/$f" - done - fi -fi - -case ${host} in - powerpc*-*-darwin*) - echo "$as_me:$LINENO: checking whether mcontext_t fields have underscores" >&5 -echo $ECHO_N "checking whether mcontext_t fields have underscores... $ECHO_C" >&6 -if test "${gcc_cv_mcontext_underscores+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF - -#include -#include -int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; } - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_mcontext_underscores=no -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -gcc_cv_mcontext_underscores=yes -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gcc_cv_mcontext_underscores" >&5 -echo "${ECHO_T}$gcc_cv_mcontext_underscores" >&6 - if test $gcc_cv_mcontext_underscores = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAS_MCONTEXT_T_UNDERSCORES -_ACEOF - - fi - ;; -esac - -# --------- -# Threading -# --------- - -# Check if a valid thread package -case ${enable_threads} in - "" | no) - # No threads - target_thread_file='single' - ;; - yes) - # default - target_thread_file='single' - ;; - aix | dce | gnat | irix | posix | posix95 | rtems | \ - single | solaris | vxworks | win32 ) - target_thread_file=${enable_threads} - ;; - *) - echo "${enable_threads} is an unknown thread package" 1>&2 - exit 1 - ;; -esac - -if test x${thread_file} = x; then - # No thread file set by target-specific clauses in config.gcc, - # so use file chosen by default logic above - thread_file=${target_thread_file} -fi - -# Make gthr-default.h if we have a thread file. -gthread_flags= -if test $thread_file != single; then - rm -f gthr-default.h - echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h - gthread_flags=-DHAVE_GTHR_DEFAULT -fi - - -# -------- -# UNSORTED -# -------- - -use_cxa_atexit=no -if test x$enable___cxa_atexit = xyes || \ - test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then - if test x$host = x$target; then - echo "$as_me:$LINENO: checking for __cxa_atexit" >&5 -echo $ECHO_N "checking for __cxa_atexit... $ECHO_C" >&6 -if test "${ac_cv_func___cxa_atexit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define __cxa_atexit to an innocuous variant, in case declares __cxa_atexit. - For example, HP-UX 11i declares gettimeofday. */ -#define __cxa_atexit innocuous___cxa_atexit - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char __cxa_atexit (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef __cxa_atexit - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char __cxa_atexit (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub___cxa_atexit) || defined (__stub_____cxa_atexit) -choke me -#else -char (*f) () = __cxa_atexit; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != __cxa_atexit; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func___cxa_atexit=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func___cxa_atexit=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func___cxa_atexit" >&5 -echo "${ECHO_T}$ac_cv_func___cxa_atexit" >&6 -if test $ac_cv_func___cxa_atexit = yes; then - use_cxa_atexit=yes -else - echo "__cxa_atexit can't be enabled on this target" -fi - - else - # We can't check for __cxa_atexit when building a cross, so assume - # it is available - use_cxa_atexit=yes - fi - if test x$use_cxa_atexit = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define DEFAULT_USE_CXA_ATEXIT 2 -_ACEOF - - fi -fi - -use_getipinfo=yes -if test x$with_system_libunwind = xyes; then - if test x$host = x$target; then - echo "$as_me:$LINENO: checking for library containing _Unwind_GetIPInfo" >&5 -echo $ECHO_N "checking for library containing _Unwind_GetIPInfo... $ECHO_C" >&6 -if test "${ac_cv_search__Unwind_GetIPInfo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search__Unwind_GetIPInfo=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _Unwind_GetIPInfo (); -int -main () -{ -_Unwind_GetIPInfo (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search__Unwind_GetIPInfo="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search__Unwind_GetIPInfo" = no; then - for ac_lib in unwind; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _Unwind_GetIPInfo (); -int -main () -{ -_Unwind_GetIPInfo (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search__Unwind_GetIPInfo="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search__Unwind_GetIPInfo" >&5 -echo "${ECHO_T}$ac_cv_search__Unwind_GetIPInfo" >&6 -if test "$ac_cv_search__Unwind_GetIPInfo" != no; then - test "$ac_cv_search__Unwind_GetIPInfo" = "none required" || LIBS="$ac_cv_search__Unwind_GetIPInfo $LIBS" - -else - use_getipinfo=no -fi - - fi -fi - -if test x$use_getipinfo = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GETIPINFO 1 -_ACEOF - -else - echo "The system unwind library does not support _Unwind_GetIPInfo." -fi - -# Look for a file containing extra machine modes. -if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then - extra_modes_file='$(srcdir)'/config/${extra_modes} - - -cat >>confdefs.h <<_ACEOF -@%:@define EXTRA_MODES_FILE "config/$extra_modes" -_ACEOF - -fi - -# Convert extra_options into a form suitable for Makefile use. -extra_opt_files= -for f in $extra_options; do - extra_opt_files="$extra_opt_files \$(srcdir)/config/$f" -done - - -# auto-host.h is the file containing items generated by autoconf and is -# the first file included by config.h. -# If host=build, it is correct to have bconfig include auto-host.h -# as well. If host!=build, we are in error and need to do more -# work to find out the build config parameters. -if test x$host = x$build -then - build_auto=auto-host.h -else - # We create a subdir, then run autoconf in the subdir. - # To prevent recursion we set host and build for the new - # invocation of configure to the build for this invocation - # of configure. - tempdir=build.$$ - rm -rf $tempdir - mkdir $tempdir - cd $tempdir - case ${srcdir} in - /* | A-Za-z:\\/* ) realsrcdir=${srcdir};; - *) realsrcdir=../${srcdir};; - esac - saved_CFLAGS="${CFLAGS}" - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias - CFLAGS="${saved_CFLAGS}" - - # We just finished tests for the build machine, so rename - # the file auto-build.h in the gcc directory. - mv auto-host.h ../auto-build.h - cd .. - rm -rf $tempdir - build_auto=auto-build.h -fi - - -tm_file="${tm_file} defaults.h" -tm_p_file="${tm_p_file} tm-preds.h" -host_xm_file="auto-host.h ansidecl.h ${host_xm_file}" -build_xm_file="${build_auto} ansidecl.h ${build_xm_file}" -# We don't want ansidecl.h in target files, write code there in ISO/GNU C. -# put this back in temporarily. -xm_file="auto-host.h ansidecl.h ${xm_file}" - -# -------- -# UNSORTED -# -------- - -# Compile in configure arguments. -if test -f configargs.h ; then - # Being re-configured. - gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'` - gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" -else - gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS" -fi - -# Double all backslashes and backslash all quotes to turn -# gcc_config_arguments into a C string. -sed -e 's/\\/\\\\/g; s/"/\\"/g' <conftest.out -$gcc_config_arguments -EOF -gcc_config_arguments_str=`cat conftest.out` -rm -f conftest.out - -cat > configargs.h <&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 -if test x"$USE_NLS" != xyes; then - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -else - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_NLS 1 -_ACEOF - - - echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 -echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6 - # Look for .po and .gmo files in the source directory. - CATALOGS= - XLINGUAS= - for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do - # If there aren't any .gmo files the shell will give us the - # literal string "../path/to/srcdir/po/*.gmo" which has to be - # weeded out. - case "$cat" in *\**) - continue;; - esac - # The quadruple backslash is collapsed to a double backslash - # by the backticks, then collapsed again by the double quotes, - # leaving us with one backslash in the sed expression (right - # before the dot that mustn't act as a wildcard). - cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"` - lang=`echo $cat | sed -e "s!\\\\.gmo!!"` - # The user is allowed to set LINGUAS to a list of languages to - # install catalogs for. If it's empty that means "all of them." - if test "x$LINGUAS" = x; then - CATALOGS="$CATALOGS $cat" - XLINGUAS="$XLINGUAS $lang" - else - case "$LINGUAS" in *$lang*) - CATALOGS="$CATALOGS $cat" - XLINGUAS="$XLINGUAS $lang" - ;; - esac - fi - done - LINGUAS="$XLINGUAS" - echo "$as_me:$LINENO: result: $LINGUAS" >&5 -echo "${ECHO_T}$LINGUAS" >&6 - - - DATADIRNAME=share - - INSTOBJEXT=.mo - - GENCAT=gencat - - CATOBJEXT=.gmo - -fi - -# If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get -# -liconv on the link line twice. -case "$LIBINTL" in *$LIBICONV*) - LIBICONV= ;; -esac - -# Check whether --enable-secureplt or --disable-secureplt was given. -if test "${enable_secureplt+set}" = set; then - enableval="$enable_secureplt" - -fi; - -# Windows32 Registry support for specifying GCC installation paths. -# Check whether --enable-win32-registry or --disable-win32-registry was given. -if test "${enable_win32_registry+set}" = set; then - enableval="$enable_win32_registry" - -fi; - -case $host_os in - win32 | pe | cygwin* | mingw32* | uwin*) - if test "x$enable_win32_registry" != xno; then - echo "$as_me:$LINENO: checking for library containing RegOpenKeyExA" >&5 -echo $ECHO_N "checking for library containing RegOpenKeyExA... $ECHO_C" >&6 -if test "${ac_cv_search_RegOpenKeyExA+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_RegOpenKeyExA=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char RegOpenKeyExA (); -int -main () -{ -RegOpenKeyExA (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_RegOpenKeyExA="none required" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_RegOpenKeyExA" = no; then - for ac_lib in advapi32; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char RegOpenKeyExA (); -int -main () -{ -RegOpenKeyExA (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_RegOpenKeyExA="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_RegOpenKeyExA" >&5 -echo "${ECHO_T}$ac_cv_search_RegOpenKeyExA" >&6 -if test "$ac_cv_search_RegOpenKeyExA" != no; then - test "$ac_cv_search_RegOpenKeyExA" = "none required" || LIBS="$ac_cv_search_RegOpenKeyExA $LIBS" - -else - enable_win32_registry=no -fi - - fi - - if test "x$enable_win32_registry" != xno; then - -cat >>confdefs.h <<\_ACEOF -@%:@define ENABLE_WIN32_REGISTRY 1 -_ACEOF - - - if test "x$enable_win32_registry" != xyes \ - && test "x$enable_win32_registry" != x; then - -cat >>confdefs.h <<_ACEOF -@%:@define WIN32_REGISTRY_KEY "$enable_win32_registry" -_ACEOF - - fi - fi - ;; -esac - -# Get an absolute path to the GCC top-level source directory -holddir=`${PWDCMD-pwd}` -cd $srcdir -topdir=`${PWDCMD-pwd}` -cd $holddir - -# Conditionalize the makefile for this host machine. -xmake_file= -for f in ${host_xmake_file} -do - if test -f ${srcdir}/config/$f - then - xmake_file="${xmake_file} \$(srcdir)/config/$f" - fi -done - -# Conditionalize the makefile for this target machine. -tmake_file_= -for f in ${tmake_file} -do - if test -f ${srcdir}/config/$f - then - tmake_file_="${tmake_file_} \$(srcdir)/config/$f" - fi -done -tmake_file="${tmake_file_}" - -# If the host doesn't support symlinks, modify CC in -# FLAGS_TO_PASS so CC="stage1/xgcc -Bstage1/" works. -# Otherwise, we can use "CC=$(CC)". -rm -f symtest.tem -case "$LN_S" in - *-s*) - cc_set_by_configure="\$(CC)" - quoted_cc_set_by_configure="\$(CC)" - stage_prefix_set_by_configure="\$(STAGE_PREFIX)" - quoted_stage_prefix_set_by_configure="\$(STAGE_PREFIX)" - ;; - *) - cc_set_by_configure="\`case '\$(CC)' in stage*) echo '\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\$(CC)';; esac\`" - quoted_cc_set_by_configure="\\\`case '\\\$(CC)' in stage*) echo '\\\$(CC)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(CC)';; esac\\\`" - stage_prefix_set_by_configure="\`case '\$(STAGE_PREFIX)' in stage*) echo '\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\$(STAGE_PREFIX)';; esac\`" - quoted_stage_prefix_set_by_configure="\\\`case '\\\$(STAGE_PREFIX)' in stage*) echo '\\\$(STAGE_PREFIX)' | sed -e 's|stage|../stage|g';; *) echo '\\\$(STAGE_PREFIX)';; esac\\\`" - ;; -esac - -# This is a terrible hack which will go away some day. -host_cc_for_libada=${CC} - - -out_object_file=`basename $out_file .c`.o -# LLVM LOCAL -out_cxx_object_file=`basename $out_cxx_file .cpp`.o - -tm_file_list="options.h" -tm_include_list="options.h" -for f in $tm_file; do - case $f in - defaults.h ) - tm_file_list="${tm_file_list} \$(srcdir)/$f" - tm_include_list="${tm_include_list} $f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" - tm_include_list="${tm_include_list} config/$f" - ;; - esac -done - -tm_p_file_list= -tm_p_include_list= -for f in $tm_p_file; do - case $f in - tm-preds.h ) - tm_p_file_list="${tm_p_file_list} $f" - tm_p_include_list="${tm_p_include_list} $f" - ;; - * ) - tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f" - tm_p_include_list="${tm_p_include_list} config/$f" - esac -done - -xm_file_list= -xm_include_list= -for f in $xm_file; do - case $f in - ansidecl.h ) - xm_file_list="${xm_file_list} \$(srcdir)/../include/$f" - xm_include_list="${xm_include_list} $f" - ;; - auto-host.h ) - xm_file_list="${xm_file_list} $f" - xm_include_list="${xm_include_list} $f" - ;; - * ) - xm_file_list="${xm_file_list} \$(srcdir)/config/$f" - xm_include_list="${xm_include_list} config/$f" - ;; - esac -done - -host_xm_file_list= -host_xm_include_list= -for f in $host_xm_file; do - case $f in - ansidecl.h ) - host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f" - host_xm_include_list="${host_xm_include_list} $f" - ;; - auto-host.h ) - host_xm_file_list="${host_xm_file_list} $f" - host_xm_include_list="${host_xm_include_list} $f" - ;; - * ) - host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" - host_xm_include_list="${host_xm_include_list} config/$f" - ;; - esac -done - -build_xm_file_list= -for f in $build_xm_file; do - case $f in - ansidecl.h ) - build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f" - build_xm_include_list="${build_xm_include_list} $f" - ;; - auto-build.h | auto-host.h ) - build_xm_file_list="${build_xm_file_list} $f" - build_xm_include_list="${build_xm_include_list} $f" - ;; - * ) - build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" - build_xm_include_list="${build_xm_include_list} config/$f" - ;; - esac -done - - # APPLE LOCAL begin mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 -# Define macro CROSS_DIRECTORY_STRUCTURE in compilation if this is a -# cross-compiler which does not use the native headers and libraries. - # APPLE LOCAL end mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 -# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR. -CROSS= -ALL=all.internal -SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' - -if test "x$with_build_sysroot" != x; then - build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)' -else - # This value is used, even on a native system, because - # CROSS_SYSTEM_HEADER_DIR is just - # $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR). - build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)' -fi - -if test x$host != x$target -then - # APPLE LOCAL begin mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 - CROSS="-DCROSS_DIRECTORY_STRUCTURE" - # APPLE LOCAL end mainline 4.3 2006-12-13 CROSS_DIRECTORY_STRUCTURE 4697325 - ALL=all.cross - SYSTEM_HEADER_DIR=$build_system_header_dir - case "$host","$target" in - # Darwin crosses can use the host system's libraries and headers, - # because of the fat library support. Of course, it must be the - # same version of Darwin on both sides. Allow the user to - # just say --target=foo-darwin without a version number to mean - # "the version on this system". - *-*-darwin*,*-*-darwin*) - hostos=`echo $host | sed 's/.*-darwin/darwin/'` - targetos=`echo $target | sed 's/.*-darwin/darwin/'` - if test $hostos = $targetos -o $targetos = darwin ; then - CROSS= - SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' - with_headers=yes - fi - ;; - - i?86-*-*,x86_64-*-* \ - | powerpc*-*-*,powerpc64*-*-*) - CROSS="$CROSS -DNATIVE_CROSS" ;; - esac -elif test "x$TARGET_SYSTEM_ROOT" != x; then - SYSTEM_HEADER_DIR=$build_system_header_dir -fi - -# If this is a cross-compiler that does not -# have its own set of headers then define -# inhibit_libc - -# If this is using newlib, without having the headers available now, -# then define inhibit_libc in LIBGCC2_CFLAGS. -# This prevents libgcc2 from containing any code which requires libc -# support. -inhibit_libc=false -if { { test x$host != x$target && test "x$with_sysroot" = x ; } || - test x$with_newlib = xyes ; } && - { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then - inhibit_libc=true -fi - - -# When building gcc with a cross-compiler, we need to adjust things so -# that the generator programs are still built with the native compiler. -# Also, we cannot run fixincludes or fix-header. - -# These are the normal (build=host) settings: -CC_FOR_BUILD='$(CC)' -BUILD_CFLAGS='$(ALL_CFLAGS)' -STMP_FIXINC=stmp-fixinc - -# Possibly disable fixproto, on a per-target basis. -case ${use_fixproto} in - no) - STMP_FIXPROTO= - ;; - yes) - STMP_FIXPROTO=stmp-fixproto - ;; -esac - - -# And these apply if build != host, or we are generating coverage data -if test x$build != x$host || test "x$coverage_flags" != x -then - BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' - - if test "x$TARGET_SYSTEM_ROOT" = x; then - if test "x$STMP_FIXPROTO" != x; then - STMP_FIXPROTO=stmp-install-fixproto - fi - fi -fi - -# Expand extra_headers to include complete path. -# This substitutes for lots of t-* files. -extra_headers_list= -# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers. -for file in ${extra_headers} ; do - extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}" -done - -# Define collect2 in Makefile. -case $host_can_use_collect2 in - no) collect2= ;; - *) collect2='collect2$(exeext)' ;; -esac - - -# Add a definition of USE_COLLECT2 if system wants one. -case $use_collect2 in - no) use_collect2= ;; - "") ;; - *) - host_xm_defines="${host_xm_defines} USE_COLLECT2" - xm_defines="${xm_defines} USE_COLLECT2" - case $host_can_use_collect2 in - no) - { { echo "$as_me:$LINENO: error: collect2 is required but cannot be built on this system" >&5 -echo "$as_me: error: collect2 is required but cannot be built on this system" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - ;; -esac - -# --------------------------- -# Assembler & linker features -# --------------------------- - -# Identify the assembler which will work hand-in-glove with the newly -# built GCC, so that we can examine its features. This is the assembler -# which will be driven by the driver program. -# -# If build != host, and we aren't building gas in-tree, we identify a -# build->target assembler and hope that it will have the same features -# as the host->target assembler we'll be using. -gcc_cv_gas_major_version= -gcc_cv_gas_minor_version= -gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas - -if test "${gcc_cv_as+set}" = set; then - : -else - -if test -x "$DEFAULT_ASSEMBLER"; then - gcc_cv_as="$DEFAULT_ASSEMBLER" -elif test -f $gcc_cv_as_gas_srcdir/configure.in \ - && test -f ../gas/Makefile \ - && test x$build = x$host; then - gcc_cv_as=../gas/as-new$build_exeext -elif test -x as$build_exeext; then - # Build using assembler in the current directory. - gcc_cv_as=./as$build_exeext -elif test -x $AS_FOR_TARGET; then - gcc_cv_as="$AS_FOR_TARGET" -else - # Extract the first word of "$AS_FOR_TARGET", so it can be a program name with args. -set dummy $AS_FOR_TARGET; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_gcc_cv_as+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $gcc_cv_as in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_cv_as="$gcc_cv_as" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_cv_as="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -gcc_cv_as=$ac_cv_path_gcc_cv_as - -if test -n "$gcc_cv_as"; then - echo "$as_me:$LINENO: result: $gcc_cv_as" >&5 -echo "${ECHO_T}$gcc_cv_as" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -fi - - -ORIGINAL_AS_FOR_TARGET=$gcc_cv_as - - -echo "$as_me:$LINENO: checking what assembler to use" >&5 -echo $ECHO_N "checking what assembler to use... $ECHO_C" >&6 -if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then - # Single tree build which includes gas. We want to prefer it - # over whatever linker top-level may have detected, since - # we'll use what we're building after installation anyway. - echo "$as_me:$LINENO: result: newly built gas" >&5 -echo "${ECHO_T}newly built gas" >&6 - in_tree_gas=yes - gcc_cv_as_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd -for f in $gcc_cv_as_bfd_srcdir/configure \ - $gcc_cv_as_gas_srcdir/configure \ - $gcc_cv_as_gas_srcdir/configure.in \ - $gcc_cv_as_gas_srcdir/Makefile.in ; do - gcc_cv_gas_version=`sed -n -e 's/^[ ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f` - if test x$gcc_cv_gas_version != x; then - break - fi -done -gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"` -gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"` -gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"` -case $gcc_cv_gas_patch_version in - "") gcc_cv_gas_patch_version="0" ;; -esac -gcc_cv_gas_vers=`expr \( \( $gcc_cv_gas_major_version \* 1000 \) \ - + $gcc_cv_gas_minor_version \) \* 1000 \ - + $gcc_cv_gas_patch_version` - - in_tree_gas_is_elf=no - if grep 'obj_format = elf' ../gas/Makefile > /dev/null \ - || (grep 'obj_format = multi' ../gas/Makefile \ - && grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null - then - in_tree_gas_is_elf=yes - fi -else - echo "$as_me:$LINENO: result: $gcc_cv_as" >&5 -echo "${ECHO_T}$gcc_cv_as" >&6 - in_tree_gas=no -fi - -# Identify the linker which will work hand-in-glove with the newly -# built GCC, so that we can examine its features. This is the linker -# which will be driven by the driver program. -# -# If build != host, and we aren't building gas in-tree, we identify a -# build->target linker and hope that it will have the same features -# as the host->target linker we'll be using. -gcc_cv_gld_major_version= -gcc_cv_gld_minor_version= -gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld -gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd - -if test "${gcc_cv_ld+set}" = set; then - : -else - -if test -x "$DEFAULT_LINKER"; then - gcc_cv_ld="$DEFAULT_LINKER" -elif test -f $gcc_cv_ld_gld_srcdir/configure.in \ - && test -f ../ld/Makefile \ - && test x$build = x$host; then - gcc_cv_ld=../ld/ld-new$build_exeext -elif test -x collect-ld$build_exeext; then - # Build using linker in the current directory. - gcc_cv_ld=./collect-ld$build_exeext -elif test -x $LD_FOR_TARGET; then - gcc_cv_ld="$LD_FOR_TARGET" -else - # Extract the first word of "$LD_FOR_TARGET", so it can be a program name with args. -set dummy $LD_FOR_TARGET; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_gcc_cv_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $gcc_cv_ld in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_cv_ld="$gcc_cv_ld" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_cv_ld="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -gcc_cv_ld=$ac_cv_path_gcc_cv_ld - -if test -n "$gcc_cv_ld"; then - echo "$as_me:$LINENO: result: $gcc_cv_ld" >&5 -echo "${ECHO_T}$gcc_cv_ld" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -fi - - -ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld - - -echo "$as_me:$LINENO: checking what linker to use" >&5 -echo $ECHO_N "checking what linker to use... $ECHO_C" >&6 -if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then - # Single tree build which includes ld. We want to prefer it - # over whatever linker top-level may have detected, since - # we'll use what we're building after installation anyway. - echo "$as_me:$LINENO: result: newly built ld" >&5 -echo "${ECHO_T}newly built ld" >&6 - in_tree_ld=yes - in_tree_ld_is_elf=no - if (grep 'EMUL = .*elf' ../ld/Makefile \ - || grep 'EMUL = .*linux' ../ld/Makefile \ - || grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then - in_tree_ld_is_elf=yes - fi - for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.in $gcc_cv_ld_gld_srcdir/Makefile.in - do - gcc_cv_gld_version=`sed -n -e 's/^[ ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f` - if test x$gcc_cv_gld_version != x; then - break - fi - done - gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"` - gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"` -else - echo "$as_me:$LINENO: result: $gcc_cv_ld" >&5 -echo "${ECHO_T}$gcc_cv_ld" >&6 - in_tree_ld=no -fi - -# Figure out what nm we will be using. -gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils -if test "${gcc_cv_nm+set}" = set; then - : -else - -if test -f $gcc_cv_binutils_srcdir/configure.in \ - && test -f ../binutils/Makefile \ - && test x$build = x$host; then - gcc_cv_nm=../binutils/nm-new$build_exeext -elif test -x nm$build_exeext; then - gcc_cv_nm=./nm$build_exeext -elif test -x $NM_FOR_TARGET; then - gcc_cv_nm="$NM_FOR_TARGET" -else - # Extract the first word of "$NM_FOR_TARGET", so it can be a program name with args. -set dummy $NM_FOR_TARGET; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_gcc_cv_nm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $gcc_cv_nm in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_cv_nm="$gcc_cv_nm" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_cv_nm="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -gcc_cv_nm=$ac_cv_path_gcc_cv_nm - -if test -n "$gcc_cv_nm"; then - echo "$as_me:$LINENO: result: $gcc_cv_nm" >&5 -echo "${ECHO_T}$gcc_cv_nm" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -fi - - -echo "$as_me:$LINENO: checking what nm to use" >&5 -echo $ECHO_N "checking what nm to use... $ECHO_C" >&6 -if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then - # Single tree build which includes binutils. - echo "$as_me:$LINENO: result: newly built nm" >&5 -echo "${ECHO_T}newly built nm" >&6 - in_tree_nm=yes -else - echo "$as_me:$LINENO: result: $gcc_cv_nm" >&5 -echo "${ECHO_T}$gcc_cv_nm" >&6 - in_tree_nm=no -fi - -ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm - - -# Figure out what objdump we will be using. -if test "${gcc_cv_objdump+set}" = set; then - : -else - -if test -f $gcc_cv_binutils_srcdir/configure.in \ - && test -f ../binutils/Makefile \ - && test x$build = x$host; then - # Single tree build which includes binutils. - gcc_cv_objdump=../binutils/objdump$build_exeext -elif test -x objdump$build_exeext; then - gcc_cv_objdump=./objdump$build_exeext -elif test -x $OBJDUMP_FOR_TARGET; then - gcc_cv_objdump="$OBJDUMP_FOR_TARGET" -else - # Extract the first word of "$OBJDUMP_FOR_TARGET", so it can be a program name with args. -set dummy $OBJDUMP_FOR_TARGET; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_gcc_cv_objdump+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $gcc_cv_objdump in - [\\/]* | ?:[\\/]*) - ac_cv_path_gcc_cv_objdump="$gcc_cv_objdump" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_gcc_cv_objdump="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -gcc_cv_objdump=$ac_cv_path_gcc_cv_objdump - -if test -n "$gcc_cv_objdump"; then - echo "$as_me:$LINENO: result: $gcc_cv_objdump" >&5 -echo "${ECHO_T}$gcc_cv_objdump" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -fi - - -echo "$as_me:$LINENO: checking what objdump to use" >&5 -echo $ECHO_N "checking what objdump to use... $ECHO_C" >&6 -if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then - # Single tree build which includes binutils. - echo "$as_me:$LINENO: result: newly built objdump" >&5 -echo "${ECHO_T}newly built objdump" >&6 -elif test x$gcc_cv_objdump = x; then - echo "$as_me:$LINENO: result: not found" >&5 -echo "${ECHO_T}not found" >&6 -else - echo "$as_me:$LINENO: result: $gcc_cv_objdump" >&5 -echo "${ECHO_T}$gcc_cv_objdump" >&6 -fi - -# Figure out what assembler alignment features are present. -echo "$as_me:$LINENO: checking assembler for .balign and .p2align" >&5 -echo $ECHO_N "checking assembler for .balign and .p2align... $ECHO_C" >&6 -if test "${gcc_cv_as_balign_and_p2align+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_balign_and_p2align=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 6 \) \* 1000 + 0` - then gcc_cv_as_balign_and_p2align=yes -fi - elif test x$gcc_cv_as != x; then - echo '.balign 4 -.p2align 2' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_balign_and_p2align=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_balign_and_p2align" >&5 -echo "${ECHO_T}$gcc_cv_as_balign_and_p2align" >&6 -if test $gcc_cv_as_balign_and_p2align = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_BALIGN_AND_P2ALIGN 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking assembler for .p2align with maximum skip" >&5 -echo $ECHO_N "checking assembler for .p2align with maximum skip... $ECHO_C" >&6 -if test "${gcc_cv_as_max_skip_p2align+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_max_skip_p2align=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 8 \) \* 1000 + 0` - then gcc_cv_as_max_skip_p2align=yes -fi - elif test x$gcc_cv_as != x; then - echo '.p2align 4,,7' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_max_skip_p2align=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_max_skip_p2align" >&5 -echo "${ECHO_T}$gcc_cv_as_max_skip_p2align" >&6 -if test $gcc_cv_as_max_skip_p2align = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_MAX_SKIP_P2ALIGN 1 -_ACEOF - -fi - -# APPLE LOCAL begin mainline x86_64 literal16 -echo "$as_me:$LINENO: checking assembler for .literal16" >&5 -echo $ECHO_N "checking assembler for .literal16... $ECHO_C" >&6 -if test "${gcc_cv_as_literal16+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_literal16=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 8 \) \* 1000 + 0` - then gcc_cv_as_literal16=yes -fi - elif test x$gcc_cv_as != x; then - echo '.literal16' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_literal16=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_literal16" >&5 -echo "${ECHO_T}$gcc_cv_as_literal16" >&6 -if test $gcc_cv_as_literal16 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_LITERAL16 1 -_ACEOF - -fi -# APPLE LOCAL end mainline x86_64 literal16 - -echo "$as_me:$LINENO: checking assembler for working .subsection -1" >&5 -echo $ECHO_N "checking assembler for working .subsection -1... $ECHO_C" >&6 -if test "${gcc_cv_as_subsection_m1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_subsection_m1=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 9 \) \* 1000 + 0` - then gcc_cv_as_subsection_m1=yes -fi - elif test x$gcc_cv_as != x; then - echo 'conftest_label1: .word 0 -.subsection -1 -conftest_label2: .word 0 -.previous' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_nm != x; then - $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1 - $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2 - if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1 - then : - else gcc_cv_as_subsection_m1=yes - fi - rm -f conftest.nm1 conftest.nm2 - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_subsection_m1" >&5 -echo "${ECHO_T}$gcc_cv_as_subsection_m1" >&6 -if test $gcc_cv_as_subsection_m1 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_SUBSECTION_ORDERING 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking assembler for .weak" >&5 -echo $ECHO_N "checking assembler for .weak... $ECHO_C" >&6 -if test "${gcc_cv_as_weak+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_weak=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 2 \) \* 1000 + 0` - then gcc_cv_as_weak=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .weak foobar' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_weak=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_weak" >&5 -echo "${ECHO_T}$gcc_cv_as_weak" >&6 -if test $gcc_cv_as_weak = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_WEAK 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking assembler for .weakref" >&5 -echo $ECHO_N "checking assembler for .weakref... $ECHO_C" >&6 -if test "${gcc_cv_as_weakref+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_weakref=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 17 \) \* 1000 + 0` - then gcc_cv_as_weakref=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .weakref foobar, barfnot' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_weakref=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_weakref" >&5 -echo "${ECHO_T}$gcc_cv_as_weakref" >&6 -if test $gcc_cv_as_weakref = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_WEAKREF 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking assembler for .nsubspa comdat" >&5 -echo $ECHO_N "checking assembler for .nsubspa comdat... $ECHO_C" >&6 -if test "${gcc_cv_as_nsubspa_comdat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_nsubspa_comdat=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 15 \) \* 1000 + 91` - then gcc_cv_as_nsubspa_comdat=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .SPACE $TEXT$ - .NSUBSPA $CODE$,COMDAT' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_nsubspa_comdat=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_nsubspa_comdat" >&5 -echo "${ECHO_T}$gcc_cv_as_nsubspa_comdat" >&6 -if test $gcc_cv_as_nsubspa_comdat = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_NSUBSPA_COMDAT 1 -_ACEOF - -fi - -# .hidden needs to be supported in both the assembler and the linker, -# because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN. -# This is irritatingly difficult to feature test for; we have to check the -# date string after the version number. If we've got an in-tree -# ld, we don't know its patchlevel version, so we set the baseline at 2.13 -# to be safe. -# The gcc_GAS_CHECK_FEATURE call just sets a cache variable. -echo "$as_me:$LINENO: checking assembler for .hidden" >&5 -echo $ECHO_N "checking assembler for .hidden... $ECHO_C" >&6 -if test "${gcc_cv_as_hidden+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_hidden=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 13 \) \* 1000 + 0` - then gcc_cv_as_hidden=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .hidden foobar -foobar:' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_hidden=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_hidden" >&5 -echo "${ECHO_T}$gcc_cv_as_hidden" >&6 - - -echo "$as_me:$LINENO: checking linker for .hidden support" >&5 -echo $ECHO_N "checking linker for .hidden support... $ECHO_C" >&6 -if test "${gcc_cv_ld_hidden+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test $in_tree_ld = yes ; then - gcc_cv_ld_hidden=no - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then - gcc_cv_ld_hidden=yes - fi -else - gcc_cv_ld_hidden=yes - ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q` - if echo "$ld_ver" | grep GNU > /dev/null; then - ld_vers=`echo $ld_ver | sed -n \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ ].*$,\1,p' \ - -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[ -].*$,\1,p'` - ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` - ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` - ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` - ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` - if test 0"$ld_date" -lt 20020404; then - if test -n "$ld_date"; then - # If there was date string, but was earlier than 2002-04-04, fail - gcc_cv_ld_hidden=no - elif test -z "$ld_vers"; then - # If there was no date string nor ld version number, something is wrong - gcc_cv_ld_hidden=no - else - test -z "$ld_vers_patch" && ld_vers_patch=0 - if test "$ld_vers_major" -lt 2; then - gcc_cv_ld_hidden=no - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then - gcc_cv_ld_hidden="no" - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then - gcc_cv_ld_hidden=no - fi - fi - fi - else - case "${target}" in - hppa64*-*-hpux* | ia64*-*-hpux*) - gcc_cv_ld_hidden=yes - ;; - *) - gcc_cv_ld_hidden=no - ;; - esac - fi -fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_hidden" >&5 -echo "${ECHO_T}$gcc_cv_ld_hidden" >&6 -libgcc_visibility=no - - -if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then - libgcc_visibility=yes - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_HIDDEN 1 -_ACEOF - -fi - -# Check if we have .[us]leb128, and support symbol arithmetic with it. -echo "$as_me:$LINENO: checking assembler for .sleb128 and .uleb128" >&5 -echo $ECHO_N "checking assembler for .sleb128 and .uleb128... $ECHO_C" >&6 -if test "${gcc_cv_as_leb128+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_leb128=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0` - then gcc_cv_as_leb128=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .data - .uleb128 L2 - L1 -L1: - .uleb128 1280 - .sleb128 -1010 -L2:' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - # GAS versions before 2.11 do not support uleb128, - # despite appearing to. - # ??? There exists an elf-specific test that will crash - # the assembler. Perhaps it's better to figure out whether - # arbitrary sections are supported and try the test. - as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q` - if echo "$as_ver" | grep GNU > /dev/null; then - as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'` - as_major=`echo $as_ver | sed 's/\..*//'` - as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'` - if test $as_major -eq 2 && test $as_minor -lt 11 - then : - else gcc_cv_as_leb128=yes - fi - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_leb128" >&5 -echo "${ECHO_T}$gcc_cv_as_leb128" >&6 -if test $gcc_cv_as_leb128 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_LEB128 1 -_ACEOF - -fi - -# GAS versions up to and including 2.11.0 may mis-optimize -# .eh_frame data. -echo "$as_me:$LINENO: checking assembler for eh_frame optimization" >&5 -echo $ECHO_N "checking assembler for eh_frame optimization... $ECHO_C" >&6 -if test "${gcc_cv_as_eh_frame+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_eh_frame=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0` - then gcc_cv_as_eh_frame=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .text -.LFB1: - .4byte 0 -.L1: - .4byte 0 -.LFE1: - .section .eh_frame,"aw", at progbits -__FRAME_BEGIN__: - .4byte .LECIE1-.LSCIE1 -.LSCIE1: - .4byte 0x0 - .byte 0x1 - .ascii "z\0" - .byte 0x1 - .byte 0x78 - .byte 0x1a - .byte 0x0 - .byte 0x4 - .4byte 1 - .p2align 1 -.LECIE1: -.LSFDE1: - .4byte .LEFDE1-.LASFDE1 -.LASFDE1: - .4byte .LASFDE1-__FRAME_BEGIN__ - .4byte .LFB1 - .4byte .LFE1-.LFB1 - .byte 0x4 - .4byte .LFE1-.LFB1 - .byte 0x4 - .4byte .L1-.LFB1 -.LEFDE1:' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - cat > conftest.lit < conftest.big </dev/null \ - | tail -3 > conftest.got \ - && { diff -b conftest.lit conftest.got > /dev/null 2>&1 \ - || diff -b conftest.big conftest.got > /dev/null 2>&1; } - then - gcc_cv_as_eh_frame=yes - elif { ac_try='$gcc_cv_as -o conftest.o --traditional-format /dev/null' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gcc_cv_as_eh_frame=buggy - else - # Uh oh, what do we do now? - gcc_cv_as_eh_frame=no - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_eh_frame" >&5 -echo "${ECHO_T}$gcc_cv_as_eh_frame" >&6 - - -if test $gcc_cv_as_eh_frame = buggy; then - -cat >>confdefs.h <<\_ACEOF -@%:@define USE_AS_TRADITIONAL_FORMAT 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking assembler for section merging support" >&5 -echo $ECHO_N "checking assembler for section merging support... $ECHO_C" >&6 -if test "${gcc_cv_as_shf_merge+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_shf_merge=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0` - then gcc_cv_as_shf_merge=yes -fi - elif test x$gcc_cv_as != x; then - echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s - if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_shf_merge=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_shf_merge" >&5 -echo "${ECHO_T}$gcc_cv_as_shf_merge" >&6 - -if test $gcc_cv_as_shf_merge = no; then - echo "$as_me:$LINENO: checking assembler for section merging support" >&5 -echo $ECHO_N "checking assembler for section merging support... $ECHO_C" >&6 -if test "${gcc_cv_as_shf_merge+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_shf_merge=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0` - then gcc_cv_as_shf_merge=yes -fi - elif test x$gcc_cv_as != x; then - echo '.section .rodata.str, "aMS", %progbits, 1' > conftest.s - if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_shf_merge=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_shf_merge" >&5 -echo "${ECHO_T}$gcc_cv_as_shf_merge" >&6 - -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_GAS_SHF_MERGE `if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi` -_ACEOF - - -echo "$as_me:$LINENO: checking assembler for COMDAT group support" >&5 -echo $ECHO_N "checking assembler for COMDAT group support... $ECHO_C" >&6 -if test "${gcc_cv_as_comdat_group+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_comdat_group=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 16 \) \* 1000 + 0` - then gcc_cv_as_comdat_group=yes -fi - elif test x$gcc_cv_as != x; then - echo '.section .text,"axG", at progbits,.foo,comdat' > conftest.s - if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_comdat_group=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_comdat_group" >&5 -echo "${ECHO_T}$gcc_cv_as_comdat_group" >&6 - -if test $gcc_cv_as_comdat_group = yes; then - gcc_cv_as_comdat_group_percent=no -else - echo "$as_me:$LINENO: checking assembler for COMDAT group support" >&5 -echo $ECHO_N "checking assembler for COMDAT group support... $ECHO_C" >&6 -if test "${gcc_cv_as_comdat_group_percent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_comdat_group_percent=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 16 \) \* 1000 + 0` - then gcc_cv_as_comdat_group_percent=yes -fi - elif test x$gcc_cv_as != x; then - echo '.section .text,"axG",%progbits,.foo,comdat' > conftest.s - if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_comdat_group_percent=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_comdat_group_percent" >&5 -echo "${ECHO_T}$gcc_cv_as_comdat_group_percent" >&6 - -fi -if test $in_tree_ld != yes && test x"$ld_vers" != x; then - comdat_group=yes - if test 0"$ld_date" -lt 20050308; then - if test -n "$ld_date"; then - # If there was date string, but was earlier than 2005-03-08, fail - comdat_group=no - elif test "$ld_vers_major" -lt 2; then - comdat_group=no - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then - comdat_group=no - fi - fi -else - # assume linkers other than GNU ld don't support COMDAT group - comdat_group=no -fi -if test $comdat_group = no; then - gcc_cv_as_comdat_group=no - gcc_cv_as_comdat_group_percent=no -fi - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_COMDAT_GROUP `if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi` -_ACEOF - - -# Thread-local storage - the check is heavily parametrized. -conftest_s= -tls_first_major= -tls_first_minor= -tls_as_opt= -case "$target" in - alpha*-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - ldq $27,__tls_get_addr($29) !literal!1 - lda $16,foo($29) !tlsgd!1 - jsr $26,($27),__tls_get_addr !lituse_tlsgd!1 - ldq $27,__tls_get_addr($29) !literal!2 - lda $16,foo($29) !tlsldm!2 - jsr $26,($27),__tls_get_addr !lituse_tlsldm!2 - ldq $1,foo($29) !gotdtprel - ldah $2,foo($29) !dtprelhi - lda $3,foo($2) !dtprello - lda $4,foo($29) !dtprel - ldq $1,foo($29) !gottprel - ldah $2,foo($29) !tprelhi - lda $3,foo($2) !tprello - lda $4,foo($29) !tprel' - tls_first_major=2 - tls_first_minor=13 - tls_as_opt=--fatal-warnings - ;; - frv*-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -x: .long 25 - .text - call #gettlsoff(x)' - tls_first_major=2 - tls_first_minor=14 - ;; - hppa*-*-linux*) - conftest_s=' -t1: .reg %r20 -t2: .reg %r21 -gp: .reg %r19 - .section ".tdata","awT", at progbits -foo: .long 25 - .text - .align 4 - addil LT%foo-$tls_gdidx$,gp - ldo RT%foo-$tls_gdidx$(%r1),%arg0 - b __tls_get_addr - nop - addil LT%foo-$tls_ldidx$,gp - b __tls_get_addr - ldo RT%foo-$tls_ldidx$(%r1),%arg0 - addil LR%foo-$tls_dtpoff$,%ret0 - ldo RR%foo-$tls_dtpoff$(%r1),%t1 - mfctl %cr27,%t1 - addil LT%foo-$tls_ieoff$,gp - ldw RT%foo-$tls_ieoff$(%r1),%t2 - add %t1,%t2,%t3 - mfctl %cr27,%t1 - addil LR%foo-$tls_leoff$,%t1 - ldo RR%foo-$tls_leoff$(%r1),%t2' - tls_first_major=2 - tls_first_minor=15 - tls_as_opt=--fatal-warnings - ;; - arm*-*-*) - conftest_s=' - .section ".tdata","awT",%progbits -foo: .long 25 - .text -.word foo(gottpoff) -.word foo(tpoff) -.word foo(tlsgd) -.word foo(tlsldm) -.word foo(tlsldo)' - tls_first_major=2 - tls_first_minor=17 - ;; - i[34567]86-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - movl %gs:0, %eax - leal foo at TLSGD(,%ebx,1), %eax - leal foo at TLSLDM(%ebx), %eax - leal foo at DTPOFF(%eax), %edx - movl foo at GOTTPOFF(%ebx), %eax - subl foo at GOTTPOFF(%ebx), %eax - addl foo at GOTNTPOFF(%ebx), %eax - movl foo at INDNTPOFF, %eax - movl $foo at TPOFF, %eax - subl $foo at TPOFF, %eax - leal foo at NTPOFF(%ecx), %eax' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt=--fatal-warnings - ;; - x86_64-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - movq %fs:0, %rax - leaq foo at TLSGD(%rip), %rdi - leaq foo at TLSLD(%rip), %rdi - leaq foo at DTPOFF(%rax), %rdx - movq foo at GOTTPOFF(%rip), %rax - movq $foo at TPOFF, %rax' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt=--fatal-warnings - ;; - ia64-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: data8 25 - .text - addl r16 = @ltoff(@dtpmod(foo#)), gp - addl r17 = @ltoff(@dtprel(foo#)), gp - addl r18 = @ltoff(@tprel(foo#)), gp - addl r19 = @dtprel(foo#), gp - adds r21 = @dtprel(foo#), r13 - movl r23 = @dtprel(foo#) - addl r20 = @tprel(foo#), gp - adds r22 = @tprel(foo#), r13 - movl r24 = @tprel(foo#)' - tls_first_major=2 - tls_first_minor=13 - tls_as_opt=--fatal-warnings - ;; - mips*-*-*) - conftest_s=' - .section .tdata,"awT", at progbits -x: - .word 2 - .text - addiu $4, $28, %tlsgd(x) - addiu $4, $28, %tlsldm(x) - lui $4, %dtprel_hi(x) - addiu $4, $4, %dtprel_lo(x) - lw $4, %gottprel(x)($28) - lui $4, %tprel_hi(x) - addiu $4, $4, %tprel_lo(x)' - tls_first_major=2 - tls_first_minor=16 - tls_as_opt='-32 --fatal-warnings' - ;; - powerpc-*-*) - conftest_s=' - .section ".tdata","awT", at progbits - .align 2 -ld0: .space 4 -ld1: .space 4 -x1: .space 4 -x2: .space 4 -x3: .space 4 - .text - addi 3,31,ld0 at got@tlsgd - bl __tls_get_addr - addi 3,31,x1 at got@tlsld - bl __tls_get_addr - addi 9,3,x1 at dtprel - addis 9,3,x2 at dtprel@ha - addi 9,9,x2 at dtprel@l - lwz 9,x3 at got@tprel(31) - add 9,9,x at tls - addi 9,2,x1 at tprel - addis 9,2,x2 at tprel@ha - addi 9,9,x2 at tprel@l' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-a32 --fatal-warnings" - ;; - powerpc64-*-*) - conftest_s=' - .section ".tdata","awT", at progbits - .align 3 -ld0: .space 8 -ld1: .space 8 -x1: .space 8 -x2: .space 8 -x3: .space 8 - .text - addi 3,2,ld0 at got@tlsgd - bl .__tls_get_addr - nop - addi 3,2,ld1 at toc - bl .__tls_get_addr - nop - addi 3,2,x1 at got@tlsld - bl .__tls_get_addr - nop - addi 9,3,x1 at dtprel - bl .__tls_get_addr - nop - addis 9,3,x2 at dtprel@ha - addi 9,9,x2 at dtprel@l - bl .__tls_get_addr - nop - ld 9,x3 at got@dtprel(2) - add 9,9,3 - bl .__tls_get_addr - nop' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-a64 --fatal-warnings" - ;; - s390-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - .long foo at TLSGD - .long foo at TLSLDM - .long foo at DTPOFF - .long foo at NTPOFF - .long foo at GOTNTPOFF - .long foo at INDNTPOFF - l %r1,foo at GOTNTPOFF(%r12) - l %r1,0(%r1):tls_load:foo - bas %r14,0(%r1,%r13):tls_gdcall:foo - bas %r14,0(%r1,%r13):tls_ldcall:foo' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-m31 --fatal-warnings" - ;; - s390x-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - .quad foo at TLSGD - .quad foo at TLSLDM - .quad foo at DTPOFF - .quad foo at NTPOFF - .quad foo at GOTNTPOFF - lg %r1,foo at GOTNTPOFF(%r12) - larl %r1,foo at INDNTPOFF - brasl %r14,__tls_get_offset at PLT:tls_gdcall:foo - brasl %r14,__tls_get_offset at PLT:tls_ldcall:foo' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-m64 -Aesame --fatal-warnings" - ;; - sh-*-* | sh[34]-*-*) - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - .long foo at TLSGD - .long foo at TLSLDM - .long foo at DTPOFF - .long foo at GOTTPOFF - .long foo at TPOFF' - tls_first_major=2 - tls_first_minor=13 - tls_as_opt=--fatal-warnings - ;; - sparc*-*-*) - case "$target" in - sparc*-sun-solaris2.[56789]*) - # TLS was introduced in the Solaris 9 4/04 release but - # we do not enable it by default on Solaris 9 either. - if test "x$enable_tls" = xyes ; then - on_solaris=yes - else - enable_tls=no; - fi - ;; - sparc*-sun-solaris2.*) - on_solaris=yes - ;; - *) - on_solaris=no - ;; - esac - if test x$on_solaris = xyes && test x$gas_flag = xno; then - conftest_s=' - .section ".tdata",#alloc,#write,#tls -foo: .long 25 - .text - sethi %tgd_hi22(foo), %o0 - add %o0, %tgd_lo10(foo), %o1 - add %l7, %o1, %o0, %tgd_add(foo) - call __tls_get_addr, %tgd_call(foo) - sethi %tldm_hi22(foo), %l1 - add %l1, %tldm_lo10(foo), %l2 - add %l7, %l2, %o0, %tldm_add(foo) - call __tls_get_addr, %tldm_call(foo) - sethi %tldo_hix22(foo), %l3 - xor %l3, %tldo_lox10(foo), %l4 - add %o0, %l4, %l5, %tldo_add(foo) - sethi %tie_hi22(foo), %o3 - add %o3, %tie_lo10(foo), %o3 - ld [%l7 + %o3], %o2, %tie_ld(foo) - add %g7, %o2, %o4, %tie_add(foo) - sethi %tle_hix22(foo), %l1 - xor %l1, %tle_lox10(foo), %o5 - ld [%g7 + %o5], %o1' - tls_first_major=0 - tls_first_minor=0 - else - conftest_s=' - .section ".tdata","awT", at progbits -foo: .long 25 - .text - sethi %tgd_hi22(foo), %o0 - add %o0, %tgd_lo10(foo), %o1 - add %l7, %o1, %o0, %tgd_add(foo) - call __tls_get_addr, %tgd_call(foo) - sethi %tldm_hi22(foo), %l1 - add %l1, %tldm_lo10(foo), %l2 - add %l7, %l2, %o0, %tldm_add(foo) - call __tls_get_addr, %tldm_call(foo) - sethi %tldo_hix22(foo), %l3 - xor %l3, %tldo_lox10(foo), %l4 - add %o0, %l4, %l5, %tldo_add(foo) - sethi %tie_hi22(foo), %o3 - add %o3, %tie_lo10(foo), %o3 - ld [%l7 + %o3], %o2, %tie_ld(foo) - add %g7, %o2, %o4, %tie_add(foo) - sethi %tle_hix22(foo), %l1 - xor %l1, %tle_lox10(foo), %o5 - ld [%g7 + %o5], %o1' - tls_first_major=2 - tls_first_minor=14 - tls_as_opt="-32 --fatal-warnings" - fi - ;; -esac -set_have_as_tls=no -if test "x$enable_tls" = xno ; then - : # TLS explicitly disabled. -elif test "x$enable_tls" = xyes ; then - set_have_as_tls=yes # TLS explicitly enabled. -elif test -z "$tls_first_major"; then - : # If we don't have a check, assume no support. -else - echo "$as_me:$LINENO: checking assembler for thread-local storage support" >&5 -echo $ECHO_N "checking assembler for thread-local storage support... $ECHO_C" >&6 -if test "${gcc_cv_as_tls+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_tls=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( $tls_first_major \* 1000 \) + $tls_first_minor \) \* 1000 + 0` - then gcc_cv_as_tls=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as $tls_as_opt -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_tls=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_tls" >&5 -echo "${ECHO_T}$gcc_cv_as_tls" >&6 -if test $gcc_cv_as_tls = yes; then - set_have_as_tls=yes -fi -fi -if test $set_have_as_tls = yes ; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_TLS 1 -_ACEOF - -fi - -# Target-specific assembler checks. - -echo "$as_me:$LINENO: checking linker -Bstatic/-Bdynamic option" >&5 -echo $ECHO_N "checking linker -Bstatic/-Bdynamic option... $ECHO_C" >&6 -gcc_cv_ld_static_dynamic=no -if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10; then - gcc_cv_ld_static_dynamic=yes - fi -elif test x$gcc_cv_ld != x; then - # Check if linker supports -Bstatic/-Bdynamic option - if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ - && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then - gcc_cv_ld_static_dynamic=yes - fi -fi -if test x"$gcc_cv_ld_static_dynamic" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_STATIC_DYNAMIC 1 -_ACEOF - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_static_dynamic" >&5 -echo "${ECHO_T}$gcc_cv_ld_static_dynamic" >&6 - -if test x"$demangler_in_ld" = xyes; then - echo "$as_me:$LINENO: checking linker --demangle support" >&5 -echo $ECHO_N "checking linker --demangle support... $ECHO_C" >&6 - gcc_cv_ld_demangle=no - if test $in_tree_ld = yes; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \ - gcc_cv_ld_demangle=yes - fi - elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then - # Check if the GNU linker supports --demangle option - if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then - gcc_cv_ld_demangle=yes - fi - fi - if test x"$gcc_cv_ld_demangle" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_DEMANGLE 1 -_ACEOF - - fi - echo "$as_me:$LINENO: result: $gcc_cv_ld_demangle" >&5 -echo "${ECHO_T}$gcc_cv_ld_demangle" >&6 -fi - -case "$target" in - # All TARGET_ABI_OSF targets. - alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*) - echo "$as_me:$LINENO: checking assembler for explicit relocation support" >&5 -echo $ECHO_N "checking assembler for explicit relocation support... $ECHO_C" >&6 -if test "${gcc_cv_as_alpha_explicit_relocs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_alpha_explicit_relocs=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0` - then gcc_cv_as_alpha_explicit_relocs=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .set nomacro - .text - extbl $3, $2, $3 !lituse_bytoff!1 - ldq $2, a($29) !literal!1 - ldq $4, b($29) !literal!2 - ldq_u $3, 0($2) !lituse_base!1 - ldq $27, f($29) !literal!5 - jsr $26, ($27), f !lituse_jsr!5 - ldah $29, 0($26) !gpdisp!3 - lda $0, c($29) !gprel - ldah $1, d($29) !gprelhigh - lda $1, d($1) !gprellow - lda $29, 0($29) !gpdisp!3' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_alpha_explicit_relocs=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_alpha_explicit_relocs" >&5 -echo "${ECHO_T}$gcc_cv_as_alpha_explicit_relocs" >&6 -if test $gcc_cv_as_alpha_explicit_relocs = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_EXPLICIT_RELOCS 1 -_ACEOF - -fi - echo "$as_me:$LINENO: checking assembler for jsrdirect relocation support" >&5 -echo $ECHO_N "checking assembler for jsrdirect relocation support... $ECHO_C" >&6 -if test "${gcc_cv_as_alpha_jsrdirect_relocs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_alpha_jsrdirect_relocs=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 16 \) \* 1000 + 90` - then gcc_cv_as_alpha_jsrdirect_relocs=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .set nomacro - .text - ldq $27, a($29) !literal!1 - jsr $26, ($27), a !lituse_jsrdirect!1' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_alpha_jsrdirect_relocs=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_alpha_jsrdirect_relocs" >&5 -echo "${ECHO_T}$gcc_cv_as_alpha_jsrdirect_relocs" >&6 -if test $gcc_cv_as_alpha_jsrdirect_relocs = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_JSRDIRECT_RELOCS 1 -_ACEOF - -fi - ;; - - cris-*-*) - echo "$as_me:$LINENO: checking assembler for -no-mul-bug-abort option" >&5 -echo $ECHO_N "checking assembler for -no-mul-bug-abort option... $ECHO_C" >&6 -if test "${gcc_cv_as_cris_no_mul_bug+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_cris_no_mul_bug=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 15 \) \* 1000 + 91` - then gcc_cv_as_cris_no_mul_bug=yes -fi - elif test x$gcc_cv_as != x; then - echo '.text' > conftest.s - if { ac_try='$gcc_cv_as -no-mul-bug-abort -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_cris_no_mul_bug=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_cris_no_mul_bug" >&5 -echo "${ECHO_T}$gcc_cv_as_cris_no_mul_bug" >&6 -if test $gcc_cv_as_cris_no_mul_bug = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_NO_MUL_BUG_ABORT_OPTION 1 -_ACEOF - -fi - ;; - - sparc*-*-*) - echo "$as_me:$LINENO: checking assembler for .register" >&5 -echo $ECHO_N "checking assembler for .register... $ECHO_C" >&6 -if test "${gcc_cv_as_sparc_register_op+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_sparc_register_op=no - if test x$gcc_cv_as != x; then - echo '.register %g2, #scratch' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_sparc_register_op=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_sparc_register_op" >&5 -echo "${ECHO_T}$gcc_cv_as_sparc_register_op" >&6 -if test $gcc_cv_as_sparc_register_op = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_REGISTER_PSEUDO_OP 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking assembler for -relax option" >&5 -echo $ECHO_N "checking assembler for -relax option... $ECHO_C" >&6 -if test "${gcc_cv_as_sparc_relax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_sparc_relax=no - if test x$gcc_cv_as != x; then - echo '.text' > conftest.s - if { ac_try='$gcc_cv_as -relax -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_sparc_relax=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_sparc_relax" >&5 -echo "${ECHO_T}$gcc_cv_as_sparc_relax" >&6 -if test $gcc_cv_as_sparc_relax = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_RELAX_OPTION 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking assembler for unaligned pcrel relocs" >&5 -echo $ECHO_N "checking assembler for unaligned pcrel relocs... $ECHO_C" >&6 -if test "${gcc_cv_as_sparc_ua_pcrel+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_sparc_ua_pcrel=no - if test x$gcc_cv_as != x; then - echo '.text -foo: - nop -.data -.align 4 -.byte 0 -.uaword %r_disp32(foo)' > conftest.s - if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_ld != x \ - && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then - gcc_cv_as_sparc_ua_pcrel=yes - fi - rm -f conftest - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_sparc_ua_pcrel" >&5 -echo "${ECHO_T}$gcc_cv_as_sparc_ua_pcrel" >&6 -if test $gcc_cv_as_sparc_ua_pcrel = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_SPARC_UA_PCREL 1 -_ACEOF - - - echo "$as_me:$LINENO: checking assembler for unaligned pcrel relocs against hidden symbols" >&5 -echo $ECHO_N "checking assembler for unaligned pcrel relocs against hidden symbols... $ECHO_C" >&6 -if test "${gcc_cv_as_sparc_ua_pcrel_hidden+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_sparc_ua_pcrel_hidden=no - if test x$gcc_cv_as != x; then - echo '.data -.align 4 -.byte 0x31 -.uaword %r_disp32(foo) -.byte 0x32, 0x33, 0x34 -.global foo -.hidden foo -foo: -.skip 4' > conftest.s - if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \ - && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \ - && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \ - | grep ' 31000000 07323334' > /dev/null 2>&1; then - if $gcc_cv_objdump -R conftest 2> /dev/null \ - | grep 'DISP32' > /dev/null 2>&1; then - : - else - gcc_cv_as_sparc_ua_pcrel_hidden=yes - fi - fi - rm -f conftest - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_sparc_ua_pcrel_hidden" >&5 -echo "${ECHO_T}$gcc_cv_as_sparc_ua_pcrel_hidden" >&6 -if test $gcc_cv_as_sparc_ua_pcrel_hidden = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_SPARC_UA_PCREL_HIDDEN 1 -_ACEOF - -fi - -fi # unaligned pcrel relocs - - echo "$as_me:$LINENO: checking assembler for offsetable %lo()" >&5 -echo $ECHO_N "checking assembler for offsetable %lo()... $ECHO_C" >&6 -if test "${gcc_cv_as_sparc_offsetable_lo10+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_sparc_offsetable_lo10=no - if test x$gcc_cv_as != x; then - echo '.text - or %g1, %lo(ab) + 12, %g1 - or %g1, %lo(ab + 12), %g1' > conftest.s - if { ac_try='$gcc_cv_as -xarch=v9 -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_objdump != x \ - && $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \ - | grep ' 82106000 82106000' > /dev/null 2>&1; then - gcc_cv_as_sparc_offsetable_lo10=yes - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_sparc_offsetable_lo10" >&5 -echo "${ECHO_T}$gcc_cv_as_sparc_offsetable_lo10" >&6 -if test $gcc_cv_as_sparc_offsetable_lo10 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_OFFSETABLE_LO10 1 -_ACEOF - -fi - ;; - - i[34567]86-*-* | x86_64-*-*) - case $target_os in - cygwin* | pe | mingw32*) - # Used for DWARF 2 in PE - echo "$as_me:$LINENO: checking assembler for .secrel32 relocs" >&5 -echo $ECHO_N "checking assembler for .secrel32 relocs... $ECHO_C" >&6 -if test "${gcc_cv_as_ix86_pe_secrel32+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ix86_pe_secrel32=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 15 \) \* 1000 + 91` - then gcc_cv_as_ix86_pe_secrel32=yes -fi - elif test x$gcc_cv_as != x; then - echo '.text -foo: nop -.data - .secrel32 foo' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_ld != x \ - && $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then - gcc_cv_as_ix86_pe_secrel32=yes - fi - rm -f conftest - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_pe_secrel32" >&5 -echo "${ECHO_T}$gcc_cv_as_ix86_pe_secrel32" >&6 -if test $gcc_cv_as_ix86_pe_secrel32 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_PE_SECREL32_RELOC 1 -_ACEOF - -fi - ;; - esac - - echo "$as_me:$LINENO: checking assembler for filds and fists mnemonics" >&5 -echo $ECHO_N "checking assembler for filds and fists mnemonics... $ECHO_C" >&6 -if test "${gcc_cv_as_ix86_filds_fists+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ix86_filds_fists=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 9 \) \* 1000 + 0` - then gcc_cv_as_ix86_filds_fists=yes -fi - elif test x$gcc_cv_as != x; then - echo 'filds mem; fists mem' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_ix86_filds_fists=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_filds_fists" >&5 -echo "${ECHO_T}$gcc_cv_as_ix86_filds_fists" >&6 -if test $gcc_cv_as_ix86_filds_fists = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_GAS_FILDS_FISTS 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking assembler for cmov syntax" >&5 -echo $ECHO_N "checking assembler for cmov syntax... $ECHO_C" >&6 -if test "${gcc_cv_as_ix86_cmov_sun_syntax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ix86_cmov_sun_syntax=no - if test x$gcc_cv_as != x; then - echo 'cmovl.l %edx, %eax' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_ix86_cmov_sun_syntax=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_cmov_sun_syntax" >&5 -echo "${ECHO_T}$gcc_cv_as_ix86_cmov_sun_syntax" >&6 -if test $gcc_cv_as_ix86_cmov_sun_syntax = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_IX86_CMOV_SUN_SYNTAX 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking assembler for ffreep mnemonic" >&5 -echo $ECHO_N "checking assembler for ffreep mnemonic... $ECHO_C" >&6 -if test "${gcc_cv_as_ix86_ffreep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ix86_ffreep=no - if test x$gcc_cv_as != x; then - echo 'ffreep %st(1)' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_ix86_ffreep=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_ffreep" >&5 -echo "${ECHO_T}$gcc_cv_as_ix86_ffreep" >&6 -if test $gcc_cv_as_ix86_ffreep = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_IX86_FFREEP 1 -_ACEOF - -fi - - # This one is used unconditionally by i386.[ch]; it is to be defined - # to 1 if the feature is present, 0 otherwise. - echo "$as_me:$LINENO: checking assembler for GOTOFF in data" >&5 -echo $ECHO_N "checking assembler for GOTOFF in data... $ECHO_C" >&6 -if test "${gcc_cv_as_ix86_gotoff_in_data+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ix86_gotoff_in_data=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0` - then gcc_cv_as_ix86_gotoff_in_data=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .text -.L0: - nop - .data - .long .L0 at GOTOFF' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_ix86_gotoff_in_data=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ix86_gotoff_in_data" >&5 -echo "${ECHO_T}$gcc_cv_as_ix86_gotoff_in_data" >&6 - - -cat >>confdefs.h <<_ACEOF -@%:@define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi` -_ACEOF - - ;; - - ia64*-*-*) - echo "$as_me:$LINENO: checking assembler for ltoffx and ldxmov relocs" >&5 -echo $ECHO_N "checking assembler for ltoffx and ldxmov relocs... $ECHO_C" >&6 -if test "${gcc_cv_as_ia64_ltoffx_ldxmov_relocs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_ia64_ltoffx_ldxmov_relocs=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0` - then gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes -fi - elif test x$gcc_cv_as != x; then - echo ' .text - addl r15 = @ltoffx(x#), gp - ;; - ld8.mov r16 = [r15], x#' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_ia64_ltoffx_ldxmov_relocs" >&5 -echo "${ECHO_T}$gcc_cv_as_ia64_ltoffx_ldxmov_relocs" >&6 -if test $gcc_cv_as_ia64_ltoffx_ldxmov_relocs = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_LTOFFX_LDXMOV_RELOCS 1 -_ACEOF - -fi - - ;; - - powerpc*-*-*) - case $target in - *-*-aix*) conftest_s=' .machine "pwr5" - .csect .text[PR] - mfcr 3,128';; - *-*-darwin*) - echo "$as_me:$LINENO: checking assembler for .machine directive support" >&5 -echo $ECHO_N "checking assembler for .machine directive support... $ECHO_C" >&6 -if test "${gcc_cv_as_machine_directive+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_machine_directive=no - if test x$gcc_cv_as != x; then - echo ' .machine ppc7400' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_machine_directive=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_machine_directive" >&5 -echo "${ECHO_T}$gcc_cv_as_machine_directive" >&6 - - if test x$gcc_cv_as_machine_directive != xyes; then - echo "*** This target requires an assembler supporting \".machine\"" >&2 - echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2 - test x$build = x$target && exit 1 - fi - conftest_s=' .text - mfcr r3,128';; - *) conftest_s=' .machine power4 - .text - mfcr 3,128';; - esac - - echo "$as_me:$LINENO: checking assembler for mfcr field support" >&5 -echo $ECHO_N "checking assembler for mfcr field support... $ECHO_C" >&6 -if test "${gcc_cv_as_powerpc_mfcrf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_powerpc_mfcrf=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0` - then gcc_cv_as_powerpc_mfcrf=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_powerpc_mfcrf=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_mfcrf" >&5 -echo "${ECHO_T}$gcc_cv_as_powerpc_mfcrf" >&6 -if test $gcc_cv_as_powerpc_mfcrf = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_MFCRF 1 -_ACEOF - -fi - - case $target in - *-*-aix*) conftest_s=' .machine "pwr5" - .csect .text[PR] - popcntb 3,3';; - *) conftest_s=' .machine power5 - .text - popcntb 3,3';; - esac - - echo "$as_me:$LINENO: checking assembler for popcntb support" >&5 -echo $ECHO_N "checking assembler for popcntb support... $ECHO_C" >&6 -if test "${gcc_cv_as_powerpc_popcntb+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_powerpc_popcntb=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 17 \) \* 1000 + 0` - then gcc_cv_as_powerpc_popcntb=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_powerpc_popcntb=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_popcntb" >&5 -echo "${ECHO_T}$gcc_cv_as_powerpc_popcntb" >&6 -if test $gcc_cv_as_powerpc_popcntb = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_POPCNTB 1 -_ACEOF - -fi - - case $target in - *-*-aix*) conftest_s=' .machine "pwr5x" - .csect .text[PR] - frin 1,1';; - *) conftest_s=' .machine power5 - .text - frin 1,1';; - esac - - echo "$as_me:$LINENO: checking assembler for fp round support" >&5 -echo $ECHO_N "checking assembler for fp round support... $ECHO_C" >&6 -if test "${gcc_cv_as_powerpc_fprnd+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_powerpc_fprnd=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 17 \) \* 1000 + 0` - then gcc_cv_as_powerpc_fprnd=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_powerpc_fprnd=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_fprnd" >&5 -echo "${ECHO_T}$gcc_cv_as_powerpc_fprnd" >&6 -if test $gcc_cv_as_powerpc_fprnd = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_FPRND 1 -_ACEOF - -fi - - case $target in - *-*-aix*) conftest_s=' .csect .text[PR] -LCF..0: - addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0 at ha';; - *-*-darwin*) - conftest_s=' .text -LCF0: - addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0 at ha';; - *) conftest_s=' .text -.LCF0: - addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0 at ha';; - esac - - echo "$as_me:$LINENO: checking assembler for rel16 relocs" >&5 -echo $ECHO_N "checking assembler for rel16 relocs... $ECHO_C" >&6 -if test "${gcc_cv_as_powerpc_rel16+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_powerpc_rel16=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 17 \) \* 1000 + 0` - then gcc_cv_as_powerpc_rel16=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as -a32 -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_powerpc_rel16=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_rel16" >&5 -echo "${ECHO_T}$gcc_cv_as_powerpc_rel16" >&6 -if test $gcc_cv_as_powerpc_rel16 = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_REL16 1 -_ACEOF - -fi - ;; - - mips*-*-*) - echo "$as_me:$LINENO: checking assembler for explicit relocation support" >&5 -echo $ECHO_N "checking assembler for explicit relocation support... $ECHO_C" >&6 -if test "${gcc_cv_as_mips_explicit_relocs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_mips_explicit_relocs=no - if test $in_tree_gas = yes; then - if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0` - then gcc_cv_as_mips_explicit_relocs=yes -fi - elif test x$gcc_cv_as != x; then - echo ' lw $4,%gp_rel(foo)($4)' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_mips_explicit_relocs=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_mips_explicit_relocs" >&5 -echo "${ECHO_T}$gcc_cv_as_mips_explicit_relocs" >&6 -if test $gcc_cv_as_mips_explicit_relocs = yes; then - if test x$target_cpu_default = x - then target_cpu_default=MASK_EXPLICIT_RELOCS - else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS" - fi -fi - ;; -esac - -# Mips and HP-UX need the GNU assembler. -# Linux on IA64 might be able to use the Intel assembler. - -case "$target" in - mips*-*-* | *-*-hpux* ) - if test x$gas_flag = xyes \ - || test x"$host" != x"$build" \ - || test ! -x "$gcc_cv_as" \ - || "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then - : - else - echo "*** This configuration requires the GNU assembler" >&2 - exit 1 - fi - ;; -esac - -# ??? Not all targets support dwarf2 debug_line, even within a version -# of gas. Moreover, we need to emit a valid instruction to trigger any -# info to the output file. So, as supported targets are added to gas 2.11, -# add some instruction here to (also) show we expect this might work. -# ??? Once 2.11 is released, probably need to add first known working -# version to the per-target configury. -case "$target" in - i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \ - | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \ - | xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-*) - insn="nop" - ;; - ia64*-*-* | s390*-*-*) - insn="nop 0" - ;; - mmix-*-*) - insn="swym 0" - ;; -esac -if test x"$insn" != x; then - conftest_s="\ - .file 1 \"conftest.s\" - .loc 1 3 0 - $insn" - echo "$as_me:$LINENO: checking assembler for dwarf2 debug_line support" >&5 -echo $ECHO_N "checking assembler for dwarf2 debug_line support... $ECHO_C" >&6 -if test "${gcc_cv_as_dwarf2_debug_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_dwarf2_debug_line=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0` - then gcc_cv_as_dwarf2_debug_line=yes -fi - elif test x$gcc_cv_as != x; then - echo "$conftest_s" > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - if test x$gcc_cv_objdump != x \ - && $gcc_cv_objdump -h conftest.o 2> /dev/null \ - | grep debug_line > /dev/null 2>&1; then - gcc_cv_as_dwarf2_debug_line=yes - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_dwarf2_debug_line" >&5 -echo "${ECHO_T}$gcc_cv_as_dwarf2_debug_line" >&6 - - -# The .debug_line file table must be in the exact order that -# we specified the files, since these indices are also used -# by DW_AT_decl_file. Approximate this test by testing if -# the assembler bitches if the same index is assigned twice. - echo "$as_me:$LINENO: checking assembler for buggy dwarf2 .file directive" >&5 -echo $ECHO_N "checking assembler for buggy dwarf2 .file directive... $ECHO_C" >&6 -if test "${gcc_cv_as_dwarf2_file_buggy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_dwarf2_file_buggy=no - if test x$gcc_cv_as != x; then - echo ' .file 1 "foo.s" - .file 1 "bar.s"' > conftest.s - if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_dwarf2_file_buggy=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_dwarf2_file_buggy" >&5 -echo "${ECHO_T}$gcc_cv_as_dwarf2_file_buggy" >&6 - - - if test $gcc_cv_as_dwarf2_debug_line = yes \ - && test $gcc_cv_as_dwarf2_file_buggy = no; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_DWARF2_DEBUG_LINE 1 -_ACEOF - - fi - - echo "$as_me:$LINENO: checking assembler for --gdwarf2 option" >&5 -echo $ECHO_N "checking assembler for --gdwarf2 option... $ECHO_C" >&6 -if test "${gcc_cv_as_gdwarf2_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_gdwarf2_flag=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0` - then gcc_cv_as_gdwarf2_flag=yes -fi - elif test x$gcc_cv_as != x; then - echo "$insn" > conftest.s - if { ac_try='$gcc_cv_as --gdwarf2 -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - gcc_cv_as_gdwarf2_flag=yes - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_gdwarf2_flag" >&5 -echo "${ECHO_T}$gcc_cv_as_gdwarf2_flag" >&6 -if test $gcc_cv_as_gdwarf2_flag = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_GDWARF2_DEBUG_FLAG 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking assembler for --gstabs option" >&5 -echo $ECHO_N "checking assembler for --gstabs option... $ECHO_C" >&6 -if test "${gcc_cv_as_gstabs_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_as_gstabs_flag=no - if test $in_tree_gas = yes; then - if test $in_tree_gas_is_elf = yes \ - && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0` - then gcc_cv_as_gstabs_flag=yes -fi - elif test x$gcc_cv_as != x; then - echo "$insn" > conftest.s - if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s >&5' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then - # The native Solaris 9/Intel assembler doesn't understand --gstabs - # and warns about it, but still exits successfully. So check for - # this. - if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } - then : - else gcc_cv_as_gstabs_flag=yes - fi - else - echo "configure: failed program was" >&5 - cat conftest.s >&5 - fi - rm -f conftest.o conftest.s - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_as_gstabs_flag" >&5 -echo "${ECHO_T}$gcc_cv_as_gstabs_flag" >&6 -if test $gcc_cv_as_gstabs_flag = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_AS_GSTABS_DEBUG_FLAG 1 -_ACEOF - -fi -fi - -echo "$as_me:$LINENO: checking linker read-only and read-write section mixing" >&5 -echo $ECHO_N "checking linker read-only and read-write section mixing... $ECHO_C" >&6 -gcc_cv_ld_ro_rw_mix=unknown -if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then - gcc_cv_ld_ro_rw_mix=read-write - fi -elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then - echo '.section myfoosect, "a"' > conftest1.s - echo '.section myfoosect, "aw"' > conftest2.s - echo '.byte 1' >> conftest2.s - echo '.section myfoosect, "a"' > conftest3.s - echo '.byte 0' >> conftest3.s - if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \ - && $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \ - && $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \ - && $gcc_cv_ld -shared -o conftest1.so conftest1.o \ - conftest2.o conftest3.o > /dev/null 2>&1; then - gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \ - | sed -e '/myfoosect/!d' -e N` - if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then - if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then - gcc_cv_ld_ro_rw_mix=read-only - else - gcc_cv_ld_ro_rw_mix=read-write - fi - fi - fi - rm -f conftest.* conftest[123].* -fi -if test x$gcc_cv_ld_ro_rw_mix = xread-write; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_RO_RW_SECTION_MIXING 1 -_ACEOF - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_ro_rw_mix" >&5 -echo "${ECHO_T}$gcc_cv_ld_ro_rw_mix" >&6 - -echo "$as_me:$LINENO: checking linker PT_GNU_EH_FRAME support" >&5 -echo $ECHO_N "checking linker PT_GNU_EH_FRAME support... $ECHO_C" >&6 -gcc_cv_ld_eh_frame_hdr=no -if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then - gcc_cv_ld_eh_frame_hdr=yes - fi -elif test x$gcc_cv_ld != x; then - # Check if linker supports --eh-frame-hdr option - if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then - gcc_cv_ld_eh_frame_hdr=yes - fi -fi - -if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_EH_FRAME_HDR 1 -_ACEOF - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_eh_frame_hdr" >&5 -echo "${ECHO_T}$gcc_cv_ld_eh_frame_hdr" >&6 - -echo "$as_me:$LINENO: checking linker position independent executable support" >&5 -echo $ECHO_N "checking linker position independent executable support... $ECHO_C" >&6 -gcc_cv_ld_pie=no -if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then - gcc_cv_ld_pie=yes - fi -elif test x$gcc_cv_ld != x; then - # Check if linker supports -pie option - if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then - gcc_cv_ld_pie=yes - fi -fi -if test x"$gcc_cv_ld_pie" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_PIE 1 -_ACEOF - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_pie" >&5 -echo "${ECHO_T}$gcc_cv_ld_pie" >&6 - -# -------- -# UNSORTED -# -------- - -echo "$as_me:$LINENO: checking linker --as-needed support" >&5 -echo $ECHO_N "checking linker --as-needed support... $ECHO_C" >&6 -if test "${gcc_cv_ld_as_needed+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_ld_as_needed=no -if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then - gcc_cv_ld_as_needed=yes - fi -elif test x$gcc_cv_ld != x; then - # Check if linker supports --as-needed and --no-as-needed options - if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then - gcc_cv_ld_as_needed=yes - fi -fi - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_as_needed" >&5 -echo "${ECHO_T}$gcc_cv_ld_as_needed" >&6 -if test x"$gcc_cv_ld_as_needed" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_AS_NEEDED 1 -_ACEOF - -fi - -case "$target:$tm_file" in - powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) - echo "$as_me:$LINENO: checking linker support for omitting dot symbols" >&5 -echo $ECHO_N "checking linker support for omitting dot symbols... $ECHO_C" >&6 -if test "${gcc_cv_ld_no_dot_syms+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_ld_no_dot_syms=no - if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then - gcc_cv_ld_no_dot_syms=yes - fi - elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then - cat > conftest1.s < conftest2.s < /dev/null 2>&1 \ - && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \ - && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then - gcc_cv_ld_no_dot_syms=yes - fi - rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s - fi - -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_no_dot_syms" >&5 -echo "${ECHO_T}$gcc_cv_ld_no_dot_syms" >&6 - if test x"$gcc_cv_ld_no_dot_syms" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_NO_DOT_SYMS 1 -_ACEOF - - fi - ;; -esac - -echo "$as_me:$LINENO: checking linker --sysroot support" >&5 -echo $ECHO_N "checking linker --sysroot support... $ECHO_C" >&6 -if test "${gcc_cv_ld_sysroot+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_ld_sysroot=no - if test $in_tree_ld = yes ; then - if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then - gcc_cv_ld_sysroot=yes - fi - elif test x$gcc_cv_ld != x; then - if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then - gcc_cv_ld_sysroot=yes - fi - fi -fi -echo "$as_me:$LINENO: result: $gcc_cv_ld_sysroot" >&5 -echo "${ECHO_T}$gcc_cv_ld_sysroot" >&6 -if test x"$gcc_cv_ld_sysroot" = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define HAVE_LD_SYSROOT 1 -_ACEOF - -fi - -if test x$with_sysroot = x && test x$host = x$target \ - && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then - -cat >>confdefs.h <<_ACEOF -@%:@define PREFIX_INCLUDE_DIR "$prefix/include" -_ACEOF - -fi - -# APPLE LOCAL begin mainline -# Test for stack protector support in target C library. -echo "$as_me:$LINENO: checking __stack_chk_fail in target C library" >&5 -echo $ECHO_N "checking __stack_chk_fail in target C library... $ECHO_C" >&6 -if test "${gcc_cv_libc_provides_ssp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gcc_cv_libc_provides_ssp=no - case "$target" in - *-*-linux*) - if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then - if test "x$with_sysroot" = x; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" - elif test "x$with_sysroot" = xyes; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" - else - glibc_header_dir="${with_sysroot}/usr/include" - fi - else - glibc_header_dir=/usr/include - fi - # glibc 2.4 and later provides __stack_chk_fail and - # either __stack_chk_guard, or TLS access to stack guard canary. - if test -f $glibc_header_dir/features.h \ - && $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GNU_LIBRARY__[ ]+([ -1-9]0-9|6-9)' \ - $glibc_header_dir/features.h > /dev/null; then - if $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC__[ ]+([1-9][0-9 -]|3-9)' \ - $glibc_header_dir/features.h > /dev/null; then - gcc_cv_libc_provides_ssp=yes - elif $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC__[ ]+2' \ - $glibc_header_dir/features.h > /dev/null \ - && $EGREP '^@<:@ @:>@*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+([ -1-9]0-9|4-9)' \ - $glibc_header_dir/features.h > /dev/null; then - gcc_cv_libc_provides_ssp=yes - fi - fi - ;; - *-*-darwin*) - echo "$as_me:$LINENO: checking for __stack_chk_fail" >&5 -echo $ECHO_N "checking for __stack_chk_fail... $ECHO_C" >&6 -if test "${ac_cv_func___stack_chk_fail+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define __stack_chk_fail to an innocuous variant, in case declares __stack_chk_fail. - For example, HP-UX 11i declares gettimeofday. */ -#define __stack_chk_fail innocuous___stack_chk_fail - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char __stack_chk_fail (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef __stack_chk_fail - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char __stack_chk_fail (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub___stack_chk_fail) || defined (__stub_____stack_chk_fail) -choke me -#else -char (*f) () = __stack_chk_fail; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != __stack_chk_fail; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func___stack_chk_fail=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func___stack_chk_fail=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func___stack_chk_fail" >&5 -echo "${ECHO_T}$ac_cv_func___stack_chk_fail" >&6 -if test $ac_cv_func___stack_chk_fail = yes; then - gcc_cv_libc_provides_ssp=yes -else - echo "no __stack_chk_fail on this target" -fi - - ;; - *) gcc_cv_libc_provides_ssp=no ;; - esac -fi -echo "$as_me:$LINENO: result: $gcc_cv_libc_provides_ssp" >&5 -echo "${ECHO_T}$gcc_cv_libc_provides_ssp" >&6 - -# APPLE LOCAL end mainline -if test x$gcc_cv_libc_provides_ssp = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TARGET_LIBC_PROVIDES_SSP 1 -_ACEOF - -fi - -# Check if TFmode long double should be used by default or not. -# Some glibc targets used DFmode long double, but with glibc 2.4 -# and later they can use TFmode. -case "$target" in - powerpc*-*-*gnu* | \ - sparc*-*-linux* | \ - s390*-*-linux* | \ - alpha*-*-linux*) - -# Check whether --with-long-double-128 or --without-long-double-128 was given. -if test "${with_long_double_128+set}" = set; then - withval="$with_long_double_128" - gcc_cv_target_ldbl128="$with_long_double_128" -else - gcc_cv_target_ldbl128=no - if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then - if test "x$with_sysroot" = x; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-include" - elif test "x$with_sysroot" = xyes; then - glibc_header_dir="${exec_prefix}/${target_noncanonical}/sys-root/usr/include" - else - glibc_header_dir="${with_sysroot}/usr/include" - fi - else - glibc_header_dir=/usr/include - fi - grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ - $glibc_header_dir/bits/wordsize.h > /dev/null 2>&1 \ - && gcc_cv_target_ldbl128=yes - -fi; - ;; -esac -if test x$gcc_cv_target_ldbl128 = xyes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TARGET_DEFAULT_LONG_DOUBLE_128 1 -_ACEOF - -fi - -# Find out what GC implementation we want, or may, use. - -# Check whether --with-gc or --without-gc was given. -if test "${with_gc+set}" = set; then - withval="$with_gc" - case "$withval" in - page) - GGC=ggc-$withval - ;; - zone) - GGC=ggc-$withval - -cat >>confdefs.h <<\_ACEOF -@%:@define GGC_ZONE 1 -_ACEOF - - ;; - *) - { { echo "$as_me:$LINENO: error: $withval is an invalid option to --with-gc" >&5 -echo "$as_me: error: $withval is an invalid option to --with-gc" >&2;} - { (exit 1); exit 1; }; } - ;; -esac -else - GGC=ggc-page -fi; - -echo "Using $GGC for garbage collection." - -# Use the system's zlib library. -zlibdir=-L../zlib -zlibinc="-I\$(srcdir)/../zlib" - -# Check whether --with-system-zlib or --without-system-zlib was given. -if test "${with_system_zlib+set}" = set; then - withval="$with_system_zlib" - zlibdir= -zlibinc= - -fi; - - - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - maintainer_mode=$enableval -else - maintainer_mode=no -fi; - -echo "$as_me:$LINENO: result: $maintainer_mode" >&5 -echo "${ECHO_T}$maintainer_mode" >&6 - -if test "$maintainer_mode" = "yes"; then - MAINT='' -else - MAINT='#' -fi - -# -------------- -# Language hooks -# -------------- - -# Make empty files to contain the specs and options for each language. -# Then add #include lines to for a compiler that has specs and/or options. - -subdirs= -lang_opt_files= -lang_specs_files= -lang_tree_files= -# These (without "all_") are set in each config-lang.in. -# `language' must be a single word so is spelled singularly. -all_languages= -all_boot_languages= -all_compilers= -all_stagestuff= -all_outputs='Makefile gccbug mklibgcc libada-mk' -# List of language makefile fragments. -all_lang_makefrags= -# List of language subdirectory makefiles. Deprecated. -all_lang_makefiles= -# Files for gengtype -all_gtfiles="$target_gtfiles" -# Files for gengtype with language -all_gtfiles_files_langs= -all_gtfiles_files_files= - -# These are the languages that are set in --enable-languages, -# and are available in the GCC tree. -all_selected_languages= - -# Add the language fragments. -# Languages are added via two mechanisms. Some information must be -# recorded in makefile variables, these are defined in config-lang.in. -# We accumulate them and plug them into the main Makefile. -# The other mechanism is a set of hooks for each of the main targets -# like `clean', `install', etc. - -language_hooks="Make-hooks" - -for lang in ${srcdir}/*/config-lang.in -do - test "$lang" = "${srcdir}/*/config-lang.in" && continue - - lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` - if test "x$lang_alias" = x - then - echo "$lang doesn't set \$language." 1>&2 - exit 1 - fi - subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" - subdirs="$subdirs $subdir" - case ",$enable_languages," in - *,$lang_alias,*) - all_selected_languages="$all_selected_languages $lang_alias" - if test -f $srcdir/$subdir/lang-specs.h; then - lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h" - fi - ;; - esac - - language= - boot_language= - compilers= - stagestuff= - outputs= - gtfiles= - subdir_requires= - . ${srcdir}/$subdir/config-lang.in - if test "x$language" = x - then - echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2 - exit 1 - fi - - ok=: - case ",$enable_languages," in - *,$lang_alias,*) ;; - *) - for i in $subdir_requires; do - test -f "${srcdir}/$i/config-lang.in" && continue - ok=false - break - done - ;; - esac - $ok || continue - - all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in" - if test -f $srcdir/$subdir/lang.opt; then - lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt" - fi - if test -f $srcdir/$subdir/$subdir-tree.def; then - lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def" - fi - if test -f ${srcdir}/$subdir/Makefile.in - then all_lang_makefiles="$subdir/Makefile" - fi - all_languages="$all_languages $language" - if test "x$boot_language" = xyes - then - all_boot_languages="$all_boot_languages $language" - fi - all_compilers="$all_compilers $compilers" - all_stagestuff="$all_stagestuff $stagestuff" - all_outputs="$all_outputs $outputs" - all_gtfiles="$all_gtfiles $gtfiles" - for f in $gtfiles - do - all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} " - all_gtfiles_files_files="$all_gtfiles_files_files ${f} " - done -done - -# Pick up gtfiles for c -gtfiles= -subdir="c" -. ${srcdir}/c-config-lang.in -all_gtfiles="$all_gtfiles $gtfiles" -for f in $gtfiles -do - all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} " - all_gtfiles_files_files="$all_gtfiles_files_files ${f} " -done - -check_languages= -for language in $all_selected_languages -do - check_languages="$check_languages check-$language" -done - -# We link each language in with a set of hooks, reached indirectly via -# lang.${target}. Only do so for selected languages. - -rm -f Make-hooks -touch Make-hooks -target_list="all.cross start.encap rest.encap tags \ - install-common install-man install-info dvi pdf html \ - uninstall info man srcextra srcman srcinfo \ - mostlyclean clean distclean maintainer-clean \ - stage1 stage2 stage3 stage4 stageprofile stagefeedback" - -for t in $target_list -do - x= - for lang in $all_selected_languages - do - x="$x $lang.$t" - done - echo "lang.$t: $x" >> Make-hooks -done - -# -------- -# UNSORTED -# -------- - -# Create .gdbinit. - -echo "dir ." > .gdbinit -echo "dir ${srcdir}" >> .gdbinit -if test x$gdb_needs_out_file_path = xyes -then - echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit -fi -if test "x$subdirs" != x; then - for s in $subdirs - do - echo "dir ${srcdir}/$s" >> .gdbinit - done -fi -echo "source ${srcdir}/gdbinit.in" >> .gdbinit - -# If $(exec_prefix) exists and is not the same as $(prefix), then compute an -# absolute path for gcc_tooldir based on inserting the number of up-directory -# movements required to get from $(exec_prefix) to $(prefix) into the basic -# $(libsubdir)/@(unlibsubdir) based path. -# Don't set gcc_tooldir to tooldir since that's only passed in by the toplevel -# make and thus we'd get different behavior depending on where we built the -# sources. -if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then - gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)' -else -# An explanation of the sed strings: -# -e 's|^\$(prefix)||' matches and eliminates 'prefix' from 'exec_prefix' -# -e 's|/$||' match a trailing forward slash and eliminates it -# -e 's|^[^/]|/|' forces the string to start with a forward slash (*) -# -e 's|/[^/]*|../|g' replaces each occurrence of / with ../ -# -# (*) Note this pattern overwrites the first character of the string -# with a forward slash if one is not already present. This is not a -# problem because the exact names of the sub-directories concerned is -# unimportant, just the number of them matters. -# -# The practical upshot of these patterns is like this: -# -# prefix exec_prefix result -# ------ ----------- ------ -# /foo /foo/bar ../ -# /foo/ /foo/bar ../ -# /foo /foo/bar/ ../ -# /foo/ /foo/bar/ ../ -# /foo /foo/bar/ugg ../../ -# - dollar='$$' - gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)" -fi - - - -# Find a directory in which to install a shared libgcc. - -# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. -if test "${enable_version_specific_runtime_libs+set}" = set; then - enableval="$enable_version_specific_runtime_libs" - -fi; - - -# Check whether --with-slibdir or --without-slibdir was given. -if test "${with_slibdir+set}" = set; then - withval="$with_slibdir" - slibdir="$with_slibdir" -else - if test "${enable_version_specific_runtime_libs+set}" = set; then - slibdir='$(libsubdir)' -elif test "$host" != "$target"; then - slibdir='$(build_tooldir)/lib' -else - slibdir='$(libdir)' -fi -fi; - - -objdir=`${PWDCMD-pwd}` - - - -# Check whether --with-datarootdir or --without-datarootdir was given. -if test "${with_datarootdir+set}" = set; then - withval="$with_datarootdir" - datarootdir="\${prefix}/$with_datarootdir" -else - datarootdir='$(prefix)/share' -fi; - - - -# Check whether --with-docdir or --without-docdir was given. -if test "${with_docdir+set}" = set; then - withval="$with_docdir" - docdir="\${prefix}/$with_docdir" -else - docdir='$(datarootdir)' -fi; - - - -# Check whether --with-htmldir or --without-htmldir was given. -if test "${with_htmldir+set}" = set; then - withval="$with_htmldir" - htmldir="\${prefix}/$with_htmldir" -else - htmldir='$(docdir)' -fi; - - -# Substitute configuration variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# LLVM LOCAL - - -# LLVM LOCAL - - - - - - - - - - - - - - - - - - -# Echo link setup. -if test x${build} = x${host} ; then - if test x${host} = x${target} ; then - echo "Links are now set up to build a native compiler for ${target}." 1>&2 - else - echo "Links are now set up to build a cross-compiler" 1>&2 - echo " from ${host} to ${target}." 1>&2 - fi -else - if test x${host} = x${target} ; then - echo "Links are now set up to build (on ${build}) a native compiler" 1>&2 - echo " for ${target}." 1>&2 - else - echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2 - echo " from ${host} to ${target}." 1>&2 - fi -fi - - - - -# Configure the subdirectories -# AC_CONFIG_SUBDIRS($subdirs) - -# Create the Makefile -# and configure language subdirectories - ac_config_files="$ac_config_files $all_outputs" - - - ac_config_commands="$ac_config_commands default" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIB@&t at OBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIB@&t at OBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -subdirs='$subdirs' - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "$all_outputs" ) CONFIG_FILES="$CONFIG_FILES $all_outputs" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "auto-host.h" ) CONFIG_HEADERS="$CONFIG_HEADERS auto-host.h:config.in" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s, at SHELL@,$SHELL,;t t -s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t -s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t -s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s, at exec_prefix@,$exec_prefix,;t t -s, at prefix@,$prefix,;t t -s, at program_transform_name@,$program_transform_name,;t t -s, at bindir@,$bindir,;t t -s, at sbindir@,$sbindir,;t t -s, at libexecdir@,$libexecdir,;t t -s, at datadir@,$datadir,;t t -s, at sysconfdir@,$sysconfdir,;t t -s, at sharedstatedir@,$sharedstatedir,;t t -s, at localstatedir@,$localstatedir,;t t -s, at libdir@,$libdir,;t t -s, at includedir@,$includedir,;t t -s, at oldincludedir@,$oldincludedir,;t t -s, at infodir@,$infodir,;t t -s, at mandir@,$mandir,;t t -s, at build_alias@,$build_alias,;t t -s, at host_alias@,$host_alias,;t t -s, at target_alias@,$target_alias,;t t -s, at DEFS@,$DEFS,;t t -s, at ECHO_C@,$ECHO_C,;t t -s, at ECHO_N@,$ECHO_N,;t t -s, at ECHO_T@,$ECHO_T,;t t -s, at LIBS@,$LIBS,;t t -s, at build@,$build,;t t -s, at build_cpu@,$build_cpu,;t t -s, at build_vendor@,$build_vendor,;t t -s, at build_os@,$build_os,;t t -s, at host@,$host,;t t -s, at host_cpu@,$host_cpu,;t t -s, at host_vendor@,$host_vendor,;t t -s, at host_os@,$host_os,;t t -s, at target@,$target,;t t -s, at target_cpu@,$target_cpu,;t t -s, at target_vendor@,$target_vendor,;t t -s, at target_os@,$target_os,;t t -s, at target_noncanonical@,$target_noncanonical,;t t -s, at build_libsubdir@,$build_libsubdir,;t t -s, at build_subdir@,$build_subdir,;t t -s, at host_subdir@,$host_subdir,;t t -s, at target_subdir@,$target_subdir,;t t -s, at GENINSRC@,$GENINSRC,;t t -s, at CC@,$CC,;t t -s, at CFLAGS@,$CFLAGS,;t t -s, at LDFLAGS@,$LDFLAGS,;t t -s, at CPPFLAGS@,$CPPFLAGS,;t t -s, at ac_ct_CC@,$ac_ct_CC,;t t -s, at EXEEXT@,$EXEEXT,;t t -s, at OBJEXT@,$OBJEXT,;t t -s, at NO_MINUS_C_MINUS_O@,$NO_MINUS_C_MINUS_O,;t t -s, at OUTPUT_OPTION@,$OUTPUT_OPTION,;t t -s, at CPP@,$CPP,;t t -s, at EGREP@,$EGREP,;t t -s, at strict1_warn@,$strict1_warn,;t t -s, at cxx_compat_warn@,$cxx_compat_warn,;t t -s, at warn_cflags@,$warn_cflags,;t t -s, at WERROR@,$WERROR,;t t -s, at checkingenabled_flag@,$checkingenabled_flag,;t t -s, at nocommon_flag@,$nocommon_flag,;t t -s, at TREEBROWSER@,$TREEBROWSER,;t t -s, at valgrind_path@,$valgrind_path,;t t -s, at valgrind_path_defines@,$valgrind_path_defines,;t t -s, at valgrind_command@,$valgrind_command,;t t -s, at coverage_flags@,$coverage_flags,;t t -s, at enable_multilib@,$enable_multilib,;t t -s, at enable_decimal_float@,$enable_decimal_float,;t t -s, at enable_shared@,$enable_shared,;t t -s, at TARGET_SYSTEM_ROOT@,$TARGET_SYSTEM_ROOT,;t t -s, at TARGET_SYSTEM_ROOT_DEFINE@,$TARGET_SYSTEM_ROOT_DEFINE,;t t -s, at CROSS_SYSTEM_HEADER_DIR@,$CROSS_SYSTEM_HEADER_DIR,;t t -s, at onestep@,$onestep,;t t -s, at DSYMUTIL@,$DSYMUTIL,;t t -s, at LLVMBASEPATH@,$LLVMBASEPATH,;t t -s, at LLVMBUILDMODE@,$LLVMBUILDMODE,;t t -s, at datarootdir@,$datarootdir,;t t -s, at docdir@,$docdir,;t t -s, at htmldir@,$htmldir,;t t -s, at SET_MAKE@,$SET_MAKE,;t t -s, at AWK@,$AWK,;t t -s, at LN_S@,$LN_S,;t t -s, at LN@,$LN,;t t -s, at RANLIB@,$RANLIB,;t t -s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s, at ranlib_flags@,$ranlib_flags,;t t -s, at INSTALL@,$INSTALL,;t t -s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s, at INSTALL_DATA@,$INSTALL_DATA,;t t -s, at make_compare_target@,$make_compare_target,;t t -s, at have_mktemp_command@,$have_mktemp_command,;t t -s, at MAKEINFO@,$MAKEINFO,;t t -s, at BUILD_INFO@,$BUILD_INFO,;t t -s, at GENERATED_MANPAGES@,$GENERATED_MANPAGES,;t t -s, at FLEX@,$FLEX,;t t -s, at BISON@,$BISON,;t t -s, at NM@,$NM,;t t -s, at AR@,$AR,;t t -s, at stage1_cflags@,$stage1_cflags,;t t -s, at COLLECT2_LIBS@,$COLLECT2_LIBS,;t t -s, at GNAT_LIBEXC@,$GNAT_LIBEXC,;t t -s, at LDEXP_LIB@,$LDEXP_LIB,;t t -s, at TARGET_GETGROUPS_T@,$TARGET_GETGROUPS_T,;t t -s, at LIBICONV@,$LIBICONV,;t t -s, at LTLIBICONV@,$LTLIBICONV,;t t -s, at LIBICONV_DEP@,$LIBICONV_DEP,;t t -s, at manext@,$manext,;t t -s, at objext@,$objext,;t t -s, at gthread_flags@,$gthread_flags,;t t -s, at extra_modes_file@,$extra_modes_file,;t t -s, at extra_opt_files@,$extra_opt_files,;t t -s, at USE_NLS@,$USE_NLS,;t t -s, at LIBINTL@,$LIBINTL,;t t -s, at LIBINTL_DEP@,$LIBINTL_DEP,;t t -s, at INCINTL@,$INCINTL,;t t -s, at XGETTEXT@,$XGETTEXT,;t t -s, at GMSGFMT@,$GMSGFMT,;t t -s, at POSUB@,$POSUB,;t t -s, at CATALOGS@,$CATALOGS,;t t -s, at DATADIRNAME@,$DATADIRNAME,;t t -s, at INSTOBJEXT@,$INSTOBJEXT,;t t -s, at GENCAT@,$GENCAT,;t t -s, at CATOBJEXT@,$CATOBJEXT,;t t -s, at host_cc_for_libada@,$host_cc_for_libada,;t t -s, at CROSS@,$CROSS,;t t -s, at ALL@,$ALL,;t t -s, at SYSTEM_HEADER_DIR@,$SYSTEM_HEADER_DIR,;t t -s, at inhibit_libc@,$inhibit_libc,;t t -s, at CC_FOR_BUILD@,$CC_FOR_BUILD,;t t -s, at BUILD_CFLAGS@,$BUILD_CFLAGS,;t t -s, at STMP_FIXINC@,$STMP_FIXINC,;t t -s, at STMP_FIXPROTO@,$STMP_FIXPROTO,;t t -s, at collect2@,$collect2,;t t -s, at gcc_cv_as@,$gcc_cv_as,;t t -s, at ORIGINAL_AS_FOR_TARGET@,$ORIGINAL_AS_FOR_TARGET,;t t -s, at gcc_cv_ld@,$gcc_cv_ld,;t t -s, at ORIGINAL_LD_FOR_TARGET@,$ORIGINAL_LD_FOR_TARGET,;t t -s, at gcc_cv_nm@,$gcc_cv_nm,;t t -s, at ORIGINAL_NM_FOR_TARGET@,$ORIGINAL_NM_FOR_TARGET,;t t -s, at gcc_cv_objdump@,$gcc_cv_objdump,;t t -s, at libgcc_visibility@,$libgcc_visibility,;t t -s, at GGC@,$GGC,;t t -s, at zlibdir@,$zlibdir,;t t -s, at zlibinc@,$zlibinc,;t t -s, at MAINT@,$MAINT,;t t -s, at gcc_tooldir@,$gcc_tooldir,;t t -s, at dollar@,$dollar,;t t -s, at slibdir@,$slibdir,;t t -s, at objdir@,$objdir,;t t -s, at subdirs@,$subdirs,;t t -s, at srcdir@,$srcdir,;t t -s, at all_boot_languages@,$all_boot_languages,;t t -s, at all_compilers@,$all_compilers,;t t -s, at all_gtfiles@,$all_gtfiles,;t t -s, at all_gtfiles_files_langs@,$all_gtfiles_files_langs,;t t -s, at all_gtfiles_files_files@,$all_gtfiles_files_files,;t t -s, at all_lang_makefrags@,$all_lang_makefrags,;t t -s, at all_lang_makefiles@,$all_lang_makefiles,;t t -s, at all_languages@,$all_languages,;t t -s, at all_selected_languages@,$all_selected_languages,;t t -s, at all_stagestuff@,$all_stagestuff,;t t -s, at build_exeext@,$build_exeext,;t t -s, at build_install_headers_dir@,$build_install_headers_dir,;t t -s, at build_xm_file_list@,$build_xm_file_list,;t t -s, at build_xm_include_list@,$build_xm_include_list,;t t -s, at build_xm_defines@,$build_xm_defines,;t t -s, at check_languages@,$check_languages,;t t -s, at cc_set_by_configure@,$cc_set_by_configure,;t t -s, at quoted_cc_set_by_configure@,$quoted_cc_set_by_configure,;t t -s, at cpp_install_dir@,$cpp_install_dir,;t t -s, at xmake_file@,$xmake_file,;t t -s, at tmake_file@,$tmake_file,;t t -s, at extra_gcc_objs@,$extra_gcc_objs,;t t -s, at extra_headers_list@,$extra_headers_list,;t t -s, at extra_objs@,$extra_objs,;t t -s, at extra_parts@,$extra_parts,;t t -s, at extra_passes@,$extra_passes,;t t -s, at extra_programs@,$extra_programs,;t t -s, at float_h_file@,$float_h_file,;t t -s, at gcc_config_arguments@,$gcc_config_arguments,;t t -s, at gcc_gxx_include_dir@,$gcc_gxx_include_dir,;t t -s, at host_exeext@,$host_exeext,;t t -s, at host_xm_file_list@,$host_xm_file_list,;t t -s, at host_xm_include_list@,$host_xm_include_list,;t t -s, at host_xm_defines@,$host_xm_defines,;t t -s, at out_host_hook_obj@,$out_host_hook_obj,;t t -s, at install@,$install,;t t -s, at lang_opt_files@,$lang_opt_files,;t t -s, at lang_specs_files@,$lang_specs_files,;t t -s, at lang_tree_files@,$lang_tree_files,;t t -s, at local_prefix@,$local_prefix,;t t -s, at md_file@,$md_file,;t t -s, at objc_boehm_gc@,$objc_boehm_gc,;t t -s, at out_file@,$out_file,;t t -s, at out_cxx_file@,$out_cxx_file,;t t -s, at out_object_file@,$out_object_file,;t t -s, at out_cxx_object_file@,$out_cxx_object_file,;t t -s, at stage_prefix_set_by_configure@,$stage_prefix_set_by_configure,;t t -s, at quoted_stage_prefix_set_by_configure@,$quoted_stage_prefix_set_by_configure,;t t -s, at thread_file@,$thread_file,;t t -s, at tm_file_list@,$tm_file_list,;t t -s, at tm_include_list@,$tm_include_list,;t t -s, at tm_defines@,$tm_defines,;t t -s, at tm_p_file_list@,$tm_p_file_list,;t t -s, at tm_p_include_list@,$tm_p_include_list,;t t -s, at xm_file_list@,$xm_file_list,;t t -s, at xm_include_list@,$xm_include_list,;t t -s, at xm_defines@,$xm_defines,;t t -s, at c_target_objs@,$c_target_objs,;t t -s, at cxx_target_objs@,$cxx_target_objs,;t t -s, at target_cpu_default@,$target_cpu_default,;t t -s, at GMPLIBS@,$GMPLIBS,;t t -s, at GMPINC@,$GMPINC,;t t -s, at LIB@&t at OBJS@,$LIB@&t at OBJS,;t t -s, at LTLIBOBJS@,$LTLIBOBJS,;t t -/@language_hooks@/r $language_hooks -s, at language_hooks@,,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s, at configure_input@,$configure_input,;t t -s, at srcdir@,$ac_srcdir,;t t -s, at abs_srcdir@,$ac_abs_srcdir,;t t -s, at top_srcdir@,$ac_top_srcdir,;t t -s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s, at builddir@,$ac_builddir,;t t -s, at abs_builddir@,$ac_abs_builddir,;t t -s, at top_builddir@,$ac_top_builddir,;t t -s, at abs_top_builddir@,$ac_abs_top_builddir,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - default ) -case ${CONFIG_HEADERS} in - *auto-host.h:config.in*) - echo > cstamp-h ;; -esac -# Make sure all the subdirs exist. -for d in $subdirs doc build -do - test -d $d || mkdir $d -done -# If the host supports symlinks, point stage[1234] at ../stage[1234] so -# bootstrapping and the installation procedure can still use -# CC="stage1/xgcc -Bstage1/". If the host doesn't support symlinks, -# FLAGS_TO_PASS has been modified to solve the problem there. -# This is virtually a duplicate of what happens in configure.lang; we do -# an extra check to make sure this only happens if ln -s can be used. -case "$LN_S" in - *-s*) - for d in ${subdirs} ; do - STARTDIR=`${PWDCMD-pwd}` - cd $d - for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include - do - rm -f $t - $LN_S ../$t $t 2>/dev/null - done - cd $STARTDIR - done - ;; -esac - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - Modified: llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests?rev=46241&r1=46240&r2=46241&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests (original) +++ llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests Mon Jan 21 21:07:23 2008 @@ -1,116 +0,0 @@ -# This file was generated. -# It contains the lists of macros which have been traced. -# It can be safely removed. - - at request = ( - bless( [ - '0', - 1, - [ - '/Network/Servers/hills/Volumes/capanna/gkeating/share/autoconf' - ], - [ - '/Network/Servers/hills/Volumes/capanna/gkeating/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.ac' - ], - { - 'm4_pattern_forbid' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_C_VOLATILE' => 1, - 'AC_FUNC_CLOSEDIR_VOID' => 1, - 'AC_REPLACE_FNMATCH' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_FUNC_STAT' => 1, - 'AC_HEADER_TIME' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AC_FUNC_GETMNTENT' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AC_CHECK_HEADERS' => 1, - 'AC_FUNC_STRNLEN' => 1, - 'm4_sinclude' => 1, - 'AC_PROG_CXX' => 1, - 'AC_PATH_X' => 1, - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, - 'AC_PROG_AWK' => 1, - '_m4_warn' => 1, - 'AC_HEADER_STDC' => 1, - 'AC_HEADER_MAJOR' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_FUNC_MBRTOWC' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_TYPE_UID_T' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'sinclude' => 1, - 'm4_pattern_allow' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_PROG_CC' => 1, - 'AC_FUNC_FORK' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AC_PROG_YACC' => 1, - 'AC_INIT' => 1, - 'AC_STRUCT_TIMEZONE' => 1, - 'AC_FUNC_CHOWN' => 1, - 'AC_SUBST' => 1, - 'AC_FUNC_ALLOCA' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FUNC_GETPGRP' => 1, - 'AC_PROG_RANLIB' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_FUNC_REALLOC' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_CHECK_TYPES' => 1, - 'AC_CHECK_MEMBERS' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_HEADER_STAT' => 1, - 'AC_C_INLINE' => 1, - 'AC_PROG_CPP' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_C_CONST' => 1, - 'AC_PROG_LEX' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_PROG_INSTALL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_GETGROUPS' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AH_OUTPUT' => 1, - 'AC_FUNC_FSEEKO' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_HEADER_SYS_WAIT' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'AC_PROG_LN_S' => 1, - 'm4_include' => 1, - 'AC_HEADER_DIRENT' => 1, - 'AC_CHECK_FUNCS' => 1 - } - ], 'Autom4te::Request' ) - ); - Modified: llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0 URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0?rev=46241&r1=46240&r2=46241&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0 (original) +++ llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0 Mon Jan 21 21:07:23 2008 @@ -1,1720 +0,0 @@ -m4trace:aclocal.m4:95: -1- m4_include([../config/acx.m4]) -m4trace:aclocal.m4:96: -1- m4_include([../config/codeset.m4]) -m4trace:aclocal.m4:97: -1- m4_include([../config/gettext-sister.m4]) -m4trace:aclocal.m4:98: -1- m4_include([../config/iconv.m4]) -m4trace:aclocal.m4:99: -1- m4_include([../config/lcmessage.m4]) -m4trace:aclocal.m4:100: -1- m4_include([../config/lib-ld.m4]) -m4trace:aclocal.m4:101: -1- m4_include([../config/lib-link.m4]) -m4trace:aclocal.m4:102: -1- m4_include([../config/lib-prefix.m4]) -m4trace:aclocal.m4:103: -1- m4_include([../config/progtest.m4]) -m4trace:aclocal.m4:104: -1- m4_include([acinclude.m4]) -m4trace:configure.ac:29: -1- AC_INIT -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.ac:29: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:29: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:29: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) -m4trace:configure.ac:29: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.ac:29: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.ac:29: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.ac:29: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.ac:29: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.ac:29: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.ac:29: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.ac:29: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.ac:29: -1- AC_SUBST([datadir], ['${prefix}/share']) -m4trace:configure.ac:29: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.ac:29: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.ac:29: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.ac:29: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.ac:29: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.ac:29: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.ac:29: -1- AC_SUBST([infodir], ['${prefix}/info']) -m4trace:configure.ac:29: -1- AC_SUBST([mandir], ['${prefix}/man']) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -#ifndef USED_FOR_TARGET -#undef PACKAGE_NAME -#endif -]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -#ifndef USED_FOR_TARGET -#undef PACKAGE_TARNAME -#endif -]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -#ifndef USED_FOR_TARGET -#undef PACKAGE_VERSION -#endif -]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -#ifndef USED_FOR_TARGET -#undef PACKAGE_STRING -#endif -]) -m4trace:configure.ac:29: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.ac:29: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -#ifndef USED_FOR_TARGET -#undef PACKAGE_BUGREPORT -#endif -]) -m4trace:configure.ac:29: -1- AC_SUBST([build_alias]) -m4trace:configure.ac:29: -1- AC_SUBST([host_alias]) -m4trace:configure.ac:29: -1- AC_SUBST([target_alias]) -m4trace:configure.ac:29: -1- AC_SUBST([DEFS]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_C]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_N]) -m4trace:configure.ac:29: -1- AC_SUBST([ECHO_T]) -m4trace:configure.ac:29: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:31: -1- AC_CONFIG_HEADERS([auto-host.h:config.in]) -m4trace:configure.ac:36: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.ac:36: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.ac:36: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.ac:36: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.ac:37: -1- AC_CANONICAL_HOST -m4trace:configure.ac:37: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.ac:37: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.ac:37: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.ac:37: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.ac:38: -1- AC_SUBST([target], [$ac_cv_target]) -m4trace:configure.ac:38: -1- AC_SUBST([target_cpu], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.ac:38: -1- AC_SUBST([target_vendor], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.ac:38: -1- AC_SUBST([target_os], [`echo $ac_cv_target | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.ac:41: -1- AC_SUBST([target_noncanonical]) -m4trace:configure.ac:44: -1- AC_SUBST([build_libsubdir]) -m4trace:configure.ac:44: -1- AC_SUBST([build_subdir]) -m4trace:configure.ac:44: -1- AC_SUBST([host_subdir]) -m4trace:configure.ac:44: -1- AC_SUBST([target_subdir]) -m4trace:configure.ac:183: -1- AC_SUBST([GENINSRC]) -m4trace:configure.ac:206: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_LINKER]) -m4trace:configure.ac:206: -1- AH_OUTPUT([DEFAULT_LINKER], [/* Define to enable the use of a default linker. */ -#ifndef USED_FOR_TARGET -#undef DEFAULT_LINKER -#endif -]) -m4trace:configure.ac:246: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ASSEMBLER]) -m4trace:configure.ac:246: -1- AH_OUTPUT([DEFAULT_ASSEMBLER], [/* Define to enable the use of a default assembler. */ -#ifndef USED_FOR_TARGET -#undef DEFAULT_ASSEMBLER -#endif -]) -m4trace:configure.ac:274: -1- AC_PROG_CC -m4trace:configure.ac:274: -1- AC_SUBST([CC]) -m4trace:configure.ac:274: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:274: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.ac:274: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:274: -1- AC_SUBST([CC]) -m4trace:configure.ac:274: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.ac:274: -1- AC_SUBST([CC]) -m4trace:configure.ac:274: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.ac:274: -1- AC_SUBST([CC]) -m4trace:configure.ac:274: -1- AC_SUBST([CC]) -m4trace:configure.ac:274: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.ac:274: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.ac:274: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.ac:275: -1- AM_PROG_CC_C_O -m4trace:configure.ac:275: -1- AC_DEFINE_TRACE_LITERAL([NO_MINUS_C_MINUS_O]) -m4trace:configure.ac:275: -1- AH_OUTPUT([NO_MINUS_C_MINUS_O], [/* Define to 1 if your C compiler doesn\'t accept -c and -o together. */ -#ifndef USED_FOR_TARGET -#undef NO_MINUS_C_MINUS_O -#endif -]) -m4trace:configure.ac:282: -1- AC_SUBST([NO_MINUS_C_MINUS_O]) -m4trace:configure.ac:283: -1- AC_SUBST([OUTPUT_OPTION]) -m4trace:configure.ac:291: -1- AC_SUBST([CFLAGS]) -m4trace:configure.ac:297: -1- AC_PROG_CPP -m4trace:configure.ac:297: -1- AC_SUBST([CPP]) -m4trace:configure.ac:297: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.ac:297: -1- AC_SUBST([CPP]) -m4trace:configure.ac:298: -1- AC_C_INLINE -m4trace:configure.ac:298: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler - calls it, or to nothing if \'inline\' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif]) -m4trace:configure.ac:301: -1- AC_HEADER_STDC -m4trace:configure.ac:301: -1- AC_SUBST([EGREP]) -m4trace:configure.ac:301: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.ac:301: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -#ifndef USED_FOR_TARGET -#undef STDC_HEADERS -#endif -]) -m4trace:configure.ac:301: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_TYPES_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_STAT_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STDLIB_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRING_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MEMORY_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRINGS_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_INTTYPES_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STDINT_H -#endif -]) -m4trace:configure.ac:301: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_UNISTD_H -#endif -]) -m4trace:configure.ac:301: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.ac:301: the top level]) -m4trace:configure.ac:301: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_VOID_P]) -m4trace:configure.ac:301: -1- AH_OUTPUT([SIZEOF_VOID_P], [/* The size of a `void *\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF_VOID_P -#endif -]) -m4trace:configure.ac:302: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.ac:302: the top level]) -m4trace:configure.ac:302: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.ac:302: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF_SHORT -#endif -]) -m4trace:configure.ac:303: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.ac:303: the top level]) -m4trace:configure.ac:303: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.ac:303: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF_INT -#endif -]) -m4trace:configure.ac:304: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.ac:304: the top level]) -m4trace:configure.ac:304: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.ac:304: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF_LONG -#endif -]) -m4trace:configure.ac:305: -1- AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)]) -m4trace:configure.ac:305: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.ac:305: -1- AH_OUTPUT([HAVE_LONG_LONG], [/* Define to 1 if the system has the type `long long\'. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LONG_LONG -#endif -]) -m4trace:configure.ac:305: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -autoconf/types.m4:171: AC_CHECK_TYPES is expanded from... -configure.ac:305: the top level]) -m4trace:configure.ac:305: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.ac:305: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF_LONG_LONG -#endif -]) -m4trace:configure.ac:306: -1- AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)]) -m4trace:configure.ac:306: -1- AC_DEFINE_TRACE_LITERAL([HAVE___INT64]) -m4trace:configure.ac:306: -1- AH_OUTPUT([HAVE___INT64], [/* Define to 1 if the system has the type `__int64\'. */ -#ifndef USED_FOR_TARGET -#undef HAVE___INT64 -#endif -]) -m4trace:configure.ac:306: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -autoconf/types.m4:171: AC_CHECK_TYPES is expanded from... -configure.ac:306: the top level]) -m4trace:configure.ac:306: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF___INT64]) -m4trace:configure.ac:306: -1- AH_OUTPUT([SIZEOF___INT64], [/* The size of a `__int64\', as computed by sizeof. */ -#ifndef USED_FOR_TARGET -#undef SIZEOF___INT64 -#endif -]) -m4trace:configure.ac:398: -1- AC_SUBST([strict1_warn]) -m4trace:configure.ac:414: -1- AC_SUBST([cxx_compat_warn]) -m4trace:configure.ac:424: -1- AC_SUBST([warn_cflags]) -m4trace:configure.ac:443: -1- AC_SUBST([WERROR]) -m4trace:configure.ac:518: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_CHECKING]) -m4trace:configure.ac:518: -1- AH_OUTPUT([ENABLE_CHECKING], [/* Define if you want more run-time sanity checks. This one gets a grab bag of - miscellaneous but relatively cheap checks. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_CHECKING -#endif -]) -m4trace:configure.ac:524: -1- AC_SUBST([checkingenabled_flag]) -m4trace:configure.ac:525: -1- AC_SUBST([nocommon_flag]) -m4trace:configure.ac:528: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_ASSERT_CHECKING]) -m4trace:configure.ac:528: -1- AH_OUTPUT([ENABLE_ASSERT_CHECKING], [/* Define if you want assertions enabled. This is a cheap check. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_ASSERT_CHECKING -#endif -]) -m4trace:configure.ac:533: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_RUNTIME_CHECKING]) -m4trace:configure.ac:533: -1- AH_OUTPUT([ENABLE_RUNTIME_CHECKING], [/* Define if you want runtime assertions enabled. This is a cheap check. */ -#undef ENABLE_RUNTIME_CHECKING]) -m4trace:configure.ac:541: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_TREE_CHECKING]) -m4trace:configure.ac:541: -1- AH_OUTPUT([ENABLE_TREE_CHECKING], [/* Define if you want all operations on trees (the basic data structure of the - front ends) to be checked for dynamic type safety at runtime. This is - moderately expensive. The tree browser debugging routines will also be - enabled by this option. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_TREE_CHECKING -#endif -]) -m4trace:configure.ac:544: -1- AC_SUBST([TREEBROWSER]) -m4trace:configure.ac:549: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_RTL_CHECKING]) -m4trace:configure.ac:549: -1- AH_OUTPUT([ENABLE_RTL_CHECKING], [/* Define if you want all operations on RTL (the basic data structure of the - optimizer and back end) to be checked for dynamic type safety at runtime. - This is quite expensive. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_RTL_CHECKING -#endif -]) -m4trace:configure.ac:555: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_RTL_FLAG_CHECKING]) -m4trace:configure.ac:555: -1- AH_OUTPUT([ENABLE_RTL_FLAG_CHECKING], [/* Define if you want RTL flag accesses to be checked against the RTL codes - that are supported for each access macro. This is relatively cheap. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_RTL_FLAG_CHECKING -#endif -]) -m4trace:configure.ac:560: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_GC_CHECKING]) -m4trace:configure.ac:560: -1- AH_OUTPUT([ENABLE_GC_CHECKING], [/* Define if you want the garbage collector to do object poisoning and other - memory allocation checks. This is quite expensive. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_GC_CHECKING -#endif -]) -m4trace:configure.ac:566: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_GC_ALWAYS_COLLECT]) -m4trace:configure.ac:566: -1- AH_OUTPUT([ENABLE_GC_ALWAYS_COLLECT], [/* Define if you want the garbage collector to operate in maximally paranoid - mode, validating the entire heap and collecting garbage at every - opportunity. This is extremely expensive. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_GC_ALWAYS_COLLECT -#endif -]) -m4trace:configure.ac:571: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_FOLD_CHECKING]) -m4trace:configure.ac:571: -1- AH_OUTPUT([ENABLE_FOLD_CHECKING], [/* Define if you want fold checked that it never destructs its argument. This - is quite expensive. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_FOLD_CHECKING -#endif -]) -m4trace:configure.ac:603: -1- AC_SUBST([valgrind_path]) -m4trace:configure.ac:614: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_VALGRIND_CHECKING]) -m4trace:configure.ac:614: -1- AH_OUTPUT([ENABLE_VALGRIND_CHECKING], [/* Define if you want to run subprograms and generated programs through - valgrind (a memory checker). This is extremely expensive. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_VALGRIND_CHECKING -#endif -]) -m4trace:configure.ac:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VALGRIND_MEMCHECK_H]) -m4trace:configure.ac:617: -1- AH_OUTPUT([HAVE_VALGRIND_MEMCHECK_H], [/* Define if valgrind\'s valgrind/memcheck.h header is installed. */ -#ifndef USED_FOR_TARGET -#undef HAVE_VALGRIND_MEMCHECK_H -#endif -]) -m4trace:configure.ac:621: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMCHECK_H]) -m4trace:configure.ac:621: -1- AH_OUTPUT([HAVE_MEMCHECK_H], [/* Define if valgrind\'s memcheck.h header is installed. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MEMCHECK_H -#endif -]) -m4trace:configure.ac:624: -1- AC_SUBST([valgrind_path_defines]) -m4trace:configure.ac:625: -1- AC_SUBST([valgrind_command]) -m4trace:configure.ac:633: -1- AC_DEFINE_TRACE_LITERAL([USE_MAPPED_LOCATION]) -m4trace:configure.ac:633: -1- AH_OUTPUT([USE_MAPPED_LOCATION], [/* Define if location_t is fileline integer cookie. */ -#ifndef USED_FOR_TARGET -#undef USE_MAPPED_LOCATION -#endif -]) -m4trace:configure.ac:660: -1- AC_SUBST([coverage_flags]) -m4trace:configure.ac:667: -1- AC_DEFINE_TRACE_LITERAL([GATHER_STATISTICS]) -m4trace:configure.ac:667: -1- AH_OUTPUT([GATHER_STATISTICS], [/* Define to enable detailed memory allocation stats gathering. */ -#ifndef USED_FOR_TARGET -#undef GATHER_STATISTICS -#endif -]) -m4trace:configure.ac:684: -1- AC_SUBST([enable_multilib]) -m4trace:configure.ac:708: -1- AC_SUBST([enable_decimal_float]) -m4trace:configure.ac:712: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_DECIMAL_FLOAT]) -m4trace:configure.ac:712: -1- AH_OUTPUT([ENABLE_DECIMAL_FLOAT], [/* Define to 1 to enable decimal float extension to C. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_DECIMAL_FLOAT -#endif -]) -m4trace:configure.ac:765: -1- AC_SUBST([enable_shared]) -m4trace:configure.ac:803: -1- AC_SUBST([TARGET_SYSTEM_ROOT]) -m4trace:configure.ac:804: -1- AC_SUBST([TARGET_SYSTEM_ROOT_DEFINE]) -m4trace:configure.ac:805: -1- AC_SUBST([CROSS_SYSTEM_HEADER_DIR]) -m4trace:configure.ac:815: -1- AC_SUBST([onestep]) -m4trace:configure.ac:822: -1- AC_SUBST([DSYMUTIL]) -m4trace:configure.ac:827: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DSYMUTIL]) -m4trace:configure.ac:827: -1- AH_OUTPUT([HAVE_DSYMUTIL], [/* dsymutil is available */ -#ifndef USED_FOR_TARGET -#undef HAVE_DSYMUTIL -#endif -]) -m4trace:configure.ac:832: -1- AC_SUBST([DSYMUTIL]) -m4trace:configure.ac:837: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DSYMUTIL]) -m4trace:configure.ac:837: -1- AH_OUTPUT([HAVE_DSYMUTIL], [/* dsymutil is available */ -#ifndef USED_FOR_TARGET -#undef HAVE_DSYMUTIL -#endif -]) -m4trace:configure.ac:903: -1- AC_SUBST([LLVMBASEPATH]) -m4trace:configure.ac:905: -1- AC_SUBST([LLVMBUILDMODE]) -m4trace:configure.ac:931: -1- AC_SUBST([datarootdir]) -m4trace:configure.ac:932: -1- AC_SUBST([docdir]) -m4trace:configure.ac:933: -1- AC_SUBST([htmldir]) -m4trace:configure.ac:939: -1- AC_PROG_MAKE_SET -m4trace:configure.ac:939: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.ac:942: -1- AC_PROG_AWK -m4trace:configure.ac:942: -1- AC_SUBST([AWK]) -m4trace:configure.ac:949: -1- AC_SUBST([LN_S]) -m4trace:configure.ac:950: -1- AC_SUBST([LN]) -m4trace:configure.ac:951: -1- AC_PROG_RANLIB -m4trace:configure.ac:951: -1- AC_SUBST([RANLIB]) -m4trace:configure.ac:951: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.ac:963: -1- AC_SUBST([ranlib_flags]) -m4trace:configure.ac:965: -1- AC_SUBST([INSTALL]) -m4trace:configure.ac:965: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.ac:965: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.ac:968: -1- AC_CHECK_HEADERS([mach/mach_time.h]) -m4trace:configure.ac:968: -1- AH_OUTPUT([HAVE_MACH_MACH_TIME_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MACH_MACH_TIME_H -#endif -]) -m4trace:configure.ac:972: -1- AC_SUBST([make_compare_target]) -m4trace:configure.ac:975: -1- AC_SUBST([have_mktemp_command]) -m4trace:configure.ac:983: -1- AC_SUBST([MAKEINFO]) -m4trace:configure.ac:993: -1- AC_SUBST([BUILD_INFO]) -m4trace:configure.ac:1004: -1- AC_SUBST([GENERATED_MANPAGES]) -m4trace:configure.ac:1009: -1- AC_SUBST([FLEX]) -m4trace:configure.ac:1012: -1- AC_SUBST([BISON]) -m4trace:configure.ac:1022: -1- AC_SUBST([NM]) -m4trace:configure.ac:1030: -1- AC_SUBST([AR]) -m4trace:configure.ac:1049: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.ac:1049: -1- AH_OUTPUT([_GNU_SOURCE], [/* Always define this when using the GNU C Library */ -#ifndef USED_FOR_TARGET -#undef _GNU_SOURCE -#endif -]) -m4trace:configure.ac:1056: -1- AC_HEADER_STDC -m4trace:configure.ac:1056: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.ac:1056: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -#ifndef USED_FOR_TARGET -#undef STDC_HEADERS -#endif -]) -m4trace:configure.ac:1057: -1- AC_HEADER_TIME -m4trace:configure.ac:1057: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.ac:1057: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -#ifndef USED_FOR_TARGET -#undef TIME_WITH_SYS_TIME -#endif -]) -m4trace:configure.ac:1058: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -../config/acx.m4:407: ACX_HEADER_STRING is expanded from... -configure.ac:1058: the top level]) -m4trace:configure.ac:1058: -1- AC_DEFINE_TRACE_LITERAL([STRING_WITH_STRINGS]) -m4trace:configure.ac:1058: -1- AH_OUTPUT([STRING_WITH_STRINGS], [/* Define if you can safely include both and . */ -#ifndef USED_FOR_TARGET -#undef STRING_WITH_STRINGS -#endif -]) -m4trace:configure.ac:1059: -1- AC_HEADER_SYS_WAIT -m4trace:configure.ac:1059: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_WAIT_H]) -m4trace:configure.ac:1059: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have that is POSIX.1 compatible. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_WAIT_H -#endif -]) -m4trace:configure.ac:1063: -1- AC_CHECK_HEADERS([limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \ - fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \ - sys/resource.h sys/param.h sys/times.h sys/stat.h \ - direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LIMITS_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STDDEF_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRING_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRINGS_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STDLIB_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_TIME_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_TIME_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_ICONV_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_ICONV_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FCNTL_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_UNISTD_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_FILE_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_TIME_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_MMAN_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_MMAN_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_RESOURCE_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_PARAM_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_TIMES_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYS_STAT_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_DIRECT_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DIRECT_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MALLOC_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LANGINFO_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_LDFCN_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LDFCN_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LOCALE_H -#endif -]) -m4trace:configure.ac:1063: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_WCHAR_H -#endif -]) -m4trace:configure.ac:1070: -1- AC_DEFINE_TRACE_LITERAL([CHAR_BIT]) -m4trace:configure.ac:1070: -1- AH_OUTPUT([CHAR_BIT], [/* Define as the number of bits in a byte, if \\`limits.h\' doesn\'t. */ -#ifndef USED_FOR_TARGET -#undef CHAR_BIT -#endif -]) -m4trace:configure.ac:1071: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.ac:1071: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -#ifndef USED_FOR_TARGET -#undef WORDS_BIGENDIAN -#endif -]) -m4trace:configure.ac:1089: -1- AC_SUBST([stage1_cflags]) -m4trace:configure.ac:1109: -1- AC_SUBST([COLLECT2_LIBS]) -m4trace:configure.ac:1118: -1- AC_SUBST([GNAT_LIBEXC]) -m4trace:configure.ac:1127: -1- AC_SUBST([LDEXP_LIB]) -m4trace:configure.ac:1142: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.ac:1142: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if you have a working header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_INTTYPES_H -#endif -]) -m4trace:configure.ac:1156: -1- AC_CHECK_FUNCS([times clock kill getrlimit setrlimit atoll atoq \ - sysconf strsignal getrusage nl_langinfo scandir alphasort \ - gettimeofday mbstowcs wcswidth mmap mincore setlocale \ - clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_TIMES -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_CLOCK], [/* Define to 1 if you have the `clock\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_CLOCK -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_KILL -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETRLIMIT -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_SETRLIMIT], [/* Define to 1 if you have the `setrlimit\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SETRLIMIT -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_ATOLL], [/* Define to 1 if you have the `atoll\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_ATOLL -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_ATOQ], [/* Define to 1 if you have the `atoq\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_ATOQ -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SYSCONF -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_STRSIGNAL], [/* Define to 1 if you have the `strsignal\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRSIGNAL -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETRUSAGE -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_NL_LANGINFO], [/* Define to 1 if you have the `nl_langinfo\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_NL_LANGINFO -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_SCANDIR], [/* Define to 1 if you have the `scandir\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SCANDIR -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_ALPHASORT], [/* Define to 1 if you have the `alphasort\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_ALPHASORT -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETTIMEOFDAY -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_MBSTOWCS], [/* Define to 1 if you have the `mbstowcs\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MBSTOWCS -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_WCSWIDTH], [/* Define to 1 if you have the `wcswidth\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_WCSWIDTH -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have the `mmap\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MMAP -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_MINCORE], [/* Define to 1 if you have the `mincore\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MINCORE -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_SETLOCALE -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_CLEARERR_UNLOCKED], [/* Define to 1 if you have the `clearerr_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_CLEARERR_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FEOF_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FERROR_UNLOCKED], [/* Define to 1 if you have the `ferror_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FERROR_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FFLUSH_UNLOCKED], [/* Define to 1 if you have the `fflush_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FFLUSH_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FGETC_UNLOCKED], [/* Define to 1 if you have the `fgetc_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FGETC_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FGETS_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FILENO_UNLOCKED], [/* Define to 1 if you have the `fileno_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FILENO_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FPRINTF_UNLOCKED], [/* Define to 1 if you have the `fprintf_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FPRINTF_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FPUTC_UNLOCKED], [/* Define to 1 if you have the `fputc_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FPUTC_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FPUTS_UNLOCKED], [/* Define to 1 if you have the `fputs_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FPUTS_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FREAD_UNLOCKED], [/* Define to 1 if you have the `fread_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FREAD_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_FWRITE_UNLOCKED], [/* Define to 1 if you have the `fwrite_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FWRITE_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_GETCHAR_UNLOCKED], [/* Define to 1 if you have the `getchar_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETCHAR_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETC_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_PUTCHAR_UNLOCKED], [/* Define to 1 if you have the `putchar_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_PUTCHAR_UNLOCKED -#endif -]) -m4trace:configure.ac:1156: -1- AH_OUTPUT([HAVE_PUTC_UNLOCKED], [/* Define to 1 if you have the `putc_unlocked\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_PUTC_UNLOCKED -#endif -]) -m4trace:configure.ac:1172: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_MBSTOWCS]) -m4trace:configure.ac:1172: -1- AH_OUTPUT([HAVE_WORKING_MBSTOWCS], [/* Define this macro if mbstowcs does not crash when its first argument is - NULL. */ -#ifndef USED_FOR_TARGET -#undef HAVE_WORKING_MBSTOWCS -#endif -]) -m4trace:configure.ac:1176: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.ac:1176: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ -#ifndef USED_FOR_TARGET -#undef ssize_t -#endif -]) -m4trace:configure.ac:1180: -1- AC_TYPE_UID_T -m4trace:configure.ac:1180: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.ac:1180: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if doesn\'t define. */ -#ifndef USED_FOR_TARGET -#undef uid_t -#endif -]) -m4trace:configure.ac:1180: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.ac:1180: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if doesn\'t define. */ -#ifndef USED_FOR_TARGET -#undef gid_t -#endif -]) -m4trace:configure.ac:1180: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.ac:1180: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually - this is either `int\' or `gid_t\'. */ -#ifndef USED_FOR_TARGET -#undef GETGROUPS_T -#endif -]) -m4trace:configure.ac:1196: -1- AC_SUBST([TARGET_GETGROUPS_T]) -m4trace:configure.ac:1198: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP_FILE]) -m4trace:configure.ac:1198: -1- AH_OUTPUT([HAVE_MMAP_FILE], [/* Define if read-only mmap of a plain file works. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MMAP_FILE -#endif -]) -m4trace:configure.ac:1198: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP_DEV_ZERO]) -m4trace:configure.ac:1198: -1- AH_OUTPUT([HAVE_MMAP_DEV_ZERO], [/* Define if mmap of /dev/zero works. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MMAP_DEV_ZERO -#endif -]) -m4trace:configure.ac:1198: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP_ANON]) -m4trace:configure.ac:1198: -1- AH_OUTPUT([HAVE_MMAP_ANON], [/* Define if mmap with MAP_ANON(YMOUS) works. */ -#ifndef USED_FOR_TARGET -#undef HAVE_MMAP_ANON -#endif -]) -m4trace:configure.ac:1208: -1- AC_FUNC_FORK -m4trace:configure.ac:1208: -1- AC_TYPE_PID_T -m4trace:configure.ac:1208: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ -#ifndef USED_FOR_TARGET -#undef pid_t -#endif -]) -m4trace:configure.ac:1208: -1- AC_CHECK_HEADERS([unistd.h vfork.h]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_UNISTD_H -#endif -]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_VFORK_H], [/* Define to 1 if you have the header file. */ -#ifndef USED_FOR_TARGET -#undef HAVE_VFORK_H -#endif -]) -m4trace:configure.ac:1208: -1- AC_CHECK_FUNCS([fork vfork]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_FORK], [/* Define to 1 if you have the `fork\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_FORK -#endif -]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_VFORK], [/* Define to 1 if you have the `vfork\' function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_VFORK -#endif -]) -m4trace:configure.ac:1208: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_VFORK]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_WORKING_VFORK], [/* Define to 1 if `vfork\' works. */ -#ifndef USED_FOR_TARGET -#undef HAVE_WORKING_VFORK -#endif -]) -m4trace:configure.ac:1208: -1- AC_DEFINE_TRACE_LITERAL([vfork]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([vfork], [/* Define as `fork\' if `vfork\' does not work. */ -#ifndef USED_FOR_TARGET -#undef vfork -#endif -]) -m4trace:configure.ac:1208: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_FORK]) -m4trace:configure.ac:1208: -1- AH_OUTPUT([HAVE_WORKING_FORK], [/* Define to 1 if `fork\' works. */ -#ifndef USED_FOR_TARGET -#undef HAVE_WORKING_FORK -#endif -]) -m4trace:configure.ac:1210: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -../config/iconv.m4:75: AM_ICONV_LINK is expanded from... -../config/iconv.m4:103: AM_ICONV is expanded from... -configure.ac:1210: the top level]) -m4trace:configure.ac:1210: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -../config/iconv.m4:75: AM_ICONV_LINK is expanded from... -../config/iconv.m4:103: AM_ICONV is expanded from... -configure.ac:1210: the top level]) -m4trace:configure.ac:1210: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.ac:1210: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ -#ifndef USED_FOR_TARGET -#undef HAVE_ICONV -#endif -]) -m4trace:configure.ac:1210: -1- AC_SUBST([LIBICONV]) -m4trace:configure.ac:1210: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.ac:1210: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -../config/iconv.m4:103: AM_ICONV is expanded from... -configure.ac:1210: the top level]) -m4trace:configure.ac:1210: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.ac:1210: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ -#ifndef USED_FOR_TARGET -#undef ICONV_CONST -#endif -]) -m4trace:configure.ac:1213: -1- AC_SUBST([LIBICONV_DEP]) -m4trace:configure.ac:1215: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -../config/lcmessage.m4:32: AM_LC_MESSAGES is expanded from... -configure.ac:1215: the top level]) -m4trace:configure.ac:1215: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.ac:1215: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your file defines LC_MESSAGES. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LC_MESSAGES -#endif -]) -m4trace:configure.ac:1217: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -../config/codeset.m4:23: AM_LANGINFO_CODESET is expanded from... -configure.ac:1217: the top level]) -m4trace:configure.ac:1217: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.ac:1217: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have and nl_langinfo(CODESET). */ -#ifndef USED_FOR_TARGET -#undef HAVE_LANGINFO_CODESET -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETENV], [/* Define to 1 if we found a declaration for \'getenv\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETENV -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_ATOL], [/* Define to 1 if we found a declaration for \'atol\', otherwise define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_ATOL -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_ASPRINTF], [/* Define to 1 if we found a declaration for \'asprintf\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_ASPRINTF -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if we found a declaration for \'sbrk\', otherwise define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_SBRK -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_ABORT], [/* Define to 1 if we found a declaration for \'abort\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_ABORT -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_ATOF], [/* Define to 1 if we found a declaration for \'atof\', otherwise define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_ATOF -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETCWD], [/* Define to 1 if we found a declaration for \'getcwd\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETCWD -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETWD], [/* Define to 1 if we found a declaration for \'getwd\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETWD -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if we found a declaration for \'strsignal\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_STRSIGNAL -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_STRSTR], [/* Define to 1 if we found a declaration for \'strstr\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_STRSTR -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_STRVERSCMP], [/* Define to 1 if we found a declaration for \'strverscmp\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_STRVERSCMP -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_ERRNO], [/* Define to 1 if we found a declaration for \'errno\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_ERRNO -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_SNPRINTF], [/* Define to 1 if we found a declaration for \'snprintf\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_SNPRINTF -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_VSNPRINTF], [/* Define to 1 if we found a declaration for \'vsnprintf\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_VSNPRINTF -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_VASPRINTF], [/* Define to 1 if we found a declaration for \'vasprintf\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_VASPRINTF -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_MALLOC], [/* Define to 1 if we found a declaration for \'malloc\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_MALLOC -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_REALLOC], [/* Define to 1 if we found a declaration for \'realloc\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_REALLOC -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_CALLOC], [/* Define to 1 if we found a declaration for \'calloc\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_CALLOC -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FREE], [/* Define to 1 if we found a declaration for \'free\', otherwise define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FREE -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_BASENAME], [/* Define to 1 if we found a declaration for \'basename\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_BASENAME -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETOPT], [/* Define to 1 if we found a declaration for \'getopt\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETOPT -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_CLOCK], [/* Define to 1 if we found a declaration for \'clock\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_CLOCK -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETPAGESIZE], [/* Define to 1 if we found a declaration for \'getpagesize\', otherwise define - to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETPAGESIZE -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_CLEARERR_UNLOCKED], [/* Define to 1 if we found a declaration for \'clearerr_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_CLEARERR_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FEOF_UNLOCKED], [/* Define to 1 if we found a declaration for \'feof_unlocked\', otherwise define - to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FEOF_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FERROR_UNLOCKED], [/* Define to 1 if we found a declaration for \'ferror_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FERROR_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FFLUSH_UNLOCKED], [/* Define to 1 if we found a declaration for \'fflush_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FFLUSH_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FGETC_UNLOCKED], [/* Define to 1 if we found a declaration for \'fgetc_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FGETC_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FGETS_UNLOCKED], [/* Define to 1 if we found a declaration for \'fgets_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FGETS_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FILENO_UNLOCKED], [/* Define to 1 if we found a declaration for \'fileno_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FILENO_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FPRINTF_UNLOCKED], [/* Define to 1 if we found a declaration for \'fprintf_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FPRINTF_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FPUTC_UNLOCKED], [/* Define to 1 if we found a declaration for \'fputc_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FPUTC_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FPUTS_UNLOCKED], [/* Define to 1 if we found a declaration for \'fputs_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FPUTS_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FREAD_UNLOCKED], [/* Define to 1 if we found a declaration for \'fread_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FREAD_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_FWRITE_UNLOCKED], [/* Define to 1 if we found a declaration for \'fwrite_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_FWRITE_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETCHAR_UNLOCKED], [/* Define to 1 if we found a declaration for \'getchar_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETCHAR_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_GETC_UNLOCKED], [/* Define to 1 if we found a declaration for \'getc_unlocked\', otherwise define - to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETC_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_PUTCHAR_UNLOCKED], [/* Define to 1 if we found a declaration for \'putchar_unlocked\', otherwise - define to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_PUTCHAR_UNLOCKED -#endif -]) -m4trace:configure.ac:1227: -1- AH_OUTPUT([HAVE_DECL_PUTC_UNLOCKED], [/* Define to 1 if we found a declaration for \'putc_unlocked\', otherwise define - to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_PUTC_UNLOCKED -#endif -]) -m4trace:configure.ac:1235: -1- AH_OUTPUT([HAVE_DECL_GETRLIMIT], [/* Define to 1 if we found a declaration for \'getrlimit\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETRLIMIT -#endif -]) -m4trace:configure.ac:1235: -1- AH_OUTPUT([HAVE_DECL_SETRLIMIT], [/* Define to 1 if we found a declaration for \'setrlimit\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_SETRLIMIT -#endif -]) -m4trace:configure.ac:1235: -1- AH_OUTPUT([HAVE_DECL_GETRUSAGE], [/* Define to 1 if we found a declaration for \'getrusage\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_GETRUSAGE -#endif -]) -m4trace:configure.ac:1244: -1- AC_DEFINE_TRACE_LITERAL([rlim_t]) -m4trace:configure.ac:1244: -1- AH_OUTPUT([rlim_t], [/* Define to \\`long\' if doesn\'t define. */ -#ifndef USED_FOR_TARGET -#undef rlim_t -#endif -]) -m4trace:configure.ac:1258: -1- AH_OUTPUT([HAVE_DECL_LDGETNAME], [/* Define to 1 if we found a declaration for \'ldgetname\', otherwise define to - 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_LDGETNAME -#endif -]) -m4trace:configure.ac:1266: -1- AH_OUTPUT([HAVE_DECL_TIMES], [/* Define to 1 if we found a declaration for \'times\', otherwise define to 0. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_TIMES -#endif -]) -m4trace:configure.ac:1272: -1- AH_OUTPUT([HAVE_DECL_SIGALTSTACK], [/* Define to 1 if we found a declaration for \'sigaltstack\', otherwise define - to 0. */ -#ifndef USED_FOR_TARGET -#undef HAVE_DECL_SIGALTSTACK -#endif -]) -m4trace:configure.ac:1285: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TMS]) -m4trace:configure.ac:1285: -1- AH_OUTPUT([HAVE_STRUCT_TMS], [/* Define if defines struct tms. */ -#ifndef USED_FOR_TARGET -#undef HAVE_STRUCT_TMS -#endif -]) -m4trace:configure.ac:1297: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOCK_T]) -m4trace:configure.ac:1297: -1- AH_OUTPUT([HAVE_CLOCK_T], [/* Define if defines clock_t. */ -#ifndef USED_FOR_TARGET -#undef HAVE_CLOCK_T -#endif -]) -m4trace:configure.ac:1303: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INITFINI_ARRAY]) -m4trace:configure.ac:1303: -1- AH_OUTPUT([HAVE_INITFINI_ARRAY], [/* Define .init_array/.fini_array sections are available and working. */ -#ifndef USED_FOR_TARGET -#undef HAVE_INITFINI_ARRAY -#endif -]) -m4trace:configure.ac:1306: -1- AC_DEFINE_TRACE_LITERAL([MKDIR_TAKES_ONE_ARG]) -m4trace:configure.ac:1306: -1- AH_OUTPUT([MKDIR_TAKES_ONE_ARG], [/* Define if host mkdir takes a single argument. */ -#ifndef USED_FOR_TARGET -#undef MKDIR_TAKES_ONE_ARG -#endif -]) -m4trace:configure.ac:1311: -1- AC_SUBST([manext]) -m4trace:configure.ac:1312: -1- AC_SUBST([objext]) -m4trace:configure.ac:1320: -1- AC_DEFINE_TRACE_LITERAL([CONFIG_SJLJ_EXCEPTIONS]) -m4trace:configure.ac:1320: -1- AH_OUTPUT([CONFIG_SJLJ_EXCEPTIONS], [/* Define 0/1 to force the choice for exception handling model. */ -#ifndef USED_FOR_TARGET -#undef CONFIG_SJLJ_EXCEPTIONS -#endif -]) -m4trace:configure.ac:1330: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETIPINFO]) -m4trace:configure.ac:1330: -1- AH_OUTPUT([HAVE_GETIPINFO], [/* Define to 1 if system unwind library has _Unwind_GetIPInfo. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GETIPINFO -#endif -]) -m4trace:configure.ac:1423: -1- AC_DEFINE_TRACE_LITERAL([NEED_64BIT_HOST_WIDE_INT]) -m4trace:configure.ac:1423: -1- AH_OUTPUT([NEED_64BIT_HOST_WIDE_INT], [/* Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h). */ -#ifndef USED_FOR_TARGET -#undef NEED_64BIT_HOST_WIDE_INT -#endif -]) -m4trace:configure.ac:1429: -1- AC_DEFINE_TRACE_LITERAL([USE_LONG_LONG_FOR_WIDEST_FAST_INT]) -m4trace:configure.ac:1429: -1- AH_OUTPUT([USE_LONG_LONG_FOR_WIDEST_FAST_INT], [/* Define to 1 if the \'long long\' (or \'__int64\') is wider than \'long\' but - still efficiently supported by the host hardware. */ -#ifndef USED_FOR_TARGET -#undef USE_LONG_LONG_FOR_WIDEST_FAST_INT -#endif -]) -m4trace:configure.ac:1477: -1- AC_DEFINE_TRACE_LITERAL([HAS_MCONTEXT_T_UNDERSCORES]) -m4trace:configure.ac:1477: -1- AH_OUTPUT([HAS_MCONTEXT_T_UNDERSCORES], [/* mcontext_t fields start with __ */ -#ifndef USED_FOR_TARGET -#undef HAS_MCONTEXT_T_UNDERSCORES -#endif -]) -m4trace:configure.ac:1519: -1- AC_SUBST([gthread_flags]) -m4trace:configure.ac:1541: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_USE_CXA_ATEXIT]) -m4trace:configure.ac:1541: -1- AH_OUTPUT([DEFAULT_USE_CXA_ATEXIT], [/* Define if you want to use __cxa_atexit, rather than atexit, to register C++ - destructors for local statics and global objects. This is essential for - fully standards-compliant handling of destructors, but requires - __cxa_atexit in libc. */ -#ifndef USED_FOR_TARGET -#undef DEFAULT_USE_CXA_ATEXIT -#endif -]) -m4trace:configure.ac:1554: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETIPINFO]) -m4trace:configure.ac:1554: -1- AH_OUTPUT([HAVE_GETIPINFO], [/* Define to 1 if system unwind library has _Unwind_GetIPInfo. */ -#undef HAVE_GETIPINFO]) -m4trace:configure.ac:1562: -1- AC_SUBST([extra_modes_file]) -m4trace:configure.ac:1565: -1- AC_DEFINE_TRACE_LITERAL([EXTRA_MODES_FILE]) -m4trace:configure.ac:1565: -1- AH_OUTPUT([EXTRA_MODES_FILE], [/* Define to the name of a file containing a list of extra machine modes for - this architecture. */ -#ifndef USED_FOR_TARGET -#undef EXTRA_MODES_FILE -#endif -]) -m4trace:configure.ac:1573: -1- AC_SUBST([extra_opt_files]) -m4trace:configure.ac:1610: -1- AC_SUBST([build_subdir]) -m4trace:configure.ac:1654: -1- AC_SUBST([USE_NLS]) -m4trace:configure.ac:1654: -1- AC_SUBST([LIBINTL]) -m4trace:configure.ac:1654: -1- AC_SUBST([LIBINTL_DEP]) -m4trace:configure.ac:1654: -1- AC_SUBST([INCINTL]) -m4trace:configure.ac:1654: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.ac:1654: -1- AC_SUBST([GMSGFMT]) -m4trace:configure.ac:1654: -1- AC_SUBST([POSUB]) -m4trace:configure.ac:1654: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.ac:1654: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native - language is requested. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_NLS -#endif -]) -m4trace:configure.ac:1654: -1- AC_SUBST([CATALOGS]) -m4trace:configure.ac:1654: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.ac:1654: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.ac:1654: -1- AC_SUBST([GENCAT]) -m4trace:configure.ac:1654: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.ac:1685: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_WIN32_REGISTRY]) -m4trace:configure.ac:1685: -1- AH_OUTPUT([ENABLE_WIN32_REGISTRY], [/* Define to 1 if installation paths should be looked up in the Windows - Registry. Ignored on non-Windows hosts. */ -#ifndef USED_FOR_TARGET -#undef ENABLE_WIN32_REGISTRY -#endif -]) -m4trace:configure.ac:1693: -1- AC_DEFINE_TRACE_LITERAL([WIN32_REGISTRY_KEY]) -m4trace:configure.ac:1693: -1- AH_OUTPUT([WIN32_REGISTRY_KEY], [/* Define to be the last component of the Windows registry key under which to - look for installation paths. The full key used will be - HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}. - The default is the GCC version number. */ -#ifndef USED_FOR_TARGET -#undef WIN32_REGISTRY_KEY -#endif -]) -m4trace:configure.ac:1747: -1- AC_SUBST([host_cc_for_libada]) -m4trace:configure.ac:1843: -1- AC_SUBST([CROSS]) -m4trace:configure.ac:1844: -1- AC_SUBST([ALL]) -m4trace:configure.ac:1845: -1- AC_SUBST([SYSTEM_HEADER_DIR]) -m4trace:configure.ac:1901: -1- AC_SUBST([inhibit_libc]) -m4trace:configure.ac:1908: -1- AC_SUBST([CC_FOR_BUILD]) -m4trace:configure.ac:1909: -1- AC_SUBST([BUILD_CFLAGS]) -m4trace:configure.ac:1910: -1- AC_SUBST([STMP_FIXINC]) -m4trace:configure.ac:1921: -1- AC_SUBST([STMP_FIXPROTO]) -m4trace:configure.ac:1948: -1- AC_SUBST([collect2]) -m4trace:configure.ac:1980: -1- m4_pattern_allow([AS_FOR_TARGET]) -m4trace:configure.ac:1995: -1- AC_SUBST([gcc_cv_as], [$ac_cv_path_gcc_cv_as]) -m4trace:configure.ac:1998: -1- AC_SUBST([ORIGINAL_AS_FOR_TARGET]) -m4trace:configure.ac:2046: -1- AC_SUBST([gcc_cv_ld], [$ac_cv_path_gcc_cv_ld]) -m4trace:configure.ac:2049: -1- AC_SUBST([ORIGINAL_LD_FOR_TARGET]) -m4trace:configure.ac:2093: -1- AC_SUBST([gcc_cv_nm], [$ac_cv_path_gcc_cv_nm]) -m4trace:configure.ac:2106: -1- AC_SUBST([ORIGINAL_NM_FOR_TARGET]) -m4trace:configure.ac:2121: -1- AC_SUBST([gcc_cv_objdump], [$ac_cv_path_gcc_cv_objdump]) -m4trace:configure.ac:2139: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_BALIGN_AND_P2ALIGN]) -m4trace:configure.ac:2139: -1- AH_OUTPUT([HAVE_GAS_BALIGN_AND_P2ALIGN], [/* Define if your assembler supports .balign and .p2align. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_BALIGN_AND_P2ALIGN -#endif -]) -m4trace:configure.ac:2146: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_MAX_SKIP_P2ALIGN]) -m4trace:configure.ac:2146: -1- AH_OUTPUT([HAVE_GAS_MAX_SKIP_P2ALIGN], [/* Define if your assembler supports specifying the maximum number of bytes to - skip when using the GAS .p2align command. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_MAX_SKIP_P2ALIGN -#endif -]) -m4trace:configure.ac:2153: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_LITERAL16]) -m4trace:configure.ac:2153: -1- AH_OUTPUT([HAVE_GAS_LITERAL16], [/* Define if your assembler supports .literal16. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_LITERAL16 -#endif -]) -m4trace:configure.ac:2173: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_SUBSECTION_ORDERING]) -m4trace:configure.ac:2173: -1- AH_OUTPUT([HAVE_GAS_SUBSECTION_ORDERING], [/* Define if your assembler supports .subsection and .subsection -1 starts - emitting at the beginning of your section. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_SUBSECTION_ORDERING -#endif -]) -m4trace:configure.ac:2178: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_WEAK]) -m4trace:configure.ac:2178: -1- AH_OUTPUT([HAVE_GAS_WEAK], [/* Define if your assembler supports .weak. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_WEAK -#endif -]) -m4trace:configure.ac:2183: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_WEAKREF]) -m4trace:configure.ac:2183: -1- AH_OUTPUT([HAVE_GAS_WEAKREF], [/* Define if your assembler supports .weakref. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_WEAKREF -#endif -]) -m4trace:configure.ac:2189: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_NSUBSPA_COMDAT]) -m4trace:configure.ac:2189: -1- AH_OUTPUT([HAVE_GAS_NSUBSPA_COMDAT], [/* Define if your assembler supports .nsubspa comdat option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_NSUBSPA_COMDAT -#endif -]) -m4trace:configure.ac:2258: -1- AC_SUBST([libgcc_visibility]) -m4trace:configure.ac:2263: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_HIDDEN]) -m4trace:configure.ac:2263: -1- AH_OUTPUT([HAVE_GAS_HIDDEN], [/* Define if your assembler and linker support .hidden. */ -#undef HAVE_GAS_HIDDEN]) -m4trace:configure.ac:2293: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_LEB128]) -m4trace:configure.ac:2293: -1- AH_OUTPUT([HAVE_AS_LEB128], [/* Define if your assembler supports .sleb128 and .uleb128. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_LEB128 -#endif -]) -m4trace:configure.ac:2363: -1- AC_DEFINE_TRACE_LITERAL([USE_AS_TRADITIONAL_FORMAT]) -m4trace:configure.ac:2363: -1- AH_OUTPUT([USE_AS_TRADITIONAL_FORMAT], [/* Define if your assembler mis-optimizes .eh_frame data. */ -#ifndef USED_FOR_TARGET -#undef USE_AS_TRADITIONAL_FORMAT -#endif -]) -m4trace:configure.ac:2376: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_SHF_MERGE]) -m4trace:configure.ac:2376: -1- AH_OUTPUT([HAVE_GAS_SHF_MERGE], [/* Define 0/1 if your assembler supports marking sections with SHF_MERGE flag. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_SHF_MERGE -#endif -]) -m4trace:configure.ac:2410: -1- AC_DEFINE_TRACE_LITERAL([HAVE_COMDAT_GROUP]) -m4trace:configure.ac:2410: -1- AH_OUTPUT([HAVE_COMDAT_GROUP], [/* Define 0/1 if your assembler and linker support COMDAT groups. */ -#ifndef USED_FOR_TARGET -#undef HAVE_COMDAT_GROUP -#endif -]) -m4trace:configure.ac:2761: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_TLS]) -m4trace:configure.ac:2761: -1- AH_OUTPUT([HAVE_AS_TLS], [/* Define if your assembler supports thread-local storage. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_TLS -#endif -]) -m4trace:configure.ac:2781: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_STATIC_DYNAMIC]) -m4trace:configure.ac:2781: -1- AH_OUTPUT([HAVE_LD_STATIC_DYNAMIC], [/* Define if your linker supports -Bstatic/-Bdynamic option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_STATIC_DYNAMIC -#endif -]) -m4trace:configure.ac:2800: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_DEMANGLE]) -m4trace:configure.ac:2800: -1- AH_OUTPUT([HAVE_LD_DEMANGLE], [/* Define if your linker supports --demangle option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_DEMANGLE -#endif -]) -m4trace:configure.ac:2824: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_EXPLICIT_RELOCS]) -m4trace:configure.ac:2824: -1- AH_OUTPUT([HAVE_AS_EXPLICIT_RELOCS], [/* Define if your assembler supports explicit relocations. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_EXPLICIT_RELOCS -#endif -]) -m4trace:configure.ac:2832: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_JSRDIRECT_RELOCS]) -m4trace:configure.ac:2832: -1- AH_OUTPUT([HAVE_AS_JSRDIRECT_RELOCS], [/* Define if your assembler supports the lituse_jsrdirect relocation. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_JSRDIRECT_RELOCS -#endif -]) -m4trace:configure.ac:2840: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_NO_MUL_BUG_ABORT_OPTION]) -m4trace:configure.ac:2840: -1- AH_OUTPUT([HAVE_AS_NO_MUL_BUG_ABORT_OPTION], [/* Define if your assembler supports the -no-mul-bug-abort option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_NO_MUL_BUG_ABORT_OPTION -#endif -]) -m4trace:configure.ac:2847: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_REGISTER_PSEUDO_OP]) -m4trace:configure.ac:2847: -1- AH_OUTPUT([HAVE_AS_REGISTER_PSEUDO_OP], [/* Define if your assembler supports .register. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_REGISTER_PSEUDO_OP -#endif -]) -m4trace:configure.ac:2852: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_RELAX_OPTION]) -m4trace:configure.ac:2852: -1- AH_OUTPUT([HAVE_AS_RELAX_OPTION], [/* Define if your assembler supports -relax option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_RELAX_OPTION -#endif -]) -m4trace:configure.ac:2898: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_SPARC_UA_PCREL]) -m4trace:configure.ac:2898: -1- AH_OUTPUT([HAVE_AS_SPARC_UA_PCREL], [/* Define if your assembler and linker support unaligned PC relative relocs. - */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_SPARC_UA_PCREL -#endif -]) -m4trace:configure.ac:2898: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_SPARC_UA_PCREL_HIDDEN]) -m4trace:configure.ac:2898: -1- AH_OUTPUT([HAVE_AS_SPARC_UA_PCREL_HIDDEN], [/* Define if your assembler and linker support unaligned PC relative relocs - against hidden symbols. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_SPARC_UA_PCREL_HIDDEN -#endif -]) -m4trace:configure.ac:2912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_OFFSETABLE_LO10]) -m4trace:configure.ac:2912: -1- AH_OUTPUT([HAVE_AS_OFFSETABLE_LO10], [/* Define if your assembler supports offsetable %lo(). */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_OFFSETABLE_LO10 -#endif -]) -m4trace:configure.ac:2934: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_PE_SECREL32_RELOC]) -m4trace:configure.ac:2934: -1- AH_OUTPUT([HAVE_GAS_PE_SECREL32_RELOC], [/* Define if your assembler and linker support 32-bit section relative relocs - via \'.secrel32 label\'. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_PE_SECREL32_RELOC -#endif -]) -m4trace:configure.ac:2942: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GAS_FILDS_FISTS]) -m4trace:configure.ac:2942: -1- AH_OUTPUT([HAVE_GAS_FILDS_FISTS], [/* Define if your assembler uses the new HImode fild and fist notation. */ -#ifndef USED_FOR_TARGET -#undef HAVE_GAS_FILDS_FISTS -#endif -]) -m4trace:configure.ac:2948: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_IX86_CMOV_SUN_SYNTAX]) -m4trace:configure.ac:2948: -1- AH_OUTPUT([HAVE_AS_IX86_CMOV_SUN_SYNTAX], [/* Define if your assembler supports the Sun syntax for cmov. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_IX86_CMOV_SUN_SYNTAX -#endif -]) -m4trace:configure.ac:2954: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_IX86_FFREEP]) -m4trace:configure.ac:2954: -1- AH_OUTPUT([HAVE_AS_IX86_FFREEP], [/* Define if your assembler supports the ffreep mnemonic. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_IX86_FFREEP -#endif -]) -m4trace:configure.ac:2967: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_GOTOFF_IN_DATA]) -m4trace:configure.ac:2967: -1- AH_OUTPUT([HAVE_AS_GOTOFF_IN_DATA], [/* Define true if the assembler supports \'.long foo at GOTOFF\'. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_GOTOFF_IN_DATA -#endif -]) -m4trace:configure.ac:2978: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_LTOFFX_LDXMOV_RELOCS]) -m4trace:configure.ac:2978: -1- AH_OUTPUT([HAVE_AS_LTOFFX_LDXMOV_RELOCS], [/* Define if your assembler supports ltoffx and ldxmov relocations. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_LTOFFX_LDXMOV_RELOCS -#endif -]) -m4trace:configure.ac:3007: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_MFCRF]) -m4trace:configure.ac:3007: -1- AH_OUTPUT([HAVE_AS_MFCRF], [/* Define if your assembler supports mfcr field. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_MFCRF -#endif -]) -m4trace:configure.ac:3022: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_POPCNTB]) -m4trace:configure.ac:3022: -1- AH_OUTPUT([HAVE_AS_POPCNTB], [/* Define if your assembler supports popcntb field. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_POPCNTB -#endif -]) -m4trace:configure.ac:3037: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_FPRND]) -m4trace:configure.ac:3037: -1- AH_OUTPUT([HAVE_AS_FPRND], [/* Define if your assembler supports fprnd. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_FPRND -#endif -]) -m4trace:configure.ac:3056: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_REL16]) -m4trace:configure.ac:3056: -1- AH_OUTPUT([HAVE_AS_REL16], [/* Define if your assembler supports R_PPC_REL16 relocs. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_REL16 -#endif -]) -m4trace:configure.ac:3133: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_DWARF2_DEBUG_LINE]) -m4trace:configure.ac:3133: -1- AH_OUTPUT([HAVE_AS_DWARF2_DEBUG_LINE], [/* Define if your assembler supports dwarf2 .file/.loc directives, and - preserves file table indices exactly as given. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_DWARF2_DEBUG_LINE -#endif -]) -m4trace:configure.ac:3140: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_GDWARF2_DEBUG_FLAG]) -m4trace:configure.ac:3140: -1- AH_OUTPUT([HAVE_AS_GDWARF2_DEBUG_FLAG], [/* Define if your assembler supports the --gdwarf2 option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_GDWARF2_DEBUG_FLAG -#endif -]) -m4trace:configure.ac:3153: -1- AC_DEFINE_TRACE_LITERAL([HAVE_AS_GSTABS_DEBUG_FLAG]) -m4trace:configure.ac:3153: -1- AH_OUTPUT([HAVE_AS_GSTABS_DEBUG_FLAG], [/* Define if your assembler supports the --gstabs option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_AS_GSTABS_DEBUG_FLAG -#endif -]) -m4trace:configure.ac:3191: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_RO_RW_SECTION_MIXING]) -m4trace:configure.ac:3191: -1- AH_OUTPUT([HAVE_LD_RO_RW_SECTION_MIXING], [/* Define if your linker links a mix of read-only and read-write sections into - a read-write section. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_RO_RW_SECTION_MIXING -#endif -]) -m4trace:configure.ac:3211: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_EH_FRAME_HDR]) -m4trace:configure.ac:3211: -1- AH_OUTPUT([HAVE_LD_EH_FRAME_HDR], [/* Define if your linker supports --eh-frame-hdr option. */ -#undef HAVE_LD_EH_FRAME_HDR]) -m4trace:configure.ac:3230: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_PIE]) -m4trace:configure.ac:3230: -1- AH_OUTPUT([HAVE_LD_PIE], [/* Define if your linker supports -pie option. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_PIE -#endif -]) -m4trace:configure.ac:3255: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_AS_NEEDED]) -m4trace:configure.ac:3255: -1- AH_OUTPUT([HAVE_LD_AS_NEEDED], [/* Define if your linker supports --as-needed and --no-as-needed options. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_AS_NEEDED -#endif -]) -m4trace:configure.ac:3294: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_NO_DOT_SYMS]) -m4trace:configure.ac:3294: -1- AH_OUTPUT([HAVE_LD_NO_DOT_SYMS], [/* Define if your PowerPC64 linker only needs function descriptor syms. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_NO_DOT_SYMS -#endif -]) -m4trace:configure.ac:3313: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LD_SYSROOT]) -m4trace:configure.ac:3313: -1- AH_OUTPUT([HAVE_LD_SYSROOT], [/* Define if your linker supports --sysroot. */ -#ifndef USED_FOR_TARGET -#undef HAVE_LD_SYSROOT -#endif -]) -m4trace:configure.ac:3319: -1- AC_DEFINE_TRACE_LITERAL([PREFIX_INCLUDE_DIR]) -m4trace:configure.ac:3319: -1- AH_OUTPUT([PREFIX_INCLUDE_DIR], [/* Define to PREFIX/include if cpp should also search that directory. */ -#ifndef USED_FOR_TARGET -#undef PREFIX_INCLUDE_DIR -#endif -]) -m4trace:configure.ac:3369: -1- AC_DEFINE_TRACE_LITERAL([TARGET_LIBC_PROVIDES_SSP]) -m4trace:configure.ac:3369: -1- AH_OUTPUT([TARGET_LIBC_PROVIDES_SSP], [/* Define if your target C library provides stack protector support */ -#ifndef USED_FOR_TARGET -#undef TARGET_LIBC_PROVIDES_SSP -#endif -]) -m4trace:configure.ac:3405: -1- AC_DEFINE_TRACE_LITERAL([TARGET_DEFAULT_LONG_DOUBLE_128]) -m4trace:configure.ac:3405: -1- AH_OUTPUT([TARGET_DEFAULT_LONG_DOUBLE_128], [/* Define if TFmode long double should be the default */ -#ifndef USED_FOR_TARGET -#undef TARGET_DEFAULT_LONG_DOUBLE_128 -#endif -]) -m4trace:configure.ac:3424: -1- AC_DEFINE_TRACE_LITERAL([GGC_ZONE]) -m4trace:configure.ac:3424: -1- AH_OUTPUT([GGC_ZONE], [/* Define if the zone collector is in use */ -#ifndef USED_FOR_TARGET -#undef GGC_ZONE -#endif -]) -m4trace:configure.ac:3425: -1- AC_SUBST([GGC]) -m4trace:configure.ac:3436: -1- AC_SUBST([zlibdir]) -m4trace:configure.ac:3437: -1- AC_SUBST([zlibinc]) -m4trace:configure.ac:3457: -1- AC_SUBST([MAINT]) -m4trace:configure.ac:3670: -1- AC_SUBST([gcc_tooldir]) -m4trace:configure.ac:3671: -1- AC_SUBST([dollar]) -m4trace:configure.ac:3690: -1- AC_SUBST([slibdir]) -m4trace:configure.ac:3693: -1- AC_SUBST([objdir]) -m4trace:configure.ac:3699: -1- AC_SUBST([datarootdir]) -m4trace:configure.ac:3705: -1- AC_SUBST([docdir]) -m4trace:configure.ac:3711: -1- AC_SUBST([htmldir]) -m4trace:configure.ac:3714: -1- AC_SUBST([subdirs]) -m4trace:configure.ac:3715: -1- AC_SUBST([srcdir]) -m4trace:configure.ac:3716: -1- AC_SUBST([all_boot_languages]) -m4trace:configure.ac:3717: -1- AC_SUBST([all_compilers]) -m4trace:configure.ac:3718: -1- AC_SUBST([all_gtfiles]) -m4trace:configure.ac:3719: -1- AC_SUBST([all_gtfiles_files_langs]) -m4trace:configure.ac:3720: -1- AC_SUBST([all_gtfiles_files_files]) -m4trace:configure.ac:3721: -1- AC_SUBST([all_lang_makefrags]) -m4trace:configure.ac:3722: -1- AC_SUBST([all_lang_makefiles]) -m4trace:configure.ac:3723: -1- AC_SUBST([all_languages]) -m4trace:configure.ac:3724: -1- AC_SUBST([all_selected_languages]) -m4trace:configure.ac:3725: -1- AC_SUBST([all_stagestuff]) -m4trace:configure.ac:3726: -1- AC_SUBST([build_exeext]) -m4trace:configure.ac:3727: -1- AC_SUBST([build_install_headers_dir]) -m4trace:configure.ac:3728: -1- AC_SUBST([build_xm_file_list]) -m4trace:configure.ac:3729: -1- AC_SUBST([build_xm_include_list]) -m4trace:configure.ac:3730: -1- AC_SUBST([build_xm_defines]) -m4trace:configure.ac:3731: -1- AC_SUBST([check_languages]) -m4trace:configure.ac:3732: -1- AC_SUBST([cc_set_by_configure]) -m4trace:configure.ac:3733: -1- AC_SUBST([quoted_cc_set_by_configure]) -m4trace:configure.ac:3734: -1- AC_SUBST([cpp_install_dir]) -m4trace:configure.ac:3735: -1- AC_SUBST([xmake_file]) -m4trace:configure.ac:3736: -1- AC_SUBST([tmake_file]) -m4trace:configure.ac:3737: -1- AC_SUBST([extra_gcc_objs]) -m4trace:configure.ac:3738: -1- AC_SUBST([extra_headers_list]) -m4trace:configure.ac:3739: -1- AC_SUBST([extra_objs]) -m4trace:configure.ac:3740: -1- AC_SUBST([extra_parts]) -m4trace:configure.ac:3741: -1- AC_SUBST([extra_passes]) -m4trace:configure.ac:3742: -1- AC_SUBST([extra_programs]) -m4trace:configure.ac:3743: -1- AC_SUBST([float_h_file]) -m4trace:configure.ac:3744: -1- AC_SUBST([gcc_config_arguments]) -m4trace:configure.ac:3745: -1- AC_SUBST([gcc_gxx_include_dir]) -m4trace:configure.ac:3746: -1- AC_SUBST([host_exeext]) -m4trace:configure.ac:3747: -1- AC_SUBST([host_xm_file_list]) -m4trace:configure.ac:3748: -1- AC_SUBST([host_xm_include_list]) -m4trace:configure.ac:3749: -1- AC_SUBST([host_xm_defines]) -m4trace:configure.ac:3750: -1- AC_SUBST([out_host_hook_obj]) -m4trace:configure.ac:3751: -1- AC_SUBST([install]) -m4trace:configure.ac:3752: -1- AC_SUBST([lang_opt_files]) -m4trace:configure.ac:3753: -1- AC_SUBST([lang_specs_files]) -m4trace:configure.ac:3754: -1- AC_SUBST([lang_tree_files]) -m4trace:configure.ac:3755: -1- AC_SUBST([local_prefix]) -m4trace:configure.ac:3756: -1- AC_SUBST([md_file]) -m4trace:configure.ac:3757: -1- AC_SUBST([objc_boehm_gc]) -m4trace:configure.ac:3758: -1- AC_SUBST([out_file]) -m4trace:configure.ac:3760: -1- AC_SUBST([out_cxx_file]) -m4trace:configure.ac:3761: -1- AC_SUBST([out_object_file]) -m4trace:configure.ac:3763: -1- AC_SUBST([out_cxx_object_file]) -m4trace:configure.ac:3764: -1- AC_SUBST([stage_prefix_set_by_configure]) -m4trace:configure.ac:3765: -1- AC_SUBST([quoted_stage_prefix_set_by_configure]) -m4trace:configure.ac:3766: -1- AC_SUBST([thread_file]) -m4trace:configure.ac:3767: -1- AC_SUBST([tm_file_list]) -m4trace:configure.ac:3768: -1- AC_SUBST([tm_include_list]) -m4trace:configure.ac:3769: -1- AC_SUBST([tm_defines]) -m4trace:configure.ac:3770: -1- AC_SUBST([tm_p_file_list]) -m4trace:configure.ac:3771: -1- AC_SUBST([tm_p_include_list]) -m4trace:configure.ac:3772: -1- AC_SUBST([xm_file_list]) -m4trace:configure.ac:3773: -1- AC_SUBST([xm_include_list]) -m4trace:configure.ac:3774: -1- AC_SUBST([xm_defines]) -m4trace:configure.ac:3775: -1- AC_SUBST([c_target_objs]) -m4trace:configure.ac:3776: -1- AC_SUBST([cxx_target_objs]) -m4trace:configure.ac:3777: -1- AC_SUBST([target_cpu_default]) -m4trace:configure.ac:3799: -1- AC_SUBST([GMPLIBS]) -m4trace:configure.ac:3800: -1- AC_SUBST([GMPINC]) -m4trace:configure.ac:3807: -1- AC_CONFIG_FILES([$all_outputs]) -m4trace:configure.ac:3842: -1- AC_SUBST([LIB@&t at OBJS], [$ac_libobjs]) -m4trace:configure.ac:3842: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) From echristo at apple.com Mon Jan 21 21:08:19 2008 From: echristo at apple.com (Eric Christopher) Date: Tue, 22 Jan 2008 03:08:19 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46242 - /llvm-gcc-4.2/trunk/gcc/autom4te.cache/ Message-ID: <200801220308.m0M38Ju6007516@zion.cs.uiuc.edu> Author: echristo Date: Mon Jan 21 21:08:19 2008 New Revision: 46242 URL: http://llvm.org/viewvc/llvm-project?rev=46242&view=rev Log: Actually do it this time. Removed: llvm-gcc-4.2/trunk/gcc/autom4te.cache/ From sabre at nondot.org Mon Jan 21 22:47:48 2008 From: sabre at nondot.org (Chris Lattner) Date: Tue, 22 Jan 2008 04:47:48 -0000 Subject: [llvm-commits] [llvm] r46243 - /llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp Message-ID: <200801220447.m0M4lmlD013772@zion.cs.uiuc.edu> Author: lattner Date: Mon Jan 21 22:47:47 2008 New Revision: 46243 URL: http://llvm.org/viewvc/llvm-project?rev=46243&view=rev Log: Trivial patch to fix two warnings, please pull into llvm 2.2 Modified: llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp Modified: llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp?rev=46243&r1=46242&r2=46243&view=diff ============================================================================== --- llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp (original) +++ llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp Mon Jan 21 22:47:47 2008 @@ -292,6 +292,9 @@ FPOffset = NumBytes; RAOffset = 0; NumBytes += 4; + } else { + // No calls and no fp. + RAOffset = FPOffset = 0; } MFI->setObjectOffset(MFI->CreateStackObject(4,4), FPOffset); From nicholas at mxc.ca Mon Jan 21 23:08:52 2008 From: nicholas at mxc.ca (Nick Lewycky) Date: Tue, 22 Jan 2008 05:08:52 -0000 Subject: [llvm-commits] [llvm] r46244 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-01-21-MulTrunc.ll Message-ID: <200801220508.m0M58qhb014792@zion.cs.uiuc.edu> Author: nicholas Date: Mon Jan 21 23:08:48 2008 New Revision: 46244 URL: http://llvm.org/viewvc/llvm-project?rev=46244&view=rev Log: Multiply can be evaluated in a different type, so long as the target type has a smaller bitwidth. Added: llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=46244&r1=46243&r2=46244&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Jan 21 23:08:48 2008 @@ -6512,6 +6512,15 @@ CanEvaluateInDifferentType(I->getOperand(1), Ty, CastOpc, NumCastsRemoved); + case Instruction::Mul: + break; + // A multiply can be truncated by truncating its operands. + return Ty->getBitWidth() < OrigTy->getBitWidth() && + CanEvaluateInDifferentType(I->getOperand(0), Ty, CastOpc, + NumCastsRemoved) && + CanEvaluateInDifferentType(I->getOperand(1), Ty, CastOpc, + NumCastsRemoved); + case Instruction::Shl: // If we are truncating the result of this SHL, and if it's a shift of a // constant amount, we can always perform a SHL in a smaller type. @@ -6571,6 +6580,7 @@ switch (I->getOpcode()) { case Instruction::Add: case Instruction::Sub: + case Instruction::Mul: case Instruction::And: case Instruction::Or: case Instruction::Xor: Added: llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll?rev=46244&view=auto ============================================================================== --- llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll (added) +++ llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll Mon Jan 21 23:08:48 2008 @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast + +define i16 @test1(i16 %a) { + %tmp = zext i16 %a to i32 ; [#uses=2] + %tmp21 = lshr i32 %tmp, 8 ; [#uses=1] + %tmp5 = mul i32 %tmp, 5 ; [#uses=1] + %tmp.upgrd.32 = or i32 %tmp21, %tmp5 ; [#uses=1] + %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16 ; [#uses=1] + ret i16 %tmp.upgrd.3 +} + From sabre at nondot.org Mon Jan 21 23:19:27 2008 From: sabre at nondot.org (Chris Lattner) Date: Tue, 22 Jan 2008 05:19:27 -0000 Subject: [llvm-commits] [llvm] r46245 - /llvm/trunk/Makefile.rules Message-ID: <200801220519.m0M5JRd3015312@zion.cs.uiuc.edu> Author: lattner Date: Mon Jan 21 23:19:26 2008 New Revision: 46245 URL: http://llvm.org/viewvc/llvm-project?rev=46245&view=rev Log: One too many )'s breaks 'make clean' with certain versions of make. This fixes PR1927 This should be pulled into llvm 2.2. Modified: llvm/trunk/Makefile.rules Modified: llvm/trunk/Makefile.rules URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=46245&r1=46244&r2=46245&view=diff ============================================================================== --- llvm/trunk/Makefile.rules (original) +++ llvm/trunk/Makefile.rules Mon Jan 21 23:19:26 2008 @@ -1457,7 +1457,7 @@ ifndef DISABLE_AUTO_DEPENDENCIES # If its not one of the cleaning targets -ifneq ($(strip $(filter-out clean clean-local dist-clean,$(MAKECMDGOALS)))),) +ifneq ($(strip $(filter-out clean clean-local dist-clean,$(MAKECMDGOALS))),) # Get the list of dependency files DependFiles := $(basename $(filter %.cpp %.c %.cc, $(Sources))) From sabre at nondot.org Mon Jan 21 23:31:58 2008 From: sabre at nondot.org (Chris Lattner) Date: Tue, 22 Jan 2008 05:31:58 -0000 Subject: [llvm-commits] [llvm] r46246 - /llvm/trunk/test/Verifier/byval-2.ll Message-ID: <200801220531.m0M5Vwxk015932@zion.cs.uiuc.edu> Author: lattner Date: Mon Jan 21 23:31:58 2008 New Revision: 46246 URL: http://llvm.org/viewvc/llvm-project?rev=46246&view=rev Log: update this test to pass with duncan's change. Modified: llvm/trunk/test/Verifier/byval-2.ll Modified: llvm/trunk/test/Verifier/byval-2.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/byval-2.ll?rev=46246&r1=46245&r2=46246&view=diff ============================================================================== --- llvm/trunk/test/Verifier/byval-2.ll (original) +++ llvm/trunk/test/Verifier/byval-2.ll Mon Jan 21 23:31:58 2008 @@ -1,3 +1,3 @@ -; RUN: not llvm-as < %s -o /dev/null -f +; RUN: llvm-as < %s -o /dev/null -f %s = type opaque declare void @h(%s* byval %num) From natebegeman at mac.com Mon Jan 21 23:34:55 2008 From: natebegeman at mac.com (Nate Begeman) Date: Mon, 21 Jan 2008 21:34:55 -0800 Subject: [llvm-commits] [llvm] r46244 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-01-21-MulTrunc.ll In-Reply-To: <200801220508.m0M58qhb014792@zion.cs.uiuc.edu> References: <200801220508.m0M58qhb014792@zion.cs.uiuc.edu> Message-ID: I don't get different output for the attached patch before and after the patch, and the test fails. On Jan 21, 2008, at 9:08 PM, Nick Lewycky wrote: > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp > (original) > +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon > Jan 21 23:08:48 2008 > @@ -6512,6 +6512,15 @@ > CanEvaluateInDifferentType(I->getOperand(1), Ty, CastOpc, > NumCastsRemoved); > > + case Instruction::Mul: > + break; Probably due to this break. > > + // A multiply can be truncated by truncating its operands. > + return Ty->getBitWidth() < OrigTy->getBitWidth() && > + CanEvaluateInDifferentType(I->getOperand(0), Ty, CastOpc, > + NumCastsRemoved) && > + CanEvaluateInDifferentType(I->getOperand(1), Ty, CastOpc, > + NumCastsRemoved); > + > case Instruction::Shl: > // If we are truncating the result of this SHL, and if it's a > shift of a > // constant amount, we can always perform a SHL in a smaller type. > @@ -6571,6 +6580,7 @@ > switch (I->getOpcode()) { > case Instruction::Add: > case Instruction::Sub: > + case Instruction::Mul: > case Instruction::And: > case Instruction::Or: > case Instruction::Xor: > > Added: llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll?rev=46244&view=auto > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll > (added) > +++ llvm/trunk/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll > Mon Jan 21 23:08:48 2008 > @@ -0,0 +1,11 @@ > +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | notcast > + > +define i16 @test1(i16 %a) { > + %tmp = zext i16 %a to i32 ; [#uses=2] > + %tmp21 = lshr i32 %tmp, 8 ; [#uses=1] > + %tmp5 = mul i32 %tmp, 5 ; [#uses=1] > + %tmp.upgrd.32 = or i32 %tmp21, %tmp5 ; > [#uses=1] > + %tmp.upgrd.3 = trunc i32 %tmp.upgrd.32 to i16 ; > [#uses=1] > + ret i16 %tmp.upgrd.3 > +} > + > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From nicholas at mxc.ca Mon Jan 21 23:41:13 2008 From: nicholas at mxc.ca (Nick Lewycky) Date: Mon, 21 Jan 2008 21:41:13 -0800 Subject: [llvm-commits] [llvm] r46244 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-01-21-MulTrunc.ll In-Reply-To: References: <200801220508.m0M58qhb014792@zion.cs.uiuc.edu> Message-ID: <479581F9.5050900@mxc.ca> Duh. Thanks Nate! Nate Begeman wrote: > I don't get different output for the attached patch before and after > the patch, and the test fails. > > On Jan 21, 2008, at 9:08 PM, Nick Lewycky wrote: > >> ====================================================================== >> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp >> (original) >> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon >> Jan 21 23:08:48 2008 >> @@ -6512,6 +6512,15 @@ >> CanEvaluateInDifferentType(I->getOperand(1), Ty, CastOpc, >> NumCastsRemoved); >> >> + case Instruction::Mul: >> + break; > > Probably due to this break. From nicholas at mxc.ca Mon Jan 21 23:42:02 2008 From: nicholas at mxc.ca (Nick Lewycky) Date: Tue, 22 Jan 2008 05:42:02 -0000 Subject: [llvm-commits] [llvm] r46247 - /llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Message-ID: <200801220542.m0M5g2J8016470@zion.cs.uiuc.edu> Author: nicholas Date: Mon Jan 21 23:42:02 2008 New Revision: 46247 URL: http://llvm.org/viewvc/llvm-project?rev=46247&view=rev Log: Enable the fix I just checked in, silly me. Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=46247&r1=46246&r2=46247&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Mon Jan 21 23:42:02 2008 @@ -6513,7 +6513,6 @@ NumCastsRemoved); case Instruction::Mul: - break; // A multiply can be truncated by truncating its operands. return Ty->getBitWidth() < OrigTy->getBitWidth() && CanEvaluateInDifferentType(I->getOperand(0), Ty, CastOpc, From tonic at nondot.org Tue Jan 22 01:16:09 2008 From: tonic at nondot.org (Tanya Lattner) Date: Tue, 22 Jan 2008 07:16:09 -0000 Subject: [llvm-commits] [llvm] r46248 - /llvm/branches/release_22/Makefile.rules Message-ID: <200801220716.m0M7G9vZ021986@zion.cs.uiuc.edu> Author: tbrethou Date: Tue Jan 22 01:16:09 2008 New Revision: 46248 URL: http://llvm.org/viewvc/llvm-project?rev=46248&view=rev Log: Merge from mainline. One too many )'s breaks 'make clean' with certain versions of make. This fixes PR1927 Modified: llvm/branches/release_22/Makefile.rules Modified: llvm/branches/release_22/Makefile.rules URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/Makefile.rules?rev=46248&r1=46247&r2=46248&view=diff ============================================================================== --- llvm/branches/release_22/Makefile.rules (original) +++ llvm/branches/release_22/Makefile.rules Tue Jan 22 01:16:09 2008 @@ -1457,7 +1457,7 @@ ifndef DISABLE_AUTO_DEPENDENCIES # If its not one of the cleaning targets -ifneq ($(strip $(filter-out clean clean-local dist-clean,$(MAKECMDGOALS)))),) +ifneq ($(strip $(filter-out clean clean-local dist-clean,$(MAKECMDGOALS))),) # Get the list of dependency files DependFiles := $(basename $(filter %.cpp %.c %.cc, $(Sources))) From baldrick at free.fr Tue Jan 22 01:17:34 2008 From: baldrick at free.fr (Duncan Sands) Date: Tue, 22 Jan 2008 07:17:34 -0000 Subject: [llvm-commits] [llvm] r46249 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Message-ID: <200801220717.m0M7HYbb022075@zion.cs.uiuc.edu> Author: baldrick Date: Tue Jan 22 01:17:34 2008 New Revision: 46249 URL: http://llvm.org/viewvc/llvm-project?rev=46249&view=rev Log: The final piece needed for storing arbitrary precision integers. Handle truncstore of a legal type to an unusual number of bits. Most of this code is not reachable unless the new legalize infrastructure is turned on. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=46249&r1=46248&r2=46249&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Tue Jan 22 01:17:34 2008 @@ -2254,38 +2254,99 @@ return DAG.getTruncStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(), SVOffset, MVT::i8, isVolatile, Alignment); } - - // Unconditionally promote TRUNCSTORE:i1 X -> TRUNCSTORE:i8 (and X, 1) - if (ST->getStoredVT() == MVT::i1) { - // Promote the bool to a mask then store. - Tmp3 = DAG.getNode(ISD::AND, Tmp3.getValueType(), Tmp3, - DAG.getConstant(1, Tmp3.getValueType())); + + MVT::ValueType StVT = ST->getStoredVT(); + unsigned StWidth = MVT::getSizeInBits(StVT); + + if (StWidth != MVT::getStoreSizeInBits(StVT)) { + // Promote to a byte-sized store with upper bits zero if not + // storing an integral number of bytes. For example, promote + // TRUNCSTORE:i1 X -> TRUNCSTORE:i8 (and X, 1) + MVT::ValueType NVT = MVT::getIntegerType(MVT::getStoreSizeInBits(StVT)); + Tmp3 = DAG.getZeroExtendInReg(Tmp3, StVT); Result = DAG.getTruncStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(), - SVOffset, MVT::i8, - isVolatile, Alignment); - } else if (Tmp1 != ST->getChain() || Tmp3 != ST->getValue() || - Tmp2 != ST->getBasePtr()) { - Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp3, Tmp2, - ST->getOffset()); - } + SVOffset, NVT, isVolatile, Alignment); + } else if (StWidth & (StWidth - 1)) { + // If not storing a power-of-2 number of bits, expand as two stores. + assert(MVT::isExtendedVT(StVT) && !MVT::isVector(StVT) && + "Unsupported truncstore!"); + unsigned RoundWidth = 1 << Log2_32(StWidth); + assert(RoundWidth < StWidth); + unsigned ExtraWidth = StWidth - RoundWidth; + assert(ExtraWidth < RoundWidth); + assert(!(RoundWidth % 8) && !(ExtraWidth % 8) && + "Store size not an integral number of bytes!"); + MVT::ValueType RoundVT = MVT::getIntegerType(RoundWidth); + MVT::ValueType ExtraVT = MVT::getIntegerType(ExtraWidth); + SDOperand Lo, Hi; + unsigned IncrementSize; + + if (TLI.isLittleEndian()) { + // TRUNCSTORE:i24 X -> TRUNCSTORE:i16 X, TRUNCSTORE at +2:i8 (srl X, 16) + // Store the bottom RoundWidth bits. + Lo = DAG.getTruncStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(), + SVOffset, RoundVT, + isVolatile, Alignment); + + // Store the remaining ExtraWidth bits. + IncrementSize = RoundWidth / 8; + Tmp2 = DAG.getNode(ISD::ADD, Tmp2.getValueType(), Tmp2, + DAG.getIntPtrConstant(IncrementSize)); + Hi = DAG.getNode(ISD::SRL, Tmp3.getValueType(), Tmp3, + DAG.getConstant(RoundWidth, TLI.getShiftAmountTy())); + Hi = DAG.getTruncStore(Tmp1, Hi, Tmp2, ST->getSrcValue(), + SVOffset + IncrementSize, ExtraVT, isVolatile, + MinAlign(Alignment, IncrementSize)); + } else { + // Big endian - avoid unaligned stores. + // TRUNCSTORE:i24 X -> TRUNCSTORE:i16 (srl X, 8), TRUNCSTORE at +2:i8 X + // Store the top RoundWidth bits. + Hi = DAG.getNode(ISD::SRL, Tmp3.getValueType(), Tmp3, + DAG.getConstant(ExtraWidth, TLI.getShiftAmountTy())); + Hi = DAG.getTruncStore(Tmp1, Hi, Tmp2, ST->getSrcValue(), SVOffset, + RoundVT, isVolatile, Alignment); + + // Store the remaining ExtraWidth bits. + IncrementSize = RoundWidth / 8; + Tmp2 = DAG.getNode(ISD::ADD, Tmp2.getValueType(), Tmp2, + DAG.getIntPtrConstant(IncrementSize)); + Lo = DAG.getTruncStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(), + SVOffset + IncrementSize, ExtraVT, isVolatile, + MinAlign(Alignment, IncrementSize)); + } - MVT::ValueType StVT = cast(Result.Val)->getStoredVT(); - switch (TLI.getTruncStoreAction(ST->getValue().getValueType(), StVT)) { - default: assert(0 && "This action is not supported yet!"); - case TargetLowering::Legal: - // If this is an unaligned store and the target doesn't support it, - // expand it. - if (!TLI.allowsUnalignedMemoryAccesses()) { - unsigned ABIAlignment = TLI.getTargetData()-> - getABITypeAlignment(MVT::getTypeForValueType(ST->getStoredVT())); - if (ST->getAlignment() < ABIAlignment) - Result = ExpandUnalignedStore(cast(Result.Val), DAG, - TLI); + // The order of the stores doesn't matter. + Result = DAG.getNode(ISD::TokenFactor, MVT::Other, Lo, Hi); + } else { + if (Tmp1 != ST->getChain() || Tmp3 != ST->getValue() || + Tmp2 != ST->getBasePtr()) + Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp3, Tmp2, + ST->getOffset()); + + switch (TLI.getTruncStoreAction(ST->getValue().getValueType(), StVT)) { + default: assert(0 && "This action is not supported yet!"); + case TargetLowering::Legal: + // If this is an unaligned store and the target doesn't support it, + // expand it. + if (!TLI.allowsUnalignedMemoryAccesses()) { + unsigned ABIAlignment = TLI.getTargetData()-> + getABITypeAlignment(MVT::getTypeForValueType(ST->getStoredVT())); + if (ST->getAlignment() < ABIAlignment) + Result = ExpandUnalignedStore(cast(Result.Val), DAG, + TLI); + } + break; + case TargetLowering::Custom: + Result = TLI.LowerOperation(Result, DAG); + break; + case Expand: + // TRUNCSTORE:i16 i32 -> STORE i16 + assert(isTypeLegal(StVT) && "Do not know how to expand this store!"); + Tmp3 = DAG.getNode(ISD::TRUNCATE, StVT, Tmp3); + Result = DAG.getStore(Tmp1, Tmp3, Tmp2, ST->getSrcValue(), SVOffset, + isVolatile, Alignment); + break; } - break; - case TargetLowering::Custom: - Result = TLI.LowerOperation(Result, DAG); - break; } } break; From asl at math.spbu.ru Tue Jan 22 05:00:07 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Tue, 22 Jan 2008 11:00:07 -0000 Subject: [llvm-commits] [llvm] r46250 - /llvm/trunk/utils/TableGen/Record.h Message-ID: <200801221100.m0MB08F3012654@zion.cs.uiuc.edu> Author: asl Date: Tue Jan 22 05:00:07 2008 New Revision: 46250 URL: http://llvm.org/viewvc/llvm-project?rev=46250&view=rev Log: Add interator interface to DAGInit also Modified: llvm/trunk/utils/TableGen/Record.h Modified: llvm/trunk/utils/TableGen/Record.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/Record.h?rev=46250&r1=46249&r2=46250&view=diff ============================================================================== --- llvm/trunk/utils/TableGen/Record.h (original) +++ llvm/trunk/utils/TableGen/Record.h Tue Jan 22 05:00:07 2008 @@ -898,6 +898,28 @@ virtual Init *resolveReferences(Record &R, const RecordVal *RV); virtual std::string getAsString() const; + + typedef std::vector::iterator arg_iterator; + typedef std::vector::const_iterator const_arg_iterator; + typedef std::vector::iterator name_iterator; + typedef std::vector::const_iterator const_name_iterator; + + inline arg_iterator arg_begin() { return Args.begin(); } + inline const_arg_iterator arg_begin() const { return Args.begin(); } + inline arg_iterator arg_end () { return Args.end(); } + inline const_arg_iterator arg_end () const { return Args.end(); } + + inline size_t arg_size () const { return Args.size(); } + inline bool arg_empty() const { return Args.empty(); } + + inline name_iterator name_begin() { return ArgNames.begin(); } + inline const_name_iterator name_begin() const { return ArgNames.begin(); } + inline name_iterator name_end () { return ArgNames.end(); } + inline const_name_iterator name_end () const { return ArgNames.end(); } + + inline size_t name_size () const { return ArgNames.size(); } + inline bool name_empty() const { return ArgNames.empty(); } + }; //===----------------------------------------------------------------------===// From asl at math.spbu.ru Tue Jan 22 05:01:23 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Tue, 22 Jan 2008 11:01:23 -0000 Subject: [llvm-commits] [llvm] r46251 - /llvm/trunk/include/llvm/Support/Compiler.h Message-ID: <200801221101.m0MB1NYN012718@zion.cs.uiuc.edu> Author: asl Date: Tue Jan 22 05:01:23 2008 New Revision: 46251 URL: http://llvm.org/viewvc/llvm-project?rev=46251&view=rev Log: Silence a warning. Should we turn this into configure-time check? Modified: llvm/trunk/include/llvm/Support/Compiler.h Modified: llvm/trunk/include/llvm/Support/Compiler.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Compiler.h?rev=46251&r1=46250&r2=46251&view=diff ============================================================================== --- llvm/trunk/include/llvm/Support/Compiler.h (original) +++ llvm/trunk/include/llvm/Support/Compiler.h Tue Jan 22 05:01:23 2008 @@ -17,7 +17,7 @@ // The VISIBILITY_HIDDEN macro, used for marking classes with the GCC-specific // visibility("hidden") attribute. -#if __GNUC__ >= 4 +#if (__GNUC__ >= 4) && !defined(__MINGW32__) #define VISIBILITY_HIDDEN __attribute__ ((visibility("hidden"))) #else #define VISIBILITY_HIDDEN From echristo at apple.com Tue Jan 22 05:44:24 2008 From: echristo at apple.com (Eric Christopher) Date: Tue, 22 Jan 2008 03:44:24 -0800 Subject: [llvm-commits] [llvm] r46251 - /llvm/trunk/include/llvm/Support/Compiler.h In-Reply-To: <200801221101.m0MB1NYN012718@zion.cs.uiuc.edu> References: <200801221101.m0MB1NYN012718@zion.cs.uiuc.edu> Message-ID: <30632D11-5C19-4B4B-9620-4437F0710E1E@apple.com> On Jan 22, 2008, at 3:01 AM, Anton Korobeynikov wrote: > Silence a warning. Should we turn this into configure-time check? Probably. There's a custom one in gcc already (gcc/configure.ac). -eric From humeafo at gmail.com Tue Jan 22 04:10:26 2008 From: humeafo at gmail.com (humeafo) Date: Tue, 22 Jan 2008 18:10:26 +0800 Subject: [llvm-commits] a question about type conversion propagation and elimination Message-ID: <200801221810229994058@gmail.com> I am a newbie to LLVM, so I have to say sorry if I asked the question in the wrong place. In some cases when I generate LLVM IR from machine assembly(with limited type information) I have to convert the pointers to I32, after the standard mem2reg pass there still are things like: inttoptr i32 %1 to i8* While in fact this can be replaced by the I8* operations, because the I8* can be unsigned compared, and get rid of the redundant Instrs, Is there any pass can do this, or is there any tricks to avoid these redundant conversions while retain the meaning of the program? define i8* @tag_on(i8* %ptr, i8* %end, i8 %tag) { Entry: ptrtoint i8* %end to i32 ; :0 [#uses=2] ptrtoint i8* %ptr to i32 ; :1 [#uses=4] icmp ugt i32 %0, %1 ; :2 [#uses=1] br i1 %2, label %B1, label %B2 B1: ; preds = %Entry inttoptr i32 %1 to i8* ; :3 [#uses=1] store i8 1, i8* %3 add i32 %1, 1 ; :4 [#uses=1] br label %B2 B2: ; preds = %Entry, %B1 %eax.0 = phi i32 [ %4, %B1 ], [ %1, %Entry ] ; [#uses=4] icmp ugt i32 %0, %eax.0 ; :5 [#uses=1] br i1 %5, label %B3, label %exit B3: ; preds = %B2 inttoptr i32 %eax.0 to i8* ; :6 [#uses=1] store i8 1, i8* %6 add i32 %eax.0, 1 ; :7 [#uses=1] br label %exit exit: ; preds = %B2, %B3 %eax.1 = phi i32 [ %7, %B3 ], [ %eax.0, %B2 ] ; [#uses=1] inttoptr i32 %eax.1 to i8* ; :8 [#uses=1] ret i8* %8 } humeafo 2008-01-22 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20080122/a4e44ebb/attachment.html From clattner at apple.com Tue Jan 22 11:53:13 2008 From: clattner at apple.com (Chris Lattner) Date: Tue, 22 Jan 2008 09:53:13 -0800 Subject: [llvm-commits] a question about type conversion propagation and elimination In-Reply-To: <200801221810229994058@gmail.com> References: <200801221810229994058@gmail.com> Message-ID: On Jan 22, 2008, at 2:10 AM, humeafo wrote: > I am a newbie to LLVM, so I have to say sorry if I asked the > question in the wrong place. > In some cases when I generate LLVM IR from machine assembly(with > limited type information) I have to convert the pointers to I32, > after the standard mem2reg pass there still are things like: > > inttoptr i32 %1 to i8* > > While in fact this can be replaced by the I8* operations, because > the I8* can be unsigned compared, and get rid of the redundant > Instrs, Is there any pass > can do this, or is there any tricks to avoid these redundant > conversions while retain the meaning of the program? Sure, the instcombine pass will do this. Make sure to add the correct target data string though. For example, if I add the datalayout string for x86-32 darwin: target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32- i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64- f80:128:128" Instcombine produces: define i8* @tag_on(i8* %ptr, i8* %end, i8 %tag) { Entry: icmp ugt i8* %end, %ptr ; :0 [#uses=1] br i1 %0, label %B1, label %B2 B1: ; preds = %Entry store i8 1, i8* %ptr %ctg2 = getelementptr i8* %ptr, i32 1 ; [#uses=1] br label %B2 B2: ; preds = %B1, %Entry %eax.0.in = phi i8* [ %ctg2, %B1 ], [ %ptr, %Entry ] ; [#uses=4] icmp ult i8* %eax.0.in, %end ; :1 [#uses=1] br i1 %1, label %B3, label %exit B3: ; preds = %B2 store i8 1, i8* %eax.0.in %ctg21 = getelementptr i8* %eax.0.in, i32 1 ; [#uses=1] br label %exit exit: ; preds = %B3, %B2 %eax.1.in = phi i8* [ %ctg21, %B3 ], [ %eax.0.in, %B2 ] ; [#uses=1] ret i8* %eax.1.in } Note that it eliminated all the ptrtoint casts (in this case) and infered some getelementptrs. I'm sending this to the llvmdev list, which is a better place for high- level questions than llvm-commits. -Chris > > define i8* @tag_on(i8* %ptr, i8* %end, i8 %tag) { > Entry: > ptrtoint i8* %end to i32 ; :0 [#uses=2] > ptrtoint i8* %ptr to i32 ; :1 [#uses=4] > icmp ugt i32 %0, %1 ; :2 [#uses=1] > br i1 %2, label %B1, label %B2 > > B1: ; preds = %Entry > inttoptr i32 %1 to i8* ; :3 [#uses=1] > store i8 1, i8* %3 > add i32 %1, 1 ; :4 [#uses=1] > br label %B2 > > B2: ; preds = %Entry, %B1 > %eax.0 = phi i32 [ %4, %B1 ], [ %1, %Entry ] ; > [#uses=4] > icmp ugt i32 %0, %eax.0 ; :5 [#uses=1] > br i1 %5, label %B3, label %exit > > B3: ; preds = %B2 > inttoptr i32 %eax.0 to i8* ; :6 [#uses=1] > store i8 1, i8* %6 > add i32 %eax.0, 1 ; :7 [#uses=1] > br label %exit > > exit: ; preds = %B2, %B3 > %eax.1 = phi i32 [ %7, %B3 ], [ %eax.0, %B2 ] ; > [#uses=1] > inttoptr i32 %eax.1 to i8* ; :8 [#uses=1] > ret i8* %8 > } > > humeafo > 2008-01-22 > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20080122/eb6ca4b1/attachment.html From sabre at nondot.org Tue Jan 22 13:09:34 2008 From: sabre at nondot.org (Chris Lattner) Date: Tue, 22 Jan 2008 19:09:34 -0000 Subject: [llvm-commits] [llvm] r46254 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Message-ID: <200801221909.m0MJ9Yv7007707@zion.cs.uiuc.edu> Author: lattner Date: Tue Jan 22 13:09:33 2008 New Revision: 46254 URL: http://llvm.org/viewvc/llvm-project?rev=46254&view=rev Log: Simplify SelectionDAG::getNode so that a big switch stmt is not #ifndef NDEBUG. This is in response to a really nasty bug I introduced that Dale tracked down, hopefully this won't happen in the future. Many thanks Dale. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=46254&r1=46253&r2=46254&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Tue Jan 22 13:09:33 2008 @@ -1859,15 +1859,34 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1, SDOperand N2) { -#ifndef NDEBUG + ConstantSDNode *N1C = dyn_cast(N1.Val); + ConstantSDNode *N2C = dyn_cast(N2.Val); switch (Opcode) { + default: break; case ISD::TokenFactor: assert(VT == MVT::Other && N1.getValueType() == MVT::Other && N2.getValueType() == MVT::Other && "Invalid token factor!"); + // Fold trivial token factors. + if (N1.getOpcode() == ISD::EntryToken) return N2; + if (N2.getOpcode() == ISD::EntryToken) return N1; break; case ISD::AND: + assert(MVT::isInteger(VT) && N1.getValueType() == N2.getValueType() && + N1.getValueType() == VT && "Binary operator types must match!"); + // (X & 0) -> 0. This commonly occurs when legalizing i64 values, so it's + // worth handling here. + if (N2C && N2C->getValue() == 0) + return N2; + break; case ISD::OR: case ISD::XOR: + assert(MVT::isInteger(VT) && N1.getValueType() == N2.getValueType() && + N1.getValueType() == VT && "Binary operator types must match!"); + // (X ^| 0) -> X. This commonly occurs when legalizing i64 values, so it's + // worth handling here. + if (N2C && N2C->getValue() == 0) + return N1; + break; case ISD::UDIV: case ISD::UREM: case ISD::MULHU: @@ -1879,8 +1898,6 @@ case ISD::MUL: case ISD::SDIV: case ISD::SREM: - assert(MVT::isInteger(N1.getValueType()) && "Should use F* for FP ops"); - // fall through. case ISD::FADD: case ISD::FSUB: case ISD::FMUL: @@ -1912,6 +1929,7 @@ "Cannot FP_ROUND_INREG integer types"); assert(MVT::getSizeInBits(EVT) <= MVT::getSizeInBits(VT) && "Not rounding down!"); + if (cast(N2)->getVT() == VT) return N1; // Not actually rounding. break; } case ISD::FP_ROUND: @@ -1919,33 +1937,83 @@ MVT::isFloatingPoint(N1.getValueType()) && MVT::getSizeInBits(VT) <= MVT::getSizeInBits(N1.getValueType()) && isa(N2) && "Invalid FP_ROUND!"); + if (N1.getValueType() == VT) return N1; // noop conversion. break; case ISD::AssertSext: - case ISD::AssertZext: - case ISD::SIGN_EXTEND_INREG: { + case ISD::AssertZext: { MVT::ValueType EVT = cast(N2)->getVT(); assert(VT == N1.getValueType() && "Not an inreg extend!"); assert(MVT::isInteger(VT) && MVT::isInteger(EVT) && "Cannot *_EXTEND_INREG FP types"); assert(MVT::getSizeInBits(EVT) <= MVT::getSizeInBits(VT) && "Not extending!"); + break; } + case ISD::SIGN_EXTEND_INREG: { + MVT::ValueType EVT = cast(N2)->getVT(); + assert(VT == N1.getValueType() && "Not an inreg extend!"); + assert(MVT::isInteger(VT) && MVT::isInteger(EVT) && + "Cannot *_EXTEND_INREG FP types"); + assert(MVT::getSizeInBits(EVT) <= MVT::getSizeInBits(VT) && + "Not extending!"); + if (EVT == VT) return N1; // Not actually extending - default: break; - } -#endif - - ConstantSDNode *N1C = dyn_cast(N1.Val); - ConstantSDNode *N2C = dyn_cast(N2.Val); - if (N1C) { - if (Opcode == ISD::SIGN_EXTEND_INREG) { + if (N1C) { int64_t Val = N1C->getValue(); unsigned FromBits = MVT::getSizeInBits(cast(N2)->getVT()); Val <<= 64-FromBits; Val >>= 64-FromBits; return getConstant(Val, VT); } + break; + } + case ISD::EXTRACT_VECTOR_ELT: + assert(N2C && "Bad EXTRACT_VECTOR_ELT!"); + + // EXTRACT_VECTOR_ELT of CONCAT_VECTORS is often formed while lowering is + // expanding copies of large vectors from registers. + if (N1.getOpcode() == ISD::CONCAT_VECTORS && + N1.getNumOperands() > 0) { + unsigned Factor = + MVT::getVectorNumElements(N1.getOperand(0).getValueType()); + return getNode(ISD::EXTRACT_VECTOR_ELT, VT, + N1.getOperand(N2C->getValue() / Factor), + getConstant(N2C->getValue() % Factor, N2.getValueType())); + } + + // EXTRACT_VECTOR_ELT of BUILD_VECTOR is often formed while lowering is + // expanding large vector constants. + if (N1.getOpcode() == ISD::BUILD_VECTOR) + return N1.getOperand(N2C->getValue()); + + // EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT is often formed when vector + // operations are lowered to scalars. + if (N1.getOpcode() == ISD::INSERT_VECTOR_ELT) + if (ConstantSDNode *IEC = dyn_cast(N1.getOperand(2))) { + if (IEC == N2C) + return N1.getOperand(1); + else + return getNode(ISD::EXTRACT_VECTOR_ELT, VT, N1.getOperand(0), N2); + } + break; + case ISD::EXTRACT_ELEMENT: + assert(N2C && (unsigned)N2C->getValue() < 2 && "Bad EXTRACT_ELEMENT!"); + // EXTRACT_ELEMENT of BUILD_PAIR is often formed while legalize is expanding + // 64-bit integers into 32-bit parts. Instead of building the extract of + // the BUILD_PAIR, only to have legalize rip it apart, just do it now. + if (N1.getOpcode() == ISD::BUILD_PAIR) + return N1.getOperand(N2C->getValue()); + + // EXTRACT_ELEMENT of a constant int is also very common. + if (ConstantSDNode *C = dyn_cast(N1)) { + unsigned Shift = MVT::getSizeInBits(VT) * N2C->getValue(); + return getConstant(C->getValue() >> Shift, VT); + } + break; + } + + if (N1C) { if (N2C) { uint64_t C1 = N1C->getValue(), C2 = N2C->getValue(); switch (Opcode) { @@ -1988,16 +2056,21 @@ } } + // Constant fold FP operations. ConstantFPSDNode *N1CFP = dyn_cast(N1.Val); ConstantFPSDNode *N2CFP = dyn_cast(N2.Val); if (N1CFP) { - if (N2CFP && VT!=MVT::ppcf128) { + if (!N2CFP && isCommutativeBinOp(Opcode)) { + // Cannonicalize constant to RHS if commutative + std::swap(N1CFP, N2CFP); + std::swap(N1, N2); + } else if (N2CFP && VT != MVT::ppcf128) { APFloat V1 = N1CFP->getValueAPF(), V2 = N2CFP->getValueAPF(); APFloat::opStatus s; switch (Opcode) { case ISD::FADD: s = V1.add(V2, APFloat::rmNearestTiesToEven); - if (s!=APFloat::opInvalidOp) + if (s != APFloat::opInvalidOp) return getConstantFP(V1, VT); break; case ISD::FSUB: @@ -2025,11 +2098,6 @@ return getConstantFP(V1, VT); default: break; } - } else { // Cannonicalize constant to RHS if commutative - if (isCommutativeBinOp(Opcode)) { - std::swap(N1CFP, N2CFP); - std::swap(N1, N2); - } } } @@ -2100,105 +2168,6 @@ } } - // Fold operations. - switch (Opcode) { - case ISD::TokenFactor: - // Fold trivial token factors. - if (N1.getOpcode() == ISD::EntryToken) return N2; - if (N2.getOpcode() == ISD::EntryToken) return N1; - break; - - case ISD::AND: - // (X & 0) -> 0. This commonly occurs when legalizing i64 values, so it's - // worth handling here. - if (N2C && N2C->getValue() == 0) - return N2; - break; - case ISD::OR: - case ISD::XOR: - // (X ^| 0) -> X. This commonly occurs when legalizing i64 values, so it's - // worth handling here. - if (N2C && N2C->getValue() == 0) - return N1; - break; - case ISD::FP_ROUND: - if (N1.getValueType() == VT) return N1; // noop conversion. - break; - case ISD::FP_ROUND_INREG: - if (cast(N2)->getVT() == VT) return N1; // Not actually rounding. - break; - case ISD::SIGN_EXTEND_INREG: { - MVT::ValueType EVT = cast(N2)->getVT(); - if (EVT == VT) return N1; // Not actually extending - break; - } - case ISD::EXTRACT_VECTOR_ELT: - assert(N2C && "Bad EXTRACT_VECTOR_ELT!"); - - // EXTRACT_VECTOR_ELT of CONCAT_VECTORS is often formed while lowering is - // expanding copies of large vectors from registers. - if (N1.getOpcode() == ISD::CONCAT_VECTORS && - N1.getNumOperands() > 0) { - unsigned Factor = - MVT::getVectorNumElements(N1.getOperand(0).getValueType()); - return getNode(ISD::EXTRACT_VECTOR_ELT, VT, - N1.getOperand(N2C->getValue() / Factor), - getConstant(N2C->getValue() % Factor, N2.getValueType())); - } - - // EXTRACT_VECTOR_ELT of BUILD_VECTOR is often formed while lowering is - // expanding large vector constants. - if (N1.getOpcode() == ISD::BUILD_VECTOR) - return N1.getOperand(N2C->getValue()); - - // EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT is often formed when vector - // operations are lowered to scalars. - if (N1.getOpcode() == ISD::INSERT_VECTOR_ELT) - if (ConstantSDNode *IEC = dyn_cast(N1.getOperand(2))) { - if (IEC == N2C) - return N1.getOperand(1); - else - return getNode(ISD::EXTRACT_VECTOR_ELT, VT, N1.getOperand(0), N2); - } - break; - case ISD::EXTRACT_ELEMENT: - assert(N2C && (unsigned)N2C->getValue() < 2 && "Bad EXTRACT_ELEMENT!"); - - // EXTRACT_ELEMENT of BUILD_PAIR is often formed while legalize is expanding - // 64-bit integers into 32-bit parts. Instead of building the extract of - // the BUILD_PAIR, only to have legalize rip it apart, just do it now. - if (N1.getOpcode() == ISD::BUILD_PAIR) - return N1.getOperand(N2C->getValue()); - - // EXTRACT_ELEMENT of a constant int is also very common. - if (ConstantSDNode *C = dyn_cast(N1)) { - unsigned Shift = MVT::getSizeInBits(VT) * N2C->getValue(); - return getConstant(C->getValue() >> Shift, VT); - } - break; - - // FIXME: figure out how to safely handle things like - // int foo(int x) { return 1 << (x & 255); } - // int bar() { return foo(256); } -#if 0 - case ISD::SHL: - case ISD::SRL: - case ISD::SRA: - if (N2.getOpcode() == ISD::SIGN_EXTEND_INREG && - cast(N2.getOperand(1))->getVT() != MVT::i1) - return getNode(Opcode, VT, N1, N2.getOperand(0)); - else if (N2.getOpcode() == ISD::AND) - if (ConstantSDNode *AndRHS = dyn_cast(N2.getOperand(1))) { - // If the and is only masking out bits that cannot effect the shift, - // eliminate the and. - unsigned NumBits = MVT::getSizeInBits(VT); - if ((AndRHS->getValue() & (NumBits-1)) == NumBits-1) - return getNode(Opcode, VT, N1, N2.getOperand(0)); - } - break; -#endif - } - // Memoize this node if possible. SDNode *N; SDVTList VTs = getVTList(VT); From lattner at apple.com Tue Jan 22 17:02:29 2008 From: lattner at apple.com (Tanya Lattner) Date: Tue, 22 Jan 2008 15:02:29 -0800 Subject: [llvm-commits] [llvm] r46220 - /llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c In-Reply-To: <200801212215.m0LMFxYI020471@zion.cs.uiuc.edu> References: <200801212215.m0LMFxYI020471@zion.cs.uiuc.edu> Message-ID: <29F7FE40-FFCD-4EEC-ADA6-AA317D7277B5@apple.com> This fails with llvm-gcc-4.0, darwin 8, x86. ../../src/gcc/llvm-types.cpp:82: failed assertion `(!TYPE_SIZE(Tr) || !Ty->isSized() || !isInt64(TYPE_SIZE(Tr), true) || getInt64 (TYPE_SIZE(Tr), true) == getTargetData().getABITypeSizeInBits(Ty)) && "LLVM type size doesn't match GCC type size!"' 2008-01-21-PackedBitFields.c is also failing for me. -Tanya On Jan 21, 2008, at 2:15 PM, Devang Patel wrote: > Author: dpatel > Date: Mon Jan 21 16:15:58 2008 > New Revision: 46220 > > URL: http://llvm.org/viewvc/llvm-project?rev=46220&view=rev > Log: > New test. > > Added: > llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c > > Added: llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/ > 2008-01-21-PackedStructField.c?rev=46220&view=auto > > ====================================================================== > ======== > --- llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c (added) > +++ llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c Mon > Jan 21 16:15:58 2008 > @@ -0,0 +1,5 @@ > +// RUN: %llvmgcc %s -S -o - > + > +struct X { long double b; unsigned char c; double __attribute__ > ((packed)) d; }; > +struct X x = { 3.0L, 5, 3.0 }; > + > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From isanbard at gmail.com Tue Jan 22 17:06:58 2008 From: isanbard at gmail.com (Bill Wendling) Date: Tue, 22 Jan 2008 23:06:58 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46261 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801222306.m0MN6w6k025143@zion.cs.uiuc.edu> Author: void Date: Tue Jan 22 17:06:58 2008 New Revision: 46261 URL: http://llvm.org/viewvc/llvm-project?rev=46261&view=rev Log: We were getting this error: embedding a directive within macro arguments is not portable build_tree_list is a macro... Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46261&r1=46260&r2=46261&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Tue Jan 22 17:06:58 2008 @@ -10867,14 +10867,14 @@ /* LLVM LOCAL begin make initializer size match type size */ /* APPLE LOCAL ObjC new abi */ - initlist = build_tree_list (NULL_TREE, build_int_cst ( #ifdef OBJCPLUS - NULL_TREE, + initlist = build_tree_list (NULL_TREE, + build_int_cst (NULL_TREE, init_val)); #else - newabi ? NULL_TREE : ptr_type_node, + initlist = build_tree_list (NULL_TREE, + build_int_cst (newabi ? NULL_TREE : ptr_type_node, + init_val)); #endif - - init_val)); /* LLVM LOCAL end */ initlist = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, size), initlist); initlist = tree_cons (NULL_TREE, list, initlist); From evan.cheng at apple.com Tue Jan 22 17:26:54 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Tue, 22 Jan 2008 23:26:54 -0000 Subject: [llvm-commits] [llvm] r46262 - in /llvm/trunk: lib/Target/X86/X86CallingConv.td test/CodeGen/X86/sse-varargs.ll Message-ID: <200801222326.m0MNQspi027205@zion.cs.uiuc.edu> Author: evancheng Date: Tue Jan 22 17:26:53 2008 New Revision: 46262 URL: http://llvm.org/viewvc/llvm-project?rev=46262&view=rev Log: SSE varargs arguments are passed in memory. Added: llvm/trunk/test/CodeGen/X86/sse-varargs.ll Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=46262&r1=46261&r2=46262&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86CallingConv.td (original) +++ llvm/trunk/lib/Target/X86/X86CallingConv.td Tue Jan 22 17:26:53 2008 @@ -190,8 +190,8 @@ CCIfType<[f80], CCAssignToStack<0, 4>>, // The first 4 vector arguments are passed in XMM registers. - CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], - CCAssignToReg<[XMM0, XMM1, XMM2, XMM3]>>, + CCIfNotVarArg>>, // Other vectors get 16-byte stack slots that are 16-byte aligned. CCIfType<[v16i8, v8i16, v4i32, v2i64, v4f32, v2f64], CCAssignToStack<16, 16>>, Added: llvm/trunk/test/CodeGen/X86/sse-varargs.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse-varargs.ll?rev=46262&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/sse-varargs.ll (added) +++ llvm/trunk/test/CodeGen/X86/sse-varargs.ll Tue Jan 22 17:26:53 2008 @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep xmm | grep esp + +define i32 @t() nounwind { +entry: + tail call void (i32, ...)* @foo( i32 1, <4 x i32> < i32 10, i32 11, i32 12, i32 13 > ) nounwind + ret i32 0 +} + +declare void @foo(i32, ...) From resistor at mac.com Tue Jan 22 17:58:55 2008 From: resistor at mac.com (Owen Anderson) Date: Tue, 22 Jan 2008 23:58:55 -0000 Subject: [llvm-commits] [llvm] r46263 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Message-ID: <200801222358.m0MNwtGK030676@zion.cs.uiuc.edu> Author: resistor Date: Tue Jan 22 17:58:54 2008 New Revision: 46263 URL: http://llvm.org/viewvc/llvm-project?rev=46263&view=rev Log: Fix an iterator invalidation issue. Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=46263&r1=46262&r2=46263&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Tue Jan 22 17:58:54 2008 @@ -751,11 +751,17 @@ // FIXME: Insert last-minute copies // Remove PHIs - for (MachineFunction::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) + std::vector phis; + for (MachineFunction::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) { for (MachineBasicBlock::iterator BI = I->begin(), BE = I->end(); BI != BE; ++BI) if (BI->getOpcode() == TargetInstrInfo::PHI) - BI->eraseFromParent(); + phis.push_back(BI); + } + + for (std::vector::iterator I = phis.begin(), E = phis.end(); + I != E; ++I) + (*I)->eraseFromParent(); return false; } From dpatel at apple.com Tue Jan 22 18:07:03 2008 From: dpatel at apple.com (Devang Patel) Date: Wed, 23 Jan 2008 00:07:03 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46264 - in /llvm-gcc-4.0/trunk/gcc: llvm-internal.h llvm-types.cpp Message-ID: <200801230007.m0N073Ne031450@zion.cs.uiuc.edu> Author: dpatel Date: Tue Jan 22 18:07:02 2008 New Revision: 46264 URL: http://llvm.org/viewvc/llvm-project?rev=46264&view=rev Log: Backport patches(r46210 and r46212) from llvm-gcc-4.2 Modified: llvm-gcc-4.0/trunk/gcc/llvm-internal.h llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-internal.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-internal.h?rev=46264&r1=46263&r2=46264&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-internal.h (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-internal.h Tue Jan 22 18:07:02 2008 @@ -157,7 +157,7 @@ private: const Type *ConvertRECORD(tree_node *type, tree_node *orig_type); const Type *ConvertUNION(tree_node *type, tree_node *orig_type); - void DecodeStructFields(tree_node *Field, StructTypeConversionInfo &Info); + bool DecodeStructFields(tree_node *Field, StructTypeConversionInfo &Info); void DecodeStructBitField(tree_node *Field, StructTypeConversionInfo &Info); }; Modified: llvm-gcc-4.0/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-types.cpp?rev=46264&r1=46263&r2=46264&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Tue Jan 22 18:07:02 2008 @@ -1180,6 +1180,8 @@ ExtraBitsAvailable = E; } + bool isPacked() { return Packed; } + void markAsPacked() { Packed = true; } @@ -1427,37 +1429,9 @@ void addNewBitField(unsigned Size, unsigned FirstUnallocatedByte); - void convertToPacked(); - void dump() const; }; -// LLVM disagrees as to where to put field natural field ordering. -// ordering. Therefore convert to a packed struct. -void StructTypeConversionInfo::convertToPacked() { - assert (!Packed && "Packing a packed struct!"); - Packed = true; - - // Fill the padding that existed from alignment restrictions - // with byte arrays to ensure the same layout when converting - // to a packed struct. - for (unsigned x = 1; x < ElementOffsetInBytes.size(); ++x) { - if (ElementOffsetInBytes[x-1] + ElementSizeInBytes[x-1] - < ElementOffsetInBytes[x]) { - uint64_t padding = ElementOffsetInBytes[x] - - ElementOffsetInBytes[x-1] - ElementSizeInBytes[x-1]; - const Type *Pad = Type::Int8Ty; - Pad = ArrayType::get(Pad, padding); - ElementOffsetInBytes.insert(ElementOffsetInBytes.begin() + x, - ElementOffsetInBytes[x-1] + - ElementSizeInBytes[x-1]); - ElementSizeInBytes.insert(ElementSizeInBytes.begin() + x, padding); - Elements.insert(Elements.begin() + x, Pad); - PaddingElement.insert(PaddingElement.begin() + x, true); - } - } -} - // Add new element which is a bit field. Size is not the size of bit filed, // but size of bits required to determine type of new Field which will be // used to access this bit field. @@ -1545,17 +1519,18 @@ /// DecodeStructFields - This method decodes the specified field, if it is a /// FIELD_DECL, adding or updating the specified StructTypeConversionInfo to -/// reflect it. -void TypeConverter::DecodeStructFields(tree Field, +/// reflect it. Return tree if field is decode correctly. Otherwise return +/// false. +bool TypeConverter::DecodeStructFields(tree Field, StructTypeConversionInfo &Info) { if (TREE_CODE(Field) != FIELD_DECL || TREE_CODE(DECL_FIELD_OFFSET(Field)) != INTEGER_CST) - return; + return true; // Handle bit-fields specially. if (DECL_BIT_FIELD_TYPE(Field)) { DecodeStructBitField(Field, Info); - return; + return true; } Info.allFieldsAreNotBitFields(); @@ -1573,12 +1548,19 @@ if (!Info.ResizeLastElementIfOverlapsWith(StartOffsetInBytes, Field, Ty)) { // LLVM disagrees as to where this field should go in the natural field // ordering. Therefore convert to a packed struct and try again. - Info.convertToPacked(); - DecodeStructFields(Field, Info); + return false; + } + else if (TYPE_USER_ALIGN(TREE_TYPE(Field)) + && DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) + && !Info.isPacked()) { + // If Field has user defined alignment and it does not match Ty alignment + // then convert to a packed struct and try again. + return false; } else // At this point, we know that adding the element will happen at the right // offset. Add it. Info.addElement(Ty, StartOffsetInBytes, Info.getTypeSize(Ty)); + return true; } /// DecodeStructBitField - This method decodes the specified bit-field, adding @@ -1735,8 +1717,24 @@ // Convert over all of the elements of the struct. - for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) - DecodeStructFields(Field, *Info); + bool retryAsPackedStruct = false; + for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) { + if (DecodeStructFields(Field, *Info) == false) { + retryAsPackedStruct = true; + break; + } + } + + if (retryAsPackedStruct) { + delete Info; + Info = new StructTypeConversionInfo(*TheTarget, TYPE_ALIGN_UNIT(type), + true); + for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) { + if (DecodeStructFields(Field, *Info) == false) { + assert(0 && "Unable to decode struct fields."); + } + } + } // If the LLVM struct requires explicit tail padding to be the same size as // the GCC struct, insert tail padding now. This handles, e.g., "{}" in C++. From dalej at apple.com Tue Jan 22 18:48:04 2008 From: dalej at apple.com (Dale Johannesen) Date: Wed, 23 Jan 2008 00:48:04 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46265 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Message-ID: <200801230048.m0N0m47Z001289@zion.cs.uiuc.edu> Author: johannes Date: Tue Jan 22 18:48:04 2008 New Revision: 46265 URL: http://llvm.org/viewvc/llvm-project?rev=46265&view=rev Log: Fix handling of CONST_DECL with section information. Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=46265&r1=46264&r2=46265&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Tue Jan 22 18:48:04 2008 @@ -919,15 +919,6 @@ GV->setSection(Section); #endif } -#ifdef LLVM_IMPLICIT_TARGET_GLOBAL_VAR_SECTION - else if (TREE_CODE(decl) == CONST_DECL) { - if (const char *Section = - LLVM_IMPLICIT_TARGET_GLOBAL_VAR_SECTION(decl)) { - GV->setSection(Section); - } - } -#endif - // Set the alignment for the global if one of the following condition is met // 1) DECL_ALIGN_UNIT does not match alignment as per ABI specification @@ -947,8 +938,16 @@ // Add annotate attributes for globals if (DECL_ATTRIBUTES(decl)) AddAnnotateAttrsToGlobal(GV, decl); - } +#ifdef LLVM_IMPLICIT_TARGET_GLOBAL_VAR_SECTION + } else if (TREE_CODE(decl) == CONST_DECL) { + if (const char *Section = + LLVM_IMPLICIT_TARGET_GLOBAL_VAR_SECTION(decl)) { + GV->setSection(Section); + } +#endif + } + if (TheDebugInfo) TheDebugInfo->EmitGlobalVariable(GV, decl); TREE_ASM_WRITTEN(decl) = 1; From dalej at apple.com Tue Jan 22 18:48:49 2008 From: dalej at apple.com (Dale Johannesen) Date: Wed, 23 Jan 2008 00:48:49 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46266 - /llvm-gcc-4.2/trunk/gcc/config/darwin.c Message-ID: <200801230048.m0N0mn9H001367@zion.cs.uiuc.edu> Author: johannes Date: Tue Jan 22 18:48:48 2008 New Revision: 46266 URL: http://llvm.org/viewvc/llvm-project?rev=46266&view=rev Log: Cosmetic changes to placate gcc testsuite. Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.c Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.c?rev=46266&r1=46265&r2=46266&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/darwin.c (original) +++ llvm-gcc-4.2/trunk/gcc/config/darwin.c Tue Jan 22 18:48:48 2008 @@ -1527,11 +1527,11 @@ if (!strcmp(IDENTIFIER_POINTER(typename), "__builtin_ObjCString")) { if (flag_next_runtime) - return "__OBJC,__cstring_object,regular,no_dead_strip"; + return "__OBJC, __cstring_object,regular,no_dead_strip"; else - return "__OBJC,__string_object,no_dead_strip"; + return "__OBJC, __string_object,no_dead_strip"; } else if (!strcmp(IDENTIFIER_POINTER(typename), "__builtin_CFString")) { - return "__DATA,__cfstring"; + return "__DATA, __cfstring"; } else { return 0; } @@ -1580,7 +1580,7 @@ return "__OBJC,__module_info,regular,no_dead_strip"; else if (!strncmp (name, "IMAGE_INFO", 10)) return (flag_objc_abi == 1 ? - "__OBJC,__image_info,regular" /*,no_dead_strip";*/ : + "__OBJC, __image_info,regular" /*,no_dead_strip";*/ : "__DATA, __objc_imageinfo, regular, no_dead_strip"); else if (!strncmp (name, "PROTOCOL_INSTANCE_METHODS_", 26)) return "__OBJC,__cat_inst_meth,regular,no_dead_strip"; From dalej at apple.com Tue Jan 22 18:58:19 2008 From: dalej at apple.com (Dale Johannesen) Date: Wed, 23 Jan 2008 00:58:19 -0000 Subject: [llvm-commits] [llvm] r46267 - in /llvm/trunk/lib/Target: ARM/ARMAsmPrinter.cpp PowerPC/PPCAsmPrinter.cpp X86/X86AsmPrinter.cpp Message-ID: <200801230058.m0N0wKMY002008@zion.cs.uiuc.edu> Author: johannes Date: Tue Jan 22 18:58:14 2008 New Revision: 46267 URL: http://llvm.org/viewvc/llvm-project?rev=46267&view=rev Log: Honor explicit section information on Darwin. Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=46267&r1=46266&r2=46267&view=diff ============================================================================== --- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Tue Jan 22 18:58:14 2008 @@ -908,6 +908,10 @@ std::string SectionName = ".section " + I->getSection(); SectionName += ",\"aw\",%progbits"; SwitchToDataSection(SectionName.c_str()); + } else if (I->hasSection() && Subtarget->isTargetDarwin()) { + // Honor all section names on Darwin; ObjC uses this + std::string SectionName = ".section " + I->getSection(); + SwitchToDataSection(SectionName.c_str()); } else { if (C->isNullValue() && !NoZerosInBSS && TAI->getBSSSection()) SwitchToDataSection(I->isThreadLocal() ? TAI->getTLSBSSSection() : Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=46267&r1=46266&r2=46267&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Tue Jan 22 18:58:14 2008 @@ -958,8 +958,11 @@ break; } } - - if (!I->isConstant()) + if (I->hasSection()) { + // Honor all section names on Darwin; ObjC uses this + std::string SectionName = ".section " + I->getSection(); + SwitchToDataSection(SectionName.c_str()); + } else if (!I->isConstant()) SwitchToDataSection(TAI->getDataSection(), I); else { // Read-only data. Modified: llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp?rev=46267&r1=46266&r2=46267&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Tue Jan 22 18:58:14 2008 @@ -275,7 +275,10 @@ assert(!Subtarget->isTargetDarwin()); SectionName += ",\"aw\", at progbits"; } - + SwitchToDataSection(SectionName.c_str()); + } else if (I->hasSection() && Subtarget->isTargetDarwin()) { + // Honor all section names on Darwin; ObjC uses this + std::string SectionName = ".section " + I->getSection(); SwitchToDataSection(SectionName.c_str()); } else { if (C->isNullValue() && !NoZerosInBSS && TAI->getBSSSection()) From dalej at apple.com Tue Jan 22 19:40:20 2008 From: dalej at apple.com (Dale Johannesen) Date: Wed, 23 Jan 2008 01:40:20 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46269 - in /llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg: const-cfstring-4-64bit.mm const-cfstring-4.mm const-str-10.mm const-str-11.mm const-str-9.mm objc-gc-section-1.mm objc-gc-section-2.mm objc2-protocol-ext-1.mm Message-ID: <200801230140.m0N1eLYK005765@zion.cs.uiuc.edu> Author: johannes Date: Tue Jan 22 19:40:15 2008 New Revision: 46269 URL: http://llvm.org/viewvc/llvm-project?rev=46269&view=rev Log: Enhance some more tests to take functionally equivalent llvm syntax. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4-64bit.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-10.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-11.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-9.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-1.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-2.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-ext-1.mm Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4-64bit.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/const-cfstring-4-64bit.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4-64bit.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4-64bit.mm Tue Jan 22 19:40:15 2008 @@ -8,4 +8,5 @@ CFStringRef appKey = (CFStringRef) @"com.apple.soundpref"; /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */ -/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t19\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space( |\t)4\n\t.quad\t.*\n\t.quad\t19\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/const-cfstring-4.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-cfstring-4.mm Tue Jan 22 19:40:15 2008 @@ -10,4 +10,5 @@ CFStringRef appKey = (CFStringRef) @"com.apple.soundpref"; /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */ -/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-10.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/const-str-10.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-10.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-10.mm Tue Jan 22 19:40:15 2008 @@ -31,4 +31,5 @@ const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-11.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/const-str-11.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-11.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-11.mm Tue Jan 22 19:40:15 2008 @@ -30,4 +30,5 @@ const XStr *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-9.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/const-str-9.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-9.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/const-str-9.mm Tue Jan 22 19:40:15 2008 @@ -23,4 +23,5 @@ const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-1.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc-gc-section-1.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-1.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-1.mm Tue Jan 22 19:40:15 2008 @@ -10,5 +10,6 @@ @implementation INTF @end /* { dg-final { scan-assembler ".section __OBJC, __image_info" } } */ -/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:\n\t.space 8" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:.*\n\t.space( |\t)8" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-2.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc-gc-section-2.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-2.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc-gc-section-2.mm Tue Jan 22 19:40:15 2008 @@ -9,4 +9,5 @@ @implementation INTF @end /* { dg-final { scan-assembler ".section __OBJC, __image_info" } } */ -/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:\n\t.long\t0\n\t.long\t6" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "L_OBJC_IMAGE_INFO:.*\n\t.(long\t0|space\t4)\n\t.long\t6" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-ext-1.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-ext-1.mm?rev=46269&r1=46268&r2=46269&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-ext-1.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-ext-1.mm Tue Jan 22 19:40:15 2008 @@ -11,4 +11,5 @@ @interface Super { id isa; } @end @implementation Super @end -/* { dg-final { scan-assembler ".long\t72\n\t.long\t0" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t72\n\t.(long\t0|space\t4)" } } */ From dalej at apple.com Tue Jan 22 19:42:09 2008 From: dalej at apple.com (Dale Johannesen) Date: Wed, 23 Jan 2008 01:42:09 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46270 - in /llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg: const-cfstring-4-64bit.m const-cfstring-4.m const-str-10-64bit.m const-str-10.m const-str-11-64bit.m const-str-11.m const-str-9-64bit.m const-str-9.m image-info.m objc2-alignment-test-1.m objc2-const-str-64bit-1.m objc2-protocol-ext-1.m Message-ID: <200801230142.m0N1gAFZ005922@zion.cs.uiuc.edu> Author: johannes Date: Tue Jan 22 19:42:09 2008 New Revision: 46270 URL: http://llvm.org/viewvc/llvm-project?rev=46270&view=rev Log: Yet more test enhancements to take functionally equivalent llvm syntax. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9-64bit.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/image-info.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-alignment-test-1.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-const-str-64bit-1.m llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-ext-1.m Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4-64bit.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4-64bit.m Tue Jan 22 19:42:09 2008 @@ -8,4 +8,5 @@ static CFStringRef appKey = (CFStringRef) @"com.apple.soundpref"; /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */ -/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t19\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space( |\t)4\n\t.quad\t.*\n\t.quad\t19\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-cfstring-4.m Tue Jan 22 19:42:09 2008 @@ -10,4 +10,5 @@ static CFStringRef appKey = (CFStringRef) @"com.apple.soundpref"; /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */ -/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10-64bit.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10-64bit.m Tue Jan 22 19:42:09 2008 @@ -30,4 +30,5 @@ const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space( |\t)4\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-10.m Tue Jan 22 19:42:09 2008 @@ -33,4 +33,5 @@ const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11-64bit.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11-64bit.m Tue Jan 22 19:42:09 2008 @@ -29,4 +29,5 @@ const XStr *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".quad\t__XStrClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".quad\t__XStrClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space( |\t)4\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-11.m Tue Jan 22 19:42:09 2008 @@ -32,4 +32,5 @@ const XStr *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9-64bit.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9-64bit.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9-64bit.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9-64bit.m Tue Jan 22 19:42:09 2008 @@ -21,4 +21,5 @@ static const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space 4\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".quad\t__NSConstantStringClassReference\n\t.quad\t.*\n\t.long\t5\n\t.space( |\t)4\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/const-str-9.m Tue Jan 22 19:42:09 2008 @@ -26,4 +26,5 @@ static const NSConstantString *appKey = @"MyApp"; /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */ -/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/image-info.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/image-info.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/image-info.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/image-info.m Tue Jan 22 19:42:09 2008 @@ -38,4 +38,5 @@ } @end -/* { dg-final { scan-assembler "\t.section __OBJC, __image_info.*\n\t.align.*\nL_OBJC_IMAGE_INFO.*:\n\t.long\t0\n\t.long\t1" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".section __OBJC, __image_info.*\n\t.align.*\nL_OBJC_IMAGE_INFO.*:.*\n\t(.long\t0|.space\t4)\n\t.long\t1" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-alignment-test-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-alignment-test-1.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-alignment-test-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-alignment-test-1.m Tue Jan 22 19:42:09 2008 @@ -36,5 +36,7 @@ [c8 load]; [c9 load]; } -/* { dg-final { scan-assembler "\t.align 2\nL_OBJC_LABEL_CLASS_\\\$:" } } */ -/* { dg-final { scan-assembler "\t.align 2\nL_OBJC_LABEL_NONLAZY_CLASS_\\\$:" } } */ +/* LLVM LOCAL begin accept llvm syntax */ +/* { dg-final { scan-assembler "\t.align( |\t)2\nL_OBJC_LABEL_CLASS_\\\$:" } } */ +/* { dg-final { scan-assembler "\t.align( |\t)2\nL_OBJC_LABEL_NONLAZY_CLASS_\\\$:" } } */ +/* LLVM LOCAL end */ \ No newline at end of file Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-const-str-64bit-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-const-str-64bit-1.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-const-str-64bit-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-const-str-64bit-1.m Tue Jan 22 19:42:09 2008 @@ -12,4 +12,5 @@ int main() { return (int)(long)@"foo"; } -/* { dg-final { scan-assembler "LC1:\n\t.quad\t_OBJC_CLASS_\\\$_NSConstantString" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler "(LC1|__unnamed_1_0):.*\n\t.quad\t_OBJC_CLASS_\\\$_NSConstantString" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-ext-1.m URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-ext-1.m?rev=46270&r1=46269&r2=46270&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-ext-1.m (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/objc2-protocol-ext-1.m Tue Jan 22 19:42:09 2008 @@ -11,4 +11,5 @@ @interface Super { id isa; } @end @implementation Super @end -/* { dg-final { scan-assembler ".long\t72\n\t.long\t0" } } */ +/* LLVM LOCAL accept llvm syntax */ +/* { dg-final { scan-assembler ".long\t72\n\t.(long\t0|space\t4)" } } */ From evan.cheng at apple.com Tue Jan 22 20:49:25 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 02:49:25 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46271 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386.c toplev.c Message-ID: <200801230249.m0N2nP26011689@zion.cs.uiuc.edu> Author: evancheng Date: Tue Jan 22 20:49:24 2008 New Revision: 46271 URL: http://llvm.org/viewvc/llvm-project?rev=46271&view=rev Log: Need to call init_regs() from backend_init() to ensure TYPE_MODE for user-defined vector types are set up correctly; remove the workaround from i386.c. Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.c llvm-gcc-4.2/trunk/gcc/toplev.c Modified: llvm-gcc-4.2/trunk/gcc/config/i386/i386.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/i386.c?rev=46271&r1=46270&r2=46271&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/i386.c (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/i386.c Tue Jan 22 20:49:24 2008 @@ -3270,16 +3270,9 @@ int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8; tree type = BINFO_TYPE (base_binfo); -/* LLVM local */ -#ifdef ENABLE_LLVM - num = classify_argument (type_natural_mode (type), - type, subclasses, - (offset + bit_offset) % 256); -#else num = classify_argument (TYPE_MODE (type), type, subclasses, (offset + bit_offset) % 256); -#endif if (!num) return 0; for (i = 0; i < num; i++) @@ -3315,18 +3308,10 @@ } else { -/* LLVM local */ -#ifdef ENABLE_LLVM - num = classify_argument (type_natural_mode (TREE_TYPE (field)), - TREE_TYPE (field), subclasses, - (int_bit_position (field) - + bit_offset) % 256); -#else num = classify_argument (TYPE_MODE (TREE_TYPE (field)), TREE_TYPE (field), subclasses, (int_bit_position (field) + bit_offset) % 256); -#endif if (!num) return 0; for (i = 0; i < num; i++) @@ -3345,14 +3330,8 @@ /* Arrays are handled as small records. */ { int num; -/* LLVM local */ -#ifdef ENABLE_LLVM - num = classify_argument (type_natural_mode (TREE_TYPE (type)), - TREE_TYPE (type), subclasses, bit_offset); -#else num = classify_argument (TYPE_MODE (TREE_TYPE (type)), TREE_TYPE (type), subclasses, bit_offset); -#endif if (!num) return 0; @@ -3384,16 +3363,9 @@ if (TREE_TYPE (field) == error_mark_node) continue; -/* LLVM local */ -#ifdef ENABLE_LLVM - num = classify_argument (type_natural_mode (TREE_TYPE (field)), - TREE_TYPE (field), subclasses, - bit_offset); -#else num = classify_argument (TYPE_MODE (TREE_TYPE (field)), TREE_TYPE (field), subclasses, bit_offset); -#endif if (!num) return 0; for (i = 0; i < num; i++) Modified: llvm-gcc-4.2/trunk/gcc/toplev.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/toplev.c?rev=46271&r1=46270&r2=46271&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/toplev.c (original) +++ llvm-gcc-4.2/trunk/gcc/toplev.c Tue Jan 22 20:49:24 2008 @@ -2052,6 +2052,9 @@ /* LLVM LOCAL begin */ #ifdef ENABLE_LLVM + /* note: stor-layout.c:layout_type() uses have_regs_of_mode[] to initialize + TYPE_MODE field for user specified vector types. */ + init_regs (); /* note: we need init_emit_once above to initialize ptr_mode and friends. */ llvm_initialize_backend(); return; From tonic at nondot.org Tue Jan 22 21:56:35 2008 From: tonic at nondot.org (Tanya Lattner) Date: Wed, 23 Jan 2008 03:56:35 -0000 Subject: [llvm-commits] [llvm] r46272 - /llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp Message-ID: <200801230356.m0N3uZQ8020225@zion.cs.uiuc.edu> Author: tbrethou Date: Tue Jan 22 21:56:34 2008 New Revision: 46272 URL: http://llvm.org/viewvc/llvm-project?rev=46272&view=rev Log: Merge from mainline. Trivial patch to fix two warnings Modified: llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp Modified: llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp?rev=46272&r1=46271&r2=46272&view=diff ============================================================================== --- llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp (original) +++ llvm/branches/release_22/lib/Target/Mips/MipsRegisterInfo.cpp Tue Jan 22 21:56:34 2008 @@ -292,6 +292,9 @@ FPOffset = NumBytes; RAOffset = 0; NumBytes += 4; + } else { + // No calls and no fp. + RAOffset = FPOffset = 0; } MFI->setObjectOffset(MFI->CreateStackObject(4,4), FPOffset); From clattner at apple.com Tue Jan 22 23:06:25 2008 From: clattner at apple.com (Chris Lattner) Date: Tue, 22 Jan 2008 21:06:25 -0800 Subject: [llvm-commits] [llvm] r46220 - /llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c In-Reply-To: <29F7FE40-FFCD-4EEC-ADA6-AA317D7277B5@apple.com> References: <200801212215.m0LMFxYI020471@zion.cs.uiuc.edu> <29F7FE40-FFCD-4EEC-ADA6-AA317D7277B5@apple.com> Message-ID: On Jan 22, 2008, at 3:02 PM, Tanya Lattner wrote: > This fails with llvm-gcc-4.0, darwin 8, x86. > > ../../src/gcc/llvm-types.cpp:82: failed assertion `(!TYPE_SIZE(Tr) > || !Ty->isSized() || !isInt64(TYPE_SIZE(Tr), true) || getInt64 > (TYPE_SIZE(Tr), true) == getTargetData().getABITypeSizeInBits(Ty)) && > "LLVM type size doesn't match GCC type size!"' > > 2008-01-21-PackedBitFields.c is also failing for me. Does it work with 4.2? If llvm 2.2 will be the last release that includes llvm-gcc 4.0, I don't think this is a problem. -chris > > > -Tanya > > On Jan 21, 2008, at 2:15 PM, Devang Patel wrote: > >> Author: dpatel >> Date: Mon Jan 21 16:15:58 2008 >> New Revision: 46220 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46220&view=rev >> Log: >> New test. >> >> Added: >> llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c >> >> Added: llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/ >> 2008-01-21-PackedStructField.c?rev=46220&view=auto >> >> = >> ===================================================================== >> ======== >> --- llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c (added) >> +++ llvm/trunk/test/CFrontend/2008-01-21-PackedStructField.c Mon >> Jan 21 16:15:58 2008 >> @@ -0,0 +1,5 @@ >> +// RUN: %llvmgcc %s -S -o - >> + >> +struct X { long double b; unsigned char c; double __attribute__ >> ((packed)) d; }; >> +struct X x = { 3.0L, 5, 3.0 }; >> + >> >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From clattner at apple.com Tue Jan 22 23:12:08 2008 From: clattner at apple.com (Chris Lattner) Date: Tue, 22 Jan 2008 21:12:08 -0800 Subject: [llvm-commits] [llvm] r46187 - in /llvm/trunk: include/llvm/ADT/FoldingSet.h lib/Support/FoldingSet.cpp In-Reply-To: <200801190422.m0J4Mrpp008667@zion.cs.uiuc.edu> References: <200801190422.m0J4Mrpp008667@zion.cs.uiuc.edu> Message-ID: On Jan 18, 2008, at 8:22 PM, Ted Kremenek wrote: > Author: kremenek > Date: Fri Jan 18 22:22:50 2008 > New Revision: 46187 > > URL: http://llvm.org/viewvc/llvm-project?rev=46187&view=rev > Log: > Made 'FoldingSetNodeID' a proper class instead of a nested class in > 'FoldingSetNodeImpl' (previously 'FoldingSetNodeID' was a typedef of > 'FoldingSetNodeImpl::NodeID'). > > Why? Clients can now easily forward declare 'FoldingSetNodeID' > without having > to include FoldingSet.h. Whoa, craziness! Thanks Ted, -Chris From clattner at apple.com Tue Jan 22 23:13:09 2008 From: clattner at apple.com (Chris Lattner) Date: Tue, 22 Jan 2008 21:13:09 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46164 - in /llvm-gcc-4.2/trunk/gcc/config/i386: llvm-i386-target.h llvm-i386.cpp In-Reply-To: <200801190947.09887.baldrick@free.fr> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801190947.09887.baldrick@free.fr> Message-ID: <2EB2D672-3B92-42D2-B992-ABE2C6F10C47@apple.com> On Jan 19, 2008, at 12:47 AM, Duncan Sands wrote: >> i32 / i64 all integer structs are not passed byval. > > What about integer arrays? This is an optimization, not a correctness issue. Can you give an example that you mean? -Chris From tonic at nondot.org Tue Jan 22 23:47:52 2008 From: tonic at nondot.org (Tanya Lattner) Date: Wed, 23 Jan 2008 05:47:52 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46273 - in /llvm-gcc-4.2/branches/release_22: configure configure.in Message-ID: <200801230547.m0N5lrvp009475@zion.cs.uiuc.edu> Author: tbrethou Date: Tue Jan 22 23:47:49 2008 New Revision: 46273 URL: http://llvm.org/viewvc/llvm-project?rev=46273&view=rev Log: Disable bootstrap. Modified: llvm-gcc-4.2/branches/release_22/configure llvm-gcc-4.2/branches/release_22/configure.in Modified: llvm-gcc-4.2/branches/release_22/configure URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/release_22/configure?rev=46273&r1=46272&r2=46273&view=diff ============================================================================== --- llvm-gcc-4.2/branches/release_22/configure (original) +++ llvm-gcc-4.2/branches/release_22/configure Tue Jan 22 23:47:49 2008 @@ -45,7 +45,7 @@ --with-build-sysroot=sysroot use sysroot as the system root during the build" ac_help="$ac_help - --enable-bootstrap Enable bootstrapping [yes if native build]" + --enable-bootstrap Enable bootstrapping [no]" ac_help="$ac_help --enable-serial-[{host,target,build}-]configure Force sequential configuration of @@ -3172,7 +3172,7 @@ # Default behavior. Enable bootstrap if we have a compiler # and we are in a native configuration. yes:$build:$build:default) - enable_bootstrap=yes ;; + enable_bootstrap=no ;; *:*:*:default) enable_bootstrap=no ;; Modified: llvm-gcc-4.2/branches/release_22/configure.in URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/release_22/configure.in?rev=46273&r1=46272&r2=46273&view=diff ============================================================================== --- llvm-gcc-4.2/branches/release_22/configure.in (original) +++ llvm-gcc-4.2/branches/release_22/configure.in Tue Jan 22 23:47:49 2008 @@ -1865,7 +1865,7 @@ # not to nest @if/@endif pairs, because configure will not warn you at all. AC_ARG_ENABLE([bootstrap], -[ --enable-bootstrap Enable bootstrapping [yes if native build]],, +[ --enable-bootstrap Enable bootstrapping [no]],, enable_bootstrap=default) # Issue errors and warnings for invalid/strange bootstrap combinations. @@ -1880,7 +1880,7 @@ # Default behavior. Enable bootstrap if we have a compiler # and we are in a native configuration. yes:$build:$build:default) - enable_bootstrap=yes ;; + enable_bootstrap=no ;; *:*:*:default) enable_bootstrap=no ;; From baldrick at free.fr Wed Jan 23 00:03:11 2008 From: baldrick at free.fr (Duncan Sands) Date: Wed, 23 Jan 2008 07:03:11 +0100 Subject: [llvm-commits] =?iso-8859-1?q?=5Bllvm-gcc-4=2E2=5D_r46164_-_in_/l?= =?iso-8859-1?q?lvm-gcc-4=2E2/trunk/gcc/config/i386=3A_llvm-i386-ta?= =?iso-8859-1?q?rget=2Eh=09llvm-i386=2Ecpp?= In-Reply-To: <2EB2D672-3B92-42D2-B992-ABE2C6F10C47@apple.com> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801190947.09887.baldrick@free.fr> <2EB2D672-3B92-42D2-B992-ABE2C6F10C47@apple.com> Message-ID: <200801230703.12134.baldrick@free.fr> > > What about integer arrays? > > This is an optimization, not a correctness issue. Can you give an > example that you mean? According to the x86-64 ABI, arrays of integers that are not more than 8 bytes long are passed in integer registers. Likewise for structs. So it looks like a correctness issue as well as an optimization :) CIao, Duncan. From clattner at apple.com Wed Jan 23 00:42:38 2008 From: clattner at apple.com (Chris Lattner) Date: Tue, 22 Jan 2008 22:42:38 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46164 - in /llvm-gcc-4.2/trunk/gcc/config/i386: llvm-i386-target.h llvm-i386.cpp In-Reply-To: <200801230703.12134.baldrick@free.fr> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801190947.09887.baldrick@free.fr> <2EB2D672-3B92-42D2-B992-ABE2C6F10C47@apple.com> <200801230703.12134.baldrick@free.fr> Message-ID: <1AAE637E-DBCA-4331-BB6C-B8D1D76CC322@apple.com> On Jan 22, 2008, at 10:03 PM, Duncan Sands wrote: >>> What about integer arrays? >> >> This is an optimization, not a correctness issue. Can you give an >> example that you mean? > > According to the x86-64 ABI, arrays of integers that are not more > than 8 bytes long are passed in integer registers. Likewise for > structs. So it looks like a correctness issue as well as an > optimization :) Okay, well we already get many other x86-64 issues wrong already, but Evan is chipping away at it. How do you pass an array by value in C? Example please, -Chris From baldrick at free.fr Wed Jan 23 01:23:53 2008 From: baldrick at free.fr (Duncan Sands) Date: Wed, 23 Jan 2008 08:23:53 +0100 Subject: [llvm-commits] =?iso-8859-1?q?=5Bllvm-gcc-4=2E2=5D_r46164_-_in_/l?= =?iso-8859-1?q?lvm-gcc-4=2E2/trunk/gcc/config/i386=3A_llvm-i386-ta?= =?iso-8859-1?q?rget=2Eh=09llvm-i386=2Ecpp?= In-Reply-To: <1AAE637E-DBCA-4331-BB6C-B8D1D76CC322@apple.com> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801230703.12134.baldrick@free.fr> <1AAE637E-DBCA-4331-BB6C-B8D1D76CC322@apple.com> Message-ID: <200801230823.54902.baldrick@free.fr> > Okay, well we already get many other x86-64 issues wrong already, but > Evan is chipping away at it. How do you pass an array by value in C? > Example please, I find the x86-64 ABI hard to interpret, but it seems to say that aggregates are classified recursively, so it looks like a struct containing a small integer array should be passed in integer registers. Also, it is easy in Ada: the compiler passes small arrays by value, for example: package Arr is type ByValArray is array (1 .. 2) of Short_Integer; function PassArrayByVal (A : ByValArray) return Short_Integer; end; package body Arr is function PassArrayByVal (A : ByValArray) return Short_Integer is begin return A(1) + A(2); end; end; -> define i16 @arr__passarraybyval(i32 %a.0.0) signext nounwind { (Here presumably the i32 was synthesized by llvm-convert from the two element array of shorts passed by value). Can you please clarify the roles of llvm-gcc and the code generators in getting ABI compatibility. When generating IR for x86-64, llvm-gcc sometimes chops by-value structs into pieces, and sometimes passes the struct as a byval parameter. Since it chops up all-integer structs, and this corresponds more or less to what the ABI says, I assumed this was an attempt to get ABI correctness. Especially as the code generators don't seem to bother themselves with following the details of the ABI (yet), and just push byval parameters onto the stack. Since you say >> This is an optimization, not a correctness issue I guess this means that the plan is to teach the codegenerators how to pass any aggregate byval in an ABI conformant way (not the case right now), but still do some chopping up in the front-end to help the optimizers. Of course this chopping up needs to be done carefully so the final result squirted out by the codegenerators (once they are ABI conformant) is the same as if the chopping had not been done... Is this chopping really a big win? Is it not possible to get an equivalent level of optimization by enhancing alias analysis? Ciao, Duncan. From isanbard at gmail.com Wed Jan 23 03:11:12 2008 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 23 Jan 2008 01:11:12 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46170 - in /llvm-gcc-4.2/trunk/gcc: autom4te.cache/output.0 autom4te.cache/requests autom4te.cache/traces.0 configure configure.ac In-Reply-To: <1419F055-D4A0-4DE4-9D37-368916BF1822@apple.com> References: <200801181935.m0IJZ1FT014499@zion.cs.uiuc.edu> <58CFD0FF-1C83-4C9B-A98E-70A4877FF87D@apple.com> <1419F055-D4A0-4DE4-9D37-368916BF1822@apple.com> Message-ID: On Jan 18, 2008, at 11:53 AM, Devang Patel wrote: > On Jan 18, 2008, at 11:40 AM, Eric Christopher wrote: >> On Jan 18, 2008, at 11:35 AM, Devang Patel wrote: >> >>> llvm-gcc-4.2/trunk/gcc/autom4te.cache/output.0 >>> llvm-gcc-4.2/trunk/gcc/autom4te.cache/requests >>> llvm-gcc-4.2/trunk/gcc/autom4te.cache/traces.0 >> >> Any reason why the auto-cache is checked into svn? > > > No idea. I do not even know how they are used. If you think they are > not required please remove it. The autom4te.cache is used during an autoconf run only. They shouldn't be checked in. -bw From sabre at nondot.org Wed Jan 23 13:01:50 2008 From: sabre at nondot.org (Chris Lattner) Date: Wed, 23 Jan 2008 19:01:50 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46275 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Message-ID: <200801231901.m0NJ1o1r020418@zion.cs.uiuc.edu> Author: lattner Date: Wed Jan 23 13:01:49 2008 New Revision: 46275 URL: http://llvm.org/viewvc/llvm-project?rev=46275&view=rev Log: Fix rdar://5701047, llvm-gcc crashes on this testcase on ppc: typedef __attribute__((altivec(vector__))) float vFloat; static const vFloat _minusZero = ((const vFloat) (-0.0f)); vFloat x; void foo(vFloat f0, vFloat f1) { x = vec_vmaddfp(f0, f1, _minusZero); } vector_cst's are supposed to be zerofilled if insufficient elements are specified. Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46275&r1=46274&r2=46275&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed Jan 23 13:01:49 2008 @@ -5538,6 +5538,15 @@ std::vector Elts; for (tree elt = TREE_VECTOR_CST_ELTS(exp); elt; elt = TREE_CHAIN(elt)) Elts.push_back(Convert(TREE_VALUE(elt))); + + // The vector should be zero filled if insufficient elements are provided. + if (Elts.size() < TYPE_VECTOR_SUBPARTS(TREE_TYPE(exp))) { + tree EltType = TREE_TYPE(TREE_TYPE(exp)); + Constant *Zero = Constant::getNullValue(ConvertType(EltType)); + while (Elts.size() < TYPE_VECTOR_SUBPARTS(TREE_TYPE(exp))) + Elts.push_back(Zero); + } + return ConstantVector::get(Elts); } else { return Constant::getNullValue(ConvertType(TREE_TYPE(exp))); From sabre at nondot.org Wed Jan 23 13:04:14 2008 From: sabre at nondot.org (Chris Lattner) Date: Wed, 23 Jan 2008 19:04:14 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46276 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Message-ID: <200801231904.m0NJ4Ej7020557@zion.cs.uiuc.edu> Author: lattner Date: Wed Jan 23 13:04:14 2008 New Revision: 46276 URL: http://llvm.org/viewvc/llvm-project?rev=46276&view=rev Log: Fix rdar://5701047, llvm-gcc crashes on this testcase on ppc: typedef __attribute__((altivec(vector__))) float vFloat; static const vFloat _minusZero = ((const vFloat) (-0.0f)); vFloat x; void foo(vFloat f0, vFloat f1) { x = vec_vmaddfp(f0, f1, _minusZero); } vector_cst's are supposed to be zerofilled if insufficient elements are specified. Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=46276&r1=46275&r2=46276&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Wed Jan 23 13:04:14 2008 @@ -5962,6 +5962,15 @@ std::vector Elts; for (tree elt = TREE_VECTOR_CST_ELTS(exp); elt; elt = TREE_CHAIN(elt)) Elts.push_back(Convert(TREE_VALUE(elt))); + + // The vector should be zero filled if insufficient elements are provided. + if (Elts.size() < TYPE_VECTOR_SUBPARTS(TREE_TYPE(exp))) { + tree EltType = TREE_TYPE(TREE_TYPE(exp)); + Constant *Zero = Constant::getNullValue(ConvertType(EltType)); + while (Elts.size() < TYPE_VECTOR_SUBPARTS(TREE_TYPE(exp))) + Elts.push_back(Zero); + } + return ConstantVector::get(Elts); } else { return Constant::getNullValue(ConvertType(TREE_TYPE(exp))); From kremenek at apple.com Wed Jan 23 13:57:39 2008 From: kremenek at apple.com (Ted Kremenek) Date: Wed, 23 Jan 2008 19:57:39 -0000 Subject: [llvm-commits] [llvm] r46277 - /llvm/trunk/include/llvm/ADT/ImmutableSet.h Message-ID: <200801231957.m0NJvdEm013284@zion.cs.uiuc.edu> Author: kremenek Date: Wed Jan 23 13:57:33 2008 New Revision: 46277 URL: http://llvm.org/viewvc/llvm-project?rev=46277&view=rev Log: Added "getRoot()" to ImmutableSet. Made ImmutableSet::ImmutableSet(ImutAVLTree* Root) public. (this allows handy casting between trees and sets). Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h Modified: llvm/trunk/include/llvm/ADT/ImmutableSet.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ImmutableSet.h?rev=46277&r1=46276&r2=46277&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/ImmutableSet.h (original) +++ llvm/trunk/include/llvm/ADT/ImmutableSet.h Wed Jan 23 13:57:33 2008 @@ -862,14 +862,17 @@ public: typedef typename ValInfo::value_type value_type; typedef typename ValInfo::value_type_ref value_type_ref; - -private: typedef ImutAVLTree TreeTy; + +private: TreeTy* Root; - - ImmutableSet(TreeTy* R) : Root(R) {} - + public: + /// Constructs a set from a pointer to a tree root. In general one + /// should use a Factory object to create sets instead of directly + /// invoking the constructor, but there are cases where make this + /// constructor public is useful. + explicit ImmutableSet(TreeTy* R) : Root(R) {} class Factory { typename TreeTy::Factory F; @@ -924,6 +927,8 @@ return Root && RHS.Root ? Root->isNotEqual(*RHS.Root) : Root != RHS.Root; } + TreeTy* getRoot() const { return Root; } + /// isEmpty - Return true if the set contains no elements. bool isEmpty() const { return !Root; } From baldrick at free.fr Wed Jan 23 14:39:46 2008 From: baldrick at free.fr (Duncan Sands) Date: Wed, 23 Jan 2008 20:39:46 -0000 Subject: [llvm-commits] [llvm] r46280 - in /llvm/trunk/lib: CodeGen/SelectionDAG/LegalizeDAG.cpp Target/ARM/ARMISelLowering.cpp Target/IA64/IA64ISelLowering.cpp Target/PowerPC/PPCISelLowering.cpp Target/Sparc/SparcISelDAGToDAG.cpp Target/X86/X86ISelLowering.cpp Target/X86/X86Instr64bit.td Target/X86/X86InstrInfo.td Message-ID: <200801232039.m0NKdlhJ028730@zion.cs.uiuc.edu> Author: baldrick Date: Wed Jan 23 14:39:46 2008 New Revision: 46280 URL: http://llvm.org/viewvc/llvm-project?rev=46280&view=rev Log: The last pieces needed for loading arbitrary precision integers. This won't actually work (and most of the code is dead) unless the new legalization machinery is turned on. While there, I rationalized the handling of i1, and removed some bogus (and unused) sextload patterns. For i1, this could result in microscopically better code for some architectures (not X86). It might also result in worse code if annotating with AssertZExt nodes turns out to be more harmful than helpful. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp llvm/trunk/lib/Target/IA64/IA64ISelLowering.cpp llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp llvm/trunk/lib/Target/X86/X86ISelLowering.cpp llvm/trunk/lib/Target/X86/X86Instr64bit.td llvm/trunk/lib/Target/X86/X86InstrInfo.td Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Wed Jan 23 14:39:46 2008 @@ -1820,76 +1820,188 @@ return Op.ResNo ? Tmp4 : Tmp3; } else { MVT::ValueType SrcVT = LD->getLoadedVT(); - switch (TLI.getLoadXAction(ExtType, SrcVT)) { - default: assert(0 && "This action is not supported yet!"); - case TargetLowering::Promote: - assert(SrcVT == MVT::i1 && - "Can only promote extending LOAD from i1 -> i8!"); - Result = DAG.getExtLoad(ExtType, Node->getValueType(0), Tmp1, Tmp2, - LD->getSrcValue(), LD->getSrcValueOffset(), - MVT::i8, LD->isVolatile(), LD->getAlignment()); - Tmp1 = Result.getValue(0); - Tmp2 = Result.getValue(1); - break; - case TargetLowering::Custom: - isCustom = true; - // FALLTHROUGH - case TargetLowering::Legal: - Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp2, LD->getOffset()); - Tmp1 = Result.getValue(0); - Tmp2 = Result.getValue(1); - - if (isCustom) { - Tmp3 = TLI.LowerOperation(Result, DAG); - if (Tmp3.Val) { - Tmp1 = LegalizeOp(Tmp3); - Tmp2 = LegalizeOp(Tmp3.getValue(1)); - } + unsigned SrcWidth = MVT::getSizeInBits(SrcVT); + int SVOffset = LD->getSrcValueOffset(); + unsigned Alignment = LD->getAlignment(); + bool isVolatile = LD->isVolatile(); + + if (SrcWidth != MVT::getStoreSizeInBits(SrcVT) && + // Some targets pretend to have an i1 loading operation, and actually + // load an i8. This trick is correct for ZEXTLOAD because the top 7 + // bits are guaranteed to be zero; it helps the optimizers understand + // that these bits are zero. It is also useful for EXTLOAD, since it + // tells the optimizers that those bits are undefined. It would be + // nice to have an effective generic way of getting these benefits... + // Until such a way is found, don't insist on promoting i1 here. + (SrcVT != MVT::i1 || + TLI.getLoadXAction(ExtType, MVT::i1) == TargetLowering::Promote)) { + // Promote to a byte-sized load if not loading an integral number of + // bytes. For example, promote EXTLOAD:i20 -> EXTLOAD:i24. + unsigned NewWidth = MVT::getStoreSizeInBits(SrcVT); + MVT::ValueType NVT = MVT::getIntegerType(NewWidth); + SDOperand Ch; + + // The extra bits are guaranteed to be zero, since we stored them that + // way. A zext load from NVT thus automatically gives zext from SrcVT. + + ISD::LoadExtType NewExtType = + ExtType == ISD::ZEXTLOAD ? ISD::ZEXTLOAD : ISD::EXTLOAD; + + Result = DAG.getExtLoad(NewExtType, Node->getValueType(0), + Tmp1, Tmp2, LD->getSrcValue(), SVOffset, + NVT, isVolatile, Alignment); + + Ch = Result.getValue(1); // The chain. + + if (ExtType == ISD::SEXTLOAD) + // Having the top bits zero doesn't help when sign extending. + Result = DAG.getNode(ISD::SIGN_EXTEND_INREG, Result.getValueType(), + Result, DAG.getValueType(SrcVT)); + else if (ExtType == ISD::ZEXTLOAD || NVT == Result.getValueType()) + // All the top bits are guaranteed to be zero - inform the optimizers. + Result = DAG.getNode(ISD::AssertZext, Result.getValueType(), Result, + DAG.getValueType(SrcVT)); + + Tmp1 = LegalizeOp(Result); + Tmp2 = LegalizeOp(Ch); + } else if (SrcWidth & (SrcWidth - 1)) { + // If not loading a power-of-2 number of bits, expand as two loads. + assert(MVT::isExtendedVT(SrcVT) && !MVT::isVector(SrcVT) && + "Unsupported extload!"); + unsigned RoundWidth = 1 << Log2_32(SrcWidth); + assert(RoundWidth < SrcWidth); + unsigned ExtraWidth = SrcWidth - RoundWidth; + assert(ExtraWidth < RoundWidth); + assert(!(RoundWidth % 8) && !(ExtraWidth % 8) && + "Load size not an integral number of bytes!"); + MVT::ValueType RoundVT = MVT::getIntegerType(RoundWidth); + MVT::ValueType ExtraVT = MVT::getIntegerType(ExtraWidth); + SDOperand Lo, Hi, Ch; + unsigned IncrementSize; + + if (TLI.isLittleEndian()) { + // EXTLOAD:i24 -> ZEXTLOAD:i16 | (shl EXTLOAD at +2:i8, 16) + // Load the bottom RoundWidth bits. + Lo = DAG.getExtLoad(ISD::ZEXTLOAD, Node->getValueType(0), Tmp1, Tmp2, + LD->getSrcValue(), SVOffset, RoundVT, isVolatile, + Alignment); + + // Load the remaining ExtraWidth bits. + IncrementSize = RoundWidth / 8; + Tmp2 = DAG.getNode(ISD::ADD, Tmp2.getValueType(), Tmp2, + DAG.getIntPtrConstant(IncrementSize)); + Hi = DAG.getExtLoad(ExtType, Node->getValueType(0), Tmp1, Tmp2, + LD->getSrcValue(), SVOffset + IncrementSize, + ExtraVT, isVolatile, + MinAlign(Alignment, IncrementSize)); + + // Build a factor node to remember that this load is independent of the + // other one. + Ch = DAG.getNode(ISD::TokenFactor, MVT::Other, Lo.getValue(1), + Hi.getValue(1)); + + // Move the top bits to the right place. + Hi = DAG.getNode(ISD::SHL, Hi.getValueType(), Hi, + DAG.getConstant(RoundWidth, TLI.getShiftAmountTy())); + + // Join the hi and lo parts. + Result = DAG.getNode(ISD::OR, Node->getValueType(0), Lo, Hi); } else { - // If this is an unaligned load and the target doesn't support it, - // expand it. - if (!TLI.allowsUnalignedMemoryAccesses()) { - unsigned ABIAlignment = TLI.getTargetData()-> - getABITypeAlignment(MVT::getTypeForValueType(LD->getLoadedVT())); - if (LD->getAlignment() < ABIAlignment){ - Result = ExpandUnalignedLoad(cast(Result.Val), DAG, - TLI); - Tmp1 = Result.getOperand(0); - Tmp2 = Result.getOperand(1); - Tmp1 = LegalizeOp(Tmp1); - Tmp2 = LegalizeOp(Tmp2); + // Big endian - avoid unaligned loads. + // EXTLOAD:i24 -> (shl EXTLOAD:i16, 8) | ZEXTLOAD at +2:i8 + // Load the top RoundWidth bits. + Hi = DAG.getExtLoad(ExtType, Node->getValueType(0), Tmp1, Tmp2, + LD->getSrcValue(), SVOffset, RoundVT, isVolatile, + Alignment); + + // Load the remaining ExtraWidth bits. + IncrementSize = RoundWidth / 8; + Tmp2 = DAG.getNode(ISD::ADD, Tmp2.getValueType(), Tmp2, + DAG.getIntPtrConstant(IncrementSize)); + Lo = DAG.getExtLoad(ISD::ZEXTLOAD, Node->getValueType(0), Tmp1, Tmp2, + LD->getSrcValue(), SVOffset + IncrementSize, + ExtraVT, isVolatile, + MinAlign(Alignment, IncrementSize)); + + // Build a factor node to remember that this load is independent of the + // other one. + Ch = DAG.getNode(ISD::TokenFactor, MVT::Other, Lo.getValue(1), + Hi.getValue(1)); + + // Move the top bits to the right place. + Hi = DAG.getNode(ISD::SHL, Hi.getValueType(), Hi, + DAG.getConstant(ExtraWidth, TLI.getShiftAmountTy())); + + // Join the hi and lo parts. + Result = DAG.getNode(ISD::OR, Node->getValueType(0), Lo, Hi); + } + + Tmp1 = LegalizeOp(Result); + Tmp2 = LegalizeOp(Ch); + } else { + switch (TLI.getLoadXAction(ExtType, SrcVT)) { + default: assert(0 && "This action is not supported yet!"); + case TargetLowering::Custom: + isCustom = true; + // FALLTHROUGH + case TargetLowering::Legal: + Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp2, LD->getOffset()); + Tmp1 = Result.getValue(0); + Tmp2 = Result.getValue(1); + + if (isCustom) { + Tmp3 = TLI.LowerOperation(Result, DAG); + if (Tmp3.Val) { + Tmp1 = LegalizeOp(Tmp3); + Tmp2 = LegalizeOp(Tmp3.getValue(1)); + } + } else { + // If this is an unaligned load and the target doesn't support it, + // expand it. + if (!TLI.allowsUnalignedMemoryAccesses()) { + unsigned ABIAlignment = TLI.getTargetData()-> + getABITypeAlignment(MVT::getTypeForValueType(LD->getLoadedVT())); + if (LD->getAlignment() < ABIAlignment){ + Result = ExpandUnalignedLoad(cast(Result.Val), DAG, + TLI); + Tmp1 = Result.getOperand(0); + Tmp2 = Result.getOperand(1); + Tmp1 = LegalizeOp(Tmp1); + Tmp2 = LegalizeOp(Tmp2); + } } } - } - break; - case TargetLowering::Expand: - // f64 = EXTLOAD f32 should expand to LOAD, FP_EXTEND - if (SrcVT == MVT::f32 && Node->getValueType(0) == MVT::f64) { - SDOperand Load = DAG.getLoad(SrcVT, Tmp1, Tmp2, LD->getSrcValue(), - LD->getSrcValueOffset(), - LD->isVolatile(), LD->getAlignment()); - Result = DAG.getNode(ISD::FP_EXTEND, Node->getValueType(0), Load); - Tmp1 = LegalizeOp(Result); // Relegalize new nodes. - Tmp2 = LegalizeOp(Load.getValue(1)); + break; + case TargetLowering::Expand: + // f64 = EXTLOAD f32 should expand to LOAD, FP_EXTEND + if (SrcVT == MVT::f32 && Node->getValueType(0) == MVT::f64) { + SDOperand Load = DAG.getLoad(SrcVT, Tmp1, Tmp2, LD->getSrcValue(), + LD->getSrcValueOffset(), + LD->isVolatile(), LD->getAlignment()); + Result = DAG.getNode(ISD::FP_EXTEND, Node->getValueType(0), Load); + Tmp1 = LegalizeOp(Result); // Relegalize new nodes. + Tmp2 = LegalizeOp(Load.getValue(1)); + break; + } + assert(ExtType != ISD::EXTLOAD &&"EXTLOAD should always be supported!"); + // Turn the unsupported load into an EXTLOAD followed by an explicit + // zero/sign extend inreg. + Result = DAG.getExtLoad(ISD::EXTLOAD, Node->getValueType(0), + Tmp1, Tmp2, LD->getSrcValue(), + LD->getSrcValueOffset(), SrcVT, + LD->isVolatile(), LD->getAlignment()); + SDOperand ValRes; + if (ExtType == ISD::SEXTLOAD) + ValRes = DAG.getNode(ISD::SIGN_EXTEND_INREG, Result.getValueType(), + Result, DAG.getValueType(SrcVT)); + else + ValRes = DAG.getZeroExtendInReg(Result, SrcVT); + Tmp1 = LegalizeOp(ValRes); // Relegalize new nodes. + Tmp2 = LegalizeOp(Result.getValue(1)); // Relegalize new nodes. break; } - assert(ExtType != ISD::EXTLOAD &&"EXTLOAD should always be supported!"); - // Turn the unsupported load into an EXTLOAD followed by an explicit - // zero/sign extend inreg. - Result = DAG.getExtLoad(ISD::EXTLOAD, Node->getValueType(0), - Tmp1, Tmp2, LD->getSrcValue(), - LD->getSrcValueOffset(), SrcVT, - LD->isVolatile(), LD->getAlignment()); - SDOperand ValRes; - if (ExtType == ISD::SEXTLOAD) - ValRes = DAG.getNode(ISD::SIGN_EXTEND_INREG, Result.getValueType(), - Result, DAG.getValueType(SrcVT)); - else - ValRes = DAG.getZeroExtendInReg(Result, SrcVT); - Tmp1 = LegalizeOp(ValRes); // Relegalize new nodes. - Tmp2 = LegalizeOp(Result.getValue(1)); // Relegalize new nodes. - break; } + // Since loads produce two values, make sure to remember that we legalized // both of them. AddLegalizedOperand(SDOperand(Node, 0), Tmp1); Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original) +++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Wed Jan 23 14:39:46 2008 @@ -133,6 +133,9 @@ // ARM does not have f32 extending load. setLoadXAction(ISD::EXTLOAD, MVT::f32, Expand); + // ARM does not have i1 sign extending load. + setLoadXAction(ISD::SEXTLOAD, MVT::i1, Promote); + // ARM supports all 4 flavors of integer indexed load / store. for (unsigned im = (unsigned)ISD::PRE_INC; im != (unsigned)ISD::LAST_INDEXED_MODE; ++im) { Modified: llvm/trunk/lib/Target/IA64/IA64ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/IA64/IA64ISelLowering.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/IA64/IA64ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/IA64/IA64ISelLowering.cpp Wed Jan 23 14:39:46 2008 @@ -37,9 +37,9 @@ setLoadXAction(ISD::EXTLOAD , MVT::i1 , Promote); - setLoadXAction(ISD::ZEXTLOAD , MVT::i1 , Expand); + setLoadXAction(ISD::ZEXTLOAD , MVT::i1 , Promote); - setLoadXAction(ISD::SEXTLOAD , MVT::i1 , Expand); + setLoadXAction(ISD::SEXTLOAD , MVT::i1 , Promote); setLoadXAction(ISD::SEXTLOAD , MVT::i8 , Expand); setLoadXAction(ISD::SEXTLOAD , MVT::i16 , Expand); setLoadXAction(ISD::SEXTLOAD , MVT::i32 , Expand); Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Wed Jan 23 14:39:46 2008 @@ -52,9 +52,9 @@ addRegisterClass(MVT::f64, PPC::F8RCRegisterClass); // PowerPC has an i16 but no i8 (or i1) SEXTLOAD - setLoadXAction(ISD::SEXTLOAD, MVT::i1, Expand); + setLoadXAction(ISD::SEXTLOAD, MVT::i1, Promote); setLoadXAction(ISD::SEXTLOAD, MVT::i8, Expand); - + setTruncStoreAction(MVT::f64, MVT::f32, Expand); // PowerPC has pre-inc load and store's. Modified: llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp (original) +++ llvm/trunk/lib/Target/Sparc/SparcISelDAGToDAG.cpp Wed Jan 23 14:39:46 2008 @@ -138,7 +138,10 @@ // Turn FP extload into load/fextend setLoadXAction(ISD::EXTLOAD, MVT::f32, Expand); - + + // Sparc doesn't have i1 sign extending load + setLoadXAction(ISD::SEXTLOAD, MVT::i1, Promote); + // Custom legalize GlobalAddress nodes into LO/HI parts. setOperationAction(ISD::GlobalAddress, MVT::i32, Custom); setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom); Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Jan 23 14:39:46 2008 @@ -80,7 +80,7 @@ if (Subtarget->is64Bit()) addRegisterClass(MVT::i64, X86::GR64RegisterClass); - setLoadXAction(ISD::SEXTLOAD, MVT::i1, Expand); + setLoadXAction(ISD::SEXTLOAD, MVT::i1, Promote); // We don't accept any truncstore of integer registers. setTruncStoreAction(MVT::i64, MVT::i32, Expand); Modified: llvm/trunk/lib/Target/X86/X86Instr64bit.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Instr64bit.td?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86Instr64bit.td (original) +++ llvm/trunk/lib/Target/X86/X86Instr64bit.td Wed Jan 23 14:39:46 2008 @@ -61,7 +61,6 @@ return (int64_t)N->getValue() == (int8_t)N->getValue(); }]>; -def sextloadi64i1 : PatFrag<(ops node:$ptr), (i64 (sextloadi1 node:$ptr))>; def sextloadi64i8 : PatFrag<(ops node:$ptr), (i64 (sextloadi8 node:$ptr))>; def sextloadi64i16 : PatFrag<(ops node:$ptr), (i64 (sextloadi16 node:$ptr))>; def sextloadi64i32 : PatFrag<(ops node:$ptr), (i64 (sextloadi32 node:$ptr))>; @@ -1177,8 +1176,7 @@ def : Pat<(parallel (X86cmp GR64:$src1, 0), (implicit EFLAGS)), (TEST64rr GR64:$src1, GR64:$src1)>; -// {s|z}extload bool -> {s|z}extload byte -def : Pat<(sextloadi64i1 addr:$src), (MOVSX64rm8 addr:$src)>; +// zextload bool -> zextload byte def : Pat<(zextloadi64i1 addr:$src), (MOVZX64rm8 addr:$src)>; // extload Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.td?rev=46280&r1=46279&r2=46280&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86InstrInfo.td (original) +++ llvm/trunk/lib/Target/X86/X86InstrInfo.td Wed Jan 23 14:39:46 2008 @@ -226,8 +226,6 @@ def loadf64 : PatFrag<(ops node:$ptr), (f64 (load node:$ptr))>; def loadf80 : PatFrag<(ops node:$ptr), (f80 (load node:$ptr))>; -def sextloadi16i1 : PatFrag<(ops node:$ptr), (i16 (sextloadi1 node:$ptr))>; -def sextloadi32i1 : PatFrag<(ops node:$ptr), (i32 (sextloadi1 node:$ptr))>; def sextloadi16i8 : PatFrag<(ops node:$ptr), (i16 (sextloadi8 node:$ptr))>; def sextloadi32i8 : PatFrag<(ops node:$ptr), (i32 (sextloadi8 node:$ptr))>; def sextloadi32i16 : PatFrag<(ops node:$ptr), (i32 (sextloadi16 node:$ptr))>; @@ -2608,9 +2606,7 @@ def : Pat<(parallel (X86cmp GR32:$src1, 0), (implicit EFLAGS)), (TEST32rr GR32:$src1, GR32:$src1)>; -// {s|z}extload bool -> {s|z}extload byte -def : Pat<(sextloadi16i1 addr:$src), (MOVSX16rm8 addr:$src)>; -def : Pat<(sextloadi32i1 addr:$src), (MOVSX32rm8 addr:$src)>; +// zextload bool -> zextload byte def : Pat<(zextloadi8i1 addr:$src), (MOV8rm addr:$src)>; def : Pat<(zextloadi16i1 addr:$src), (MOVZX16rm8 addr:$src)>; def : Pat<(zextloadi32i1 addr:$src), (MOVZX32rm8 addr:$src)>; From isanbard at gmail.com Wed Jan 23 15:41:06 2008 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 23 Jan 2008 21:41:06 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46281 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c Message-ID: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> Author: void Date: Wed Jan 23 15:41:05 2008 New Revision: 46281 URL: http://llvm.org/viewvc/llvm-project?rev=46281&view=rev Log: GCC barfs this to the .s file directly: .objc_class_name_CrashTestPlugin=0 .globl .objc_class_name_CrashTestPlugin without creating a tree node or anything. We, on the other hand, are creating a tree node and outputting: .globl .objc_class_name_CrashTestPlugin .zerofill __DATA, __common, .objc_class_name_CrashTestPlugin, 4, 2 This causes a linker crash because it's in the wrong section: (undefined [lazy bound]) external [no dead strip] .objc_class_name_NSObject 00000000 (__TEXT,__text) non-external _-[CrashTestPlugin crash] 000000d8 (__DATA,__common) external [no dead strip] .objc_class_name_CrashTestPlugin The .objc_class_name_CrashTestPlugin symbol is bad. It should look like: 00000000 (absolute) external .objc_class_name_CrashTestPlugin Because it's barfed out directly to the file, we do the same with a file asm directive. Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=46281&r1=46280&r2=46281&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original) +++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Wed Jan 23 15:41:05 2008 @@ -949,15 +949,31 @@ /* LLVM LOCAL */ #endif /*ENABLE_LLVM*/ -#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ - do { \ - if (FILE) { \ - fprintf (FILE, "\t"); \ - assemble_name (FILE, NAME); \ - fprintf (FILE, "=0\n"); \ - (*targetm.asm_out.globalize_label) (FILE, NAME); \ - } \ - } while (0) +/* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM +#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ + do { \ + if (FILE) { \ + char *Buffer = alloca(strlen(NAME)+30); \ + sprintf(Buffer, "\t%s=0", NAME); \ + llvm_emit_file_scope_asm(Buffer); \ + sprintf(Buffer, "\t.globl %s", NAME); \ + llvm_emit_file_scope_asm(Buffer); \ + } \ + } while (0) +#else +/* LLVM LOCAL end */ +#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ + do { \ + if (FILE) { \ + fprintf (FILE, "\t"); \ + assemble_name (FILE, NAME); \ + fprintf (FILE, "=0\n"); \ + (*targetm.asm_out.globalize_label) (FILE, NAME); \ + } \ + } while (0) +/* LLVM LOCAL */ +#endif /*ENABLE_LLVM*/ /* Globalizing directive for a label. */ #define GLOBAL_ASM_OP ".globl " Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46281&r1=46280&r2=46281&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Wed Jan 23 15:41:05 2008 @@ -18388,12 +18388,6 @@ else return; - /* LLVM LOCAL begin */ -#ifdef ENABLE_LLVM -#undef ASM_DECLARE_CLASS_REFERENCE -#endif - /* LLVM LOCAL end */ - #ifdef ASM_DECLARE_CLASS_REFERENCE if (flag_next_runtime) { From isanbard at gmail.com Wed Jan 23 16:14:59 2008 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 23 Jan 2008 22:14:59 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46282 - in /llvm-gcc-4.0/trunk/gcc: config/darwin.h objc/objc-act.c Message-ID: <200801232215.m0NMF5Vb006582@zion.cs.uiuc.edu> Author: void Date: Wed Jan 23 16:14:50 2008 New Revision: 46282 URL: http://llvm.org/viewvc/llvm-project?rev=46282&view=rev Log: Backport of r46281: GCC barfs this to the .s file directly: .objc_class_name_CrashTestPlugin=0 .globl .objc_class_name_CrashTestPlugin without creating a tree node or anything. We, on the other hand, are creating a tree node and outputting: .globl .objc_class_name_CrashTestPlugin .zerofill __DATA, __common, .objc_class_name_CrashTestPlugin, 4, 2 This causes a linker crash because it's in the wrong section: (undefined [lazy bound]) external [no dead strip] .objc_class_name_NSObject 00000000 (__TEXT,__text) non-external _-[CrashTestPlugin crash] 000000d8 (__DATA,__common) external [no dead strip] .objc_class_name_CrashTestPlugin The .objc_class_name_CrashTestPlugin symbol is bad. It should look like: 00000000 (absolute) external .objc_class_name_CrashTestPlugin Because it's barfed out directly to the file, we do the same with a file asm directive. Modified: llvm-gcc-4.0/trunk/gcc/config/darwin.h llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.0/trunk/gcc/config/darwin.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/config/darwin.h?rev=46282&r1=46281&r2=46282&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/config/darwin.h (original) +++ llvm-gcc-4.0/trunk/gcc/config/darwin.h Wed Jan 23 16:14:50 2008 @@ -1410,15 +1410,31 @@ /* LLVM LOCAL */ #endif /*ENABLE_LLVM*/ -#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ - do { \ - if (FILE) { \ - fprintf (FILE, "\t"); \ - assemble_name (FILE, NAME); \ - fprintf (FILE, "=0\n"); \ - (*targetm.asm_out.globalize_label) (FILE, NAME); \ - } \ - } while (0) +/* LLVM LOCAL begin */ +#ifdef ENABLE_LLVM +#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ + do { \ + if (FILE) { \ + char *Buffer = alloca(strlen(NAME)+30); \ + sprintf(Buffer, "\t%s=0", NAME); \ + llvm_emit_file_scope_asm(Buffer); \ + sprintf(Buffer, "\t.globl %s", NAME); \ + llvm_emit_file_scope_asm(Buffer); \ + } \ + } while (0) +#else +/* LLVM LOCAL end */ +#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ + do { \ + if (FILE) { \ + fprintf (FILE, "\t"); \ + assemble_name (FILE, NAME); \ + fprintf (FILE, "=0\n"); \ + (*targetm.asm_out.globalize_label) (FILE, NAME); \ + } \ + } while (0) +/* LLVM LOCAL */ +#endif /*ENABLE_LLVM*/ /* Globalizing directive for a label. */ #define GLOBAL_ASM_OP ".globl " Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/objc/objc-act.c?rev=46282&r1=46281&r2=46282&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Wed Jan 23 16:14:50 2008 @@ -18452,12 +18452,6 @@ else return; - /* APPLE LOCAL begin LLVM */ -#ifdef ENABLE_LLVM -#undef ASM_DECLARE_CLASS_REFERENCE -#endif - /* APPLE LOCAL end LLVM */ - #ifdef ASM_DECLARE_CLASS_REFERENCE if (flag_next_runtime) { From kremenek at apple.com Wed Jan 23 16:29:59 2008 From: kremenek at apple.com (Ted Kremenek) Date: Wed, 23 Jan 2008 22:29:59 -0000 Subject: [llvm-commits] [llvm] r46283 - /llvm/trunk/include/llvm/Support/GraphWriter.h Message-ID: <200801232230.m0NMU04e018718@zion.cs.uiuc.edu> Author: kremenek Date: Wed Jan 23 16:29:58 2008 New Revision: 46283 URL: http://llvm.org/viewvc/llvm-project?rev=46283&view=rev Log: Added special escape sequences "\{", "\}", and "\|" when processing getNodeLabel(); these sequences allow the user to specify the characters '{', '}', and '|' in the label, which facilitate breaking the label into multiple record segments. Modified: llvm/trunk/include/llvm/Support/GraphWriter.h Modified: llvm/trunk/include/llvm/Support/GraphWriter.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/GraphWriter.h?rev=46283&r1=46282&r2=46283&view=diff ============================================================================== --- llvm/trunk/include/llvm/Support/GraphWriter.h (original) +++ llvm/trunk/include/llvm/Support/GraphWriter.h Wed Jan 23 16:29:58 2008 @@ -48,8 +48,13 @@ Str[i] = ' '; break; case '\\': - if (i+1 != Str.length() && Str[i+1] == 'l') - break; // don't disturb \l + if (i+1 != Str.length()) + switch (Str[i+1]) { + case 'l': continue; // don't disturb \l + case '|': case '{': case '}': + Str.erase(Str.begin()+i); continue; + default: break; + } case '{': case '}': case '<': case '>': case '|': case '"': From evan.cheng at apple.com Wed Jan 23 17:17:52 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 23:17:52 -0000 Subject: [llvm-commits] [llvm] r46286 - in /llvm/trunk: include/llvm/Target/TargetLowering.h lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86ISelLowering.h test/CodeGen/X86/byval4.ll test/CodeGen/X86/byval5.ll test/CodeGen/X86/byval6.ll test/CodeGen/X86/byval7.ll Message-ID: <200801232318.m0NNI9ei009365@zion.cs.uiuc.edu> Author: evancheng Date: Wed Jan 23 17:17:41 2008 New Revision: 46286 URL: http://llvm.org/viewvc/llvm-project?rev=46286&view=rev Log: Let each target decide byval alignment. For X86, it's 4-byte unless the aggregare contains SSE vector(s). For x86-64, it's max of 8 or alignment of the type. Added: llvm/trunk/test/CodeGen/X86/byval6.ll llvm/trunk/test/CodeGen/X86/byval7.ll Modified: llvm/trunk/include/llvm/Target/TargetLowering.h llvm/trunk/lib/Target/X86/X86ISelLowering.cpp llvm/trunk/lib/Target/X86/X86ISelLowering.h llvm/trunk/test/CodeGen/X86/byval4.ll llvm/trunk/test/CodeGen/X86/byval5.ll Modified: llvm/trunk/include/llvm/Target/TargetLowering.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLowering.h?rev=46286&r1=46285&r2=46286&view=diff ============================================================================== --- llvm/trunk/include/llvm/Target/TargetLowering.h (original) +++ llvm/trunk/include/llvm/Target/TargetLowering.h Wed Jan 23 17:17:41 2008 @@ -405,6 +405,10 @@ return VT == MVT::iPTR ? PointerTy : VT; } + /// getByValTypeAlignment - Return the desired alignment for ByVal aggregate + /// function arguments in the caller parameter area. + virtual unsigned getByValTypeAlignment(const Type *Ty) const; + /// getRegisterType - Return the type of registers that this ValueType will /// eventually require. MVT::ValueType getRegisterType(MVT::ValueType VT) const { @@ -433,7 +437,7 @@ } assert(0 && "Unsupported extended type!"); } - + /// hasTargetDAGCombine - If true, the target has custom DAG combine /// transformations that it can perform for the specified node. bool hasTargetDAGCombine(ISD::NodeType NT) const { Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46286&r1=46285&r2=46286&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Jan 23 17:17:41 2008 @@ -672,6 +672,46 @@ allowUnalignedMemoryAccesses = true; // x86 supports it! } +/// getMaxByValAlign - Helper for getByValTypeAlignment to determine +/// the desired ByVal argument alignment. +static void getMaxByValAlign(const Type *Ty, unsigned &MaxAlign) { + if (MaxAlign == 16) + return; + if (const VectorType *VTy = dyn_cast(Ty)) { + if (VTy->getBitWidth() == 128) + MaxAlign = 16; + else if (VTy->getBitWidth() == 64) + if (MaxAlign < 8) + MaxAlign = 8; + } else if (const ArrayType *ATy = dyn_cast(Ty)) { + unsigned EltAlign = 0; + getMaxByValAlign(ATy->getElementType(), EltAlign); + if (EltAlign > MaxAlign) + MaxAlign = EltAlign; + } else if (const StructType *STy = dyn_cast(Ty)) { + for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) { + unsigned EltAlign = 0; + getMaxByValAlign(STy->getElementType(i), EltAlign); + if (EltAlign > MaxAlign) + MaxAlign = EltAlign; + if (MaxAlign == 16) + break; + } + } + return; +} + +/// getByValTypeAlignment - Return the desired alignment for ByVal aggregate +/// function arguments in the caller parameter area. For X86, aggregates +/// that contains are placed at 16-byte boundaries while the rest are at +/// 4-byte boundaries. +unsigned X86TargetLowering::getByValTypeAlignment(const Type *Ty) const { + if (Subtarget->is64Bit()) + return getTargetData()->getABITypeAlignment(Ty); + unsigned Align = 4; + getMaxByValAlign(Ty, Align); + return Align; +} /// getPICJumpTableRelocaBase - Returns relocation base for the given PIC /// jumptable. Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.h?rev=46286&r1=46285&r2=46286&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.h (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.h Wed Jan 23 17:17:41 2008 @@ -322,6 +322,12 @@ /// getStackPtrReg - Return the stack pointer register we are using: either /// ESP or RSP. unsigned getStackPtrReg() const { return X86StackPtr; } + + /// getByValTypeAlignment - Return the desired alignment for ByVal aggregate + /// function arguments in the caller parameter area. For X86, aggregates + /// that contains are placed at 16-byte boundaries while the rest are at + /// 4-byte boundaries. + virtual unsigned getByValTypeAlignment(const Type *Ty) const; /// LowerOperation - Provide custom lowering hooks for some operations. /// Modified: llvm/trunk/test/CodeGen/X86/byval4.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/byval4.ll?rev=46286&r1=46285&r2=46286&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/X86/byval4.ll (original) +++ llvm/trunk/test/CodeGen/X86/byval4.ll Wed Jan 23 17:17:41 2008 @@ -1,5 +1,5 @@ -; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsl | count 2 -; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsw | count 2 +; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsw | count 2 +; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsl | count 2 %struct.s = type { i16, i16, i16, i16, i16, i16 } Modified: llvm/trunk/test/CodeGen/X86/byval5.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/byval5.ll?rev=46286&r1=46285&r2=46286&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/X86/byval5.ll (original) +++ llvm/trunk/test/CodeGen/X86/byval5.ll Wed Jan 23 17:17:41 2008 @@ -1,5 +1,5 @@ -; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsl | count 2 -; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsb | count 2 +; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsb | count 2 +; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsl | count 2 %struct.s = type { i8, i8, i8, i8, i8, i8 } Added: llvm/trunk/test/CodeGen/X86/byval6.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/byval6.ll?rev=46286&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/byval6.ll (added) +++ llvm/trunk/test/CodeGen/X86/byval6.ll Wed Jan 23 17:17:41 2008 @@ -0,0 +1,16 @@ +; RUN: llvm-as < %s | llc -march=x86 | grep add | not grep 16 + + %struct.W = type { x86_fp80, x86_fp80 } + at B = global %struct.W { x86_fp80 0xK4001A000000000000000, x86_fp80 0xK4001C000000000000000 }, align 32 + at .cpx = internal constant %struct.W { x86_fp80 0xK4001E000000000000000, x86_fp80 0xK40028000000000000000 } + +define i32 @main() nounwind { +entry: + tail call void (i32, ...)* @bar( i32 3, %struct.W* byval @.cpx ) nounwind + tail call void (i32, ...)* @baz( i32 3, %struct.W* byval @B ) nounwind + ret i32 undef +} + +declare void @bar(i32, ...) + +declare void @baz(i32, ...) Added: llvm/trunk/test/CodeGen/X86/byval7.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/byval7.ll?rev=46286&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/byval7.ll (added) +++ llvm/trunk/test/CodeGen/X86/byval7.ll Wed Jan 23 17:17:41 2008 @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | llc -march=x86 | grep add | grep 16 + + %struct.S = type { <2 x i64> } + +define i32 @main() nounwind { +entry: + %s = alloca %struct.S ; <%struct.S*> [#uses=2] + %tmp15 = getelementptr %struct.S* %s, i32 0, i32 0 ; <<2 x i64>*> [#uses=1] + store <2 x i64> < i64 8589934595, i64 1 >, <2 x i64>* %tmp15, align 16 + call void @t( i32 1, %struct.S* byval %s ) nounwind + ret i32 0 +} + +declare void @t(i32, %struct.S* byval ) From evan.cheng at apple.com Wed Jan 23 17:43:36 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 23:43:36 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46290 - /llvm-gcc-4.2/trunk/gcc/regclass.c Message-ID: <200801232343.m0NNhaW0021415@zion.cs.uiuc.edu> Author: evancheng Date: Wed Jan 23 17:43:35 2008 New Revision: 46290 URL: http://llvm.org/viewvc/llvm-project?rev=46290&view=rev Log: Only initialize the tables gimplify needs for llvm. Modified: llvm-gcc-4.2/trunk/gcc/regclass.c Modified: llvm-gcc-4.2/trunk/gcc/regclass.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/regclass.c?rev=46290&r1=46289&r2=46290&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/regclass.c (original) +++ llvm-gcc-4.2/trunk/gcc/regclass.c Wed Jan 23 17:43:35 2008 @@ -312,9 +312,13 @@ /* This macro allows the fixed or call-used registers and the register classes to depend on target flags. */ +/* LLVM LOCAL begin */ +#ifndef ENABLE_LLVM #ifdef CONDITIONAL_REGISTER_USAGE CONDITIONAL_REGISTER_USAGE; #endif +#endif +/* LLVM LOCAL end */ /* Compute number of hard regs in each class. */ @@ -324,6 +328,8 @@ if (TEST_HARD_REG_BIT (reg_class_contents[i], j)) reg_class_size[i]++; +/* LLVM LOCAL begin */ +#ifndef ENABLE_LLVM /* Initialize the table of subunions. reg_class_subunion[I][J] gets the largest-numbered reg-class that is contained in the union of classes I and J. */ @@ -471,6 +477,8 @@ else if (CALL_REALLY_USED_REGNO_P (i)) SET_HARD_REG_BIT (regs_invalidated_by_call, i); } +#endif +/* LLVM LOCAL end */ memset (have_regs_of_mode, 0, sizeof (have_regs_of_mode)); memset (contains_reg_of_mode, 0, sizeof (contains_reg_of_mode)); @@ -486,6 +494,8 @@ break; } +/* LLVM LOCAL begin */ +#ifndef ENABLE_LLVM /* Initialize the move cost table. Find every subset of each class and take the maximum cost of moving any subset to any other. */ @@ -542,6 +552,8 @@ may_move_out_cost[m][i][j] = 65536; } } +#endif +/* LLVM LOCAL end */ } /* Compute the table of register modes. From evan.cheng at apple.com Wed Jan 23 17:44:37 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 23:44:37 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46291 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Message-ID: <200801232344.m0NNibZk021462@zion.cs.uiuc.edu> Author: evancheng Date: Wed Jan 23 17:44:36 2008 New Revision: 46291 URL: http://llvm.org/viewvc/llvm-project?rev=46291&view=rev Log: Pointer's are also consider integer types. So %struct.datum = type { i8*, i32 } should not be passed by ByVal. Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=46291&r1=46290&r2=46291&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Wed Jan 23 17:44:36 2008 @@ -681,9 +681,11 @@ /* Returns true if all elements of the type are integer types. */ static bool llvm_x86_is_all_integer_types(const Type *Ty) { for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty->subtype_end(); - I != E; ++I) - if (!I->get()->isIntOrIntVector()) + I != E; ++I) { + const Type *STy = I->get(); + if (!STy->isIntOrIntVector() && STy->getTypeID() != Type::PointerTyID) return false; + } return true; } From tonic at nondot.org Wed Jan 23 17:57:44 2008 From: tonic at nondot.org (Tanya Lattner) Date: Wed, 23 Jan 2008 17:57:44 -0600 Subject: [llvm-commits] CVS: llvm-www/robots.txt Message-ID: <200801232357.m0NNviTq022270@zion.cs.uiuc.edu> Changes in directory llvm-www: robots.txt updated: 1.4 -> 1.5 --- Log message: Disallow viewvc. --- Diffs of the changes: (+1 -0) robots.txt | 1 + 1 files changed, 1 insertion(+) Index: llvm-www/robots.txt diff -u llvm-www/robots.txt:1.4 llvm-www/robots.txt:1.5 --- llvm-www/robots.txt:1.4 Wed Jul 19 12:51:05 2006 +++ llvm-www/robots.txt Wed Jan 23 17:56:51 2008 @@ -5,3 +5,4 @@ Disallow: /stats Disallow: /testresults/X86 Disallow: /nightlytest +Disallow: /viewvc From evan.cheng at apple.com Wed Jan 23 18:22:02 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 00:22:02 -0000 Subject: [llvm-commits] [llvm] r46292 - in /llvm/trunk/lib/CodeGen/SelectionDAG: SelectionDAGISel.cpp TargetLowering.cpp Message-ID: <200801240022.m0O0M2eJ022950@zion.cs.uiuc.edu> Author: evancheng Date: Wed Jan 23 18:22:01 2008 New Revision: 46292 URL: http://llvm.org/viewvc/llvm-project?rev=46292&view=rev Log: Forgot these. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=46292&r1=46291&r2=46292&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Jan 23 18:22:01 2008 @@ -3917,8 +3917,7 @@ Flags |= ISD::ParamFlags::ByVal; const PointerType *Ty = cast(I->getType()); const Type *ElementTy = Ty->getElementType(); - unsigned FrameAlign = - Log2_32(getTargetData()->getCallFrameTypeAlignment(ElementTy)); + unsigned FrameAlign = Log2_32(getByValTypeAlignment(ElementTy)); unsigned FrameSize = getTargetData()->getABITypeSize(ElementTy); Flags |= (FrameAlign << ISD::ParamFlags::ByValAlignOffs); Flags |= (FrameSize << ISD::ParamFlags::ByValSizeOffs); @@ -4047,8 +4046,7 @@ Flags |= ISD::ParamFlags::ByVal; const PointerType *Ty = cast(Args[i].Ty); const Type *ElementTy = Ty->getElementType(); - unsigned FrameAlign = - Log2_32(getTargetData()->getCallFrameTypeAlignment(ElementTy)); + unsigned FrameAlign = Log2_32(getByValTypeAlignment(ElementTy)); unsigned FrameSize = getTargetData()->getABITypeSize(ElementTy); Flags |= (FrameAlign << ISD::ParamFlags::ByValAlignOffs); Flags |= (FrameSize << ISD::ParamFlags::ByValSizeOffs); Modified: llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp?rev=46292&r1=46291&r2=46292&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/TargetLowering.cpp Wed Jan 23 18:22:01 2008 @@ -414,6 +414,12 @@ return 1; } +/// getByValTypeAlignment - Return the desired alignment for ByVal aggregate +/// function arguments in the caller parameter area. +unsigned TargetLowering::getByValTypeAlignment(const Type *Ty) const { + return Log2_32(TD->getCallFrameTypeAlignment(Ty)); +} + SDOperand TargetLowering::getPICJumpTableRelocBase(SDOperand Table, SelectionDAG &DAG) const { if (usesGlobalOffsetTable()) From dalej at apple.com Wed Jan 23 18:34:13 2008 From: dalej at apple.com (Dale Johannesen) Date: Thu, 24 Jan 2008 00:34:13 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46293 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801240034.m0O0YDLP025059@zion.cs.uiuc.edu> Author: johannes Date: Wed Jan 23 18:34:12 2008 New Revision: 46293 URL: http://llvm.org/viewvc/llvm-project?rev=46293&view=rev Log: Make sure initializers for OBJC_PROTOCOLs don't get lost at -O0. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46293&r1=46292&r2=46293&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Wed Jan 23 18:34:12 2008 @@ -9342,8 +9342,11 @@ /* Force 4 byte alignment for protocols */ DECL_ALIGN(decl) = 32; DECL_USER_ALIGN(decl) = 1; - /* LLVM LOCAL end */ finish_var_decl (decl, initlist); + /* At -O0, we may have emitted references to the decl earlier. */ + if (!optimize) + reset_initializer_llvm(decl); + /* LLVM LOCAL end */ } } @@ -13638,6 +13641,11 @@ proto_name = synth_id_with_class_suffix ("_OBJC_PROTOCOL", p); decl = start_var_decl (objc_protocol_template, proto_name); + /* LLVM LOCAL begin */ + /* Force 4 byte alignment for protocols */ + DECL_ALIGN(decl) = 32; + DECL_USER_ALIGN(decl) = 1; + /* LLVM LOCAL end */ PROTOCOL_FORWARD_DECL (p) = decl; } From resistor at mac.com Wed Jan 23 19:10:08 2008 From: resistor at mac.com (Owen Anderson) Date: Thu, 24 Jan 2008 01:10:08 -0000 Subject: [llvm-commits] [llvm] r46295 - in /llvm/trunk: include/llvm/CodeGen/LiveVariables.h include/llvm/CodeGen/MachineInstr.h lib/CodeGen/LiveIntervalAnalysis.cpp lib/CodeGen/LiveVariables.cpp lib/CodeGen/MachineInstr.cpp Message-ID: <200801240110.m0O1A9lC015041@zion.cs.uiuc.edu> Author: resistor Date: Wed Jan 23 19:10:07 2008 New Revision: 46295 URL: http://llvm.org/viewvc/llvm-project?rev=46295&view=rev Log: Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. Modified: llvm/trunk/include/llvm/CodeGen/LiveVariables.h llvm/trunk/include/llvm/CodeGen/MachineInstr.h llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp llvm/trunk/lib/CodeGen/LiveVariables.cpp llvm/trunk/lib/CodeGen/MachineInstr.cpp Modified: llvm/trunk/include/llvm/CodeGen/LiveVariables.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveVariables.h?rev=46295&r1=46294&r2=46295&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/LiveVariables.h (original) +++ llvm/trunk/include/llvm/CodeGen/LiveVariables.h Wed Jan 23 19:10:07 2008 @@ -196,26 +196,13 @@ /// the records for NewMI. void instructionChanged(MachineInstr *OldMI, MachineInstr *NewMI); - /// transferKillDeadInfo - Similar to instructionChanged except it does not - /// update live variables internal data structures. - static void transferKillDeadInfo(MachineInstr *OldMI, MachineInstr *NewMI, - const MRegisterInfo *RegInfo); - - /// addRegisterKilled - We have determined MI kills a register. Look for the - /// operand that uses it and mark it as IsKill. If AddIfNotFound is true, - /// add a implicit operand if it's not found. Returns true if the operand - /// exists / is added. - static bool addRegisterKilled(unsigned IncomingReg, MachineInstr *MI, - const MRegisterInfo *RegInfo, - bool AddIfNotFound = false); - /// addVirtualRegisterKilled - Add information about the fact that the /// specified register is killed after being used by the specified /// instruction. If AddIfNotFound is true, add a implicit operand if it's /// not found. void addVirtualRegisterKilled(unsigned IncomingReg, MachineInstr *MI, bool AddIfNotFound = false) { - if (addRegisterKilled(IncomingReg, MI, RegInfo, AddIfNotFound)) + if (MI->addRegisterKilled(IncomingReg, RegInfo, AddIfNotFound)) getVarInfo(IncomingReg).Kills.push_back(MI); } @@ -246,21 +233,13 @@ /// removeVirtualRegistersKilled - Remove all killed info for the specified /// instruction. void removeVirtualRegistersKilled(MachineInstr *MI); - - /// addRegisterDead - We have determined MI defined a register without a use. - /// Look for the operand that defines it and mark it as IsDead. If - /// AddIfNotFound is true, add a implicit operand if it's not found. Returns - /// true if the operand exists / is added. - static bool addRegisterDead(unsigned IncomingReg, MachineInstr *MI, - const MRegisterInfo *RegInfo, - bool AddIfNotFound = false); /// addVirtualRegisterDead - Add information about the fact that the specified /// register is dead after being used by the specified instruction. If /// AddIfNotFound is true, add a implicit operand if it's not found. void addVirtualRegisterDead(unsigned IncomingReg, MachineInstr *MI, bool AddIfNotFound = false) { - if (addRegisterDead(IncomingReg, MI, RegInfo, AddIfNotFound)) + if (MI->addRegisterDead(IncomingReg, RegInfo, AddIfNotFound)) getVarInfo(IncomingReg).Kills.push_back(MI); } Modified: llvm/trunk/include/llvm/CodeGen/MachineInstr.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineInstr.h?rev=46295&r1=46294&r2=46295&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/MachineInstr.h (original) +++ llvm/trunk/include/llvm/CodeGen/MachineInstr.h Wed Jan 23 19:10:07 2008 @@ -21,6 +21,7 @@ namespace llvm { class TargetInstrDesc; +class MRegisterInfo; template struct ilist_traits; template struct ilist; @@ -144,6 +145,24 @@ /// copyPredicates - Copies predicate operand(s) from MI. void copyPredicates(const MachineInstr *MI); + /// addRegisterKilled - We have determined MI kills a register. Look for the + /// operand that uses it and mark it as IsKill. If AddIfNotFound is true, + /// add a implicit operand if it's not found. Returns true if the operand + /// exists / is added. + bool addRegisterKilled(unsigned IncomingReg, const MRegisterInfo *RegInfo, + bool AddIfNotFound = false); + + /// addRegisterDead - We have determined MI defined a register without a use. + /// Look for the operand that defines it and mark it as IsDead. If + /// AddIfNotFound is true, add a implicit operand if it's not found. Returns + /// true if the operand exists / is added. + bool addRegisterDead(unsigned IncomingReg, const MRegisterInfo *RegInfo, + bool AddIfNotFound = false); + + /// copyKillDeadInfo - copies killed/dead information from one instr to another + void copyKillDeadInfo(MachineInstr *OldMI, + const MRegisterInfo *RegInfo); + // // Debugging support // Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=46295&r1=46294&r2=46295&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original) +++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Jan 23 19:10:07 2008 @@ -717,7 +717,7 @@ if (lv_) lv_->instructionChanged(MI, fmi); else - LiveVariables::transferKillDeadInfo(MI, fmi, mri_); + fmi->copyKillDeadInfo(MI, mri_); MachineBasicBlock &MBB = *MI->getParent(); if (isSS && !mf_->getFrameInfo()->isImmutableObjectIndex(Slot)) vrm.virtFolded(Reg, MI, fmi, (VirtRegMap::ModRef)MRInfo); Modified: llvm/trunk/lib/CodeGen/LiveVariables.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveVariables.cpp?rev=46295&r1=46294&r2=46295&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/LiveVariables.cpp (original) +++ llvm/trunk/lib/CodeGen/LiveVariables.cpp Wed Jan 23 19:10:07 2008 @@ -192,73 +192,6 @@ MarkVirtRegAliveInBlock(VRInfo, MRI.getVRegDef(reg)->getParent(), *PI); } -bool LiveVariables::addRegisterKilled(unsigned IncomingReg, MachineInstr *MI, - const MRegisterInfo *RegInfo, - bool AddIfNotFound) { - bool Found = false; - for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { - MachineOperand &MO = MI->getOperand(i); - if (MO.isRegister() && MO.isUse()) { - unsigned Reg = MO.getReg(); - if (!Reg) - continue; - if (Reg == IncomingReg) { - MO.setIsKill(); - Found = true; - break; - } else if (MRegisterInfo::isPhysicalRegister(Reg) && - MRegisterInfo::isPhysicalRegister(IncomingReg) && - RegInfo->isSuperRegister(IncomingReg, Reg) && - MO.isKill()) - // A super-register kill already exists. - Found = true; - } - } - - // If not found, this means an alias of one of the operand is killed. Add a - // new implicit operand if required. - if (!Found && AddIfNotFound) { - MI->addOperand(MachineOperand::CreateReg(IncomingReg, false/*IsDef*/, - true/*IsImp*/,true/*IsKill*/)); - return true; - } - return Found; -} - -bool LiveVariables::addRegisterDead(unsigned IncomingReg, MachineInstr *MI, - const MRegisterInfo *RegInfo, - bool AddIfNotFound) { - bool Found = false; - for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { - MachineOperand &MO = MI->getOperand(i); - if (MO.isRegister() && MO.isDef()) { - unsigned Reg = MO.getReg(); - if (!Reg) - continue; - if (Reg == IncomingReg) { - MO.setIsDead(); - Found = true; - break; - } else if (MRegisterInfo::isPhysicalRegister(Reg) && - MRegisterInfo::isPhysicalRegister(IncomingReg) && - RegInfo->isSuperRegister(IncomingReg, Reg) && - MO.isDead()) - // There exists a super-register that's marked dead. - return true; - } - } - - // If not found, this means an alias of one of the operand is dead. Add a - // new implicit operand. - if (!Found && AddIfNotFound) { - MI->addOperand(MachineOperand::CreateReg(IncomingReg, true/*IsDef*/, - true/*IsImp*/,false/*IsKill*/, - true/*IsDead*/)); - return true; - } - return Found; -} - void LiveVariables::HandlePhysRegUse(unsigned Reg, MachineInstr *MI) { // Turn previous partial def's into read/mod/write. for (unsigned i = 0, e = PhysRegPartDef[Reg].size(); i != e; ++i) { @@ -337,7 +270,7 @@ void LiveVariables::addRegisterKills(unsigned Reg, MachineInstr *MI, SmallSet &SubKills) { if (SubKills.count(Reg) == 0) - addRegisterKilled(Reg, MI, RegInfo, true); + MI->addRegisterKilled(Reg, RegInfo, true); else { for (const unsigned *SubRegs = RegInfo->getImmediateSubRegisters(Reg); unsigned SubReg = *SubRegs; ++SubRegs) @@ -348,7 +281,7 @@ bool LiveVariables::HandlePhysRegKill(unsigned Reg, MachineInstr *RefMI) { SmallSet SubKills; if (HandlePhysRegKill(Reg, RefMI, SubKills)) { - addRegisterKilled(Reg, RefMI, RegInfo, true); + RefMI->addRegisterKilled(Reg, RegInfo, true); return true; } else { // Some sub-registers are killed by another MI. @@ -365,15 +298,15 @@ if (PhysRegUsed[Reg]) { if (!HandlePhysRegKill(Reg, LastRef)) { if (PhysRegPartUse[Reg]) - addRegisterKilled(Reg, PhysRegPartUse[Reg], RegInfo, true); + PhysRegPartUse[Reg]->addRegisterKilled(Reg, RegInfo, true); } } else if (PhysRegPartUse[Reg]) // Add implicit use / kill to last partial use. - addRegisterKilled(Reg, PhysRegPartUse[Reg], RegInfo, true); + PhysRegPartUse[Reg]->addRegisterKilled(Reg, RegInfo, true); else if (LastRef != MI) // Defined, but not used. However, watch out for cases where a super-reg // is also defined on the same MI. - addRegisterDead(Reg, LastRef, RegInfo); + LastRef->addRegisterDead(Reg, RegInfo); } for (const unsigned *SubRegs = RegInfo->getSubRegisters(Reg); @@ -382,14 +315,14 @@ if (PhysRegUsed[SubReg]) { if (!HandlePhysRegKill(SubReg, LastRef)) { if (PhysRegPartUse[SubReg]) - addRegisterKilled(SubReg, PhysRegPartUse[SubReg], RegInfo, true); + PhysRegPartUse[SubReg]->addRegisterKilled(SubReg, RegInfo, true); } } else if (PhysRegPartUse[SubReg]) // Add implicit use / kill to last use of a sub-register. - addRegisterKilled(SubReg, PhysRegPartUse[SubReg], RegInfo, true); + PhysRegPartUse[SubReg]->addRegisterKilled(SubReg, RegInfo, true); else if (LastRef != MI) // This must be a def of the subreg on the same MI. - addRegisterDead(SubReg, LastRef, RegInfo); + LastRef->addRegisterDead(SubReg, RegInfo); } } @@ -565,11 +498,13 @@ for (unsigned j = 0, e2 = VirtRegInfo[i].Kills.size(); j != e2; ++j) { if (VirtRegInfo[i].Kills[j] == MRI.getVRegDef(i + MRegisterInfo::FirstVirtualRegister)) - addRegisterDead(i + MRegisterInfo::FirstVirtualRegister, - VirtRegInfo[i].Kills[j], RegInfo); + VirtRegInfo[i].Kills[j]->addRegisterDead(i + + MRegisterInfo::FirstVirtualRegister, + RegInfo); else - addRegisterKilled(i + MRegisterInfo::FirstVirtualRegister, - VirtRegInfo[i].Kills[j], RegInfo); + VirtRegInfo[i].Kills[j]->addRegisterKilled(i + + MRegisterInfo::FirstVirtualRegister, + RegInfo); } // Check to make sure there are no unreachable blocks in the MC CFG for the @@ -620,33 +555,6 @@ } } -/// transferKillDeadInfo - Similar to instructionChanged except it does not -/// update live variables internal data structures. -void LiveVariables::transferKillDeadInfo(MachineInstr *OldMI, - MachineInstr *NewMI, - const MRegisterInfo *RegInfo) { - // If the instruction defines any virtual registers, update the VarInfo, - // kill and dead information for the instruction. - for (unsigned i = 0, e = OldMI->getNumOperands(); i != e; ++i) { - MachineOperand &MO = OldMI->getOperand(i); - if (MO.isRegister() && MO.getReg() && - MRegisterInfo::isVirtualRegister(MO.getReg())) { - unsigned Reg = MO.getReg(); - if (MO.isDef()) { - if (MO.isDead()) { - MO.setIsDead(false); - addRegisterDead(Reg, NewMI, RegInfo); - } - } - if (MO.isKill()) { - MO.setIsKill(false); - addRegisterKilled(Reg, NewMI, RegInfo); - } - } - } -} - - /// removeVirtualRegistersKilled - Remove all killed info for the specified /// instruction. void LiveVariables::removeVirtualRegistersKilled(MachineInstr *MI) { Modified: llvm/trunk/lib/CodeGen/MachineInstr.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstr.cpp?rev=46295&r1=46294&r2=46295&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/MachineInstr.cpp (original) +++ llvm/trunk/lib/CodeGen/MachineInstr.cpp Wed Jan 23 19:10:07 2008 @@ -623,3 +623,93 @@ OS << "\n"; } +bool MachineInstr::addRegisterKilled(unsigned IncomingReg, + const MRegisterInfo *RegInfo, + bool AddIfNotFound) { + bool Found = false; + for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { + MachineOperand &MO = getOperand(i); + if (MO.isRegister() && MO.isUse()) { + unsigned Reg = MO.getReg(); + if (!Reg) + continue; + if (Reg == IncomingReg) { + MO.setIsKill(); + Found = true; + break; + } else if (MRegisterInfo::isPhysicalRegister(Reg) && + MRegisterInfo::isPhysicalRegister(IncomingReg) && + RegInfo->isSuperRegister(IncomingReg, Reg) && + MO.isKill()) + // A super-register kill already exists. + Found = true; + } + } + + // If not found, this means an alias of one of the operand is killed. Add a + // new implicit operand if required. + if (!Found && AddIfNotFound) { + addOperand(MachineOperand::CreateReg(IncomingReg, false/*IsDef*/, + true/*IsImp*/,true/*IsKill*/)); + return true; + } + return Found; +} + +bool MachineInstr::addRegisterDead(unsigned IncomingReg, + const MRegisterInfo *RegInfo, + bool AddIfNotFound) { + bool Found = false; + for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { + MachineOperand &MO = getOperand(i); + if (MO.isRegister() && MO.isDef()) { + unsigned Reg = MO.getReg(); + if (!Reg) + continue; + if (Reg == IncomingReg) { + MO.setIsDead(); + Found = true; + break; + } else if (MRegisterInfo::isPhysicalRegister(Reg) && + MRegisterInfo::isPhysicalRegister(IncomingReg) && + RegInfo->isSuperRegister(IncomingReg, Reg) && + MO.isDead()) + // There exists a super-register that's marked dead. + return true; + } + } + + // If not found, this means an alias of one of the operand is dead. Add a + // new implicit operand. + if (!Found && AddIfNotFound) { + addOperand(MachineOperand::CreateReg(IncomingReg, true/*IsDef*/, + true/*IsImp*/,false/*IsKill*/, + true/*IsDead*/)); + return true; + } + return Found; +} + +/// copyKillDeadInfo - copies killed/dead information from one instr to another +void MachineInstr::copyKillDeadInfo(MachineInstr *OldMI, + const MRegisterInfo *RegInfo) { + // If the instruction defines any virtual registers, update the VarInfo, + // kill and dead information for the instruction. + for (unsigned i = 0, e = OldMI->getNumOperands(); i != e; ++i) { + MachineOperand &MO = OldMI->getOperand(i); + if (MO.isRegister() && MO.getReg() && + MRegisterInfo::isVirtualRegister(MO.getReg())) { + unsigned Reg = MO.getReg(); + if (MO.isDef()) { + if (MO.isDead()) { + MO.setIsDead(false); + addRegisterDead(Reg, RegInfo); + } + } + if (MO.isKill()) { + MO.setIsKill(false); + addRegisterKilled(Reg, RegInfo); + } + } + } +} From asl at math.spbu.ru Wed Jan 23 19:20:48 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Thu, 24 Jan 2008 01:20:48 -0000 Subject: [llvm-commits] [llvm] r46296 - /llvm/trunk/lib/System/Win32/Program.inc Message-ID: <200801240120.m0O1KmkY023574@zion.cs.uiuc.edu> Author: asl Date: Wed Jan 23 19:20:48 2008 New Revision: 46296 URL: http://llvm.org/viewvc/llvm-project?rev=46296&view=rev Log: Fix potential buffer overflow Modified: llvm/trunk/lib/System/Win32/Program.inc Modified: llvm/trunk/lib/System/Win32/Program.inc URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/System/Win32/Program.inc?rev=46296&r1=46295&r2=46296&view=diff ============================================================================== --- llvm/trunk/lib/System/Win32/Program.inc (original) +++ llvm/trunk/lib/System/Win32/Program.inc Wed Jan 23 19:20:48 2008 @@ -134,7 +134,7 @@ } // Now build the command line. - char *command = reinterpret_cast(_alloca(len)); + char *command = reinterpret_cast(_alloca(len+1)); char *p = command; for (unsigned i = 0; args[i]; i++) { From dalej at apple.com Wed Jan 23 19:22:15 2008 From: dalej at apple.com (Dale Johannesen) Date: Thu, 24 Jan 2008 01:22:15 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46297 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801240122.m0O1MFRE023902@zion.cs.uiuc.edu> Author: johannes Date: Wed Jan 23 19:22:15 2008 New Revision: 46297 URL: http://llvm.org/viewvc/llvm-project?rev=46297&view=rev Log: Ensure V2 initializers for OBJC_PROTOCOLs don't get lost at -O0. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46297&r1=46296&r2=46297&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Wed Jan 23 19:22:15 2008 @@ -13625,6 +13625,11 @@ UOBJC_PROTOCOL_OPT_CLS_METHODS_decl); /* APPLE LOCAL end radar 4695109 */ finish_var_decl (decl, initlist); + /* LLVM LOCAL begin */ + /* At -O0, we may have emitted references to the decl earlier. */ + if (!optimize) + reset_initializer_llvm(decl); + /* LLVM LOCAL end */ /* APPLE LOCAL radar 4533974 - ObjC new protocol */ objc_add_to_protocol_list_chain (decl); } From clattner at apple.com Wed Jan 23 19:25:15 2008 From: clattner at apple.com (Chris Lattner) Date: Wed, 23 Jan 2008 17:25:15 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46291 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp In-Reply-To: <200801232344.m0NNibZk021462@zion.cs.uiuc.edu> References: <200801232344.m0NNibZk021462@zion.cs.uiuc.edu> Message-ID: <50D815DE-F394-4CE4-9308-F32CEDCD92B2@apple.com> On Jan 23, 2008, at 3:44 PM, Evan Cheng wrote: > URL: http://llvm.org/viewvc/llvm-project?rev=46291&view=rev > Log: > Pointer's are also consider integer types. So %struct.datum = type > { i8*, i32 } should not be passed by ByVal. Ok, but please use !isa(STy) instead of using getTypeID directly, -Chris > > Modified: > llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp > > Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=46291&r1=46290&r2=46291&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) > +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Wed Jan 23 > 17:44:36 2008 > @@ -681,9 +681,11 @@ > /* Returns true if all elements of the type are integer types. */ > static bool llvm_x86_is_all_integer_types(const Type *Ty) { > for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty- > >subtype_end(); > - I != E; ++I) > - if (!I->get()->isIntOrIntVector()) > + I != E; ++I) { > + const Type *STy = I->get(); > + if (!STy->isIntOrIntVector() && STy->getTypeID() != > Type::PointerTyID) > return false; > + } > return true; > } > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From dpatel at apple.com Wed Jan 23 20:16:26 2008 From: dpatel at apple.com (Devang Patel) Date: Thu, 24 Jan 2008 02:16:26 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46299 - /llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Message-ID: <200801240216.m0O2GRlo009095@zion.cs.uiuc.edu> Author: dpatel Date: Wed Jan 23 20:16:26 2008 New Revision: 46299 URL: http://llvm.org/viewvc/llvm-project?rev=46299&view=rev Log: Fix build failure. objc-act.c:18368: warning: implicit declaration of function ?llvm_emit_file_scope_asm? Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/objc/objc-act.c?rev=46299&r1=46298&r2=46299&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Wed Jan 23 20:16:26 2008 @@ -76,6 +76,9 @@ #include "langhooks-def.h" /* APPLE LOCAL optimization pragmas 3124235/3420242 */ #include "opts.h" +#ifdef ENABLE_LLVM +#include "llvm.h" /* for reset_initializer_llvm */ +#endif #define OBJC_VOID_AT_END void_list_node From evan.cheng at apple.com Wed Jan 23 20:57:34 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 18:57:34 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46164 - in /llvm-gcc-4.2/trunk/gcc/config/i386: llvm-i386-target.h llvm-i386.cpp In-Reply-To: <200801190947.09887.baldrick@free.fr> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801190947.09887.baldrick@free.fr> Message-ID: Those are also not passed byval. My commit message should have said aggregates not structs. Evan On Jan 19, 2008, at 12:47 AM, Duncan Sands wrote: >> i32 / i64 all integer structs are not passed byval. > > What about integer arrays? > > Best wishes, > > Duncan. From evan.cheng at apple.com Wed Jan 23 21:05:03 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Wed, 23 Jan 2008 19:05:03 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46164 - in /llvm-gcc-4.2/trunk/gcc/config/i386: llvm-i386-target.h llvm-i386.cpp In-Reply-To: <200801230823.54902.baldrick@free.fr> References: <200801181835.m0IIZJMU009764@zion.cs.uiuc.edu> <200801230703.12134.baldrick@free.fr> <1AAE637E-DBCA-4331-BB6C-B8D1D76CC322@apple.com> <200801230823.54902.baldrick@free.fr> Message-ID: <3EB2CFA9-DD79-4A55-8CE9-DA6B4A731541@apple.com> On Jan 22, 2008, at 11:23 PM, Duncan Sands wrote: > > Can you please clarify the roles of llvm-gcc and the code generators > in getting ABI compatibility. When generating IR for x86-64, llvm-gcc > sometimes chops by-value structs into pieces, and sometimes passes the > struct as a byval parameter. Since it chops up all-integer structs, > and this corresponds more or less to what the ABI says, I assumed this > was an attempt to get ABI correctness. Especially as the code > generators > don't seem to bother themselves with following the details of the > ABI (yet), > and just push byval parameters onto the stack. Since you say If ABI specifies the aggregate should be passed in memory, then llvm- gcc passes it byval. Otherwise, it chops up in pieces following the ABI specification (only x86-64 uses a mixture of integer and non- integer registers). > >>> This is an optimization, not a correctness issue > > I guess this means that the plan is to teach the codegenerators how to > pass any aggregate byval in an ABI conformant way (not the case > right now), > but still do some chopping up in the front-end to help the optimizers. > Of course this chopping up needs to be done carefully so the final > result > squirted out by the codegenerators (once they are ABI conformant) > is the > same as if the chopping had not been done... Is this chopping > really a > big win? Is it not possible to get an equivalent level of > optimization > by enhancing alias analysis? We are only doing thise for small integer aggregates that are not passed through registers. This guarantees ABI compliance. Chopping it up into small integer pieces ensure the code generator does not make a copy of the object (among other potential benefits). One day when the code generator is smarter about it then perhaps we can eliminate this optimization. Evan > > Ciao, > > Duncan. From evan.cheng at apple.com Wed Jan 23 21:07:01 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 03:07:01 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46301 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Message-ID: <200801240307.m0O371Qv029343@zion.cs.uiuc.edu> Author: evancheng Date: Wed Jan 23 21:06:59 2008 New Revision: 46301 URL: http://llvm.org/viewvc/llvm-project?rev=46301&view=rev Log: Do not use getTypeID(). Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=46301&r1=46300&r2=46301&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Wed Jan 23 21:06:59 2008 @@ -683,7 +683,7 @@ for (Type::subtype_iterator I = Ty->subtype_begin(), E = Ty->subtype_end(); I != E; ++I) { const Type *STy = I->get(); - if (!STy->isIntOrIntVector() && STy->getTypeID() != Type::PointerTyID) + if (!STy->isIntOrIntVector() && !isa(STy)) return false; } return true; From gordonhenriksen at mac.com Wed Jan 23 23:16:37 2008 From: gordonhenriksen at mac.com (Gordon Henriksen) Date: Thu, 24 Jan 2008 05:16:37 -0000 Subject: [llvm-commits] [llvm] r46302 - /llvm/trunk/runtime/GC/SemiSpace/semispace.c Message-ID: <200801240516.m0O5GbfX009885@zion.cs.uiuc.edu> Author: gordon Date: Wed Jan 23 23:16:36 2008 New Revision: 46302 URL: http://llvm.org/viewvc/llvm-project?rev=46302&view=rev Log: Fixing the stack walker. Modified: llvm/trunk/runtime/GC/SemiSpace/semispace.c Modified: llvm/trunk/runtime/GC/SemiSpace/semispace.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/runtime/GC/SemiSpace/semispace.c?rev=46302&r1=46301&r2=46302&view=diff ============================================================================== --- llvm/trunk/runtime/GC/SemiSpace/semispace.c (original) +++ llvm/trunk/runtime/GC/SemiSpace/semispace.c Wed Jan 23 23:16:36 2008 @@ -97,25 +97,28 @@ * FIXME: This should be in a code-generator specific library, but for now this * will work for all code generators. */ +typedef struct FrameMap FrameMap; struct FrameMap { int32_t NumRoots; // Number of roots in stack frame. int32_t NumMeta; // Number of metadata descriptors. May be < NumRoots. void *Meta[]; // May be absent for roots without metadata. }; +typedef struct StackEntry StackEntry; struct StackEntry { - ShadowStackEntry *Next; // Caller's stack entry. + StackEntry *Next; // Caller's stack entry. const FrameMap *Map; // Pointer to constant FrameMap. void *Roots[]; // Stack roots (in-place array). }; StackEntry *llvm_gc_root_chain; void llvm_cg_walk_gcroots(void (*FP)(void **Root, void *Meta)) { - for (StackEntry *R; R; R = R->Next) { + StackEntry *R; + for (R = llvm_gc_root_chain; R; R = R->Next) { unsigned i, e; - for (i = 0, e = R->NumMeta; i != e; ++i) + for (i = 0, e = R->Map->NumMeta; i != e; ++i) FP(&R->Roots[i], R->Map->Meta[i]); - for (e = R->NumRoots; i != e; ++i) + for (e = R->Map->NumRoots; i != e; ++i) FP(&R->Roots[i], NULL); } } From sabre at nondot.org Thu Jan 24 00:35:45 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 06:35:45 -0000 Subject: [llvm-commits] [llvm] r46303 - in /llvm/trunk/test/CodeGen/X86: pr1505.ll pr1505b.ll Message-ID: <200801240635.m0O6ZjX2009331@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 00:35:44 2008 New Revision: 46303 URL: http://llvm.org/viewvc/llvm-project?rev=46303&view=rev Log: take these with a pr # Modified: llvm/trunk/test/CodeGen/X86/pr1505.ll llvm/trunk/test/CodeGen/X86/pr1505b.ll Modified: llvm/trunk/test/CodeGen/X86/pr1505.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr1505.ll?rev=46303&r1=46302&r2=46303&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/X86/pr1505.ll (original) +++ llvm/trunk/test/CodeGen/X86/pr1505.ll Thu Jan 24 00:35:44 2008 @@ -1,6 +1,6 @@ ; RUN: llvm-as < %s | llc -mcpu=i486 | not grep fldl +; PR1505 -; ModuleID = '' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" target triple = "i686-apple-darwin8" @G = weak global float 0.000000e+00 ; [#uses=1] Modified: llvm/trunk/test/CodeGen/X86/pr1505b.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr1505b.ll?rev=46303&r1=46302&r2=46303&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/X86/pr1505b.ll (original) +++ llvm/trunk/test/CodeGen/X86/pr1505b.ll Thu Jan 24 00:35:44 2008 @@ -1,7 +1,7 @@ ; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 3 ; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstps | count 3 +; PR1505 -; ModuleID = '' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" target triple = "i686-apple-darwin8" %"struct.std::basic_ios >" = type { %"struct.std::ios_base", %"struct.std::basic_ostream >"*, i8, i8, %"struct.std::basic_streambuf >"*, %"struct.std::ctype"*, %"struct.std::num_get > >"*, %"struct.std::num_get > >"* } From sabre at nondot.org Thu Jan 24 00:45:35 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 06:45:35 -0000 Subject: [llvm-commits] [llvm] r46304 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801240645.m0O6jZV9012635@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 00:45:35 2008 New Revision: 46304 URL: http://llvm.org/viewvc/llvm-project?rev=46304&view=rev Log: fold fp_round(fp_round(x)) -> fp_round(x). Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46304&r1=46303&r2=46304&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Jan 24 00:45:35 2008 @@ -3648,6 +3648,15 @@ if (N0.getOpcode() == ISD::FP_EXTEND && VT == N0.getOperand(0).getValueType()) return N0.getOperand(0); + // fold (fp_round (fp_round x)) -> (fp_round x) + if (N0.getOpcode() == ISD::FP_ROUND) { + // This is a value preserving truncation if both round's are. + bool IsTrunc = N->getConstantOperandVal(1) == 1 && + N0.Val->getConstantOperandVal(1) == 1; + return DAG.getNode(ISD::FP_ROUND, VT, N0.getOperand(0), + DAG.getIntPtrConstant(IsTrunc)); + } + // fold (fp_round (copysign X, Y)) -> (copysign (fp_round X), Y) if (N0.getOpcode() == ISD::FCOPYSIGN && N0.Val->hasOneUse()) { SDOperand Tmp = DAG.getNode(ISD::FP_ROUND, VT, N0.getOperand(0), N1); From baldrick at free.fr Thu Jan 24 00:57:01 2008 From: baldrick at free.fr (Duncan Sands) Date: Thu, 24 Jan 2008 07:57:01 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46281 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c In-Reply-To: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> References: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> Message-ID: <200801240757.03982.baldrick@free.fr> Hi Bill, > GCC barfs this to the .s file directly: > > .objc_class_name_CrashTestPlugin=0 > .globl .objc_class_name_CrashTestPlugin it looks like you write this directly to a file containing LLVM IR. I guess this is OK as long as no-one is using the global in the IR (otherwise the verifier will barf). Is that the case? Thanks, Duncan. From sabre at nondot.org Thu Jan 24 01:18:22 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 07:18:22 -0000 Subject: [llvm-commits] [llvm] r46305 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801240718.m0O7IMGm022697@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 01:18:21 2008 New Revision: 46305 URL: http://llvm.org/viewvc/llvm-project?rev=46305&view=rev Log: The dag combiner is missing revisiting nodes that it really should, and thus leaving dead stuff around. This gets fed into the isel pass and causes certain foldings from happening because nodes have extraneous uses floating around. For example, if we turned foo(bar(x)) -> baz(x), we sometimes left bar(x) around. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46305&r1=46304&r2=46305&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Jan 24 01:18:21 2008 @@ -606,6 +606,11 @@ // Push the new node and any users onto the worklist AddToWorkList(RV.Val); AddUsersToWorkList(RV.Val); + + // Add any uses of the old node to the worklist if they have a single + // use. They may be dead after this node is deleted. + for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) + AddToWorkList(N->getOperand(i).Val); // Nodes can be reintroduced into the worklist. Make sure we do not // process a node that has been replaced. From isanbard at gmail.com Thu Jan 24 01:45:28 2008 From: isanbard at gmail.com (Bill Wendling) Date: Wed, 23 Jan 2008 23:45:28 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46281 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c In-Reply-To: <200801240757.03982.baldrick@free.fr> References: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> <200801240757.03982.baldrick@free.fr> Message-ID: Hi Duncan, >> GCC barfs this to the .s file directly: >> >> .objc_class_name_CrashTestPlugin=0 >> .globl .objc_class_name_CrashTestPlugin > > it looks like you write this directly to a file > containing LLVM IR. I guess this is OK as long > as no-one is using the global in the IR (otherwise > the verifier will barf). Is that the case? > This is what I understand to be happening. The GCC version of this doesn't even create a tree node for these, so it shouldn't be generating a use of it. I'm taking that to imply that the GCC to LLVM converter won't create a use of it. -bw From sabre at nondot.org Thu Jan 24 01:57:07 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 07:57:07 -0000 Subject: [llvm-commits] [llvm] r46306 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801240757.m0O7v7XZ011540@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 01:57:06 2008 New Revision: 46306 URL: http://llvm.org/viewvc/llvm-project?rev=46306&view=rev Log: Fix this buggy transformation. Two observations: 1. we already know the value is dead, so don't bother replacing it with undef. 2. The very case the comment describes actually makes the load live which asserts in deletenode. If we do the replacement and the node becomes live, just treat it as new. This fixes a failure on X86/2008-01-16-InvalidDAGCombineXform.ll with some local changes in my tree. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46306&r1=46305&r2=46306&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Jan 24 01:57:06 2008 @@ -4090,28 +4090,19 @@ // v1, chain2 = load chain1, loc // v2, chain3 = load chain2, loc // v3 = add v2, c - // Now we replace use of v1 with undef, use of chain2 with chain1. - // ReplaceAllUsesWith() will iterate through uses of the first load and - // update operands: - // v1, chain2 = load chain1, loc - // v2, chain3 = load chain1, loc - // v3 = add v2, c - // Now the second load is the same as the first load, SelectionDAG cse - // will ensure the use of second load is replaced with the first load. - // v1, chain2 = load chain1, loc - // v3 = add v1, c - // Then v1 is replaced with undef and bad things happen. + // Now we replace use of chain2 with chain1. This makes the second load + // isomorphic to the one we are deleting, and thus makes this load live. std::vector NowDead; - SDOperand Undef = DAG.getNode(ISD::UNDEF, N->getValueType(0)); DOUT << "\nReplacing.6 "; DEBUG(N->dump(&DAG)); - DOUT << "\nWith: "; DEBUG(Undef.Val->dump(&DAG)); - DOUT << " and 1 other value\n"; - DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 0), Undef, &NowDead); + DOUT << "\nWith chain: "; DEBUG(Chain.Val->dump(&DAG)); + DOUT << "\n"; DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 1), Chain, &NowDead); - removeFromWorkList(N); for (unsigned i = 0, e = NowDead.size(); i != e; ++i) removeFromWorkList(NowDead[i]); - DAG.DeleteNode(N); + if (N->use_empty()) { + removeFromWorkList(N); + DAG.DeleteNode(N); + } return SDOperand(N, 0); // Return N so it doesn't get rechecked! } } else { From sabre at nondot.org Thu Jan 24 02:07:49 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 08:07:49 -0000 Subject: [llvm-commits] [llvm] r46307 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/fp-stack-direct-ret.ll test/CodeGen/X86/fp-stack-ret-conv.ll test/CodeGen/X86/pr1505b.ll Message-ID: <200801240807.m0O87oY3012420@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 02:07:48 2008 New Revision: 46307 URL: http://llvm.org/viewvc/llvm-project?rev=46307&view=rev Log: Significantly simplify and improve handling of FP function results on x86-32. This case returns the value in ST(0) and then has to convert it to an SSE register. This causes significant codegen ugliness in some cases. For example in the trivial fp-stack-direct-ret.ll testcase we used to generate: _bar: subl $28, %esp call L_foo$stub fstpl 16(%esp) movsd 16(%esp), %xmm0 movsd %xmm0, 8(%esp) fldl 8(%esp) addl $28, %esp ret because we move the result of foo() into an XMM register, then have to move it back for the return of bar. Instead of hacking ever-more special cases into the call result lowering code we take a much simpler approach: on x86-32, fp return is modeled as always returning into an f80 register which is then truncated to f32 or f64 as needed. Similarly for a result, we model it as an extension to f80 + return. This exposes the truncate and extensions to the dag combiner, allowing target independent code to hack on them, eliminating them in this case. This gives us this code for the example above: _bar: subl $12, %esp call L_foo$stub addl $12, %esp ret The nasty aspect of this is that these conversions are not legal, but we want the second pass of dag combiner (post-legalize) to be able to hack on them. To handle this, we lie to legalize and say they are legal, then custom expand them on entry to the isel pass (PreprocessForFPConvert). This is gross, but less gross than the code it is replacing :) This also allows us to generate better code in several other cases. For example on fp-stack-ret-conv.ll, we now generate: _test: subl $12, %esp call L_foo$stub fstps 8(%esp) movl 16(%esp), %eax cvtss2sd 8(%esp), %xmm0 movsd %xmm0, (%eax) addl $12, %esp ret where before we produced (incidentally, the old bad code is identical to what gcc produces): _test: subl $12, %esp call L_foo$stub fstpl (%esp) cvtsd2ss (%esp), %xmm0 cvtss2sd %xmm0, %xmm0 movl 16(%esp), %eax movsd %xmm0, (%eax) addl $12, %esp ret Note that we generate slightly worse code on pr1505b.ll due to a scheduling deficiency that is unrelated to this patch. Added: llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp llvm/trunk/lib/Target/X86/X86ISelLowering.cpp llvm/trunk/lib/Target/X86/X86InstrSSE.td llvm/trunk/test/CodeGen/X86/pr1505b.ll Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=46307&r1=46306&r2=46307&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jan 24 02:07:48 2008 @@ -156,7 +156,8 @@ bool TryFoldLoad(SDOperand P, SDOperand N, SDOperand &Base, SDOperand &Scale, SDOperand &Index, SDOperand &Disp); - void InstructionSelectPreprocess(SelectionDAG &DAG); + void PreprocessForRMW(SelectionDAG &DAG); + void PreprocessForFPConvert(SelectionDAG &DAG); /// SelectInlineAsmMemoryOperand - Implement addressing mode selection for /// inline asm expressions. @@ -350,9 +351,10 @@ Store.getOperand(2), Store.getOperand(3)); } -/// InstructionSelectPreprocess - Preprocess the DAG to allow the instruction -/// selector to pick more load-modify-store instructions. This is a common -/// case: +/// PreprocessForRMW - Preprocess the DAG to make instruction selection better. +/// This is only run if not in -fast mode (aka -O0). +/// This allows the instruction selector to pick more read-modify-write +/// instructions. This is a common case: /// /// [Load chain] /// ^ @@ -389,7 +391,7 @@ /// \ / /// \ / /// [Store] -void X86DAGToDAGISel::InstructionSelectPreprocess(SelectionDAG &DAG) { +void X86DAGToDAGISel::PreprocessForRMW(SelectionDAG &DAG) { for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(), E = DAG.allnodes_end(); I != E; ++I) { if (!ISD::isNON_TRUNCStore(I)) @@ -459,6 +461,66 @@ } } + +/// PreprocessForFPConvert - Walk over the dag lowering fpround and fpextend +/// nodes that target the FP stack to be store and load to the stack. This is a +/// gross hack. We would like to simply mark these as being illegal, but when +/// we do that, legalize produces these when it expands calls, then expands +/// these in the same legalize pass. We would like dag combine to be able to +/// hack on these between the call expansion and the node legalization. As such +/// this pass basically does "really late" legalization of these inline with the +/// X86 isel pass. +void X86DAGToDAGISel::PreprocessForFPConvert(SelectionDAG &DAG) { + for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(), + E = DAG.allnodes_end(); I != E; ) { + SDNode *N = I++; // Preincrement iterator to avoid invalidation issues. + if (N->getOpcode() != ISD::FP_ROUND && N->getOpcode() != ISD::FP_EXTEND) + continue; + + // If the source and destination are SSE registers, then this is a legal + // conversion that should not be lowered. + MVT::ValueType SrcVT = N->getOperand(0).getValueType(); + MVT::ValueType DstVT = N->getValueType(0); + bool SrcIsSSE = X86Lowering.isScalarFPTypeInSSEReg(SrcVT); + bool DstIsSSE = X86Lowering.isScalarFPTypeInSSEReg(DstVT); + if (SrcIsSSE && DstIsSSE) + continue; + + // If this is an FPStack extension (but not a truncation), it is a noop. + if (!SrcIsSSE && !DstIsSSE && N->getOpcode() == ISD::FP_EXTEND) + continue; + + // Here we could have an FP stack truncation or an FPStack <-> SSE convert. + // FPStack has extload and truncstore. SSE can fold direct loads into other + // operations. Based on this, decide what we want to do. + MVT::ValueType MemVT; + if (N->getOpcode() == ISD::FP_ROUND) + MemVT = DstVT; // FP_ROUND must use DstVT, we can't do a 'trunc load'. + else + MemVT = SrcIsSSE ? SrcVT : DstVT; + + SDOperand MemTmp = DAG.CreateStackTemporary(MemVT); + + // FIXME: optimize the case where the src/dest is a load or store? + SDOperand Store = DAG.getTruncStore(DAG.getEntryNode(), N->getOperand(0), + MemTmp, NULL, 0, MemVT); + SDOperand Result = DAG.getExtLoad(ISD::EXTLOAD, DstVT, Store, MemTmp, + NULL, 0, MemVT); + + // We're about to replace all uses of the FP_ROUND/FP_EXTEND with the + // extload we created. This will cause general havok on the dag because + // anything below the conversion could be folded into other existing nodes. + // To avoid invalidating 'I', back it up to the convert node. + --I; + DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 0), Result); + + // Now that we did that, the node is dead. Increment the iterator to the + // next node to process, then delete N. + ++I; + DAG.DeleteNode(N); + } +} + /// InstructionSelectBasicBlock - This callback is invoked by SelectionDAGISel /// when it has created a SelectionDAG for us to codegen. void X86DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) { @@ -466,7 +528,10 @@ MachineFunction::iterator FirstMBB = BB; if (!FastISel) - InstructionSelectPreprocess(DAG); + PreprocessForRMW(DAG); + + // FIXME: This should only happen when not -fast. + PreprocessForFPConvert(DAG); // Codegen the basic block. #ifndef NDEBUG Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46307&r1=46306&r2=46307&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Thu Jan 24 02:07:48 2008 @@ -47,6 +47,7 @@ X86ScalarSSEf32 = Subtarget->hasSSE1(); X86StackPtr = Subtarget->is64Bit() ? X86::RSP : X86::ESP; + bool Fast = false; RegInfo = TM.getRegisterInfo(); @@ -355,13 +356,15 @@ addLegalFPImmediate(APFloat(+0.0)); // xorpd addLegalFPImmediate(APFloat(+0.0f)); // xorps - // Conversions to long double (in X87) go through memory. - setConvertAction(MVT::f32, MVT::f80, Expand); - setConvertAction(MVT::f64, MVT::f80, Expand); - - // Conversions from long double (in X87) go through memory. - setConvertAction(MVT::f80, MVT::f32, Expand); - setConvertAction(MVT::f80, MVT::f64, Expand); + // Floating truncations from f80 and extensions to f80 go through memory. + // If optimizing, we lie about this though and handle it in + // InstructionSelectPreprocess so that dagcombine2 can hack on these. + if (Fast) { + setConvertAction(MVT::f32, MVT::f80, Expand); + setConvertAction(MVT::f64, MVT::f80, Expand); + setConvertAction(MVT::f80, MVT::f32, Expand); + setConvertAction(MVT::f80, MVT::f64, Expand); + } } else if (X86ScalarSSEf32) { // Use SSE for f32, x87 for f64. // Set up the FP register classes. @@ -395,15 +398,17 @@ addLegalFPImmediate(APFloat(-0.0)); // FLD0/FCHS addLegalFPImmediate(APFloat(-1.0)); // FLD1/FCHS - // SSE->x87 conversions go through memory. - setConvertAction(MVT::f32, MVT::f64, Expand); - setConvertAction(MVT::f32, MVT::f80, Expand); - - // x87->SSE truncations need to go through memory. - setConvertAction(MVT::f80, MVT::f32, Expand); - setConvertAction(MVT::f64, MVT::f32, Expand); - // And x87->x87 truncations also. - setConvertAction(MVT::f80, MVT::f64, Expand); + // SSE <-> X87 conversions go through memory. If optimizing, we lie about + // this though and handle it in InstructionSelectPreprocess so that + // dagcombine2 can hack on these. + if (Fast) { + setConvertAction(MVT::f32, MVT::f64, Expand); + setConvertAction(MVT::f32, MVT::f80, Expand); + setConvertAction(MVT::f80, MVT::f32, Expand); + setConvertAction(MVT::f64, MVT::f32, Expand); + // And x87->x87 truncations also. + setConvertAction(MVT::f80, MVT::f64, Expand); + } if (!UnsafeFPMath) { setOperationAction(ISD::FSIN , MVT::f64 , Expand); @@ -420,10 +425,14 @@ setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand); setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand); - // Floating truncations need to go through memory. - setConvertAction(MVT::f80, MVT::f32, Expand); - setConvertAction(MVT::f64, MVT::f32, Expand); - setConvertAction(MVT::f80, MVT::f64, Expand); + // Floating truncations go through memory. If optimizing, we lie about + // this though and handle it in InstructionSelectPreprocess so that + // dagcombine2 can hack on these. + if (Fast) { + setConvertAction(MVT::f80, MVT::f32, Expand); + setConvertAction(MVT::f64, MVT::f32, Expand); + setConvertAction(MVT::f80, MVT::f64, Expand); + } if (!UnsafeFPMath) { setOperationAction(ISD::FSIN , MVT::f64 , Expand); @@ -647,7 +656,7 @@ } setTruncStoreAction(MVT::f64, MVT::f32, Expand); - + // Custom lower v2i64 and v2f64 selects. setOperationAction(ISD::LOAD, MVT::v2f64, Legal); setOperationAction(ISD::LOAD, MVT::v2i64, Legal); @@ -808,30 +817,10 @@ // a register. SDOperand Value = Op.getOperand(1); - // If this is an FP return with ScalarSSE, we need to move the value from - // an XMM register onto the fp-stack. - if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) { - SDOperand MemLoc; - - // If this is a load into a scalarsse value, don't store the loaded value - // back to the stack, only to reload it: just replace the scalar-sse load. - if (ISD::isNON_EXTLoad(Value.Val) && - Chain.reachesChainWithoutSideEffects(Value.getOperand(0))) { - Chain = Value.getOperand(0); - MemLoc = Value.getOperand(1); - } else { - // Spill the value to memory and reload it into top of stack. - unsigned Size = MVT::getSizeInBits(RVLocs[0].getValVT())/8; - MachineFunction &MF = DAG.getMachineFunction(); - int SSFI = MF.getFrameInfo()->CreateStackObject(Size, Size); - MemLoc = DAG.getFrameIndex(SSFI, getPointerTy()); - Chain = DAG.getStore(Op.getOperand(0), Value, MemLoc, NULL, 0); - } - SDVTList Tys = DAG.getVTList(RVLocs[0].getValVT(), MVT::Other); - SDOperand Ops[] = {Chain, MemLoc, DAG.getValueType(RVLocs[0].getValVT())}; - Value = DAG.getNode(X86ISD::FLD, Tys, Ops, 3); - Chain = Value.getValue(1); - } + // an XMM register onto the fp-stack. Do this with an FP_EXTEND to f80. + // This will get legalized into a load/store if it can't get optimized away. + if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) + Value = DAG.getNode(ISD::FP_EXTEND, MVT::f80, Value); SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Flag); SDOperand Ops[] = { Chain, Value }; @@ -876,87 +865,26 @@ // Copies from the FP stack are special, as ST0 isn't a valid register // before the fp stackifier runs. - // Copy ST0 into an RFP register with FP_GET_RESULT. - SDVTList Tys = DAG.getVTList(RVLocs[0].getValVT(), MVT::Other, MVT::Flag); + // Copy ST0 into an RFP register with FP_GET_RESULT. If this will end up + // in an SSE register, copy it out as F80 and do a truncate, otherwise use + // the specified value type. + MVT::ValueType GetResultTy = RVLocs[0].getValVT(); + if (isScalarFPTypeInSSEReg(GetResultTy)) + GetResultTy = MVT::f80; + SDVTList Tys = DAG.getVTList(GetResultTy, MVT::Other, MVT::Flag); + SDOperand GROps[] = { Chain, InFlag }; SDOperand RetVal = DAG.getNode(X86ISD::FP_GET_RESULT, Tys, GROps, 2); Chain = RetVal.getValue(1); InFlag = RetVal.getValue(2); - - // If we are using ScalarSSE, store ST(0) to the stack and reload it into - // an XMM register. - if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) { - SDOperand StoreLoc; - const Value *SrcVal = 0; - int SrcValOffset = 0; - MVT::ValueType RetStoreVT = RVLocs[0].getValVT(); - - // Determine where to store the value. If the call result is directly - // used by a store, see if we can store directly into the location. In - // this case, we'll end up producing a fst + movss[load] + movss[store] to - // the same location, and the two movss's will be nuked as dead. This - // optimizes common things like "*D = atof(..)" to not need an - // intermediate stack slot. - if (SDOperand(TheCall, 0).hasOneUse() && - SDOperand(TheCall, 1).hasOneUse()) { - // In addition to direct uses, we also support a FP_ROUND that uses the - // value, if it is directly stored somewhere. - SDNode *User = *TheCall->use_begin(); - if (User->getOpcode() == ISD::FP_ROUND && User->hasOneUse()) - User = *User->use_begin(); - - // Ok, we have one use of the value and one use of the chain. See if - // they are the same node: a store. - if (StoreSDNode *N = dyn_cast(User)) { - // Verify that the value being stored is either the call or a - // truncation of the call. - SDNode *StoreVal = N->getValue().Val; - if (StoreVal == TheCall) - ; // ok. - else if (StoreVal->getOpcode() == ISD::FP_ROUND && - StoreVal->hasOneUse() && - StoreVal->getOperand(0).Val == TheCall) - ; // ok. - else - N = 0; // not ok. - - if (N && N->getChain().Val == TheCall && - !N->isVolatile() && !N->isTruncatingStore() && - N->getAddressingMode() == ISD::UNINDEXED) { - StoreLoc = N->getBasePtr(); - SrcVal = N->getSrcValue(); - SrcValOffset = N->getSrcValueOffset(); - RetStoreVT = N->getValue().getValueType(); - } - } - } - // If we weren't able to optimize the result, just create a temporary - // stack slot. - if (StoreLoc.Val == 0) { - MachineFunction &MF = DAG.getMachineFunction(); - int SSFI = MF.getFrameInfo()->CreateStackObject(8, 8); - StoreLoc = DAG.getFrameIndex(SSFI, getPointerTy()); - } - - // FIXME: Currently the FST is flagged to the FP_GET_RESULT. This - // shouldn't be necessary except that RFP cannot be live across - // multiple blocks (which could happen if a select gets lowered into - // multiple blocks and scheduled in between them). When stackifier is - // fixed, they can be uncoupled. - SDOperand Ops[] = { - Chain, RetVal, StoreLoc, DAG.getValueType(RetStoreVT), InFlag - }; - Chain = DAG.getNode(X86ISD::FST, MVT::Other, Ops, 5); - RetVal = DAG.getLoad(RetStoreVT, Chain, - StoreLoc, SrcVal, SrcValOffset); - Chain = RetVal.getValue(1); - - // If we optimized a truncate, then extend the result back to its desired - // type. - if (RVLocs[0].getValVT() != RetStoreVT) - RetVal = DAG.getNode(ISD::FP_EXTEND, RVLocs[0].getValVT(), RetVal); - } + // If we want the result in an SSE register, use an FP_TRUNCATE to get it + // there. + if (GetResultTy != RVLocs[0].getValVT()) + RetVal = DAG.getNode(ISD::FP_ROUND, RVLocs[0].getValVT(), RetVal, + // This truncation won't change the value. + DAG.getIntPtrConstant(1)); + ResultVals.push_back(RetVal); } Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=46307&r1=46306&r2=46307&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original) +++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Thu Jan 24 02:07:48 2008 @@ -2734,6 +2734,14 @@ def : Pat<(v4i32 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>; def : Pat<(v2i64 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>; +// extload f32 -> f64. This matches load+fextend because we have a hack in +// the isel (PreprocessForFPConvert) that can introduce loads after dag combine. +// Since these loads aren't folded into the fextend, we have to match it +// explicitly here. +let Predicates = [HasSSE2] in + def : Pat<(fextend (loadf32 addr:$src)), + (CVTSS2SDrm addr:$src)>; + // Scalar to v8i16 / v16i8. The source may be a GR32, but only the lower 8 or // 16-bits matter. def : Pat<(v8i16 (X86s2vec GR32:$src)), (MOVDI2PDIrr GR32:$src)>, Added: llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll?rev=46307&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll (added) +++ llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll Thu Jan 24 02:07:48 2008 @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llc -march=x86 | not grep fstp +; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not grep movsd + +declare double @foo() + +define double @bar() { +entry: + %tmp5 = tail call double @foo() + ret double %tmp5 +} + Added: llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll?rev=46307&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll (added) +++ llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll Thu Jan 24 02:07:48 2008 @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | llc -mcpu=yonah | grep cvtss2sd +; RUN: llvm-as < %s | llc -mcpu=yonah | grep fstps +; RUN: llvm-as < %s | llc -mcpu=yonah | not grep cvtsd2ss + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" +target triple = "i686-apple-darwin8" + +define void @test(double *%b) { +entry: + %tmp13 = tail call double @foo() + %tmp1314 = fptrunc double %tmp13 to float ; [#uses=1] + %tmp3940 = fpext float %tmp1314 to double ; [#uses=1] + volatile store double %tmp3940, double* %b + ret void +} + +declare double @foo() Modified: llvm/trunk/test/CodeGen/X86/pr1505b.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr1505b.ll?rev=46307&r1=46306&r2=46307&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/X86/pr1505b.ll (original) +++ llvm/trunk/test/CodeGen/X86/pr1505b.ll Thu Jan 24 02:07:48 2008 @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 3 +; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 4 ; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstps | count 3 ; PR1505 From isanbard at gmail.com Thu Jan 24 02:09:19 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 08:09:19 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46308 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801240809.m0O89JJt012764@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 02:09:17 2008 New Revision: 46308 URL: http://llvm.org/viewvc/llvm-project?rev=46308&view=rev Log: The initialization for _OBJC_IVAR_$_.b symbols are dropped for -O0. As it turns out, the LLVM variable is created at -O0 before the initialization is set to the correct value. It defaults to 0, so these use the zero filled directive, which is wrong. Reset the initialization on LLVM variables when needed. objc2-bitfield-abi-1.m is a testcase that exercises this. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46308&r1=46307&r2=46308&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Thu Jan 24 02:09:17 2008 @@ -10659,6 +10659,13 @@ tree decl = TREE_PURPOSE (chain); tree offset = TREE_VALUE (chain); finish_var_decl (decl, offset); + /* LOCAL LLVM begin - radar 5698757 */ +#ifdef ENABLE_LLVM + /* Reset the initializer for this reference as it may have changed with + -O0 */ + reset_initializer_llvm (decl); +#endif + /* LOCAL LLVM end - radar 5698757 */ } } From isanbard at gmail.com Thu Jan 24 02:11:44 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 08:11:44 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46309 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Message-ID: <200801240811.m0O8BirY013343@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 02:11:43 2008 New Revision: 46309 URL: http://llvm.org/viewvc/llvm-project?rev=46309&view=rev Log: Only reset the initializer at -O0. Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46309&r1=46308&r2=46309&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Thu Jan 24 02:11:43 2008 @@ -10659,13 +10659,14 @@ tree decl = TREE_PURPOSE (chain); tree offset = TREE_VALUE (chain); finish_var_decl (decl, offset); - /* LOCAL LLVM begin - radar 5698757 */ + /* LLVM LOCAL begin - radar 5698757 */ #ifdef ENABLE_LLVM /* Reset the initializer for this reference as it may have changed with -O0 */ - reset_initializer_llvm (decl); + if (!optimize) + reset_initializer_llvm (decl); #endif - /* LOCAL LLVM end - radar 5698757 */ + /* LLVM LOCAL end - radar 5698757 */ } } From tonic at nondot.org Thu Jan 24 02:13:22 2008 From: tonic at nondot.org (Tanya Lattner) Date: Thu, 24 Jan 2008 02:13:22 -0600 Subject: [llvm-commits] CVS: llvm-www/www-index.html Message-ID: <200801240813.m0O8DMoA013495@zion.cs.uiuc.edu> Changes in directory llvm-www: www-index.html updated: 1.150 -> 1.151 --- Log message: Update 2.2 release schedule. --- Diffs of the changes: (+5 -5) www-index.html | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) Index: llvm-www/www-index.html diff -u llvm-www/www-index.html:1.150 llvm-www/www-index.html:1.151 --- llvm-www/www-index.html:1.150 Wed Jan 9 12:37:54 2008 +++ llvm-www/www-index.html Thu Jan 24 02:12:47 2008 @@ -119,11 +119,11 @@

LLVM 2.2 release schedule:

  • Jan 16, 2008: Branch creation/Code Freeze (9PM PST).
  • -
  • Jan 18, 2008: First round of pre-release testing begins.
  • -
  • Jan 28, 2008: Pre-release testing ends.
  • -
  • Jan 30, 2008: Second round of pre-release testing begins.
  • -
  • Feb 3, 2008: Pre-release testing ends.
  • -
  • Feb 4, 2008: 2.2 released.
  • +
  • Jan 24, 2008: First round of pre-release testing begins.
  • +
  • Feb 1, 2008: Pre-release testing ends.
  • +
  • Feb 3, 2008: Second round of pre-release testing begins.
  • +
  • Feb 10, 2008: Pre-release testing ends.
  • +
  • Feb 11, 2008: 2.2 released.
From isanbard at gmail.com Thu Jan 24 02:51:18 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 08:51:18 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46311 - /llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Message-ID: <200801240851.m0O8pIMV029043@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 02:51:17 2008 New Revision: 46311 URL: http://llvm.org/viewvc/llvm-project?rev=46311&view=rev Log: backporting r46308: The initialization for _OBJC_IVAR_$_.b symbols are dropped for -O0. As it turns out, the LLVM variable is created at -O0 before the initialization is set to the correct value. It defaults to 0, so these use the zero filled directive, which is wrong. Reset the initialization on LLVM variables when needed. objc2-bitfield-abi-1.m is a testcase that exercises this. Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/objc/objc-act.c?rev=46311&r1=46310&r2=46311&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Thu Jan 24 02:51:17 2008 @@ -10635,6 +10635,14 @@ tree decl = TREE_PURPOSE (chain); tree offset = TREE_VALUE (chain); finish_var_decl (decl, offset); + /* LLVM LOCAL begin - radar 5698757 */ +#ifdef ENABLE_LLVM + /* Reset the initializer for this reference as it may have changed with + -O0 */ + if (!optimize) + reset_initializer_llvm (decl); +#endif + /* LLVM LOCAL end - radar 5698757 */ } } From baldrick at free.fr Thu Jan 24 03:05:53 2008 From: baldrick at free.fr (Duncan Sands) Date: Thu, 24 Jan 2008 10:05:53 +0100 Subject: [llvm-commits] [llvm] r46305 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801240718.m0O7IMGm022697@zion.cs.uiuc.edu> References: <200801240718.m0O7IMGm022697@zion.cs.uiuc.edu> Message-ID: <200801241005.53631.baldrick@free.fr> Hi Chris, > + // Add any uses of the old node to the worklist if they have a single > + // use. They may be dead after this node is deleted. > + for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) > + AddToWorkList(N->getOperand(i).Val); the comment says "if they have a single use", but the operands are added unconditionally... Ciao, Duncan. From isanbard at gmail.com Thu Jan 24 03:48:01 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 09:48:01 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46312 - /llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Message-ID: <200801240948.m0O9m2R6001414@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 03:48:00 2008 New Revision: 46312 URL: http://llvm.org/viewvc/llvm-project?rev=46312&view=rev Log: Ahem...reset_initializer_llvm doesn't exist in 4.0... Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.0/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/objc/objc-act.c?rev=46312&r1=46311&r2=46312&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.0/trunk/gcc/objc/objc-act.c Thu Jan 24 03:48:00 2008 @@ -10635,14 +10635,6 @@ tree decl = TREE_PURPOSE (chain); tree offset = TREE_VALUE (chain); finish_var_decl (decl, offset); - /* LLVM LOCAL begin - radar 5698757 */ -#ifdef ENABLE_LLVM - /* Reset the initializer for this reference as it may have changed with - -O0 */ - if (!optimize) - reset_initializer_llvm (decl); -#endif - /* LLVM LOCAL end - radar 5698757 */ } } From baldrick at free.fr Thu Jan 24 05:31:40 2008 From: baldrick at free.fr (Duncan Sands) Date: Thu, 24 Jan 2008 12:31:40 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46281 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c In-Reply-To: References: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> <200801240757.03982.baldrick@free.fr> Message-ID: <200801241231.41172.baldrick@free.fr> On Thursday 24 January 2008 08:45:28 Bill Wendling wrote: > Hi Duncan, > > >> GCC barfs this to the .s file directly: > >> > >> .objc_class_name_CrashTestPlugin=0 > >> .globl .objc_class_name_CrashTestPlugin > > > > it looks like you write this directly to a file > > containing LLVM IR. I guess this is OK as long > > as no-one is using the global in the IR (otherwise > > the verifier will barf). Is that the case? > > > This is what I understand to be happening. The GCC version of this > doesn't even create a tree node for these, so it shouldn't be > generating a use of it. I'm taking that to imply that the GCC to LLVM > converter won't create a use of it. Does this work whether writing LLVM assembler or LLVM bitcode? Ciao, D. From clattner at apple.com Thu Jan 24 11:06:48 2008 From: clattner at apple.com (Chris Lattner) Date: Thu, 24 Jan 2008 09:06:48 -0800 Subject: [llvm-commits] [llvm] r46305 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801241005.53631.baldrick@free.fr> References: <200801240718.m0O7IMGm022697@zion.cs.uiuc.edu> <200801241005.53631.baldrick@free.fr> Message-ID: On Jan 24, 2008, at 1:05 AM, Duncan Sands wrote: > Hi Chris, > >> + // Add any uses of the old node to the worklist if they >> have a single >> + // use. They may be dead after this node is deleted. >> + for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) >> + AddToWorkList(N->getOperand(i).Val); > > the comment says "if they have a single use", but the operands are > added > unconditionally... Nice catch. The issue is that a node can use another node multiple times (add x, x). I'll update the comment, thanks. -Chris From sabre at nondot.org Thu Jan 24 11:10:05 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 17:10:05 -0000 Subject: [llvm-commits] [llvm] r46313 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801241710.m0OHA6Et020612@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 11:10:01 2008 New Revision: 46313 URL: http://llvm.org/viewvc/llvm-project?rev=46313&view=rev Log: clarify a comment, thanks Duncan. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46313&r1=46312&r2=46313&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Thu Jan 24 11:10:01 2008 @@ -607,8 +607,9 @@ AddToWorkList(RV.Val); AddUsersToWorkList(RV.Val); - // Add any uses of the old node to the worklist if they have a single - // use. They may be dead after this node is deleted. + // Add any uses of the old node to the worklist in case this node is the + // last one that uses them. They may become dead after this node is + // deleted. for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) AddToWorkList(N->getOperand(i).Val); From sabre at nondot.org Thu Jan 24 11:47:13 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 17:47:13 -0000 Subject: [llvm-commits] [llvm] r46314 - in /llvm/trunk: include/llvm/Argument.h lib/VMCore/Function.cpp Message-ID: <200801241747.m0OHlEEg022134@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 11:47:11 2008 New Revision: 46314 URL: http://llvm.org/viewvc/llvm-project?rev=46314&view=rev Log: Add hasByValAttr() and hasNoAliasAttr() methods to the Argument class. Modified: llvm/trunk/include/llvm/Argument.h llvm/trunk/lib/VMCore/Function.cpp Modified: llvm/trunk/include/llvm/Argument.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Argument.h?rev=46314&r1=46313&r2=46314&view=diff ============================================================================== --- llvm/trunk/include/llvm/Argument.h (original) +++ llvm/trunk/include/llvm/Argument.h Thu Jan 24 11:47:11 2008 @@ -39,13 +39,24 @@ /// Argument ctor - If Function argument is specified, this argument is /// inserted at the end of the argument list for the function. /// - explicit Argument(const Type *Ty, - const std::string &Name = "", + explicit Argument(const Type *Ty, const std::string &Name = "", Function *F = 0); inline const Function *getParent() const { return Parent; } inline Function *getParent() { return Parent; } + /// getArgNo - Return the index of this formal argument in its containing + /// function. For example in "void foo(int a, float b)" a is 0 and b is 1. + unsigned getArgNo() const; + + /// hasByValAttr - Return true if this argument has the byval attribute on it + /// in its containing function. + bool hasByValAttr() const; + + /// hasNoAliasAttr - Return true if this argument has the noalias attribute on + /// it in its containing function. + bool hasNoAliasAttr() const; + virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); Modified: llvm/trunk/lib/VMCore/Function.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=46314&r1=46313&r2=46314&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/Function.cpp (original) +++ llvm/trunk/lib/VMCore/Function.cpp Thu Jan 24 11:47:11 2008 @@ -75,6 +75,37 @@ LeakDetector::removeGarbageObject(this); } +/// getArgNo - Return the index of this formal argument in its containing +/// function. For example in "void foo(int a, float b)" a is 0 and b is 1. +unsigned Argument::getArgNo() const { + const Function *F = getParent(); + assert(F && "Argument is not in a function"); + + Function::const_arg_iterator AI = F->arg_begin(); + unsigned ArgIdx = 0; + for (; &*AI != this; ++AI) + ++ArgIdx; + + return ArgIdx; +} + +/// hasByValAttr - Return true if this argument has the byval attribute on it +/// in its containing function. +bool Argument::hasByValAttr() const { + if (!isa(getType())) return false; + return getParent()->paramHasAttr(getArgNo()+1, ParamAttr::ByVal); +} + +/// hasNoAliasAttr - Return true if this argument has the noalias attribute on +/// it in its containing function. +bool Argument::hasNoAliasAttr() const { + if (!isa(getType())) return false; + return getParent()->paramHasAttr(getArgNo()+1, ParamAttr::NoAlias); +} + + + + //===----------------------------------------------------------------------===// // Helper Methods in Function //===----------------------------------------------------------------------===// From sabre at nondot.org Thu Jan 24 12:00:35 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 18:00:35 -0000 Subject: [llvm-commits] [llvm] r46315 - in /llvm/trunk: lib/Analysis/BasicAliasAnalysis.cpp test/Analysis/BasicAA/byval.ll Message-ID: <200801241800.m0OI0aHa022622@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 12:00:32 2008 New Revision: 46315 URL: http://llvm.org/viewvc/llvm-project?rev=46315&view=rev Log: Teach basicaa that 'byval' arguments define a new memory location that can't be aliased to other known objects. This allows us to know that byval pointer args don't alias globals, etc. Added: llvm/trunk/test/Analysis/BasicAA/byval.ll Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp?rev=46315&r1=46314&r2=46315&view=diff ============================================================================== --- llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp (original) +++ llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Thu Jan 24 12:00:32 2008 @@ -138,9 +138,10 @@ return new BasicAliasAnalysis(); } -// getUnderlyingObject - This traverses the use chain to figure out what object -// the specified value points to. If the value points to, or is derived from, a -// unique object or an argument, return it. +/// getUnderlyingObject - This traverses the use chain to figure out what object +/// the specified value points to. If the value points to, or is derived from, +/// a unique object or an argument, return it. This returns: +/// Arguments, GlobalVariables, Functions, Allocas, Mallocs. static const Value *getUnderlyingObject(const Value *V) { if (!isa(V->getType())) return 0; @@ -241,41 +242,29 @@ // AliasAnalysis::ModRefResult BasicAliasAnalysis::getModRefInfo(CallSite CS, Value *P, unsigned Size) { - if (!isa(P)) - if (const AllocationInst *AI = - dyn_cast_or_null(getUnderlyingObject(P))) { + if (!isa(P)) { + const Value *Object = getUnderlyingObject(P); + // Allocations and byval arguments are "new" objects. + if (isa(Object) || + (isa(Object) && cast(Object)->hasByValAttr())) { // Okay, the pointer is to a stack allocated object. If we can prove that // the pointer never "escapes", then we know the call cannot clobber it, // because it simply can't get its address. - if (!AddressMightEscape(AI)) + if (!AddressMightEscape(Object)) return NoModRef; // If this is a tail call and P points to a stack location, we know that // the tail call cannot access or modify the local stack. if (CallInst *CI = dyn_cast(CS.getInstruction())) - if (CI->isTailCall() && isa(AI)) + if (CI->isTailCall() && !isa(Object)) return NoModRef; } + } // The AliasAnalysis base class has some smarts, lets use them. return AliasAnalysis::getModRefInfo(CS, P, Size); } -static bool isNoAliasArgument(const Argument *Arg) { - const Function *Func = Arg->getParent(); - const ParamAttrsList *Attr = Func->getParamAttrs(); - if (Attr) { - unsigned Idx = 1; - for (Function::const_arg_iterator I = Func->arg_begin(), - E = Func->arg_end(); I != E; ++I, ++Idx) { - if (&(*I) == Arg && - Attr->paramHasAttr(Idx, ParamAttr::NoAlias)) - return true; - } - } - return false; -} - // alias - Provide a bunch of ad-hoc rules to disambiguate in common cases, such // as array references. Note that this function is heavily tail recursive. // Hopefully we have a smart C++ compiler. :) @@ -317,9 +306,12 @@ // If they are two different objects, and one is a noalias argument // then they do not alias. - if (O1 != O2 && isNoAliasArgument(O1Arg)) + if (O1 != O2 && O1Arg->hasNoAliasAttr()) return NoAlias; - + + // Byval arguments can't alias globals or other arguments. + if (O1 != O2 && O1Arg->hasByValAttr()) return NoAlias; + // Otherwise, nothing is known... } @@ -329,16 +321,18 @@ // If they are two different objects, and one is a noalias argument // then they do not alias. - if (O1 != O2 && isNoAliasArgument(O2Arg)) + if (O1 != O2 && O2Arg->hasNoAliasAttr()) return NoAlias; + // Byval arguments can't alias globals or other arguments. + if (O1 != O2 && O2Arg->hasByValAttr()) return NoAlias; + // Otherwise, nothing is known... - } else if (O1 != O2) { - if (!isa(O1)) - // If they are two different objects, and neither is an argument, - // we know that we have no alias... - return NoAlias; + } else if (O1 != O2 && !isa(O1)) { + // If they are two different objects, and neither is an argument, + // we know that we have no alias. + return NoAlias; } // If they are the same object, they we can look at the indexes. If they @@ -347,9 +341,15 @@ // can't tell anything. } - - if (!isa(O1) && isa(V2)) - return NoAlias; // Unique values don't alias null + // Unique values don't alias null, except non-byval arguments. + if (isa(V2)) { + if (const Argument *O1Arg = dyn_cast(O1)) { + if (O1Arg->hasByValAttr()) + return NoAlias; + } else { + return NoAlias; + } + } if (isa(O1) || (isa(O1) && Added: llvm/trunk/test/Analysis/BasicAA/byval.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/BasicAA/byval.ll?rev=46315&view=auto ============================================================================== --- llvm/trunk/test/Analysis/BasicAA/byval.ll (added) +++ llvm/trunk/test/Analysis/BasicAA/byval.ll Thu Jan 24 12:00:32 2008 @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {ret i32 1} +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i686-apple-darwin8" + %struct.x = type { i32, i32, i32, i32 } + at g = weak global i32 0 ; [#uses=1] + +define i32 @foo(%struct.x* byval %a) nounwind { +entry: + %tmp1 = tail call i32 (...)* @bar( %struct.x* %a ) nounwind ; [#uses=0] + %tmp2 = getelementptr %struct.x* %a, i32 0, i32 0 ; [#uses=2] + store i32 1, i32* %tmp2, align 4 + store i32 2, i32* @g, align 4 + %tmp4 = load i32* %tmp2, align 4 ; [#uses=1] + ret i32 %tmp4 +} + +declare i32 @bar(...) + From isanbard at gmail.com Thu Jan 24 12:46:13 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 10:46:13 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46281 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c In-Reply-To: <200801241231.41172.baldrick@free.fr> References: <200801232141.m0NLf6Lw001788@zion.cs.uiuc.edu> <200801240757.03982.baldrick@free.fr> <200801241231.41172.baldrick@free.fr> Message-ID: <16e5fdf90801241046k389e0dc5n75ec4c7fe99f2e9a@mail.gmail.com> On Jan 24, 2008 3:31 AM, Duncan Sands wrote: > > On Thursday 24 January 2008 08:45:28 Bill Wendling wrote: > > Hi Duncan, > > > > >> GCC barfs this to the .s file directly: > > >> > > >> .objc_class_name_CrashTestPlugin=0 > > >> .globl .objc_class_name_CrashTestPlugin > > > > > > it looks like you write this directly to a file > > > containing LLVM IR. I guess this is OK as long > > > as no-one is using the global in the IR (otherwise > > > the verifier will barf). Is that the case? > > > > > This is what I understand to be happening. The GCC version of this > > doesn't even create a tree node for these, so it shouldn't be > > generating a use of it. I'm taking that to imply that the GCC to LLVM > > converter won't create a use of it. > > Does this work whether writing LLVM assembler or > LLVM bitcode? > This is how it's output to the .ll file: module asm "\09.objc_class_name_Sub2=0" module asm "\09.globl .objc_class_name_Sub2" So yes. Note that this is something already being done. See the ASM_DECLARE_UNRESOLVED_REFERENCE macro in the gcc/config/darwin.h file. -bw From kremenek at apple.com Thu Jan 24 12:59:52 2008 From: kremenek at apple.com (Ted Kremenek) Date: Thu, 24 Jan 2008 18:59:52 -0000 Subject: [llvm-commits] [llvm] r46316 - /llvm/trunk/include/llvm/ADT/APSInt.h Message-ID: <200801241859.m0OIxrpF024859@zion.cs.uiuc.edu> Author: kremenek Date: Thu Jan 24 12:59:52 2008 New Revision: 46316 URL: http://llvm.org/viewvc/llvm-project?rev=46316&view=rev Log: Added additional overloaded operators for APSInt to match the operators of APInt. While some operators were already specifically overloaded for APSInt, others resulted in using the overloaded operator methods in APInt, which would result in the signedness bit being lost. Modified the APSInt(APInt&) constructor to be "explicit" and to take an extra (optional) flag to indicate the signedness. Making the ctor explicit will catch any implicit conversations between APSInt -> APInt -> APSInt that results in the signedness flag being lost. Modified: llvm/trunk/include/llvm/ADT/APSInt.h Modified: llvm/trunk/include/llvm/ADT/APSInt.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APSInt.h?rev=46316&r1=46315&r2=46316&view=diff ============================================================================== --- llvm/trunk/include/llvm/ADT/APSInt.h (original) +++ llvm/trunk/include/llvm/ADT/APSInt.h Thu Jan 24 12:59:52 2008 @@ -26,7 +26,9 @@ /// APSInt ctor - Create an APSInt with the specified width, default to /// unsigned. explicit APSInt(uint32_t BitWidth) : APInt(BitWidth, 0), IsUnsigned(true) {} - APSInt(const APInt &I) : APInt(I), IsUnsigned(true) {} + + explicit APSInt(const APInt &I, bool isUnsigned = true) + : APInt(I), IsUnsigned(isUnsigned) {} APSInt &operator=(const APSInt &RHS) { APInt::operator=(RHS); @@ -58,6 +60,21 @@ return APInt::toString(Radix, isSigned()); } + APSInt& extend(uint32_t width) { + if (IsUnsigned) + zext(width); + else + sext(width); + return *this; + } + + APSInt& extOrTrunc(uint32_t width) { + if (IsUnsigned) + zextOrTrunc(width); + else + sextOrTrunc(width); + return *this; + } const APSInt &operator%=(const APSInt &RHS) { assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); @@ -77,38 +94,21 @@ } APSInt operator%(const APSInt &RHS) const { assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); - return IsUnsigned ? urem(RHS) : srem(RHS); + return IsUnsigned ? APSInt(urem(RHS), true) : APSInt(srem(RHS), false); } APSInt operator/(const APSInt &RHS) const { assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); - return IsUnsigned ? udiv(RHS) : sdiv(RHS); + return IsUnsigned ? APSInt(udiv(RHS), true) : APSInt(sdiv(RHS), false); } - const APSInt &operator>>=(unsigned Amt) { - *this = *this >> Amt; - return *this; + APSInt operator>>(unsigned Amt) const { + return IsUnsigned ? APSInt(lshr(Amt), true) : APSInt(ashr(Amt), false); } - - APSInt& extend(uint32_t width) { - if (IsUnsigned) - zext(width); - else - sext(width); + APSInt& operator>>=(unsigned Amt) { + *this = *this >> Amt; return *this; } - APSInt& extOrTrunc(uint32_t width) { - if (IsUnsigned) - zextOrTrunc(width); - else - sextOrTrunc(width); - return *this; - } - - APSInt operator>>(unsigned Amt) const { - return IsUnsigned ? lshr(Amt) : ashr(Amt); - } - inline bool operator<(const APSInt& RHS) const { assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); return IsUnsigned ? ult(RHS) : slt(RHS); @@ -126,6 +126,106 @@ return IsUnsigned ? uge(RHS) : sge(RHS); } + // The remaining operators just wrap the logic of APInt, but retain the + // signedness information. + + APSInt operator<<(unsigned Bits) { + return APSInt(static_cast(*this) << Bits, IsUnsigned); + } + APSInt& operator<<=(unsigned Amt) { + *this = *this << Amt; + return *this; + } + + APSInt& operator++() { + static_cast(*this)++; + return *this; + } + APSInt& operator--() { + static_cast(*this)++; + return *this; + } + APSInt operator++(int) { + return APSInt(++static_cast(*this), IsUnsigned); + } + APSInt operator--(int) { + return APSInt(--static_cast(*this), IsUnsigned); + } + APSInt operator-() const { + return APSInt(-static_cast(*this), IsUnsigned); + } + APSInt& operator+=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) += RHS; + return *this; + } + APSInt& operator-=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) -= RHS; + return *this; + } + APSInt& operator*=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) *= RHS; + return *this; + } + APSInt& operator&=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) &= RHS; + return *this; + } + APSInt& operator|=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) |= RHS; + return *this; + } + APSInt& operator^=(const APSInt& RHS) { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + static_cast(*this) ^= RHS; + return *this; + } + + APSInt operator&(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) & RHS, IsUnsigned); + } + APSInt And(const APSInt& RHS) const { + return this->operator&(RHS); + } + + APSInt operator|(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) | RHS, IsUnsigned); + } + APSInt Or(const APSInt& RHS) const { + return this->operator|(RHS); + } + + + APSInt operator^(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) ^ RHS, IsUnsigned); + } + APSInt Xor(const APSInt& RHS) const { + return this->operator^(RHS); + } + + APSInt operator*(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) * RHS, IsUnsigned); + } + APSInt operator+(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) + RHS, IsUnsigned); + } + APSInt operator-(const APSInt& RHS) const { + assert(IsUnsigned == RHS.IsUnsigned && "Signedness mismatch!"); + return APSInt(static_cast(*this) - RHS, IsUnsigned); + } + APSInt operator~() { + return APSInt(~static_cast(*this), IsUnsigned); + } + /// Profile - Used to insert APSInt objects, or objects that contain APSInt /// objects, into FoldingSets. void Profile(FoldingSetNodeID& ID) const; From sabre at nondot.org Thu Jan 24 13:07:13 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 19:07:13 -0000 Subject: [llvm-commits] [llvm] r46318 - /llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Message-ID: <200801241907.m0OJ7Dx6025129@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 13:07:10 2008 New Revision: 46318 URL: http://llvm.org/viewvc/llvm-project?rev=46318&view=rev Log: getUnderlyingObject can return null, handle this. Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp?rev=46318&r1=46317&r2=46318&view=diff ============================================================================== --- llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp (original) +++ llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Thu Jan 24 13:07:10 2008 @@ -245,8 +245,9 @@ if (!isa(P)) { const Value *Object = getUnderlyingObject(P); // Allocations and byval arguments are "new" objects. - if (isa(Object) || - (isa(Object) && cast(Object)->hasByValAttr())) { + if (Object && + (isa(Object) || + (isa(Object) && cast(Object)->hasByValAttr()))) { // Okay, the pointer is to a stack allocated object. If we can prove that // the pointer never "escapes", then we know the call cannot clobber it, // because it simply can't get its address. From sabre at nondot.org Thu Jan 24 13:28:11 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 19:28:11 -0000 Subject: [llvm-commits] [llvm] r46320 - /llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp Message-ID: <200801241928.m0OJSBwX025810@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 13:28:11 2008 New Revision: 46320 URL: http://llvm.org/viewvc/llvm-project?rev=46320&view=rev Log: Don't dump the function! Modified: llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp Modified: llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp?rev=46320&r1=46319&r2=46320&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp (original) +++ llvm/trunk/lib/CodeGen/ShadowStackCollector.cpp Thu Jan 24 13:28:11 2008 @@ -426,8 +426,6 @@ Roots[I].second->eraseFromParent(); } - F.dump(); - Roots.clear(); return true; } From dalej at apple.com Thu Jan 24 14:54:56 2008 From: dalej at apple.com (Dale Johannesen) Date: Thu, 24 Jan 2008 20:54:56 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46322 - /llvm-gcc-4.2/trunk/gcc/config/darwin.c Message-ID: <200801242054.m0OKsvK9028858@zion.cs.uiuc.edu> Author: johannes Date: Thu Jan 24 14:54:56 2008 New Revision: 46322 URL: http://llvm.org/viewvc/llvm-project?rev=46322&view=rev Log: Move some data into the correct sections for ObjC ABI V2. Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.c Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.c?rev=46322&r1=46321&r2=46322&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/darwin.c (original) +++ llvm-gcc-4.2/trunk/gcc/config/darwin.c Thu Jan 24 14:54:56 2008 @@ -1563,9 +1563,13 @@ else if (!strncmp (name, "CLASS_REFERENCES", 16)) return "__OBJC,__cls_refs,literal_pointers,no_dead_strip"; else if (!strncmp (name, "CLASS_", 6)) - return "__OBJC,__class,regular,no_dead_strip"; + return (flag_objc_abi == 1 ? + "__OBJC,__class,regular,no_dead_strip" : + "__DATA,__data"); else if (!strncmp (name, "METACLASS_", 10)) - return "__OBJC,__meta_class,regular,no_dead_strip"; + return (flag_objc_abi == 1 ? + "__OBJC,__meta_class,regular,no_dead_strip" : + "__DATA,__data"); else if (!strncmp (name, "CATEGORY_", 9)) return "__OBJC,__category,regular,no_dead_strip"; else if (!strncmp (name, "SELECTOR_REFERENCES", 19)) From isanbard at gmail.com Thu Jan 24 15:00:51 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 21:00:51 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46324 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h objc/objc-act.c Message-ID: <200801242100.m0OL0p6X029059@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 15:00:50 2008 New Revision: 46324 URL: http://llvm.org/viewvc/llvm-project?rev=46324&view=rev Log: Don't output these directives for the new ObjC ABI. Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=46324&r1=46323&r2=46324&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original) +++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Thu Jan 24 15:00:50 2008 @@ -954,7 +954,7 @@ #define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \ do { \ if (FILE) { \ - char *Buffer = alloca(strlen(NAME)+30); \ + char *Buffer = alloca(strlen(NAME) + 30); \ sprintf(Buffer, "\t%s=0", NAME); \ llvm_emit_file_scope_asm(Buffer); \ sprintf(Buffer, "\t.globl %s", NAME); \ Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46324&r1=46323&r2=46324&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Thu Jan 24 15:00:50 2008 @@ -18412,7 +18412,12 @@ #ifdef ASM_DECLARE_CLASS_REFERENCE if (flag_next_runtime) { - ASM_DECLARE_CLASS_REFERENCE (asm_out_file, string); + /* LLVM LOCAL begin - radar 5702446 */ +#ifdef ENABLE_LLVM + if (flag_objc_abi != 2) +#endif + /* LLVM LOCAL end - radar 5702446 */ + ASM_DECLARE_CLASS_REFERENCE (asm_out_file, string); return; } else From lattner at apple.com Thu Jan 24 15:10:35 2008 From: lattner at apple.com (Tanya Lattner) Date: Thu, 24 Jan 2008 13:10:35 -0800 Subject: [llvm-commits] C++Frontend/2006-09-12-OpaqueStructCrash.cpp failing Message-ID: <8807635F-AFF5-40E5-B74C-105D2E7781BD@apple.com> Using llvm-gcc4.0 on darwin8 x86, C++Frontend/2006-09-12- OpaqueStructCrash.cpp is failing (svn rev: 46324) llvm/test/C++Frontend/2006-09-12-OpaqueStructCrash.cpp:27: internal compiler error: Bus error -Tanya From dalej at apple.com Thu Jan 24 16:16:00 2008 From: dalej at apple.com (Dale Johannesen) Date: Thu, 24 Jan 2008 22:16:00 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46325 - in /llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg: objc2-protocol-1.mm objc2-protocol-2.mm objc2-protocol-4.mm objc2-protocol-5.mm objc2-protocol-9.mm property-metadata-1.mm Message-ID: <200801242216.m0OMG02c032247@zion.cs.uiuc.edu> Author: johannes Date: Thu Jan 24 16:16:00 2008 New Revision: 46325 URL: http://llvm.org/viewvc/llvm-project?rev=46325&view=rev Log: Upgrade some more tests for llvm. Llvm doesn't mangle the names of some local symbols, and there's no reason it should. Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-1.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-2.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-4.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-5.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-9.mm llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/property-metadata-1.mm Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-1.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-1.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-1.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-1.mm Thu Jan 24 16:16:00 2008 @@ -14,5 +14,7 @@ int main() { return (long) @protocol(Proto1); } -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto1:" } } */ -/* { dg-final { scan-assembler-not "_ZL23_OBJC_PROTOCOL_\\\$_Proto2" } } */ +/* LLVM LOCAL begin accept llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto1:" } } */ +/* { dg-final { scan-assembler-not ".*_OBJC_PROTOCOL_\\\$_Proto2" } } */ +/* LLVM LOCAL end */ \ No newline at end of file Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-2.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-2.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-2.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-2.mm Thu Jan 24 16:16:00 2008 @@ -11,5 +11,7 @@ @interface Super { id isa; } @end @implementation Super @end -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto1:" } } */ -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL begin llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto1:" } } */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL end */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-4.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-4.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-4.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-4.mm Thu Jan 24 16:16:00 2008 @@ -20,5 +20,7 @@ { return (long)@protocol(Proto2); } -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto1:" } } */ -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL begin llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto1:" } } */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL end */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-5.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-5.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-5.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-5.mm Thu Jan 24 16:16:00 2008 @@ -13,4 +13,5 @@ int main() { return (long) @protocol(Proto1); } -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto1:" } } */ +/* LLVM LOCAL llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto1:" } } */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-9.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/objc2-protocol-9.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-9.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/objc2-protocol-9.mm Thu Jan 24 16:16:00 2008 @@ -18,5 +18,7 @@ @implementation Foo (Category) @end -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto1:" } } */ -/* { dg-final { scan-assembler "L_ZL23_OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL begin accept llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto1:" } } */ +/* { dg-final { scan-assembler "L_.*OBJC_PROTOCOL_\\\$_Proto2:" } } */ +/* LLVM LOCAL end */ Modified: llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/property-metadata-1.mm URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/obj-c%2B%2B.dg/property-metadata-1.mm?rev=46325&r1=46324&r2=46325&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/property-metadata-1.mm (original) +++ llvm-gcc-4.2/trunk/gcc/testsuite/obj-c++.dg/property-metadata-1.mm Thu Jan 24 16:16:00 2008 @@ -22,5 +22,7 @@ @dynamic referenceCount; @end -/* { dg-final { scan-assembler "L_ZL26_OBJC_\\\$_PROP_LIST_GCObject:" } } */ -/* { dg-final { scan-assembler "L_ZL32_OBJC_\\\$_PROP_PROTO_LIST_GCObject:" } } */ +/* LLVM LOCAL begin accept llvm syntax */ +/* { dg-final { scan-assembler "L_.*OBJC_\\\$_PROP_LIST_GCObject:" } } */ +/* { dg-final { scan-assembler "L_.*OBJC_\\\$_PROP_PROTO_LIST_GCObject:" } } */ +/* LLVM LOCAL end */ \ No newline at end of file From sabre at nondot.org Thu Jan 24 16:51:48 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 16:51:48 -0600 Subject: [llvm-commits] CVS: llvm-www/pubs/2008-CGO-DagISel.html 2008-CGO-DagISel.pdf Message-ID: <200801242251.m0OMpmhg001550@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: 2008-CGO-DagISel.html added (r1.1) 2008-CGO-DagISel.pdf added (r1.1) --- Log message: add a paper on near optimal instruction selection --- Diffs of the changes: (+48 -0) 2008-CGO-DagISel.html | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2008-CGO-DagISel.pdf | 0 2 files changed, 48 insertions(+) Index: llvm-www/pubs/2008-CGO-DagISel.html diff -c /dev/null llvm-www/pubs/2008-CGO-DagISel.html:1.1 *** /dev/null Thu Jan 24 16:51:13 2008 --- llvm-www/pubs/2008-CGO-DagISel.html Thu Jan 24 16:51:03 2008 *************** *** 0 **** --- 1,48 ---- + + + + + + Near-Optimal Instruction Selection on DAGs + + + +
+ Near-Optimal Instruction Selection on DAGs +
+
+ David Ryan Koes and Seth Copen Goldstein +
+ +

Abstract:

+
+ Instruction selection is a key component of code generation. High + quality instruction selection is of particular importance in the embedded space where complex instruction sets are common and code + size is a prime concern. Although instruction selection on tree expressions is a well understood and easily solved problem, instruction selection on directed acyclic graphs is NP-complete. In this + paper we present NOLTIS, a near-optimal, linear time instruction + selection algorithm for DAG expressions. NOLTIS is easy to im- + plement, fast, and effective with a demonstrated average code size + improvement of 5.1% compared to the traditional tree decomposi- + tion and tiling approach. +
+ +

Published:

+ "Near-Optimal Instruction Selection on DAGs"
+ David Ryan Koes and Seth Copen Goldstein
+ Proc. ACM Conference on Code Generation and Optimization (CGO'08), Boston, MA, 2008. + +

Download:

+

Paper:

+ + + +
+ Valid CSS! + Valid HTML 4.01! + + + Index: llvm-www/pubs/2008-CGO-DagISel.pdf From sabre at nondot.org Thu Jan 24 16:53:01 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 16:53:01 -0600 Subject: [llvm-commits] CVS: llvm-www/pubs/index.html Message-ID: <200801242253.m0OMr1Fs001627@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: index.html updated: 1.61 -> 1.62 --- Log message: add paper to index. --- Diffs of the changes: (+5 -0) index.html | 5 +++++ 1 files changed, 5 insertions(+) Index: llvm-www/pubs/index.html diff -u llvm-www/pubs/index.html:1.61 llvm-www/pubs/index.html:1.62 --- llvm-www/pubs/index.html:1.61 Thu Jan 17 11:18:48 2008 +++ llvm-www/pubs/index.html Thu Jan 24 16:52:43 2008 @@ -3,6 +3,11 @@
    +
  1. "Near-Optimal Instruction Selection on DAGs"
    +David Ryan Koes and Seth Copen Goldstein
    +Proc. ACM Conference on Code Generation and Optimization (CGO'08), Boston, MA, 2008.
  2. + +
  3. Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems
    John Criswell, Andrew Lenharth, Dinakar Dhurjati, and From sabre at nondot.org Thu Jan 24 16:54:10 2008 From: sabre at nondot.org (Chris Lattner) Date: Thu, 24 Jan 2008 16:54:10 -0600 Subject: [llvm-commits] CVS: llvm-www/pubs/index.html 2008-CGO-DagISel.html Message-ID: <200801242254.m0OMsAlD001687@zion.cs.uiuc.edu> Changes in directory llvm-www/pubs: index.html updated: 1.62 -> 1.63 2008-CGO-DagISel.html updated: 1.1 -> 1.2 --- Log message: more formal name. --- Diffs of the changes: (+2 -2) 2008-CGO-DagISel.html | 2 +- index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: llvm-www/pubs/index.html diff -u llvm-www/pubs/index.html:1.62 llvm-www/pubs/index.html:1.63 --- llvm-www/pubs/index.html:1.62 Thu Jan 24 16:52:43 2008 +++ llvm-www/pubs/index.html Thu Jan 24 16:53:51 2008 @@ -5,7 +5,7 @@
  4. "Near-Optimal Instruction Selection on DAGs"
    David Ryan Koes and Seth Copen Goldstein
    -Proc. ACM Conference on Code Generation and Optimization (CGO'08), Boston, MA, 2008.
  5. +Proc. of the 2008 International Symposium on Code Generation and Optimization (CGO'08), Boston, MA, 2008.
  6. Index: llvm-www/pubs/2008-CGO-DagISel.html diff -u llvm-www/pubs/2008-CGO-DagISel.html:1.1 llvm-www/pubs/2008-CGO-DagISel.html:1.2 --- llvm-www/pubs/2008-CGO-DagISel.html:1.1 Thu Jan 24 16:51:03 2008 +++ llvm-www/pubs/2008-CGO-DagISel.html Thu Jan 24 16:53:51 2008 @@ -29,7 +29,7 @@

    Published:

    "Near-Optimal Instruction Selection on DAGs"
    David Ryan Koes and Seth Copen Goldstein
    -Proc. ACM Conference on Code Generation and Optimization (CGO'08), Boston, MA, 2008. +Proc. of the 2008 International Symposium on Code Generation and Optimization (CGO'08), Boston, MA, 2008.

    Download:

    Paper:

    From isanbard at gmail.com Thu Jan 24 17:29:26 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 23:29:26 -0000 Subject: [llvm-commits] [llvm] r46331 - /llvm/tags/Apple/llvmCore-2011/ Message-ID: <200801242329.m0ONTQLS002930@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 17:29:26 2008 New Revision: 46331 URL: http://llvm.org/viewvc/llvm-project?rev=46331&view=rev Log: Creating llvmCore-2011 branch Added: llvm/tags/Apple/llvmCore-2011/ - copied from r46330, llvm/trunk/ From isanbard at gmail.com Thu Jan 24 17:29:33 2008 From: isanbard at gmail.com (Bill Wendling) Date: Thu, 24 Jan 2008 23:29:33 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46332 - /llvm-gcc-4.2/tags/Apple/llvmgcc42-2011/ Message-ID: <200801242329.m0ONTX7O002946@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 17:29:32 2008 New Revision: 46332 URL: http://llvm.org/viewvc/llvm-project?rev=46332&view=rev Log: Creating llvmgcc42-2011 branch Added: llvm-gcc-4.2/tags/Apple/llvmgcc42-2011/ - copied from r46331, llvm-gcc-4.2/trunk/ From dpatel at apple.com Thu Jan 24 17:55:34 2008 From: dpatel at apple.com (Devang Patel) Date: Thu, 24 Jan 2008 23:55:34 -0000 Subject: [llvm-commits] [llvm] r46333 - /llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c Message-ID: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> Author: dpatel Date: Thu Jan 24 17:55:34 2008 New Revision: 46333 URL: http://llvm.org/viewvc/llvm-project?rev=46333&view=rev Log: New test. Added: llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c Added: llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c?rev=46333&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c (added) +++ llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c Thu Jan 24 17:55:34 2008 @@ -0,0 +1,6 @@ +// RUN: %llvmgcc %s -S -o - + +// This struct is not 4 byte aligned becaues bit-field +// type does not influence struct alignment. +struct U { char a; short b; int c:25; char d; } u; + From dpatel at apple.com Thu Jan 24 17:56:38 2008 From: dpatel at apple.com (Devang Patel) Date: Thu, 24 Jan 2008 23:56:38 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46334 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801242356.m0ONucui003854@zion.cs.uiuc.edu> Author: dpatel Date: Thu Jan 24 17:56:38 2008 New Revision: 46334 URL: http://llvm.org/viewvc/llvm-project?rev=46334&view=rev Log: Fix 2008-01-24-StructAlignAndBitFields.c test case. Bit-field type does not influence struct alignment. Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46334&r1=46333&r2=46334&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Thu Jan 24 17:56:38 2008 @@ -1747,6 +1747,11 @@ // Handle bit-fields specially. if (isBitfield(Field)) { + // Bit-field type does not influence structure alignment. + // For example, struct A { char a; short b; int c:25; char d; } does not + // have 4 byte alignment. To enforce this rule, always use packed struct. + if (!Info.isPacked()) + return false; DecodeStructBitField(Field, Info); return true; } From asl at math.spbu.ru Thu Jan 24 18:34:14 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Fri, 25 Jan 2008 00:34:14 -0000 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td Message-ID: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> Author: asl Date: Thu Jan 24 18:34:13 2008 New Revision: 46337 URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev Log: Provide correct DWARF register numbering for debug information emission on x86-32/Darwin. This should fix bunch of issues. Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp llvm/trunk/lib/Target/X86/X86RegisterInfo.h llvm/trunk/lib/Target/X86/X86RegisterInfo.td Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 18:34:13 2008 @@ -64,12 +64,15 @@ unsigned Flavour = DWARFFlavour::X86_64; if (!Subtarget->is64Bit()) { if (Subtarget->isTargetDarwin()) { - Flavour = DWARFFlavour::X86_32_Darwin; + if (isEH) + Flavour = DWARFFlavour::X86_32_DarwinEH; + else + Flavour = DWARFFlavour::X86_32_Generic; } else if (Subtarget->isTargetCygMing()) { // Unsupported by now, just quick fallback - Flavour = DWARFFlavour::X86_32_ELF; + Flavour = DWARFFlavour::X86_32_Generic; } else { - Flavour = DWARFFlavour::X86_32_ELF; + Flavour = DWARFFlavour::X86_32_Generic; } } Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 2008 @@ -36,7 +36,7 @@ /// namespace DWARFFlavour { enum { - X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2 + X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2 }; } Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 18:34:13 2008 @@ -25,11 +25,8 @@ // Dwarf numbering is different for 32-bit and 64-bit, and there are // variations by target as well. Currently the first entry is for X86-64, - // second - for X86-32/Darwin and third for X86-32/Linux - - // FIXME: Comments in gcc indicate that Darwin uses different numbering - // for debug info and exception handling info:( The numbering here is - // for exception handling. + // second - for EH on X86-32/Darwin and third is 'generic' one (X86-32/Linux + // and debug information on X86-32/Darwin) // 8-bit registers // Low registers From dpatel at apple.com Thu Jan 24 18:43:55 2008 From: dpatel at apple.com (Devang Patel) Date: Fri, 25 Jan 2008 00:43:55 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46338 - /llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Message-ID: <200801250043.m0P0ht2K005557@zion.cs.uiuc.edu> Author: dpatel Date: Thu Jan 24 18:43:54 2008 New Revision: 46338 URL: http://llvm.org/viewvc/llvm-project?rev=46338&view=rev Log: Fix 2008-01-24-StructAlignAndBitFields.c test case. Bit-field type does not influence struct alignment. Modified: llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-types.cpp?rev=46338&r1=46337&r2=46338&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-types.cpp Thu Jan 24 18:43:54 2008 @@ -1529,9 +1529,14 @@ // Handle bit-fields specially. if (DECL_BIT_FIELD_TYPE(Field)) { - DecodeStructBitField(Field, Info); - return true; - } + // Bit-field type does not influence structure alignment. + // For example, struct A { char a; short b; int c:25; char d; } does not + // have 4 byte alignment. To enforce this rule, always use packed struct. + if (!Info.isPacked()) + return false; + DecodeStructBitField(Field, Info); + return true; + } Info.allFieldsAreNotBitFields(); From resistor at mac.com Thu Jan 24 18:53:33 2008 From: resistor at mac.com (Owen Anderson) Date: Thu, 24 Jan 2008 18:53:33 -0600 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> Message-ID: Evan, Chris, I've confirmed that basic testcases appear to be working with this change. --Owen On Jan 24, 2008, at 6:34 PM, Anton Korobeynikov wrote: > Author: asl > Date: Thu Jan 24 18:34:13 2008 > New Revision: 46337 > > URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev > Log: > Provide correct DWARF register numbering for debug information > emission on x86-32/Darwin. > This should fix bunch of issues. > > Modified: > llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp > llvm/trunk/lib/Target/X86/X86RegisterInfo.h > llvm/trunk/lib/Target/X86/X86RegisterInfo.td > > Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) > +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 > 18:34:13 2008 > @@ -64,12 +64,15 @@ > unsigned Flavour = DWARFFlavour::X86_64; > if (!Subtarget->is64Bit()) { > if (Subtarget->isTargetDarwin()) { > - Flavour = DWARFFlavour::X86_32_Darwin; > + if (isEH) > + Flavour = DWARFFlavour::X86_32_DarwinEH; > + else > + Flavour = DWARFFlavour::X86_32_Generic; > } else if (Subtarget->isTargetCygMing()) { > // Unsupported by now, just quick fallback > - Flavour = DWARFFlavour::X86_32_ELF; > + Flavour = DWARFFlavour::X86_32_Generic; > } else { > - Flavour = DWARFFlavour::X86_32_ELF; > + Flavour = DWARFFlavour::X86_32_Generic; > } > } > > > Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original) > +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 > 2008 > @@ -36,7 +36,7 @@ > /// > namespace DWARFFlavour { > enum { > - X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2 > + X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2 > }; > } > > > Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) > +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 18:34:13 > 2008 > @@ -25,11 +25,8 @@ > > // Dwarf numbering is different for 32-bit and 64-bit, and there are > // variations by target as well. Currently the first entry is for > X86-64, > - // second - for X86-32/Darwin and third for X86-32/Linux > - > - // FIXME: Comments in gcc indicate that Darwin uses different > numbering > - // for debug info and exception handling info:( The numbering > here is > - // for exception handling. > + // second - for EH on X86-32/Darwin and third is 'generic' one > (X86-32/Linux > + // and debug information on X86-32/Darwin) > > // 8-bit registers > // Low registers > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 2555 bytes Desc: not available Url : http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20080124/d4561264/attachment.bin From evan.cheng at apple.com Thu Jan 24 18:54:48 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 16:54:48 -0800 Subject: [llvm-commits] [llvm] r46307 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/fp-stack-direct-ret.ll test/CodeGen/X86/fp-stack-ret-conv.ll test/CodeGen/X86/pr1505b.ll In-Reply-To: <200801240807.m0O87oY3012420@zion.cs.uiuc.edu> References: <200801240807.m0O87oY3012420@zion.cs.uiuc.edu> Message-ID: <93DD297F-5916-4EE9-A3D0-30550D807CE1@apple.com> Is there a bugzilla on the scheduling deficiency? Thx, Evan On Jan 24, 2008, at 12:07 AM, Chris Lattner wrote: > Author: lattner > Date: Thu Jan 24 02:07:48 2008 > New Revision: 46307 > > URL: http://llvm.org/viewvc/llvm-project?rev=46307&view=rev > Log: > Significantly simplify and improve handling of FP function results > on x86-32. > This case returns the value in ST(0) and then has to convert it to > an SSE > register. This causes significant codegen ugliness in some cases. > For > example in the trivial fp-stack-direct-ret.ll testcase we used to > generate: > > _bar: > subl $28, %esp > call L_foo$stub > fstpl 16(%esp) > movsd 16(%esp), %xmm0 > movsd %xmm0, 8(%esp) > fldl 8(%esp) > addl $28, %esp > ret > > because we move the result of foo() into an XMM register, then have to > move it back for the return of bar. > > Instead of hacking ever-more special cases into the call result > lowering code > we take a much simpler approach: on x86-32, fp return is modeled as > always > returning into an f80 register which is then truncated to f32 or f64 > as needed. > Similarly for a result, we model it as an extension to f80 + return. > > This exposes the truncate and extensions to the dag combiner, > allowing target > independent code to hack on them, eliminating them in this case. > This gives > us this code for the example above: > > _bar: > subl $12, %esp > call L_foo$stub > addl $12, %esp > ret > > The nasty aspect of this is that these conversions are not legal, > but we want > the second pass of dag combiner (post-legalize) to be able to hack > on them. > To handle this, we lie to legalize and say they are legal, then > custom expand > them on entry to the isel pass (PreprocessForFPConvert). This is > gross, but > less gross than the code it is replacing :) > > This also allows us to generate better code in several other cases. > For > example on fp-stack-ret-conv.ll, we now generate: > > _test: > subl $12, %esp > call L_foo$stub > fstps 8(%esp) > movl 16(%esp), %eax > cvtss2sd 8(%esp), %xmm0 > movsd %xmm0, (%eax) > addl $12, %esp > ret > > where before we produced (incidentally, the old bad code is > identical to what > gcc produces): > > _test: > subl $12, %esp > call L_foo$stub > fstpl (%esp) > cvtsd2ss (%esp), %xmm0 > cvtss2sd %xmm0, %xmm0 > movl 16(%esp), %eax > movsd %xmm0, (%eax) > addl $12, %esp > ret > > Note that we generate slightly worse code on pr1505b.ll due to a > scheduling > deficiency that is unrelated to this patch. > > > Added: > llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll > llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll > Modified: > llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp > llvm/trunk/lib/Target/X86/X86ISelLowering.cpp > llvm/trunk/lib/Target/X86/X86InstrSSE.td > llvm/trunk/test/CodeGen/X86/pr1505b.ll > > Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=46307&r1=46306&r2=46307&view=diff > > === > === > === > ===================================================================== > --- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original) > +++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jan 24 > 02:07:48 2008 > @@ -156,7 +156,8 @@ > bool TryFoldLoad(SDOperand P, SDOperand N, > SDOperand &Base, SDOperand &Scale, > SDOperand &Index, SDOperand &Disp); > - void InstructionSelectPreprocess(SelectionDAG &DAG); > + void PreprocessForRMW(SelectionDAG &DAG); > + void PreprocessForFPConvert(SelectionDAG &DAG); > > /// SelectInlineAsmMemoryOperand - Implement addressing mode > selection for > /// inline asm expressions. > @@ -350,9 +351,10 @@ > Store.getOperand(2), Store.getOperand(3)); > } > > -/// InstructionSelectPreprocess - Preprocess the DAG to allow the > instruction > -/// selector to pick more load-modify-store instructions. This is a > common > -/// case: > +/// PreprocessForRMW - Preprocess the DAG to make instruction > selection better. > +/// This is only run if not in -fast mode (aka -O0). > +/// This allows the instruction selector to pick more read-modify- > write > +/// instructions. This is a common case: > /// > /// [Load chain] > /// ^ > @@ -389,7 +391,7 @@ > /// \ / > /// \ / > /// [Store] > -void X86DAGToDAGISel::InstructionSelectPreprocess(SelectionDAG > &DAG) { > +void X86DAGToDAGISel::PreprocessForRMW(SelectionDAG &DAG) { > for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(), > E = DAG.allnodes_end(); I != E; ++I) { > if (!ISD::isNON_TRUNCStore(I)) > @@ -459,6 +461,66 @@ > } > } > > + > +/// PreprocessForFPConvert - Walk over the dag lowering fpround and > fpextend > +/// nodes that target the FP stack to be store and load to the > stack. This is a > +/// gross hack. We would like to simply mark these as being > illegal, but when > +/// we do that, legalize produces these when it expands calls, then > expands > +/// these in the same legalize pass. We would like dag combine to > be able to > +/// hack on these between the call expansion and the node > legalization. As such > +/// this pass basically does "really late" legalization of these > inline with the > +/// X86 isel pass. > +void X86DAGToDAGISel::PreprocessForFPConvert(SelectionDAG &DAG) { > + for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(), > + E = DAG.allnodes_end(); I != E; ) { > + SDNode *N = I++; // Preincrement iterator to avoid > invalidation issues. > + if (N->getOpcode() != ISD::FP_ROUND && N->getOpcode() != > ISD::FP_EXTEND) > + continue; > + > + // If the source and destination are SSE registers, then this > is a legal > + // conversion that should not be lowered. > + MVT::ValueType SrcVT = N->getOperand(0).getValueType(); > + MVT::ValueType DstVT = N->getValueType(0); > + bool SrcIsSSE = X86Lowering.isScalarFPTypeInSSEReg(SrcVT); > + bool DstIsSSE = X86Lowering.isScalarFPTypeInSSEReg(DstVT); > + if (SrcIsSSE && DstIsSSE) > + continue; > + > + // If this is an FPStack extension (but not a truncation), it > is a noop. > + if (!SrcIsSSE && !DstIsSSE && N->getOpcode() == ISD::FP_EXTEND) > + continue; > + > + // Here we could have an FP stack truncation or an FPStack <-> > SSE convert. > + // FPStack has extload and truncstore. SSE can fold direct > loads into other > + // operations. Based on this, decide what we want to do. > + MVT::ValueType MemVT; > + if (N->getOpcode() == ISD::FP_ROUND) > + MemVT = DstVT; // FP_ROUND must use DstVT, we can't do a > 'trunc load'. > + else > + MemVT = SrcIsSSE ? SrcVT : DstVT; > + > + SDOperand MemTmp = DAG.CreateStackTemporary(MemVT); > + > + // FIXME: optimize the case where the src/dest is a load or > store? > + SDOperand Store = DAG.getTruncStore(DAG.getEntryNode(), N- > >getOperand(0), > + MemTmp, NULL, 0, MemVT); > + SDOperand Result = DAG.getExtLoad(ISD::EXTLOAD, DstVT, Store, > MemTmp, > + NULL, 0, MemVT); > + > + // We're about to replace all uses of the FP_ROUND/FP_EXTEND > with the > + // extload we created. This will cause general havok on the > dag because > + // anything below the conversion could be folded into other > existing nodes. > + // To avoid invalidating 'I', back it up to the convert node. > + --I; > + DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 0), Result); > + > + // Now that we did that, the node is dead. Increment the > iterator to the > + // next node to process, then delete N. > + ++I; > + DAG.DeleteNode(N); > + } > +} > + > /// InstructionSelectBasicBlock - This callback is invoked by > SelectionDAGISel > /// when it has created a SelectionDAG for us to codegen. > void X86DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) { > @@ -466,7 +528,10 @@ > MachineFunction::iterator FirstMBB = BB; > > if (!FastISel) > - InstructionSelectPreprocess(DAG); > + PreprocessForRMW(DAG); > + > + // FIXME: This should only happen when not -fast. > + PreprocessForFPConvert(DAG); > > // Codegen the basic block. > #ifndef NDEBUG > > Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46307&r1=46306&r2=46307&view=diff > > === > === > === > ===================================================================== > --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) > +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Thu Jan 24 > 02:07:48 2008 > @@ -47,6 +47,7 @@ > X86ScalarSSEf32 = Subtarget->hasSSE1(); > X86StackPtr = Subtarget->is64Bit() ? X86::RSP : X86::ESP; > > + bool Fast = false; > > RegInfo = TM.getRegisterInfo(); > > @@ -355,13 +356,15 @@ > addLegalFPImmediate(APFloat(+0.0)); // xorpd > addLegalFPImmediate(APFloat(+0.0f)); // xorps > > - // Conversions to long double (in X87) go through memory. > - setConvertAction(MVT::f32, MVT::f80, Expand); > - setConvertAction(MVT::f64, MVT::f80, Expand); > - > - // Conversions from long double (in X87) go through memory. > - setConvertAction(MVT::f80, MVT::f32, Expand); > - setConvertAction(MVT::f80, MVT::f64, Expand); > + // Floating truncations from f80 and extensions to f80 go > through memory. > + // If optimizing, we lie about this though and handle it in > + // InstructionSelectPreprocess so that dagcombine2 can hack on > these. > + if (Fast) { > + setConvertAction(MVT::f32, MVT::f80, Expand); > + setConvertAction(MVT::f64, MVT::f80, Expand); > + setConvertAction(MVT::f80, MVT::f32, Expand); > + setConvertAction(MVT::f80, MVT::f64, Expand); > + } > } else if (X86ScalarSSEf32) { > // Use SSE for f32, x87 for f64. > // Set up the FP register classes. > @@ -395,15 +398,17 @@ > addLegalFPImmediate(APFloat(-0.0)); // FLD0/FCHS > addLegalFPImmediate(APFloat(-1.0)); // FLD1/FCHS > > - // SSE->x87 conversions go through memory. > - setConvertAction(MVT::f32, MVT::f64, Expand); > - setConvertAction(MVT::f32, MVT::f80, Expand); > - > - // x87->SSE truncations need to go through memory. > - setConvertAction(MVT::f80, MVT::f32, Expand); > - setConvertAction(MVT::f64, MVT::f32, Expand); > - // And x87->x87 truncations also. > - setConvertAction(MVT::f80, MVT::f64, Expand); > + // SSE <-> X87 conversions go through memory. If optimizing, > we lie about > + // this though and handle it in InstructionSelectPreprocess so > that > + // dagcombine2 can hack on these. > + if (Fast) { > + setConvertAction(MVT::f32, MVT::f64, Expand); > + setConvertAction(MVT::f32, MVT::f80, Expand); > + setConvertAction(MVT::f80, MVT::f32, Expand); > + setConvertAction(MVT::f64, MVT::f32, Expand); > + // And x87->x87 truncations also. > + setConvertAction(MVT::f80, MVT::f64, Expand); > + } > > if (!UnsafeFPMath) { > setOperationAction(ISD::FSIN , MVT::f64 , Expand); > @@ -420,10 +425,14 @@ > setOperationAction(ISD::FCOPYSIGN, MVT::f64, Expand); > setOperationAction(ISD::FCOPYSIGN, MVT::f32, Expand); > > - // Floating truncations need to go through memory. > - setConvertAction(MVT::f80, MVT::f32, Expand); > - setConvertAction(MVT::f64, MVT::f32, Expand); > - setConvertAction(MVT::f80, MVT::f64, Expand); > + // Floating truncations go through memory. If optimizing, we > lie about > + // this though and handle it in InstructionSelectPreprocess so > that > + // dagcombine2 can hack on these. > + if (Fast) { > + setConvertAction(MVT::f80, MVT::f32, Expand); > + setConvertAction(MVT::f64, MVT::f32, Expand); > + setConvertAction(MVT::f80, MVT::f64, Expand); > + } > > if (!UnsafeFPMath) { > setOperationAction(ISD::FSIN , MVT::f64 , Expand); > @@ -647,7 +656,7 @@ > } > > setTruncStoreAction(MVT::f64, MVT::f32, Expand); > - > + > // Custom lower v2i64 and v2f64 selects. > setOperationAction(ISD::LOAD, MVT::v2f64, Legal); > setOperationAction(ISD::LOAD, MVT::v2i64, Legal); > @@ -808,30 +817,10 @@ > // a register. > SDOperand Value = Op.getOperand(1); > > - // If this is an FP return with ScalarSSE, we need to move the > value from > - // an XMM register onto the fp-stack. > - if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) { > - SDOperand MemLoc; > - > - // If this is a load into a scalarsse value, don't store the > loaded value > - // back to the stack, only to reload it: just replace the > scalar-sse load. > - if (ISD::isNON_EXTLoad(Value.Val) && > - Chain.reachesChainWithoutSideEffects(Value.getOperand > (0))) { > - Chain = Value.getOperand(0); > - MemLoc = Value.getOperand(1); > - } else { > - // Spill the value to memory and reload it into top of stack. > - unsigned Size = MVT::getSizeInBits(RVLocs[0].getValVT())/8; > - MachineFunction &MF = DAG.getMachineFunction(); > - int SSFI = MF.getFrameInfo()->CreateStackObject(Size, Size); > - MemLoc = DAG.getFrameIndex(SSFI, getPointerTy()); > - Chain = DAG.getStore(Op.getOperand(0), Value, MemLoc, NULL, > 0); > - } > - SDVTList Tys = DAG.getVTList(RVLocs[0].getValVT(), MVT::Other); > - SDOperand Ops[] = {Chain, MemLoc, DAG.getValueType(RVLocs > [0].getValVT())}; > - Value = DAG.getNode(X86ISD::FLD, Tys, Ops, 3); > - Chain = Value.getValue(1); > - } > + // an XMM register onto the fp-stack. Do this with an > FP_EXTEND to f80. > + // This will get legalized into a load/store if it can't get > optimized away. > + if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) > + Value = DAG.getNode(ISD::FP_EXTEND, MVT::f80, Value); > > SDVTList Tys = DAG.getVTList(MVT::Other, MVT::Flag); > SDOperand Ops[] = { Chain, Value }; > @@ -876,87 +865,26 @@ > // Copies from the FP stack are special, as ST0 isn't a valid > register > // before the fp stackifier runs. > > - // Copy ST0 into an RFP register with FP_GET_RESULT. > - SDVTList Tys = DAG.getVTList(RVLocs[0].getValVT(), MVT::Other, > MVT::Flag); > + // Copy ST0 into an RFP register with FP_GET_RESULT. If this > will end up > + // in an SSE register, copy it out as F80 and do a truncate, > otherwise use > + // the specified value type. > + MVT::ValueType GetResultTy = RVLocs[0].getValVT(); > + if (isScalarFPTypeInSSEReg(GetResultTy)) > + GetResultTy = MVT::f80; > + SDVTList Tys = DAG.getVTList(GetResultTy, MVT::Other, MVT::Flag); > + > SDOperand GROps[] = { Chain, InFlag }; > SDOperand RetVal = DAG.getNode(X86ISD::FP_GET_RESULT, Tys, > GROps, 2); > Chain = RetVal.getValue(1); > InFlag = RetVal.getValue(2); > - > - // If we are using ScalarSSE, store ST(0) to the stack and > reload it into > - // an XMM register. > - if (isScalarFPTypeInSSEReg(RVLocs[0].getValVT())) { > - SDOperand StoreLoc; > - const Value *SrcVal = 0; > - int SrcValOffset = 0; > - MVT::ValueType RetStoreVT = RVLocs[0].getValVT(); > - > - // Determine where to store the value. If the call result is > directly > - // used by a store, see if we can store directly into the > location. In > - // this case, we'll end up producing a fst + movss[load] + > movss[store] to > - // the same location, and the two movss's will be nuked as > dead. This > - // optimizes common things like "*D = atof(..)" to not need an > - // intermediate stack slot. > - if (SDOperand(TheCall, 0).hasOneUse() && > - SDOperand(TheCall, 1).hasOneUse()) { > - // In addition to direct uses, we also support a FP_ROUND > that uses the > - // value, if it is directly stored somewhere. > - SDNode *User = *TheCall->use_begin(); > - if (User->getOpcode() == ISD::FP_ROUND && User->hasOneUse()) > - User = *User->use_begin(); > - > - // Ok, we have one use of the value and one use of the > chain. See if > - // they are the same node: a store. > - if (StoreSDNode *N = dyn_cast(User)) { > - // Verify that the value being stored is either the call > or a > - // truncation of the call. > - SDNode *StoreVal = N->getValue().Val; > - if (StoreVal == TheCall) > - ; // ok. > - else if (StoreVal->getOpcode() == ISD::FP_ROUND && > - StoreVal->hasOneUse() && > - StoreVal->getOperand(0).Val == TheCall) > - ; // ok. > - else > - N = 0; // not ok. > - > - if (N && N->getChain().Val == TheCall && > - !N->isVolatile() && !N->isTruncatingStore() && > - N->getAddressingMode() == ISD::UNINDEXED) { > - StoreLoc = N->getBasePtr(); > - SrcVal = N->getSrcValue(); > - SrcValOffset = N->getSrcValueOffset(); > - RetStoreVT = N->getValue().getValueType(); > - } > - } > - } > > - // If we weren't able to optimize the result, just create a > temporary > - // stack slot. > - if (StoreLoc.Val == 0) { > - MachineFunction &MF = DAG.getMachineFunction(); > - int SSFI = MF.getFrameInfo()->CreateStackObject(8, 8); > - StoreLoc = DAG.getFrameIndex(SSFI, getPointerTy()); > - } > - > - // FIXME: Currently the FST is flagged to the FP_GET_RESULT. > This > - // shouldn't be necessary except that RFP cannot be live across > - // multiple blocks (which could happen if a select gets > lowered into > - // multiple blocks and scheduled in between them). When > stackifier is > - // fixed, they can be uncoupled. > - SDOperand Ops[] = { > - Chain, RetVal, StoreLoc, DAG.getValueType(RetStoreVT), InFlag > - }; > - Chain = DAG.getNode(X86ISD::FST, MVT::Other, Ops, 5); > - RetVal = DAG.getLoad(RetStoreVT, Chain, > - StoreLoc, SrcVal, SrcValOffset); > - Chain = RetVal.getValue(1); > - > - // If we optimized a truncate, then extend the result back to > its desired > - // type. > - if (RVLocs[0].getValVT() != RetStoreVT) > - RetVal = DAG.getNode(ISD::FP_EXTEND, RVLocs[0].getValVT(), > RetVal); > - } > + // If we want the result in an SSE register, use an FP_TRUNCATE > to get it > + // there. > + if (GetResultTy != RVLocs[0].getValVT()) > + RetVal = DAG.getNode(ISD::FP_ROUND, RVLocs[0].getValVT(), > RetVal, > + // This truncation won't change the value. > + DAG.getIntPtrConstant(1)); > + > ResultVals.push_back(RetVal); > } > > > Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=46307&r1=46306&r2=46307&view=diff > > === > === > === > ===================================================================== > --- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original) > +++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Thu Jan 24 02:07:48 2008 > @@ -2734,6 +2734,14 @@ > def : Pat<(v4i32 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>; > def : Pat<(v2i64 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>; > > +// extload f32 -> f64. This matches load+fextend because we have a > hack in > +// the isel (PreprocessForFPConvert) that can introduce loads after > dag combine. > +// Since these loads aren't folded into the fextend, we have to > match it > +// explicitly here. > +let Predicates = [HasSSE2] in > + def : Pat<(fextend (loadf32 addr:$src)), > + (CVTSS2SDrm addr:$src)>; > + > // Scalar to v8i16 / v16i8. The source may be a GR32, but only the > lower 8 or > // 16-bits matter. > def : Pat<(v8i16 (X86s2vec GR32:$src)), (MOVDI2PDIrr GR32:$src)>, > > Added: llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll?rev=46307&view=auto > > === > === > === > ===================================================================== > --- llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll (added) > +++ llvm/trunk/test/CodeGen/X86/fp-stack-direct-ret.ll Thu Jan 24 > 02:07:48 2008 > @@ -0,0 +1,11 @@ > +; RUN: llvm-as < %s | llc -march=x86 | not grep fstp > +; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not grep movsd > + > +declare double @foo() > + > +define double @bar() { > +entry: > + %tmp5 = tail call double @foo() > + ret double %tmp5 > +} > + > > Added: llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll?rev=46307&view=auto > > === > === > === > ===================================================================== > --- llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll (added) > +++ llvm/trunk/test/CodeGen/X86/fp-stack-ret-conv.ll Thu Jan 24 > 02:07:48 2008 > @@ -0,0 +1,17 @@ > +; RUN: llvm-as < %s | llc -mcpu=yonah | grep cvtss2sd > +; RUN: llvm-as < %s | llc -mcpu=yonah | grep fstps > +; RUN: llvm-as < %s | llc -mcpu=yonah | not grep cvtsd2ss > + > +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32- > i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64" > +target triple = "i686-apple-darwin8" > + > +define void @test(double *%b) { > +entry: > + %tmp13 = tail call double @foo() > + %tmp1314 = fptrunc double %tmp13 to float ; > [#uses=1] > + %tmp3940 = fpext float %tmp1314 to double ; > [#uses=1] > + volatile store double %tmp3940, double* %b > + ret void > +} > + > +declare double @foo() > > Modified: llvm/trunk/test/CodeGen/X86/pr1505b.ll > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pr1505b.ll?rev=46307&r1=46306&r2=46307&view=diff > > === > === > === > ===================================================================== > --- llvm/trunk/test/CodeGen/X86/pr1505b.ll (original) > +++ llvm/trunk/test/CodeGen/X86/pr1505b.ll Thu Jan 24 02:07:48 2008 > @@ -1,4 +1,4 @@ > -; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 3 > +; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstpl | count 4 > ; RUN: llvm-as < %s | llc -mcpu=i486 | grep fstps | count 3 > ; PR1505 > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From evan.cheng at apple.com Thu Jan 24 19:17:48 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 17:17:48 -0800 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> Message-ID: <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> Woot. Thx a bunch. I'll look at more complicated cases. Evan On Jan 24, 2008, at 4:53 PM, Owen Anderson wrote: > Evan, Chris, > > I've confirmed that basic testcases appear to be working with this > change. > > --Owen > > On Jan 24, 2008, at 6:34 PM, Anton Korobeynikov wrote: > >> Author: asl >> Date: Thu Jan 24 18:34:13 2008 >> New Revision: 46337 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev >> Log: >> Provide correct DWARF register numbering for debug information >> emission on x86-32/Darwin. >> This should fix bunch of issues. >> >> Modified: >> llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >> llvm/trunk/lib/Target/X86/X86RegisterInfo.h >> llvm/trunk/lib/Target/X86/X86RegisterInfo.td >> >> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff >> >> === >> === >> === >> ===================================================================== >> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) >> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 >> 18:34:13 2008 >> @@ -64,12 +64,15 @@ >> unsigned Flavour = DWARFFlavour::X86_64; >> if (!Subtarget->is64Bit()) { >> if (Subtarget->isTargetDarwin()) { >> - Flavour = DWARFFlavour::X86_32_Darwin; >> + if (isEH) >> + Flavour = DWARFFlavour::X86_32_DarwinEH; >> + else >> + Flavour = DWARFFlavour::X86_32_Generic; >> } else if (Subtarget->isTargetCygMing()) { >> // Unsupported by now, just quick fallback >> - Flavour = DWARFFlavour::X86_32_ELF; >> + Flavour = DWARFFlavour::X86_32_Generic; >> } else { >> - Flavour = DWARFFlavour::X86_32_ELF; >> + Flavour = DWARFFlavour::X86_32_Generic; >> } >> } >> >> >> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff >> >> === >> === >> === >> ===================================================================== >> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original) >> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 >> 2008 >> @@ -36,7 +36,7 @@ >> /// >> namespace DWARFFlavour { >> enum { >> - X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2 >> + X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2 >> }; >> } >> >> >> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff >> >> === >> === >> === >> ===================================================================== >> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) >> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 >> 18:34:13 2008 >> @@ -25,11 +25,8 @@ >> >> // Dwarf numbering is different for 32-bit and 64-bit, and there are >> // variations by target as well. Currently the first entry is for >> X86-64, >> - // second - for X86-32/Darwin and third for X86-32/Linux >> - >> - // FIXME: Comments in gcc indicate that Darwin uses different >> numbering >> - // for debug info and exception handling info:( The numbering >> here is >> - // for exception handling. >> + // second - for EH on X86-32/Darwin and third is 'generic' one >> (X86-32/Linux >> + // and debug information on X86-32/Darwin) >> >> // 8-bit registers >> // Low registers >> >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From dalej at apple.com Thu Jan 24 19:44:38 2008 From: dalej at apple.com (Dale Johannesen) Date: Fri, 25 Jan 2008 01:44:38 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46340 - in /llvm-gcc-4.2/trunk/gcc: llvm-backend.cpp llvm.h objc/objc-act.c Message-ID: <200801250144.m0P1iclv007518@zion.cs.uiuc.edu> Author: johannes Date: Thu Jan 24 19:44:38 2008 New Revision: 46340 URL: http://llvm.org/viewvc/llvm-project?rev=46340&view=rev Log: Fix more missing ObjC metadata at -O0. This one is a little trickier since the type needs to be redone also. Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp llvm-gcc-4.2/trunk/gcc/llvm.h llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=46340&r1=46339&r2=46340&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Thu Jan 24 19:44:38 2008 @@ -815,6 +815,48 @@ GV->setInitializer(Init); } +/// reset_type_and_initializer_llvm - Change the type and initializer for +/// a global variable. +void reset_type_and_initializer_llvm(tree decl) { + // If there were earlier errors we can get here when DECL_LLVM has not + // been set. Don't crash. + if ((errorcount || sorrycount) && !DECL_LLVM(decl)) + return; + + // Get or create the global variable now. + GlobalVariable *GV = cast(DECL_LLVM(decl)); + + // Temporary to avoid infinite recursion (see comments emit_global_to_llvm) + GV->setInitializer(UndefValue::get(GV->getType()->getElementType())); + + // Convert the initializer over. + Constant *Init = TreeConstantToLLVM::Convert(DECL_INITIAL(decl)); + + // If we had a forward definition that has a type that disagrees with our + // initializer, insert a cast now. This sort of thing occurs when we have a + // global union, and the LLVM type followed a union initializer that is + // different from the union element used for the type. + if (GV->getType()->getElementType() != Init->getType()) { + GV->removeFromParent(); + GlobalVariable *NGV = new GlobalVariable(Init->getType(), GV->isConstant(), + GV->getLinkage(), 0, + GV->getName(), TheModule); + NGV->setVisibility(GV->getVisibility()); + GV->replaceAllUsesWith(ConstantExpr::getBitCast(NGV, GV->getType())); + if (AttributeUsedGlobals.count(GV)) { + AttributeUsedGlobals.remove(GV); + AttributeUsedGlobals.insert(NGV); + } + changeLLVMValue(GV, NGV); + delete GV; + SET_DECL_LLVM(decl, NGV); + GV = NGV; + } + + // Set the initializer. + GV->setInitializer(Init); +} + /// emit_global_to_llvm - Emit the specified VAR_DECL or aggregate CONST_DECL to /// LLVM as a global variable. This function implements the end of /// assemble_variable. Modified: llvm-gcc-4.2/trunk/gcc/llvm.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm.h?rev=46340&r1=46339&r2=46340&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm.h Thu Jan 24 19:44:38 2008 @@ -44,6 +44,11 @@ /* make_decl_llvm - This is also defined in tree.h and used by macros there. */ void make_decl_llvm(union tree_node*); +/* reset_type_and_initializer_llvm - Change the initializer for a global + * variable. + */ +void reset_type_and_initializer_llvm(union tree_node*); + /* reset_initializer_llvm - Change the initializer for a global variable. */ void reset_initializer_llvm(union tree_node*); Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=46340&r1=46339&r2=46340&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original) +++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Thu Jan 24 19:44:38 2008 @@ -12269,6 +12269,11 @@ build_fold_addr_expr (UOBJC_V2_VTABLE_decl)); finish_var_decl (class_decl, initlist); + /* LLVM LOCAL begin */ + /* At -O0, we may have emitted references to the decl earlier. */ + if (!optimize) + reset_type_and_initializer_llvm(class_decl); + /* LLVM LOCAL end */ objc_add_to_class_list_chain (class_decl); if (CLASS_OR_CATEGORY_HAS_LOAD_IMPL (objc_implementation_context) != NULL_TREE) objc_add_to_nonlazy_class_list_chain (class_decl); From dalej at apple.com Thu Jan 24 19:47:18 2008 From: dalej at apple.com (Dale Johannesen) Date: Thu, 24 Jan 2008 17:47:18 -0800 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> Message-ID: <3C3F9B59-C9B6-49E6-A542-E36D89894880@apple.com> On Jan 24, 2008, at 5:17 PM, Evan Cheng wrote: > Woot. Thx a bunch. I'll look at more complicated cases. > > Evan My bad. Thanks Anton and sorry everybody. > On Jan 24, 2008, at 4:53 PM, Owen Anderson wrote: > >> Evan, Chris, >> >> I've confirmed that basic testcases appear to be working with this >> change. >> >> --Owen >> >> On Jan 24, 2008, at 6:34 PM, Anton Korobeynikov wrote: >> >>> Author: asl >>> Date: Thu Jan 24 18:34:13 2008 >>> New Revision: 46337 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev >>> Log: >>> Provide correct DWARF register numbering for debug information >>> emission on x86-32/Darwin. >>> This should fix bunch of issues. >>> >>> Modified: >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.h >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.td >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 >>> 18:34:13 2008 >>> @@ -64,12 +64,15 @@ >>> unsigned Flavour = DWARFFlavour::X86_64; >>> if (!Subtarget->is64Bit()) { >>> if (Subtarget->isTargetDarwin()) { >>> - Flavour = DWARFFlavour::X86_32_Darwin; >>> + if (isEH) >>> + Flavour = DWARFFlavour::X86_32_DarwinEH; >>> + else >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } else if (Subtarget->isTargetCygMing()) { >>> // Unsupported by now, just quick fallback >>> - Flavour = DWARFFlavour::X86_32_ELF; >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } else { >>> - Flavour = DWARFFlavour::X86_32_ELF; >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } >>> } >>> >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 >>> 2008 >>> @@ -36,7 +36,7 @@ >>> /// >>> namespace DWARFFlavour { >>> enum { >>> - X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2 >>> + X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2 >>> }; >>> } >>> >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 >>> 18:34:13 2008 >>> @@ -25,11 +25,8 @@ >>> >>> // Dwarf numbering is different for 32-bit and 64-bit, and there are >>> // variations by target as well. Currently the first entry is for >>> X86-64, >>> - // second - for X86-32/Darwin and third for X86-32/Linux >>> - >>> - // FIXME: Comments in gcc indicate that Darwin uses different >>> numbering >>> - // for debug info and exception handling info:( The numbering >>> here is >>> - // for exception handling. >>> + // second - for EH on X86-32/Darwin and third is 'generic' one >>> (X86-32/Linux >>> + // and debug information on X86-32/Darwin) >>> >>> // 8-bit registers >>> // Low registers >>> >>> >>> _______________________________________________ >>> llvm-commits mailing list >>> llvm-commits at cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From evan.cheng at apple.com Thu Jan 24 20:13:26 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 18:13:26 -0800 Subject: [llvm-commits] [llvm] r46218 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp In-Reply-To: <200801212203.m0LM30oL019289@zion.cs.uiuc.edu> References: <200801212203.m0LM30oL019289@zion.cs.uiuc.edu> Message-ID: <76A5DE77-4A38-4F62-87C5-5A084149D597@apple.com> Hi Owen, I am not sure I completely understand the comment. Are you saying when a VReg is found to be live out of its definition block. This decides whether to place the copy in the definition block or in the use block? Evan On Jan 21, 2008, at 2:03 PM, Owen Anderson wrote: > Author: resistor > Date: Mon Jan 21 16:03:00 2008 > New Revision: 46218 > > URL: http://llvm.org/viewvc/llvm-project?rev=46218&view=rev > Log: > Clarify a deviation from the original algorithm. > > Modified: > llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp > > Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=46218&r1=46217&r2=46218&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) > +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Mon Jan 21 > 16:03:00 2008 > @@ -552,7 +552,10 @@ > DomForestNode* child = *CI; > > // If the current node is live-out of the defining block of > one of its > - // children, insert a copy for it > + // children, insert a copy for it. NOTE: The paper actually > calls for > + // a more elaborate heuristic for determining whether to > insert copies > + // for the child or the parent. In the interest of > simplicity, we're > + // just always choosing the parent. > if (isLiveOut(DFNode->getReg(), > MRI.getVRegDef(child->getReg())->getParent(), MRI, LV)) { > // Insert copies for parent > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From resistor at mac.com Thu Jan 24 20:20:20 2008 From: resistor at mac.com (Owen Anderson) Date: Thu, 24 Jan 2008 20:20:20 -0600 Subject: [llvm-commits] [llvm] r46218 - /llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp In-Reply-To: <76A5DE77-4A38-4F62-87C5-5A084149D597@apple.com> References: <200801212203.m0LM30oL019289@zion.cs.uiuc.edu> <76A5DE77-4A38-4F62-87C5-5A084149D597@apple.com> Message-ID: <2EC75BB3-332A-438C-BD12-01A88A96F011@mac.com> The basic check is: if one parameter to a PHI is defined in a block that dominates the block that another parameter is defined in, and it is live-out of that dominated block, then the two must be simultaneously live, so they can't be coallesced. The difference between our implementation and the paper's description is in the choice of which one to insert copies for. --Owen On Jan 24, 2008, at 8:13 PM, Evan Cheng wrote: > Hi Owen, > > I am not sure I completely understand the comment. Are you saying when > a VReg is found to be live out of its definition block. This decides > whether to place the copy in the definition block or in the use block? > > Evan > > On Jan 21, 2008, at 2:03 PM, Owen Anderson wrote: > >> Author: resistor >> Date: Mon Jan 21 16:03:00 2008 >> New Revision: 46218 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46218&view=rev >> Log: >> Clarify a deviation from the original algorithm. >> >> Modified: >> llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp >> >> Modified: llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp?rev=46218&r1=46217&r2=46218&view=diff >> >> = >> = >> = >> = >> = >> = >> = >> = >> = >> ===================================================================== >> --- llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp (original) >> +++ llvm/trunk/lib/CodeGen/StrongPHIElimination.cpp Mon Jan 21 >> 16:03:00 2008 >> @@ -552,7 +552,10 @@ >> DomForestNode* child = *CI; >> >> // If the current node is live-out of the defining block of >> one of its >> - // children, insert a copy for it >> + // children, insert a copy for it. NOTE: The paper actually >> calls for >> + // a more elaborate heuristic for determining whether to >> insert copies >> + // for the child or the parent. In the interest of >> simplicity, we're >> + // just always choosing the parent. >> if (isLiveOut(DFNode->getReg(), >> MRI.getVRegDef(child->getReg())->getParent(), MRI, LV)) { >> // Insert copies for parent >> >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From evan.cheng at apple.com Thu Jan 24 21:06:24 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 19:06:24 -0800 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> Message-ID: This allows gdb to examine local scalar variables, but not aggregate ones. There are also issues with parameters, even scalar ones. Evan On Jan 24, 2008, at 5:17 PM, Evan Cheng wrote: > Woot. Thx a bunch. I'll look at more complicated cases. > > Evan > > On Jan 24, 2008, at 4:53 PM, Owen Anderson wrote: > >> Evan, Chris, >> >> I've confirmed that basic testcases appear to be working with this >> change. >> >> --Owen >> >> On Jan 24, 2008, at 6:34 PM, Anton Korobeynikov wrote: >> >>> Author: asl >>> Date: Thu Jan 24 18:34:13 2008 >>> New Revision: 46337 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev >>> Log: >>> Provide correct DWARF register numbering for debug information >>> emission on x86-32/Darwin. >>> This should fix bunch of issues. >>> >>> Modified: >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.h >>> llvm/trunk/lib/Target/X86/X86RegisterInfo.td >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 >>> 18:34:13 2008 >>> @@ -64,12 +64,15 @@ >>> unsigned Flavour = DWARFFlavour::X86_64; >>> if (!Subtarget->is64Bit()) { >>> if (Subtarget->isTargetDarwin()) { >>> - Flavour = DWARFFlavour::X86_32_Darwin; >>> + if (isEH) >>> + Flavour = DWARFFlavour::X86_32_DarwinEH; >>> + else >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } else if (Subtarget->isTargetCygMing()) { >>> // Unsupported by now, just quick fallback >>> - Flavour = DWARFFlavour::X86_32_ELF; >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } else { >>> - Flavour = DWARFFlavour::X86_32_ELF; >>> + Flavour = DWARFFlavour::X86_32_Generic; >>> } >>> } >>> >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 >>> 2008 >>> @@ -36,7 +36,7 @@ >>> /// >>> namespace DWARFFlavour { >>> enum { >>> - X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2 >>> + X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2 >>> }; >>> } >>> >>> >>> Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td >>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff >>> >>> === >>> === >>> === >>> = >>> ==================================================================== >>> --- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original) >>> +++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 >>> 18:34:13 2008 >>> @@ -25,11 +25,8 @@ >>> >>> // Dwarf numbering is different for 32-bit and 64-bit, and there are >>> // variations by target as well. Currently the first entry is for >>> X86-64, >>> - // second - for X86-32/Darwin and third for X86-32/Linux >>> - >>> - // FIXME: Comments in gcc indicate that Darwin uses different >>> numbering >>> - // for debug info and exception handling info:( The numbering >>> here is >>> - // for exception handling. >>> + // second - for EH on X86-32/Darwin and third is 'generic' one >>> (X86-32/Linux >>> + // and debug information on X86-32/Darwin) >>> >>> // 8-bit registers >>> // Low registers >>> >>> >>> _______________________________________________ >>> llvm-commits mailing list >>> llvm-commits at cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From isanbard at gmail.com Thu Jan 24 21:24:25 2008 From: isanbard at gmail.com (Bill Wendling) Date: Fri, 25 Jan 2008 03:24:25 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46341 - /llvm-gcc-4.2/trunk/gcc/regclass.c Message-ID: <200801250324.m0P3OQhY010938@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 21:24:25 2008 New Revision: 46341 URL: http://llvm.org/viewvc/llvm-project?rev=46341&view=rev Log: Don't define these if they aren't used by LLVM Modified: llvm-gcc-4.2/trunk/gcc/regclass.c Modified: llvm-gcc-4.2/trunk/gcc/regclass.c URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/regclass.c?rev=46341&r1=46340&r2=46341&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/regclass.c (original) +++ llvm-gcc-4.2/trunk/gcc/regclass.c Thu Jan 24 21:24:25 2008 @@ -167,6 +167,8 @@ unsigned int reg_class_size[N_REG_CLASSES]; +/* LLVM LOCAL */ +#ifndef ENABLE_LLVM /* For each reg class, table listing all the containing classes. */ static enum reg_class reg_class_superclasses[N_REG_CLASSES][N_REG_CLASSES]; @@ -174,6 +176,8 @@ /* For each reg class, table listing all the classes contained in it. */ static enum reg_class reg_class_subclasses[N_REG_CLASSES][N_REG_CLASSES]; +/* LLVM LOCAL */ +#endif /* For each pair of reg classes, a largest reg class contained in their union. */ From isanbard at gmail.com Thu Jan 24 21:25:57 2008 From: isanbard at gmail.com (Bill Wendling) Date: Fri, 25 Jan 2008 03:25:57 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46342 - /llvm-gcc-4.2/tags/Apple/llvmgcc42-2012/ Message-ID: <200801250325.m0P3PvYt010981@zion.cs.uiuc.edu> Author: void Date: Thu Jan 24 21:25:57 2008 New Revision: 46342 URL: http://llvm.org/viewvc/llvm-project?rev=46342&view=rev Log: Creating llvmgcc42-2012 branch Added: llvm-gcc-4.2/tags/Apple/llvmgcc42-2012/ - copied from r46341, llvm-gcc-4.2/trunk/ From clattner at apple.com Thu Jan 24 22:03:35 2008 From: clattner at apple.com (Chris Lattner) Date: Thu, 24 Jan 2008 20:03:35 -0800 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> Message-ID: <176B3CE5-E857-41FB-8E51-5A87D1F4F727@apple.com> On Jan 24, 2008, at 4:53 PM, Owen Anderson wrote: > Evan, Chris, > I've confirmed that basic testcases appear to be working with this > change. Awesome, thanks Anton and Owen! -Chris From clattner at apple.com Thu Jan 24 22:12:39 2008 From: clattner at apple.com (Chris Lattner) Date: Thu, 24 Jan 2008 20:12:39 -0800 Subject: [llvm-commits] [llvm] r46307 - in /llvm/trunk: lib/Target/X86/X86ISelDAGToDAG.cpp lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/fp-stack-direct-ret.ll test/CodeGen/X86/fp-stack-ret-conv.ll test/CodeGen/X86/pr1505b.ll In-Reply-To: <93DD297F-5916-4EE9-A3D0-30550D807CE1@apple.com> References: <200801240807.m0O87oY3012420@zion.cs.uiuc.edu> <93DD297F-5916-4EE9-A3D0-30550D807CE1@apple.com> Message-ID: <0BC7D730-BEE4-4C92-A059-2ADE9FCD1BA0@apple.com> On Jan 24, 2008, at 4:54 PM, Evan Cheng wrote: > Is there a bugzilla on the scheduling deficiency? Good idea! http://llvm.org/bugs/show_bug.cgi?id=1944 -Chris From asl at math.spbu.ru Thu Jan 24 23:41:34 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Fri, 25 Jan 2008 08:41:34 +0300 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> Message-ID: <1201239694.10814.16.camel@asl.dorms.spbu.ru> Evan, > This allows gdb to examine local scalar variables, but not aggregate > ones. There are also issues with parameters, even scalar ones. Ok. Any other testcases? Owen, ready for another session? :) -- With best regards, Anton Korobeynikov. Faculty of Mathematics & Mechanics, Saint Petersburg State University. From sabre at nondot.org Thu Jan 24 23:46:26 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 05:46:26 -0000 Subject: [llvm-commits] [llvm] r46344 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/copysign-zero.ll Message-ID: <200801250546.m0P5kQXU015321@zion.cs.uiuc.edu> Author: lattner Date: Thu Jan 24 23:46:26 2008 New Revision: 46344 URL: http://llvm.org/viewvc/llvm-project?rev=46344&view=rev Log: Add target-specific dag combines for FAND(x,0) and FOR(x,0). This allows us to compile: double test(double X) { return copysign(0.0, X); } into: _test: andpd LCPI1_0(%rip), %xmm0 ret instead of: _test: pxor %xmm1, %xmm1 andpd LCPI1_0(%rip), %xmm1 movapd %xmm0, %xmm2 andpd LCPI1_1(%rip), %xmm2 movapd %xmm1, %xmm0 orpd %xmm2, %xmm0 ret Added: llvm/trunk/test/CodeGen/X86/copysign-zero.ll Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46344&r1=46343&r2=46344&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Thu Jan 24 23:46:26 2008 @@ -5627,16 +5627,42 @@ return SDOperand(); } +/// PerformFORCombine - Do target-specific dag combines on X86ISD::FOR nodes. +static SDOperand PerformFORCombine(SDNode *N, SelectionDAG &DAG) { + // FOR(0.0, x) -> x + // FOR(x, 0.0) -> x + if (ConstantFPSDNode *C = dyn_cast(N->getOperand(0))) + if (C->getValueAPF().isPosZero()) + return N->getOperand(1); + if (ConstantFPSDNode *C = dyn_cast(N->getOperand(1))) + if (C->getValueAPF().isPosZero()) + return N->getOperand(0); + return SDOperand(); +} + +/// PerformFANDCombine - Do target-specific dag combines on X86ISD::FAND nodes. +static SDOperand PerformFANDCombine(SDNode *N, SelectionDAG &DAG) { + // FAND(0.0, x) -> 0.0 + // FAND(x, 0.0) -> 0.0 + if (ConstantFPSDNode *C = dyn_cast(N->getOperand(0))) + if (C->getValueAPF().isPosZero()) + return N->getOperand(0); + if (ConstantFPSDNode *C = dyn_cast(N->getOperand(1))) + if (C->getValueAPF().isPosZero()) + return N->getOperand(1); + return SDOperand(); +} + SDOperand X86TargetLowering::PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const { SelectionDAG &DAG = DCI.DAG; switch (N->getOpcode()) { default: break; - case ISD::VECTOR_SHUFFLE: - return PerformShuffleCombine(N, DAG, Subtarget); - case ISD::SELECT: - return PerformSELECTCombine(N, DAG, Subtarget); + case ISD::VECTOR_SHUFFLE: return PerformShuffleCombine(N, DAG, Subtarget); + case ISD::SELECT: return PerformSELECTCombine(N, DAG, Subtarget); + case X86ISD::FOR: return PerformFORCombine(N, DAG); + case X86ISD::FAND: return PerformFANDCombine(N, DAG); } return SDOperand(); Added: llvm/trunk/test/CodeGen/X86/copysign-zero.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/copysign-zero.ll?rev=46344&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/copysign-zero.ll (added) +++ llvm/trunk/test/CodeGen/X86/copysign-zero.ll Thu Jan 24 23:46:26 2008 @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | llc | not grep orpd +; RUN: llvm-as < %s | llc | grep andpd | count 1 + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-apple-darwin8" + +define double @test(double %X) nounwind { +entry: + %tmp2 = tail call double @copysign( double 0.000000e+00, double %X ) nounwind readnone ; [#uses=1] + ret double %tmp2 +} + +declare double @copysign(double, double) nounwind readnone + From sabre at nondot.org Fri Jan 25 00:14:17 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 06:14:17 -0000 Subject: [llvm-commits] [llvm] r46345 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200801250614.m0P6EHCD016213@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 00:14:17 2008 New Revision: 46345 URL: http://llvm.org/viewvc/llvm-project?rev=46345&view=rev Log: optimize fxor like for Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46345&r1=46344&r2=46345&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Fri Jan 25 00:14:17 2008 @@ -5627,10 +5627,12 @@ return SDOperand(); } -/// PerformFORCombine - Do target-specific dag combines on X86ISD::FOR nodes. +/// PerformFORCombine - Do target-specific dag combines on X86ISD::FOR and +/// X86ISD::FXOR nodes. static SDOperand PerformFORCombine(SDNode *N, SelectionDAG &DAG) { - // FOR(0.0, x) -> x - // FOR(x, 0.0) -> x + assert(N->getOpcode() == X86ISD::FOR || N->getOpcode() == X86ISD::FXOR); + // F[X]OR(0.0, x) -> x + // F[X]OR(x, 0.0) -> x if (ConstantFPSDNode *C = dyn_cast(N->getOperand(0))) if (C->getValueAPF().isPosZero()) return N->getOperand(1); @@ -5661,6 +5663,7 @@ default: break; case ISD::VECTOR_SHUFFLE: return PerformShuffleCombine(N, DAG, Subtarget); case ISD::SELECT: return PerformSELECTCombine(N, DAG, Subtarget); + case X86ISD::FXOR: case X86ISD::FOR: return PerformFORCombine(N, DAG); case X86ISD::FAND: return PerformFANDCombine(N, DAG); } From sabre at nondot.org Fri Jan 25 00:20:20 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 06:20:20 -0000 Subject: [llvm-commits] [llvm] r46346 - /llvm/trunk/include/llvm/CodeGen/SelectionDAG.h Message-ID: <200801250620.m0P6KK1h016393@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 00:20:20 2008 New Revision: 46346 URL: http://llvm.org/viewvc/llvm-project?rev=46346&view=rev Log: add a fixme. Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAG.h Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAG.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAG.h?rev=46346&r1=46345&r2=46346&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/SelectionDAG.h (original) +++ llvm/trunk/include/llvm/CodeGen/SelectionDAG.h Fri Jan 25 00:20:20 2008 @@ -499,6 +499,8 @@ /// isCommutativeBinOp - Returns true if the opcode is a commutative binary /// operation. static bool isCommutativeBinOp(unsigned Opcode) { + // FIXME: This should get its info from the td file, so that we can include + // target info. switch (Opcode) { case ISD::ADD: case ISD::MUL: From sabre at nondot.org Fri Jan 25 00:40:45 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 06:40:45 -0000 Subject: [llvm-commits] [llvm] r46347 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp Message-ID: <200801250640.m0P6ejMp017019@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 00:40:45 2008 New Revision: 46347 URL: http://llvm.org/viewvc/llvm-project?rev=46347&view=rev Log: include alignment and volatility information in -view-*-dags output Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp?rev=46347&r1=46346&r2=46347&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp Fri Jan 25 00:40:45 2008 @@ -164,13 +164,20 @@ break; } if (doExt) - Op = Op + MVT::getValueTypeString(LD->getLoadedVT()) + ">"; - + Op += MVT::getValueTypeString(LD->getLoadedVT()) + ">"; + if (LD->isVolatile()) + Op += ""; Op += LD->getIndexedModeName(LD->getAddressingMode()); + if (LD->getAlignment() > 1) + Op += " A=" + utostr(LD->getAlignment()); } else if (const StoreSDNode *ST = dyn_cast(Node)) { if (ST->isTruncatingStore()) - Op = Op + "getStoredVT()) + ">"; + Op += "getStoredVT()) + ">"; + if (ST->isVolatile()) + Op += ""; Op += ST->getIndexedModeName(ST->getAddressingMode()); + if (ST->getAlignment() > 1) + Op += " A=" + utostr(ST->getAlignment()); } #if 0 From sabre at nondot.org Fri Jan 25 01:19:06 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 07:19:06 -0000 Subject: [llvm-commits] [llvm] r46348 - in /llvm/trunk: include/llvm/CodeGen/MachineFrameInfo.h lib/CodeGen/MachineFunction.cpp Message-ID: <200801250719.m0P7J6n1018249@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 01:19:06 2008 New Revision: 46348 URL: http://llvm.org/viewvc/llvm-project?rev=46348&view=rev Log: move MachineFrameInfo::CreateFixedObject out of line, give MachineFrameInfo a reference to TargetFrameInfo. Rearrange order of fields in StackObject to save a word. Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h llvm/trunk/lib/CodeGen/MachineFunction.cpp Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h?rev=46348&r1=46347&r2=46348&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h (original) +++ llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Fri Jan 25 01:19:06 2008 @@ -19,6 +19,7 @@ class Type; class MachineModuleInfo; class MachineFunction; +class TargetFrameInfo; /// The CalleeSavedInfo class tracks the information need to locate where a /// callee saved register in the current frame. @@ -82,17 +83,17 @@ // Alignment - The required alignment of this stack slot. unsigned Alignment; - // SPOffset - The offset of this object from the stack pointer on entry to - // the function. This field has no meaning for a variable sized element. - int64_t SPOffset; - // isImmutable - If true, the value of the stack object is set before // entering the function and is not modified inside the function. By // default, fixed objects are immutable unless marked otherwise. bool isImmutable; + + // SPOffset - The offset of this object from the stack pointer on entry to + // the function. This field has no meaning for a variable sized element. + int64_t SPOffset; StackObject(uint64_t Sz, unsigned Al, int64_t SP, bool IM = false) - : Size(Sz), Alignment(Al), SPOffset(SP), isImmutable(IM) {} + : Size(Sz), Alignment(Al), isImmutable(IM), SPOffset(SP) {} }; /// Objects - The list of stack objects allocated... @@ -159,8 +160,11 @@ /// of frame layouts. MachineModuleInfo *MMI; + /// TargetFrameInfo - Target information about frame layout. + /// + const TargetFrameInfo &TFI; public: - MachineFrameInfo() { + MachineFrameInfo(const TargetFrameInfo &tfi) : TFI(tfi) { StackSize = NumFixedObjects = OffsetAdjustment = MaxAlignment = 0; HasVarSizedObjects = false; HasCalls = false; @@ -264,12 +268,9 @@ /// index with a negative value. /// int CreateFixedObject(uint64_t Size, int64_t SPOffset, - bool Immutable = true) { - assert(Size != 0 && "Cannot allocate zero size fixed stack objects!"); - Objects.insert(Objects.begin(), StackObject(Size, 1, SPOffset, Immutable)); - return -++NumFixedObjects; - } - + bool Immutable = true); + + /// isFixedObjectIndex - Returns true if the specified index corresponds to a /// fixed stack object. bool isFixedObjectIndex(int ObjectIdx) const { Modified: llvm/trunk/lib/CodeGen/MachineFunction.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineFunction.cpp?rev=46348&r1=46347&r2=46348&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/MachineFunction.cpp (original) +++ llvm/trunk/lib/CodeGen/MachineFunction.cpp Fri Jan 25 01:19:06 2008 @@ -126,7 +126,7 @@ : Annotation(MF_AID), Fn(F), Target(TM) { RegInfo = new MachineRegisterInfo(*TM.getRegisterInfo()); MFInfo = 0; - FrameInfo = new MachineFrameInfo(); + FrameInfo = new MachineFrameInfo(*TM.getFrameInfo()); ConstantPool = new MachineConstantPool(TM.getTargetData()); // Set up jump table. @@ -331,6 +331,19 @@ // MachineFrameInfo implementation //===----------------------------------------------------------------------===// +/// CreateFixedObject - Create a new object at a fixed location on the stack. +/// All fixed objects should be created before other objects are created for +/// efficiency. By default, fixed objects are immutable. This returns an +/// index with a negative value. +/// +int MachineFrameInfo::CreateFixedObject(uint64_t Size, int64_t SPOffset, + bool Immutable) { + assert(Size != 0 && "Cannot allocate zero size fixed stack objects!"); + Objects.insert(Objects.begin(), StackObject(Size, 1, SPOffset, Immutable)); + return -++NumFixedObjects; +} + + void MachineFrameInfo::print(const MachineFunction &MF, std::ostream &OS) const{ int ValOffset = MF.getTarget().getFrameInfo()->getOffsetOfLocalArea(); From sabre at nondot.org Fri Jan 25 01:20:16 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 07:20:16 -0000 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 01:20:16 2008 New Revision: 46349 URL: http://llvm.org/viewvc/llvm-project?rev=46349&view=rev Log: Add skeletal code to increase the alignment of loads and stores when we can infer it. This will eventually help stuff, though it doesn't do much right now because all fixed FI's have an alignment of 1. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46349&r1=46348&r2=46349&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Jan 25 01:20:16 2008 @@ -14,6 +14,8 @@ #define DEBUG_TYPE "dagcombine" #include "llvm/CodeGen/SelectionDAG.h" +#include "llvm/CodeGen/MachineFunction.h" +#include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetLowering.h" @@ -4074,11 +4076,37 @@ return false; } +/// InferAlignment - If we can infer some alignment information from this +/// pointer, return it. +static unsigned InferAlignment(SDOperand Ptr, SelectionDAG &DAG) { + // If this is a direct reference to a stack slot, use information about the + // stack slot's alignment. + if (FrameIndexSDNode *FI = dyn_cast(Ptr)) { + return DAG.getMachineFunction().getFrameInfo()-> + getObjectAlignment(FI->getIndex()); + } + + // FIXME: Handle FI+CST. + + return 0; +} SDOperand DAGCombiner::visitLOAD(SDNode *N) { LoadSDNode *LD = cast(N); SDOperand Chain = LD->getChain(); SDOperand Ptr = LD->getBasePtr(); + + // Try to infer better alignment information than the load already has. + if (LD->isUnindexed()) { + if (unsigned Align = InferAlignment(Ptr, DAG)) { + if (Align > LD->getAlignment()) + return DAG.getExtLoad(LD->getExtensionType(), LD->getValueType(0), + Chain, Ptr, LD->getSrcValue(), + LD->getSrcValueOffset(), LD->getLoadedVT(), + LD->isVolatile(), Align); + } + } + // If load is not volatile and there are no uses of the loaded value (and // the updated indexed value in case of indexed loads), change uses of the @@ -4189,6 +4217,16 @@ SDOperand Value = ST->getValue(); SDOperand Ptr = ST->getBasePtr(); + // Try to infer better alignment information than the store already has. + if (ST->isUnindexed()) { + if (unsigned Align = InferAlignment(Ptr, DAG)) { + if (Align > ST->getAlignment()) + return DAG.getTruncStore(Chain, Value, Ptr, ST->getSrcValue(), + ST->getSrcValueOffset(), ST->getStoredVT(), + ST->isVolatile(), Align); + } + } + // If this is a store of a bit convert, store the input value if the // resultant store does not need a higher alignment than the original. if (Value.getOpcode() == ISD::BIT_CONVERT && !ST->isTruncatingStore() && From sabre at nondot.org Fri Jan 25 01:29:34 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 07:29:34 -0000 Subject: [llvm-commits] [llvm] r46350 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Message-ID: <200801250729.m0P7TZBN018609@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 01:29:34 2008 New Revision: 46350 URL: http://llvm.org/viewvc/llvm-project?rev=46350&view=rev Log: move this field back. Moving the field causes miscompilations (!) of voronoi and others. Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h?rev=46350&r1=46349&r2=46350&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h (original) +++ llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Fri Jan 25 01:29:34 2008 @@ -83,17 +83,17 @@ // Alignment - The required alignment of this stack slot. unsigned Alignment; + // SPOffset - The offset of this object from the stack pointer on entry to + // the function. This field has no meaning for a variable sized element. + int64_t SPOffset; + // isImmutable - If true, the value of the stack object is set before // entering the function and is not modified inside the function. By // default, fixed objects are immutable unless marked otherwise. bool isImmutable; - // SPOffset - The offset of this object from the stack pointer on entry to - // the function. This field has no meaning for a variable sized element. - int64_t SPOffset; - StackObject(uint64_t Sz, unsigned Al, int64_t SP, bool IM = false) - : Size(Sz), Alignment(Al), isImmutable(IM), SPOffset(SP) {} + : Size(Sz), Alignment(Al), SPOffset(SP), isImmutable(IM) {} }; /// Objects - The list of stack objects allocated... From evan.cheng at apple.com Fri Jan 25 01:53:13 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Thu, 24 Jan 2008 23:53:13 -0800 Subject: [llvm-commits] [llvm] r46350 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h In-Reply-To: <200801250729.m0P7TZBN018609@zion.cs.uiuc.edu> References: <200801250729.m0P7TZBN018609@zion.cs.uiuc.edu> Message-ID: <74FBED1E-6037-49C0-A69A-A954428AA282@apple.com> Ugh, really?? Evan On Jan 24, 2008, at 11:29 PM, Chris Lattner wrote: > Author: lattner > Date: Fri Jan 25 01:29:34 2008 > New Revision: 46350 > > URL: http://llvm.org/viewvc/llvm-project?rev=46350&view=rev > Log: > move this field back. Moving the field causes miscompilations (!) > of voronoi and others. > > Modified: > llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h > > Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h?rev=46350&r1=46349&r2=46350&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h (original) > +++ llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Fri Jan 25 > 01:29:34 2008 > @@ -83,17 +83,17 @@ > // Alignment - The required alignment of this stack slot. > unsigned Alignment; > > + // SPOffset - The offset of this object from the stack pointer > on entry to > + // the function. This field has no meaning for a variable > sized element. > + int64_t SPOffset; > + > // isImmutable - If true, the value of the stack object is set > before > // entering the function and is not modified inside the > function. By > // default, fixed objects are immutable unless marked otherwise. > bool isImmutable; > > - // SPOffset - The offset of this object from the stack pointer > on entry to > - // the function. This field has no meaning for a variable > sized element. > - int64_t SPOffset; > - > StackObject(uint64_t Sz, unsigned Al, int64_t SP, bool IM = false) > - : Size(Sz), Alignment(Al), isImmutable(IM), SPOffset(SP) {} > + : Size(Sz), Alignment(Al), SPOffset(SP), isImmutable(IM) {} > }; > > /// Objects - The list of stack objects allocated... > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From baldrick at free.fr Fri Jan 25 02:53:26 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 09:53:26 +0100 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> Message-ID: <200801250953.26574.baldrick@free.fr> > Add skeletal code to increase the alignment of loads and stores when > we can infer it. This will eventually help stuff, though it doesn't > do much right now because all fixed FI's have an alignment of 1. By the way, I've always assumed that alignment 0 is not used by the code generators, i.e. that IR alignment 0 gets turned into the preferred alignment for the target during lowering. Is that right? (If not, all the alignment calculations for ptr+offset done in codegen are wrong). Ciao, Duncan. From baldrick at free.fr Fri Jan 25 02:55:50 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 09:55:50 +0100 Subject: [llvm-commits] [llvm] r46333 - /llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c In-Reply-To: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> References: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> Message-ID: <200801250955.51141.baldrick@free.fr> Hi Devang, what is this test testing? A compiler crash? It doesn't crash here without your fix. > +// RUN: %llvmgcc %s -S -o - > + > +// This struct is not 4 byte aligned becaues bit-field > +// type does not influence struct alignment. > +struct U { char a; short b; int c:25; char d; } u; Ciao, Duncan. From baldrick at free.fr Fri Jan 25 03:01:30 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 10:01:30 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46334 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801242356.m0ONucui003854@zion.cs.uiuc.edu> References: <200801242356.m0ONucui003854@zion.cs.uiuc.edu> Message-ID: <200801251001.31054.baldrick@free.fr> Hi Devang, > Fix 2008-01-24-StructAlignAndBitFields.c test case. > Bit-field type does not influence struct alignment. I don't see the point of trying to get the LLVM type to have the same alignment as the gcc type. I think all the code that tries to obtain equal alignment should just be dropped. Who cares if the LLVM type has a different alignment to the gcc type? Surely all that matters is that when we allocate a variable (alloca or global), if the gcc declaration is more aligned than the LLVM type, then we should force the alloca/global to have the gcc alignment. Ciao, Duncan. From baldrick at free.fr Fri Jan 25 04:07:03 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 11:07:03 +0100 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801250953.26574.baldrick@free.fr> References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> <200801250953.26574.baldrick@free.fr> Message-ID: <200801251107.05069.baldrick@free.fr> PS: Does an alignment of 0 mean the ABI alignment or the preferred alignment? I'm guessing that it means ABI for globals and preferred for allocas. From baldrick at free.fr Fri Jan 25 04:20:58 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 10:20:58 -0000 Subject: [llvm-commits] [llvm] r46352 - /llvm/trunk/include/llvm/Target/TargetLowering.h Message-ID: <200801251021.m0PAL03v032297@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 04:20:53 2008 New Revision: 46352 URL: http://llvm.org/viewvc/llvm-project?rev=46352&view=rev Log: Add more assertions to catch accesses outside of arrays. Also, as a convenience, don't barf, just return false, if someone calls isTruncStoreLegal or isLoadXLegal with an extended type for the in memory type. Modified: llvm/trunk/include/llvm/Target/TargetLowering.h Modified: llvm/trunk/include/llvm/Target/TargetLowering.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLowering.h?rev=46352&r1=46351&r2=46352&view=diff ============================================================================== --- llvm/trunk/include/llvm/Target/TargetLowering.h (original) +++ llvm/trunk/include/llvm/Target/TargetLowering.h Fri Jan 25 04:20:53 2008 @@ -123,7 +123,7 @@ /// getRegClassFor - Return the register class that should be used for the /// specified value type. This may only be called on legal types. TargetRegisterClass *getRegClassFor(MVT::ValueType VT) const { - assert(!MVT::isExtendedVT(VT)); + assert(VT < array_lengthof(RegClassForVT)); TargetRegisterClass *RC = RegClassForVT[VT]; assert(RC && "This value type is not natively supported!"); return RC; @@ -133,6 +133,7 @@ /// specified value type. This means that it has a register that directly /// holds it without promotions or expansions. bool isTypeLegal(MVT::ValueType VT) const { + assert(MVT::isExtendedVT(VT) || VT < array_lengthof(RegClassForVT)); return !MVT::isExtendedVT(VT) && RegClassForVT[VT] != 0; } @@ -158,11 +159,11 @@ return VT == MVT::RoundIntegerType(VT) ? Expand : Promote; assert(0 && "Unsupported extended type!"); } + assert(VT<4*array_lengthof(ValueTypeActions)*sizeof(ValueTypeActions[0])); return (LegalizeAction)((ValueTypeActions[VT>>4] >> ((2*VT) & 31)) & 3); } void setTypeAction(MVT::ValueType VT, LegalizeAction Action) { - assert(!MVT::isExtendedVT(VT)); - assert(unsigned(VT >> 4) < array_lengthof(ValueTypeActions)); + assert(VT<4*array_lengthof(ValueTypeActions)*sizeof(ValueTypeActions[0])); ValueTypeActions[VT>>4] |= Action << ((VT*2) & 31); } }; @@ -187,6 +188,7 @@ /// returns the integer type to transform to. MVT::ValueType getTypeToTransformTo(MVT::ValueType VT) const { if (!MVT::isExtendedVT(VT)) { + assert(VT < array_lengthof(TransformToType)); MVT::ValueType NVT = TransformToType[VT]; assert(getTypeAction(NVT) != Promote && "Promote may not follow Expand or Promote"); @@ -275,6 +277,8 @@ /// for it. LegalizeAction getOperationAction(unsigned Op, MVT::ValueType VT) const { if (MVT::isExtendedVT(VT)) return Expand; + assert(Op < array_lengthof(OpActions) && + VT < sizeof(OpActions[0])*4 && "Table isn't big enough!"); return (LegalizeAction)((OpActions[Op] >> (2*VT)) & 3); } @@ -290,15 +294,17 @@ /// expanded to some other code sequence, or the target has a custom expander /// for it. LegalizeAction getLoadXAction(unsigned LType, MVT::ValueType VT) const { - if (MVT::isExtendedVT(VT)) return getTypeAction(VT); + assert(LType < array_lengthof(LoadXActions) && + VT < sizeof(LoadXActions[0])*4 && "Table isn't big enough!"); return (LegalizeAction)((LoadXActions[LType] >> (2*VT)) & 3); } /// isLoadXLegal - Return true if the specified load with extension is legal /// on this target. bool isLoadXLegal(unsigned LType, MVT::ValueType VT) const { - return getLoadXAction(LType, VT) == Legal || - getLoadXAction(LType, VT) == Custom; + return !MVT::isExtendedVT(VT) && + (getLoadXAction(LType, VT) == Legal || + getLoadXAction(LType, VT) == Custom); } /// getTruncStoreAction - Return how this store with truncation should be @@ -315,8 +321,9 @@ /// isTruncStoreLegal - Return true if the specified store with truncation is /// legal on this target. bool isTruncStoreLegal(MVT::ValueType ValVT, MVT::ValueType MemVT) const { - return getTruncStoreAction(ValVT, MemVT) == Legal || - getTruncStoreAction(ValVT, MemVT) == Custom; + return !MVT::isExtendedVT(MemVT) && + (getTruncStoreAction(ValVT, MemVT) == Legal || + getTruncStoreAction(ValVT, MemVT) == Custom); } /// getIndexedLoadAction - Return how the indexed load should be treated: @@ -325,7 +332,9 @@ /// for it. LegalizeAction getIndexedLoadAction(unsigned IdxMode, MVT::ValueType VT) const { - if (MVT::isExtendedVT(VT)) return getTypeAction(VT); + assert(IdxMode < array_lengthof(IndexedModeActions[0]) && + VT < sizeof(IndexedModeActions[0][0])*4 && + "Table isn't big enough!"); return (LegalizeAction)((IndexedModeActions[0][IdxMode] >> (2*VT)) & 3); } @@ -342,7 +351,9 @@ /// for it. LegalizeAction getIndexedStoreAction(unsigned IdxMode, MVT::ValueType VT) const { - if (MVT::isExtendedVT(VT)) return getTypeAction(VT); + assert(IdxMode < array_lengthof(IndexedModeActions[1]) && + VT < sizeof(IndexedModeActions[1][0])*4 && + "Table isn't big enough!"); return (LegalizeAction)((IndexedModeActions[1][IdxMode] >> (2*VT)) & 3); } @@ -412,8 +423,10 @@ /// getRegisterType - Return the type of registers that this ValueType will /// eventually require. MVT::ValueType getRegisterType(MVT::ValueType VT) const { - if (!MVT::isExtendedVT(VT)) + if (!MVT::isExtendedVT(VT)) { + assert(VT < array_lengthof(RegisterTypeForVT)); return RegisterTypeForVT[VT]; + } if (MVT::isVector(VT)) { MVT::ValueType VT1, RegisterVT; unsigned NumIntermediates; @@ -428,8 +441,10 @@ /// registers, but may be more than one for types (like i64) that are split /// into pieces. unsigned getNumRegisters(MVT::ValueType VT) const { - if (!MVT::isExtendedVT(VT)) + if (!MVT::isExtendedVT(VT)) { + assert(VT < array_lengthof(NumRegistersForVT)); return NumRegistersForVT[VT]; + } if (MVT::isVector(VT)) { MVT::ValueType VT1, VT2; unsigned NumIntermediates; @@ -441,6 +456,7 @@ /// hasTargetDAGCombine - If true, the target has custom DAG combine /// transformations that it can perform for the specified node. bool hasTargetDAGCombine(ISD::NodeType NT) const { + assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray)); return TargetDAGCombineArray[NT >> 3] & (1 << (NT&7)); } @@ -738,7 +754,7 @@ /// regclass for the specified value type. This indicates the selector can /// handle values of that class natively. void addRegisterClass(MVT::ValueType VT, TargetRegisterClass *RC) { - assert(!MVT::isExtendedVT(VT)); + assert(VT < array_lengthof(RegClassForVT)); AvailableRegClasses.push_back(std::make_pair(VT, RC)); RegClassForVT[VT] = RC; } @@ -833,6 +849,7 @@ /// independent node that they want to provide a custom DAG combiner for by /// implementing the PerformDAGCombine virtual method. void setTargetDAGCombine(ISD::NodeType NT) { + assert(unsigned(NT >> 3) < array_lengthof(TargetDAGCombineArray)); TargetDAGCombineArray[NT >> 3] |= 1 << (NT&7); } From resistor at mac.com Fri Jan 25 04:10:34 2008 From: resistor at mac.com (Owen Anderson) Date: Fri, 25 Jan 2008 10:10:34 -0000 Subject: [llvm-commits] [llvm] r46351 - in /llvm/trunk: lib/Transforms/Scalar/DeadStoreElimination.cpp test/Transforms/DeadStoreElimination/byval.ll Message-ID: <200801251010.m0PAAZDx031973@zion.cs.uiuc.edu> Author: resistor Date: Fri Jan 25 04:10:33 2008 New Revision: 46351 URL: http://llvm.org/viewvc/llvm-project?rev=46351&view=rev Log: DeadStoreElimination can treat byval parameters as if there were alloca's for the purpose of removing end-of-function stores. Added: llvm/trunk/test/Transforms/DeadStoreElimination/byval.ll Modified: llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp Modified: llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp?rev=46351&r1=46350&r2=46351&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/DeadStoreElimination.cpp Fri Jan 25 04:10:33 2008 @@ -261,9 +261,6 @@ for (BasicBlock::iterator BBI = BB.end(); BBI != BB.begin(); ){ --BBI; - if (deadPointers.empty()) - break; - // If we find a store whose pointer is dead... if (StoreInst* S = dyn_cast(BBI)) { if (!S->isVolatile()) { @@ -271,8 +268,12 @@ // See through pointer-to-pointer bitcasts TranslatePointerBitCasts(pointerOperand); - if (isa(pointerOperand) && - deadPointers.count(cast(pointerOperand))) { + // Alloca'd pointers or byval arguments (which are functionally like + // alloca's) are valid candidates for removal. + if ( (isa(pointerOperand) && + deadPointers.count(cast(pointerOperand))) || + (isa(pointerOperand) && + cast(pointerOperand)->hasByValAttr())) { // Remove it! MD.removeInstruction(S); Added: llvm/trunk/test/Transforms/DeadStoreElimination/byval.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/DeadStoreElimination/byval.ll?rev=46351&view=auto ============================================================================== --- llvm/trunk/test/Transforms/DeadStoreElimination/byval.ll (added) +++ llvm/trunk/test/Transforms/DeadStoreElimination/byval.ll Fri Jan 25 04:10:33 2008 @@ -0,0 +1,10 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep store + +%struct.x = type { i32, i32, i32, i32 } + +define i32 @foo(%struct.x* byval %a) nounwind { +entry: + %tmp2 = getelementptr %struct.x* %a, i32 0, i32 0 + store i32 1, i32* %tmp2, align 4 + ret i32 1 +} From baldrick at free.fr Fri Jan 25 08:11:52 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 15:11:52 +0100 Subject: [llvm-commits] [llvm] r46333 - /llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c In-Reply-To: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> References: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> Message-ID: <200801251511.53830.baldrick@free.fr> Hi Devang, this patch causes: llvm-types.cpp: In member function ?bool TypeConverter::DecodeStructFields(tree_node*, StructTypeConversionInfo&)?: llvm-types.cpp:1777: warning: comparison between signed and unsigned integer expressions Ciao, Duncan. From clattner at apple.com Fri Jan 25 10:16:27 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 08:16:27 -0800 Subject: [llvm-commits] [llvm] r46350 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h In-Reply-To: <74FBED1E-6037-49C0-A69A-A954428AA282@apple.com> References: <200801250729.m0P7TZBN018609@zion.cs.uiuc.edu> <74FBED1E-6037-49C0-A69A-A954428AA282@apple.com> Message-ID: <83A4195E-A803-441A-8A2B-3BE0D5E6A5D4@apple.com> On Jan 24, 2008, at 11:53 PM, Evan Cheng wrote: > Ugh, really?? Yep, I didn't have time to investigate, but will try to look into it today. -Chris > > Evan > On Jan 24, 2008, at 11:29 PM, Chris Lattner wrote: > >> Author: lattner >> Date: Fri Jan 25 01:29:34 2008 >> New Revision: 46350 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46350&view=rev >> Log: >> move this field back. Moving the field causes miscompilations (!) >> of voronoi and others. >> >> Modified: >> llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h >> >> Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h?rev=46350&r1=46349&r2=46350&view=diff >> >> = >> = >> = >> = >> = >> = >> = >> = >> = >> ===================================================================== >> --- llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h (original) >> +++ llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Fri Jan 25 >> 01:29:34 2008 >> @@ -83,17 +83,17 @@ >> // Alignment - The required alignment of this stack slot. >> unsigned Alignment; >> >> + // SPOffset - The offset of this object from the stack pointer >> on entry to >> + // the function. This field has no meaning for a variable >> sized element. >> + int64_t SPOffset; >> + >> // isImmutable - If true, the value of the stack object is set >> before >> // entering the function and is not modified inside the >> function. By >> // default, fixed objects are immutable unless marked otherwise. >> bool isImmutable; >> >> - // SPOffset - The offset of this object from the stack pointer >> on entry to >> - // the function. This field has no meaning for a variable >> sized element. >> - int64_t SPOffset; >> - >> StackObject(uint64_t Sz, unsigned Al, int64_t SP, bool IM = false) >> - : Size(Sz), Alignment(Al), isImmutable(IM), SPOffset(SP) {} >> + : Size(Sz), Alignment(Al), SPOffset(SP), isImmutable(IM) {} >> }; >> >> /// Objects - The list of stack objects allocated... >> >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From clattner at apple.com Fri Jan 25 10:17:21 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 08:17:21 -0800 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801250953.26574.baldrick@free.fr> References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> <200801250953.26574.baldrick@free.fr> Message-ID: <9ABD72AE-E2EC-4422-B8DE-9E8B82F9BC80@apple.com> On Jan 25, 2008, at 12:53 AM, Duncan Sands wrote: >> Add skeletal code to increase the alignment of loads and stores when >> we can infer it. This will eventually help stuff, though it doesn't >> do much right now because all fixed FI's have an alignment of 1. > > By the way, I've always assumed that alignment 0 is not used by the > code generators, i.e. that IR alignment 0 gets turned into the > preferred alignment for the target during lowering. Is that right? > (If not, all the alignment calculations for ptr+offset done in codegen > are wrong). Right, that is my understanding as well. The 'infer alignment' function I stubbed out returns 0 as a sentinel that says it was unable to infer something useful. -Chris From clattner at apple.com Fri Jan 25 10:18:28 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 08:18:28 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46334 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801251001.31054.baldrick@free.fr> References: <200801242356.m0ONucui003854@zion.cs.uiuc.edu> <200801251001.31054.baldrick@free.fr> Message-ID: <80E20943-9AC5-4A18-99B7-92C4413D8ADB@apple.com> On Jan 25, 2008, at 1:01 AM, Duncan Sands wrote: > Hi Devang, > >> Fix 2008-01-24-StructAlignAndBitFields.c test case. >> Bit-field type does not influence struct alignment. > > I don't see the point of trying to get the LLVM type to have the same > alignment as the gcc type. I think all the code that tries to obtain > equal alignment should just be dropped. Who cares if the LLVM type > has > a different alignment to the gcc type? Surely all that matters is > that > when we allocate a variable (alloca or global), if the gcc declaration > is more aligned than the LLVM type, then we should force the alloca/ > global > to have the gcc alignment. Right. There are several cases where we *can't* get the same alignment. If dropping the attempts makes the code simpler, I say go for it :) -Chris From clattner at apple.com Fri Jan 25 10:18:40 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 08:18:40 -0800 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801251107.05069.baldrick@free.fr> References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> <200801250953.26574.baldrick@free.fr> <200801251107.05069.baldrick@free.fr> Message-ID: On Jan 25, 2008, at 2:07 AM, Duncan Sands wrote: > PS: Does an alignment of 0 mean the ABI alignment or the preferred > alignment? I'm guessing that it means ABI for globals and > preferred for allocas. In what context? -Chris From sabre at nondot.org Fri Jan 25 10:41:09 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 16:41:09 -0000 Subject: [llvm-commits] [llvm] r46354 - in /llvm/trunk/lib: ExecutionEngine/JIT/JITEmitter.cpp Target/PowerPC/PPCJITInfo.cpp Message-ID: <200801251641.m0PGf9oA012247@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 10:41:09 2008 New Revision: 46354 URL: http://llvm.org/viewvc/llvm-project?rev=46354&view=rev Log: JITEmitter.cpp was trying to sync the icache for function stubs, but was actually passing a completely incorrect size to sys_icache_invalidate. Instead of having the JITEmitter do this (which doesn't have the correct size), just make the target sync its own stubs. Modified: llvm/trunk/lib/ExecutionEngine/JIT/JITEmitter.cpp llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp Modified: llvm/trunk/lib/ExecutionEngine/JIT/JITEmitter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/JIT/JITEmitter.cpp?rev=46354&r1=46353&r2=46354&view=diff ============================================================================== --- llvm/trunk/lib/ExecutionEngine/JIT/JITEmitter.cpp (original) +++ llvm/trunk/lib/ExecutionEngine/JIT/JITEmitter.cpp Fri Jan 25 10:41:09 2008 @@ -182,10 +182,6 @@ TheJIT->updateGlobalMapping(F, Stub); } - // Invalidate the icache if necessary. - synchronizeICache(Stub, TheJIT->getCodeEmitter()->getCurrentPCValue() - - (intptr_t)Stub); - DOUT << "JIT: Stub emitted at [" << Stub << "] for function '" << F->getName() << "'\n"; @@ -224,10 +220,6 @@ Stub = TheJIT->getJITInfo().emitFunctionStub(FnAddr, *TheJIT->getCodeEmitter()); - // Invalidate the icache if necessary. - synchronizeICache(Stub, TheJIT->getCodeEmitter()->getCurrentPCValue() - - (intptr_t)Stub); - DOUT << "JIT: Stub emitted at [" << Stub << "] for external function at '" << FnAddr << "'\n"; return Stub; Modified: llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp?rev=46354&r1=46353&r2=46354&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp Fri Jan 25 10:41:09 2008 @@ -324,6 +324,20 @@ return is64Bit ? PPC64CompilationCallback : PPC32CompilationCallback; } +#if (defined(__POWERPC__) || defined (__ppc__) || defined(_POWER)) && \ +defined(__APPLE__) +extern "C" void sys_icache_invalidate(const void *Addr, size_t len); +#endif + +/// SyncICache - On PPC, the JIT emitted code must be explicitly refetched to +/// ensure correct execution. +static void SyncICache(const void *Addr, size_t len) { +#if (defined(__POWERPC__) || defined (__ppc__) || defined(_POWER)) && \ +defined(__APPLE__) + sys_icache_invalidate(Addr, len); +#endif +} + void *PPCJITInfo::emitFunctionStub(void *Fn, MachineCodeEmitter &MCE) { // If this is just a call to an external function, emit a branch instead of a // call. The code is the same except for one bit of the last instruction. @@ -339,10 +353,12 @@ MCE.emitWordBE(0); MCE.emitWordBE(0); EmitBranchToAt(Addr, (intptr_t)Fn, false, is64Bit); + SyncICache((void*)Addr, 7*4); return MCE.finishFunctionStub(0); } MCE.startFunctionStub(10*4); + intptr_t Addr = (intptr_t)MCE.getCurrentPCValue(); if (is64Bit) { MCE.emitWordBE(0xf821ffb1); // stdu r1,-80(r1) MCE.emitWordBE(0x7d6802a6); // mflr r11 @@ -356,7 +372,7 @@ MCE.emitWordBE(0x7d6802a6); // mflr r11 MCE.emitWordBE(0x91610024); // stw r11, 36(r1) } - intptr_t Addr = (intptr_t)MCE.getCurrentPCValue(); + intptr_t BranchAddr = (intptr_t)MCE.getCurrentPCValue(); MCE.emitWordBE(0); MCE.emitWordBE(0); MCE.emitWordBE(0); @@ -364,7 +380,8 @@ MCE.emitWordBE(0); MCE.emitWordBE(0); MCE.emitWordBE(0); - EmitBranchToAt(Addr, (intptr_t)Fn, true, is64Bit); + EmitBranchToAt(BranchAddr, (intptr_t)Fn, true, is64Bit); + SyncICache((void*)Addr, 10*4); return MCE.finishFunctionStub(0); } From baldrick at free.fr Fri Jan 25 10:37:11 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 17:37:11 +0100 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> <200801251107.05069.baldrick@free.fr> Message-ID: <200801251737.12726.baldrick@free.fr> > > PS: Does an alignment of 0 mean the ABI alignment or the preferred > > alignment? I'm guessing that it means ABI for globals and > > preferred for allocas. > > In what context? In any context :) Basically I'm asking what it means if you pass an alignment of 0 for an alloca (or a global). For example, llvm-gcc uses alignment 0 for an alloca if the ABI alignment equals the gcc alignment. But if the alloca gets the preferred alignment in the end (at codegen time) and this differs from the ABI alignment, then this would be wrong. Ciao, Duncan. From clattner at apple.com Fri Jan 25 11:19:31 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 09:19:31 -0800 Subject: [llvm-commits] [llvm] r46349 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp In-Reply-To: <200801251737.12726.baldrick@free.fr> References: <200801250720.m0P7KH1B018307@zion.cs.uiuc.edu> <200801251107.05069.baldrick@free.fr> <200801251737.12726.baldrick@free.fr> Message-ID: <0AEE9A3F-8D45-4E0A-9E5B-4467F0B86D17@apple.com> On Jan 25, 2008, at 8:37 AM, Duncan Sands wrote: >>> PS: Does an alignment of 0 mean the ABI alignment or the preferred >>> alignment? I'm guessing that it means ABI for globals and >>> preferred for allocas. >> >> In what context? > > In any context :) Basically I'm asking what it means if you pass an > alignment of 0 for an alloca (or a global). For example, llvm-gcc > uses alignment 0 for an alloca if the ABI alignment equals the gcc > alignment. But if the alloca gets the preferred alignment in the > end (at codegen time) and this differs from the ABI alignment, then > this would be wrong. It looks like selectiondagisel is using the max(requested alignment, preferred alignment) for the type for allocas. This makes sense. -Chris From sabre at nondot.org Fri Jan 25 11:24:52 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 17:24:52 -0000 Subject: [llvm-commits] [llvm] r46355 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Message-ID: <200801251724.m0PHOq8c013926@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 11:24:52 2008 New Revision: 46355 URL: http://llvm.org/viewvc/llvm-project?rev=46355&view=rev Log: fix long lines. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=46355&r1=46354&r2=46355&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Fri Jan 25 11:24:52 2008 @@ -57,7 +57,7 @@ cl::desc("Pop up a window to show sched dags as they are processed")); static cl::opt ViewSUnitDAGs("view-sunit-dags", cl::Hidden, - cl::desc("Pop up a window to show SUnit dags after they are processed")); + cl::desc("Pop up a window to show SUnit dags after they are processed")); #else static const bool ViewISelDAGs = 0, ViewSchedDAGs = 0, ViewSUnitDAGs = 0; #endif @@ -79,7 +79,8 @@ RegisterPassParser > ISHeuristic("pre-RA-sched", cl::init(&createDefaultScheduler), - cl::desc("Instruction schedulers available (before register allocation):")); + cl::desc("Instruction schedulers available (before register" + " allocation):")); static RegisterScheduler defaultListDAGScheduler("default", " Best scheduler for the target", From dpatel at apple.com Fri Jan 25 11:28:37 2008 From: dpatel at apple.com (Devang Patel) Date: Fri, 25 Jan 2008 09:28:37 -0800 Subject: [llvm-commits] [llvm] r46333 - /llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c In-Reply-To: <200801251511.53830.baldrick@free.fr> References: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> <200801251511.53830.baldrick@free.fr> Message-ID: <6DC44956-4052-40E2-8CD4-A71F47E058E6@apple.com> On Jan 25, 2008, at 6:11 AM, Duncan Sands wrote: > Hi Devang, this patch causes: > > llvm-types.cpp: In member function ?bool > TypeConverter::DecodeStructFields(tree_node*, > StructTypeConversionInfo&)?: > llvm-types.cpp:1777: warning: comparison between signed and unsigned > integer expressions I did not see this warning on darwin x86 and this line is not included in this patch. However, please apply t his patch if it helps you remove this warning. Thanks, - Devang Index: llvm-types.cpp =================================================================== --- llvm-types.cpp (revision 46334) +++ llvm-types.cpp (working copy) @@ -1774,7 +1774,7 @@ return false; } else if (TYPE_USER_ALIGN(TREE_TYPE(Field)) - && DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) + && (unsigned) DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) && !Info.isPacked()) { // If Field has user defined alignment and it does not match Ty alignment // then convert to a packed struct and try again. From dpatel at apple.com Fri Jan 25 11:29:13 2008 From: dpatel at apple.com (Devang Patel) Date: Fri, 25 Jan 2008 09:29:13 -0800 Subject: [llvm-commits] [llvm] r46333 - /llvm/trunk/test/CFrontend/2008-01-24-StructAlignAndBitFields.c In-Reply-To: <200801250955.51141.baldrick@free.fr> References: <200801242355.m0ONtYW3003811@zion.cs.uiuc.edu> <200801250955.51141.baldrick@free.fr> Message-ID: On Jan 25, 2008, at 12:55 AM, Duncan Sands wrote: > Hi Devang, what is this test testing? A compiler crash? > It doesn't crash here without your fix. Hmm.. did you try assertion enabled build ? What is the size and alignment of this struct for you without this patch ? - Devang > > >> +// RUN: %llvmgcc %s -S -o - >> + >> +// This struct is not 4 byte aligned becaues bit-field >> +// type does not influence struct alignment. >> +struct U { char a; short b; int c:25; char d; } u; From baldrick at free.fr Fri Jan 25 11:36:35 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 17:36:35 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46356 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-internal.h Message-ID: <200801251736.m0PHaa2T014579@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 11:36:35 2008 New Revision: 46356 URL: http://llvm.org/viewvc/llvm-project?rev=46356&view=rev Log: Fix PR1942. When returning an aggregate result, create a temporary to hold the result, and copy it out when returning. Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp llvm-gcc-4.2/trunk/gcc/llvm-internal.h Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46356&r1=46355&r2=46356&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Fri Jan 25 11:36:35 2008 @@ -367,6 +367,8 @@ AllocaInsertionPoint = 0; + UsedSRetBuffer = false; + ExceptionValue = 0; ExceptionSelectorValue = 0; FuncEHException = 0; @@ -411,11 +413,13 @@ LLVMBuilder Builder; std::vector LocStack; std::vector NameStack; + bool &UsedSRetBuffer; FunctionPrologArgumentConversion(tree FnDecl, Function::arg_iterator &ai, - const LLVMBuilder &B) - : FunctionDecl(FnDecl), AI(ai), Builder(B) {} - + const LLVMBuilder &B, + bool &SRetBuffer) + : FunctionDecl(FnDecl), AI(ai), Builder(B), UsedSRetBuffer(SRetBuffer) {} + void setName(const std::string &Name) { NameStack.push_back(Name); } @@ -435,23 +439,29 @@ // instead. assert(AI != Builder.GetInsertBlock()->getParent()->arg_end() && "No explicit return value?"); + assert(AI == Builder.GetInsertBlock()->getParent()->arg_begin() && + "Struct return is not first argument!"); AI->setName("agg.result"); - + tree ResultDecl = DECL_RESULT(FunctionDecl); tree RetTy = TREE_TYPE(TREE_TYPE(FunctionDecl)); if (TREE_CODE(RetTy) == TREE_CODE(TREE_TYPE(ResultDecl))) { - SET_DECL_LLVM(ResultDecl, AI); + // Use a buffer for the return result. This ensures that writes to the + // return value do not interfere with reads from parameters: the same + // aggregate might be used for the return value and as a parameter. + TheTreeToLLVM->EmitAutomaticVariableDecl(DECL_RESULT(FunctionDecl)); + UsedSRetBuffer = true; ++AI; return; } - + // Otherwise, this must be something returned with NRVO. assert(TREE_CODE(TREE_TYPE(ResultDecl)) == REFERENCE_TYPE && "Not type match and not passing by reference?"); // Create an alloca for the ResultDecl. Value *Tmp = TheTreeToLLVM->CreateTemporary(AI->getType()); Builder.CreateStore(AI, Tmp); - + SET_DECL_LLVM(ResultDecl, Tmp); if (TheDebugInfo) { TheDebugInfo->EmitDeclare(ResultDecl, @@ -656,7 +666,7 @@ Function::arg_iterator AI = Fn->arg_begin(); // Rename and alloca'ify real arguments. - FunctionPrologArgumentConversion Client(FnDecl, AI, Builder); + FunctionPrologArgumentConversion Client(FnDecl, AI, Builder, UsedSRetBuffer); TheLLVMABI ABIConverter(Client); // Handle the DECL_RESULT. @@ -756,6 +766,14 @@ PointerType::getUnqual(Fn->getReturnType())); RetVal = Builder.CreateLoad(RetVal, "retval"); } + } else if (UsedSRetBuffer) { + // A buffer was used for the aggregate return result. Copy it out now. + assert(Fn->arg_begin() != Fn->arg_end() && "No struct return value?"); + unsigned Alignment = expr_align(DECL_RESULT(FnDecl))/8; + bool Volatile = TREE_THIS_VOLATILE(DECL_RESULT(FnDecl)); + MemRef BufLoc(DECL_LLVM(DECL_RESULT(FnDecl)), Alignment, false); + MemRef RetLoc(Fn->arg_begin(), Alignment, Volatile); + EmitAggregateCopy(RetLoc, BufLoc, TREE_TYPE(DECL_RESULT(FnDecl))); } if (TheDebugInfo) TheDebugInfo->EmitRegionEnd(Fn, Builder.GetInsertBlock()); Builder.CreateRet(RetVal); @@ -2675,20 +2693,9 @@ // Non-bitfield aggregate value. MemRef NewLoc(LV.Ptr, Alignment, isVolatile); - if (DestLoc) { - Emit(TREE_OPERAND(exp, 1), &NewLoc); + Emit(TREE_OPERAND(exp, 1), &NewLoc); + if (DestLoc) EmitAggregateCopy(*DestLoc, NewLoc, TREE_TYPE(exp)); - } else if (TREE_CODE(TREE_OPERAND(exp, 0)) != RESULT_DECL) { - Emit(TREE_OPERAND(exp, 1), &NewLoc); - } else { - // We do this for stores into RESULT_DECL because it is possible for that - // memory area to overlap with the object being stored into it; see - // gcc.c-torture/execute/20010124-1.c. - - MemRef Tmp = CreateTempLoc(ConvertType(TREE_TYPE(TREE_OPERAND(exp,1)))); - Emit(TREE_OPERAND(exp, 1), &Tmp); - EmitAggregateCopy(NewLoc, Tmp, TREE_TYPE(TREE_OPERAND(exp,1))); - } return 0; } Modified: llvm-gcc-4.2/trunk/gcc/llvm-internal.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-internal.h?rev=46356&r1=46355&r2=46356&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-internal.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-internal.h Fri Jan 25 11:36:35 2008 @@ -285,7 +285,11 @@ // AllocaInsertionPoint - Place to insert alloca instructions. Lazily created // and managed by CreateTemporary. Instruction *AllocaInsertionPoint; - + + // UsedSRetBuffer - Whether a buffer was used for an aggregate return value. + // If so, it needs copying out when the function returns. + bool UsedSRetBuffer; + //===---------------------- Exception Handling --------------------------===// /// LandingPads - The landing pad for a given EH region. @@ -386,6 +390,8 @@ /// instruction's type is a pointer to the specified type. AllocaInst *CreateTemporary(const Type *Ty); + void EmitAutomaticVariableDecl(tree_node *decl); + private: // Helper functions. /// StartFunctionBody - Start the emission of 'fndecl', outputing all @@ -446,8 +452,6 @@ /// CreateTempLoc - Like CreateTemporary, but returns a MemRef. MemRef CreateTempLoc(const Type *Ty); - void EmitAutomaticVariableDecl(tree_node *decl); - /// isNoopCast - Return true if a cast from V to Ty does not change any bits. /// static bool isNoopCast(Value *V, const Type *Ty); From baldrick at free.fr Fri Jan 25 11:36:44 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 17:36:44 -0000 Subject: [llvm-commits] [llvm] r46357 - /llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp Message-ID: <200801251736.m0PHajtP014596@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 11:36:44 2008 New Revision: 46357 URL: http://llvm.org/viewvc/llvm-project?rev=46357&view=rev Log: Test for PR1942. Added: llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp Added: llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/C%2B%2BFrontend/2008-01-25-ResultIsParam.cpp?rev=46357&view=auto ============================================================================== --- llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp (added) +++ llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp Fri Jan 25 11:36:44 2008 @@ -0,0 +1,23 @@ +// RUN: %llvmgcc %s -S -o - | not grep {@_ZN3fooC1Ev.*result} +// PR1942 + +class foo +{ +public: + int a; + int b; + + foo(void) : a(0), b(0) {} + + foo(int aa, int bb) : a(aa), b(bb) {} + + const foo operator+(const foo& in) const; + +}; + +const foo foo::operator+(const foo& in) const { + foo Out; + Out.a = a + in.a; + Out.b = b + in.b; + return Out; +} From dpatel at apple.com Fri Jan 25 11:37:46 2008 From: dpatel at apple.com (Devang Patel) Date: Fri, 25 Jan 2008 09:37:46 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46334 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801251001.31054.baldrick@free.fr> References: <200801242356.m0ONucui003854@zion.cs.uiuc.edu> <200801251001.31054.baldrick@free.fr> Message-ID: <98512397-A725-4835-B73F-4AF82FB7FC48@apple.com> Hi Duncan, On Jan 25, 2008, at 1:01 AM, Duncan Sands wrote: > Hi Devang, > >> Fix 2008-01-24-StructAlignAndBitFields.c test case. >> Bit-field type does not influence struct alignment. > > I don't see the point of trying to get the LLVM type to have the same > alignment as the gcc type. This patch does not update llvm-gcc to generate LLVM type that matches GCC type. GCC type alignment is 2 byte here. Before this patch LLVM type alignment was 4 byte and now after this patch struct alignment is 1 byte. > I think all the code that tries to obtain > equal alignment should just be dropped. Who cares if the LLVM type > has > a different alignment to the gcc type? Surely all that matters is > that > when we allocate a variable (alloca or global), if the gcc declaration > is more aligned than the LLVM type, then we should force the alloca/ > global > to have the gcc alignment. So idea is for llvm value you "fix" aligment, which can happen N number of times for each type instead of fixing type once. However, if you can simplify code then that is a good idea. Go for it. - Devang From baldrick at free.fr Fri Jan 25 11:45:31 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 17:45:31 -0000 Subject: [llvm-commits] [llvm-gcc-4.0] r46359 - in /llvm-gcc-4.0/trunk/gcc: llvm-convert.cpp llvm-internal.h Message-ID: <200801251745.m0PHjV4l014897@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 11:45:31 2008 New Revision: 46359 URL: http://llvm.org/viewvc/llvm-project?rev=46359&view=rev Log: Fix PR1942. When returning an aggregate result, create a temporary to hold the result, and copy it out when returning. Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp llvm-gcc-4.0/trunk/gcc/llvm-internal.h Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=46359&r1=46358&r2=46359&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Fri Jan 25 11:45:31 2008 @@ -351,7 +351,9 @@ } AllocaInsertionPoint = 0; - + + UsedSRetBuffer = false; + CleanupFilter = NULL_TREE; ExceptionValue = 0; ExceptionSelectorValue = 0; @@ -384,11 +386,13 @@ LLVMBuilder Builder; std::vector LocStack; std::vector NameStack; + bool &UsedSRetBuffer; FunctionPrologArgumentConversion(tree FnDecl, Function::arg_iterator &ai, - const LLVMBuilder &B) - : FunctionDecl(FnDecl), AI(ai), Builder(B) {} - + const LLVMBuilder &B, + bool &SRetBuffer) + : FunctionDecl(FnDecl), AI(ai), Builder(B), UsedSRetBuffer(SRetBuffer) {} + void setName(const std::string &Name) { NameStack.push_back(Name); } @@ -408,23 +412,29 @@ // instead. assert(AI != Builder.GetInsertBlock()->getParent()->arg_end() && "No explicit return value?"); + assert(AI == Builder.GetInsertBlock()->getParent()->arg_begin() && + "Struct return is not first argument!"); AI->setName("agg.result"); - + tree ResultDecl = DECL_RESULT(FunctionDecl); tree RetTy = TREE_TYPE(TREE_TYPE(FunctionDecl)); if (TREE_CODE(RetTy) == TREE_CODE(TREE_TYPE(ResultDecl))) { - SET_DECL_LLVM(ResultDecl, AI); + // Use a buffer for the return result. This ensures that writes to the + // return value do not interfere with reads from parameters: the same + // aggregate might be used for the return value and as a parameter. + TheTreeToLLVM->EmitAutomaticVariableDecl(DECL_RESULT(FunctionDecl)); + UsedSRetBuffer = true; ++AI; return; } - + // Otherwise, this must be something returned with NRVO. assert(TREE_CODE(TREE_TYPE(ResultDecl)) == REFERENCE_TYPE && "Not type match and not passing by reference?"); // Create an alloca for the ResultDecl. Value *Tmp = TheTreeToLLVM->CreateTemporary(AI->getType()); Builder.CreateStore(AI, Tmp); - + SET_DECL_LLVM(ResultDecl, Tmp); if (TheDebugInfo) { TheDebugInfo->EmitDeclare(ResultDecl, @@ -629,7 +639,7 @@ Function::arg_iterator AI = Fn->arg_begin(); // Rename and alloca'ify real arguments. - FunctionPrologArgumentConversion Client(FnDecl, AI, Builder); + FunctionPrologArgumentConversion Client(FnDecl, AI, Builder, UsedSRetBuffer); TheLLVMABI ABIConverter(Client); // Handle the DECL_RESULT. @@ -729,6 +739,14 @@ PointerType::getUnqual(Fn->getReturnType())); RetVal = Builder.CreateLoad(RetVal, "retval"); } + } else if (UsedSRetBuffer) { + // A buffer was used for the aggregate return result. Copy it out now. + assert(Fn->arg_begin() != Fn->arg_end() && "No struct return value?"); + unsigned Alignment = expr_align(DECL_RESULT(FnDecl))/8; + bool Volatile = TREE_THIS_VOLATILE(DECL_RESULT(FnDecl)); + MemRef BufLoc(DECL_LLVM(DECL_RESULT(FnDecl)), Alignment, false); + MemRef RetLoc(Fn->arg_begin(), Alignment, Volatile); + EmitAggregateCopy(RetLoc, BufLoc, TREE_TYPE(DECL_RESULT(FnDecl))); } if (TheDebugInfo) TheDebugInfo->EmitRegionEnd(Fn, Builder.GetInsertBlock()); Builder.CreateRet(RetVal); @@ -3137,20 +3155,9 @@ // Non-bitfield aggregate value. MemRef NewLoc(LV.Ptr, Alignment, isVolatile); - if (DestLoc) { - Emit(TREE_OPERAND(exp, 1), &NewLoc); + Emit(TREE_OPERAND(exp, 1), &NewLoc); + if (DestLoc) EmitAggregateCopy(*DestLoc, NewLoc, TREE_TYPE(exp)); - } else if (TREE_CODE(TREE_OPERAND(exp, 0)) != RESULT_DECL) { - Emit(TREE_OPERAND(exp, 1), &NewLoc); - } else { - // We do this for stores into RESULT_DECL because it is possible for that - // memory area to overlap with the object being stored into it; see - // gcc.c-torture/execute/20010124-1.c. - - MemRef Tmp = CreateTempLoc(ConvertType(TREE_TYPE(TREE_OPERAND(exp,1)))); - Emit(TREE_OPERAND(exp, 1), &Tmp); - EmitAggregateCopy(NewLoc, Tmp, TREE_TYPE(TREE_OPERAND(exp,1))); - } return 0; } Modified: llvm-gcc-4.0/trunk/gcc/llvm-internal.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-internal.h?rev=46359&r1=46358&r2=46359&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-internal.h (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-internal.h Fri Jan 25 11:45:31 2008 @@ -260,7 +260,11 @@ // AllocaInsertionPoint - Place to insert alloca instructions. Lazily created // and managed by CreateTemporary. Instruction *AllocaInsertionPoint; - + + // UsedSRetBuffer - Whether a buffer was used for an aggregate return value. + // If so, it needs copying out when the function returns. + bool UsedSRetBuffer; + //===-------------- Exception / Finally Block Handling ------------------===// struct BranchFixup { @@ -446,7 +450,9 @@ /// inserting it into the entry block and returning it. The resulting /// instruction's type is a pointer to the specified type. AllocaInst *CreateTemporary(const Type *Ty); - + + void EmitAutomaticVariableDecl(tree_node *decl); + private: // Helper functions. /// EmitBlock - Add the specified basic block to the end of the function. If @@ -481,8 +487,6 @@ /// CreateTempLoc - Like CreateTemporary, but returns a MemRef. MemRef CreateTempLoc(const Type *Ty); - void EmitAutomaticVariableDecl(tree_node *decl); - /// isNoopCast - Return true if a cast from V to Ty does not change any bits. /// static bool isNoopCast(Value *V, const Type *Ty); From sabre at nondot.org Fri Jan 25 11:49:41 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 17:49:41 -0000 Subject: [llvm-commits] [llvm] r46360 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Message-ID: <200801251749.m0PHnfY7015069@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 11:49:41 2008 New Revision: 46360 URL: http://llvm.org/viewvc/llvm-project?rev=46360&view=rev Log: Reorder a field to reduce the size of StackObject. Note that this may require a clean rebuild on leopard. :( Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Modified: llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h?rev=46360&r1=46359&r2=46360&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h (original) +++ llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h Fri Jan 25 11:49:41 2008 @@ -6,7 +6,10 @@ // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// - +// +// The file defines the MachineFrameInfo class. +// +//===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_MACHINEFRAMEINFO_H #define LLVM_CODEGEN_MACHINEFRAMEINFO_H @@ -83,17 +86,17 @@ // Alignment - The required alignment of this stack slot. unsigned Alignment; - // SPOffset - The offset of this object from the stack pointer on entry to - // the function. This field has no meaning for a variable sized element. - int64_t SPOffset; - // isImmutable - If true, the value of the stack object is set before // entering the function and is not modified inside the function. By // default, fixed objects are immutable unless marked otherwise. bool isImmutable; + + // SPOffset - The offset of this object from the stack pointer on entry to + // the function. This field has no meaning for a variable sized element. + int64_t SPOffset; StackObject(uint64_t Sz, unsigned Al, int64_t SP, bool IM = false) - : Size(Sz), Alignment(Al), SPOffset(SP), isImmutable(IM) {} + : Size(Sz), Alignment(Al), isImmutable(IM), SPOffset(SP) {} }; /// Objects - The list of stack objects allocated... @@ -194,13 +197,15 @@ /// getObjectSize - Return the size of the specified object /// int64_t getObjectSize(int ObjectIdx) const { - assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!"); + assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && + "Invalid Object Idx!"); return Objects[ObjectIdx+NumFixedObjects].Size; } /// getObjectAlignment - Return the alignment of the specified stack object... int getObjectAlignment(int ObjectIdx) const { - assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!"); + assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && + "Invalid Object Idx!"); return Objects[ObjectIdx+NumFixedObjects].Alignment; } @@ -208,7 +213,8 @@ /// from the incoming stack pointer. /// int64_t getObjectOffset(int ObjectIdx) const { - assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!"); + assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && + "Invalid Object Idx!"); return Objects[ObjectIdx+NumFixedObjects].SPOffset; } @@ -216,7 +222,8 @@ /// offset is relative to the stack pointer on entry to the function. /// void setObjectOffset(int ObjectIdx, int64_t SPOffset) { - assert(ObjectIdx+NumFixedObjects < Objects.size() && "Invalid Object Idx!"); + assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && + "Invalid Object Idx!"); Objects[ObjectIdx+NumFixedObjects].SPOffset = SPOffset; } @@ -280,6 +287,8 @@ /// isImmutableObjectIndex - Returns true if the specified index corresponds /// to an immutable object. bool isImmutableObjectIndex(int ObjectIdx) const { + assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && + "Invalid Object Idx!"); return Objects[ObjectIdx+NumFixedObjects].isImmutable; } From evan.cheng at apple.com Fri Jan 25 14:48:41 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Fri, 25 Jan 2008 12:48:41 -0800 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <1201239694.10814.16.camel@asl.dorms.spbu.ru> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> <1201239694.10814.16.camel@asl.dorms.spbu.ru> Message-ID: <21A9853B-80BC-426C-B531-B7680DFCA806@apple.com> Hi Anton, Here is a silly test case: #include struct ss { int x; int y; }; void f(int a, struct ss b) { =>printf("%d %d\n", a, b.x); } int main() { struct ss S = {1, 2}; f(0, S); return 0; } Problem 1: (gdb) b main Line number not known for symbol "main" Explicitly setting a breakpoint on line 10 works. Problem 2: In function f(). (gdb) p a $2 = -1073743868 (gdb) p b $3 = { x = 2, y = 0 } Any ideas? Evan On Jan 24, 2008, at 9:41 PM, Anton Korobeynikov wrote: > Evan, > >> This allows gdb to examine local scalar variables, but not aggregate >> ones. There are also issues with parameters, even scalar ones. > Ok. Any other testcases? Owen, ready for another session? :) > > -- > With best regards, Anton Korobeynikov. > > Faculty of Mathematics & Mechanics, Saint Petersburg State University. > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From asl at math.spbu.ru Fri Jan 25 14:59:41 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Fri, 25 Jan 2008 23:59:41 +0300 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <21A9853B-80BC-426C-B531-B7680DFCA806@apple.com> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> <1201239694.10814.16.camel@asl.dorms.spbu.ru> <21A9853B-80BC-426C-B531-B7680DFCA806@apple.com> Message-ID: <1201294781.10814.27.camel@asl.dorms.spbu.ru> Hello, Evan > Problem 1: > (gdb) b main > Line number not known for symbol "main" > Explicitly setting a breakpoint on line 10 works. That's strange. This definitely works for me. Could you please send me the .bc and native gcc output with extra -dA option? > Problem 2: > In function f(). > (gdb) p a > $2 = -1073743868 > (gdb) p b > $3 = { > x = 2, > y = 0 > } > Displaying incoming arguments is somehow broken for me too (it was so always afair). -- With best regards, Anton Korobeynikov. Faculty of Mathematics & Mechanics, Saint Petersburg State University. From asl at math.spbu.ru Fri Jan 25 14:59:51 2008 From: asl at math.spbu.ru (Anton Korobeynikov) Date: Fri, 25 Jan 2008 23:59:51 +0300 Subject: [llvm-commits] [llvm] r46337 - in /llvm/trunk/lib/Target/X86: X86RegisterInfo.cpp X86RegisterInfo.h X86RegisterInfo.td In-Reply-To: <21A9853B-80BC-426C-B531-B7680DFCA806@apple.com> References: <200801250034.m0P0YEGM005241@zion.cs.uiuc.edu> <29883F4E-9FF7-4AF1-9571-6AF89F14FF8D@apple.com> <1201239694.10814.16.camel@asl.dorms.spbu.ru> <21A9853B-80BC-426C-B531-B7680DFCA806@apple.com> Message-ID: <1201294791.10814.29.camel@asl.dorms.spbu.ru> Hello, Evan > Problem 1: > (gdb) b main > Line number not known for symbol "main" > Explicitly setting a breakpoint on line 10 works. That's strange. This definitely works for me. Could you please send me the .bc and native gcc output with extra -dA option? > Problem 2: > In function f(). > (gdb) p a > $2 = -1073743868 > (gdb) p b > $3 = { > x = 2, > y = 0 > } > Displaying incoming arguments is somehow broken for me too (it was so always afair). -- With best regards, Anton Korobeynikov. Faculty of Mathematics & Mechanics, Saint Petersburg State University. From dalej at apple.com Fri Jan 25 16:05:08 2008 From: dalej at apple.com (Dale Johannesen) Date: Fri, 25 Jan 2008 14:05:08 -0800 Subject: [llvm-commits] [llvm] r46360 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h In-Reply-To: <200801251749.m0PHnfY7015069@zion.cs.uiuc.edu> References: <200801251749.m0PHnfY7015069@zion.cs.uiuc.edu> Message-ID: On Jan 25, 2008, at 9:49 AM, Chris Lattner wrote: > Author: lattner > Date: Fri Jan 25 11:49:41 2008 > New Revision: 46360 > > URL: http://llvm.org/viewvc/llvm-project?rev=46360&view=rev > Log: > Reorder a field to reduce the size of StackObject. Note that this > may require a clean rebuild on leopard. :( Does this indicate a bug in the header dependency machinery? From baldrick at free.fr Fri Jan 25 16:06:51 2008 From: baldrick at free.fr (Duncan Sands) Date: Fri, 25 Jan 2008 22:06:51 -0000 Subject: [llvm-commits] [llvm] r46369 - /llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Message-ID: <200801252206.m0PM6pgC024440@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 16:06:51 2008 New Revision: 46369 URL: http://llvm.org/viewvc/llvm-project?rev=46369&view=rev Log: Do this more neatly. Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=46369&r1=46368&r2=46369&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original) +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Fri Jan 25 16:06:51 2008 @@ -245,8 +245,7 @@ // or readnone, because the copy would be unneeded: the callee doesn't // modify the struct. if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal) && - !CalledFunc->paramHasAttr(0, ParamAttr::ReadOnly) && - !CalledFunc->paramHasAttr(0, ParamAttr::ReadNone)) { + !CalledFunc->onlyReadsMemory()) { const Type *AggTy = cast(I->getType())->getElementType(); const Type *VoidPtrTy = PointerType::getUnqual(Type::Int8Ty); From sabre at nondot.org Fri Jan 25 16:36:25 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 22:36:25 -0000 Subject: [llvm-commits] [llvm] r46372 - /llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c Message-ID: <200801252236.m0PMaP3H025489@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 16:36:24 2008 New Revision: 46372 URL: http://llvm.org/viewvc/llvm-project?rev=46372&view=rev Log: add a testcase for a bug Duncan pointed out. Added: llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c Added: llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c?rev=46372&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c (added) +++ llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c Fri Jan 25 16:36:24 2008 @@ -0,0 +1,10 @@ +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep readonly +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | not grep readnone + + +// The struct being passed byval means that we need to mark the +// function readonly instead of readnone. Readnone would allow +// stores to the arg to be deleted in the caller. +struct S { int A[1000]; }; +int __attribute__ ((const)) f(struct S x) { return x.A[0]; } + From sabre at nondot.org Fri Jan 25 16:37:31 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 22:37:31 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46373 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801252237.m0PMbVat025526@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 16:37:31 2008 New Revision: 46373 URL: http://llvm.org/viewvc/llvm-project?rev=46373&view=rev Log: If a function takes a byval parameter, it can't be readnone, we have to mark it readonly instead. This fixes test/CFrontend/2008-01-25-ByValReadNone.c Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46373&r1=46372&r2=46373&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Fri Jan 25 16:37:31 2008 @@ -1123,18 +1123,17 @@ // accepts it). But llvm IR does not allow both, so // set only ReadNone. if (flags & ECF_CONST) - // Since they write the return value through a pointer, - // 'sret' functions cannot be 'readnone'. - if (!ABIConverter.isStructReturn()) - RAttributes |= ParamAttr::ReadNone; + RAttributes |= ParamAttr::ReadNone; // Check for 'readonly' function attribute. if (flags & ECF_PURE && !(flags & ECF_CONST)) - // Since they write the return value through a pointer, - // 'sret' functions cannot be 'readonly'. - if (!ABIConverter.isStructReturn()) - RAttributes |= ParamAttr::ReadOnly; + RAttributes |= ParamAttr::ReadOnly; + // Since they write the return value through a pointer, + // 'sret' functions cannot be 'readnone' or 'readonly'. + if (ABIConverter.isStructReturn()) + RAttributes &= ~(ParamAttr::ReadNone|ParamAttr::ReadOnly); + // Compute whether the result needs to be zext or sext'd. RAttributes |= HandleArgumentExtension(TREE_TYPE(type)); @@ -1162,6 +1161,9 @@ LLVM_TARGET_INIT_REGPARM(local_regparam, type); #endif // LLVM_TARGET_ENABLE_REGPARM + // Keep track of whether we see a byval argument. + bool HasByVal = false; + // Check if we have a corresponding decl to inspect. tree DeclArgs = (decl) ? DECL_ARGUMENTS(decl) : NULL; // Loop over all of the arguments, adding them as we go. @@ -1208,13 +1210,25 @@ local_regparam); #endif // LLVM_TARGET_ENABLE_REGPARM - if (Attributes != ParamAttr::None) + if (Attributes != ParamAttr::None) { + HasByVal |= Attributes & ParamAttr::ByVal; Attrs.push_back(ParamAttrsWithIndex::get(ArgTypes.size(), Attributes)); + } if (DeclArgs) DeclArgs = TREE_CHAIN(DeclArgs); } + // If we see a byval argument and if the function is 'readonly' we have to + // demote the function to being 'readonly' instead. Not doing so would allow + // optimizers to delete stores into the argument that is passed into the + // function. + if (HasByVal && Attrs[0].index == 0 && + (Attrs[0].attrs & ParamAttr::ReadNone)) { + Attrs[0].attrs &= ~ParamAttr::ReadNone; + Attrs[0].attrs |= ParamAttr::ReadOnly; + } + // If the argument list ends with a void type node, it isn't vararg. isVarArg = (Args == 0); assert(RetTy && "Return type not specified!"); From evan.cheng at apple.com Fri Jan 25 17:02:28 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Fri, 25 Jan 2008 23:02:28 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46375 - /llvm-gcc-4.2/trunk/gcc/llvm-abi.h Message-ID: <200801252302.m0PN2SNc026235@zion.cs.uiuc.edu> Author: evancheng Date: Fri Jan 25 17:02:28 2008 New Revision: 46375 URL: http://llvm.org/viewvc/llvm-project?rev=46375&view=rev Log: Drop zero-sized aggregate arguments. Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46375&r1=46374&r2=46375&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Fri Jan 25 17:02:28 2008 @@ -120,6 +120,13 @@ } } +/// isAggregareOfSizeZero - Returns true if this is an aggregate with size zero. +/// +static bool isAggregareOfSizeZero(tree type) { + if (!isAggregateTreeType(type)) return false; + return int_size_in_bytes(type) == 0; +} + // LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR - Return true if this aggregate // value should be passed by value, i.e. passing its address with the byval // attribute bit set. The default is false. @@ -227,6 +234,9 @@ PassInMixedRegisters(type, Ty, Elts); } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { PassInIntegerRegisters(type, Ty); + } else if (isAggregareOfSizeZero(type)) { + // Zero sized aggregare, just drop it! + ; } else if (TREE_CODE(type) == RECORD_TYPE) { for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) if (TREE_CODE(Field) == FIELD_DECL) { From sabre at nondot.org Fri Jan 25 17:34:24 2008 From: sabre at nondot.org (Chris Lattner) Date: Fri, 25 Jan 2008 23:34:24 -0000 Subject: [llvm-commits] [llvm] r46377 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801252334.m0PNYPCU027349@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 17:34:24 2008 New Revision: 46377 URL: http://llvm.org/viewvc/llvm-project?rev=46377&view=rev Log: reduce indentation Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46377&r1=46376&r2=46377&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Jan 25 17:34:24 2008 @@ -582,49 +582,51 @@ SDOperand RV = combine(N); - if (RV.Val) { - ++NodesCombined; - // If we get back the same node we passed in, rather than a new node or - // zero, we know that the node must have defined multiple values and - // CombineTo was used. Since CombineTo takes care of the worklist - // mechanics for us, we have no work to do in this case. - if (RV.Val != N) { - assert(N->getOpcode() != ISD::DELETED_NODE && - RV.Val->getOpcode() != ISD::DELETED_NODE && - "Node was deleted but visit returned new node!"); + if (RV.Val == 0) + continue; + + ++NodesCombined; + // If we get back the same node we passed in, rather than a new node or + // zero, we know that the node must have defined multiple values and + // CombineTo was used. Since CombineTo takes care of the worklist + // mechanics for us, we have no work to do in this case. + if (RV.Val == N) + continue; + + assert(N->getOpcode() != ISD::DELETED_NODE && + RV.Val->getOpcode() != ISD::DELETED_NODE && + "Node was deleted but visit returned new node!"); - DOUT << "\nReplacing.3 "; DEBUG(N->dump(&DAG)); - DOUT << "\nWith: "; DEBUG(RV.Val->dump(&DAG)); - DOUT << '\n'; - std::vector NowDead; - if (N->getNumValues() == RV.Val->getNumValues()) - DAG.ReplaceAllUsesWith(N, RV.Val, &NowDead); - else { - assert(N->getValueType(0) == RV.getValueType() && "Type mismatch"); - SDOperand OpV = RV; - DAG.ReplaceAllUsesWith(N, &OpV, &NowDead); - } - - // Push the new node and any users onto the worklist - AddToWorkList(RV.Val); - AddUsersToWorkList(RV.Val); - - // Add any uses of the old node to the worklist in case this node is the - // last one that uses them. They may become dead after this node is - // deleted. - for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) - AddToWorkList(N->getOperand(i).Val); - - // Nodes can be reintroduced into the worklist. Make sure we do not - // process a node that has been replaced. - removeFromWorkList(N); - for (unsigned i = 0, e = NowDead.size(); i != e; ++i) - removeFromWorkList(NowDead[i]); - - // Finally, since the node is now dead, remove it from the graph. - DAG.DeleteNode(N); - } + DOUT << "\nReplacing.3 "; DEBUG(N->dump(&DAG)); + DOUT << "\nWith: "; DEBUG(RV.Val->dump(&DAG)); + DOUT << '\n'; + std::vector NowDead; + if (N->getNumValues() == RV.Val->getNumValues()) + DAG.ReplaceAllUsesWith(N, RV.Val, &NowDead); + else { + assert(N->getValueType(0) == RV.getValueType() && "Type mismatch"); + SDOperand OpV = RV; + DAG.ReplaceAllUsesWith(N, &OpV, &NowDead); } + + // Push the new node and any users onto the worklist + AddToWorkList(RV.Val); + AddUsersToWorkList(RV.Val); + + // Add any uses of the old node to the worklist in case this node is the + // last one that uses them. They may become dead after this node is + // deleted. + for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) + AddToWorkList(N->getOperand(i).Val); + + // Nodes can be reintroduced into the worklist. Make sure we do not + // process a node that has been replaced. + removeFromWorkList(N); + for (unsigned i = 0, e = NowDead.size(); i != e; ++i) + removeFromWorkList(NowDead[i]); + + // Finally, since the node is now dead, remove it from the graph. + DAG.DeleteNode(N); } // If the root changed (e.g. it was a dead load, update the root). From evan.cheng at apple.com Fri Jan 25 18:17:32 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Sat, 26 Jan 2008 00:17:32 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp Message-ID: <200801260017.m0Q0HWuQ028588@zion.cs.uiuc.edu> Author: evancheng Date: Fri Jan 25 18:17:32 2008 New Revision: 46381 URL: http://llvm.org/viewvc/llvm-project?rev=46381&view=rev Log: Also drop zero-sized aggregates during type conversion. Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h llvm-gcc-4.2/trunk/gcc/llvm-internal.h llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46381&r1=46380&r2=46381&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Fri Jan 25 18:17:32 2008 @@ -120,13 +120,6 @@ } } -/// isAggregareOfSizeZero - Returns true if this is an aggregate with size zero. -/// -static bool isAggregareOfSizeZero(tree type) { - if (!isAggregateTreeType(type)) return false; - return int_size_in_bytes(type) == 0; -} - // LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR - Return true if this aggregate // value should be passed by value, i.e. passing its address with the byval // attribute bit set. The default is false. @@ -234,7 +227,7 @@ PassInMixedRegisters(type, Ty, Elts); } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { PassInIntegerRegisters(type, Ty); - } else if (isAggregareOfSizeZero(type)) { + } else if (isAggregateOfSizeZero(type)) { // Zero sized aggregare, just drop it! ; } else if (TREE_CODE(type) == RECORD_TYPE) { Modified: llvm-gcc-4.2/trunk/gcc/llvm-internal.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-internal.h?rev=46381&r1=46380&r2=46381&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-internal.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-internal.h Fri Jan 25 18:17:32 2008 @@ -118,6 +118,10 @@ /// element added to match llvm struct type size and gcc struct type size. bool isPaddingElement(const Type *T, unsigned N); +/// isAggregateOfSizeZero - Returns true if this is an aggregate with size zero. +/// +bool isAggregateOfSizeZero(union tree_node*); + /// TypeConverter - Implement the converter from GCC types to LLVM types. /// class TypeConverter { Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46381&r1=46380&r2=46381&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Fri Jan 25 18:17:32 2008 @@ -1610,6 +1610,14 @@ } +/// isAggregateOfSizeZero - Returns true if this is an aggregate with size zero. +/// +bool isAggregateOfSizeZero(tree type) { + if (!isAggregateTreeType(type)) return false; + return int_size_in_bytes(type) == 0; +} + + /// Mapping from type to type-used-as-base-class and back. static DenseMap BaseTypesMap; @@ -2044,6 +2052,9 @@ unsigned FieldOffsetInBits = getFieldOffsetInBits(Field); tree FieldType = getDeclaredType(Field); + if (isAggregateOfSizeZero(FieldType)) + continue; + // If this is a bitfield, we may want to adjust the FieldOffsetInBits to // produce safe code. In particular, bitfields will be loaded/stored as // their *declared* type, not the smallest integer type that contains From evan.cheng at apple.com Fri Jan 25 18:35:27 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Fri, 25 Jan 2008 16:35:27 -0800 Subject: [llvm-commits] [llvm] r46372 - /llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c In-Reply-To: <200801252236.m0PMaP3H025489@zion.cs.uiuc.edu> References: <200801252236.m0PMaP3H025489@zion.cs.uiuc.edu> Message-ID: How would this test case pass if the target does not pass structs byval? Evan On Jan 25, 2008, at 2:36 PM, Chris Lattner wrote: > Author: lattner > Date: Fri Jan 25 16:36:24 2008 > New Revision: 46372 > > URL: http://llvm.org/viewvc/llvm-project?rev=46372&view=rev > Log: > add a testcase for a bug Duncan pointed out. > > Added: > llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c > > Added: llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/ > 2008-01-25-ByValReadNone.c?rev=46372&view=auto > > ====================================================================== > ======== > --- llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c (added) > +++ llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c Fri Jan 25 > 16:36:24 2008 > @@ -0,0 +1,10 @@ > +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep readonly > +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | not grep readnone > + > + > +// The struct being passed byval means that we need to mark the > +// function readonly instead of readnone. Readnone would allow > +// stores to the arg to be deleted in the caller. > +struct S { int A[1000]; }; > +int __attribute__ ((const)) f(struct S x) { return x.A[0]; } > + > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From evan.cheng at apple.com Fri Jan 25 18:35:43 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Sat, 26 Jan 2008 00:35:43 -0000 Subject: [llvm-commits] [llvm] r46382 - /llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Message-ID: <200801260035.m0Q0ZimO029138@zion.cs.uiuc.edu> Author: evancheng Date: Fri Jan 25 18:35:43 2008 New Revision: 46382 URL: http://llvm.org/viewvc/llvm-project?rev=46382&view=rev Log: New test case. Added: llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Added: llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c?rev=46382&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c (added) +++ llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Fri Jan 25 18:35:43 2008 @@ -0,0 +1,23 @@ +// RUN: %llvmgcc %s -S -o - + +// Aggregates of size zero should be dropped from argument list. +typedef long int Tlong; +struct S2411 { + __attribute__((aligned)) Tlong:0; +}; + +extern struct S2411 a2411[5]; +extern void checkx2411(struct S2411); +void test2411(void) { + checkx2411(a2411[0]); +} + +// A field that is an aggregates of size zero should be dropped during +// type conversion. +typedef unsigned long long int Tal2ullong __attribute__((aligned(2))); +struct S2525 { + Tal2ullong: 0; + struct { + } e; +}; +struct S2525 s2525; From sabre at nondot.org Fri Jan 25 19:05:42 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 01:05:42 -0000 Subject: [llvm-commits] [llvm] r46383 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Message-ID: <200801260105.m0Q15gKp029978@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 19:05:42 2008 New Revision: 46383 URL: http://llvm.org/viewvc/llvm-project?rev=46383&view=rev Log: don't bother making x&-1 only to simplify it in dag combine. This commonly occurs expanding i64 ops. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=46383&r1=46382&r2=46383&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Fri Jan 25 19:05:42 2008 @@ -1877,6 +1877,8 @@ // worth handling here. if (N2C && N2C->getValue() == 0) return N2; + if (N2C && N2C->isAllOnesValue()) // X & -1 -> X + return N1; break; case ISD::OR: case ISD::XOR: From sabre at nondot.org Fri Jan 25 19:09:19 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 01:09:19 -0000 Subject: [llvm-commits] [llvm] r46384 - in /llvm/trunk: lib/CodeGen/SelectionDAG/DAGCombiner.cpp test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll Message-ID: <200801260109.m0Q19JoJ030086@zion.cs.uiuc.edu> Author: lattner Date: Fri Jan 25 19:09:19 2008 New Revision: 46384 URL: http://llvm.org/viewvc/llvm-project?rev=46384&view=rev Log: Fix some bugs in SimplifyNodeWithTwoResults where it would call deletenode to delete a node even if it was not dead in some cases. Instead, just add it to the worklist. Also, make sure to use the CombineTo methods, as it was doing things that were unsafe: the top level combine loop could touch dangling memory. This fixes CodeGen/Generic/2008-01-25-dag-combine-mul.ll Added: llvm/trunk/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46384&r1=46383&r2=46384&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Jan 25 19:09:19 2008 @@ -277,7 +277,8 @@ bool NotExtCompare = false); SDOperand SimplifySetCC(MVT::ValueType VT, SDOperand N0, SDOperand N1, ISD::CondCode Cond, bool foldBooleans = true); - bool SimplifyNodeWithTwoResults(SDNode *N, unsigned LoOp, unsigned HiOp); + SDOperand SimplifyNodeWithTwoResults(SDNode *N, unsigned LoOp, + unsigned HiOp); SDOperand ConstantFoldBIT_CONVERTofBUILD_VECTOR(SDNode *, MVT::ValueType); SDOperand BuildSDIV(SDNode *N); SDOperand BuildUDIV(SDNode *N); @@ -586,6 +587,7 @@ continue; ++NodesCombined; + // If we get back the same node we passed in, rather than a new node or // zero, we know that the node must have defined multiple values and // CombineTo was used. Since CombineTo takes care of the worklist @@ -604,7 +606,8 @@ if (N->getNumValues() == RV.Val->getNumValues()) DAG.ReplaceAllUsesWith(N, RV.Val, &NowDead); else { - assert(N->getValueType(0) == RV.getValueType() && "Type mismatch"); + assert(N->getValueType(0) == RV.getValueType() && + N->getNumValues() == 1 && "Type mismatch"); SDOperand OpV = RV; DAG.ReplaceAllUsesWith(N, &OpV, &NowDead); } @@ -1311,6 +1314,7 @@ // X%C to the equivalent of X-X/C*C. if (N1C && !N1C->isNullValue()) { SDOperand Div = DAG.getNode(ISD::SDIV, VT, N0, N1); + AddToWorkList(Div.Val); SDOperand OptimizedDiv = combine(Div.Val); if (OptimizedDiv.Val && OptimizedDiv.Val != Div.Val) { SDOperand Mul = DAG.getNode(ISD::MUL, VT, OptimizedDiv, N1); @@ -1421,18 +1425,16 @@ /// compute two values. LoOp and HiOp give the opcodes for the two computations /// that are being performed. Return true if a simplification was made. /// -bool DAGCombiner::SimplifyNodeWithTwoResults(SDNode *N, - unsigned LoOp, unsigned HiOp) { +SDOperand DAGCombiner::SimplifyNodeWithTwoResults(SDNode *N, unsigned LoOp, + unsigned HiOp) { // If the high half is not needed, just compute the low half. bool HiExists = N->hasAnyUseOfValue(1); if (!HiExists && (!AfterLegalize || TLI.isOperationLegal(LoOp, N->getValueType(0)))) { - DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 0), - DAG.getNode(LoOp, N->getValueType(0), - N->op_begin(), - N->getNumOperands())); - return true; + SDOperand Res = DAG.getNode(LoOp, N->getValueType(0), N->op_begin(), + N->getNumOperands()); + return CombineTo(N, Res, Res); } // If the low half is not needed, just compute the high half. @@ -1440,74 +1442,62 @@ if (!LoExists && (!AfterLegalize || TLI.isOperationLegal(HiOp, N->getValueType(1)))) { - DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 1), - DAG.getNode(HiOp, N->getValueType(1), - N->op_begin(), - N->getNumOperands())); - return true; + SDOperand Res = DAG.getNode(HiOp, N->getValueType(1), N->op_begin(), + N->getNumOperands()); + return CombineTo(N, Res, Res); } // If both halves are used, return as it is. if (LoExists && HiExists) - return false; + return SDOperand(); // If the two computed results can be simplified separately, separate them. - bool RetVal = false; if (LoExists) { SDOperand Lo = DAG.getNode(LoOp, N->getValueType(0), N->op_begin(), N->getNumOperands()); + AddToWorkList(Lo.Val); SDOperand LoOpt = combine(Lo.Val); - if (LoOpt.Val && LoOpt != Lo && - TLI.isOperationLegal(LoOpt.getOpcode(), LoOpt.getValueType())) { - RetVal = true; - DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 0), LoOpt); - } else - DAG.DeleteNode(Lo.Val); + if (LoOpt.Val && LoOpt.Val != Lo.Val && + TLI.isOperationLegal(LoOpt.getOpcode(), LoOpt.getValueType())) + return CombineTo(N, LoOpt, LoOpt); } if (HiExists) { SDOperand Hi = DAG.getNode(HiOp, N->getValueType(1), N->op_begin(), N->getNumOperands()); + AddToWorkList(Hi.Val); SDOperand HiOpt = combine(Hi.Val); if (HiOpt.Val && HiOpt != Hi && - TLI.isOperationLegal(HiOpt.getOpcode(), HiOpt.getValueType())) { - RetVal = true; - DAG.ReplaceAllUsesOfValueWith(SDOperand(N, 1), HiOpt); - } else - DAG.DeleteNode(Hi.Val); + TLI.isOperationLegal(HiOpt.getOpcode(), HiOpt.getValueType())) + return CombineTo(N, HiOpt, HiOpt); } - - return RetVal; + return SDOperand(); } SDOperand DAGCombiner::visitSMUL_LOHI(SDNode *N) { - - if (SimplifyNodeWithTwoResults(N, ISD::MUL, ISD::MULHS)) - return SDOperand(); + SDOperand Res = SimplifyNodeWithTwoResults(N, ISD::MUL, ISD::MULHS); + if (Res.Val) return Res; return SDOperand(); } SDOperand DAGCombiner::visitUMUL_LOHI(SDNode *N) { - - if (SimplifyNodeWithTwoResults(N, ISD::MUL, ISD::MULHU)) - return SDOperand(); + SDOperand Res = SimplifyNodeWithTwoResults(N, ISD::MUL, ISD::MULHU); + if (Res.Val) return Res; return SDOperand(); } SDOperand DAGCombiner::visitSDIVREM(SDNode *N) { - - if (SimplifyNodeWithTwoResults(N, ISD::SDIV, ISD::SREM)) - return SDOperand(); + SDOperand Res = SimplifyNodeWithTwoResults(N, ISD::SDIV, ISD::SREM); + if (Res.Val) return Res; return SDOperand(); } SDOperand DAGCombiner::visitUDIVREM(SDNode *N) { - - if (SimplifyNodeWithTwoResults(N, ISD::UDIV, ISD::UREM)) - return SDOperand(); + SDOperand Res = SimplifyNodeWithTwoResults(N, ISD::UDIV, ISD::UREM); + if (Res.Val) return Res; return SDOperand(); } Added: llvm/trunk/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll?rev=46384&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll (added) +++ llvm/trunk/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll Fri Jan 25 19:09:19 2008 @@ -0,0 +1,31 @@ +; RUN: llvm-as < %s | llc +; rdar://5707064 + +define i32 @f(i16* %pc) { +entry: + %acc = alloca i64, align 8 ; [#uses=4] + %tmp97 = load i64* %acc, align 8 ; [#uses=1] + %tmp98 = and i64 %tmp97, 4294967295 ; [#uses=1] + %tmp99 = load i64* null, align 8 ; [#uses=1] + %tmp100 = and i64 %tmp99, 4294967295 ; [#uses=1] + %tmp101 = mul i64 %tmp98, %tmp100 ; [#uses=1] + %tmp103 = lshr i64 %tmp101, 0 ; [#uses=1] + %tmp104 = load i64* %acc, align 8 ; [#uses=1] + %.cast105 = zext i32 32 to i64 ; [#uses=1] + %tmp106 = lshr i64 %tmp104, %.cast105 ; [#uses=1] + %tmp107 = load i64* null, align 8 ; [#uses=1] + %tmp108 = and i64 %tmp107, 4294967295 ; [#uses=1] + %tmp109 = mul i64 %tmp106, %tmp108 ; [#uses=1] + %tmp112 = add i64 %tmp109, 0 ; [#uses=1] + %tmp116 = add i64 %tmp112, 0 ; [#uses=1] + %tmp117 = add i64 %tmp103, %tmp116 ; [#uses=1] + %tmp118 = load i64* %acc, align 8 ; [#uses=1] + %tmp120 = lshr i64 %tmp118, 0 ; [#uses=1] + %tmp121 = load i64* null, align 8 ; [#uses=1] + %tmp123 = lshr i64 %tmp121, 0 ; [#uses=1] + %tmp124 = mul i64 %tmp120, %tmp123 ; [#uses=1] + %tmp126 = shl i64 %tmp124, 0 ; [#uses=1] + %tmp127 = add i64 %tmp117, %tmp126 ; [#uses=1] + store i64 %tmp127, i64* %acc, align 8 + ret i32 0 +} From clattner at apple.com Fri Jan 25 19:18:18 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 17:18:18 -0800 Subject: [llvm-commits] [llvm] r46372 - /llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c In-Reply-To: References: <200801252236.m0PMaP3H025489@zion.cs.uiuc.edu> Message-ID: <0934BB1F-54E5-4186-8A89-EB5ADB6C9275@apple.com> On Jan 25, 2008, at 4:35 PM, Evan Cheng wrote: > How would this test case pass if the target does not pass structs > byval? That's why I picked a big struct. :) -Chris > > Evan > > On Jan 25, 2008, at 2:36 PM, Chris Lattner wrote: > >> Author: lattner >> Date: Fri Jan 25 16:36:24 2008 >> New Revision: 46372 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46372&view=rev >> Log: >> add a testcase for a bug Duncan pointed out. >> >> Added: >> llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c >> >> Added: llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c >> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/ >> 2008-01-25-ByValReadNone.c?rev=46372&view=auto >> >> = >> ===================================================================== >> ======== >> --- llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c (added) >> +++ llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c Fri Jan 25 >> 16:36:24 2008 >> @@ -0,0 +1,10 @@ >> +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | grep readonly >> +// RUN: %llvmgcc -O3 -S -o - -emit-llvm %s | not grep readnone >> + >> + >> +// The struct being passed byval means that we need to mark the >> +// function readonly instead of readnone. Readnone would allow >> +// stores to the arg to be deleted in the caller. >> +struct S { int A[1000]; }; >> +int __attribute__ ((const)) f(struct S x) { return x.A[0]; } >> + >> >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From clattner at apple.com Fri Jan 25 19:19:33 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 17:19:33 -0800 Subject: [llvm-commits] [llvm] r46360 - /llvm/trunk/include/llvm/CodeGen/MachineFrameInfo.h In-Reply-To: References: <200801251749.m0PHnfY7015069@zion.cs.uiuc.edu> Message-ID: <2924D9B0-03DA-4C92-B6C1-87FEC95BC6A9@apple.com> On Jan 25, 2008, at 2:05 PM, Dale Johannesen wrote: > > On Jan 25, 2008, at 9:49 AM, Chris Lattner wrote: > >> Author: lattner >> Date: Fri Jan 25 11:49:41 2008 >> New Revision: 46360 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46360&view=rev >> Log: >> Reorder a field to reduce the size of StackObject. Note that this >> may require a clean rebuild on leopard. :( > > Does this indicate a bug in the header dependency machinery? I think it's a bug in leopard make or in something else leopard related. I started noticing these problems when I upgrade my machines. -Chris From dpatel at apple.com Fri Jan 25 19:21:48 2008 From: dpatel at apple.com (Devang Patel) Date: Sat, 26 Jan 2008 01:21:48 -0000 Subject: [llvm-commits] [llvm] r46385 - /llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Message-ID: <200801260121.m0Q1LmRO030492@zion.cs.uiuc.edu> Author: dpatel Date: Fri Jan 25 19:21:48 2008 New Revision: 46385 URL: http://llvm.org/viewvc/llvm-project?rev=46385&view=rev Log: Add another testcase. Modified: llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Modified: llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c?rev=46385&r1=46384&r2=46385&view=diff ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c (original) +++ llvm/trunk/test/CFrontend/2008-01-25-ZeroSizedAggregate.c Fri Jan 25 19:21:48 2008 @@ -21,3 +21,11 @@ } e; }; struct S2525 s2525; + +struct { + signed char f; + char :0; + struct{}h; + char * i[5]; +} data; + From isanbard at gmail.com Fri Jan 25 19:43:44 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 01:43:44 -0000 Subject: [llvm-commits] [llvm] r46387 - in /llvm/trunk: lib/Transforms/Scalar/SimplifyCFG.cpp test/CFrontend/2008-01-25-EmptyFunction.c Message-ID: <200801260143.m0Q1hjDo031115@zion.cs.uiuc.edu> Author: void Date: Fri Jan 25 19:43:44 2008 New Revision: 46387 URL: http://llvm.org/viewvc/llvm-project?rev=46387&view=rev Log: If we have a function like this: void bork() { int *address = 0; *address = 0; } It's compiled into LLVM code that looks like this: define void @bork() noreturn nounwind { entry: unreachable } This is bad on some platforms (like PPC) because it will generate the label for the function but no body. The label could end up being associated with some non-code related stuff, like a section. This places a "trap" instruction if the SimplifyCFG pass removed all code from the function leaving only one "unreachable" instruction. Added: llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c Modified: llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp Modified: llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp?rev=46387&r1=46386&r2=46387&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp Fri Jan 25 19:43:44 2008 @@ -26,6 +26,7 @@ #include "llvm/Transforms/Utils/Local.h" #include "llvm/Constants.h" #include "llvm/Instructions.h" +#include "llvm/Intrinsics.h" #include "llvm/Module.h" #include "llvm/ParameterAttributes.h" #include "llvm/Support/CFG.h" @@ -154,8 +155,20 @@ bool Changed = MarkAliveBlocks(F.begin(), Reachable); // If there are unreachable blocks in the CFG... - if (Reachable.size() == F.size()) + if (Reachable.size() == F.size()) { + if (F.size() == 1) { + // If the function has only one block with an "unreachable" instruction, + // then we should create *some* code for it. Issue a "trap" instead. + BasicBlock &BB = F.front(); + + if (BB.size() == 1 && dyn_cast(&BB.front())) + new CallInst(Intrinsic::getDeclaration(F.getParent(), + Intrinsic::trap), + "", &BB.front()); + } + return Changed; + } assert(Reachable.size() < F.size()); NumSimpl += F.size()-Reachable.size(); Added: llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c?rev=46387&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c (added) +++ llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c Fri Jan 25 19:43:44 2008 @@ -0,0 +1,7 @@ +// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep llvm.trap +// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep unreachable + +void bork() { + int *address = 0; + *address = 0; +} From clattner at apple.com Fri Jan 25 21:26:56 2008 From: clattner at apple.com (Chris Lattner) Date: Fri, 25 Jan 2008 19:26:56 -0800 Subject: [llvm-commits] [llvm] r46387 - in /llvm/trunk: lib/Transforms/Scalar/SimplifyCFG.cpp test/CFrontend/2008-01-25-EmptyFunction.c In-Reply-To: <200801260143.m0Q1hjDo031115@zion.cs.uiuc.edu> References: <200801260143.m0Q1hjDo031115@zion.cs.uiuc.edu> Message-ID: <2FFE098C-F8DA-4CC1-920F-790966512295@apple.com> On Jan 25, 2008, at 5:43 PM, Bill Wendling wrote: > URL: http://llvm.org/viewvc/llvm-project?rev=46387&view=rev > Log: > If we have a function like this: > > This is bad on some platforms (like PPC) because it will generate > the label for > the function but no body. The label could end up being associated > with some > non-code related stuff, like a section. This places a "trap" > instruction if the > SimplifyCFG pass removed all code from the function leaving only one > "unreachable" instruction. This is a darwin-specific hack, so it needs to be conditionalized on the target. Second, this should only be done if there are zero machineinstrs, not zero llvm instrs. > // If there are unreachable blocks in the CFG... > - if (Reachable.size() == F.size()) > + if (Reachable.size() == F.size()) { > + if (F.size() == 1) { F.size() is linear time, so you shouldn't call it here if you don't need it. Why are you doing this in the Reachable.size() == F.size() case? > + // If the function has only one block with an "unreachable" > instruction, > + // then we should create *some* code for it. Issue a "trap" > instead. > + BasicBlock &BB = F.front(); > + > + if (BB.size() == 1 && dyn_cast(&BB.front())) Only use dyn_cast if you want the result: use isa in this case. BB.size() is also linear time. Finally, the testcase you added was for llvm-gcc, this is a codegen thing so it should be in test/CodeGen/* and should only run llc. -Chris From baldrick at free.fr Fri Jan 25 23:27:18 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 05:27:18 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46390 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801260527.m0Q5RIB9005663@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 23:27:18 2008 New Revision: 46390 URL: http://llvm.org/viewvc/llvm-project?rev=46390&view=rev Log: Correct comment. Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46390&r1=46389&r2=46390&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Fri Jan 25 23:27:18 2008 @@ -1219,7 +1219,7 @@ DeclArgs = TREE_CHAIN(DeclArgs); } - // If we see a byval argument and if the function is 'readonly' we have to + // If we see a byval argument and if the function is 'readnone' we have to // demote the function to being 'readonly' instead. Not doing so would allow // optimizers to delete stores into the argument that is passed into the // function. @@ -1228,7 +1228,7 @@ Attrs[0].attrs &= ~ParamAttr::ReadNone; Attrs[0].attrs |= ParamAttr::ReadOnly; } - + // If the argument list ends with a void type node, it isn't vararg. isVarArg = (Args == 0); assert(RetTy && "Return type not specified!"); From baldrick at free.fr Fri Jan 25 23:33:48 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 05:33:48 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46391 - /llvm-gcc-4.2/trunk/gcc/llvm-abi.h Message-ID: <200801260533.m0Q5XmhL005886@zion.cs.uiuc.edu> Author: baldrick Date: Fri Jan 25 23:33:48 2008 New Revision: 46391 URL: http://llvm.org/viewvc/llvm-project?rev=46391&view=rev Log: Correct spelling. Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46391&r1=46390&r2=46391&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Fri Jan 25 23:33:48 2008 @@ -228,7 +228,7 @@ } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { PassInIntegerRegisters(type, Ty); } else if (isAggregateOfSizeZero(type)) { - // Zero sized aggregare, just drop it! + // Zero sized aggregate, just drop it! ; } else if (TREE_CODE(type) == RECORD_TYPE) { for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) From baldrick at free.fr Fri Jan 25 23:58:51 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 06:58:51 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46373 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801252237.m0PMbVat025526@zion.cs.uiuc.edu> References: <200801252237.m0PMbVat025526@zion.cs.uiuc.edu> Message-ID: <200801260658.53946.baldrick@free.fr> > If a function takes a byval parameter, it can't be readnone, we > have to mark it readonly instead. This fixes > test/CFrontend/2008-01-25-ByValReadNone.c Thanks for doing this! Duncan. From baldrick at free.fr Sat Jan 26 00:03:13 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 06:03:13 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46392 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801260603.m0Q63D5c006887@zion.cs.uiuc.edu> Author: baldrick Date: Sat Jan 26 00:03:12 2008 New Revision: 46392 URL: http://llvm.org/viewvc/llvm-project?rev=46392&view=rev Log: Silence a warning. Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46392&r1=46391&r2=46392&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Sat Jan 26 00:03:12 2008 @@ -1796,7 +1796,7 @@ return false; } else if (TYPE_USER_ALIGN(TREE_TYPE(Field)) - && DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) + && (unsigned)DECL_ALIGN_UNIT(Field) != Info.getTypeAlignment(Ty) && !Info.isPacked()) { // If Field has user defined alignment and it does not match Ty alignment // then convert to a packed struct and try again. From baldrick at free.fr Sat Jan 26 00:25:02 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 07:25:02 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp Message-ID: <200801260725.03963.baldrick@free.fr> Hi Evan, dropping zero sized aggregates from types http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080121/057570.html broke the Ada build. A zero-sized aggregate is used in a COMPONENT_REF, so llvm-convert barfs because it can't find the corresponding LLVM field. All gcc fields should have a corresponding LLVM field - the only exception we make is for fields at variable offsets. I would like to keep it that way unless you really can't solve this differently. Best wishes, Duncan. From baldrick at free.fr Sat Jan 26 00:41:49 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 06:41:49 -0000 Subject: [llvm-commits] [llvm] r46393 - in /llvm/trunk: lib/Transforms/Utils/InlineFunction.cpp test/CFrontend/2008-01-26-ReadOnlyByVal.c Message-ID: <200801260641.m0Q6fnrT008349@zion.cs.uiuc.edu> Author: baldrick Date: Sat Jan 26 00:41:49 2008 New Revision: 46393 URL: http://llvm.org/viewvc/llvm-project?rev=46393&view=rev Log: Create an explicit copy for byval parameters even when inlining a readonly function. Added: llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=46393&r1=46392&r2=46393&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original) +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Sat Jan 26 00:41:49 2008 @@ -240,12 +240,15 @@ E = CalledFunc->arg_end(); I != E; ++I, ++AI, ++ArgNo) { Value *ActualArg = *AI; - // When byval arguments actually inlined, we need to make the copy implied - // by them explicit. However, we don't do this if the callee is readonly - // or readnone, because the copy would be unneeded: the callee doesn't - // modify the struct. - if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal) && - !CalledFunc->onlyReadsMemory()) { + // When byval arguments are inlined, we need to make the copy implied + // by them explicit. It is tempting to think that this is not needed if + // the callee is readonly, because the callee doesn't modify the struct. + // However this would be wrong: readonly means that any writes the callee + // performs are not visible to the caller. But writes by the callee to + // an argument passed byval are by definition not visible to the caller! + // Since we allow this kind of readonly function, there needs to be an + // explicit copy in order to keep the writes invisible after inlining. + if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal)) { const Type *AggTy = cast(I->getType())->getElementType(); const Type *VoidPtrTy = PointerType::getUnqual(Type::Int8Ty); Added: llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c?rev=46393&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c (added) +++ llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c Sat Jan 26 00:41:49 2008 @@ -0,0 +1,19 @@ +// RUN: %llvmgcc %s -S -O1 -o - | llvm-as | opt -std-compile-opts | llvm-dis | not grep add + +struct S { int A; int B; int C; int D; }; + +int f(struct S x) __attribute__ ((const)); + +static int __attribute__ ((const)) g(struct S x) { + x.A = x.B; + return f(x); +} + +int h(void) { + struct S x; + int r; + x.A = 0; + x.B = 9; + r = g(x); + return r + x.A; +} From isanbard at gmail.com Sat Jan 26 00:51:24 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 06:51:24 -0000 Subject: [llvm-commits] [llvm] r46394 - in /llvm/trunk/lib: Target/PowerPC/PPCAsmPrinter.cpp Transforms/Scalar/SimplifyCFG.cpp Message-ID: <200801260651.m0Q6pO7r008599@zion.cs.uiuc.edu> Author: void Date: Sat Jan 26 00:51:24 2008 New Revision: 46394 URL: http://llvm.org/viewvc/llvm-project?rev=46394&view=rev Log: If there are no machine instructions emitted for a function, then insert a "nop" instruction so that we don't have the function's label associated with something that it's not supposed to be associated with. Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=46394&r1=46393&r2=46394&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Sat Jan 26 00:51:24 2008 @@ -30,6 +30,7 @@ #include "llvm/CodeGen/MachineModuleInfo.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineInstr.h" +#include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/Support/Mangler.h" #include "llvm/Support/MathExtras.h" #include "llvm/Support/CommandLine.h" @@ -813,6 +814,18 @@ // Emit pre-function debug information. DW.BeginFunction(&MF); + // If the function is empty, then we need to emit *something*. Otherwise, the + // function's label might be associated with something that it wasn't meant to + // be associated with. We emit a noop in this situation. + MachineFunction::iterator I = MF.begin(); + + if (++I == MF.end()) { + MachineBasicBlock &MBB = MF.front(); + + if (MBB.begin() == MBB.end()) + BuildMI(MBB, MBB.end(), TM.getInstrInfo()->get(PPC::NOP)); + } + // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { @@ -821,8 +834,8 @@ printBasicBlockLabel(I, true); O << '\n'; } - for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); - II != E; ++II) { + for (MachineBasicBlock::const_iterator II = I->begin(), IE = I->end(); + II != IE; ++II) { // Print the assembly for the instruction. O << "\t"; printMachineInstruction(II); Modified: llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp?rev=46394&r1=46393&r2=46394&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/SimplifyCFG.cpp Sat Jan 26 00:51:24 2008 @@ -26,7 +26,6 @@ #include "llvm/Transforms/Utils/Local.h" #include "llvm/Constants.h" #include "llvm/Instructions.h" -#include "llvm/Intrinsics.h" #include "llvm/Module.h" #include "llvm/ParameterAttributes.h" #include "llvm/Support/CFG.h" @@ -155,20 +154,8 @@ bool Changed = MarkAliveBlocks(F.begin(), Reachable); // If there are unreachable blocks in the CFG... - if (Reachable.size() == F.size()) { - if (F.size() == 1) { - // If the function has only one block with an "unreachable" instruction, - // then we should create *some* code for it. Issue a "trap" instead. - BasicBlock &BB = F.front(); - - if (BB.size() == 1 && dyn_cast(&BB.front())) - new CallInst(Intrinsic::getDeclaration(F.getParent(), - Intrinsic::trap), - "", &BB.front()); - } - + if (Reachable.size() == F.size()) return Changed; - } assert(Reachable.size() < F.size()); NumSimpl += F.size()-Reachable.size(); From isanbard at gmail.com Sat Jan 26 00:53:06 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 06:53:06 -0000 Subject: [llvm-commits] [llvm] r46395 - in /llvm/trunk/test: CFrontend/2008-01-25-EmptyFunction.c CodeGen/PowerPC/2008-01-25-EmptyFunction.c Message-ID: <200801260653.m0Q6r6UE008679@zion.cs.uiuc.edu> Author: void Date: Sat Jan 26 00:53:06 2008 New Revision: 46395 URL: http://llvm.org/viewvc/llvm-project?rev=46395&view=rev Log: Move testcase to the code gen directory. Added: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c - copied unchanged from r46390, llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c Removed: llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c Removed: llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c?rev=46394&view=auto ============================================================================== --- llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c (original) +++ llvm/trunk/test/CFrontend/2008-01-25-EmptyFunction.c (removed) @@ -1,7 +0,0 @@ -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep llvm.trap -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep unreachable - -void bork() { - int *address = 0; - *address = 0; -} From isanbard at gmail.com Sat Jan 26 00:53:40 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 06:53:40 -0000 Subject: [llvm-commits] [llvm] r46396 - in /llvm/trunk/test/CodeGen/PowerPC: 2008-01-25-EmptyFunction.c 2008-01-25-EmptyFunction.ll Message-ID: <200801260653.m0Q6reQv008738@zion.cs.uiuc.edu> Author: void Date: Sat Jan 26 00:53:40 2008 New Revision: 46396 URL: http://llvm.org/viewvc/llvm-project?rev=46396&view=rev Log: Rename the .c to .ll Added: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll - copied unchanged from r46395, llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c Removed: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c Removed: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c?rev=46395&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c (original) +++ llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.c (removed) @@ -1,7 +0,0 @@ -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep llvm.trap -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep unreachable - -void bork() { - int *address = 0; - *address = 0; -} From isanbard at gmail.com Sat Jan 26 00:56:08 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 06:56:08 -0000 Subject: [llvm-commits] [llvm] r46397 - /llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll Message-ID: <200801260656.m0Q6u8oJ008831@zion.cs.uiuc.edu> Author: void Date: Sat Jan 26 00:56:08 2008 New Revision: 46397 URL: http://llvm.org/viewvc/llvm-project?rev=46397&view=rev Log: Need to convert to LLVM code and not C. Modified: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll Modified: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll?rev=46397&r1=46396&r2=46397&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll (original) +++ llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll Sat Jan 26 00:56:08 2008 @@ -1,7 +1,6 @@ -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep llvm.trap -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep unreachable +; RUN: llvm-as < %s | llc -march=ppc32 | grep nop -void bork() { - int *address = 0; - *address = 0; +define void @bork() noreturn nounwind { +entry: + unreachable } From isanbard at gmail.com Sat Jan 26 01:01:37 2008 From: isanbard at gmail.com (Bill Wendling) Date: Fri, 25 Jan 2008 23:01:37 -0800 Subject: [llvm-commits] [llvm] r46387 - in /llvm/trunk: lib/Transforms/Scalar/SimplifyCFG.cpp test/CFrontend/2008-01-25-EmptyFunction.c In-Reply-To: <2FFE098C-F8DA-4CC1-920F-790966512295@apple.com> References: <200801260143.m0Q1hjDo031115@zion.cs.uiuc.edu> <2FFE098C-F8DA-4CC1-920F-790966512295@apple.com> Message-ID: <7E6D4555-46B7-4B0C-BED5-1D347F112EAE@gmail.com> Okay. On Jan 25, 2008, at 7:26 PM, Chris Lattner wrote: > On Jan 25, 2008, at 5:43 PM, Bill Wendling wrote: >> URL: http://llvm.org/viewvc/llvm-project?rev=46387&view=rev >> Log: >> If we have a function like this: >> >> This is bad on some platforms (like PPC) because it will generate >> the label for >> the function but no body. The label could end up being associated >> with some >> non-code related stuff, like a section. This places a "trap" >> instruction if the >> SimplifyCFG pass removed all code from the function leaving only one >> "unreachable" instruction. > > This is a darwin-specific hack, so it needs to be conditionalized on > the target. Second, this should only be done if there are zero > machineinstrs, not zero llvm instrs. > >> // If there are unreachable blocks in the CFG... >> - if (Reachable.size() == F.size()) >> + if (Reachable.size() == F.size()) { >> + if (F.size() == 1) { > > F.size() is linear time, so you shouldn't call it here if you don't > need it. Why are you doing this in the Reachable.size() == F.size() > case? > >> + // If the function has only one block with an "unreachable" >> instruction, >> + // then we should create *some* code for it. Issue a "trap" >> instead. >> + BasicBlock &BB = F.front(); >> + >> + if (BB.size() == 1 && dyn_cast(&BB.front())) > > Only use dyn_cast if you want the result: use isa in this case. > BB.size() is also linear time. > > Finally, the testcase you added was for llvm-gcc, this is a codegen > thing so it should be in test/CodeGen/* and should only run llc. > > -Chris > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From sabre at nondot.org Sat Jan 26 02:17:14 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 00:17:14 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46373 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801260658.53946.baldrick@free.fr> References: <200801252237.m0PMbVat025526@zion.cs.uiuc.edu> <200801260658.53946.baldrick@free.fr> Message-ID: <5BAC6E20-AAE1-46BA-8F53-0EBD73EFC01D@nondot.org> On Jan 25, 2008, at 9:58 PM, Duncan Sands wrote: >> If a function takes a byval parameter, it can't be readnone, we >> have to mark it readonly instead. This fixes >> test/CFrontend/2008-01-25-ByValReadNone.c > > Thanks for doing this! No problem, thanks for pointing out that it needed to be done. It would be nice if globalsmodref inferred that functions which only store to their byval args are really readnone. -Chris From clattner at apple.com Sat Jan 26 02:19:00 2008 From: clattner at apple.com (Chris Lattner) Date: Sat, 26 Jan 2008 00:19:00 -0800 Subject: [llvm-commits] [llvm] r46393 - in /llvm/trunk: lib/Transforms/Utils/InlineFunction.cpp test/CFrontend/2008-01-26-ReadOnlyByVal.c In-Reply-To: <200801260641.m0Q6fnrT008349@zion.cs.uiuc.edu> References: <200801260641.m0Q6fnrT008349@zion.cs.uiuc.edu> Message-ID: <89322349-C2E4-4CCE-B827-6FB5E07A00A8@apple.com> On Jan 25, 2008, at 10:41 PM, Duncan Sands wrote: > Author: baldrick > Date: Sat Jan 26 00:41:49 2008 > New Revision: 46393 > > URL: http://llvm.org/viewvc/llvm-project?rev=46393&view=rev > Log: > Create an explicit copy for byval parameters even > when inlining a readonly function. Are you sure this is correct? There is a difference between 'const', 'pure' and readnone/readonly. Further, isn't it always safe to elide the copy for readnone functions? -Chris > > > Added: > llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c > Modified: > llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp > > Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=46393&r1=46392&r2=46393&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original) > +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Sat Jan 26 > 00:41:49 2008 > @@ -240,12 +240,15 @@ > E = CalledFunc->arg_end(); I != E; ++I, ++AI, ++ArgNo) { > Value *ActualArg = *AI; > > - // When byval arguments actually inlined, we need to make the > copy implied > - // by them explicit. However, we don't do this if the callee > is readonly > - // or readnone, because the copy would be unneeded: the > callee doesn't > - // modify the struct. > - if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal) && > - !CalledFunc->onlyReadsMemory()) { > + // When byval arguments are inlined, we need to make the copy > implied > + // by them explicit. It is tempting to think that this is > not needed if > + // the callee is readonly, because the callee doesn't modify > the struct. > + // However this would be wrong: readonly means that any > writes the callee > + // performs are not visible to the caller. But writes by the > callee to > + // an argument passed byval are by definition not visible to > the caller! > + // Since we allow this kind of readonly function, there needs > to be an > + // explicit copy in order to keep the writes invisible after > inlining. > + if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal)) { > const Type *AggTy = cast(I->getType())- > >getElementType(); > const Type *VoidPtrTy = PointerType::getUnqual(Type::Int8Ty); > > > Added: llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c?rev=46393&view=auto > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c (added) > +++ llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c Sat Jan 26 > 00:41:49 2008 > @@ -0,0 +1,19 @@ > +// RUN: %llvmgcc %s -S -O1 -o - | llvm-as | opt -std-compile-opts | > llvm-dis | not grep add > + > +struct S { int A; int B; int C; int D; }; > + > +int f(struct S x) __attribute__ ((const)); > + > +static int __attribute__ ((const)) g(struct S x) { > + x.A = x.B; > + return f(x); > +} > + > +int h(void) { > + struct S x; > + int r; > + x.A = 0; > + x.B = 9; > + r = g(x); > + return r + x.A; > +} > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From clattner at apple.com Sat Jan 26 02:21:12 2008 From: clattner at apple.com (Chris Lattner) Date: Sat, 26 Jan 2008 00:21:12 -0800 Subject: [llvm-commits] [llvm] r46394 - in /llvm/trunk/lib: Target/PowerPC/PPCAsmPrinter.cpp Transforms/Scalar/SimplifyCFG.cpp In-Reply-To: <200801260651.m0Q6pO7r008599@zion.cs.uiuc.edu> References: <200801260651.m0Q6pO7r008599@zion.cs.uiuc.edu> Message-ID: <59E44561-2C78-46E2-97A1-0238929DBAD4@apple.com> On Jan 25, 2008, at 10:51 PM, Bill Wendling wrote: > Author: void > Date: Sat Jan 26 00:51:24 2008 > New Revision: 46394 > > URL: http://llvm.org/viewvc/llvm-project?rev=46394&view=rev > Log: > If there are no machine instructions emitted for a function, then > insert > a "nop" instruction so that we don't have the function's label > associated > with something that it's not supposed to be associated with. Thanks Bill, this is looking better. Some thoughts: > + // If the function is empty, then we need to emit *something*. > Otherwise, the > + // function's label might be associated with something that it > wasn't meant to > + // be associated with. We emit a noop in this situation. > + MachineFunction::iterator I = MF.begin(); > + > + if (++I == MF.end()) { > + MachineBasicBlock &MBB = MF.front(); > + > + if (MBB.begin() == MBB.end()) You can use MBB.empty() > > + BuildMI(MBB, MBB.end(), TM.getInstrInfo()->get(PPC::NOP)); > + } Is there any reason to actually make a machineinstr here? It seems like it would be possible to just emit "nop" to the .s file. The JIT doesn't need this. Also, I think this is required on x86 and arm as well, as they have the same problem with -fomit-frame-pointer. Thanks for working on this! -Chris From clattner at apple.com Sat Jan 26 02:22:19 2008 From: clattner at apple.com (Chris Lattner) Date: Sat, 26 Jan 2008 00:22:19 -0800 Subject: [llvm-commits] [llvm] r46397 - /llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll In-Reply-To: <200801260656.m0Q6u8oJ008831@zion.cs.uiuc.edu> References: <200801260656.m0Q6u8oJ008831@zion.cs.uiuc.edu> Message-ID: On Jan 25, 2008, at 10:56 PM, Bill Wendling wrote: > Author: void > Date: Sat Jan 26 00:56:08 2008 > New Revision: 46397 > > URL: http://llvm.org/viewvc/llvm-project?rev=46397&view=rev > Log: > Need to convert to LLVM code and not C. This should also pass a darwin target triple to llc (or embed it in the .ll file), because ppc linux doesn't need the nop. It would also be nice to put a short comment in the test explaining why we expect a nop in this crazy case :) Thanks Bill, -Chris > > > Modified: > llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll > > Modified: llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll?rev=46397&r1=46396&r2=46397&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll > (original) > +++ llvm/trunk/test/CodeGen/PowerPC/2008-01-25-EmptyFunction.ll Sat > Jan 26 00:56:08 2008 > @@ -1,7 +1,6 @@ > -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep llvm.trap > -// RUN: %llvmgcc -O2 -S -o - -emit-llvm %s | grep unreachable > +; RUN: llvm-as < %s | llc -march=ppc32 | grep nop > > -void bork() { > - int *address = 0; > - *address = 0; > +define void @bork() noreturn nounwind { > +entry: > + unreachable > } > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From isanbard at gmail.com Sat Jan 26 02:44:09 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 00:44:09 -0800 Subject: [llvm-commits] [llvm] r46394 - in /llvm/trunk/lib: Target/PowerPC/PPCAsmPrinter.cpp Transforms/Scalar/SimplifyCFG.cpp In-Reply-To: <59E44561-2C78-46E2-97A1-0238929DBAD4@apple.com> References: <200801260651.m0Q6pO7r008599@zion.cs.uiuc.edu> <59E44561-2C78-46E2-97A1-0238929DBAD4@apple.com> Message-ID: On Jan 26, 2008, at 12:21 AM, Chris Lattner wrote: > > On Jan 25, 2008, at 10:51 PM, Bill Wendling wrote: > >> Author: void >> Date: Sat Jan 26 00:51:24 2008 >> New Revision: 46394 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46394&view=rev >> Log: >> If there are no machine instructions emitted for a function, then >> insert >> a "nop" instruction so that we don't have the function's label >> associated >> with something that it's not supposed to be associated with. > > Thanks Bill, this is looking better. Some thoughts: > >> + // If the function is empty, then we need to emit *something*. >> Otherwise, the >> + // function's label might be associated with something that it >> wasn't meant to >> + // be associated with. We emit a noop in this situation. >> + MachineFunction::iterator I = MF.begin(); >> + >> + if (++I == MF.end()) { >> + MachineBasicBlock &MBB = MF.front(); >> + >> + if (MBB.begin() == MBB.end()) > > You can use MBB.empty() > Good point! >> >> + BuildMI(MBB, MBB.end(), TM.getInstrInfo()->get(PPC::NOP)); >> + } > > Is there any reason to actually make a machineinstr here? It seems > like it would be possible to just emit "nop" to the .s file. The JIT > doesn't need this. > I initially had that, but I thought that it would be better to do things though the "print machine instruction" function just so I got the syntax correct. But nop is probably safe to emit like that. > Also, I think this is required on x86 and arm as well, as they have > the same problem with -fomit-frame-pointer. > There's a nop for X86, but I don't see one for ARM in the .td file. > Thanks for working on this! > No problem. :-) -bw From isanbard at gmail.com Sat Jan 26 03:03:53 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sat, 26 Jan 2008 09:03:53 -0000 Subject: [llvm-commits] [llvm] r46398 - in /llvm/trunk: lib/Target/PowerPC/PPCAsmPrinter.cpp lib/Target/X86/X86ATTAsmPrinter.cpp test/CodeGen/X86/2008-01-25-EmptyFunction.ll Message-ID: <200801260903.m0Q93rb8020326@zion.cs.uiuc.edu> Author: void Date: Sat Jan 26 03:03:52 2008 New Revision: 46398 URL: http://llvm.org/viewvc/llvm-project?rev=46398&view=rev Log: If there's no instructions being emitted on X86 for a function, emit a nop. Emit the nop directly for PPC. Added: llvm/trunk/test/CodeGen/X86/2008-01-25-EmptyFunction.ll Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=46398&r1=46397&r2=46398&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Sat Jan 26 03:03:52 2008 @@ -819,12 +819,8 @@ // be associated with. We emit a noop in this situation. MachineFunction::iterator I = MF.begin(); - if (++I == MF.end()) { - MachineBasicBlock &MBB = MF.front(); - - if (MBB.begin() == MBB.end()) - BuildMI(MBB, MBB.end(), TM.getInstrInfo()->get(PPC::NOP)); - } + if (++I == MF.end() && MF.front().empty()) + O << "\tnop\n"; // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); Modified: llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp?rev=46398&r1=46397&r2=46398&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ATTAsmPrinter.cpp Sat Jan 26 03:03:52 2008 @@ -165,6 +165,16 @@ DW.BeginFunction(&MF); } + if (Subtarget->isTargetDarwin()) { + // If the function is empty, then we need to emit *something*. Otherwise, + // the function's label might be associated with something that it wasn't + // meant to be associated with. We emit a noop in this situation. + MachineFunction::iterator I = MF.begin(); + + if (++I == MF.end() && MF.front().empty()) + O << "\tnop\n"; + } + // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { @@ -173,8 +183,8 @@ printBasicBlockLabel(I, true); O << '\n'; } - for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); - II != E; ++II) { + for (MachineBasicBlock::const_iterator II = I->begin(), IE = I->end(); + II != IE; ++II) { // Print the assembly for the instruction. O << "\t"; printMachineInstruction(II); Added: llvm/trunk/test/CodeGen/X86/2008-01-25-EmptyFunction.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2008-01-25-EmptyFunction.ll?rev=46398&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/2008-01-25-EmptyFunction.ll (added) +++ llvm/trunk/test/CodeGen/X86/2008-01-25-EmptyFunction.ll Sat Jan 26 03:03:52 2008 @@ -0,0 +1,6 @@ +; RUN: llvm-as < %s | llc -march=x86 | grep nop + +define void @bork() noreturn nounwind { +entry: + unreachable +} From baldrick at free.fr Sat Jan 26 04:12:51 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 11:12:51 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46373 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <5BAC6E20-AAE1-46BA-8F53-0EBD73EFC01D@nondot.org> References: <200801252237.m0PMbVat025526@zion.cs.uiuc.edu> <200801260658.53946.baldrick@free.fr> <5BAC6E20-AAE1-46BA-8F53-0EBD73EFC01D@nondot.org> Message-ID: <200801261112.51517.baldrick@free.fr> > No problem, thanks for pointing out that it needed to be done. It > would be nice if globalsmodref inferred that functions which only > store to their byval args are really readnone. I guess you mean readonly, since readnone+byval doesn't really work. D. From baldrick at free.fr Sat Jan 26 04:15:15 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 11:15:15 +0100 Subject: [llvm-commits] [llvm] r46393 - in /llvm/trunk: lib/Transforms/Utils/InlineFunction.cpp test/CFrontend/2008-01-26-ReadOnlyByVal.c In-Reply-To: <89322349-C2E4-4CCE-B827-6FB5E07A00A8@apple.com> References: <200801260641.m0Q6fnrT008349@zion.cs.uiuc.edu> <89322349-C2E4-4CCE-B827-6FB5E07A00A8@apple.com> Message-ID: <200801261115.16132.baldrick@free.fr> > > Create an explicit copy for byval parameters even > > when inlining a readonly function. > > Are you sure this is correct? There is a difference between 'const', > 'pure' and readnone/readonly. Further, isn't it always safe to elide > the copy for readnone functions? A readnone function could write to a byval parameter, using it as local storage (which it is). If you don't make an explicit copy when inlining, these become writes to the storage that the caller passed in. I'm pretty sure this is correct. D. From baldrick at free.fr Sat Jan 26 06:33:04 2008 From: baldrick at free.fr (Duncan Sands) Date: Sat, 26 Jan 2008 12:33:04 -0000 Subject: [llvm-commits] [llvm] r46399 - /llvm/trunk/test/Transforms/Inline/byval2.ll Message-ID: <200801261233.m0QCX5So027182@zion.cs.uiuc.edu> Author: baldrick Date: Sat Jan 26 06:33:01 2008 New Revision: 46399 URL: http://llvm.org/viewvc/llvm-project?rev=46399&view=rev Log: Invert this test, because it is wrong if we allow readonly functions to use byval parameters as local storage (how much do we want this?). Modified: llvm/trunk/test/Transforms/Inline/byval2.ll Modified: llvm/trunk/test/Transforms/Inline/byval2.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Inline/byval2.ll?rev=46399&r1=46398&r2=46399&view=diff ============================================================================== --- llvm/trunk/test/Transforms/Inline/byval2.ll (original) +++ llvm/trunk/test/Transforms/Inline/byval2.ll Sat Jan 26 06:33:01 2008 @@ -1,7 +1,7 @@ -; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep {llvm.memcpy} +; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {llvm.memcpy} -; Inlining a byval struct should NOT cause an explicit copy -; into an alloca if the function is readonly +; Inlining a byval struct should cause an explicit copy +; into an alloca even if the function is readonly %struct.ss = type { i32, i64 } @.str = internal constant [10 x i8] c"%d, %lld\0A\00" ; <[10 x i8]*> [#uses=1] From clattner at apple.com Sat Jan 26 13:03:28 2008 From: clattner at apple.com (Chris Lattner) Date: Sat, 26 Jan 2008 11:03:28 -0800 Subject: [llvm-commits] [llvm-testresults] Grawp-PIC i386 nightly tester results In-Reply-To: <200801261416.m0QEGk9Z030286@zion.cs.uiuc.edu> References: <200801261416.m0QEGk9Z030286@zion.cs.uiuc.edu> Message-ID: On Jan 26, 2008, at 6:16 AM, Apache wrote: > > New Test Failures: > test/Transforms/Inline/byval2.ll [DEJAGNU] Hi Duncan, This is failing because inlining of readonly functions is making the memcpy after your change. Why is the memcpy needed here? Is this because stores to the byval argument are not counted as a write? We really need to pin down the semantics of byval and readonly/none. Getting a copy for this is a big bad change. What do you think? -Chris From sabre at nondot.org Sat Jan 26 13:35:46 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 19:35:46 -0000 Subject: [llvm-commits] [llvm] r46400 - /llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll Message-ID: <200801261935.m0QJZkIE007586@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 13:35:46 2008 New Revision: 46400 URL: http://llvm.org/viewvc/llvm-project?rev=46400&view=rev Log: remove a useless xfailed test. Removed: llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll Removed: llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll?rev=46399&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll (original) +++ llvm/trunk/test/CodeGen/X86/2007-08-10-LEA16Use32.ll (removed) @@ -1,27 +0,0 @@ -; RUN: llvm-as < %s | llc -march=x86 | grep {leal} -; XFAIL: * -; This test is XFAIL'd because strength-reduction was improved to -; avoid emitting the lea, so it longer tests whether the 16-bit -; lea is avoided. - - at X = global i16 0 ; [#uses=1] - at Y = global i16 0 ; [#uses=1] - -define void @_Z3fooi(i32 %N) { -entry: - %tmp1019 = icmp sgt i32 %N, 0 ; [#uses=1] - br i1 %tmp1019, label %bb, label %return - -bb: ; preds = %bb, %entry - %i.014.0 = phi i32 [ 0, %entry ], [ %indvar.next, %bb ] ; [#uses=2] - %tmp1 = trunc i32 %i.014.0 to i16 ; [#uses=2] - volatile store i16 %tmp1, i16* @X, align 2 - %tmp34 = shl i16 %tmp1, 2 ; [#uses=1] - volatile store i16 %tmp34, i16* @Y, align 2 - %indvar.next = add i32 %i.014.0, 1 ; [#uses=2] - %exitcond = icmp eq i32 %indvar.next, %N ; [#uses=1] - br i1 %exitcond, label %return, label %bb - -return: ; preds = %bb, %entry - ret void -} From sabre at nondot.org Sat Jan 26 13:45:50 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 19:45:50 -0000 Subject: [llvm-commits] [llvm] r46401 - in /llvm/trunk: lib/CodeGen/SelectionDAG/DAGCombiner.cpp test/CodeGen/X86/stack-align.ll Message-ID: <200801261945.m0QJjoMO007885@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 13:45:50 2008 New Revision: 46401 URL: http://llvm.org/viewvc/llvm-project?rev=46401&view=rev Log: Infer alignment of loads and increase their alignment when we can tell they are from the stack. This allows us to compile stack-align.ll to: _test: movsd LCPI1_0, %xmm0 movapd %xmm0, %xmm1 *** andpd 4(%esp), %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret instead of: _test: movsd LCPI1_0, %xmm0 ** movsd 4(%esp), %xmm1 ** andpd %xmm0, %xmm1 andpd _G, %xmm0 addsd %xmm1, %xmm0 movl 20(%esp), %eax movsd %xmm0, (%eax) ret Added: llvm/trunk/test/CodeGen/X86/stack-align.ll Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46401&r1=46400&r2=46401&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sat Jan 26 13:45:50 2008 @@ -18,6 +18,7 @@ #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Target/TargetData.h" +#include "llvm/Target/TargetFrameInfo.h" #include "llvm/Target/TargetLowering.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" @@ -4073,13 +4074,41 @@ static unsigned InferAlignment(SDOperand Ptr, SelectionDAG &DAG) { // If this is a direct reference to a stack slot, use information about the // stack slot's alignment. + int FrameIdx = 1 << 31; + int64_t FrameOffset = 0; if (FrameIndexSDNode *FI = dyn_cast(Ptr)) { - return DAG.getMachineFunction().getFrameInfo()-> - getObjectAlignment(FI->getIndex()); + FrameIdx = FI->getIndex(); + } else if (Ptr.getOpcode() == ISD::ADD && + isa(Ptr.getOperand(1)) && + isa(Ptr.getOperand(0))) { + FrameIdx = cast(Ptr.getOperand(0))->getIndex(); + FrameOffset = Ptr.getConstantOperandVal(1); + } + + if (FrameIdx != (1 << 31)) { + // FIXME: Handle FI+CST. + const MachineFrameInfo &MFI = *DAG.getMachineFunction().getFrameInfo(); + if (MFI.isFixedObjectIndex(FrameIdx)) { + int64_t ObjectOffset = MFI.getObjectOffset(FrameIdx); + + // The alignment of the frame index can be determined from its offset from + // the incoming frame position. If the frame object is at offset 32 and + // the stack is guaranteed to be 16-byte aligned, then we know that the + // object is 16-byte aligned. + unsigned StackAlign = DAG.getTarget().getFrameInfo()->getStackAlignment(); + unsigned Align = MinAlign(ObjectOffset, StackAlign); + + // Finally, the frame object itself may have a known alignment. Factor + // the alignment + offset into a new alignment. For example, if we know + // the FI is 8 byte aligned, but the pointer is 4 off, we really have a + // 4-byte alignment of the resultant pointer. Likewise align 4 + 4-byte + // offset = 4-byte alignment, align 4 + 1-byte offset = align 1, etc. + unsigned FIInfoAlign = MinAlign(MFI.getObjectAlignment(FrameIdx), + FrameOffset); + return std::max(Align, FIInfoAlign); + } } - // FIXME: Handle FI+CST. - return 0; } Added: llvm/trunk/test/CodeGen/X86/stack-align.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/stack-align.ll?rev=46401&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/stack-align.ll (added) +++ llvm/trunk/test/CodeGen/X86/stack-align.ll Sat Jan 26 13:45:50 2008 @@ -0,0 +1,22 @@ +; RUN: llvm-as < %s | llc -relocation-model=static -mcpu=yonah | grep {andpd.*4(%esp), %xmm} + +; The double argument is at 4(esp) which is 16-byte aligned, allowing us to +; fold the load into the andpd. + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i686-apple-darwin8" + at G = external global double + +define void @test({ double, double }* byval %z, double* %P) { +entry: + %tmp = getelementptr { double, double }* %z, i32 0, i32 0 ; [#uses=1] + %tmp1 = load double* %tmp, align 8 ; [#uses=1] + %tmp2 = tail call double @fabs( double %tmp1 ) ; [#uses=1] + %tmp3 = load double* @G, align 16 ; [#uses=1] + %tmp4 = tail call double @fabs( double %tmp3 ) ; [#uses=1] + %tmp6 = add double %tmp4, %tmp2 ; [#uses=1] + store double %tmp6, double* %P, align 8 + ret void +} + +declare double @fabs(double) From sabre at nondot.org Sat Jan 26 13:50:30 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 19:50:30 -0000 Subject: [llvm-commits] [llvm] r46402 - /llvm/trunk/include/llvm/Support/MathExtras.h Message-ID: <200801261950.m0QJoU1l008019@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 13:50:30 2008 New Revision: 46402 URL: http://llvm.org/viewvc/llvm-project?rev=46402&view=rev Log: make this 64-bit safe Modified: llvm/trunk/include/llvm/Support/MathExtras.h Modified: llvm/trunk/include/llvm/Support/MathExtras.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MathExtras.h?rev=46402&r1=46401&r2=46402&view=diff ============================================================================== --- llvm/trunk/include/llvm/Support/MathExtras.h (original) +++ llvm/trunk/include/llvm/Support/MathExtras.h Sat Jan 26 13:50:30 2008 @@ -360,11 +360,11 @@ /// MinAlign - A and B are either alignments or offsets. Return the minimum /// alignment that may be assumed after adding the two together. -static inline unsigned MinAlign(unsigned A, unsigned B) { +static inline uint64_t MinAlign(uint64_t A, uint64_t B) { // The largest power of 2 that divides both A and B. return (A | B) & -(A | B); } - + } // End llvm namespace #endif From sabre at nondot.org Sat Jan 26 14:06:45 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 20:06:45 -0000 Subject: [llvm-commits] [llvm] r46403 - /llvm/trunk/test/CodeGen/X86/vec_align.ll Message-ID: <200801262006.m0QK6jaW008504@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 14:06:45 2008 New Revision: 46403 URL: http://llvm.org/viewvc/llvm-project?rev=46403&view=rev Log: New test to verify that "merging 4 loads into a vec load" continues to work and continues to infer alignment info. Added: llvm/trunk/test/CodeGen/X86/vec_align.ll Added: llvm/trunk/test/CodeGen/X86/vec_align.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/vec_align.ll?rev=46403&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/vec_align.ll (added) +++ llvm/trunk/test/CodeGen/X86/vec_align.ll Sat Jan 26 14:06:45 2008 @@ -0,0 +1,35 @@ +; RUN: llvm-as < %s | llc -mcpu=yonah -relocation-model=static | grep movaps | count 2 + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i686-apple-darwin8" + +%f4 = type <4 x float> + + at G = external global { float,float,float,float}, align 16 + +define %f4 @test1(float %W, float %X, float %Y, float %Z) { + %tmp = insertelement %f4 undef, float %W, i32 0 + %tmp2 = insertelement %f4 %tmp, float %X, i32 1 + %tmp4 = insertelement %f4 %tmp2, float %Y, i32 2 + %tmp6 = insertelement %f4 %tmp4, float %Z, i32 3 + ret %f4 %tmp6 +} + +define %f4 @test2() { + %Wp = getelementptr { float,float,float,float}* @G, i32 0, i32 0 + %Xp = getelementptr { float,float,float,float}* @G, i32 0, i32 1 + %Yp = getelementptr { float,float,float,float}* @G, i32 0, i32 2 + %Zp = getelementptr { float,float,float,float}* @G, i32 0, i32 3 + + %W = load float* %Wp + %X = load float* %Xp + %Y = load float* %Yp + %Z = load float* %Zp + + %tmp = insertelement %f4 undef, float %W, i32 0 + %tmp2 = insertelement %f4 %tmp, float %X, i32 1 + %tmp4 = insertelement %f4 %tmp2, float %Y, i32 2 + %tmp6 = insertelement %f4 %tmp4, float %Z, i32 3 + ret %f4 %tmp6 +} + From sabre at nondot.org Sat Jan 26 14:07:42 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 20:07:42 -0000 Subject: [llvm-commits] [llvm] r46404 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200801262007.m0QK7goX008546@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 14:07:42 2008 New Revision: 46404 URL: http://llvm.org/viewvc/llvm-project?rev=46404&view=rev Log: Remove some code for inferring alignment info from the x86 backend now that the dag combiner does it. Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46404&r1=46403&r2=46404&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sat Jan 26 14:07:42 2008 @@ -5499,16 +5499,7 @@ int64_t Offset; if (isGAPlusOffset(Base, GV, Offset)) return (GV->getAlignment() >= 16 && (Offset % 16) == 0); - else { - assert(Base->getOpcode() == ISD::FrameIndex && "Unexpected base node!"); - int BFI = cast(Base)->getIndex(); - if (BFI < 0) - // Fixed objects do not specify alignment, however the offsets are known. - return ((Subtarget->getStackAlignment() % 16) == 0 && - (MFI->getObjectOffset(BFI) % 16) == 0); - else - return MFI->getObjectAlignment(BFI) >= 16; - } + // DAG combine handles the stack object case. return false; } From sabre at nondot.org Sat Jan 26 14:12:07 2008 From: sabre at nondot.org (Chris Lattner) Date: Sat, 26 Jan 2008 20:12:07 -0000 Subject: [llvm-commits] [llvm] r46405 - /llvm/trunk/lib/Target/X86/README-SSE.txt Message-ID: <200801262012.m0QKC7pu008674@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 14:12:07 2008 New Revision: 46405 URL: http://llvm.org/viewvc/llvm-project?rev=46405&view=rev Log: Add some notes. Modified: llvm/trunk/lib/Target/X86/README-SSE.txt Modified: llvm/trunk/lib/Target/X86/README-SSE.txt URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/README-SSE.txt?rev=46405&r1=46404&r2=46405&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/README-SSE.txt (original) +++ llvm/trunk/lib/Target/X86/README-SSE.txt Sat Jan 26 14:12:07 2008 @@ -704,3 +704,21 @@ We should use movmskp{s|d} instead. +//===---------------------------------------------------------------------===// + +CodeGen/X86/vec_align.ll tests whether we can turn 4 scalar loads into a single +(aligned) vector load. This functionality has a couple of problems. + +1. The code to infer alignment from loads of globals is in the X86 backend, + not the dag combiner. This is because dagcombine2 needs to be able to see + through the X86ISD::Wrapper node, which DAGCombine can't really do. +2. The code for turning 4 x load into a single vector load is target + independent and should be moved to the dag combiner. +3. The code for turning 4 x load into a vector load can only handle a direct + load from a global or a direct load from the stack. It should be generalized + to handle any load from P, P+4, P+8, P+12, where P can be anything. +4. The alignment inference code cannot handle loads from globals in non-static + mode because it doesn't look through the extra dyld stub load. If you try + vec_align.ll without -relocation-model=static, you'll see what I mean. + +//===---------------------------------------------------------------------===// From evan.cheng at apple.com Sat Jan 26 17:39:31 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Sat, 26 Jan 2008 15:39:31 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <200801260725.03963.baldrick@free.fr> References: <200801260725.03963.baldrick@free.fr> Message-ID: <0A01F174-BCA6-4150-B44B-DBA9C8DA71D6@apple.com> Can you get me a test case? I need to see what gcc is doing. Thanks, Evan On Jan 25, 2008, at 10:25 PM, Duncan Sands wrote: > Hi Evan, dropping zero sized aggregates from types > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080121/057570.html > broke the Ada build. A zero-sized aggregate is used in a > COMPONENT_REF, so > llvm-convert barfs because it can't find the corresponding LLVM > field. All gcc > fields should have a corresponding LLVM field - the only exception > we make is > for fields at variable offsets. I would like to keep it that way > unless you > really can't solve this differently. > > Best wishes, > > Duncan. From sabre at nondot.org Sat Jan 26 23:29:54 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 05:29:54 -0000 Subject: [llvm-commits] [llvm] r46406 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/fpextend.ll Message-ID: <200801270529.m0R5Tt08025493@zion.cs.uiuc.edu> Author: lattner Date: Sat Jan 26 23:29:54 2008 New Revision: 46406 URL: http://llvm.org/viewvc/llvm-project?rev=46406&view=rev Log: Fold fptrunc(add (fpextend x), (fpextend y)) -> add(x,y), as GCC does. Added: llvm/trunk/test/Transforms/InstCombine/fpextend.ll Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=46406&r1=46405&r2=46406&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sat Jan 26 23:29:54 2008 @@ -203,7 +203,7 @@ Instruction *visitTrunc(TruncInst &CI); Instruction *visitZExt(ZExtInst &CI); Instruction *visitSExt(SExtInst &CI); - Instruction *visitFPTrunc(CastInst &CI); + Instruction *visitFPTrunc(FPTruncInst &CI); Instruction *visitFPExt(CastInst &CI); Instruction *visitFPToUI(CastInst &CI); Instruction *visitFPToSI(CastInst &CI); @@ -7141,8 +7141,80 @@ return 0; } -Instruction *InstCombiner::visitFPTrunc(CastInst &CI) { - return commonCastTransforms(CI); +/// FitsInFPType - Return a Constant* for the specified FP constant if it fits +/// in the specified FP type without changing its value. +static Constant *FitsInFPType(ConstantFP *CFP, const Type *FPTy, + const fltSemantics &Sem) { + APFloat F = CFP->getValueAPF(); + if (F.convert(Sem, APFloat::rmNearestTiesToEven) == APFloat::opOK) + return ConstantFP::get(FPTy, F); + return 0; +} + +/// LookThroughFPExtensions - If this is an fp extension instruction, look +/// through it until we get the source value. +static Value *LookThroughFPExtensions(Value *V) { + if (Instruction *I = dyn_cast(V)) + if (I->getOpcode() == Instruction::FPExt) + return LookThroughFPExtensions(I->getOperand(0)); + + // If this value is a constant, return the constant in the smallest FP type + // that can accurately represent it. This allows us to turn + // (float)((double)X+2.0) into x+2.0f. + if (ConstantFP *CFP = dyn_cast(V)) { + if (CFP->getType() == Type::PPC_FP128Ty) + return V; // No constant folding of this. + // See if the value can be truncated to float and then reextended. + if (Value *V = FitsInFPType(CFP, Type::FloatTy, APFloat::IEEEsingle)) + return V; + if (CFP->getType() == Type::DoubleTy) + return V; // Won't shrink. + if (Value *V = FitsInFPType(CFP, Type::DoubleTy, APFloat::IEEEdouble)) + return V; + // Don't try to shrink to various long double types. + } + + return V; +} + +Instruction *InstCombiner::visitFPTrunc(FPTruncInst &CI) { + if (Instruction *I = commonCastTransforms(CI)) + return I; + + // If we have fptrunc(add (fpextend x), (fpextend y)), where x and y are + // smaller than the destination type, we can eliminate the truncate by doing + // the add as the smaller type. This applies to add/sub/mul/div as well as + // many builtins (sqrt, etc). + BinaryOperator *OpI = dyn_cast(CI.getOperand(0)); + if (OpI && OpI->hasOneUse()) { + switch (OpI->getOpcode()) { + default: break; + case Instruction::Add: + case Instruction::Sub: + case Instruction::Mul: + case Instruction::FDiv: + case Instruction::FRem: + const Type *SrcTy = OpI->getType(); + Value *LHSTrunc = LookThroughFPExtensions(OpI->getOperand(0)); + Value *RHSTrunc = LookThroughFPExtensions(OpI->getOperand(1)); + if (LHSTrunc->getType() != SrcTy && + RHSTrunc->getType() != SrcTy) { + unsigned DstSize = CI.getType()->getPrimitiveSizeInBits(); + // If the source types were both smaller than the destination type of + // the cast, do this xform. + if (LHSTrunc->getType()->getPrimitiveSizeInBits() <= DstSize && + RHSTrunc->getType()->getPrimitiveSizeInBits() <= DstSize) { + LHSTrunc = InsertCastBefore(Instruction::FPExt, LHSTrunc, + CI.getType(), CI); + RHSTrunc = InsertCastBefore(Instruction::FPExt, RHSTrunc, + CI.getType(), CI); + return BinaryOperator::create(OpI->getOpcode(), LHSTrunc, RHSTrunc); + } + } + break; + } + } + return 0; } Instruction *InstCombiner::visitFPExt(CastInst &CI) { Added: llvm/trunk/test/Transforms/InstCombine/fpextend.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/fpextend.ll?rev=46406&view=auto ============================================================================== --- llvm/trunk/test/Transforms/InstCombine/fpextend.ll (added) +++ llvm/trunk/test/Transforms/InstCombine/fpextend.ll Sat Jan 26 23:29:54 2008 @@ -0,0 +1,36 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep fpext + at X = external global float + at Y = external global float + +define void @test() nounwind { +entry: + %tmp = load float* @X, align 4 ; [#uses=1] + %tmp1 = fpext float %tmp to double ; [#uses=1] + %tmp3 = add double %tmp1, 0.000000e+00 ; [#uses=1] + %tmp34 = fptrunc double %tmp3 to float ; [#uses=1] + store float %tmp34, float* @X, align 4 + ret void +} + +define void @test3() nounwind { +entry: + %tmp = load float* @X, align 4 ; [#uses=1] + %tmp1 = fpext float %tmp to double ; [#uses=1] + %tmp2 = load float* @Y, align 4 ; [#uses=1] + %tmp23 = fpext float %tmp2 to double ; [#uses=1] + %tmp5 = fdiv double %tmp1, %tmp23 ; [#uses=1] + %tmp56 = fptrunc double %tmp5 to float ; [#uses=1] + store float %tmp56, float* @X, align 4 + ret void +} + +define void @test4() nounwind { +entry: + %tmp = load float* @X, align 4 ; [#uses=1] + %tmp1 = fpext float %tmp to double ; [#uses=1] + %tmp2 = sub double -0.000000e+00, %tmp1 ; [#uses=1] + %tmp34 = fptrunc double %tmp2 to float ; [#uses=1] + store float %tmp34, float* @X, align 4 + ret void +} + From sabre at nondot.org Sun Jan 27 00:09:28 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 06:09:28 -0000 Subject: [llvm-commits] [llvm] r46407 - /llvm/trunk/lib/CodeGen/AsmPrinter.cpp Message-ID: <200801270609.m0R69Ssv026683@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 00:09:28 2008 New Revision: 46407 URL: http://llvm.org/viewvc/llvm-project?rev=46407&view=rev Log: For long double constants, print an approximation of their value to the .s file to make it easier to read. Modified: llvm/trunk/lib/CodeGen/AsmPrinter.cpp Modified: llvm/trunk/lib/CodeGen/AsmPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter.cpp?rev=46407&r1=46406&r2=46407&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/AsmPrinter.cpp (original) +++ llvm/trunk/lib/CodeGen/AsmPrinter.cpp Sun Jan 27 00:09:28 2008 @@ -939,10 +939,13 @@ // api needed to prevent premature destruction APInt api = CFP->getValueAPF().convertToAPInt(); const uint64_t *p = api.getRawData(); + APFloat DoubleVal = CFP->getValueAPF(); + DoubleVal.convert(APFloat::IEEEdouble, APFloat::rmNearestTiesToEven); if (TD->isBigEndian()) { O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 48) << "\t" << TAI->getCommentString() - << " long double most significant halfword\n"; + << " long double most significant halfword of ~" + << DoubleVal.convertToDouble() << "\n"; O << TAI->getData16bitsDirective() << uint16_t(p[0] >> 32) << "\t" << TAI->getCommentString() << " long double next halfword\n"; @@ -958,7 +961,8 @@ } else { O << TAI->getData16bitsDirective() << uint16_t(p[1]) << "\t" << TAI->getCommentString() - << " long double least significant halfword\n"; + << " long double least significant halfword of ~" + << DoubleVal.convertToDouble() << "\n"; O << TAI->getData16bitsDirective() << uint16_t(p[0]) << "\t" << TAI->getCommentString() << " long double next halfword\n"; From isanbard at gmail.com Sun Jan 27 00:11:42 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sun, 27 Jan 2008 06:11:42 -0000 Subject: [llvm-commits] [llvm] r46408 - in /llvm/trunk: include/llvm/LinkAllPasses.h include/llvm/Transforms/Scalar.h lib/Transforms/Scalar/CorrelatedExprs.cpp Message-ID: <200801270611.m0R6BgE0026761@zion.cs.uiuc.edu> Author: void Date: Sun Jan 27 00:11:41 2008 New Revision: 46408 URL: http://llvm.org/viewvc/llvm-project?rev=46408&view=rev Log: The CorrelatedExpressionElimination pass is known to be buggy. Remove it. This fixes PR1769. Removed: llvm/trunk/lib/Transforms/Scalar/CorrelatedExprs.cpp Modified: llvm/trunk/include/llvm/LinkAllPasses.h llvm/trunk/include/llvm/Transforms/Scalar.h Modified: llvm/trunk/include/llvm/LinkAllPasses.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LinkAllPasses.h?rev=46408&r1=46407&r2=46408&view=diff ============================================================================== --- llvm/trunk/include/llvm/LinkAllPasses.h (original) +++ llvm/trunk/include/llvm/LinkAllPasses.h Sun Jan 27 00:11:41 2008 @@ -54,7 +54,6 @@ (void) llvm::createCFGSimplificationPass(); (void) llvm::createConstantMergePass(); (void) llvm::createConstantPropagationPass(); - (void) llvm::createCorrelatedExpressionEliminationPass(); (void) llvm::createDeadArgEliminationPass(); (void) llvm::createDeadCodeEliminationPass(); (void) llvm::createDeadInstEliminationPass(); Modified: llvm/trunk/include/llvm/Transforms/Scalar.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Scalar.h?rev=46408&r1=46407&r2=46408&view=diff ============================================================================== --- llvm/trunk/include/llvm/Transforms/Scalar.h (original) +++ llvm/trunk/include/llvm/Transforms/Scalar.h Sun Jan 27 00:11:41 2008 @@ -184,17 +184,6 @@ //===----------------------------------------------------------------------===// // -// CorrelatedExpressionElimination - This pass eliminates correlated -// conditions, such as these: -// if (X == 0) -// if (X > 2) ; // Known false -// else -// Y = X * Z; // = 0 -// -FunctionPass *createCorrelatedExpressionEliminationPass(); - -//===----------------------------------------------------------------------===// -// // CondPropagationPass - This pass propagates information about conditional // expressions through the program, allowing it to eliminate conditional // branches in some cases. Removed: llvm/trunk/lib/Transforms/Scalar/CorrelatedExprs.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/CorrelatedExprs.cpp?rev=46407&view=auto ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/CorrelatedExprs.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/CorrelatedExprs.cpp (removed) @@ -1,1486 +0,0 @@ -//===- CorrelatedExprs.cpp - Pass to detect and eliminated c.e.'s ---------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Correlated Expression Elimination propagates information from conditional -// branches to blocks dominated by destinations of the branch. It propagates -// information from the condition check itself into the body of the branch, -// allowing transformations like these for example: -// -// if (i == 7) -// ... 4*i; // constant propagation -// -// M = i+1; N = j+1; -// if (i == j) -// X = M-N; // = M-M == 0; -// -// This is called Correlated Expression Elimination because we eliminate or -// simplify expressions that are correlated with the direction of a branch. In -// this way we use static information to give us some information about the -// dynamic value of a variable. -// -//===----------------------------------------------------------------------===// - -#define DEBUG_TYPE "cee" -#include "llvm/Transforms/Scalar.h" -#include "llvm/Constants.h" -#include "llvm/Pass.h" -#include "llvm/Function.h" -#include "llvm/Instructions.h" -#include "llvm/Type.h" -#include "llvm/DerivedTypes.h" -#include "llvm/Analysis/ConstantFolding.h" -#include "llvm/Analysis/Dominators.h" -#include "llvm/Assembly/Writer.h" -#include "llvm/Transforms/Utils/BasicBlockUtils.h" -#include "llvm/Support/CFG.h" -#include "llvm/Support/Compiler.h" -#include "llvm/Support/ConstantRange.h" -#include "llvm/Support/Debug.h" -#include "llvm/ADT/PostOrderIterator.h" -#include "llvm/ADT/Statistic.h" -#include -using namespace llvm; - -STATISTIC(NumCmpRemoved, "Number of cmp instruction eliminated"); -STATISTIC(NumOperandsCann, "Number of operands canonicalized"); -STATISTIC(BranchRevectors, "Number of branches revectored"); - -namespace { - class ValueInfo; - class VISIBILITY_HIDDEN Relation { - Value *Val; // Relation to what value? - unsigned Rel; // SetCC or ICmp relation, or Add if no information - public: - explicit Relation(Value *V) : Val(V), Rel(Instruction::Add) {} - bool operator<(const Relation &R) const { return Val < R.Val; } - Value *getValue() const { return Val; } - unsigned getRelation() const { return Rel; } - - // contradicts - Return true if the relationship specified by the operand - // contradicts already known information. - // - bool contradicts(unsigned Rel, const ValueInfo &VI) const; - - // incorporate - Incorporate information in the argument into this relation - // entry. This assumes that the information doesn't contradict itself. If - // any new information is gained, true is returned, otherwise false is - // returned to indicate that nothing was updated. - // - bool incorporate(unsigned Rel, ValueInfo &VI); - - // KnownResult - Whether or not this condition determines the result of a - // setcc or icmp in the program. False & True are intentionally 0 & 1 - // so we can convert to bool by casting after checking for unknown. - // - enum KnownResult { KnownFalse = 0, KnownTrue = 1, Unknown = 2 }; - - // getImpliedResult - If this relationship between two values implies that - // the specified relationship is true or false, return that. If we cannot - // determine the result required, return Unknown. - // - KnownResult getImpliedResult(unsigned Rel) const; - - // print - Output this relation to the specified stream - void print(std::ostream &OS) const; - void dump() const; - }; - - - // ValueInfo - One instance of this record exists for every value with - // relationships between other values. It keeps track of all of the - // relationships to other values in the program (specified with Relation) that - // are known to be valid in a region. - // - class VISIBILITY_HIDDEN ValueInfo { - // RelationShips - this value is know to have the specified relationships to - // other values. There can only be one entry per value, and this list is - // kept sorted by the Val field. - std::vector Relationships; - - // If information about this value is known or propagated from constant - // expressions, this range contains the possible values this value may hold. - ConstantRange Bounds; - - // If we find that this value is equal to another value that has a lower - // rank, this value is used as it's replacement. - // - Value *Replacement; - public: - explicit ValueInfo(const Type *Ty) - : Bounds(Ty->isInteger() ? cast(Ty)->getBitWidth() : 32), - Replacement(0) {} - - // getBounds() - Return the constant bounds of the value... - const ConstantRange &getBounds() const { return Bounds; } - ConstantRange &getBounds() { return Bounds; } - - const std::vector &getRelationships() { return Relationships; } - - // getReplacement - Return the value this value is to be replaced with if it - // exists, otherwise return null. - // - Value *getReplacement() const { return Replacement; } - - // setReplacement - Used by the replacement calculation pass to figure out - // what to replace this value with, if anything. - // - void setReplacement(Value *Repl) { Replacement = Repl; } - - // getRelation - return the relationship entry for the specified value. - // This can invalidate references to other Relations, so use it carefully. - // - Relation &getRelation(Value *V) { - // Binary search for V's entry... - std::vector::iterator I = - std::lower_bound(Relationships.begin(), Relationships.end(), - Relation(V)); - - // If we found the entry, return it... - if (I != Relationships.end() && I->getValue() == V) - return *I; - - // Insert and return the new relationship... - return *Relationships.insert(I, Relation(V)); - } - - const Relation *requestRelation(Value *V) const { - // Binary search for V's entry... - std::vector::const_iterator I = - std::lower_bound(Relationships.begin(), Relationships.end(), - Relation(V)); - if (I != Relationships.end() && I->getValue() == V) - return &*I; - return 0; - } - - // print - Output information about this value relation... - void print(std::ostream &OS, Value *V) const; - void dump() const; - }; - - // RegionInfo - Keeps track of all of the value relationships for a region. A - // region is the are dominated by a basic block. RegionInfo's keep track of - // the RegionInfo for their dominator, because anything known in a dominator - // is known to be true in a dominated block as well. - // - class VISIBILITY_HIDDEN RegionInfo { - BasicBlock *BB; - - // ValueMap - Tracks the ValueInformation known for this region - typedef std::map ValueMapTy; - ValueMapTy ValueMap; - public: - explicit RegionInfo(BasicBlock *bb) : BB(bb) {} - - // getEntryBlock - Return the block that dominates all of the members of - // this region. - BasicBlock *getEntryBlock() const { return BB; } - - // empty - return true if this region has no information known about it. - bool empty() const { return ValueMap.empty(); } - - const RegionInfo &operator=(const RegionInfo &RI) { - ValueMap = RI.ValueMap; - return *this; - } - - // print - Output information about this region... - void print(std::ostream &OS) const; - void dump() const; - - // Allow external access. - typedef ValueMapTy::iterator iterator; - iterator begin() { return ValueMap.begin(); } - iterator end() { return ValueMap.end(); } - - ValueInfo &getValueInfo(Value *V) { - ValueMapTy::iterator I = ValueMap.lower_bound(V); - if (I != ValueMap.end() && I->first == V) return I->second; - return ValueMap.insert(I, std::make_pair(V, V->getType()))->second; - } - - const ValueInfo *requestValueInfo(Value *V) const { - ValueMapTy::const_iterator I = ValueMap.find(V); - if (I != ValueMap.end()) return &I->second; - return 0; - } - - /// removeValueInfo - Remove anything known about V from our records. This - /// works whether or not we know anything about V. - /// - void removeValueInfo(Value *V) { - ValueMap.erase(V); - } - }; - - /// CEE - Correlated Expression Elimination - class VISIBILITY_HIDDEN CEE : public FunctionPass { - std::map RankMap; - std::map RegionInfoMap; - DominatorTree *DT; - public: - static char ID; // Pass identification, replacement for typeid - CEE() : FunctionPass((intptr_t)&ID) {} - - virtual bool runOnFunction(Function &F); - - // We don't modify the program, so we preserve all analyses - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired(); - AU.addRequiredID(BreakCriticalEdgesID); - }; - - // print - Implement the standard print form to print out analysis - // information. - virtual void print(std::ostream &O, const Module *M) const; - - private: - RegionInfo &getRegionInfo(BasicBlock *BB) { - std::map::iterator I - = RegionInfoMap.lower_bound(BB); - if (I != RegionInfoMap.end() && I->first == BB) return I->second; - return RegionInfoMap.insert(I, std::make_pair(BB, BB))->second; - } - - void BuildRankMap(Function &F); - unsigned getRank(Value *V) const { - if (isa(V)) return 0; - std::map::const_iterator I = RankMap.find(V); - if (I != RankMap.end()) return I->second; - return 0; // Must be some other global thing - } - - bool TransformRegion(BasicBlock *BB, std::set &VisitedBlocks); - - bool ForwardCorrelatedEdgeDestination(TerminatorInst *TI, unsigned SuccNo, - RegionInfo &RI); - - void ForwardSuccessorTo(TerminatorInst *TI, unsigned Succ, BasicBlock *D, - RegionInfo &RI); - void ReplaceUsesOfValueInRegion(Value *Orig, Value *New, - BasicBlock *RegionDominator); - void CalculateRegionExitBlocks(BasicBlock *BB, BasicBlock *OldSucc, - std::vector &RegionExitBlocks); - void InsertRegionExitMerges(PHINode *NewPHI, Instruction *OldVal, - const std::vector &RegionExitBlocks); - - void PropagateBranchInfo(BranchInst *BI); - void PropagateSwitchInfo(SwitchInst *SI); - void PropagateEquality(Value *Op0, Value *Op1, RegionInfo &RI); - void PropagateRelation(unsigned Opcode, Value *Op0, - Value *Op1, RegionInfo &RI); - void UpdateUsersOfValue(Value *V, RegionInfo &RI); - void IncorporateInstruction(Instruction *Inst, RegionInfo &RI); - void ComputeReplacements(RegionInfo &RI); - - // getCmpResult - Given a icmp instruction, determine if the result is - // determined by facts we already know about the region under analysis. - // Return KnownTrue, KnownFalse, or UnKnown based on what we can determine. - Relation::KnownResult getCmpResult(CmpInst *ICI, const RegionInfo &RI); - - bool SimplifyBasicBlock(BasicBlock &BB, const RegionInfo &RI); - bool SimplifyInstruction(Instruction *Inst, const RegionInfo &RI); - }; - - char CEE::ID = 0; - RegisterPass X("cee", "Correlated Expression Elimination"); -} - -FunctionPass *llvm::createCorrelatedExpressionEliminationPass() { - return new CEE(); -} - - -bool CEE::runOnFunction(Function &F) { - // Build a rank map for the function... - BuildRankMap(F); - - // Traverse the dominator tree, computing information for each node in the - // tree. Note that our traversal will not even touch unreachable basic - // blocks. - DT = &getAnalysis(); - - std::set VisitedBlocks; - bool Changed = TransformRegion(&F.getEntryBlock(), VisitedBlocks); - - RegionInfoMap.clear(); - RankMap.clear(); - return Changed; -} - -// TransformRegion - Transform the region starting with BB according to the -// calculated region information for the block. Transforming the region -// involves analyzing any information this block provides to successors, -// propagating the information to successors, and finally transforming -// successors. -// -// This method processes the function in depth first order, which guarantees -// that we process the immediate dominator of a block before the block itself. -// Because we are passing information from immediate dominators down to -// dominatees, we obviously have to process the information source before the -// information consumer. -// -bool CEE::TransformRegion(BasicBlock *BB, std::set &VisitedBlocks){ - // Prevent infinite recursion... - if (VisitedBlocks.count(BB)) return false; - VisitedBlocks.insert(BB); - - // Get the computed region information for this block... - RegionInfo &RI = getRegionInfo(BB); - - // Compute the replacement information for this block... - ComputeReplacements(RI); - - // If debugging, print computed region information... - DEBUG(RI.print(*cerr.stream())); - - // Simplify the contents of this block... - bool Changed = SimplifyBasicBlock(*BB, RI); - - // Get the terminator of this basic block... - TerminatorInst *TI = BB->getTerminator(); - - // Loop over all of the blocks that this block is the immediate dominator for. - // Because all information known in this region is also known in all of the - // blocks that are dominated by this one, we can safely propagate the - // information down now. - // - DomTreeNode *BBDom = DT->getNode(BB); - if (!RI.empty()) { // Time opt: only propagate if we can change something - for (std::vector::iterator DI = BBDom->begin(), - E = BBDom->end(); DI != E; ++DI) { - BasicBlock *ChildBB = (*DI)->getBlock(); - assert(RegionInfoMap.find(ChildBB) == RegionInfoMap.end() && - "RegionInfo should be calculated in dominanace order!"); - getRegionInfo(ChildBB) = RI; - } - } - - // Now that all of our successors have information if they deserve it, - // propagate any information our terminator instruction finds to our - // successors. - if (BranchInst *BI = dyn_cast(TI)) { - if (BI->isConditional()) - PropagateBranchInfo(BI); - } else if (SwitchInst *SI = dyn_cast(TI)) { - PropagateSwitchInfo(SI); - } - - // If this is a branch to a block outside our region that simply performs - // another conditional branch, one whose outcome is known inside of this - // region, then vector this outgoing edge directly to the known destination. - // - for (unsigned i = 0, e = TI->getNumSuccessors(); i != e; ++i) - while (ForwardCorrelatedEdgeDestination(TI, i, RI)) { - ++BranchRevectors; - Changed = true; - } - - // Now that all of our successors have information, recursively process them. - for (std::vector::iterator DI = BBDom->begin(), - E = BBDom->end(); DI != E; ++DI) { - BasicBlock *ChildBB = (*DI)->getBlock(); - Changed |= TransformRegion(ChildBB, VisitedBlocks); - } - - return Changed; -} - -// isBlockSimpleEnoughForCheck to see if the block is simple enough for us to -// revector the conditional branch in the bottom of the block, do so now. -// -static bool isBlockSimpleEnough(BasicBlock *BB) { - assert(isa(BB->getTerminator())); - BranchInst *BI = cast(BB->getTerminator()); - assert(BI->isConditional()); - - // Check the common case first: empty block, or block with just a setcc. - if (BB->size() == 1 || - (BB->size() == 2 && &BB->front() == BI->getCondition() && - BI->getCondition()->hasOneUse())) - return true; - - // Check the more complex case now... - BasicBlock::iterator I = BB->begin(); - - // FIXME: This should be reenabled once the regression with SIM is fixed! -#if 0 - // PHI Nodes are ok, just skip over them... - while (isa(*I)) ++I; -#endif - - // Accept the setcc instruction... - if (&*I == BI->getCondition()) - ++I; - - // Nothing else is acceptable here yet. We must not revector... unless we are - // at the terminator instruction. - if (&*I == BI) - return true; - - return false; -} - - -bool CEE::ForwardCorrelatedEdgeDestination(TerminatorInst *TI, unsigned SuccNo, - RegionInfo &RI) { - // If this successor is a simple block not in the current region, which - // contains only a conditional branch, we decide if the outcome of the branch - // can be determined from information inside of the region. Instead of going - // to this block, we can instead go to the destination we know is the right - // target. - // - - // Check to see if we dominate the block. If so, this block will get the - // condition turned to a constant anyway. - // - //if (EF->dominates(RI.getEntryBlock(), BB)) - // return 0; - - BasicBlock *BB = TI->getParent(); - - // Get the destination block of this edge... - BasicBlock *OldSucc = TI->getSuccessor(SuccNo); - - // Make sure that the block ends with a conditional branch and is simple - // enough for use to be able to revector over. - BranchInst *BI = dyn_cast(OldSucc->getTerminator()); - if (BI == 0 || !BI->isConditional() || !isBlockSimpleEnough(OldSucc)) - return false; - - // We can only forward the branch over the block if the block ends with a - // cmp we can determine the outcome for. - // - // FIXME: we can make this more generic. Code below already handles more - // generic case. - if (!isa(BI->getCondition())) - return false; - - // Make a new RegionInfo structure so that we can simulate the effect of the - // PHI nodes in the block we are skipping over... - // - RegionInfo NewRI(RI); - - // Remove value information for all of the values we are simulating... to make - // sure we don't have any stale information. - for (BasicBlock::iterator I = OldSucc->begin(), E = OldSucc->end(); I!=E; ++I) - if (I->getType() != Type::VoidTy) - NewRI.removeValueInfo(I); - - // Put the newly discovered information into the RegionInfo... - for (BasicBlock::iterator I = OldSucc->begin(), E = OldSucc->end(); I!=E; ++I) - if (PHINode *PN = dyn_cast(I)) { - int OpNum = PN->getBasicBlockIndex(BB); - assert(OpNum != -1 && "PHI doesn't have incoming edge for predecessor!?"); - PropagateEquality(PN, PN->getIncomingValue(OpNum), NewRI); - } else if (CmpInst *CI = dyn_cast(I)) { - Relation::KnownResult Res = getCmpResult(CI, NewRI); - if (Res == Relation::Unknown) return false; - PropagateEquality(CI, ConstantInt::get(Type::Int1Ty, Res), NewRI); - } else { - assert(isa(*I) && "Unexpected instruction type!"); - } - - // Compute the facts implied by what we have discovered... - ComputeReplacements(NewRI); - - ValueInfo &PredicateVI = NewRI.getValueInfo(BI->getCondition()); - if (PredicateVI.getReplacement() && - isa(PredicateVI.getReplacement()) && - !isa(PredicateVI.getReplacement())) { - ConstantInt *CB = cast(PredicateVI.getReplacement()); - - // Forward to the successor that corresponds to the branch we will take. - ForwardSuccessorTo(TI, SuccNo, - BI->getSuccessor(!CB->getZExtValue()), NewRI); - return true; - } - - return false; -} - -static Value *getReplacementOrValue(Value *V, RegionInfo &RI) { - if (const ValueInfo *VI = RI.requestValueInfo(V)) - if (Value *Repl = VI->getReplacement()) - return Repl; - return V; -} - -/// ForwardSuccessorTo - We have found that we can forward successor # 'SuccNo' -/// of Terminator 'TI' to the 'Dest' BasicBlock. This method performs the -/// mechanics of updating SSA information and revectoring the branch. -/// -void CEE::ForwardSuccessorTo(TerminatorInst *TI, unsigned SuccNo, - BasicBlock *Dest, RegionInfo &RI) { - // If there are any PHI nodes in the Dest BB, we must duplicate the entry - // in the PHI node for the old successor to now include an entry from the - // current basic block. - // - BasicBlock *OldSucc = TI->getSuccessor(SuccNo); - BasicBlock *BB = TI->getParent(); - - DOUT << "Forwarding branch in basic block %" << BB->getName() - << " from block %" << OldSucc->getName() << " to block %" - << Dest->getName() << "\n" - << "Before forwarding: " << *BB->getParent(); - - // Because we know that there cannot be critical edges in the flow graph, and - // that OldSucc has multiple outgoing edges, this means that Dest cannot have - // multiple incoming edges. - // -#ifndef NDEBUG - pred_iterator DPI = pred_begin(Dest); ++DPI; - assert(DPI == pred_end(Dest) && "Critical edge found!!"); -#endif - - // Loop over any PHI nodes in the destination, eliminating them, because they - // may only have one input. - // - while (PHINode *PN = dyn_cast(&Dest->front())) { - assert(PN->getNumIncomingValues() == 1 && "Crit edge found!"); - // Eliminate the PHI node - PN->replaceAllUsesWith(PN->getIncomingValue(0)); - Dest->getInstList().erase(PN); - } - - // If there are values defined in the "OldSucc" basic block, we need to insert - // PHI nodes in the regions we are dealing with to emulate them. This can - // insert dead phi nodes, but it is more trouble to see if they are used than - // to just blindly insert them. - // - if (DT->dominates(OldSucc, Dest)) { - // RegionExitBlocks - Find all of the blocks that are not dominated by Dest, - // but have predecessors that are. Additionally, prune down the set to only - // include blocks that are dominated by OldSucc as well. - // - std::vector RegionExitBlocks; - CalculateRegionExitBlocks(Dest, OldSucc, RegionExitBlocks); - - for (BasicBlock::iterator I = OldSucc->begin(), E = OldSucc->end(); - I != E; ++I) - if (I->getType() != Type::VoidTy) { - // Create and insert the PHI node into the top of Dest. - PHINode *NewPN = new PHINode(I->getType(), I->getName()+".fw_merge", - Dest->begin()); - // There is definitely an edge from OldSucc... add the edge now - NewPN->addIncoming(I, OldSucc); - - // There is also an edge from BB now, add the edge with the calculated - // value from the RI. - NewPN->addIncoming(getReplacementOrValue(I, RI), BB); - - // Make everything in the Dest region use the new PHI node now... - ReplaceUsesOfValueInRegion(I, NewPN, Dest); - - // Make sure that exits out of the region dominated by NewPN get PHI - // nodes that merge the values as appropriate. - InsertRegionExitMerges(NewPN, I, RegionExitBlocks); - } - } - - // If there were PHI nodes in OldSucc, we need to remove the entry for this - // edge from the PHI node, and we need to replace any references to the PHI - // node with a new value. - // - for (BasicBlock::iterator I = OldSucc->begin(); isa(I); ) { - PHINode *PN = cast(I); - - // Get the value flowing across the old edge and remove the PHI node entry - // for this edge: we are about to remove the edge! Don't remove the PHI - // node yet though if this is the last edge into it. - Value *EdgeValue = PN->removeIncomingValue(BB, false); - - // Make sure that anything that used to use PN now refers to EdgeValue - ReplaceUsesOfValueInRegion(PN, EdgeValue, Dest); - - // If there is only one value left coming into the PHI node, replace the PHI - // node itself with the one incoming value left. - // - if (PN->getNumIncomingValues() == 1) { - assert(PN->getNumIncomingValues() == 1); - PN->replaceAllUsesWith(PN->getIncomingValue(0)); - PN->getParent()->getInstList().erase(PN); - I = OldSucc->begin(); - } else if (PN->getNumIncomingValues() == 0) { // Nuke the PHI - // If we removed the last incoming value to this PHI, nuke the PHI node - // now. - PN->replaceAllUsesWith(Constant::getNullValue(PN->getType())); - PN->getParent()->getInstList().erase(PN); - I = OldSucc->begin(); - } else { - ++I; // Otherwise, move on to the next PHI node - } - } - - // Actually revector the branch now... - TI->setSuccessor(SuccNo, Dest); - - // If we just introduced a critical edge in the flow graph, make sure to break - // it right away... - SplitCriticalEdge(TI, SuccNo, this); - - // Make sure that we don't introduce critical edges from oldsucc now! - for (unsigned i = 0, e = OldSucc->getTerminator()->getNumSuccessors(); - i != e; ++i) - SplitCriticalEdge(OldSucc->getTerminator(), i, this); - - // Since we invalidated the CFG, recalculate the dominator set so that it is - // useful for later processing! - // FIXME: This is much worse than it really should be! - //EF->recalculate(); - - DOUT << "After forwarding: " << *BB->getParent(); -} - -/// ReplaceUsesOfValueInRegion - This method replaces all uses of Orig with uses -/// of New. It only affects instructions that are defined in basic blocks that -/// are dominated by Head. -/// -void CEE::ReplaceUsesOfValueInRegion(Value *Orig, Value *New, - BasicBlock *RegionDominator) { - assert(Orig != New && "Cannot replace value with itself"); - std::vector InstsToChange; - std::vector PHIsToChange; - InstsToChange.reserve(Orig->getNumUses()); - - // Loop over instructions adding them to InstsToChange vector, this allows us - // an easy way to avoid invalidating the use_iterator at a bad time. - for (Value::use_iterator I = Orig->use_begin(), E = Orig->use_end(); - I != E; ++I) - if (Instruction *User = dyn_cast(*I)) - if (DT->dominates(RegionDominator, User->getParent())) - InstsToChange.push_back(User); - else if (PHINode *PN = dyn_cast(User)) { - PHIsToChange.push_back(PN); - } - - // PHIsToChange contains PHI nodes that use Orig that do not live in blocks - // dominated by orig. If the block the value flows in from is dominated by - // RegionDominator, then we rewrite the PHI - for (unsigned i = 0, e = PHIsToChange.size(); i != e; ++i) { - PHINode *PN = PHIsToChange[i]; - for (unsigned j = 0, e = PN->getNumIncomingValues(); j != e; ++j) - if (PN->getIncomingValue(j) == Orig && - DT->dominates(RegionDominator, PN->getIncomingBlock(j))) - PN->setIncomingValue(j, New); - } - - // Loop over the InstsToChange list, replacing all uses of Orig with uses of - // New. This list contains all of the instructions in our region that use - // Orig. - for (unsigned i = 0, e = InstsToChange.size(); i != e; ++i) - if (PHINode *PN = dyn_cast(InstsToChange[i])) { - // PHINodes must be handled carefully. If the PHI node itself is in the - // region, we have to make sure to only do the replacement for incoming - // values that correspond to basic blocks in the region. - for (unsigned j = 0, e = PN->getNumIncomingValues(); j != e; ++j) - if (PN->getIncomingValue(j) == Orig && - DT->dominates(RegionDominator, PN->getIncomingBlock(j))) - PN->setIncomingValue(j, New); - - } else { - InstsToChange[i]->replaceUsesOfWith(Orig, New); - } -} - -static void CalcRegionExitBlocks(BasicBlock *Header, BasicBlock *BB, - std::set &Visited, - DominatorTree &DT, - std::vector &RegionExitBlocks) { - if (Visited.count(BB)) return; - Visited.insert(BB); - - if (DT.dominates(Header, BB)) { // Block in the region, recursively traverse - for (succ_iterator I = succ_begin(BB), E = succ_end(BB); I != E; ++I) - CalcRegionExitBlocks(Header, *I, Visited, DT, RegionExitBlocks); - } else { - // Header does not dominate this block, but we have a predecessor that does - // dominate us. Add ourself to the list. - RegionExitBlocks.push_back(BB); - } -} - -/// CalculateRegionExitBlocks - Find all of the blocks that are not dominated by -/// BB, but have predecessors that are. Additionally, prune down the set to -/// only include blocks that are dominated by OldSucc as well. -/// -void CEE::CalculateRegionExitBlocks(BasicBlock *BB, BasicBlock *OldSucc, - std::vector &RegionExitBlocks){ - std::set Visited; // Don't infinite loop - - // Recursively calculate blocks we are interested in... - CalcRegionExitBlocks(BB, BB, Visited, *DT, RegionExitBlocks); - - // Filter out blocks that are not dominated by OldSucc... - for (unsigned i = 0; i != RegionExitBlocks.size(); ) { - if (DT->dominates(OldSucc, RegionExitBlocks[i])) - ++i; // Block is ok, keep it. - else { - // Move to end of list... - std::swap(RegionExitBlocks[i], RegionExitBlocks.back()); - RegionExitBlocks.pop_back(); // Nuke the end - } - } -} - -void CEE::InsertRegionExitMerges(PHINode *BBVal, Instruction *OldVal, - const std::vector &RegionExitBlocks) { - assert(BBVal->getType() == OldVal->getType() && "Should be derived values!"); - BasicBlock *BB = BBVal->getParent(); - - // Loop over all of the blocks we have to place PHIs in, doing it. - for (unsigned i = 0, e = RegionExitBlocks.size(); i != e; ++i) { - BasicBlock *FBlock = RegionExitBlocks[i]; // Block on the frontier - - // Create the new PHI node - PHINode *NewPN = new PHINode(BBVal->getType(), - OldVal->getName()+".fw_frontier", - FBlock->begin()); - - // Add an incoming value for every predecessor of the block... - for (pred_iterator PI = pred_begin(FBlock), PE = pred_end(FBlock); - PI != PE; ++PI) { - // If the incoming edge is from the region dominated by BB, use BBVal, - // otherwise use OldVal. - NewPN->addIncoming(DT->dominates(BB, *PI) ? BBVal : OldVal, *PI); - } - - // Now make everyone dominated by this block use this new value! - ReplaceUsesOfValueInRegion(OldVal, NewPN, FBlock); - } -} - - - -// BuildRankMap - This method builds the rank map data structure which gives -// each instruction/value in the function a value based on how early it appears -// in the function. We give constants and globals rank 0, arguments are -// numbered starting at one, and instructions are numbered in reverse post-order -// from where the arguments leave off. This gives instructions in loops higher -// values than instructions not in loops. -// -void CEE::BuildRankMap(Function &F) { - unsigned Rank = 1; // Skip rank zero. - - // Number the arguments... - for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end(); I != E; ++I) - RankMap[I] = Rank++; - - // Number the instructions in reverse post order... - ReversePostOrderTraversal RPOT(&F); - for (ReversePostOrderTraversal::rpo_iterator I = RPOT.begin(), - E = RPOT.end(); I != E; ++I) - for (BasicBlock::iterator BBI = (*I)->begin(), E = (*I)->end(); - BBI != E; ++BBI) - if (BBI->getType() != Type::VoidTy) - RankMap[BBI] = Rank++; -} - - -// PropagateBranchInfo - When this method is invoked, we need to propagate -// information derived from the branch condition into the true and false -// branches of BI. Since we know that there aren't any critical edges in the -// flow graph, this can proceed unconditionally. -// -void CEE::PropagateBranchInfo(BranchInst *BI) { - assert(BI->isConditional() && "Must be a conditional branch!"); - - // Propagate information into the true block... - // - PropagateEquality(BI->getCondition(), ConstantInt::getTrue(), - getRegionInfo(BI->getSuccessor(0))); - - // Propagate information into the false block... - // - PropagateEquality(BI->getCondition(), ConstantInt::getFalse(), - getRegionInfo(BI->getSuccessor(1))); -} - - -// PropagateSwitchInfo - We need to propagate the value tested by the -// switch statement through each case block. -// -void CEE::PropagateSwitchInfo(SwitchInst *SI) { - // Propagate information down each of our non-default case labels. We - // don't yet propagate information down the default label, because a - // potentially large number of inequality constraints provide less - // benefit per unit work than a single equality constraint. - // - Value *cond = SI->getCondition(); - for (unsigned i = 1; i < SI->getNumSuccessors(); ++i) - PropagateEquality(cond, SI->getSuccessorValue(i), - getRegionInfo(SI->getSuccessor(i))); -} - - -// PropagateEquality - If we discover that two values are equal to each other in -// a specified region, propagate this knowledge recursively. -// -void CEE::PropagateEquality(Value *Op0, Value *Op1, RegionInfo &RI) { - if (Op0 == Op1) return; // Gee whiz. Are these really equal each other? - - if (isa(Op0)) // Make sure the constant is always Op1 - std::swap(Op0, Op1); - - // Make sure we don't already know these are equal, to avoid infinite loops... - ValueInfo &VI = RI.getValueInfo(Op0); - - // Get information about the known relationship between Op0 & Op1 - Relation &KnownRelation = VI.getRelation(Op1); - - // If we already know they're equal, don't reprocess... - if (KnownRelation.getRelation() == FCmpInst::FCMP_OEQ || - KnownRelation.getRelation() == ICmpInst::ICMP_EQ) - return; - - // If this is boolean, check to see if one of the operands is a constant. If - // it's a constant, then see if the other one is one of a setcc instruction, - // an AND, OR, or XOR instruction. - // - ConstantInt *CB = dyn_cast(Op1); - if (CB && Op1->getType() == Type::Int1Ty) { - if (Instruction *Inst = dyn_cast(Op0)) { - // If we know that this instruction is an AND instruction, and the - // result is true, this means that both operands to the OR are known - // to be true as well. - // - if (CB->getZExtValue() && Inst->getOpcode() == Instruction::And) { - PropagateEquality(Inst->getOperand(0), CB, RI); - PropagateEquality(Inst->getOperand(1), CB, RI); - } - - // If we know that this instruction is an OR instruction, and the result - // is false, this means that both operands to the OR are know to be - // false as well. - // - if (!CB->getZExtValue() && Inst->getOpcode() == Instruction::Or) { - PropagateEquality(Inst->getOperand(0), CB, RI); - PropagateEquality(Inst->getOperand(1), CB, RI); - } - - // If we know that this instruction is a NOT instruction, we know that - // the operand is known to be the inverse of whatever the current - // value is. - // - if (BinaryOperator *BOp = dyn_cast(Inst)) - if (BinaryOperator::isNot(BOp)) - PropagateEquality(BinaryOperator::getNotArgument(BOp), - ConstantInt::get(Type::Int1Ty, - !CB->getZExtValue()), RI); - - // If we know the value of a FCmp instruction, propagate the information - // about the relation into this region as well. - // - if (FCmpInst *FCI = dyn_cast(Inst)) { - if (CB->getZExtValue()) { // If we know the condition is true... - // Propagate info about the LHS to the RHS & RHS to LHS - PropagateRelation(FCI->getPredicate(), FCI->getOperand(0), - FCI->getOperand(1), RI); - PropagateRelation(FCI->getSwappedPredicate(), - FCI->getOperand(1), FCI->getOperand(0), RI); - - } else { // If we know the condition is false... - // We know the opposite of the condition is true... - FCmpInst::Predicate C = FCI->getInversePredicate(); - - PropagateRelation(C, FCI->getOperand(0), FCI->getOperand(1), RI); - PropagateRelation(FCmpInst::getSwappedPredicate(C), - FCI->getOperand(1), FCI->getOperand(0), RI); - } - } - - // If we know the value of a ICmp instruction, propagate the information - // about the relation into this region as well. - // - if (ICmpInst *ICI = dyn_cast(Inst)) { - if (CB->getZExtValue()) { // If we know the condition is true... - // Propagate info about the LHS to the RHS & RHS to LHS - PropagateRelation(ICI->getPredicate(), ICI->getOperand(0), - ICI->getOperand(1), RI); - PropagateRelation(ICI->getSwappedPredicate(), ICI->getOperand(1), - ICI->getOperand(1), RI); - - } else { // If we know the condition is false ... - // We know the opposite of the condition is true... - ICmpInst::Predicate C = ICI->getInversePredicate(); - - PropagateRelation(C, ICI->getOperand(0), ICI->getOperand(1), RI); - PropagateRelation(ICmpInst::getSwappedPredicate(C), - ICI->getOperand(1), ICI->getOperand(0), RI); - } - } - } - } - - // Propagate information about Op0 to Op1 & visa versa - PropagateRelation(ICmpInst::ICMP_EQ, Op0, Op1, RI); - PropagateRelation(ICmpInst::ICMP_EQ, Op1, Op0, RI); - PropagateRelation(FCmpInst::FCMP_OEQ, Op0, Op1, RI); - PropagateRelation(FCmpInst::FCMP_OEQ, Op1, Op0, RI); -} - - -// PropagateRelation - We know that the specified relation is true in all of the -// blocks in the specified region. Propagate the information about Op0 and -// anything derived from it into this region. -// -void CEE::PropagateRelation(unsigned Opcode, Value *Op0, - Value *Op1, RegionInfo &RI) { - assert(Op0->getType() == Op1->getType() && "Equal types expected!"); - - // Constants are already pretty well understood. We will apply information - // about the constant to Op1 in another call to PropagateRelation. - // - if (isa(Op0)) return; - - // Get the region information for this block to update... - ValueInfo &VI = RI.getValueInfo(Op0); - - // Get information about the known relationship between Op0 & Op1 - Relation &Op1R = VI.getRelation(Op1); - - // Quick bailout for common case if we are reprocessing an instruction... - if (Op1R.getRelation() == Opcode) - return; - - // If we already have information that contradicts the current information we - // are propagating, ignore this info. Something bad must have happened! - // - if (Op1R.contradicts(Opcode, VI)) { - Op1R.contradicts(Opcode, VI); - cerr << "Contradiction found for opcode: " - << ((isa(Op0)||isa(Op1)) ? - Instruction::getOpcodeName(Instruction::ICmp) : - Instruction::getOpcodeName(Opcode)) - << "\n"; - Op1R.print(*cerr.stream()); - return; - } - - // If the information propagated is new, then we want process the uses of this - // instruction to propagate the information down to them. - // - if (Op1R.incorporate(Opcode, VI)) - UpdateUsersOfValue(Op0, RI); -} - - -// UpdateUsersOfValue - The information about V in this region has been updated. -// Propagate this to all consumers of the value. -// -void CEE::UpdateUsersOfValue(Value *V, RegionInfo &RI) { - for (Value::use_iterator I = V->use_begin(), E = V->use_end(); - I != E; ++I) - if (Instruction *Inst = dyn_cast(*I)) { - // If this is an instruction using a value that we know something about, - // try to propagate information to the value produced by the - // instruction. We can only do this if it is an instruction we can - // propagate information for (a setcc for example), and we only WANT to - // do this if the instruction dominates this region. - // - // If the instruction doesn't dominate this region, then it cannot be - // used in this region and we don't care about it. If the instruction - // is IN this region, then we will simplify the instruction before we - // get to uses of it anyway, so there is no reason to bother with it - // here. This check is also effectively checking to make sure that Inst - // is in the same function as our region (in case V is a global f.e.). - // - if (DT->properlyDominates(Inst->getParent(), RI.getEntryBlock())) - IncorporateInstruction(Inst, RI); - } -} - -// IncorporateInstruction - We just updated the information about one of the -// operands to the specified instruction. Update the information about the -// value produced by this instruction -// -void CEE::IncorporateInstruction(Instruction *Inst, RegionInfo &RI) { - if (CmpInst *CI = dyn_cast(Inst)) { - // See if we can figure out a result for this instruction... - Relation::KnownResult Result = getCmpResult(CI, RI); - if (Result != Relation::Unknown) { - PropagateEquality(CI, ConstantInt::get(Type::Int1Ty, Result != 0), RI); - } - } -} - - -// ComputeReplacements - Some values are known to be equal to other values in a -// region. For example if there is a comparison of equality between a variable -// X and a constant C, we can replace all uses of X with C in the region we are -// interested in. We generalize this replacement to replace variables with -// other variables if they are equal and there is a variable with lower rank -// than the current one. This offers a canonicalizing property that exposes -// more redundancies for later transformations to take advantage of. -// -void CEE::ComputeReplacements(RegionInfo &RI) { - // Loop over all of the values in the region info map... - for (RegionInfo::iterator I = RI.begin(), E = RI.end(); I != E; ++I) { - ValueInfo &VI = I->second; - - // If we know that this value is a particular constant, set Replacement to - // the constant... - Value *Replacement = 0; - const APInt * Rplcmnt = VI.getBounds().getSingleElement(); - if (Rplcmnt) - Replacement = ConstantInt::get(*Rplcmnt); - - // If this value is not known to be some constant, figure out the lowest - // rank value that it is known to be equal to (if anything). - // - if (Replacement == 0) { - // Find out if there are any equality relationships with values of lower - // rank than VI itself... - unsigned MinRank = getRank(I->first); - - // Loop over the relationships known about Op0. - const std::vector &Relationships = VI.getRelationships(); - for (unsigned i = 0, e = Relationships.size(); i != e; ++i) - if (Relationships[i].getRelation() == FCmpInst::FCMP_OEQ) { - unsigned R = getRank(Relationships[i].getValue()); - if (R < MinRank) { - MinRank = R; - Replacement = Relationships[i].getValue(); - } - } - else if (Relationships[i].getRelation() == ICmpInst::ICMP_EQ) { - unsigned R = getRank(Relationships[i].getValue()); - if (R < MinRank) { - MinRank = R; - Replacement = Relationships[i].getValue(); - } - } - } - - // If we found something to replace this value with, keep track of it. - if (Replacement) - VI.setReplacement(Replacement); - } -} - -// SimplifyBasicBlock - Given information about values in region RI, simplify -// the instructions in the specified basic block. -// -bool CEE::SimplifyBasicBlock(BasicBlock &BB, const RegionInfo &RI) { - bool Changed = false; - for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ) { - Instruction *Inst = I++; - - // Convert instruction arguments to canonical forms... - Changed |= SimplifyInstruction(Inst, RI); - - if (CmpInst *CI = dyn_cast(Inst)) { - // Try to simplify a setcc instruction based on inherited information - Relation::KnownResult Result = getCmpResult(CI, RI); - if (Result != Relation::Unknown) { - DEBUG(cerr << "Replacing icmp with " << Result - << " constant: " << *CI); - - CI->replaceAllUsesWith(ConstantInt::get(Type::Int1Ty, (bool)Result)); - // The instruction is now dead, remove it from the program. - CI->getParent()->getInstList().erase(CI); - ++NumCmpRemoved; - Changed = true; - } - } - } - - return Changed; -} - -// SimplifyInstruction - Inspect the operands of the instruction, converting -// them to their canonical form if possible. This takes care of, for example, -// replacing a value 'X' with a constant 'C' if the instruction in question is -// dominated by a true seteq 'X', 'C'. -// -bool CEE::SimplifyInstruction(Instruction *I, const RegionInfo &RI) { - bool Changed = false; - - for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) - if (const ValueInfo *VI = RI.requestValueInfo(I->getOperand(i))) - if (Value *Repl = VI->getReplacement()) { - // If we know if a replacement with lower rank than Op0, make the - // replacement now. - DOUT << "In Inst: " << *I << " Replacing operand #" << i - << " with " << *Repl << "\n"; - I->setOperand(i, Repl); - Changed = true; - ++NumOperandsCann; - } - - return Changed; -} - -// getCmpResult - Try to simplify a cmp instruction based on information -// inherited from a dominating icmp instruction. V is one of the operands to -// the icmp instruction, and VI is the set of information known about it. We -// take two cases into consideration here. If the comparison is against a -// constant value, we can use the constant range to see if the comparison is -// possible to succeed. If it is not a comparison against a constant, we check -// to see if there is a known relationship between the two values. If so, we -// may be able to eliminate the check. -// -Relation::KnownResult CEE::getCmpResult(CmpInst *CI, - const RegionInfo &RI) { - Value *Op0 = CI->getOperand(0), *Op1 = CI->getOperand(1); - unsigned short predicate = CI->getPredicate(); - - if (isa(Op0)) { - if (isa(Op1)) { - if (Constant *Result = ConstantFoldInstruction(CI)) { - // Wow, this is easy, directly eliminate the ICmpInst. - DEBUG(cerr << "Replacing cmp with constant fold: " << *CI); - return cast(Result)->getZExtValue() - ? Relation::KnownTrue : Relation::KnownFalse; - } - } else { - // We want to swap this instruction so that operand #0 is the constant. - std::swap(Op0, Op1); - if (isa(CI)) - predicate = cast(CI)->getSwappedPredicate(); - else - predicate = cast(CI)->getSwappedPredicate(); - } - } - - // Try to figure out what the result of this comparison will be... - Relation::KnownResult Result = Relation::Unknown; - - // We have to know something about the relationship to prove anything... - if (const ValueInfo *Op0VI = RI.requestValueInfo(Op0)) { - - // At this point, we know that if we have a constant argument that it is in - // Op1. Check to see if we know anything about comparing value with a - // constant, and if we can use this info to fold the icmp. - // - if (ConstantInt *C = dyn_cast(Op1)) { - // Check to see if we already know the result of this comparison... - ICmpInst::Predicate ipred = ICmpInst::Predicate(predicate); - ConstantRange R = ICmpInst::makeConstantRange(ipred, C->getValue()); - ConstantRange Int = R.intersectWith(Op0VI->getBounds()); - - // If the intersection of the two ranges is empty, then the condition - // could never be true! - // - if (Int.isEmptySet()) { - Result = Relation::KnownFalse; - - // Otherwise, if VI.getBounds() (the possible values) is a subset of R - // (the allowed values) then we know that the condition must always be - // true! - // - } else if (Int == Op0VI->getBounds()) { - Result = Relation::KnownTrue; - } - } else { - // If we are here, we know that the second argument is not a constant - // integral. See if we know anything about Op0 & Op1 that allows us to - // fold this anyway. - // - // Do we have value information about Op0 and a relation to Op1? - if (const Relation *Op2R = Op0VI->requestRelation(Op1)) - Result = Op2R->getImpliedResult(predicate); - } - } - return Result; -} - -//===----------------------------------------------------------------------===// -// Relation Implementation -//===----------------------------------------------------------------------===// - -// contradicts - Return true if the relationship specified by the operand -// contradicts already known information. -// -bool Relation::contradicts(unsigned Op, - const ValueInfo &VI) const { - assert (Op != Instruction::Add && "Invalid relation argument!"); - - // If this is a relationship with a constant, make sure that this relationship - // does not contradict properties known about the bounds of the constant. - // - if (ConstantInt *C = dyn_cast(Val)) - if (Op >= ICmpInst::FIRST_ICMP_PREDICATE && - Op <= ICmpInst::LAST_ICMP_PREDICATE) { - ICmpInst::Predicate ipred = ICmpInst::Predicate(Op); - if (ICmpInst::makeConstantRange(ipred, C->getValue()) - .intersectWith(VI.getBounds()).isEmptySet()) - return true; - } - - switch (Rel) { - default: assert(0 && "Unknown Relationship code!"); - case Instruction::Add: return false; // Nothing known, nothing contradicts - case ICmpInst::ICMP_EQ: - return Op == ICmpInst::ICMP_ULT || Op == ICmpInst::ICMP_SLT || - Op == ICmpInst::ICMP_UGT || Op == ICmpInst::ICMP_SGT || - Op == ICmpInst::ICMP_NE; - case ICmpInst::ICMP_NE: return Op == ICmpInst::ICMP_EQ; - case ICmpInst::ICMP_ULE: - case ICmpInst::ICMP_SLE: return Op == ICmpInst::ICMP_UGT || - Op == ICmpInst::ICMP_SGT; - case ICmpInst::ICMP_UGE: - case ICmpInst::ICMP_SGE: return Op == ICmpInst::ICMP_ULT || - Op == ICmpInst::ICMP_SLT; - case ICmpInst::ICMP_ULT: - case ICmpInst::ICMP_SLT: - return Op == ICmpInst::ICMP_EQ || Op == ICmpInst::ICMP_UGT || - Op == ICmpInst::ICMP_SGT || Op == ICmpInst::ICMP_UGE || - Op == ICmpInst::ICMP_SGE; - case ICmpInst::ICMP_UGT: - case ICmpInst::ICMP_SGT: - return Op == ICmpInst::ICMP_EQ || Op == ICmpInst::ICMP_ULT || - Op == ICmpInst::ICMP_SLT || Op == ICmpInst::ICMP_ULE || - Op == ICmpInst::ICMP_SLE; - case FCmpInst::FCMP_OEQ: - return Op == FCmpInst::FCMP_OLT || Op == FCmpInst::FCMP_OGT || - Op == FCmpInst::FCMP_ONE; - case FCmpInst::FCMP_ONE: return Op == FCmpInst::FCMP_OEQ; - case FCmpInst::FCMP_OLE: return Op == FCmpInst::FCMP_OGT; - case FCmpInst::FCMP_OGE: return Op == FCmpInst::FCMP_OLT; - case FCmpInst::FCMP_OLT: - return Op == FCmpInst::FCMP_OEQ || Op == FCmpInst::FCMP_OGT || - Op == FCmpInst::FCMP_OGE; - case FCmpInst::FCMP_OGT: - return Op == FCmpInst::FCMP_OEQ || Op == FCmpInst::FCMP_OLT || - Op == FCmpInst::FCMP_OLE; - } -} - -// incorporate - Incorporate information in the argument into this relation -// entry. This assumes that the information doesn't contradict itself. If any -// new information is gained, true is returned, otherwise false is returned to -// indicate that nothing was updated. -// -bool Relation::incorporate(unsigned Op, ValueInfo &VI) { - assert(!contradicts(Op, VI) && - "Cannot incorporate contradictory information!"); - - // If this is a relationship with a constant, make sure that we update the - // range that is possible for the value to have... - // - if (ConstantInt *C = dyn_cast(Val)) - if (Op >= ICmpInst::FIRST_ICMP_PREDICATE && - Op <= ICmpInst::LAST_ICMP_PREDICATE) { - ICmpInst::Predicate ipred = ICmpInst::Predicate(Op); - VI.getBounds() = - ICmpInst::makeConstantRange(ipred, C->getValue()) - .intersectWith(VI.getBounds()); - } - - switch (Rel) { - default: assert(0 && "Unknown prior value!"); - case Instruction::Add: Rel = Op; return true; - case ICmpInst::ICMP_EQ: - case ICmpInst::ICMP_NE: - case ICmpInst::ICMP_ULT: - case ICmpInst::ICMP_SLT: - case ICmpInst::ICMP_UGT: - case ICmpInst::ICMP_SGT: return false; // Nothing is more precise - case ICmpInst::ICMP_ULE: - case ICmpInst::ICMP_SLE: - if (Op == ICmpInst::ICMP_EQ || Op == ICmpInst::ICMP_ULT || - Op == ICmpInst::ICMP_SLT) { - Rel = Op; - return true; - } else if (Op == ICmpInst::ICMP_NE) { - Rel = Rel == ICmpInst::ICMP_ULE ? ICmpInst::ICMP_ULT : - ICmpInst::ICMP_SLT; - return true; - } - return false; - case ICmpInst::ICMP_UGE: - case ICmpInst::ICMP_SGE: - if (Op == ICmpInst::ICMP_EQ || ICmpInst::ICMP_UGT || - Op == ICmpInst::ICMP_SGT) { - Rel = Op; - return true; - } else if (Op == ICmpInst::ICMP_NE) { - Rel = Rel == ICmpInst::ICMP_UGE ? ICmpInst::ICMP_UGT : - ICmpInst::ICMP_SGT; - return true; - } - return false; - case FCmpInst::FCMP_OEQ: return false; // Nothing is more precise - case FCmpInst::FCMP_ONE: return false; // Nothing is more precise - case FCmpInst::FCMP_OLT: return false; // Nothing is more precise - case FCmpInst::FCMP_OGT: return false; // Nothing is more precise - case FCmpInst::FCMP_OLE: - if (Op == FCmpInst::FCMP_OEQ || Op == FCmpInst::FCMP_OLT) { - Rel = Op; - return true; - } else if (Op == FCmpInst::FCMP_ONE) { - Rel = FCmpInst::FCMP_OLT; - return true; - } - return false; - case FCmpInst::FCMP_OGE: - if (Op == FCmpInst::FCMP_OEQ || Op == FCmpInst::FCMP_OGT) { - Rel = Op; - return true; - } else if (Op == FCmpInst::FCMP_ONE) { - Rel = FCmpInst::FCMP_OGT; - return true; - } - return false; - } -} - -// getImpliedResult - If this relationship between two values implies that -// the specified relationship is true or false, return that. If we cannot -// determine the result required, return Unknown. -// -Relation::KnownResult -Relation::getImpliedResult(unsigned Op) const { - if (Rel == Op) return KnownTrue; - if (Op >= ICmpInst::FIRST_ICMP_PREDICATE && - Op <= ICmpInst::LAST_ICMP_PREDICATE) { - if (Rel == unsigned(ICmpInst::getInversePredicate(ICmpInst::Predicate(Op)))) - return KnownFalse; - } else if (Op <= FCmpInst::LAST_FCMP_PREDICATE) { - if (Rel == unsigned(FCmpInst::getInversePredicate(FCmpInst::Predicate(Op)))) - return KnownFalse; - } - - switch (Rel) { - default: assert(0 && "Unknown prior value!"); - case ICmpInst::ICMP_EQ: - if (Op == ICmpInst::ICMP_ULE || Op == ICmpInst::ICMP_SLE || - Op == ICmpInst::ICMP_UGE || Op == ICmpInst::ICMP_SGE) return KnownTrue; - if (Op == ICmpInst::ICMP_ULT || Op == ICmpInst::ICMP_SLT || - Op == ICmpInst::ICMP_UGT || Op == ICmpInst::ICMP_SGT) return KnownFalse; - break; - case ICmpInst::ICMP_ULT: - case ICmpInst::ICMP_SLT: - if (Op == ICmpInst::ICMP_ULE || Op == ICmpInst::ICMP_SLE || - Op == ICmpInst::ICMP_NE) return KnownTrue; - if (Op == ICmpInst::ICMP_EQ) return KnownFalse; - break; - case ICmpInst::ICMP_UGT: - case ICmpInst::ICMP_SGT: - if (Op == ICmpInst::ICMP_UGE || Op == ICmpInst::ICMP_SGE || - Op == ICmpInst::ICMP_NE) return KnownTrue; - if (Op == ICmpInst::ICMP_EQ) return KnownFalse; - break; - case FCmpInst::FCMP_OEQ: - if (Op == FCmpInst::FCMP_OLE || Op == FCmpInst::FCMP_OGE) return KnownTrue; - if (Op == FCmpInst::FCMP_OLT || Op == FCmpInst::FCMP_OGT) return KnownFalse; - break; - case FCmpInst::FCMP_OLT: - if (Op == FCmpInst::FCMP_ONE || Op == FCmpInst::FCMP_OLE) return KnownTrue; - if (Op == FCmpInst::FCMP_OEQ) return KnownFalse; - break; - case FCmpInst::FCMP_OGT: - if (Op == FCmpInst::FCMP_ONE || Op == FCmpInst::FCMP_OGE) return KnownTrue; - if (Op == FCmpInst::FCMP_OEQ) return KnownFalse; - break; - case ICmpInst::ICMP_NE: - case ICmpInst::ICMP_SLE: - case ICmpInst::ICMP_ULE: - case ICmpInst::ICMP_UGE: - case ICmpInst::ICMP_SGE: - case FCmpInst::FCMP_ONE: - case FCmpInst::FCMP_OLE: - case FCmpInst::FCMP_OGE: - case FCmpInst::FCMP_FALSE: - case FCmpInst::FCMP_ORD: - case FCmpInst::FCMP_UNO: - case FCmpInst::FCMP_UEQ: - case FCmpInst::FCMP_UGT: - case FCmpInst::FCMP_UGE: - case FCmpInst::FCMP_ULT: - case FCmpInst::FCMP_ULE: - case FCmpInst::FCMP_UNE: - case FCmpInst::FCMP_TRUE: - break; - } - return Unknown; -} - - -//===----------------------------------------------------------------------===// -// Printing Support... -//===----------------------------------------------------------------------===// - -// print - Implement the standard print form to print out analysis information. -void CEE::print(std::ostream &O, const Module *M) const { - O << "\nPrinting Correlated Expression Info:\n"; - for (std::map::const_iterator I = - RegionInfoMap.begin(), E = RegionInfoMap.end(); I != E; ++I) - I->second.print(O); -} - -// print - Output information about this region... -void RegionInfo::print(std::ostream &OS) const { - if (ValueMap.empty()) return; - - OS << " RegionInfo for basic block: " << BB->getName() << "\n"; - for (std::map::const_iterator - I = ValueMap.begin(), E = ValueMap.end(); I != E; ++I) - I->second.print(OS, I->first); - OS << "\n"; -} - -// print - Output information about this value relation... -void ValueInfo::print(std::ostream &OS, Value *V) const { - if (Relationships.empty()) return; - - if (V) { - OS << " ValueInfo for: "; - WriteAsOperand(OS, V); - } - OS << "\n Bounds = " << Bounds << "\n"; - if (Replacement) { - OS << " Replacement = "; - WriteAsOperand(OS, Replacement); - OS << "\n"; - } - for (unsigned i = 0, e = Relationships.size(); i != e; ++i) - Relationships[i].print(OS); -} - -// print - Output this relation to the specified stream -void Relation::print(std::ostream &OS) const { - OS << " is "; - switch (Rel) { - default: OS << "*UNKNOWN*"; break; - case ICmpInst::ICMP_EQ: - case FCmpInst::FCMP_ORD: - case FCmpInst::FCMP_UEQ: - case FCmpInst::FCMP_OEQ: OS << "== "; break; - case ICmpInst::ICMP_NE: - case FCmpInst::FCMP_UNO: - case FCmpInst::FCMP_UNE: - case FCmpInst::FCMP_ONE: OS << "!= "; break; - case ICmpInst::ICMP_ULT: - case ICmpInst::ICMP_SLT: - case FCmpInst::FCMP_ULT: - case FCmpInst::FCMP_OLT: OS << "< "; break; - case ICmpInst::ICMP_UGT: - case ICmpInst::ICMP_SGT: - case FCmpInst::FCMP_UGT: - case FCmpInst::FCMP_OGT: OS << "> "; break; - case ICmpInst::ICMP_ULE: - case ICmpInst::ICMP_SLE: - case FCmpInst::FCMP_ULE: - case FCmpInst::FCMP_OLE: OS << "<= "; break; - case ICmpInst::ICMP_UGE: - case ICmpInst::ICMP_SGE: - case FCmpInst::FCMP_UGE: - case FCmpInst::FCMP_OGE: OS << ">= "; break; - } - - WriteAsOperand(OS, Val); - OS << "\n"; -} - -// Don't inline these methods or else we won't be able to call them from GDB! -void Relation::dump() const { print(*cerr.stream()); } -void ValueInfo::dump() const { print(*cerr.stream(), 0); } -void RegionInfo::dump() const { print(*cerr.stream()); } From isanbard at gmail.com Sun Jan 27 00:13:32 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sun, 27 Jan 2008 06:13:32 -0000 Subject: [llvm-commits] [llvm] r46409 - /llvm/trunk/test/Transforms/CorrelatedExprs/ Message-ID: <200801270613.m0R6DWRk026817@zion.cs.uiuc.edu> Author: void Date: Sun Jan 27 00:13:32 2008 New Revision: 46409 URL: http://llvm.org/viewvc/llvm-project?rev=46409&view=rev Log: The CorrelatedExpressions pass is now no more. Removed: llvm/trunk/test/Transforms/CorrelatedExprs/ From sabre at nondot.org Sun Jan 27 00:19:08 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 06:19:08 -0000 Subject: [llvm-commits] [llvm] r46410 - /llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Message-ID: <200801270619.m0R6J8m0026984@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 00:19:08 2008 New Revision: 46410 URL: http://llvm.org/viewvc/llvm-project?rev=46410&view=rev Log: make isExactlyValue work for long double. Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=46410&r1=46409&r2=46410&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original) +++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Sun Jan 27 00:19:08 2008 @@ -1208,10 +1208,9 @@ /// convenient to write "2.0" and the like. Without this function we'd /// have to duplicate its logic everywhere it's called. bool isExactlyValue(double V) const { - if (getValueType(0)==MVT::f64) - return isExactlyValue(APFloat(V)); - else - return isExactlyValue(APFloat((float)V)); + APFloat Tmp(V); + Tmp.convert(Value.getSemantics(), APFloat::rmNearestTiesToEven); + return isExactlyValue(Tmp); } bool isExactlyValue(const APFloat& V) const; From sabre at nondot.org Sun Jan 27 00:19:32 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 06:19:32 -0000 Subject: [llvm-commits] [llvm] r46411 - /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Message-ID: <200801270619.m0R6JW0D027004@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 00:19:31 2008 New Revision: 46411 URL: http://llvm.org/viewvc/llvm-project?rev=46411&view=rev Log: Use fldz and fld1 for long double constants instead of a constant pool load. Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=46411&r1=46410&r2=46411&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original) +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sun Jan 27 00:19:31 2008 @@ -455,7 +455,20 @@ addRegisterClass(MVT::f80, X86::RFP80RegisterClass); setOperationAction(ISD::UNDEF, MVT::f80, Expand); setOperationAction(ISD::FCOPYSIGN, MVT::f80, Expand); - setOperationAction(ISD::ConstantFP, MVT::f80, Expand); + { + setOperationAction(ISD::ConstantFP, MVT::f80, Expand); + APFloat TmpFlt(+0.0); + TmpFlt.convert(APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven); + addLegalFPImmediate(TmpFlt); // FLD0 + TmpFlt.changeSign(); + addLegalFPImmediate(TmpFlt); // FLD0/FCHS + APFloat TmpFlt2(+1.0); + TmpFlt2.convert(APFloat::x87DoubleExtended, APFloat::rmNearestTiesToEven); + addLegalFPImmediate(TmpFlt2); // FLD1 + TmpFlt2.changeSign(); + addLegalFPImmediate(TmpFlt2); // FLD1/FCHS + } + if (!UnsafeFPMath) { setOperationAction(ISD::FSIN , MVT::f80 , Expand); setOperationAction(ISD::FCOS , MVT::f80 , Expand); From sabre at nondot.org Sun Jan 27 01:18:20 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 07:18:20 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46412 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h config/i386/llvm-i386.cpp llvm-abi.h llvm-convert.cpp Message-ID: <200801270718.m0R7ILEx028732@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 01:18:20 2008 New Revision: 46412 URL: http://llvm.org/viewvc/llvm-project?rev=46412&view=rev Log: Change x86-32 aggregate passing code to pass many aggregates "by pieces" instead of passing them with byval. This allows us to get significantly better code without affecting the ABI (because x86-32 passes stuff on the stack). Most significantly, we pass _Complex as a two scalar fp values now. For example, before we compiled ccosf to: _ccosf: pushl %ebp movl %esp, %ebp pushl %edi pushl %esi subl $16, %esp movss 12(%ebp), %xmm0 xorps LCPI1_0, %xmm0 movss 8(%ebp), %xmm1 movss %xmm0, -16(%ebp) movss %xmm1, -12(%ebp) leal -16(%ebp), %esi movl $2, %ecx movl %esp, %edi rep;movsl call _ccoshf addl $16, %esp popl %esi popl %edi popl %ebp ret now we get: _ccosf: pushl %ebp movl %esp, %ebp subl $8, %esp movss 8(%ebp), %xmm0 movss %xmm0, 4(%esp) movss 12(%ebp), %xmm0 xorps LCPI1_0, %xmm0 movss %xmm0, (%esp) call _ccoshf addl $8, %esp popl %ebp ret Evan, please review this. Thanks! Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp llvm-gcc-4.2/trunk/gcc/llvm-abi.h llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=46412&r1=46411&r2=46412&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Sun Jan 27 01:18:20 2008 @@ -62,20 +62,24 @@ } \ } -extern bool llvm_x86_should_pass_aggregate_in_memory(tree); +#ifdef LLVM_ABI_H +extern bool llvm_x86_should_pass_aggregate_in_memory(tree, const Type *); -#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) \ - llvm_x86_should_pass_aggregate_in_memory(X) +#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X, TY) \ + llvm_x86_should_pass_aggregate_in_memory(X, TY) -#ifdef LLVM_ABI_H extern bool -llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree, +llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree, const Type *Ty, + std::vector&); +extern bool +llvm_x86_32_should_pass_aggregate_in_mixed_regs(tree, const Type *Ty, std::vector&); -#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) \ - (TARGET_64BIT && \ - llvm_x86_64_should_pass_aggregate_in_mixed_regs((T), (E))) +#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, TY, E) \ + (TARGET_64BIT ? \ + llvm_x86_64_should_pass_aggregate_in_mixed_regs((T), (TY), (E)) : \ + llvm_x86_32_should_pass_aggregate_in_mixed_regs((T), (TY), (E))) #endif /* LLVM_ABI_H */ /* LLVM LOCAL end (ENTIRE FILE!) */ Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=46412&r1=46411&r2=46412&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Sun Jan 27 01:18:20 2008 @@ -691,7 +691,7 @@ /* Target hook for llvm-abi.h. It returns true if an aggregate of the specified type should be passed in memory. */ -bool llvm_x86_should_pass_aggregate_in_memory(tree TreeType) { +bool llvm_x86_should_pass_aggregate_in_memory(tree TreeType, const Type *Ty) { enum machine_mode Mode = ix86_getNaturalModeForType(TreeType); HOST_WIDE_INT Bytes = (Mode == BLKmode) ? int_size_in_bytes(TreeType) : (int) GET_MODE_SIZE(Mode); @@ -706,8 +706,10 @@ if (llvm_x86_is_all_integer_types(Ty)) return false; } - if (!TARGET_64BIT) - return true; + if (!TARGET_64BIT) { + std::vector Elts; + return !llvm_x86_32_should_pass_aggregate_in_mixed_regs(TreeType, Ty, Elts); + } return llvm_x86_64_should_pass_aggregate_in_memory(TreeType, Mode); } @@ -716,7 +718,7 @@ It also returns a vector of types that correspond to the registers used for parameter passing. This is only called for x86-64. */ bool -llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree TreeType, +llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree TreeType, const Type *Ty, std::vector &Elts){ enum x86_64_reg_class Class[MAX_CLASSES]; enum machine_mode Mode = ix86_getNaturalModeForType(TreeType); @@ -799,4 +801,45 @@ return true; } +/* Target hook for llvm-abi.h. It returns true if an aggregate of the + specified type should be passed in a number of registers of mixed types. + It also returns a vector of types that correspond to the registers used + for parameter passing. This is only called for x86-32. */ +bool +llvm_x86_32_should_pass_aggregate_in_mixed_regs(tree TreeType, const Type *Ty, + std::vector &Elts){ + // If this is a small fixed size type, investigate it. + HOST_WIDE_INT SrcSize = int_size_in_bytes(TreeType); + if (SrcSize <= 0 || SrcSize > 128) + return false; + + // X86-32 passes aggregates on the stack. If this is an extremely simple + // aggregate whose elements would be passed the same if passed as scalars, + // pass them that way in order to promote SROA on the caller and callee side. + // Note that we can't support passing all structs this way. For example, + // {i16, i16} should be passed in on 32-bit unit, which is not how "i16, i16" + // would be passed as stand-alone arguments. + const StructType *STy = dyn_cast(Ty); + if (!STy || STy->isPacked()) return false; + + for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) { + const Type *EltTy = STy->getElementType(i); + // 32 and 64-bit integers are fine, as are float, double, and long double. + if (EltTy == Type::Int32Ty || + EltTy == Type::Int64Ty || + EltTy->isFloatingPoint() || + isa(EltTy)) { + Elts.push_back(EltTy); + continue; + } + + // TODO: Vectors are also ok to pass if they don't require extra alignment. + // TODO: We can also pass structs like {i8, i32}. + + Elts.clear(); + return false; + } + + return true; +} /* LLVM LOCAL end (ENTIRE FILE!) */ Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46412&r1=46411&r2=46412&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Sun Jan 27 01:18:20 2008 @@ -124,7 +124,7 @@ // value should be passed by value, i.e. passing its address with the byval // attribute bit set. The default is false. #ifndef LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR -#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) \ +#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X, TY) \ false #endif @@ -133,7 +133,7 @@ // registers. The routine should also return by reference a vector of the // types of the registers being used. The default is false. #ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS -#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) \ +#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, TY, E) \ false #endif @@ -212,55 +212,52 @@ /// their fields. void HandleArgument(tree type, uint16_t *Attributes = NULL) { const Type *Ty = ConvertType(type); - + std::vector Elts; if (isPassedByInvisibleReference(type)) { // variable size -> by-ref. C.HandleScalarArgument(PointerType::getUnqual(Ty), type); } else if (Ty->isFirstClassType()) { C.HandleScalarArgument(Ty, type); - } else if (LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(type)) { + } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(type, Ty, Elts)) { + PassInMixedRegisters(type, Ty, Elts); + } else if (LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(type, Ty)) { C.HandleByValArgument(Ty, type); if (Attributes) *Attributes |= ParamAttr::ByVal; - } else { - std::vector Elts; - if (LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(type, Elts)) { - PassInMixedRegisters(type, Ty, Elts); - } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { - PassInIntegerRegisters(type, Ty); - } else if (isAggregateOfSizeZero(type)) { - // Zero sized aggregate, just drop it! - ; - } else if (TREE_CODE(type) == RECORD_TYPE) { - for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) - if (TREE_CODE(Field) == FIELD_DECL) { - unsigned FNo = GetFieldIndex(Field); - assert(FNo != ~0U && "Case not handled yet!"); - - C.EnterField(FNo, Ty); - HandleArgument(getDeclaredType(Field)); - C.ExitField(); - } - } else if (TREE_CODE(type) == COMPLEX_TYPE) { - C.EnterField(0, Ty); - HandleArgument(TREE_TYPE(type)); - C.ExitField(); - C.EnterField(1, Ty); - HandleArgument(TREE_TYPE(type)); - C.ExitField(); - } else if ((TREE_CODE(type) == UNION_TYPE) || - (TREE_CODE(type) == QUAL_UNION_TYPE)) { - HandleUnion(type); - } else if (TREE_CODE(type) == ARRAY_TYPE) { - const ArrayType *ATy = cast(Ty); - for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) { - C.EnterField(i, Ty); - HandleArgument(TREE_TYPE(type)); + } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { + PassInIntegerRegisters(type, Ty); + } else if (isAggregateOfSizeZero(type)) { + // Zero sized aggregate, just drop it! + ; + } else if (TREE_CODE(type) == RECORD_TYPE) { + for (tree Field = TYPE_FIELDS(type); Field; Field = TREE_CHAIN(Field)) + if (TREE_CODE(Field) == FIELD_DECL) { + unsigned FNo = GetFieldIndex(Field); + assert(FNo != ~0U && "Case not handled yet!"); + + C.EnterField(FNo, Ty); + HandleArgument(getDeclaredType(Field)); C.ExitField(); } - } else { - assert(0 && "unknown aggregate type!"); - abort(); + } else if (TREE_CODE(type) == COMPLEX_TYPE) { + C.EnterField(0, Ty); + HandleArgument(TREE_TYPE(type)); + C.ExitField(); + C.EnterField(1, Ty); + HandleArgument(TREE_TYPE(type)); + C.ExitField(); + } else if ((TREE_CODE(type) == UNION_TYPE) || + (TREE_CODE(type) == QUAL_UNION_TYPE)) { + HandleUnion(type); + } else if (TREE_CODE(type) == ARRAY_TYPE) { + const ArrayType *ATy = cast(Ty); + for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) { + C.EnterField(i, Ty); + HandleArgument(TREE_TYPE(type)); + C.ExitField(); } + } else { + assert(0 && "unknown aggregate type!"); + abort(); } } Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46412&r1=46411&r2=46412&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Sun Jan 27 01:18:20 2008 @@ -682,7 +682,7 @@ const Type *ArgTy = ConvertType(TREE_TYPE(Args)); if (isPassedByInvisibleReference(TREE_TYPE(Args)) || (!ArgTy->isFirstClassType() && - LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(TREE_TYPE(Args)))) { + LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(TREE_TYPE(Args), ArgTy))) { // If the value is passed by 'invisible reference' or 'byval reference', // the l-value for the argument IS the argument itself. SET_DECL_LLVM(Args, AI); From sabre at nondot.org Sun Jan 27 01:31:42 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 07:31:42 -0000 Subject: [llvm-commits] [llvm] r46413 - /llvm/trunk/lib/Target/X86/README-SSE.txt Message-ID: <200801270731.m0R7VgP6029107@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 01:31:41 2008 New Revision: 46413 URL: http://llvm.org/viewvc/llvm-project?rev=46413&view=rev Log: add a note Modified: llvm/trunk/lib/Target/X86/README-SSE.txt Modified: llvm/trunk/lib/Target/X86/README-SSE.txt URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/README-SSE.txt?rev=46413&r1=46412&r2=46413&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/README-SSE.txt (original) +++ llvm/trunk/lib/Target/X86/README-SSE.txt Sun Jan 27 01:31:41 2008 @@ -722,3 +722,42 @@ vec_align.ll without -relocation-model=static, you'll see what I mean. //===---------------------------------------------------------------------===// + +We should lower store(fneg(load p), q) into an integer load+xor+store, which +eliminates a constant pool load. For example, consider: + +define i64 @ccosf(float %z.0, float %z.1) nounwind readonly { +entry: + %tmp6 = sub float -0.000000e+00, %z.1 ; [#uses=1] + %tmp20 = tail call i64 @ccoshf( float %tmp6, float %z.0 ) nounwind readonly ; [#uses=1] + ret i64 %tmp20 +} + +This currently compiles to: + +LCPI1_0: # <4 x float> + .long 2147483648 # float -0 + .long 2147483648 # float -0 + .long 2147483648 # float -0 + .long 2147483648 # float -0 +_ccosf: + subl $12, %esp + movss 16(%esp), %xmm0 + movss %xmm0, 4(%esp) + movss 20(%esp), %xmm0 + xorps LCPI1_0, %xmm0 + movss %xmm0, (%esp) + call L_ccoshf$stub + addl $12, %esp + ret + +Note the load into xmm0, then xor (to negate), then store. In PIC mode, +this code computes the pic base and does two loads to do the constant pool +load, so the improvement is much bigger. + +The tricky part about this xform is that the argument load/store isn't exposed +until post-legalize, and at that point, the fneg has been custom expanded into +an X86 fxor. This means that we need to handle this case in the x86 backend +instead of in target independent code. + +//===---------------------------------------------------------------------===// From baldrick at free.fr Sun Jan 27 03:03:56 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 10:03:56 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <0A01F174-BCA6-4150-B44B-DBA9C8DA71D6@apple.com> References: <200801260725.03963.baldrick@free.fr> <0A01F174-BCA6-4150-B44B-DBA9C8DA71D6@apple.com> Message-ID: <200801271003.57799.baldrick@free.fr> Hi Evan, > Can you get me a test case? I need to see what gcc is doing. Thanks, Sure. Zero sized fields in structs may not be very useful, but it is still legal to use them, in particular you can take their address, like this: struct Z {}; struct Y { int i; struct Z z; }; void *f(struct Y *y) { return &y->z; } This used to work before your patch. For that matter, llvm-gcc-4.2 itself fails to build here (linux x86-32; crashes compiling libgcov.c) for what looks to be the same reason. Also, don't forget that Ada can have fields of variable size in various places in a struct, and these can be represented by zero-size LLVM fields (this kind of struct doesn't get passed to functions by copy though). Can you please explain why you made this change (a testcase would be good). Best wishes, Duncan. From isanbard at gmail.com Sun Jan 27 03:14:18 2008 From: isanbard at gmail.com (Bill Wendling) Date: Sun, 27 Jan 2008 01:14:18 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <200801271003.57799.baldrick@free.fr> References: <200801260725.03963.baldrick@free.fr> <0A01F174-BCA6-4150-B44B-DBA9C8DA71D6@apple.com> <200801271003.57799.baldrick@free.fr> Message-ID: <927CE787-840B-4D40-8136-6C6E3ADCB1BD@gmail.com> On Jan 27, 2008, at 1:03 AM, Duncan Sands wrote: > Hi Evan, > >> Can you get me a test case? I need to see what gcc is doing. Thanks, > > Sure. Zero sized fields in structs may not be very useful, but it is > still legal to use them, in particular you can take their address, > like this: > > struct Z {}; > > struct Y { > int i; > struct Z z; > }; > > void *f(struct Y *y) { > return &y->z; > } > > This used to work before your patch. For that matter, llvm-gcc-4.2 > itself fails to build here (linux x86-32; crashes compiling > libgcov.c) for > what looks to be the same reason. Also, don't forget that Ada can > have > fields of variable size in various places in a struct, and these > can be > represented by zero-size LLVM fields (this kind of struct doesn't get > passed to functions by copy though). > > Can you please explain why you made this change (a testcase would be > good). > I'm running into this problem as well -- it crashing while compiling gcov.c on my PPC G4. -bw From sabre at nondot.org Sun Jan 27 11:42:28 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 17:42:28 -0000 Subject: [llvm-commits] [llvm] r46414 - in /llvm/trunk: lib/CodeGen/SelectionDAG/DAGCombiner.cpp test/CodeGen/X86/fp-in-intregs.ll Message-ID: <200801271742.m0RHgS0U015666@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 11:42:27 2008 New Revision: 46414 URL: http://llvm.org/viewvc/llvm-project?rev=46414&view=rev Log: Implement some dag combines that allow doing fneg/fabs/fcopysign in integer registers if used by a bitconvert or using a bitconvert. This allows us to avoid constant pool loads and use cheaper integer instructions when the values come from or end up in integer regs anyway. For example, we now compile CodeGen/X86/fp-in-intregs.ll to: _test1: movl $2147483648, %eax xorl 4(%esp), %eax ret _test2: movl $1065353216, %eax orl 4(%esp), %eax andl $3212836864, %eax ret Instead of: _test1: movss 4(%esp), %xmm0 xorps LCPI2_0, %xmm0 movd %xmm0, %eax ret _test2: movss 4(%esp), %xmm0 andps LCPI3_0, %xmm0 movss LCPI3_1, %xmm1 andps LCPI3_2, %xmm1 orps %xmm0, %xmm1 movd %xmm1, %eax ret bitconverts can happen due to various calling conventions that require fp values to passed in integer regs in some cases, e.g. when returning a complex. Added: llvm/trunk/test/CodeGen/X86/fp-in-intregs.ll Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46414&r1=46413&r2=46414&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Jan 27 11:42:27 2008 @@ -1190,7 +1190,7 @@ return DAG.getNode(ISD::SUB, VT, DAG.getConstant(0, VT), N0); // If we know the sign bits of both operands are zero, strength reduce to a // udiv instead. Handles (X&15) /s 4 -> X&15 >> 2 - uint64_t SignBit = 1ULL << (MVT::getSizeInBits(VT)-1); + uint64_t SignBit = MVT::getIntVTSignBit(VT); if (DAG.MaskedValueIsZero(N1, SignBit) && DAG.MaskedValueIsZero(N0, SignBit)) return DAG.getNode(ISD::UDIV, N1.getValueType(), N0, N1); @@ -1306,7 +1306,7 @@ return DAG.getNode(ISD::SREM, VT, N0, N1); // If we know the sign bits of both operands are zero, strength reduce to a // urem instead. Handles (X & 0x0FFFFFFF) %s 16 -> X&15 - uint64_t SignBit = 1ULL << (MVT::getSizeInBits(VT)-1); + uint64_t SignBit = MVT::getIntVTSignBit(VT); if (DAG.MaskedValueIsZero(N1, SignBit) && DAG.MaskedValueIsZero(N0, SignBit)) return DAG.getNode(ISD::UREM, VT, N0, N1); @@ -3276,6 +3276,57 @@ } } + // Fold bitconvert(fneg(x)) -> xor(bitconvert(x), signbit) + // Fold bitconvert(fabs(x)) -> and(bitconvert(x), ~signbit) + // This often reduces constant pool loads. + if ((N0.getOpcode() == ISD::FNEG || N0.getOpcode() == ISD::FABS) && + N0.Val->hasOneUse() && MVT::isInteger(VT) && !MVT::isVector(VT)) { + SDOperand NewConv = DAG.getNode(ISD::BIT_CONVERT, VT, N0.getOperand(0)); + AddToWorkList(NewConv.Val); + + uint64_t SignBit = MVT::getIntVTSignBit(VT); + if (N0.getOpcode() == ISD::FNEG) + return DAG.getNode(ISD::XOR, VT, NewConv, DAG.getConstant(SignBit, VT)); + assert(N0.getOpcode() == ISD::FABS); + return DAG.getNode(ISD::AND, VT, NewConv, DAG.getConstant(~SignBit, VT)); + } + + // Fold bitconvert(fcopysign(cst, x)) -> bitconvert(x)&sign | cst&~sign' + // Note that we don't handle copysign(x,cst) because this can always be folded + // to an fneg or fabs. + if (N0.getOpcode() == ISD::FCOPYSIGN && N0.Val->hasOneUse() && + isa(N0.getOperand(0))) { + unsigned OrigXWidth = MVT::getSizeInBits(N0.getOperand(1).getValueType()); + SDOperand X = DAG.getNode(ISD::BIT_CONVERT, MVT::getIntegerType(OrigXWidth), + N0.getOperand(1)); + AddToWorkList(X.Val); + + // If X has a different width than the result/lhs, sext it or truncate it. + unsigned VTWidth = MVT::getSizeInBits(VT); + if (OrigXWidth < VTWidth) { + X = DAG.getNode(ISD::SIGN_EXTEND, VT, X); + AddToWorkList(X.Val); + } else if (OrigXWidth > VTWidth) { + // To get the sign bit in the right place, we have to shift it right + // before truncating. + X = DAG.getNode(ISD::SRL, X.getValueType(), X, + DAG.getConstant(OrigXWidth-VTWidth, X.getValueType())); + AddToWorkList(X.Val); + X = DAG.getNode(ISD::TRUNCATE, VT, X); + AddToWorkList(X.Val); + } + + uint64_t SignBit = MVT::getIntVTSignBit(VT); + X = DAG.getNode(ISD::AND, VT, X, DAG.getConstant(SignBit, VT)); + AddToWorkList(X.Val); + + SDOperand Cst = DAG.getNode(ISD::BIT_CONVERT, VT, N0.getOperand(0)); + Cst = DAG.getNode(ISD::AND, VT, Cst, DAG.getConstant(~SignBit, VT)); + AddToWorkList(Cst.Val); + + return DAG.getNode(ISD::OR, VT, X, Cst); + } + return SDOperand(); } @@ -3732,6 +3783,19 @@ if (isNegatibleForFree(N0)) return GetNegatedExpression(N0, DAG); + // Transform fneg(bitconvert(x)) -> bitconvert(x^sign) to avoid loading + // constant pool values. + if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse()) { + SDOperand Int = N0.getOperand(0); + MVT::ValueType IntVT = Int.getValueType(); + if (MVT::isInteger(IntVT) && !MVT::isVector(IntVT)) { + Int = DAG.getNode(ISD::XOR, IntVT, Int, + DAG.getConstant(MVT::getIntVTSignBit(IntVT), IntVT)); + AddToWorkList(Int.Val); + return DAG.getNode(ISD::BIT_CONVERT, N->getValueType(0), Int); + } + } + return SDOperand(); } @@ -3751,6 +3815,19 @@ if (N0.getOpcode() == ISD::FNEG || N0.getOpcode() == ISD::FCOPYSIGN) return DAG.getNode(ISD::FABS, VT, N0.getOperand(0)); + // Transform fabs(bitconvert(x)) -> bitconvert(x&~sign) to avoid loading + // constant pool values. + if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse()) { + SDOperand Int = N0.getOperand(0); + MVT::ValueType IntVT = Int.getValueType(); + if (MVT::isInteger(IntVT) && !MVT::isVector(IntVT)) { + Int = DAG.getNode(ISD::AND, IntVT, Int, + DAG.getConstant(~MVT::getIntVTSignBit(IntVT), IntVT)); + AddToWorkList(Int.Val); + return DAG.getNode(ISD::BIT_CONVERT, N->getValueType(0), Int); + } + } + return SDOperand(); } Added: llvm/trunk/test/CodeGen/X86/fp-in-intregs.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fp-in-intregs.ll?rev=46414&view=auto ============================================================================== --- llvm/trunk/test/CodeGen/X86/fp-in-intregs.ll (added) +++ llvm/trunk/test/CodeGen/X86/fp-in-intregs.ll Sun Jan 27 11:42:27 2008 @@ -0,0 +1,21 @@ +; RUN: llvm-as < %s | llc -march=x86 -mcpu=yonah | not egrep {\(\(xor\|and\)ps\|movd\)} + +; These operations should be done in integer registers, eliminating constant +; pool loads, movd's etc. + +define i32 @test1(float %x) nounwind { +entry: + %tmp2 = sub float -0.000000e+00, %x ; [#uses=1] + %tmp210 = bitcast float %tmp2 to i32 ; [#uses=1] + ret i32 %tmp210 +} + +define i32 @test2(float %x) nounwind { +entry: + %tmp2 = tail call float @copysignf( float 1.000000e+00, float %x ) nounwind readnone ; [#uses=1] + %tmp210 = bitcast float %tmp2 to i32 ; [#uses=1] + ret i32 %tmp210 +} + +declare float @copysignf(float, float) nounwind readnone + From baldrick at free.fr Sun Jan 27 12:02:37 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 19:02:37 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <927CE787-840B-4D40-8136-6C6E3ADCB1BD@gmail.com> References: <200801260725.03963.baldrick@free.fr> <200801271003.57799.baldrick@free.fr> <927CE787-840B-4D40-8136-6C6E3ADCB1BD@gmail.com> Message-ID: <200801271902.46891.baldrick@free.fr> > I'm running into this problem as well -- it crashing while compiling > gcov.c on my PPC G4. While r46381 seems the obvious culprit, to tell the truth I didn't check whether reverting this patch fixes the problem - so I could be wrong. Ciao, Duncan. From dalej at apple.com Sun Jan 27 12:09:24 2008 From: dalej at apple.com (Dale Johannesen) Date: Sun, 27 Jan 2008 10:09:24 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46412 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h config/i386/llvm-i386.cpp llvm-abi.h llvm-convert.cpp In-Reply-To: <200801270718.m0R7ILEx028732@zion.cs.uiuc.edu> References: <200801270718.m0R7ILEx028732@zion.cs.uiuc.edu> Message-ID: <34E3F3A1-B6E3-44C1-B771-14FAA9E4B806@apple.com> On Jan 26, 2008, at 11:18 PM, Chris Lattner wrote: > Author: lattner > Date: Sun Jan 27 01:18:20 2008 > New Revision: 46412 > > URL: http://llvm.org/viewvc/llvm-project?rev=46412&view=rev > Log: > Change x86-32 aggregate passing code to pass many aggregates "by > pieces" > instead of passing them with byval. This allows us to get > significantly > better code without affecting the ABI (because x86-32 passes stuff > on the > stack). Most significantly, we pass _Complex as a two scalar fp > values > now. For example, before we compiled ccosf to: Not everything is passed on the stack with -msseregparm, which doesn't work now but should. In that mode a _Complex is not passed the same as two scalars. > _ccosf: > pushl %ebp > movl %esp, %ebp > pushl %edi > pushl %esi > subl $16, %esp > movss 12(%ebp), %xmm0 > xorps LCPI1_0, %xmm0 > movss 8(%ebp), %xmm1 > movss %xmm0, -16(%ebp) > movss %xmm1, -12(%ebp) > leal -16(%ebp), %esi > movl $2, %ecx > movl %esp, %edi > rep;movsl > call _ccoshf > addl $16, %esp > popl %esi > popl %edi > popl %ebp > ret > > now we get: > > _ccosf: > pushl %ebp > movl %esp, %ebp > subl $8, %esp > movss 8(%ebp), %xmm0 > movss %xmm0, 4(%esp) > movss 12(%ebp), %xmm0 > xorps LCPI1_0, %xmm0 > movss %xmm0, (%esp) > call _ccoshf > addl $8, %esp > popl %ebp > ret > > Evan, please review this. Thanks! > > > Modified: > llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h > llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp > llvm-gcc-4.2/trunk/gcc/llvm-abi.h > llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp > > Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h > URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h?rev=46412&r1=46411&r2=46412&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h (original) > +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386-target.h Sun Jan 27 > 01:18:20 2008 > @@ -62,20 +62,24 @@ > } \ > } > > -extern bool llvm_x86_should_pass_aggregate_in_memory(tree); > +#ifdef LLVM_ABI_H > +extern bool llvm_x86_should_pass_aggregate_in_memory(tree, const > Type *); > > -#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) \ > - llvm_x86_should_pass_aggregate_in_memory(X) > +#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X, TY) \ > + llvm_x86_should_pass_aggregate_in_memory(X, TY) > > > -#ifdef LLVM_ABI_H > extern bool > -llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree, > +llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree, const Type *Ty, > + std::vector Type*>&); > +extern bool > +llvm_x86_32_should_pass_aggregate_in_mixed_regs(tree, const Type *Ty, > std::vector Type*>&); > > -#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) \ > - (TARGET_64BIT && \ > - llvm_x86_64_should_pass_aggregate_in_mixed_regs((T), (E))) > +#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, TY, > E) \ > + > (TARGET_64BIT ? \ > + llvm_x86_64_should_pass_aggregate_in_mixed_regs((T), (TY), > (E)) : \ > + llvm_x86_32_should_pass_aggregate_in_mixed_regs((T), (TY), (E))) > #endif /* LLVM_ABI_H */ > > /* LLVM LOCAL end (ENTIRE FILE!) */ > > Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=46412&r1=46411&r2=46412&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) > +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Sun Jan 27 > 01:18:20 2008 > @@ -691,7 +691,7 @@ > > /* Target hook for llvm-abi.h. It returns true if an aggregate of the > specified type should be passed in memory. */ > -bool llvm_x86_should_pass_aggregate_in_memory(tree TreeType) { > +bool llvm_x86_should_pass_aggregate_in_memory(tree TreeType, const > Type *Ty) { > enum machine_mode Mode = ix86_getNaturalModeForType(TreeType); > HOST_WIDE_INT Bytes = > (Mode == BLKmode) ? int_size_in_bytes(TreeType) : (int) > GET_MODE_SIZE(Mode); > @@ -706,8 +706,10 @@ > if (llvm_x86_is_all_integer_types(Ty)) > return false; > } > - if (!TARGET_64BIT) > - return true; > + if (!TARGET_64BIT) { > + std::vector Elts; > + return ! > llvm_x86_32_should_pass_aggregate_in_mixed_regs(TreeType, Ty, Elts); > + } > return llvm_x86_64_should_pass_aggregate_in_memory(TreeType, Mode); > } > > @@ -716,7 +718,7 @@ > It also returns a vector of types that correspond to the > registers used > for parameter passing. This is only called for x86-64. */ > bool > -llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree TreeType, > +llvm_x86_64_should_pass_aggregate_in_mixed_regs(tree TreeType, > const Type *Ty, > std::vector Type*> &Elts){ > enum x86_64_reg_class Class[MAX_CLASSES]; > enum machine_mode Mode = ix86_getNaturalModeForType(TreeType); > @@ -799,4 +801,45 @@ > return true; > } > > +/* Target hook for llvm-abi.h. It returns true if an aggregate of the > + specified type should be passed in a number of registers of mixed > types. > + It also returns a vector of types that correspond to the registers > used > + for parameter passing. This is only called for x86-32. */ > +bool > +llvm_x86_32_should_pass_aggregate_in_mixed_regs(tree TreeType, > const Type *Ty, > + std::vector Type*> &Elts){ > + // If this is a small fixed size type, investigate it. > + HOST_WIDE_INT SrcSize = int_size_in_bytes(TreeType); > + if (SrcSize <= 0 || SrcSize > 128) > + return false; > + > + // X86-32 passes aggregates on the stack. If this is an > extremely simple > + // aggregate whose elements would be passed the same if passed as > scalars, > + // pass them that way in order to promote SROA on the caller and > callee side. > + // Note that we can't support passing all structs this way. For > example, > + // {i16, i16} should be passed in on 32-bit unit, which is not > how "i16, i16" > + // would be passed as stand-alone arguments. > + const StructType *STy = dyn_cast(Ty); > + if (!STy || STy->isPacked()) return false; > + > + for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) { > + const Type *EltTy = STy->getElementType(i); > + // 32 and 64-bit integers are fine, as are float, double, and > long double. > + if (EltTy == Type::Int32Ty || > + EltTy == Type::Int64Ty || > + EltTy->isFloatingPoint() || > + isa(EltTy)) { > + Elts.push_back(EltTy); > + continue; > + } > + > + // TODO: Vectors are also ok to pass if they don't require > extra alignment. > + // TODO: We can also pass structs like {i8, i32}. > + > + Elts.clear(); > + return false; > + } > + > + return true; > +} > /* LLVM LOCAL end (ENTIRE FILE!) */ > > Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h > URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-abi.h?rev=46412&r1=46411&r2=46412&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm-gcc-4.2/trunk/gcc/llvm-abi.h (original) > +++ llvm-gcc-4.2/trunk/gcc/llvm-abi.h Sun Jan 27 01:18:20 2008 > @@ -124,7 +124,7 @@ > // value should be passed by value, i.e. passing its address with > the byval > // attribute bit set. The default is false. > #ifndef LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR > -#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) \ > +#define LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X, TY) \ > false > #endif > > @@ -133,7 +133,7 @@ > // registers. The routine should also return by reference a vector > of the > // types of the registers being used. The default is false. > #ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS > -#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) \ > +#define LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, TY, E) \ > false > #endif > > @@ -212,55 +212,52 @@ > /// their fields. > void HandleArgument(tree type, uint16_t *Attributes = NULL) { > const Type *Ty = ConvertType(type); > - > + std::vector Elts; > if (isPassedByInvisibleReference(type)) { // variable size -> by- > ref. > C.HandleScalarArgument(PointerType::getUnqual(Ty), type); > } else if (Ty->isFirstClassType()) { > C.HandleScalarArgument(Ty, type); > - } else if (LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(type)) { > + } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(type, Ty, > Elts)) { > + PassInMixedRegisters(type, Ty, Elts); > + } else if (LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(type, > Ty)) { > C.HandleByValArgument(Ty, type); > if (Attributes) > *Attributes |= ParamAttr::ByVal; > - } else { > - std::vector Elts; > - if (LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(type, Elts)) { > - PassInMixedRegisters(type, Ty, Elts); > - } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { > - PassInIntegerRegisters(type, Ty); > - } else if (isAggregateOfSizeZero(type)) { > - // Zero sized aggregate, just drop it! > - ; > - } else if (TREE_CODE(type) == RECORD_TYPE) { > - for (tree Field = TYPE_FIELDS(type); Field; Field = > TREE_CHAIN(Field)) > - if (TREE_CODE(Field) == FIELD_DECL) { > - unsigned FNo = GetFieldIndex(Field); > - assert(FNo != ~0U && "Case not handled yet!"); > - > - C.EnterField(FNo, Ty); > - HandleArgument(getDeclaredType(Field)); > - C.ExitField(); > - } > - } else if (TREE_CODE(type) == COMPLEX_TYPE) { > - C.EnterField(0, Ty); > - HandleArgument(TREE_TYPE(type)); > - C.ExitField(); > - C.EnterField(1, Ty); > - HandleArgument(TREE_TYPE(type)); > - C.ExitField(); > - } else if ((TREE_CODE(type) == UNION_TYPE) || > - (TREE_CODE(type) == QUAL_UNION_TYPE)) { > - HandleUnion(type); > - } else if (TREE_CODE(type) == ARRAY_TYPE) { > - const ArrayType *ATy = cast(Ty); > - for (unsigned i = 0, e = ATy->getNumElements(); i != e; + > +i) { > - C.EnterField(i, Ty); > - HandleArgument(TREE_TYPE(type)); > + } else if (LLVM_SHOULD_PASS_AGGREGATE_IN_INTEGER_REGS(type)) { > + PassInIntegerRegisters(type, Ty); > + } else if (isAggregateOfSizeZero(type)) { > + // Zero sized aggregate, just drop it! > + ; > + } else if (TREE_CODE(type) == RECORD_TYPE) { > + for (tree Field = TYPE_FIELDS(type); Field; Field = > TREE_CHAIN(Field)) > + if (TREE_CODE(Field) == FIELD_DECL) { > + unsigned FNo = GetFieldIndex(Field); > + assert(FNo != ~0U && "Case not handled yet!"); > + > + C.EnterField(FNo, Ty); > + HandleArgument(getDeclaredType(Field)); > C.ExitField(); > } > - } else { > - assert(0 && "unknown aggregate type!"); > - abort(); > + } else if (TREE_CODE(type) == COMPLEX_TYPE) { > + C.EnterField(0, Ty); > + HandleArgument(TREE_TYPE(type)); > + C.ExitField(); > + C.EnterField(1, Ty); > + HandleArgument(TREE_TYPE(type)); > + C.ExitField(); > + } else if ((TREE_CODE(type) == UNION_TYPE) || > + (TREE_CODE(type) == QUAL_UNION_TYPE)) { > + HandleUnion(type); > + } else if (TREE_CODE(type) == ARRAY_TYPE) { > + const ArrayType *ATy = cast(Ty); > + for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) { > + C.EnterField(i, Ty); > + HandleArgument(TREE_TYPE(type)); > + C.ExitField(); > } > + } else { > + assert(0 && "unknown aggregate type!"); > + abort(); > } > } > > > Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp > URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46412&r1=46411&r2=46412&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original) > +++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Sun Jan 27 01:18:20 2008 > @@ -682,7 +682,7 @@ > const Type *ArgTy = ConvertType(TREE_TYPE(Args)); > if (isPassedByInvisibleReference(TREE_TYPE(Args)) || > (!ArgTy->isFirstClassType() && > - > LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(TREE_TYPE(Args)))) { > + > LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(TREE_TYPE(Args), > ArgTy))) { > // If the value is passed by 'invisible reference' or 'byval > reference', > // the l-value for the argument IS the argument itself. > SET_DECL_LLVM(Args, AI); > > > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From baldrick at free.fr Sun Jan 27 12:11:13 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 18:11:13 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46415 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801271811.m0RIBDe3016456@zion.cs.uiuc.edu> Author: baldrick Date: Sun Jan 27 12:11:13 2008 New Revision: 46415 URL: http://llvm.org/viewvc/llvm-project?rev=46415&view=rev Log: Do not mark a function readnone or readonly if it has a byval parameter. Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46415&r1=46414&r2=46415&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Sun Jan 27 12:11:13 2008 @@ -1219,14 +1219,19 @@ DeclArgs = TREE_CHAIN(DeclArgs); } - // If we see a byval argument and if the function is 'readnone' we have to - // demote the function to being 'readonly' instead. Not doing so would allow - // optimizers to delete stores into the argument that is passed into the - // function. - if (HasByVal && Attrs[0].index == 0 && - (Attrs[0].attrs & ParamAttr::ReadNone)) { - Attrs[0].attrs &= ~ParamAttr::ReadNone; - Attrs[0].attrs |= ParamAttr::ReadOnly; + // If there is a byval argument then it is not safe to mark the function + // 'readnone' or 'readonly': gcc permits a 'const' or 'pure' function to + // write to struct arguments passed by value, but in LLVM this becomes a + // write through the byval pointer argument, which LLVM does not allow for + // readonly/readnone functions. + if (HasByVal && Attrs[0].index == 0) { + uint16_t &RAttrs = Attrs[0].attrs; + RAttrs &= ~(ParamAttr::ReadNone | ParamAttr::ReadOnly); + if (RAttrs == ParamAttr::None) { + for (unsigned i = 1, e = Attrs.size(); i < e ; ++i) + Attrs[i-1] = Attrs[i]; + Attrs.pop_back(); + } } // If the argument list ends with a void type node, it isn't vararg. From baldrick at free.fr Sun Jan 27 12:12:58 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 18:12:58 -0000 Subject: [llvm-commits] [llvm] r46416 - in /llvm/trunk: lib/Transforms/Utils/InlineFunction.cpp test/Transforms/Inline/byval2.ll Message-ID: <200801271812.m0RICwWB016545@zion.cs.uiuc.edu> Author: baldrick Date: Sun Jan 27 12:12:58 2008 New Revision: 46416 URL: http://llvm.org/viewvc/llvm-project?rev=46416&view=rev Log: Revert r46393: readonly/readnone functions are no longer allowed to write through byval arguments. Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp llvm/trunk/test/Transforms/Inline/byval2.ll Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=46416&r1=46415&r2=46416&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original) +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Sun Jan 27 12:12:58 2008 @@ -240,15 +240,12 @@ E = CalledFunc->arg_end(); I != E; ++I, ++AI, ++ArgNo) { Value *ActualArg = *AI; - // When byval arguments are inlined, we need to make the copy implied - // by them explicit. It is tempting to think that this is not needed if - // the callee is readonly, because the callee doesn't modify the struct. - // However this would be wrong: readonly means that any writes the callee - // performs are not visible to the caller. But writes by the callee to - // an argument passed byval are by definition not visible to the caller! - // Since we allow this kind of readonly function, there needs to be an - // explicit copy in order to keep the writes invisible after inlining. - if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal)) { + // When byval arguments actually inlined, we need to make the copy implied + // by them explicit. However, we don't do this if the callee is readonly + // or readnone, because the copy would be unneeded: the callee doesn't + // modify the struct. + if (CalledFunc->paramHasAttr(ArgNo+1, ParamAttr::ByVal) && + !CalledFunc->onlyReadsMemory()) { const Type *AggTy = cast(I->getType())->getElementType(); const Type *VoidPtrTy = PointerType::getUnqual(Type::Int8Ty); Modified: llvm/trunk/test/Transforms/Inline/byval2.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Inline/byval2.ll?rev=46416&r1=46415&r2=46416&view=diff ============================================================================== --- llvm/trunk/test/Transforms/Inline/byval2.ll (original) +++ llvm/trunk/test/Transforms/Inline/byval2.ll Sun Jan 27 12:12:58 2008 @@ -1,7 +1,7 @@ -; RUN: llvm-as < %s | opt -inline | llvm-dis | grep {llvm.memcpy} +; RUN: llvm-as < %s | opt -inline | llvm-dis | not grep {llvm.memcpy} -; Inlining a byval struct should cause an explicit copy -; into an alloca even if the function is readonly +; Inlining a byval struct should NOT cause an explicit copy +; into an alloca if the function is readonly %struct.ss = type { i32, i64 } @.str = internal constant [10 x i8] c"%d, %lld\0A\00" ; <[10 x i8]*> [#uses=1] From nicholas at mxc.ca Sun Jan 27 12:35:00 2008 From: nicholas at mxc.ca (Nick Lewycky) Date: Sun, 27 Jan 2008 18:35:00 -0000 Subject: [llvm-commits] [llvm] r46417 - in /llvm/trunk: lib/Transforms/Scalar/LoopUnroll.cpp test/Transforms/LoopUnroll/2007-11-05-Crash.ll Message-ID: <200801271835.m0RIZ038017241@zion.cs.uiuc.edu> Author: nicholas Date: Sun Jan 27 12:35:00 2008 New Revision: 46417 URL: http://llvm.org/viewvc/llvm-project?rev=46417&view=rev Log: Be more careful modifying the use_list while also iterating through it. Modified: llvm/trunk/lib/Transforms/Scalar/LoopUnroll.cpp llvm/trunk/test/Transforms/LoopUnroll/2007-11-05-Crash.ll Modified: llvm/trunk/lib/Transforms/Scalar/LoopUnroll.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopUnroll.cpp?rev=46417&r1=46416&r2=46417&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/LoopUnroll.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/LoopUnroll.cpp Sun Jan 27 12:35:00 2008 @@ -365,8 +365,9 @@ // be updated specially after unrolling all the way. if (*BB != LatchBlock) for (Value::use_iterator UI = (*BB)->use_begin(), UE = (*BB)->use_end(); - UI != UE; ++UI) { + UI != UE;) { Instruction *UseInst = cast(*UI); + ++UI; if (isa(UseInst) && !L->contains(UseInst->getParent())) { PHINode *phi = cast(UseInst); Value *Incoming = phi->getIncomingValueForBlock(*BB); Modified: llvm/trunk/test/Transforms/LoopUnroll/2007-11-05-Crash.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopUnroll/2007-11-05-Crash.ll?rev=46417&r1=46416&r2=46417&view=diff ============================================================================== --- llvm/trunk/test/Transforms/LoopUnroll/2007-11-05-Crash.ll (original) +++ llvm/trunk/test/Transforms/LoopUnroll/2007-11-05-Crash.ll Sun Jan 27 12:35:00 2008 @@ -1,5 +1,7 @@ ; RUN: llvm-as < %s | opt -disable-output -loop-unroll ; PR1770 +; PR1947 + %struct.cl_engine = type { i32, i16, i32, i8**, i8**, i8*, i8*, i8*, i8*, i8*, i8*, i8* } %struct.cl_limits = type { i32, i32, i32, i32, i16, i64 } %struct.cli_ac_alt = type { i8, i8*, i16, i16, %struct.cli_ac_alt* } From clattner at apple.com Sun Jan 27 12:41:07 2008 From: clattner at apple.com (Chris Lattner) Date: Sun, 27 Jan 2008 10:41:07 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46415 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <200801271811.m0RIBDe3016456@zion.cs.uiuc.edu> References: <200801271811.m0RIBDe3016456@zion.cs.uiuc.edu> Message-ID: <02E8FEAA-3DAB-48A5-81CA-572CF5AB9F38@apple.com> > URL: http://llvm.org/viewvc/llvm-project?rev=46415&view=rev > Log: > Do not mark a function readnone or readonly if it has > a byval parameter. Thanks Duncan: > + uint16_t &RAttrs = Attrs[0].attrs; > + RAttrs &= ~(ParamAttr::ReadNone | ParamAttr::ReadOnly); > + if (RAttrs == ParamAttr::None) { > + for (unsigned i = 1, e = Attrs.size(); i < e ; ++i) > + Attrs[i-1] = Attrs[i]; > + Attrs.pop_back(); > + } How about: if (RAttrs == ParamAttr::None) Attrs.erase(Attrs.begin()); ? -Chris From baldrick at free.fr Sun Jan 27 12:55:19 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 19:55:19 +0100 Subject: [llvm-commits] [llvm-gcc-4.2] r46415 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp In-Reply-To: <02E8FEAA-3DAB-48A5-81CA-572CF5AB9F38@apple.com> References: <200801271811.m0RIBDe3016456@zion.cs.uiuc.edu> <02E8FEAA-3DAB-48A5-81CA-572CF5AB9F38@apple.com> Message-ID: <200801271955.20006.baldrick@free.fr> > How about: > > if (RAttrs == ParamAttr::None) > Attrs.erase(Attrs.begin()); Now you see that I really don't know anything about std::vector :) I will change it. Ciao, Duncan. From baldrick at free.fr Sun Jan 27 12:58:34 2008 From: baldrick at free.fr (Duncan Sands) Date: Sun, 27 Jan 2008 18:58:34 -0000 Subject: [llvm-commits] [llvm-gcc-4.2] r46418 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Message-ID: <200801271858.m0RIwYUL017973@zion.cs.uiuc.edu> Author: baldrick Date: Sun Jan 27 12:58:34 2008 New Revision: 46418 URL: http://llvm.org/viewvc/llvm-project?rev=46418&view=rev Log: Baldrick discovers "erase". Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=46418&r1=46417&r2=46418&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Sun Jan 27 12:58:34 2008 @@ -1227,11 +1227,8 @@ if (HasByVal && Attrs[0].index == 0) { uint16_t &RAttrs = Attrs[0].attrs; RAttrs &= ~(ParamAttr::ReadNone | ParamAttr::ReadOnly); - if (RAttrs == ParamAttr::None) { - for (unsigned i = 1, e = Attrs.size(); i < e ; ++i) - Attrs[i-1] = Attrs[i]; - Attrs.pop_back(); - } + if (RAttrs == ParamAttr::None) + Attrs.erase(Attrs.begin()); } // If the argument list ends with a void type node, it isn't vararg. From resistor at mac.com Sun Jan 27 13:51:03 2008 From: resistor at mac.com (Owen Anderson) Date: Sun, 27 Jan 2008 19:51:03 -0000 Subject: [llvm-commits] [llvm] r46419 - /llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h Message-ID: <200801271951.m0RJp3Ku019529@zion.cs.uiuc.edu> Author: resistor Date: Sun Jan 27 13:51:03 2008 New Revision: 46419 URL: http://llvm.org/viewvc/llvm-project?rev=46419&view=rev Log: Fixes for BreakCriticalMachineCodeEdge by Fernando. Modified: llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h Modified: llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h?rev=46419&r1=46418&r2=46419&view=diff ============================================================================== --- llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h (original) +++ llvm/trunk/include/llvm/CodeGen/BreakCriticalMachineEdge.h Sun Jan 27 13:51:03 2008 @@ -33,13 +33,14 @@ // insert the new block into the machine function. src->getParent()->getBasicBlockList().insert(src->getParent()->end(), - crit_mbb); + crit_mbb); // insert a unconditional branch linking the new block to dst const TargetMachine& TM = src->getParent()->getTarget(); const TargetInstrInfo* TII = TM.getInstrInfo(); std::vector emptyConditions; - TII->InsertBranch(*crit_mbb, dst, (MachineBasicBlock*)0, emptyConditions); + TII->InsertBranch(*crit_mbb, dst, (MachineBasicBlock*)0, + emptyConditions); // modify every branch in src that points to dst to point to the new // machine basic block instead: @@ -48,18 +49,18 @@ while (mii != src->begin()) { mii--; // if there are no more branches, finish the loop - if (!TII->isTerminatorInstr(mii->getOpcode())) { + if (!mii->getDesc().isTerminator()) { break; } - + // Scan the operands of this branch, replacing any uses of dst with // crit_mbb. for (unsigned i = 0, e = mii->getNumOperands(); i != e; ++i) { MachineOperand & mo = mii->getOperand(i); if (mo.isMachineBasicBlock() && - mo.getMachineBasicBlock() == dst) { + mo.getMBB() == dst) { found_branch = true; - mo.setMachineBasicBlock(crit_mbb); + mo.setMBB(crit_mbb); } } } @@ -68,7 +69,8 @@ // I am inserting too many gotos, but I am trusting that the asm printer // will optimize the unnecessary gotos. if(!found_branch) { - TII->InsertBranch(*src, crit_mbb, (MachineBasicBlock*)0, emptyConditions); + TII->InsertBranch(*src, crit_mbb, (MachineBasicBlock*)0, + emptyConditions); } /// Change all the phi functions in dst, so that the incoming block be @@ -77,29 +79,28 @@ /// the first instructions are always phi functions. if(mii->getOpcode() != TargetInstrInfo::PHI) break; - + // Find the operands corresponding to the source block std::vector toRemove; unsigned reg = 0; for (unsigned u = 0; u != mii->getNumOperands(); ++u) if (mii->getOperand(u).isMachineBasicBlock() && - mii->getOperand(u).getMachineBasicBlock() == src) { + mii->getOperand(u).getMBB() == src) { reg = mii->getOperand(u-1).getReg(); toRemove.push_back(u-1); } - // Remove all uses of this MBB for (std::vector::reverse_iterator I = toRemove.rbegin(), E = toRemove.rend(); I != E; ++I) { mii->RemoveOperand(*I+1); mii->RemoveOperand(*I); } - + // Add a single use corresponding to the new MBB - mii->addRegOperand(reg, false); - mii->addMachineBasicBlockOperand(crit_mbb); + mii->addOperand(MachineOperand::CreateReg(reg, false)); + mii->addOperand(MachineOperand::CreateMBB(crit_mbb)); } - + return crit_mbb; } From resistor at mac.com Sun Jan 27 16:00:00 2008 From: resistor at mac.com (Owen Anderson) Date: Sun, 27 Jan 2008 22:00:00 -0000 Subject: [llvm-commits] [llvm] r46420 - /llvm/trunk/lib/CodeGen/RegAllocLocal.cpp Message-ID: <200801272200.m0RM00UQ023303@zion.cs.uiuc.edu> Author: resistor Date: Sun Jan 27 16:00:00 2008 New Revision: 46420 URL: http://llvm.org/viewvc/llvm-project?rev=46420&view=rev Log: Reg alloc doesn't really need LiveVariables. Modified: llvm/trunk/lib/CodeGen/RegAllocLocal.cpp Modified: llvm/trunk/lib/CodeGen/RegAllocLocal.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocLocal.cpp?rev=46420&r1=46419&r2=46420&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/RegAllocLocal.cpp (original) +++ llvm/trunk/lib/CodeGen/RegAllocLocal.cpp Sun Jan 27 16:00:00 2008 @@ -19,7 +19,6 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineRegisterInfo.h" -#include "llvm/CodeGen/LiveVariables.h" #include "llvm/CodeGen/RegAllocRegistry.h" #include "llvm/Target/TargetInstrInfo.h" #include "llvm/Target/TargetMachine.h" @@ -51,7 +50,6 @@ MachineFunction *MF; const MRegisterInfo *MRI; const TargetInstrInfo *TII; - LiveVariables *LV; // StackSlotForVirtReg - Maps virtual regs to the frame index where these // values are spilled. @@ -148,7 +146,6 @@ } virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired(); AU.addRequiredID(PHIEliminationID); AU.addRequiredID(TwoAddressInstructionPassID); MachineFunctionPass::getAnalysisUsage(AU); @@ -497,9 +494,8 @@ Ops.push_back(OpNum); if (MachineInstr* FMI = TII->foldMemoryOperand(MI, Ops, FrameIndex)) { ++NumFolded; - // Since we changed the address of MI, make sure to update live variables - // to know that the new instruction has the properties of the old one. - LV->instructionChanged(MI, FMI); + // Update kill/dead flags. + FMI->copyKillDeadInfo(MI); return MBB.insert(MBB.erase(MI), FMI); } @@ -778,8 +774,6 @@ // Finally, if this is a noop copy instruction, zap it. unsigned SrcReg, DstReg; if (TII.isMoveInstr(*MI, SrcReg, DstReg) && SrcReg == DstReg) { - LV->removeVirtualRegistersKilled(MI); - LV->removeVirtualRegistersDead(MI); MBB.erase(MI); } } @@ -821,7 +815,6 @@ TM = &Fn.getTarget(); MRI = TM->getRegisterInfo(); TII = TM->getInstrInfo(); - LV = &getAnalysis(); PhysRegsUsed.assign(MRI->getNumRegs(), -1); From evan.cheng at apple.com Sun Jan 27 16:10:44 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Sun, 27 Jan 2008 14:10:44 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <200801271902.46891.baldrick@free.fr> References: <200801260725.03963.baldrick@free.fr> <200801271003.57799.baldrick@free.fr> <927CE787-840B-4D40-8136-6C6E3ADCB1BD@gmail.com> <200801271902.46891.baldrick@free.fr> Message-ID: <7E3DB9EF-DA7D-4595-AC6C-4FC07B8AF53D@apple.com> Sorry I have been away from my computer for the last two days. I'll look at this later tonight. Evan On Jan 27, 2008, at 10:02 AM, Duncan Sands wrote: >> I'm running into this problem as well -- it crashing while compiling >> gcov.c on my PPC G4. > > While r46381 seems the obvious culprit, to tell the truth I didn't > check > whether reverting this patch fixes the problem - so I could be wrong. > > Ciao, > > Duncan. > _______________________________________________ > llvm-commits mailing list > llvm-commits at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits From clattner at apple.com Sun Jan 27 16:49:00 2008 From: clattner at apple.com (Chris Lattner) Date: Sun, 27 Jan 2008 14:49:00 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46412 - in /llvm-gcc-4.2/trunk/gcc: config/i386/llvm-i386-target.h config/i386/llvm-i386.cpp llvm-abi.h llvm-convert.cpp In-Reply-To: <34E3F3A1-B6E3-44C1-B771-14FAA9E4B806@apple.com> References: <200801270718.m0R7ILEx028732@zion.cs.uiuc.edu> <34E3F3A1-B6E3-44C1-B771-14FAA9E4B806@apple.com> Message-ID: <3899336B-3919-42C0-82FA-2BCCBC67DA7A@apple.com> On Jan 27, 2008, at 10:09 AM, Dale Johannesen wrote: > On Jan 26, 2008, at 11:18 PM, Chris Lattner wrote: >> Author: lattner >> Date: Sun Jan 27 01:18:20 2008 >> New Revision: 46412 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=46412&view=rev >> Log: >> Change x86-32 aggregate passing code to pass many aggregates "by >> pieces" >> instead of passing them with byval. This allows us to get >> significantly >> better code without affecting the ABI (because x86-32 passes stuff >> on the >> stack). Most significantly, we pass _Complex as a two scalar fp >> values >> now. For example, before we compiled ccosf to: > > Not everything is passed on the stack with -msseregparm, which doesn't > work now but should. In that mode a _Complex is not passed the same > as two scalars. Right, in that case, the scalars need to be marked with the inreg attribute though. In this case, they never will be marked with that, so I don't think this could cause a problem. The corollary is when you use -mregparm, which marks integer registers as inreg. -Chris From sabre at nondot.org Sun Jan 27 16:59:00 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 22:59:00 -0000 Subject: [llvm-commits] [llvm] r46421 - /llvm/trunk/tools/llvm-ld/llvm-ld.cpp Message-ID: <200801272259.m0RMx0CN024996@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 16:58:59 2008 New Revision: 46421 URL: http://llvm.org/viewvc/llvm-project?rev=46421&view=rev Log: Add support for frameworks. Patch by Shantonu Sen! Modified: llvm/trunk/tools/llvm-ld/llvm-ld.cpp Modified: llvm/trunk/tools/llvm-ld/llvm-ld.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ld/llvm-ld.cpp?rev=46421&r1=46420&r2=46421&view=diff ============================================================================== --- llvm/trunk/tools/llvm-ld/llvm-ld.cpp (original) +++ llvm/trunk/tools/llvm-ld/llvm-ld.cpp Sun Jan 27 16:58:59 2008 @@ -55,10 +55,18 @@ cl::desc("Specify a library search path"), cl::value_desc("directory")); +static cl::list FrameworkPaths("F", cl::Prefix, + cl::desc("Specify a framework search path"), + cl::value_desc("directory")); + static cl::list Libraries("l", cl::Prefix, cl::desc("Specify libraries to link to"), cl::value_desc("library prefix")); +static cl::list Frameworks("framework", + cl::desc("Specify frameworks to link to"), + cl::value_desc("framework")); + // Options to control the linking, optimization, and code gen processes static cl::opt LinkAsLibrary("link-as-library", cl::desc("Link the .bc files together as a library, not an executable")); @@ -287,6 +295,8 @@ /// OutputFilename - The name of the file to generate. /// NativeLinkItems - The native libraries, files, code with which to link /// LibPaths - The list of directories in which to find libraries. +/// FrameworksPaths - The list of directories in which to find frameworks. +/// Frameworks - The list of frameworks (dynamic libraries) /// gcc - The pathname to use for GGC. /// envp - A copy of the process's current environment. /// @@ -331,10 +341,12 @@ args.push_back(OutputFilename); args.push_back(InputFilename); - // Add in the library paths + // Add in the library and framework paths for (unsigned index = 0; index < LibPaths.size(); index++) { - args.push_back("-L"); - args.push_back(LibPaths[index]); + args.push_back("-L" + LibPaths[index]); + } + for (unsigned index = 0; index < FrameworkPaths.size(); index++) { + args.push_back("-F" + FrameworkPaths[index]); } // Add the requested options @@ -350,6 +362,11 @@ args.push_back(LinkItems[index].first); } + // Add in frameworks to link. + for (unsigned index = 0; index < Frameworks.size(); index++) { + args.push_back("-framework"); + args.push_back(Frameworks[index]); + } // Now that "args" owns all the std::strings for the arguments, call the c_str // method to get the underlying string array. We do this game so that the From sabre at nondot.org Sun Jan 27 17:21:58 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 23:21:58 -0000 Subject: [llvm-commits] [llvm] r46422 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801272321.m0RNLwIF025630@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 17:21:58 2008 New Revision: 46422 URL: http://llvm.org/viewvc/llvm-project?rev=46422&view=rev Log: fix a crash on CodeGen/X86/vector-rem.ll Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46422&r1=46421&r2=46422&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Jan 27 17:21:58 2008 @@ -1306,10 +1306,12 @@ return DAG.getNode(ISD::SREM, VT, N0, N1); // If we know the sign bits of both operands are zero, strength reduce to a // urem instead. Handles (X & 0x0FFFFFFF) %s 16 -> X&15 - uint64_t SignBit = MVT::getIntVTSignBit(VT); - if (DAG.MaskedValueIsZero(N1, SignBit) && - DAG.MaskedValueIsZero(N0, SignBit)) - return DAG.getNode(ISD::UREM, VT, N0, N1); + if (!MVT::isVector(VT)) { + uint64_t SignBit = MVT::getIntVTSignBit(VT); + if (DAG.MaskedValueIsZero(N1, SignBit) && + DAG.MaskedValueIsZero(N0, SignBit)) + return DAG.getNode(ISD::UREM, VT, N0, N1); + } // If X/C can be simplified by the division-by-constant logic, lower // X%C to the equivalent of X-X/C*C. From sabre at nondot.org Sun Jan 27 17:26:37 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 23:26:37 -0000 Subject: [llvm-commits] [llvm] r46423 - /llvm/trunk/test/CodeGen/ARM/fparith.ll Message-ID: <200801272326.m0RNQb9P025758@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 17:26:37 2008 New Revision: 46423 URL: http://llvm.org/viewvc/llvm-project?rev=46423&view=rev Log: Update this test. Due to dag combiner improvements, we now compile f7/f11 to: _f7: eor r0, r0, #2, 2 @ -2147483648 bx lr _f11: bic r0, r0, #2, 2 @ -2147483648 bx lr instead of: _f7: fmsr s0, r0 fnegs s0, s0 fmrs r0, s0 bx lr _f11: fmsr s0, r0 fabss s0, s0 fmrs r0, s0 bx lr Modified: llvm/trunk/test/CodeGen/ARM/fparith.ll Modified: llvm/trunk/test/CodeGen/ARM/fparith.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fparith.ll?rev=46423&r1=46422&r2=46423&view=diff ============================================================================== --- llvm/trunk/test/CodeGen/ARM/fparith.ll (original) +++ llvm/trunk/test/CodeGen/ARM/fparith.ll Sun Jan 27 17:26:37 2008 @@ -3,7 +3,7 @@ ; RUN: grep faddd %t ; RUN: grep fmuls %t ; RUN: grep fmuld %t -; RUN: grep fnegs %t +; RUN: grep eor %t ; RUN: grep fnegd %t ; RUN: grep fdivs %t ; RUN: grep fdivd %t From sabre at nondot.org Sun Jan 27 17:32:17 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 23:32:17 -0000 Subject: [llvm-commits] [llvm] r46424 - /llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Message-ID: <200801272332.m0RNWICq025911@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 17:32:17 2008 New Revision: 46424 URL: http://llvm.org/viewvc/llvm-project?rev=46424&view=rev Log: Fix PowerPC/./2007-10-18-PtrArithmetic.ll Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=46424&r1=46423&r2=46424&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sun Jan 27 17:32:17 2008 @@ -1190,10 +1190,12 @@ return DAG.getNode(ISD::SUB, VT, DAG.getConstant(0, VT), N0); // If we know the sign bits of both operands are zero, strength reduce to a // udiv instead. Handles (X&15) /s 4 -> X&15 >> 2 - uint64_t SignBit = MVT::getIntVTSignBit(VT); - if (DAG.MaskedValueIsZero(N1, SignBit) && - DAG.MaskedValueIsZero(N0, SignBit)) - return DAG.getNode(ISD::UDIV, N1.getValueType(), N0, N1); + if (!MVT::isVector(VT)) { + uint64_t SignBit = MVT::getIntVTSignBit(VT); + if (DAG.MaskedValueIsZero(N1, SignBit) && + DAG.MaskedValueIsZero(N0, SignBit)) + return DAG.getNode(ISD::UDIV, N1.getValueType(), N0, N1); + } // fold (sdiv X, pow2) -> simple ops after legalize if (N1C && N1C->getValue() && !TLI.isIntDivCheap() && (isPowerOf2_64(N1C->getSignExtended()) || @@ -3297,7 +3299,8 @@ // Note that we don't handle copysign(x,cst) because this can always be folded // to an fneg or fabs. if (N0.getOpcode() == ISD::FCOPYSIGN && N0.Val->hasOneUse() && - isa(N0.getOperand(0))) { + isa(N0.getOperand(0)) && + MVT::isInteger(VT) && !MVT::isVector(VT)) { unsigned OrigXWidth = MVT::getSizeInBits(N0.getOperand(1).getValueType()); SDOperand X = DAG.getNode(ISD::BIT_CONVERT, MVT::getIntegerType(OrigXWidth), N0.getOperand(1)); @@ -3787,7 +3790,9 @@ // Transform fneg(bitconvert(x)) -> bitconvert(x^sign) to avoid loading // constant pool values. - if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse()) { + if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse() && + MVT::isInteger(N0.getOperand(0).getValueType()) && + !MVT::isVector(N0.getOperand(0).getValueType())) { SDOperand Int = N0.getOperand(0); MVT::ValueType IntVT = Int.getValueType(); if (MVT::isInteger(IntVT) && !MVT::isVector(IntVT)) { @@ -3819,7 +3824,9 @@ // Transform fabs(bitconvert(x)) -> bitconvert(x&~sign) to avoid loading // constant pool values. - if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse()) { + if (N0.getOpcode() == ISD::BIT_CONVERT && N0.Val->hasOneUse() && + MVT::isInteger(N0.getOperand(0).getValueType()) && + !MVT::isVector(N0.getOperand(0).getValueType())) { SDOperand Int = N0.getOperand(0); MVT::ValueType IntVT = Int.getValueType(); if (MVT::isInteger(IntVT) && !MVT::isVector(IntVT)) { From sabre at nondot.org Sun Jan 27 17:43:26 2008 From: sabre at nondot.org (Chris Lattner) Date: Sun, 27 Jan 2008 23:43:26 -0000 Subject: [llvm-commits] [llvm] r46425 - /llvm/trunk/docs/Makefile Message-ID: <200801272343.m0RNhQHj026383@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 17:43:26 2008 New Revision: 46425 URL: http://llvm.org/viewvc/llvm-project?rev=46425&view=rev Log: Always for PACKAGEVERSION to 'mainline' for teh llvm web page. Modified: llvm/trunk/docs/Makefile Modified: llvm/trunk/docs/Makefile URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Makefile?rev=46425&r1=46424&r2=46425&view=diff ============================================================================== --- llvm/trunk/docs/Makefile (original) +++ llvm/trunk/docs/Makefile Sun Jan 27 17:43:26 2008 @@ -13,15 +13,12 @@ ifdef BUILD_FOR_WEBSITE PROJ_OBJ_DIR = . DOXYGEN = doxygen -# Extract version number from the AC_INT line in configure.ac -# AC_INIT([[llvm]],[[2.1svn]],[llvmbugs at cs.uiuc.edu]) -PACKAGE_VERSION = $(shell grep AC_INIT ../autoconf/configure.ac | sed -e 's/^[^0-9]*\([0-9_.a-zA-Z-]*\).*/\1/' ) $(PROJ_OBJ_DIR)/doxygen.cfg: doxygen.cfg.in cat $< | sed \ -e 's/@abs_top_srcdir@/../g' \ -e 's/@DOT@/dot/g' \ - -e 's/@PACKAGE_VERSION@/$(PACKAGE_VERSION)/' \ + -e 's/@PACKAGE_VERSION@/mainline/' \ -e 's/@abs_top_builddir@/../g' > $@ endif From evan.cheng at apple.com Sun Jan 27 18:13:21 2008 From: evan.cheng at apple.com (Evan Cheng) Date: Sun, 27 Jan 2008 16:13:21 -0800 Subject: [llvm-commits] [llvm-gcc-4.2] r46381 - in /llvm-gcc-4.2/trunk/gcc: llvm-abi.h llvm-internal.h llvm-types.cpp In-Reply-To: <200801271003.57799.baldrick@free.fr> References: <200801260725.03963.baldrick@free.fr> <0A01F174-BCA6-4150-B44B-DBA9C8DA71D6@apple.com> <200801271003.57799.baldrick@free.fr> Message-ID: <439B17DE-A533-4FEB-9FEB-A4CA9D9B87D4@apple.com> On Jan 27, 2008, at 1:03 AM, Duncan Sands wrote: > Hi Evan, > >> Can you get me a test case? I need to see what gcc is doing. Thanks, > > Sure. Zero sized fields in structs may not be very useful, but it is > still legal to use them, in particular you can take their address, > like this: > > struct Z {}; > > struct Y { > int i; > struct Z z; > }; > > void *f(struct Y *y) { > return &y->z; > } > > This used to work before your patch. For that matter, llvm-gcc-4.2 > itself fails to build here (linux x86-32; crashes compiling > libgcov.c) for > what looks to be the same reason. Also, don't forget that Ada can > have > fields of variable size in various places in a struct, and these can > be > represented by zero-size LLVM fields (this kind of struct doesn't get > passed to functions by copy though). > > Can you please explain why you made this change (a testcase would be > good) I did check in two test cases in a subsequent commit. Those used to choke llvm-gcc. I'll look at this today. It's obvious not all zero sized aggregates are not created equal. Evan > > > Best wishes, > > Duncan. From sabre at nondot.org Sun Jan 27 18:32:30 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 00:32:30 -0000 Subject: [llvm-commits] [llvm] r46427 - in /llvm/trunk: lib/Transforms/Scalar/SCCP.cpp test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll Message-ID: <200801280032.m0S0WV5n027941@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 18:32:30 2008 New Revision: 46427 URL: http://llvm.org/viewvc/llvm-project?rev=46427&view=rev Log: Fix PR1938 by forcing the code that uses an undefined value to branch one way or the other. Rewriting the code itself prevents subsequent analysis passes from making contradictory conclusions about the code that could cause an infeasible path to be made feasible. Added: llvm/trunk/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll Modified: llvm/trunk/lib/Transforms/Scalar/SCCP.cpp Modified: llvm/trunk/lib/Transforms/Scalar/SCCP.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SCCP.cpp?rev=46427&r1=46426&r2=46427&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/SCCP.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/SCCP.cpp Sun Jan 27 18:32:30 2008 @@ -1313,15 +1313,30 @@ continue; } - // If the edge to the first successor isn't thought to be feasible yet, mark - // it so now. - if (KnownFeasibleEdges.count(Edge(BB, TI->getSuccessor(0)))) + // If the edge to the second successor isn't thought to be feasible yet, + // mark it so now. We pick the second one so that this goes to some + // enumerated value in a switch instead of going to the default destination. + if (KnownFeasibleEdges.count(Edge(BB, TI->getSuccessor(1)))) continue; // Otherwise, it isn't already thought to be feasible. Mark it as such now // and return. This will make other blocks reachable, which will allow new // values to be discovered and existing ones to be moved in the lattice. - markEdgeExecutable(BB, TI->getSuccessor(0)); + markEdgeExecutable(BB, TI->getSuccessor(1)); + + // This must be a conditional branch of switch on undef. At this point, + // force the old terminator to branch to the first successor. This is + // required because we are now influencing the dataflow of the function with + // the assumption that this edge is taken. If we leave the branch condition + // as undef, then further analysis could think the undef went another way + // leading to an inconsistent set of conclusions. + if (BranchInst *BI = dyn_cast(TI)) { + BI->setCondition(ConstantInt::getFalse()); + } else { + SwitchInst *SI = cast(TI); + SI->setCondition(SI->getCaseValue(1)); + } + return true; } Added: llvm/trunk/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll?rev=46427&view=auto ============================================================================== --- llvm/trunk/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll (added) +++ llvm/trunk/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll Sun Jan 27 18:32:30 2008 @@ -0,0 +1,36 @@ +; RUN: llvm-as < %s | opt -sccp | llvm-dis | grep undef | count 1 +; PR1938 + +define i32 @main() { +entry: + br label %bb + +bb: + %indvar = phi i32 [ 0, %entry ], [ %k, %bb.backedge ] + %k = add i32 %indvar, 1 + br i1 undef, label %cond_true, label %cond_false + +cond_true: + %tmp97 = icmp slt i32 %k, 10 + br i1 %tmp97, label %bb.backedge, label %bb12 + +bb.backedge: + br label %bb + +cond_false: + %tmp9 = icmp slt i32 %k, 10 + br i1 %tmp9, label %bb.backedge, label %bb12 + +bb12: + %tmp14 = icmp eq i32 %k, 10 + br i1 %tmp14, label %cond_next18, label %cond_true17 + +cond_true17: + tail call void @abort( ) + unreachable + +cond_next18: + ret i32 0 +} + +declare void @abort() From sabre at nondot.org Sun Jan 27 18:36:27 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 00:36:27 -0000 Subject: [llvm-commits] [llvm] r46428 - /llvm/trunk/docs/LangRef.html Message-ID: <200801280036.m0S0aRY7028086@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 18:36:27 2008 New Revision: 46428 URL: http://llvm.org/viewvc/llvm-project?rev=46428&view=rev Log: make handling of overflow and undefined results much more clear. Patch by Eli Friedman, thanks! Modified: llvm/trunk/docs/LangRef.html Modified: llvm/trunk/docs/LangRef.html URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=46428&r1=46427&r2=46428&view=diff ============================================================================== --- llvm/trunk/docs/LangRef.html (original) +++ llvm/trunk/docs/LangRef.html Sun Jan 27 18:36:27 2008 @@ -2051,6 +2051,11 @@
    Semantics:

    The value produced is the integer or floating point sum of the two operands.

    +

    If an integer sum has unsigned overflow, the result returned is the +mathematical result modulo 2n, where n is the bit width of +the result.

    +

    Because LLVM integers use a two's complement representation, this +instruction is appropriate for both signed and unsigned integers.

    Example:
      <result> = add i32 4, %var          ; yields {i32}:result = 4 + %var
     
    @@ -2076,6 +2081,11 @@
    Semantics:

    The value produced is the integer or floating point difference of the two operands.

    +

    If an integer difference has unsigned overflow, the result returned is the +mathematical result modulo 2n, where n is the bit width of +the result.

    +

    Because LLVM integers use a two's complement representation, this +instruction is appropriate for both signed and unsigned integers.

    Example:
       <result> = sub i32 4, %var          ; yields {i32}:result = 4 - %var
    @@ -2101,9 +2111,15 @@
     
    Semantics:

    The value produced is the integer or floating point product of the two operands.

    -

    Because the operands are the same width, the result of an integer -multiplication is the same whether the operands should be deemed unsigned or -signed.

    +

    If the result of an integer multiplication has unsigned overflow, +the result returned is the mathematical result modulo +2n, where n is the bit width of the result.

    +

    Because LLVM integers use a two's complement representation, and the +result is the same width as the operands, this instruction returns the +correct result for both signed and unsigned integers. If a full product +(e.g. i32xi32->i64) is needed, the operands +should be sign-extended or zero-extended as appropriate to the +width of the full product.

    Example:
      <result> = mul i32 4, %var          ; yields {i32}:result = 4 * %var
     
    @@ -2124,9 +2140,10 @@ types. This instruction can also take
    vector versions of the values in which case the elements must be integers.

    Semantics:
    -

    The value produced is the unsigned integer quotient of the two operands. This -instruction always performs an unsigned division operation, regardless of -whether the arguments are unsigned or not.

    +

    The value produced is the unsigned integer quotient of the two operands.

    +

    Note that unsigned integer division and signed integer division are distinct +operations; for signed integer division, use 'sdiv'.

    +

    Division by zero leads to undefined behavior.

    Example:
      <result> = udiv i32 4, %var          ; yields {i32}:result = 4 / %var
     
    @@ -2147,9 +2164,12 @@ types. This instruction can also take vector versions of the values in which case the elements must be integers.

    Semantics:
    -

    The value produced is the signed integer quotient of the two operands. This -instruction always performs a signed division operation, regardless of whether -the arguments are signed or not.

    +

    The value produced is the signed integer quotient of the two operands.

    +

    Note that signed integer division and unsigned integer division are distinct +operations; for unsigned integer division, use 'udiv'.

    +

    Division by zero leads to undefined behavior. Overflow also leads to +undefined behavior; this is a rare case, but can occur, for example, +by doing a 32-bit division of -2147483648 by -1.

    Example:
      <result> = sdiv i32 4, %var          ; yields {i32}:result = 4 / %var
     
    @@ -2194,6 +2214,9 @@

    This instruction returns the unsigned integer remainder of a division. This instruction always performs an unsigned division to get the remainder, regardless of whether the arguments are unsigned or not.

    +

    Note that unsigned integer remainder and signed integer remainder are +distinct operations; for signed integer remainder, use 'srem'.

    +

    Taking the remainder of a division by zero leads to undefined behavior.

    Example:
      <result> = urem i32 4, %var          ; yields {i32}:result = 4 % %var
     
    @@ -2225,6 +2248,14 @@ Math Forum. For a table of how this is implemented in various languages, please see Wikipedia: modulo operation.

    +

    Note that signed integer remainder and unsigned integer remainder are +distinct operations; for unsigned integer remainder, use 'urem'.

    +

    Taking the remainder of a division by zero leads to undefined behavior. +Overflow also leads to undefined behavior; this is a rare case, but can occur, +for example, by taking the remainder of a 32-bit division of -2147483648 by -1. +(The remainder doesn't actually overflow, but this rule lets srem be +implemented using instructions that return both the result of the division +and the remainder.)

    Example:
      <result> = srem i32 4, %var          ; yields {i32}:result = 4 % %var
     
    From sabre at nondot.org Sun Jan 27 18:58:18 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 00:58:18 -0000 Subject: [llvm-commits] [llvm] r46429 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-01-27-FloatSelect.ll Message-ID: <200801280058.m0S0wIle028991@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 18:58:18 2008 New Revision: 46429 URL: http://llvm.org/viewvc/llvm-project?rev=46429&view=rev Log: Fix PR1932 by disabling an xform invalid for fdiv. Added: llvm/trunk/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=46429&r1=46428&r2=46429&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sun Jan 27 18:58:18 2008 @@ -2494,14 +2494,15 @@ if (isa(Op1)) return ReplaceInstUsesWith(I, Op1); - // Handle cases involving: div X, (select Cond, Y, Z) + // Handle cases involving: [su]div X, (select Cond, Y, Z) + // This does not apply for fdiv. if (SelectInst *SI = dyn_cast(Op1)) { - // div X, (Cond ? 0 : Y) -> div X, Y. If the div and the select are in the - // same basic block, then we replace the select with Y, and the condition - // of the select with false (if the cond value is in the same BB). If the - // select has uses other than the div, this allows them to be simplified - // also. Note that div X, Y is just as good as div X, 0 (undef) - if (Constant *ST = dyn_cast(SI->getOperand(1))) + // [su]div X, (Cond ? 0 : Y) -> div X, Y. If the div and the select are in + // the same basic block, then we replace the select with Y, and the + // condition of the select with false (if the cond value is in the same BB). + // If the select has uses other than the div, this allows them to be + // simplified also. Note that div X, Y is just as good as div X, 0 (undef) + if (ConstantInt *ST = dyn_cast(SI->getOperand(1))) if (ST->isNullValue()) { Instruction *CondI = dyn_cast(SI->getOperand(0)); if (CondI && CondI->getParent() == I.getParent()) @@ -2513,8 +2514,8 @@ return &I; } - // Likewise for: div X, (Cond ? Y : 0) -> div X, Y - if (Constant *ST = dyn_cast(SI->getOperand(2))) + // Likewise for: [su]div X, (Cond ? Y : 0) -> div X, Y + if (ConstantInt *ST = dyn_cast(SI->getOperand(2))) if (ST->isNullValue()) { Instruction *CondI = dyn_cast(SI->getOperand(0)); if (CondI && CondI->getParent() == I.getParent()) Added: llvm/trunk/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll?rev=46429&view=auto ============================================================================== --- llvm/trunk/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll (added) +++ llvm/trunk/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll Sun Jan 27 18:58:18 2008 @@ -0,0 +1,7 @@ +; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep select + +define double @fold(i1 %a, double %b) { +%s = select i1 %a, double 0., double 1. +%c = fdiv double %b, %s +ret double %c +} From nicholas at mxc.ca Sun Jan 27 21:48:03 2008 From: nicholas at mxc.ca (Nick Lewycky) Date: Mon, 28 Jan 2008 03:48:03 -0000 Subject: [llvm-commits] [llvm] r46431 - in /llvm/trunk: include/llvm/Instructions.h lib/Transforms/Scalar/InstructionCombining.cpp lib/VMCore/Instructions.cpp test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll Message-ID: <200801280348.m0S3m3TP001448@zion.cs.uiuc.edu> Author: nicholas Date: Sun Jan 27 21:48:02 2008 New Revision: 46431 URL: http://llvm.org/viewvc/llvm-project?rev=46431&view=rev Log: Handle some more combinations of extend and icmp. Fixes PR1940. Added: llvm/trunk/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll Modified: llvm/trunk/include/llvm/Instructions.h llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp llvm/trunk/lib/VMCore/Instructions.cpp Modified: llvm/trunk/include/llvm/Instructions.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=46431&r1=46430&r2=46431&view=diff ============================================================================== --- llvm/trunk/include/llvm/Instructions.h (original) +++ llvm/trunk/include/llvm/Instructions.h Sun Jan 27 21:48:02 2008 @@ -642,6 +642,18 @@ /// @brief Return the signed version of the predicate. static Predicate getSignedPredicate(Predicate pred); + /// For example, EQ->EQ, SLE->ULE, UGT->UGT, etc. + /// @returns the predicate that would be the result if the operand were + /// regarded as unsigned. + /// @brief Return the unsigned version of the predicate + Predicate getUnsignedPredicate() const { + return getUnsignedPredicate(getPredicate()); + } + + /// This is a static version that you can use without an instruction. + /// @brief Return the unsigned version of the predicate. + static Predicate getUnsignedPredicate(Predicate pred); + /// isEquality - Return true if this predicate is either EQ or NE. This also /// tests for commutativity. static bool isEquality(Predicate P) { Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=46431&r1=46430&r2=46431&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sun Jan 27 21:48:02 2008 @@ -5820,18 +5820,22 @@ if (RHSCIOp->getType() != LHSCIOp->getType()) return 0; - // If the signedness of the two compares doesn't agree (i.e. one is a sext + // If the signedness of the two casts doesn't agree (i.e. one is a sext // and the other is a zext), then we can't handle this. if (CI->getOpcode() != LHSCI->getOpcode()) return 0; - // Likewise, if the signedness of the [sz]exts and the compare don't match, - // then we can't handle this. - if (isSignedExt != isSignedCmp && !ICI.isEquality()) - return 0; - - // Okay, just insert a compare of the reduced operands now! - return new ICmpInst(ICI.getPredicate(), LHSCIOp, RHSCIOp); + // Deal with equality cases early. + if (ICI.isEquality()) + return new ICmpInst(ICI.getPredicate(), LHSCIOp, RHSCIOp); + + // A signed comparison of sign extended values simplifies into a + // signed comparison. + if (isSignedCmp && isSignedExt) + return new ICmpInst(ICI.getPredicate(), LHSCIOp, RHSCIOp); + + // The other three cases all fold into an unsigned comparison. + return new ICmpInst(ICI.getUnsignedPredicate(), LHSCIOp, RHSCIOp); } // If we aren't dealing with a constant on the RHS, exit early Modified: llvm/trunk/lib/VMCore/Instructions.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=46431&r1=46430&r2=46431&view=diff ============================================================================== --- llvm/trunk/lib/VMCore/Instructions.cpp (original) +++ llvm/trunk/lib/VMCore/Instructions.cpp Sun Jan 27 21:48:02 2008 @@ -2429,6 +2429,19 @@ } } +ICmpInst::Predicate ICmpInst::getUnsignedPredicate(Predicate pred) { + switch (pred) { + default: assert(! "Unknown icmp predicate!"); + case ICMP_EQ: case ICMP_NE: + case ICMP_UGT: case ICMP_ULT: case ICMP_UGE: case ICMP_ULE: + return pred; + case ICMP_SGT: return ICMP_UGT; + case ICMP_SLT: return ICMP_ULT; + case ICMP_SGE: return ICMP_UGE; + case ICMP_SLE: return ICMP_ULE; + } +} + bool ICmpInst::isSignedPredicate(Predicate pred) { switch (pred) { default: assert(! "Unknown icmp predicate!"); Added: llvm/trunk/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll?rev=46431&view=auto ============================================================================== --- llvm/trunk/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll (added) +++ llvm/trunk/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll Sun Jan 27 21:48:02 2008 @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | opt -instcombine | notcast +; RUN: llvm-as < %s | opt -instcombine | not grep {icmp s} +; PR1940 + +define i1 @test1(i8 %A, i8 %B) { + %a = zext i8 %A to i32 + %b = zext i8 %B to i32 + %c = icmp sgt i32 %a, %b + ret i1 %c +} + +define i1 @test2(i8 %A, i8 %B) { + %a = sext i8 %A to i32 + %b = sext i8 %B to i32 + %c = icmp ugt i32 %a, %b + ret i1 %c +} From sabre at nondot.org Sun Jan 27 22:18:42 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 04:18:42 -0000 Subject: [llvm-commits] [llvm] r46432 - /llvm/trunk/Makefile.rules Message-ID: <200801280418.m0S4IgfK002300@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 22:18:41 2008 New Revision: 46432 URL: http://llvm.org/viewvc/llvm-project?rev=46432&view=rev Log: reduce duplicate -I flags passed to the compiler, cleaning up the VERBOSE output. Patch contributed by Sam Bishop! Modified: llvm/trunk/Makefile.rules Modified: llvm/trunk/Makefile.rules URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=46432&r1=46431&r2=46432&view=diff ============================================================================== --- llvm/trunk/Makefile.rules (original) +++ llvm/trunk/Makefile.rules Sun Jan 27 22:18:41 2008 @@ -454,12 +454,11 @@ LD.Flags += -L$(LibDir) -L$(LLVMLibDir) CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS # All -I flags should go here, so that they don't confuse llvm-config. -CPP.Flags += -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \ - -I$(PROJ_OBJ_ROOT)/include \ - -I$(PROJ_SRC_ROOT)/include \ - -I$(LLVM_OBJ_ROOT)/include \ - -I$(LLVM_SRC_ROOT)/include \ - $(CPP.BaseFlags) +CPP.Flags += $(patsubst %,-I%/include,$(sort \ + $(PROJ_OBJ_DIR) $(PROJ_SRC_DIR) \ + $(PROJ_OBJ_ROOT) $(PROJ_SRC_ROOT) \ + $(LLVM_OBJ_ROOT) $(LLVM_SRC_ROOT))) \ + $(CPP.BaseFlags) Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c LTCompile.C = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.C) From clattner at apple.com Sun Jan 27 22:19:25 2008 From: clattner at apple.com (Chris Lattner) Date: Sun, 27 Jan 2008 20:19:25 -0800 Subject: [llvm-commits] Makefile.rules patch: remove redundant -I compiler flags In-Reply-To: <20096.137.201.242.130.1200416869.squirrel@webmail.nwind.net> References: <20096.137.201.242.130.1200416869.squirrel@webmail.nwind.net> Message-ID: <7F11BCD9-B5F6-449E-9AE1-A1FB3542A2BC@apple.com> On Jan 15, 2008, at 9:07 AM, Sam Bishop wrote: > The attached patch makes VERBOSE builds easier to wade through. > It's likely > to also permute the PROJ_* and LLVM_* includes, but I don't think that > should matter. I've done a full-tree compile and everything seems > to be > working. Applied, thanks! http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080121/057641.html -Chris From clattner at apple.com Sun Jan 27 22:37:16 2008 From: clattner at apple.com (Chris Lattner) Date: Sun, 27 Jan 2008 20:37:16 -0800 Subject: [llvm-commits] [llvm] r46394 - in /llvm/trunk/lib: Target/PowerPC/PPCAsmPrinter.cpp Transforms/Scalar/SimplifyCFG.cpp In-Reply-To: References: <200801260651.m0Q6pO7r008599@zion.cs.uiuc.edu> <59E44561-2C78-46E2-97A1-0238929DBAD4@apple.com> Message-ID: >>> + BuildMI(MBB, MBB.end(), TM.getInstrInfo()->get(PPC::NOP)); >>> + } >> >> Is there any reason to actually make a machineinstr here? It seems >> like it would be possible to just emit "nop" to the .s file. The JIT >> doesn't need this. >> > I initially had that, but I thought that it would be better to do > things though the "print machine instruction" function just so I got > the syntax correct. But nop is probably safe to emit like that. "nop" is valid on arm, thanks. -Chris From sabre at nondot.org Sun Jan 27 22:41:43 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 04:41:43 -0000 Subject: [llvm-commits] [llvm] r46433 - /llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp Message-ID: <200801280441.m0S4fhcg003069@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 22:41:43 2008 New Revision: 46433 URL: http://llvm.org/viewvc/llvm-project?rev=46433&view=rev Log: Transform calls to memcpy into llvm.memcpy calls, patch by Eli Friedman. Modified: llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp Modified: llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp?rev=46433&r1=46432&r2=46433&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp (original) +++ llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp Sun Jan 27 22:41:43 2008 @@ -919,6 +919,36 @@ } } memcmpOptimizer; +/// This LibCallOptimization will simplify a call to the memcpy library +/// function. It simply converts them into calls to llvm.memcpy.*; +/// the resulting call should be optimized later. +/// @brief Simplify the memcpy library function. +struct VISIBILITY_HIDDEN MemCpyOptimization : public LibCallOptimization { +public: + MemCpyOptimization() : LibCallOptimization("memcpy", + "Number of 'memcpy' calls simplified") {} + + /// @brief Make sure that the "memcpy" function has the right prototype + virtual bool ValidateCalledFunction(const Function *F, SimplifyLibCalls &SLC){ + const FunctionType *FT = F->getFunctionType(); + const Type* voidPtr = PointerType::getUnqual(Type::Int8Ty); + return FT->getReturnType() == voidPtr && FT->getNumParams() == 3 && + FT->getParamType(0) == voidPtr && + FT->getParamType(1) == voidPtr && + FT->getParamType(2) == SLC.getIntPtrType(); + } + + /// @brief Perform the memcpy optimization + virtual bool OptimizeCall(CallInst *CI, SimplifyLibCalls &SLC) { + Value *MemcpyOps[] = { + CI->getOperand(1), CI->getOperand(2), CI->getOperand(3), + ConstantInt::get(Type::Int32Ty, 1) // align = 1 always. + }; + new CallInst(SLC.get_memcpy(), MemcpyOps, MemcpyOps + 4, "", CI); + // memcpy always returns the destination + return ReplaceCallWith(CI, CI->getOperand(1)); + } +} MemCpyOptimizer; /// This LibCallOptimization will simplify a call to the memcpy library /// function by expanding it out to a single store of size 0, 1, 2, 4, or 8 From sabre at nondot.org Sun Jan 27 23:17:19 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 05:17:19 -0000 Subject: [llvm-commits] [test-suite] r46434 - in /test-suite/trunk/MultiSource/Benchmarks/VersaBench: ./ README.txt beamformer/ beamformer/Makefile beamformer/beamformer.c dbms/ Message-ID: <200801280517.m0S5HJ5U004307@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 23:17:19 2008 New Revision: 46434 URL: http://llvm.org/viewvc/llvm-project?rev=46434&view=rev Log: add a benchmark from 'VersaBench'. Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/ test-suite/trunk/MultiSource/Benchmarks/VersaBench/README.txt test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/ test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/Makefile test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/beamformer.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/README.txt URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/README.txt?rev=46434&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/README.txt (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/README.txt Sun Jan 27 23:17:19 2008 @@ -0,0 +1,2 @@ +Obtained from: +http://cag.csail.mit.edu/versabench/benchmarks.html Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/Makefile URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/Makefile?rev=46434&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/Makefile (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/Makefile Sun Jan 27 23:17:19 2008 @@ -0,0 +1,10 @@ +LEVEL = ../../../.. + +PROG = beamformer +ifdef LARGE_PROBLEM_SIZE +RUN_OPTIONS = -i 400 +else +RUN_OPTIONS = -i 140 +endif +include $(LEVEL)/MultiSource/Makefile.multisrc + Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/beamformer.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/beamformer.c?rev=46434&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/beamformer.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/beamformer/beamformer.c Sun Jan 27 23:17:19 2008 @@ -0,0 +1,402 @@ +/* + * Copyright (c) 2003 David Maze + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * beamformer.c: Standalone beam-former reference implementation + * David Maze + * $Id: beamformer.c,v 1.5 2003/11/07 08:47:00 thies Exp $ + */ + +/* Modified by: Rodric M. Rabbah 06-03-04 */ + +#include +#include +#include +#include + +/* +This implementation is derived from the StreamIt implementation, +rather than from the PCA VSIPL-based implementation. It is intended +to be easier to synchronize our reference implementation with our +StreamIt implementation, not have dependencies on extra libraries, and +generally be a fairer comparison with the StreamIt code (that is, +equivalent to our other benchmarks). + +This version gets consistent output with the StreamIt version when +compiled with RANDOM_INPUTS and RANDOM_WEIGHTS. The algorithm should +be equivalent to the SERIALIZED implementation. + +FLAGS: the StreamIt TemplateBeamFormer can be built with COARSE +defined or not, with SERIALIZED defined or not, and with RANDOM_INPUTS +defined or not. Defining COARSE changes the algorithm to add two +decimation stages; this presently isn't implemented. SERIALIZED +changes where in the graph printing happens; in the non-SERIALIZED +version printing happens in the detector stage, but this doesn't have +a deterministic order. RANDOM_INPUTS and RANDOM_WEIGHTS change +weights at several points in the code, where "RANDOM" is "something +the author made up" rather than "determined via rand()". The default +flags are both RANDOM_WEIGHTS and RANDOM_INPUTS. + +RANDOM_INPUTS and RANDOM_WEIGHTS are easy to do, so they are +implemented here as well. We ignore SERIALIZED, though we do go +through the detectors in a deterministic order which should give the +right answer, and add a reordering stage equivalent to what SERIALZIED +adds to get results in the same order. COARSE is left for a future +implementation. +*/ + +#define RANDOM_INPUTS + +struct BeamFirData +{ + int len, count, pos; + float *weight, *buffer; +}; + +void begin(void); +void InputGenerate(int channel, float *inputs, int n); +void BeamFirSetup(struct BeamFirData *data, int n); +void BeamFirFilter(struct BeamFirData *data, + int input_length, int decimation_ratio, + float *in, float *out); +void BeamFormWeights(int beam, float *weights); +void BeamForm(int beam, const float *weights, const float *input, + float *output); +void Magnitude(float *in, float *out, int n); +void Detector(int beam, float *data, float *output); + +#define NUM_CHANNELS 12 +#define NUM_SAMPLES 1024 +#define NUM_BEAMS 4 +/* Bill writes: under current implementation, decimation ratios must + divide NUM_SAMPLES. */ +#define NUM_COARSE_TAPS 64 +#define NUM_FINE_TAPS 64 +#define COARSE_DECIMATION_RATIO 1 +#define FINE_DECIMATION_RATIO 2 +#define NUM_SEGMENTS 1 +#define NUM_POST_DEC_1 (NUM_SAMPLES/COARSE_DECIMATION_RATIO) +#define NUM_POST_DEC_2 (NUM_POST_DEC_1/FINE_DECIMATION_RATIO) +#define MF_SIZE (NUM_SEGMENTS*NUM_POST_DEC_2) +#define PULSE_SIZE (NUM_POST_DEC_2/2) +#define PREDEC_PULSE_SIZE \ + (PULSE_SIZE*COARSE_DECIMATION_RATIO*FINE_DECIMATION_RATIO) +#define TARGET_BEAM (NUM_BEAMS/4) +#define TARGET_SAMPLE (NUM_SAMPLES/4) +#define TARGET_SAMPLE_POST_DEC \ + (TARGET_SAMPLE/COARSE_DECIMATION_RATIO/FINE_DECIMATION_RATIO) +#define D_OVER_LAMBDA 0.5 +#define CFAR_THRESHOLD (0.95*D_OVER_LAMBDA*NUM_CHANNELS*0.5*PULSE_SIZE) + +static int numiters = 100; + +int main(int argc, char **argv) +{ + int option; + + while ((option = getopt(argc, argv, "i:")) != -1) + { + switch(option) + { + case 'i': + numiters = atoi(optarg); + } + } + + begin(); + return 0; +} + +/* What are the counts here? Deriving: + * + * Detector takes TARGET_SAMPLE_POST_DEC inputs. + * Magnitude takes twice as many. + * The various BeamFirFilters have internal circular buffers, + * so their counts are only affected by the decimation rates. + * The last BeamFirFilter has no decimation, so its input count + * is also 2*TARGET_SAMPLE_POST_DEC. + * BeamForm takes NUM_CHANNELS times as many. + * + * So, coming out of the first for loop, the buffer should have + * 2*TARGET_SAMPLE_POST_DEC*NUM_CHANNELS values. This comes from + * a roundrobin(2) joiner in StreamIt, for NUM_CHANNELS children. + * + * The second BeamFirFilter has 2*TARGET_SAMPLE_POST_DEC outputs. + * The first BeamFirFilter has + * 2*TARGET_SAMPLE_POST_DEC*FINE_DECIMATION_RATIO outputs. + * The input generator produces 2*TARGET_SAMPLE values. + */ + +void begin(void) +{ +#ifdef AVOID_PRINTF + volatile float result; +#endif + struct BeamFirData coarse_fir_data[NUM_CHANNELS]; + struct BeamFirData fine_fir_data[NUM_CHANNELS]; + struct BeamFirData mf_fir_data[NUM_BEAMS]; + float inputs[2*NUM_SAMPLES*NUM_CHANNELS]; + float predec[2*NUM_POST_DEC_1*NUM_CHANNELS]; + float postdec[NUM_CHANNELS][2*NUM_POST_DEC_2*NUM_CHANNELS]; + float beam_weights[NUM_BEAMS][2*NUM_CHANNELS]; + float beam_input[2*NUM_CHANNELS*NUM_POST_DEC_2]; + float beam_output[2*NUM_POST_DEC_2]; + float beam_fir_output[2*NUM_POST_DEC_2]; + float beam_fir_mag[NUM_POST_DEC_2]; + float detector_out[NUM_BEAMS][NUM_POST_DEC_2]; + int i, j; + + for (i = 0; i < NUM_CHANNELS; i++) + { + BeamFirSetup(&coarse_fir_data[i], NUM_COARSE_TAPS); + BeamFirSetup(&fine_fir_data[i], NUM_FINE_TAPS); + } + for (i = 0; i < NUM_BEAMS; i++) + { + BeamFirSetup(&mf_fir_data[i], MF_SIZE); + BeamFormWeights(i, beam_weights[i]); + } + + /*** VERSABENCH START ***/ + + while (numiters == -1 || numiters-- > 0) { + for (i = 0; i < NUM_CHANNELS; i++) { + for (j = 0; j < NUM_CHANNELS; j++) + InputGenerate(i, inputs + j*NUM_SAMPLES*2, + NUM_SAMPLES); + for (j = 0; j < NUM_POST_DEC_1; j++) + BeamFirFilter(&coarse_fir_data[i], + NUM_SAMPLES, COARSE_DECIMATION_RATIO, + inputs + j * COARSE_DECIMATION_RATIO*2, + predec + j * 2); + for (j = 0; j < NUM_POST_DEC_2; j++) + BeamFirFilter(&fine_fir_data[i], + NUM_POST_DEC_1, FINE_DECIMATION_RATIO, + predec + j * FINE_DECIMATION_RATIO * 2, + postdec[i] + j * 2); + } + /* Assemble beam-forming input: */ + for (i = 0; i < NUM_CHANNELS; i++) + for (j = 0; j < NUM_POST_DEC_2; j++) + { + beam_input[j*NUM_CHANNELS*2+2*i] = postdec[i][2*j]; + beam_input[j*NUM_CHANNELS*2+2*i+1] = postdec[i][2*j+1]; + } + for (i = 0; i < NUM_BEAMS; i++) + { + /* Have now rearranged NUM_CHANNELS*NUM_POST_DEC_2 items. + * BeamForm takes NUM_CHANNELS inputs, 2 outputs. */ + for (j = 0; j < NUM_POST_DEC_2; j++) + BeamForm(i, beam_weights[i], + beam_input + j*NUM_CHANNELS*2, + beam_output + j*2); + for (j = 0; j < NUM_POST_DEC_2; j++) + BeamFirFilter(&mf_fir_data[i], + NUM_POST_DEC_2, 1, + beam_output+j*2, beam_fir_output+j*2); + Magnitude(beam_fir_output, beam_fir_mag, NUM_POST_DEC_2); + Detector(i, beam_fir_mag, detector_out[i]); + } + for (j = 0; j < NUM_POST_DEC_2; j++) + for (i = 0; i < NUM_BEAMS; i++) +#ifdef AVOID_PRINTF + result = detector_out[i][j]; +#else + printf("%f\n", detector_out[i][j]); +#endif + } + + /*** VERSABENCH END ***/ + +} + +void InputGenerate(int channel, float *inputs, int n) +{ + int i; + for (i = 0; i < n; i++) + { + if (channel == TARGET_BEAM && i == TARGET_SAMPLE) + { +#ifdef RANDOM_INPUTS + inputs[2*i] = sqrt(i*channel); + inputs[2*i+1] = sqrt(i*channel)+1; +#else + inputs[2*i] = sqrt(CFAR_THRESHOLD); + inputs[2*i+1] = 0; +#endif + } else { +#ifdef RANDOM_INPUTS + float root = sqrt(i*channel); + inputs[2*i] = -root; + inputs[2*i+1] = -(root+1); +#else + inputs[2*i] = 0; + inputs[2*i+1] = 0; +#endif + } + } +} + +void BeamFirSetup(struct BeamFirData *data, int n) +{ + int i, j; + + data->len = n; + data->count = 0; + data->pos = 0; + data->weight = malloc(sizeof(float)*2*n); + data->buffer = malloc(sizeof(float)*2*n); + +#ifdef RANDOM_WEIGHTS + for (j = 0; j < n; j++) { + int idx = j+1; + data->weight[j*2] = sin(idx) / ((float)idx); + data->weight[j*2+1] = cos(idx) / ((float)idx); + data->buffer[j*2] = 0.0; + data->buffer[j*2+1] = 0.0; + } +#else + data->weight[0] = 1.0; + data->weight[1] = 0.0; + for (i = 1; i < 2*n; i++) { + data->weight[i] = 0.0; + data->buffer[i] = 0.0; + } +#endif +} + +void BeamFirFilter(struct BeamFirData *data, + int input_length, int decimation_ratio, + float *in, float *out) +{ + /* Input must be exactly 2*decimation_ratio long; output must be + * exactly 2 long. */ + float real_curr = 0; + float imag_curr = 0; + int i; + int modPos; + int len, mask, mask2; + + len = data->len; + mask = len - 1; + mask2 = 2 * len - 1; + modPos = 2*(len - 1 - data->pos); + data->buffer[modPos] = in[0]; + data->buffer[modPos+1] = in[1]; + + /* Profiling says: this is the single inner loop that matters! */ + for (i = 0; i < 2*len; i+=2) { + float rd = data->buffer[modPos]; + float id = data->buffer[modPos+1]; + float rw = data->weight[i]; + float iw = data->weight[i+1]; + float rci = rd * rw + id * iw; + /* sign error? this is consistent with StreamIt --dzm */ + float ici = id * rw + rd * iw; + real_curr += rci; + imag_curr += ici; + modPos = (modPos + 2) & mask2; + } + + data->pos = (data->pos + 1) & mask; + out[0] = real_curr; + out[1] = imag_curr; + data->count += decimation_ratio; + if (data->count == input_length) + { + data->count = 0; + data->pos = 0; + for (i = 0; i < 2*data->len; i++) { + data->buffer[i] = 0.0; + } + } +} + +void BeamFormWeights(int beam, float *weights) +{ + int i; + for (i = 0; i < NUM_CHANNELS; i++) + { +#ifdef RANDOM_WEIGHTS + int idx = i+1; + weights[2*i] = sin(idx) / (float)(beam+idx); + weights[2*i+1] = cos(idx) / (float)(beam+idx); +#else + if (i == beam) { + weights[2*i] = 1; + weights[2*i+1] = 0; + } else { + weights[2*i] = 0; + weights[2*i+1] = 0; + } +#endif + } +} + +void BeamForm(int beam, const float *weights, const float *input, + float *output) +{ + /* 2*NUM_CHANNELS inputs and weights; 2 outputs. */ + float real_curr = 0; + float imag_curr = 0; + int i; + for (i = 0; i < NUM_CHANNELS; i++) + { + real_curr += weights[2*i] * input[2*i] - weights[2*i+1] * input[2*i+1]; + imag_curr += weights[2*i] * input[2*i+1] + weights[2*i+1] * input[2*i]; + } + output[0] = real_curr; + output[1] = imag_curr; +} + +void Magnitude(float *in, float *out, int n) +{ + int i; + /* Should be 2n inputs, n outputs. */ + for (i = 0; i < n; i++) + out[i] = sqrt(in[2*i]*in[2*i] + in[2*i+1]*in[2*i+1]); +} + +void Detector(int beam, float *data, float *output) +{ + int sample; + /* Should be exactly NUM_POST_DEC_2 samples. */ + for (sample = 0; sample < NUM_POST_DEC_2; sample++) + { + float outputVal; + if (beam == TARGET_BEAM && sample == TARGET_SAMPLE) { + if (data[sample] >= 0.1) + outputVal = beam+1; + else + outputVal = 0; + } else { + if (data[sample] >= 0.1) + outputVal = -(beam+1); + else + outputVal = 0; + } + outputVal = data[sample]; + output[sample]= outputVal; + } +} From sabre at nondot.org Sun Jan 27 23:23:40 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 05:23:40 -0000 Subject: [llvm-commits] [test-suite] r46435 [1/4] - /test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/ Message-ID: <200801280523.m0S5NkDR004554@zion.cs.uiuc.edu> Author: lattner Date: Sun Jan 27 23:23:39 2008 New Revision: 46435 URL: http://llvm.org/viewvc/llvm-project?rev=46435&view=rev Log: add a VersaBench benchmark. Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/Makefile test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/calcMetricsData.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/chooseEntry.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/clearLine.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/closeFiles.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/consistent.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createDataObject.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexEntry.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexNode.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataManagement.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataObject.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.ref.in test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.train.in test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/delete.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/delete.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/deleteDataObject.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/deleteEntry.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/deleteIndexEntry.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/deleteIndexNode.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/errorMessage.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/errorMessage.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getDeleteCommand.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getDeleteCommand.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getFloat.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getFloat.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInitCommand.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInitCommand.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInsertCommand.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInsertCommand.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInt.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getInt.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getKeyAttribute.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getKeyAttribute.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getNextCommandCode.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getNextCommandCode.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getNonKeyAttribute.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getNonKeyAttribute.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getQueryCommand.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getQueryCommand.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/getString.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/index.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/indexKey.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/initMetricsData.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/insert.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/insert.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/insertEntry.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/insertEntry.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/keyUnion.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/main.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/metrics.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/openFiles.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/openFiles.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/outputMetricsData.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/outputQuery.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/partitionEntries.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/penalty.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/query.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/query.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/setMetricsData.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/splitNode.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/splitNode.h test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/timer.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/updateMetricsData.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/valid.c test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/volume.c Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/Makefile URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/Makefile?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/Makefile (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/Makefile Sun Jan 27 23:23:39 2008 @@ -0,0 +1,10 @@ +LEVEL = ../../../.. + +PROG = dbms +ifdef SMALL_PROBLEM_SIZE +RUN_OPTIONS = -i dbms.train.in +else +RUN_OPTIONS = -i dbms.ref.in +endif +include $(LEVEL)/MultiSource/Makefile.multisrc + Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/calcMetricsData.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/calcMetricsData.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/calcMetricsData.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/calcMetricsData.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,139 @@ + +/* + * Name: calcMetricsData + * Input: Metrics structure + * Output: Metrics structure + * Return: void + * Description: This routine calculates the average and standard + * deviation of the provided command metric structures. + * The routine checks that at least one sample time + * difference is present in the command metric structure + * which is placed via the updateMetricsData() routine. + * Two errors are possible for this routine: (1) the + * command metric structure has no samples, and (2) + * round-off has caused the calculated variance to be + * a negative number, although this is analytically + * impossible. In the case of either error, the average + * and standard deviation members are set to zero which + * may help prevent their later use if "junk" were left + * there either as initialization or from previous + * calculations. + * Calls: getTime() + * System: sqrt() + * Author: M.L.Rivas + * + * Revision History: + * + * Date Name Revision + * ------- --------------- ------------------------------ + * 27May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for assert() */ +#include /* for sqrt() definition */ +#include "dataManagement.h" /* for primitive type definitions */ +#include "metrics.h" /* for Metrics definition */ + +/* + * Function prototype + */ +extern Time getTime( void ); + +void calcMetricsData( Metrics *metrics ) /* metrics struct to calculate */ +{ /* begin calcMetricsData() */ + Double temp; + + assert( metrics ); + + /* + * Determine total time for application execution + */ + metrics->totalTime = getTime() - metrics->totalTime; + + /* + * Calculate metrics for Insert Command: calculate the average and the + * the variance. If the variance is non-negative, calculate the standard + * deviation. + */ + if ( metrics->insertCommandMetric.numOfCommands > 0 ) { + /* + * Calculate metrics for Insert Command: calculate the average and the + * the variance. If the variance is non-negative, calculate the standard + * deviation. + */ + metrics->insertCommandMetric.avg = metrics->insertCommandMetric.sum + / metrics->insertCommandMetric.numOfCommands; + temp = metrics->insertCommandMetric.sumSquares + - metrics->insertCommandMetric.sum + * metrics->insertCommandMetric.sum + / metrics->insertCommandMetric.numOfCommands; + if ( temp < 0.0 ) { + metrics->insertCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->insertCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of temp < 0.0 - round-off error for variance */ + else { + metrics->insertCommandMetric.deviation = sqrt( temp / + metrics->insertCommandMetric.numOfCommands ); + } /* end of temp >= 0.0 */ + } /* end of insert->numOfCommands > 0 */ + else { + metrics->insertCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->insertCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of insert->numOfCommands == 0 */ + + /* + * Calculate metrics for Query Command: calculate the average and the + * the variance. If the variance is non-negative, calculate the standard + * deviation. + */ + if ( metrics->queryCommandMetric.numOfCommands > 0 ) { + metrics->queryCommandMetric.avg = metrics->queryCommandMetric.sum + / metrics->queryCommandMetric.numOfCommands; + temp = metrics->queryCommandMetric.sumSquares + - metrics->queryCommandMetric.sum + * metrics->queryCommandMetric.sum + / metrics->queryCommandMetric.numOfCommands; + if ( temp < 0.0 ) { + metrics->queryCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->queryCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of temp < 0.0 - round-off error for variance */ + else { + metrics->queryCommandMetric.deviation = sqrt( temp / + metrics->queryCommandMetric.numOfCommands ); + } /* end of temp >= 0.0 */ + } /* end of query->numOfCommands > 0 */ + else { + metrics->queryCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->queryCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of query->numOfCommands == 0 */ + + /* + * Calculate metrics for Delete Command: calculate the average and the + * the variance. If the variance is non-negative, calculate the standard + * deviation. + */ + if ( metrics->deleteCommandMetric.numOfCommands > 0 ) { + metrics->deleteCommandMetric.avg = metrics->deleteCommandMetric.sum + / metrics->deleteCommandMetric.numOfCommands; + temp = metrics->deleteCommandMetric.sumSquares + - metrics->deleteCommandMetric.sum + * metrics->deleteCommandMetric.sum + / metrics->deleteCommandMetric.numOfCommands; + if ( temp < 0.0 ) { + metrics->deleteCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->deleteCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of temp < 0.0 - round-off error for variance */ + else { + metrics->deleteCommandMetric.deviation = sqrt( temp / + metrics->deleteCommandMetric.numOfCommands ); + } /* end of temp >= 0.0 */ + } /* end of delete->numOfCommands > 0 */ + else { + metrics->deleteCommandMetric.avg = MINIMUM_VALUE_OF_FLOAT; + metrics->deleteCommandMetric.deviation = MINIMUM_VALUE_OF_FLOAT; + } /* end of delete->numOfCommands == 0 */ + + return; +} /* end of calcMetricsData() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/chooseEntry.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/chooseEntry.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/chooseEntry.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/chooseEntry.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,64 @@ + +/* + * Name: chooseEntry + * Input: list of entries to choose from + * entry to choose with + * Output: entry within input list which minimizes penalty + * Return: IndexEntry pointer, or + * NULL if node is empty + * Description: Determines which entry of input list to add new entry. + * Chosen entry provides the minimum penalty which is the + * increase of the total hyper-cube volume. No error is + * possible, but the value of the entry returned can be set to + * NULL which should be checked for in the calling routine. + * Calls: penalty(); + * System: + * Author: M.L.Rivas + * + * Revision History: + * + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for assert() */ +#include /* for NULL definition */ +#include "dataManagement.h" /* for primitive type definitions */ +#include "index.h" /* for IndexNode and IndexEntry definitions */ + +/* + * Function prototypes + */ +extern Float penalty( IndexEntry A, IndexEntry B ); + +IndexEntry * chooseEntry( IndexNode *node, /* node to choose from */ + IndexEntry *entry ) /* entry to choose with */ +{ /* beginning of chooseEntry() */ + IndexEntry *minPenaltyEntry; /* result entry to return */ + IndexEntry *temp; /* used for looping */ + Float minPenalty; /* value of min penalty */ + + assert( node ); + assert( node->entries ); + assert( entry ); + + /* + * Loop through entries of node to find minimum penalty. + */ + minPenaltyEntry = node->entries; + minPenalty = penalty( *minPenaltyEntry, *entry ); + for ( temp = minPenaltyEntry->next; temp != NULL; temp = temp->next ) { + Float tempPenalty; + + tempPenalty = penalty( *temp, *entry ); + if ( tempPenalty < minPenalty ) { + minPenaltyEntry = temp; + minPenalty = tempPenalty; + } /* end of if ( tempPenalty < minPenalty ) */ + } /* end of loop for temp */ + + return ( minPenaltyEntry ); +} /* end of chooseEntry() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/clearLine.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/clearLine.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/clearLine.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/clearLine.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,37 @@ + +/* + * Name: clearLine + * Input: FILE ptr + * Output: none + * Return: void + * Description: Reads from the current file position to the end of the line + * indicated by a new line character '\n' or carriage return + * '\r'. Will also stop at EOF. Contents of line are not + * saved and are lost. The end-of-line indicator is also + * removed from the stream. + * Calls: + * System: fgetc() + * + * Revision History: + * + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for FILE and fgetc() definitions */ +#include "dataManagement.h" /* for primitive data types */ + +void clearLine( FILE *file ) +{ /* begin clearLine() */ + Int c; /* temporary character read from file */ + + c = fgetc( file ); + while ( c != EOF && c != '\n' && c != '\r' ) { + c = fgetc( file ); + } /* end loop while ( c != EOF, etc. */ + + return; +} /* end of clearLine() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/closeFiles.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/closeFiles.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/closeFiles.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/closeFiles.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,70 @@ + +/* + * Name: closeFiles + * Input: input FILE pointer + * output FILE pointer + * metric FILE pointer + * Output: none + * Return: void + * Description: Routine closes the three files used during application. + * The return values for the system call to close the files + * are checked but not acted upon. Any error occuring during + * the closing of the files is non-fatal, since the routine is + * part of the Input & Output module exit process. + * Appropriate messages are placed in the error message buffer + * whenever an error does occur. + * Calls: errorMessage() + * System: assert() + * fclose() + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for assert() */ +#include /* for FILE definition and fclose() */ +#include "dataManagement.h" /* for primitive data types */ +#include "errorMessage.h" /* for errorMessage() definition */ + +void closeFiles( FILE *inputFile, /* input file to close */ + FILE *outputFile, /* output file to close */ + FILE *metricFile ) /* metrics file to close */ +{ /* beginning of closeFiles() */ + Int error; /* error return from fclose() system call */ + + static Char name[] = "closeFiles"; + + assert( inputFile ); + assert( outputFile ); + assert( metricFile ); + + /* + * Close each file provided. Return values are checked, but not acted + * upon. Any error return is non-fatal since the files will only be + * closed during the Input & Output module exit. + */ + error = fclose( inputFile ); + if ( error != 0 ) { + errorMessage( "error closing input file", REPLACE ); + errorMessage( name, PREPEND ); + } /* end of if ( error != 0 ) */ + + error = fclose( outputFile ); + if ( error != 0 ) { + errorMessage( "error closing output file", REPLACE ); + errorMessage( name, PREPEND ); + } /* end of if ( error != 0 ) */ + + error = fclose( metricFile ); + if ( error != 0 ) { + errorMessage( "error closing metric file", REPLACE ); + errorMessage( name, PREPEND ); + } /* end of if ( error != 0 ) */ + + return; +} /* end of closeFiles() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/consistent.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/consistent.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/consistent.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/consistent.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,121 @@ + +/* + * File Name: consistent.c + * Purpose: Determines if either the two key or non-key values are + * consistent. Key values are consistent if the two + * hyper-cubes intersect. Non-key values are consistent if the + * first non-key character string completely constains the + * second non-key character string. + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for assert() */ +#include /* for strstr() definition */ +#include "dataManagement.h" /* for primitive type definitions */ +#include "indexKey.h" /* for IndexKey definition */ + +/* + * + * Name: consistentKey + * Input: index key, A + * index key, B + * Output: flag indicating intersection + * Return: integer, TRUE or FALSE + * Description: Returns boolean value indicating if two input index keys + * intersect. The routine is communative, i.e., + * consistent(A,B) == consistent(B,A). + * Calls: + * System: + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +Boolean consistentKey( IndexKey *A, IndexKey *B ) +{ /* beginning of consistentKey() */ + Boolean flag; /* flag indicating consistency */ + + assert( A ); + assert( B ); + + /* + * Check each dimension for intersection. If any dimension fails, then no + * intersection can occur, set flag and return. + */ + flag = TRUE; + if ( A->lower.T > B->upper.T || B->lower.T > A->upper.T ) { + flag = FALSE; + } /* end of bounds check on T */ + else { + if ( A->lower.X > B->upper.X || B->lower.X > A->upper.X ) { + flag = FALSE; + } /* end of bounds check on X */ + else { + if ( A->lower.Y > B->upper.Y || B->lower.Y > A->upper.Y ) { + flag = FALSE; + } /* end of bounds check on Y */ + else { + if ( A->lower.Z > B->upper.Z || B->lower.Z > A->upper.Z ) { + flag = FALSE; + } /* end of bounds check on Z */ + } /* end of check on Y */ + } /* end of check on X */ + } /* end of check on T */ + + return ( flag ); +} /* end of consistentKey() */ + +/* + * + * Name: consistentNonKey + * Input: character string, A + * character string, B + * Output: flag indicating intersection + * Return: integer, TRUE or FALSE + * Description: Returns boolean value indicating if two input character + * strings are consistent. The check is true if string A + * entirely contains string B. The routine is NOT communative, + * i.e., consistent(A,B) != consistent(B,A) in general. + * Calls: + * System: strstr() + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +Boolean consistentNonKey( Char *A, Char *B ) +{ /* beginning of consistentNonKey() */ + Boolean flag; /* flag indicating consistency */ + + assert( A ); + assert( B ); + + /* + * Check for string B inside string A using library + * routine. + */ + if ( strstr( A, B ) != NULL ) { + flag = TRUE; + } /* end of if strstr != NULL */ + else { + flag = FALSE; + } /* end of if strstr == NULL */ + + return ( flag ); +} /* end of consistentNonKey() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createDataObject.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createDataObject.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createDataObject.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createDataObject.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,125 @@ + +/* + * Name: createDataObject + * Input: data object type + * Output: new data object + * Return: DataObject pointer, or + * NULL (if allocation failed) + * Description: Routine creates a data object of specified type by + * allocating appropriate amount of memory for number of + * non-key attributes. Note that memory is not allocated for + * the individual non-key character strings since their + * specific size is not known before hand. The values for the + * data object are also filled with default values which + * produces an index key of a hyper-point at the lowest + * possible position in the space and sets each non-key + * character string to NULL. + * Calls: errorMessage() + * System: assert() + * malloc() + * free() + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for assert() */ +#include /* for NULL and malloc() */ +#include "dataManagement.h" /* for primitive data types */ +#include "dataObject.h" /* for DataObject definition */ +#include "errorMessage.h" /* for errorMessage() definition */ + +DataObject * createDataObject( DataObjectType dataObjectType ) +{ /* beginning of createDataObject() */ + Int i; /* looping index for attributes */ + Int numberOfAttributes; /* number of attribute by type */ + DataObject * dataObject; /* data object to create */ + + static Char name[] = "createDataObject"; + + assert( !(dataObjectType != SMALL && \ + dataObjectType != MEDIUM && \ + dataObjectType != LARGE ) ); + assert( MIN_ATTRIBUTE_CODE < NUM_OF_KEY_ATTRIBUTES ); + assert( MIN_ATTRIBUTE_CODE < MAX_ATTRIBUTE_CODE ); + assert( MAX_ATTRIBUTE_CODE < NUM_OF_LARGE_ATTRIBUTES ); + assert( NUM_OF_KEY_ATTRIBUTES < NUM_OF_SMALL_ATTRIBUTES ); + assert( NUM_OF_KEY_ATTRIBUTES < NUM_OF_MEDIUM_ATTRIBUTES ); + assert( NUM_OF_KEY_ATTRIBUTES < NUM_OF_LARGE_ATTRIBUTES ); + + /* + * Create the data object + */ + dataObject = (DataObject *)malloc( sizeof( DataObject ) ); + if ( dataObject == NULL ) { + /* + * Done: memory allocation error + */ + errorMessage( "memory allocation failure", REPLACE ); + errorMessage( name, PREPEND ); + return ( NULL ); + } /* end if ( dataObject == NULL ) */ + + /* + * Determine number of attributes based on type input + */ + if ( dataObjectType == SMALL ) { + dataObject->type = SMALL; + numberOfAttributes = NUM_OF_SMALL_ATTRIBUTES; + } /* end if ( dataObjectType == SMALL ) */ + else if ( dataObjectType == MEDIUM ) { + dataObject->type = MEDIUM; + numberOfAttributes = NUM_OF_MEDIUM_ATTRIBUTES; + } /* end if ( dataObjectType == MEDIUM ) */ + else if ( dataObjectType == LARGE ) { + dataObject->type = LARGE; + numberOfAttributes = NUM_OF_LARGE_ATTRIBUTES; + } /* end if ( dataObjectType == LARGE ) */ + else { + errorMessage( "invalid object type to create", REPLACE ); + errorMessage( name, PREPEND ); + free( dataObject ); + + /* + * Done: data object type error + */ + return ( NULL ); + } /* end else */ + + /* + * Allocate memory for attributes + */ + dataObject->attributes = + (DataObjectAttribute *)malloc( numberOfAttributes * + sizeof( DataObjectAttribute ) ); + if ( dataObject->attributes == NULL ) { + /* + * Done: memory allocation error + */ + errorMessage( "memory allocation failure", REPLACE ); + errorMessage( name, PREPEND ); + free( dataObject ); + return ( NULL ); + } /* end if ( dataObject->attributes == NULL ) */ + + /* + * Assign implausible initial key values + */ + for ( i = MIN_ATTRIBUTE_CODE; i < NUM_OF_KEY_ATTRIBUTES; i++ ) { + dataObject->attributes[ i ].value.key = MINIMUM_VALUE_OF_FLOAT; + } /* end loop for i */ + + /* + * Assign default non-key values + */ + for ( i = NUM_OF_KEY_ATTRIBUTES; i < numberOfAttributes; i++ ) { + dataObject->attributes[ i ].value.nonKey = NULL; + } /* end loop for i */ + + return ( dataObject ); +} /* end of createDataObject() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexEntry.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexEntry.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexEntry.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexEntry.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,70 @@ + +/* + * Name: createIndexEntry + * Input: none + * Output: new index entry + * Return: IndexEntry pointer, or + * NULL (if allocation failed) + * Description: Routine creates new index entry using system allocation + * routine. Returns pointer to new index entry or NULL if + * allocation failed. The value for the child reference is + * set to NULL for later assignment and the index entry is set + * to the largest possible volume. + * Calls: errorMessage() + * System: malloc() + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for NULL and malloc() definitions */ +#include "errorMessage.h" /* for errorMessage() definition */ +#include "index.h" /* for IndexEntry definition */ + +IndexEntry * createIndexEntry( void ) +{ /* beginning of createIndexEntry() */ + IndexEntry * entry; /* entry to create */ + + static Char name[] = "createIndexEntry"; + + entry = NULL; + + /* + * Allocate memory for new entry + */ + entry = (IndexEntry *)malloc( sizeof( IndexEntry ) ); + if ( entry == NULL ) { + errorMessage( "allocation failure", REPLACE ); + errorMessage( name, PREPEND ); + } /* end of if ( entry == NULL ) */ + else { + /* + * Set values of entry + * - the pointer to the child reference is set to NULL + * - the index key values are set to the largest + * possible hyper-cube possible. This give a good + * probability that uninitialized key values will + * be noticed in the case of an error. + */ + entry->child.node = NULL; + entry->child.dataObject = NULL; + + entry->key.lower.T = MINIMUM_VALUE_OF_FLOAT; + entry->key.lower.X = MINIMUM_VALUE_OF_FLOAT; + entry->key.lower.Y = MINIMUM_VALUE_OF_FLOAT; + entry->key.lower.Z = MINIMUM_VALUE_OF_FLOAT; + entry->key.upper.T = MAXIMUM_VALUE_OF_FLOAT; + entry->key.upper.X = MAXIMUM_VALUE_OF_FLOAT; + entry->key.upper.Y = MAXIMUM_VALUE_OF_FLOAT; + entry->key.upper.Z = MAXIMUM_VALUE_OF_FLOAT; + + entry->next = NULL; + } /* end of entry default assignment */ + + return ( entry ); +} /* end of createIndexEntry() */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexNode.c URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexNode.c?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexNode.c (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/createIndexNode.c Sun Jan 27 23:23:39 2008 @@ -0,0 +1,69 @@ + +/* + * Name: createIndexNode + * Input: integer level + * Output: new index node + * Return: IndexNode pointer, or + * NULL (if allocation failed) + * Description: Routine creates new node using system allocation routine, + * malloc. Returns pointer to new node or NULL if allocation + * failed. The level of the new node is input and stored in + * new node and the list of index entries is specified to be + * empty. + * Calls: errorMessage() + * System: malloc() + * Author: M.L.Rivas + * + * Revision History: + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#include /* for malloc() and NULL definitions */ +#include "dataManagement.h" /* for primitive type definitions */ +#include "errorMessage.h" /* for errorMessage() definition */ +#include "index.h" /* for IndexNode definition */ + +IndexNode * createIndexNode( Int level ) /* level of new node */ +{ /* beginning of createIndexNode() */ + IndexNode * node; /* node to create */ + + static Char name[] = "createIndexNode"; + + node = NULL; + + /* + * Check for invalid node level + */ + if ( level < LEAF ) { + errorMessage( "invalid level specified", REPLACE ); + errorMessage( name, PREPEND ); + node = NULL; + } /* end of if ( level < LEAF ) */ + /* + * Create new node with specified level + */ + else { + /* + * Allocate memory for new node + */ + node = (IndexNode *)malloc( sizeof( IndexNode ) ); + if ( node == NULL ) { + errorMessage( "allocation failure", REPLACE ); + errorMessage( name, PREPEND ); + } /* end of if ( node == NULL ) */ + else { + node->level = level; + } /* end of else */ + } /* end of else */ + + /* + * Set entries of new node to empty list + */ + node->entries = NULL; + + return ( node ); +} /* end of createIndexNode */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataManagement.h URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataManagement.h?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataManagement.h (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataManagement.h Sun Jan 27 23:23:39 2008 @@ -0,0 +1,59 @@ + +/* + * DIS Data Management + * + * This header file contains general type definitions and #define values + * All routines in the Data Management baseline source code should + * include this file. + * + * Revision History: + * + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#ifndef DIS_DATA_MANAGEMENT_H +#define DIS_DATA_MANAGEMENT_H + +/* + * Typedef primitive numeric types for greater portability + */ +typedef long int Int; +typedef float Float; +typedef char Char; +typedef char Boolean; + +/* + * Wild-Card parameters + * - values defined by IEEE 754 Specification as required by DIS Benchmark + * Suite Specification + */ +#define MINIMUM_VALUE_OF_FLOAT -3.40282347e38 +#define MAXIMUM_VALUE_OF_FLOAT 3.40282347e38 +#define MINIMUM_VALUE_OF_INT -2147483647 +#define MAXIMUM_VALUE_OF_INT 2147483647 + +/* + * Set boolean values + */ +#define TRUE 1 +#define FALSE 0 + +/* + * Index (R-Tree) Parameters + * - minimum fan size allowable for the R-Tree index. The value must + * be greater than one, but no upper limit is made for the fan. + */ +#define MINIMUM_FAN_SIZE 2 + +/* + * LEAF level definition + * - level of a leaf node. All levels are greater than or equal to the + * leaf level. + */ +#define LEAF 0 + +#endif /* DIS_DATA_MANAGEMENT_H */ Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataObject.h URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataObject.h?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataObject.h (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dataObject.h Sun Jan 27 23:23:39 2008 @@ -0,0 +1,131 @@ + +/* + * DIS Data Management Data Object + * + * This structure represents the base type of data object stored by the + * R-Tree index for the DIS Benchmark Suite:Data Management. The + * structure is made up of two members. The first is a enumerated type + * defining the size of the data object, and the second is the array of + * attributes for this data object. Each attribute can be either a value + * of Float for key attributes or Char * for non-key attributes. A utility + * structure is define, DataAttribute, which includes the attribute code + * for the DataObjectAttribute, which is used by the query and delete + * commands. It also provides link-list capability to the + * DataObjectAttribute structure. + * + * Revision History: + * + * Date Name Revision + * ------- --------------- ------------------------------ + * 24May99 Matthew Rivas Created + * + * Copyright 1999, Atlantic Aerospace Electronics Corp. + */ + +#ifndef DIS_DATA_OBJECT_H +#define DIS_DATA_OBJECT_H + +#include "dataManagement.h" /* for data type primitives */ + +/* + * Data Object Type enumerator + * - values defined by DIS Benchmark Suite Specification + * - used to determine number of non-key attributes assigned to data object + */ + +typedef enum +{ + SMALL = 1, + MEDIUM = 2, + LARGE = 3 +} DataObjectType; + +/* + * Data Object Attribute structure + * - value of attribute is a union + * - value can be key/Float or non-key/Char * + * - used by DataObject structure + */ + +typedef struct +{ + union + { + Float key; + Char * nonKey; + } value; +} DataObjectAttribute; + +/* + * Data Attribute structure + * - a subclass of DataObjectAttribute + * - adds command code and link-list capability to DataObjectAttribute + * - used by query and delete for key and non-key searches + * - code must lie between 0 and MAX_ATTRIBUTE_CODE + * - code value between 0 and NUM_OF_KEY_ATTRIBUTES is a float + * - all other code values are character strings + */ + +struct DataAttribute +{ + Int code; /* code of attribute */ + DataObjectAttribute attribute; /* attribute for code */ + + struct DataAttribute *next; /* next attribute in list */ +}; + +typedef struct DataAttribute DataAttribute; + +/* + * Data Object structure + * - basic storage unit of database which is referenced by R-Tree index + * - contains key and non-key attributes + * - number of attributes is determined by DataObjectType enumerator. + */ + +struct DataObject +{ + DataObjectType type; /* type of data object */ + DataObjectAttribute * attributes; /* attributes for object */ +}; + +typedef struct DataObject DataObject; + +/* + * Attribute parameters + * - values defined by DIS Benchmark Suite Specification + */ +#define MAX_SIZE_OF_NON_KEY_ATTRIBUTE 1024 +#define NUM_OF_SMALL_ATTRIBUTES 18 +#define NUM_OF_MEDIUM_ATTRIBUTES 25 +#define NUM_OF_LARGE_ATTRIBUTES 51 +#define NUM_OF_KEY_ATTRIBUTES 8 +#define MIN_ATTRIBUTE_CODE 0 +#define MAX_ATTRIBUTE_CODE 50 + +/* + * Key attribute parameters + * - value represents sequence of values placed in index key + * - prevents hard-coded values placed in code + */ +enum { + LOWER_POINT_T = 0, + LOWER_POINT_X = 1, + LOWER_POINT_Y = 2, + LOWER_POINT_Z = 3, + UPPER_POINT_T = 4, + UPPER_POINT_X = 5, + UPPER_POINT_Y = 6, + UPPER_POINT_Z = 7 +}; + +/* + * Prototypes for routines which create, delete, and display DataObject + * structures. + */ + +extern DataObject * createDataObject( DataObjectType dataObjectType ); +extern void deleteDataObject( DataObject * dataObject ); +extern void outputDataObject( DataObject * dataObject, Int indent ); + +#endif /* DIS_DATA_OBJECT_H */ From sabre at nondot.org Sun Jan 27 23:23:40 2008 From: sabre at nondot.org (Chris Lattner) Date: Mon, 28 Jan 2008 05:23:40 -0000 Subject: [llvm-commits] [test-suite] r46435 [2/4] - /test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/ Message-ID: <200801280523.m0S5Nkx9004558@zion.cs.uiuc.edu> Added: test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.ref.in URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.ref.in?rev=46435&view=auto ============================================================================== --- test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.ref.in (added) +++ test-suite/trunk/MultiSource/Benchmarks/VersaBench/dbms/dbms.ref.in Sun Jan 27 23:23:39 2008 @@ -0,0 +1,76742 @@ +0 2 +1 3 -3.36 869.78 -1643.67 -847.78 -1.42 875.75 -1642.67 -826.50 kxfl ntTH l86r 7jKo b5BK kJYw Jf74 aCY1 VBZm zzDBrYR4Z hjxD45N r5oO ttKx XQiJvSrn Amjl2x7 4vLD gp4tyUS7 YclPh jhOcgF7 gHWX ZA7m lDAX YClX Fvwdk2gz CTyzJ PNJY51P NKH8B KyJOdh F7GTzSNe dWqRf uwiEbr TXOr 8tm77W zhon JQQR9AJ wFXC 0Fgkf dykkdAM v20XGqKAo 5NRxfV5o BlwULSg2 iNyL9 Gs0JvDW4 +1 1 546.31 -886.60 -1086.96 1730.18 563.31 -879.94 -1085.96 1731.18 FfQK szlWK aGsmSh 9UNs NZk4 nsjl efnoz 0HExH HuSS f4iu +1 1 -310.60 2072.15 -598.66 787.31 -302.97 2081.35 -592.53 788.31 pqwIC GxOa KsJ5Bc9Q KIDWv4 WMWQ T6qJtG 7Fknd9L Sj6rS8 goAJhATqm 81ts9 +1 2 1492.42 252.86 120.56 954.04 1506.66 259.56 121.56 961.47 u9Nayhi M6OlnADs hDGXV17 7BXv 5DXN 38wdIvhw vN0AXy YwgPwUaYc FDZK 1BFS 68UkDlCWM w85nfuqQ rQHBnN1N1 DkB9 wVZm TVwd NqZl +1 1 -1487.94 1121.48 -891.13 -1794.37 -1486.94 1122.48 -874.82 -1793.37 UNc2 Xbbu ytge 68cCP5 tUad FCbsUb9sT TgMv W9MF tafT 3GxMD +1 2 966.14 433.27 872.53 919.42 967.14 435.21 873.53 932.11 jOW582 DZ8adg nkry8gt8 ISC2EOwqZ 4YY5P Kx8D wM1zi MrzA5d4M uIJtzefS F4QvDs GaAY 6FSO22N2T o9MFp1S wzsK fNkl D4cV 3tjZp +1 3 -16.88 980.46 777.61 -499.66 -15.88 993.65 788.98 -496.63 jooV9 oaJ3TaFZZ t2tC8v h2A9GnrR1 1gPh8SOS whJwvLWzE fJnT DOin d8iPzn dYZtGB4 bmTUL CZ2u4Bov0 mbft BjnO mPd87u9r MqMO5N YSB2 3igt F12h GOS83E WXbX SVvYi Mi9f D9zy Qz2nMy6 tGTfCMvW Ao6S Zwjp I9QB Rai0gkB 0JaDzy CfpBg k3n6 LqHx Q0E1A Bwnu AyrOi 3wcy4 WjSE Jh3hOFa 1GlZwn3z feaZkFC HTH7Gir +1 3 1185.98 -71.21 -317.98 -197.49 1189.64 -59.75 -315.97 -193.59 yrxdAZzE RzUJ O4mG5X wShRMrj Rc2h 3Bzg lOdDLR cuTWx0Td irKk 0IgQZHZw jewb CNFt 891QBWjO FnbRES F9wAjki eqIZ35 UflT N9ni jgVU ho7s 5IvCQ3I G73EK0C CiR7 51jlwfFYt Xr3r t00Diw gawe McAF 84jM puXm 63mfH m9CB Am0U lBwUaMm WtBY trUcYy2JG n5AIZs 8fdh AaL3 XAzuHjf jgDqbcp8 NMZi NjUB +1 1 324.51 917.72 234.37 -1140.31 329.79 918.72 235.37 -1135.24 TZMheC 7YlT PuWkAU zsTQ N5G7 i1ey yMAX tX9G FWJRXdK DlZOQijL +1 3 2439.93 1247.60 -192.32 -563.29 2440.93 1261.42 -169.95 -561.64 LOO40zxiM mq1OAqwq tLZT 9lrEflon 2VNO uZM9 IFX3QPHO snSwDdYn dLT3 WtTAei 7hVh 0w7A prv7 9XFOl Xtqg F4iYZPc8 w3uZMnb zWiy RQkjUCA0 NnubuH 4os1 MM8J 8su2CJdm gKrxrvsw S4FOs maaFIBN cN1U CQrpHnteh GoMZT4V md2u VtxjejSM qKDYN5o zQjbr8g AscXgLAp X6kcWz mhjo PPLTI b4Dl17Bb Pzxr ARGDsIJHj Dh3Zq JGvv4X WCJM +1 3 332.65 1162.18 -165.16 -224.71 335.34 1167.70 -138.21 -213.17 HVgsm DxdhifCE LYAe pGoGg jBNX 1CHUVwn F2q5PuLm 0VFK HKOJ CPxUvyVR R5UpFFc0W Zza9X9spS 60KautdV VR2Q liD1X b1xISaQ MRMd RQdO TcUW PqWJjo p02s hAHQ AUDAZYUk czka VgLi jASrWot hjlu xpVCw t9wRZn tZTS5E WEko PvNS YvBJ gqKe xvqS jeMiZ wvvo 4wYw haPX pYPTxGYLk 2M4o zTV0R3DJe 5fqe +1 1 -1448.73 -508.98 -1060.02 -1522.53 -1447.73 -501.14 -1050.33 -1521.53 2yqx CiRk 7EyY BeJS tCqtjgaI VHDB mo0lTf Bzp6 R1JU kAGEOTaYe +1 2 2991.69 2079.86 525.05 -1407.28 2993.69 2080.86 535.02 -1395.03 XZ62hn o6Xx LCwA uZn92l IDOb4UYL6 tDVSj86 2xaJ IdNf 2zrv dAhD T7UIiQ bWen t7q5A 7b9M LaXwEV HARVksS JQRl +1 1 1294.82 -557.53 373.19 1456.32 1296.87 -550.56 374.19 1457.32 r0DR THadCRB obNhA3YZO IK6vD2Umd TP1CImN ecxNH3XQy DJL83 wfQljGUpK CHhg MC0e6YKrs +1 1 675.42 -1540.70 1063.67 1380.80 680.39 -1532.63 1071.73 1395.70 WKkb mozdXvw wx4ehf ABOZ aff0 SNEi FepH ciexhMWVt YL64cp zxpl6aPNc +1 2 -810.34 407.33 -455.66 2154.09 -809.34 424.95 -454.45 2166.74 F8Xv MPlZms BUWH Psv6 y6P0 wbjXRA TWSQ RoXaefv DPAU8zb s4AMhj tY71WnL6 hiIHo15Lx ALkKkwFg 8lzg j5PV yc33EmK 01gJquXI +1 1 1292.00 601.76 596.17 1035.82 1303.46 626.74 597.17 1042.07 nV42Pa0lU TOmF IW4ob9s KFKB QPao1T7 ieLT ydrK16oXq aqMYxtH HI4B SIqi +1 3 -1554.37 850.15 74.55 -2373.77 -1547.23 851.15 81.29 -2363.80 HTo4 I7GYE jLzc msGK9fAr MyCojE GjmAF WZ0Wpqu NOIP Qax5dx orZG GNoHSXea LPyJ qxl1C4xo gpS5Pg6H ziWQww3Qg Rsfmr pKxd uQat fFrUd bVPw eP2qAsahi x0OS rqXv SmFEa sAFR I7xgUvwlX qTBk aYrT Wp21 eZ0h avHn 98Rv Z6gB g22Q XZVvT7UD uLQWt7pW Ilb5 NUT5u F9A6X2S KRnK1K VR95 L36Xh 4p4b +1 2 1055.57 -204.48 -748.45 935.38 1082.31 -203.48 -728.27 949.43 giF3mu uG8aP1k OWRAA gclV cV2cKRFV 1PqkvK3U hCnulxyt0 Awjb Y2c7 7oQU dq8v LqQiS87 SAqk nPUs DrHO5o Su0juKyC6 ggqAuntY +1 3 -751.14 105.74 -844.51 2560.48 -734.06 123.75 -840.24 2561.48 YFUr63 vp6k xq9200 HKbvCxgX QJtV CEWoC KskkoAOHE EWu4 2A0iTEznq 6Dw7 swkc eDpqno rvryrgde EjXI 92Sv1e y0RCW NHCh OkC8CFm0L Gh4v fz9eSRHmn ptEg 8uW9 07omr rDFab MJ6I KhGd O3vl n3j0iAva5 Fx5rD90dW qylLe lt0f phYc2gx YMdTDG5m gJ8h IxmL liKW zxOZ FiLu hoA7 OcV4 MIIq f5qS crsBa +1 2 487.06 -918.14 -442.36 903.66 494.39 -907.93 -414.35 924.72 5Ogt7KTQ TebO qrX9 n8PL lhgqNFtJ ThYR XZJD U7pA XpNYV hF2Q CxuDvU ZtlM8 UmJ2TPvj yAQb xZcXZeV hNGC ZBkh +1 1 -323.76 -1003.69 -569.26 1456.59 -322.76 -1002.69 -568.26 1464.35 XK8T pS7Ek Jz58dHI J4ncZm AopG968KW SvN1 j0V5SiV 74Pr5AB ekuc PyAzk2 +1 2 -306.60 -951.16 -1019.47 1887.33 -305.60 -950.16 -1018.47 1893.15 sRhd mI6tR FxDPA6 YMu1 pSltkD siPJ YkVgaftKI XJrD fK4Q LODIyrQe vcvsJ GSHZ B95bMjw vDYl Xr78Qj0ll 7SGq 7lyx +1 1 44.35 -1321.58 1470.80 -394.66 77.14 -1320.58 1471.80 -393.66 z4YPr9 3yLe fAzd KRMakXea 4p17 u8nRYO duElJCjNJ JTmrmvLp 2Ttq eYUy +1 3 -135.56 945.03 749.97 -976.88 -133.29 946.03 750.97 -952.81 1Vy8 E1TC KSjwqkGzw uh6wJm WBFn 83Ek dHai oNs9Qb7 nCBX iAhz a8P8Oxx23 fyFfjuy73 idGBu rH6whMbN3 oV7J u3esEK yHXE rM03 yPcy bH0I xej6 S4AiT Blyu HUZkVV ugzW jgeD nmAk yXqpWFm8 3Ohw5CpoK twcx oxUBID lxHE 7vfR c4PA 5j7W sTU2 gNTse0 n2MNobpZv 4rOK lrvm 4rusha Qo3z wVxjDkrGV +1 1 -407.85 -18.68 458.88 -62.89 -406.85 -17.68 466.93 -52.95 q5Dp vKW0JN2 0l8z6EdVM ScW6nd2z3 sx45okl sZ1m RpYb YkP6 CSQZ PMKC3qf9 +1 3 -215.10 -983.32 795.89 -917.59 -209.22 -969.96 796.89 -916.59 jGkY02 CISH buAp JQG9 WUUAPTo CQj6mo HdZq QkL6 JREm0 J83s LkGe Uiax WfHV zw7w HS5Ah6fd4 qpmvxbUS gBdWU 6LDZz ej2o gIPDcR 2UAN21 F3nNAr kNuk bzK6LsknC OfjH eMJ2 cWX8 f1WP utoFCW 8iva8 S5cdf sp4W3AuYY xiEaUW kn3r zb6j jnb9nNS51 OnhA59usj XztZcdY05 kdMjP aNdWSLKUi oEee fFcw 60Ik +1 3 69.91 89.06 1858.89 -103.00 80.76 90.06 1859.89 -102.00 aWDp uQu4 SVkEj Q80F iVOJhOIDd m1NCAYsNd HZDF zPF5D NXKSusRI CpPB lysD DXnx fIg3 ZRmn cAZx DZ47 dffU TCnrDq2 JD4r yHMg1j 427q7m s1fcVi2UT ADdu szdI7qEcD dgCE 6w3S JqzO MBt8 Mpmsx HF9X9e IPLmsUfbZ kwSVU 4Di0 4AEefD bm7w zuUOp d2as aEg4eq W1OMxppYn uD5T0w9K gyaaAkS 8rb8oj 7h1K6m71 +1 1 -150.92 -1483.77 65.02 742.74 -135.89 -1482.10 77.36 743.74 0xkHvY VGXCK E61j hgy43s8g BY13n g4mS7bW blTZfX ZglxsmNij 9Eto oGMU +1 2 4.81 1689.99 -1606.58 -36.78 11.90 1690.99 -1605.58 -15.84 DPHYYAf aVvc 8unc YeyJ wK7AQw iGhTN0kr zpFayp7r jF9D OU2I Pu0nPz 3CRgc IJOM 38U940 yrCh bxBK 3wuNwg6X 1kugRk8 +1 2 766.68 1493.02 1306.76 1041.58 769.97 1514.35 1307.76 1047.47 WFmE hBcv jzyQ g79l cSAj SOLHZX g2O8hiU XepN TBdY 4E9d XlfxZ 5cWI TaN0 esSa IPgh lNO2 ovaR +1 1 1319.04 2068.14 -854.52 -1195.53 1326.35 2078.56 -853.52 -1194.53 KVmc pRIJp rD9Fx 87VkAizX P5Ba pi0aMv0a eW6g mrHgVO HLJBR y41N +1 3 633.69 128.78 1142.37 -238.51 634.69 136.87 1146.21 -225.58 0dbC 5XA3klB 1FhTSfD QaPI qGSbz1br D3bc XiA79a9T y61rEdu D8hT uuU4lgs8U sw6M CpZB Rfps sa8o UITMy9w8 d8CZhzfhQ mBWKPz OdIz 2PRKTn punL3Ku E8zb LZKE L8LO 2Xb2P abp3Xu xlfT hLCsnBAZ X5jeJSU nUKk 3tbcw3GrV e341o6fDK H7uZ TTIJ Um0M v0m6H8x TOVD nD1a96gVp FWPA bAV03c2 eGBl 6vow QRCLYthac UoDE +1 3 2956.60 836.34 1301.45 456.42 2973.44 837.34 1311.23 469.51 F6c08m7 xMweEQaM8 ECt4 2OMdZ Npxu8 3bDp o33C iY7VT1wY t72U ZdWb Xh2dBSDvw DIAmv 0XHecKkT PH353p8z8 AuM2z gZlYE xu16 Mta1 8jpE mFmS t1vA NL7M bjHPR cktf4D6dM 9Qci M48bR5TP aayMSn TBoJ KGHZgci1n SQHR 6vnwFmmBF RaTl p7QVp ewKG DIsf t1qkz4 5mvZfR4i4 WPed QwQx FlaBEF kxQeuTI6K cezj UHMO +1 1 -480.79 -1964.05 992.41 503.77 -479.79 -1963.05 999.82 505.35 jp6I xKRN fyXU PN6sn W8z4rSEn LzcuJ wZmJ XIM2 njCx VOZH +1 3 1418.91 -1057.09 -1701.35 -16.26 1422.00 -1055.61 -1700.35 -15.26 T3zKcu 7mCIilK4d UaVCF SMOyQ qkNfWI uSUkZ A6dl 0BHhpm7 PFem1 vla3 wNIF bYc1e KMpZrC NfSzYc O69K NahJ qHJw Dxb7Wgl 5Z9Y wLoaxp HG4ZguX ztcg ZPgEaSEd MJETzkFLf TUMW8nZS mDd9kFU AVfJa Z5Lj y8Wg JyQL wscC qnORI0DJ VAKpoH0A by3z vfpFc92 oUc9 Sk63rL7 YuRsLZ HRfQ pDaie6hwN ITvpRG6I HC4DZz DInWg3 +1 3 575.54 -1529.79 -123.88 -416.76 580.77 -1517.49 -119.49 -411.86 yPYw7b9E G1IO IkC8 MsZkTHIzZ r2GIo8GYW dBlAvIQ 3KUv eQVq0hqx B26wnwmYX vb7S D8XO4hB QApB w4nz 3eBidBz vdGm HiYZ9jr GmPhx EKJ0Byid YHFM xbQe4Ru 4I7w oZ2rb HcBsflR xr8ID3 yxawE c4m2 SkQfr fBIB J2Sfo08 der4 xBzHJIea mXjy bpdt vnNvP4 7ZYO pcXj s5PQa0h qoy0mMq Ha7l wDbuw 74Bk eAKlr 2J8tCG +1 1 -1040.04 604.83 -128.45 -949.68 -1039.04 613.76 -108.97 -948.68 HZjN NKW8 JSLa 2lqmWt OvPu CUUA0 42CABN Hb7Bc1xxt b1hcy oXI3 +1 3 135.26 168.54 -594.29 748.63 137.70 176.51 -593.29 772.05 VeZ1TJ wm2UJKELc FUbW aYin qCCrrt pssI8 nOkcw 2PWSgPQE wzbt N4malfOD WFEiLJ QE4V5cW dAEE TFHT srX1PhP R6Bs RUAnM pXNHE mduX 3zt9PX6 l1v5jBtdL v6UY 96KT fESMhU1 rIiu TT3k ELiX ZLWNmBt JHVOw5 THKowh 1Gyv fWcj qDYTR z3S0 MNk2NiOmP 0zy94c 0oxP guZMjkLKl NE93 Kk6PTc bUMc0qGz ff8V 0jDCI +1 2 777.81 -329.81 -252.87 1860.06 788.01 -318.93 -237.73 1861.06 1E03 LeB7i5d kUWuJs WKY14o 71ih yaV7T npU5 i6WJm oPgB q50EVT PV1b eYKtMC pYfsRB WigU 27VkWePG oeeIY fIXXps +1 3 707.58 -678.24 -1691.49 1118.01 719.80 -674.44 -1688.41 1120.67 lYkc UsErHId MZksDvDEJ zbwM yFoNlKq qlvX MJopdquD MlX8A91Dt IuEzhJGJ keoX arWm4RVn x77cJDU u7wrZzrLi QC93 xLe9 7IPZ 7uQV NbavnyXy r9f7 QcbM Hchr SBDyHu6YI k1I9 PhgpwSh w5TP0uP9n xSbN 4oq4n oIyfIhH u4BxG CiCJ7W8ps wZP6 1yIxuj yOT9RrO T8if9l ac2EJuO AxXub8 qiHyi mBYV TlO4Q 4cIz oOkmKZD qXG4 Kkpi +1 3 -77.54 -249.42 583.50 -185.52 -59.71 -248.42 599.86 -184.52 8Afe OeUM rNaW lhmb bBjbO N1mFESd 8YGi c68X0 u008 6np7 fITr avP8 gNx2e0s 3Edy zA2tF88L PlDi AYdP RoW2 GFomctXT 7Arh5 yYRb BuQQs 8i0pWNN KyBk Zmcl0csN SGFZaXm RZCm oWRb 5Xciz kGg1 WqYY aqAokp739 sQ4av6kK IkRO EC09 3h5FF C2r9J MJdw EBGCcegf aQQ2 l7P7 ajlabjhRt oKRS +1 2 -869.77 379.98 428.59 2198.44 -866.30 400.83 430.72 2200.43 Tb2KItJIH qLrz Gxyo QspnNiq IEF2 o1tC gidK ilqreSiVb YTfr mS8m uBel f5Uf zKjN r290 7b8lx Oqt1 pquR +1 1 587.08 682.08 -17.57 -1344.64 588.08 690.83 -16.57 -1343.64 kCZM OJozj folwGE ztksJ QYBv 6p1U2kx 0vzs lZ5wN PrLP PEoQ +1 1 -891.83 515.02 794.13 553.42 -890.83 516.02 795.13 557.31 c7F8cdi 0LAM Pk7Li2XES cQxeOGowp t7zgD ASXAUPC Oapt RcbI pkAU wrN3 +1 1 -935.91 1518.16 -449.28 250.29 -934.91 1519.16 -446.02 258.40 LGw7 7x0lo eiGh IG9UTutD sjaWAtcP 90MD 4aBZRwtRf LObO rOswTI o1eM +1 3 706.87 1132.43 638.75 988.41 716.67 1141.51 645.31 989.41 RDs2O fSejEIg gYhqYgZ 8qBGlVubK 9Imm6Kx pPkf Uwl5zKhzj WbJP8N4d 1uxsgNGNq 4FzE mJJs vOUkdtjbY eKaP5ztgy rpdDY7j PAqK JvzdO6u47 DMK2 h2su8 Vdau GpcX RYak I1J4 2AXD N1SyC PfV3IMSt BDWI jwtBH xUpm mvcx qlfw4 SzAn0oKuC 6NLSEC0rr OqUu tS3p ZOe8 4d24 z0sT8 fXEK GkfO s111 tNTY AZbh KPFHcTZBI +1 2 -52.82 1337.00 853.58 1640.18 -38.67 1338.00 859.25 1645.87 XG1KoPzi vIXB 6MFV zwgjx6 LLqT scL5zjH qjC8Nap 2jZP DfchF4M UPKa8c IWaq jIUe7EYFS 7oNE U79k E7iK 4Yf6431D b6RC +1 3 -1155.88 1798.65 -217.24 196.01 -1154.23 1800.27 -216.24 197.01 8cpgqv 1Qlq iDMV hF9n5L T0xU C43p atUdvZqMb WluZXVBLk oLhFt5sOz hqHbEc6 qhFN Tkzy UfGR T3Jv93 UnZr yeicNA93 OxJK JK5Oz Ot6IXZ OF4c aIMH E5Pe j9nmS5DW Xmxh sXn2 cYJan 1tQP asnd0BiY6 2y59MG IjW2 pIzT sEG0vyuy f2owiZjga VDkF qXt4y2Cy9 2cIr1 PCNz Lb7q8 5Jbz PhIC 7mSUpOr bF32Kit0 9aBX +1 2 -644.54 -1452.10 -1136.69 -612.58 -635.37 -1451.10 -1113.06 -611.58 lWx6 3h9h N0ptAuMvs PNzrwRJw rJTK 9tEu QhfytCE kPyv 6GyEVQ7 cLRb dZAjR1ysB lv5Rful1s XO5NHT KfO0 E3Ij JB16 IULt +1 1 -330.56 -425.60 596.70 952.69 -329.56 -424.60 601.41 957.36 ClxektTCE kpvII GU0JBg6 2RoPd QabNaZhwH w1lfBpbO moMSg FRDK qw6S nKYSypxV +1 3 -1828.28 -865.00 845.77 611.44 -1812.43 -852.75 854.24 612.44 V2P4QD KFrz 3dh9M ocJ1pg73I ldzYa 3ggp vIKN lucN75 GJ6X wwGvVhQk i78y6 5zA45IvyA FyQd s4gjA hWXH yqYRgQG 4Vwn RqOBg FvPMv WwhU GX5Tv dUYmnvK5 tdmo 1uF4qkoiM glAiRt K5VS TMA9xB Tden lBzO Ys64d9SSW 0ZtG N0yuKhb8m EI1s l5yX kl3P KXT3u Jn6U5QI4f JAG7 o7KskCcfO tI4e Gba5 jTyY vqjO +1 2 897.30 -1234.31 -2366.44 148.20 903.66 -1232.95 -2365.24 149.20 9IFZx2gpx VZj9C 7SBK iRLQ aLvm t66E oiea 6lMO kUZc nWOI zXOoLw o7a7 hujH K1Dt NtwO vTh2nub0 24tG +1 2 -1346.34 -330.37 -753.89 -123.11 -1332.74 -322.49 -752.89 -122.11 0eVj Hi0EtuO j1Dj1 qyqG r83N XDiP jJX8 XEwO q3RfnUn1 bHcNk5WsP IHxMf4CP JjxO 9ICaZQ 3WOmls9pE t6QywbSUd 5O4SU 5I4Ryw4SC +1 3 -2162.26 -1376.03 -80.07 99.81 -2147.57 -1365.61 -79.07 100.81 gjgc FtDi nwo997h eXTQIn 4hVK CK5y 1Utu WgaaYM WusE r9hfRr sRY2 wmmh ykXJ jWuc W8Dz 0ggPx y1aS6f9 NcjqZc fstS5qleJ 4JBFN 9ebru13m JdYXBBNn A4t1dxPdF P2n6 AsI8 7KtD 0GJW 5PCPvvsZe qZkuXIk OawW 2OpwpKX 1BYm y7X1wBqq8 v8204zQGD gpPx7dcAo L26Y 8ZxS9Y 6RVzc H2DS 0Qwr 4Qp3ay1 PFWax2L 7c1It8Oo +1 3 670.58 391.76 3223.38 287.97 671.58 399.69 3224.38 288.97 PeyJ zYsXJC OMQmO4Pl 1vwxrYGE Ek1vwb 2Epwf2v 1Q0qnSLQJ uoAf1Qq Nw5R gQyBHEs 94Ui TmM3UJgkf seRg kU5ayebAy e9JQ72b QURn 4hA0v T111 t7xkNW 1J4Bft phg6w0T Ib1f5s kGsV LXJc KNrZasE qmlPjQ1fG PKFg vzM1hoF6D qV4u8 d19U NXUzwAen 6e4x Dqdt kCMUZ Jpyr IR1rI9 1Zf5 E4oU GVWO uHgCGyCCg Acpo 5E9U ewbE +1 2 604.19 1095.18 1180.47 -702.45 605.19 1111.31 1204.29 -681.82 S6iC fy92JKm4 Em7C sxiWLOD7a B9Cbp A7Cz wtiA pCrN PMXi ED690 Hi0E qpNhPibq7 nFfwlXXI5 filVnv 5mNr FRAUAZm1 NIa9 +1 2 449.28 75.70 1547.67 -165.16 450.28 83.73 1561.53 -161.97 UqRP u4yJ I4Ak GagC fCQEUpRz vqYr jnqyYq vZd9 DyH5N OJyv HG5Y 6hev oC3P iKlGGC SToM qdEjA1 q3QCRlMg3 +2 4 357.481201 1 313.722168 2 707.753235 3 377.345856 7 387.345856 10 F 11 op 14 rj 18 cu 21 TpX 22 1E 25 f 27 h 28 Cr 29 J 32 mq 36 T0i 38 9Q 39 Sc 41 Bv +1 2 -3.29 251.63 -2312.74 -1040.68 0.30 252.63 -2302.34 -1035.60 fAZv MJI5DjX SBdR d0Bx61Cr KqdyNQS3 5SM1 fzBl fVeOkj TS2R hKHvh VumF 9fOAJ W940CNf 1NIid5xi wqpLDMrjz lrDL sFJVxI +1 2 -1012.28 -541.50 931.28 -76.32 -1011.28 -530.89 932.28 -75.32 pT2q 1zlW4u mEQY cbRH5kjak a1dTyF UwinR5R T6bq wt5Et 7AfIZcTk WEZR67P1A Xjd0 Ssfp qPj3 v7dtSiR hYX7f FxNwNXNd KYgU +1 2 985.03 -1083.26 -286.93 -220.05 996.06 -1068.54 -273.14 -219.05 SALW HkNkeSg9 JbED GiXup5gH1 iBfp UrIi 7ris7SL iuNtzqa DvnHgug6 2LI6 0ThZ LNwk yVLZswbz 4uYb T7TF WHV9 KETb +1 3 -341.61 -681.31 -2364.24 -2380.54 -326.28 -675.35 -2353.88 -2365.54 imsP 95SA22s 6wHr cF60 zfXa i1ytrFGY 28XNUN krzDacK NpCH Qo55lq 8ECVN 7xGE K2eg u093 nceFsPX UesI XcMAFMfiP mrm97 yZZLbYv EcDcqnD DvIB 2X0CDd ghoit hnOrgY 0tRcn 1Awe jI45iFCv VRlxkifvK AGBQ p9dE f7dm p3ujUB wR0f JOyw fqtyBw5 bzwI HgOL2ee47 qYJzd m6mY So01X KJXu6bl awVdWsre KOa3 +1 2 944.84 2690.81 44.88 388.53 945.84 2697.20 57.26 396.85 xAaaxNLic o3vQD8 qZhr GSiY6KYa7 oDcVHy60 OY5QR n8nmER2 JcDz WVhBXG 972s eavHf u9H0G cpWY1 cxea uoutMG 7QUPG9 mGE77U9 +1 3 468.55 -499.43 375.24 -584.87 469.55 -498.43 378.01 -583.87 thxd 53L4qh nMXOLR odTg X8s4 emTqLTqf 6SMb ZbBTHhzI KULKqY mjHa Evij fKbDGuD pTqPtCU GsIs 0PyE1aUeY SVFJ 8rcdHdH VKya1hGfH nPmt PnTJlBjJ AFogf TP1MXUQA Gv4tsYu8 o6TPntK njh3 0HblZ CrZF8J4N oJ0hB uqr0TmQ bCeWeUh rIG2 9u6z qouu CuDHgN jHcj WP6vrGq MGoxfoj0 1zkw t9OA 2bDnI gARptlFHG i9uw06 tFcTM8 +1 1 -392.55 1343.24 -1181.33 1776.07 -391.02 1347.40 -1170.42 1777.07 WnV1 A9px GVY2 uRHK LfrYSc12 uTzu 30ng xkBf Xt0Dw 0yNzcTde +1 3 543.40 364.44 119.76 -1083.41 552.82 365.44 135.88 -1071.86 xRxA 36CiXV TrD2kcHxl blQf2kPcA mWWIF laxD 1hy3inp oMoY9rX97 97u3 QFwn NQjUj tNwJTw 34XJ7AC9n t20I G1meFcq eID3 fTy9 S21DlW E2cs7ko 9cIX HPGGOlikR kL0rnaquq y0kHA qrLS YB0BXFXCs iKLU W0Wn 5cBr ETd3zAUi Np7Q 5aFZcdqOe 94j6 tQPJ 3FfU Jz6Q znOb v5PdAEp Iswyl6 gpg2 rhG1 M7iP ruzT UGi4oUMGT +1 1 1150.15 -357.63 781.65 -835.30 1151.15 -356.63 782.65 -817.11 bKWo TxyfnYIIg nKAPHDfsc 9IBVG1Z vvER MNBg 0BEJ v8b3 7hwXu2 evD9voz +1 1 1331.06 -585.87 -326.48 1325.73 1332.06 -584.87 -320.28 1344.76 yRCQ7Omv 83s0 41r4aOMnA MD7Ze9 3mRx UESKs 8TpxUT52 FDek HmZeDX0 Cvy8vqK +1 2 434.06 -864.28 -24.66 1224.94 440.23 -839.94 -22.10 1233.00 C7Bfftw 0fC7 YmRn lcAu dA4aVuxq X5Fr 99FvnqL F4Xd Pc9g ltrV0paVV YLYW z4dE 8v7y2yG7y pKlv tEqi WlEa7 NCqZMOu +1 2 -700.54 -801.62 449.14 472.65 -693.51 -770.28 452.10 483.93 2Gn9 U28qFS XfgxZJ z1Xg XG3ZDX GKBVP1S GTtG 2w1ZU8s iIU2 dXMm IZvxS9 QQ5MjY8 2TG3jOPV7 QBszUeJe Hfkh P5kZ XvT7WM +1 1 -508.62 2342.40 951.11 -660.06 -505.68 2343.40 952.11 -654.19 Mtab 5rWT J2ve kOvhb mMR8m odfN RDGxlsM 4alB Paq9eokzu c3xjcT +1 3 -15.16 1576.83 -1331.99 49.87 -11.45 1581.32 -1286.37 50.87 lgJ8 4VNd CQ44o GjzQbntKk uOVJ r1rq NbEKSXp8 k3WzA06CI 8YCy u020 0EqR amc6 o6vK UAap3kljb Hoo1ng rxo4 cFYp RFlW IMdy OztcJ ffZBWrhn CluI y4LdJKe UILV lmy8 1nsDTOx AGXhiT2tQ R3JnN4sb fbQqj whq1 w9zM g8nh i8Oz Cfr8 42ud 0zE8v XtFoX aCCw qLgv NlZw NNMb zvut M9mpT5 +1 3 7.76 -230.96 632.30 -527.78 19.20 -226.25 633.30 -526.78 eU2lCpW ec065yy5D 7cnO aXPh Rf4BPycR 5krJ9I28 jmpE GRN71d2Qr Td3hu H0PV 5H7XzDAB6 1Db812 cj54K2 tK1s kWvc gr8JYEJxj VbQK7Noa2 M3Yyk OWlU T8j1 RmYFmmRi bvtbmJx U1Ihh jify 5pKGqak tjgY2T KKWH Cmvp 8T0e MjRH 88mjhGSH5 XOUN Mop6hlOD GIRZ DGxVv5Uu uIi5 LogY 0xaKNs rf87PQXgS v0M3uA 0Fv4wi7Ti F5skaVGa PAff +1 2 -1356.75 249.52 -806.54 273.90 -1349.50 250.52 -805.54 274.90 i8RE Dl9IS7sV tNQI zThW C6Iml03lO 1PM3F VYOE WDAt u3MDsE LGq2IGRnw hxSWFAJv utLh zoHw 2F1u eZO1 usFd NrdsI +1 1 958.59 295.51 -389.35 217.82 959.59 310.92 -386.50 218.82 ZBrvQKG5H xX0T B7oA rPXMYIw2m uCL7 eh1Z v5Rt HDfO oT8L HhTzeSt +1 1 -63.81 -658.12 -496.44 -755.95 -62.25 -657.12 -472.95 -754.95 bxEc KmAtC3L jOrO dI3qM uVeM nUX3T HOxW h8uJe uhP34UwgO g81pz +1 3 -1035.73 -906.57 -1089.29 295.01 -1034.73 -901.57 -1088.29 308.88 YRLOSt bkSeD9jAt qqOi jueWeL y9pnT zBCt QAd0aNge mM20 16U0t oIAvr 3yIH 7GFY 4IBR UEveKK PPso1NUzi Ldvg m5Pvagba BADY mC3b cLnny zrWoeLt Emct MSCm x6lrZWFd Kn42 L0ja 9Boh 2vbt pzL1 1Zw2 8LyA P4VL 1x1Fi1j lMoc BoAPCoZeI 0Pmy 8kHC5yn Tn0v a4MvNflTU 2LUDV rdKSbR zyZbEs yuIMiB +1 1 -149.76 1065.10 -2457.13 -2348.11 -148.76 1066.10 -2456.13 -2335.46 qBNF5 ozvl a2cK1X QBlM 3Bil 5xyk nO68 0GD8REX jHNd noSr +1 1 -272.71 378.42 -576.12 1297.97 -257.38 379.42 -575.12 1306.78 qhmmQClw bF4I pmj3 oq6W tzFM nT5a hmnTw7N2o TjeF4GvB va0V h9XO +1 3 -2340.60 1661.96 -444.15 -1173.73 -2309.15 1665.71 -417.10 -1172.73 liaz xIm9g3 2RJLGDXQV 2LAG lxZH7oop kMwg loun 5tSP2d0E gXcyaiCO m1wZ Ykf3Hl a38Tm3m NHv70x7JU py38 tQvW YXxX BtAk 0Oyi uSll uVpg ary9h 4MgYxZzgb CrxE9qcl 9LOB zGZc4Lei qBxF 5gs2 i7hIDCOaQ srlE Eh6a S41y5 WQ2S c8tcN kex5Ktdo PyA4PJ yPW7hj KItOitDcl p59CaJdM rCZdm yIa5zBfd VLcu katy sJ9W +1 1 1149.22 -744.25 1172.48 1724.63 1154.55 -737.03 1178.14 1725.63 oaZS kHRO cZGc 9gGw kZl3 bpRnjYB YZPlE 8d2Y pzCKvN UwNGk +1 2 389.21 16.89 -181.12 -1486.45 391.25 17.89 -170.78 -1480.19 6gXjS9P Pxmu 6bxAF0 UFlO5 Bnz2 rLLbVsGB FGvk VkRfaY0Wu vEtr 04MO ZQQno KgMGy9QSe vxgJ QvfD 7EO31cl 25sFpe 5udN +1 3 -428.49 -320.05 -2629.97 179.15 -413.07 -302.09 -2628.97 180.15 4SfVHN9 2jrK a6Ra Zu8m 9in12n w6QA e7wE 3qQIu AB7B h8lc DmtQ uDZ1sW yTVQBuQ 8th3 ogBQUeH ZDKd r03i9 9IOckM2 OOzM 2b0G LOIimb pA94 zbhG 8m7YTOoA Qnrbht5v FqJPFZG1U qdyK fSCz Puna SgqK SelBf3 qzEN wk3Y kbcK hq8QRmzVu vDAt qSFg AOQS w1086 EwkTe tzam lH4AT MbSUBkx +1 2 1049.15 279.17 1377.56 1312.04 1054.43 306.29 1378.56 1315.41 oL8csJVK8 b27NEfUo eWezJJkXc cFR7 dfch CPEnh6l Bqqr Fu299 NT546EcBH Su3z w4WMNU529 smaTpm8 dP7Q 1m52HnUt NVLo 94dPHaJ YJmKtGnk +1 1 1161.73 1715.06 609.24 40.09 1162.73 1726.10 612.10 42.33 DJIW Bb16 wKbV2R8A klbqmpN czEiW QeWO H6WLBk7v Af5Fn Rhh6Cx hlTM +1 2 -146.77 -171.78 1588.43 737.89 -145.77 -154.97 1589.43 749.23 nJUM 6kzB mMuq ELoC 4xpE cZubGdOQh d2gYHX Zu41 c6HRCswtx hUyb zWQBVt5 LGvfQq kQQaFIU eBrD3z ChNv 8tbY ZCbx +1 2 1743.80 588.28 -616.54 211.78 1745.49 595.65 -613.36 220.11 n1ZSR RGOf 2ylT5Js 5u55MHB mkSCFom 1lqJ nyeLSI32m TIJBI9i E57b 6o58 70ADB8P rKpt fYFn VpHs WCKSwIH KhykLFJ1 siVlN7Wc +1 3 -1304.71 -487.99 -1096.74 1155.37 -1298.09 -479.15 -1095.39 1157.29 t7FxcoaF 5m7XJ97 w3W3 Etx3 tj9wsb NwhWD aXPQBS 0XqyGeG qtIt CHQiAYC T7Ph9Yaq godm m7uzuO U5xq EiJAukoz yS3YrRT Hk7dCBN Zm3EYd AmWR lg2l3o SucH dLZQ xT70 5hqq HRWscUsf pgy56Yjf JDoUB5Osi Dr4Ez4 W1pOQCOU6 7ndr qqSU r1Kqi T0kKmIjZ Ixd7 KTM8be6 UDv8 SDQS utX4I39 ILjg 73I7 D2YS6Fj9 MAGp uqgj +2 4 -327.253967 5 -1277.165283 6 -932.069214 7 867.767334 8 Zr 10 frU 12 A 17 Ql 21 E3 23 o 25 Yq 27 9 30 n 31 XX 32 r8l 34 fm 40 J2 42 PU 43 xv 46 EQ +1 1 1215.65 1198.26 -231.10 586.86 1234.08 1199.26 -230.10 607.85 v1ymrYQf sHc4S BpQlJB ks9y dcvml8 Y1vEJ QUPH yzbJ hlLGNyv Bqbm +1 3 265.95 1310.30 1725.59 -392.06 266.95 1331.61 1731.03 -391.06 StF3 qvyw rr78 ztYw YT0V TENo6Ou h3ggp F9Dc JTS2 HKq6eGX IEXX Q2qv M8FH4HK 40Dj 0gh7 UQooH sej4j mBU3 m8pq heYA iMe9 Tqko 7YDXq eA6n MC1a 6Trz ZO1E 0NUW 1cErdWR ZjSW ZIR3dt3 BwvYH QxiSF NVzV UF81ajI4 23rPy9Y kaaUsd tygT0T LGmIDQ8Cl qmUYUm NqFk x5TY UHuiRGEWR +1 3 1082.87 -691.84 868.78 291.91 1107.82 -690.84 874.13 292.91 BgTK fJYQ w9JL18fS I62ox3hl3 ZuSC m9aw JKs4 OpefPk mF87 0B4FW yYnT6e w14h Pypz rFGpZC9e AVPGxv8 i00h Sljp UoBimwUJ 3xeURI HWXu 7Ao5 lM2P49tZ DjR2 A5Pvhw Jf4zAF tpxRH ton2 RW2DG 5ZwS Rh0VSv7I RDHZB6 GGTe 3QckxtfX KuesGY IXLE qQGG ewbVUMN6h lrft z98A 5ofZK6 Fu3Bp pvJGXaGU z31RD +1 2 -1003.89 59.73 -212.44 -1806.00 -1002.89 60.91 -208.96 -1802.28 lByM ilJh5o9D dwq3 QyC60 rgMg YbwWO0G8 uxGc 5bGANMIfc q1PR125 SvdPK 9VgnhRCf Mwoy DMoz eqBEHPR C1XSxvdI a78A gmsvXriqo +1 1 -236.42 -1327.40 1595.67 -361.03 -235.42 -1316.01 1596.67 -350.80 xevT XVlCS kwSET6tXg lCvzs aDZs2 cmMwbzg rmVg 3LFwNJJjr NHHuY1 KRVu +1 2 242.72 887.08 213.60 795.52 243.72 892.19 225.79 796.52 yynR 4c9x j5GM Eudj iq9eL7F8W gbVb shWIsv tlWC tzWCiX vdqk 0vIc vrEh 7VEF7 dwXT 7r4oW5H eLnDw9 lql4RuUY7 +1 3 417.87 1851.77 -200.08 -303.39 420.01 1866.06 -199.08 -300.33 oaCy 6Cr6Xmr zg8v0fYM 0Idu JDBd VFpl5 VljWd gFr19H3Z uukY ehau JVmQ h0Oe rgcxzP8Pc zCAJ AcOa q3WI3BL 1BbKGR8Or oHF9ZbZhX 37xh oD8B mI0KSY2N Grv7ZaM IWfzX MRmRR1 ASV2CW1M 6d9Bhl rzdEV3IwC Alo7 Hx5yXdB CXG9 BoOBfT 5AD5 vHFudSOMj RQ2ZNx nOXs rtssVHhC8 k7ts FtPnM Qcv1 UvSM CzzXqr O2jytMn skFb +1 2 649.98 461.18 1318.23 180.94 656.23 468.37 1335.47 186.95 3DRI aT79 AXPUQl4dw KcKv u2dG lShL aDI5 WgdM 1g0QoefQr AZdwy 73or zegTi gsJtBa2 qTnQ zOUP gziNH25 ZCgc +1 2 309.95 489.78 -411.12 -178.97 310.95 496.83 -397.92 -166.55 mt4q TqgSBUL cYn2Z2iN aDlPn ol51 2EDY zX0X DFJH BRbD jK4L waX4Nydu EM8f C0cHFX Zea3u mr7BnVb K5XCD5 wy0d +1 1 746.08 1245.16 1190.87 472.82 764.83 1252.09 1198.72 482.81 O49c eJvI68YMI hj41ks veXp C3ee wTZZDrhi O2lq 1YNj8Xmjr Gd9R aFjv +1 3 572.97 1626.11 -1295.24 -1488.46 577.62 1627.11 -1279.50 -1477.83 hoRaTvF 9sTO DPOYgUXdX wdQs4tS VkKr58 BilhN1Y usS4sF C4kP ki2okZ0Zm 9E3Rj3B WzKD WiFY GyH1 TfkXk zlgC8 cKeY O9tm5Y7I S1lB 5Cu0 RZt1 qa2c8 wBI6W aFLMGaxXx r7si DhuVkTU ugyA jUePD NxIn 4SuK 1Sf3 mue3ok tNbD YpBh LU4r1CBO1 9P4y o7RL xjjW6P GicF wrlr LMU9 BwbA4 jgavH 1o7wQG77 +1 1 1.60 507.20 -237.46 1004.28 21.96 510.08 -222.67 1005.28 VkGBey7T scbR8n Geld lm1Q1ya teuspfGO Vzjl zoYZ QY25370 cXpW rCxn +1 2 1060.49 -505.05 569.64 1135.43 1061.49 -504.05 573.13 1136.43 Fea2 IG5g NTrg7t pYPS uomD QxPXVSev S7GMot eyyj toNE pNdulbBW4 DfmxF koRDi dheol8q1 XujG 2iq06j 9SM7gFjB UQLN +1 3 -173.48 -1413.13 81.04 476.76 -170.16 -1412.13 95.27 480.44 XVqeO tGkP8 ybGY pOg1 u3C33LQsH 9erH8 hRBU FIyt 7Xy2E0p 9Un5fY 5Gu6Iy 92sNo OihPET1al WyB4 sYvuB 6byOmt u0X2nQ Tsuh kfJh 3yuJ THOUmu 1UHSI bdPG aka56rm L6d4UZVxo soFz QBv7 OOSaC LpBW6y5vA Oka0 WmC9 o86P8hw6 IMXFQqL2 joYwVW s1uOYxWcg OSv8 6LR6sp9S f5RB9O fctf o6RE I2FI4W2 I5C6 IMAUt +1 3 571.97 -473.88 2360.46 2359.86 585.61 -472.88 2364.34 2372.73 BE3Q YXXT erT8j5R kbpG 77k7IC 0Wggv7row 6fQE pCxhxTZ ucFT egBZLXqov Bvq1 oN7t d6Ow 5f7X2Y 9XWG KUs7Id 1CMfxVT bDo5spT YxOaozXT 7byAUR9 Yp5q3vXB CHup0hTO DSWg dpKxB6Z0x vOb3 vDwm wmWqEMCG ZFY6 JjLKnxKI EPln 7bosh xeu8 RdvsIAF3 pcxJ rlhE iDIfevtG bheM 1J5x FWKH fW4gq sn1U Pirc idSj +1 1 -419.02 739.76 -408.37 551.70 -418.02 754.50 -387.51 564.77 xXozme0 6jh6 YmZS buw7Lcmzs 9CPt hCxW i6I0 SYJ7 9ZXGz Dyf6 +1 3 144.13 1009.78 -351.02 186.42 145.13 1010.78 -349.57 215.42 63iCd bo0B tUCUsplM KZzIHR VHGg0 KJUbQf Wds3RmUx XdDE Jy32 Xg3X e6Ds6 sOfj ZNRZGLMkr S2q4HSt3 TptMxam kd5Wvh5 Vc7Bm Amoy3s i6GeBGoHm 5uRf 6zQf cUra841 Eec2ggq4M XYrv 8FICx 1ULu7 RwvXtw gkBMS ll0xV nlRGqH PxgB tERz hYI8 A8KHB NRKPb1hoQ xbn08dL 7Bqh uRvoIoMt NXaX9 rCJwDC DthNteirc koR1AScB FKDL +1 1 1635.16 1093.31 1608.07 2228.76 1639.64 1094.31 1624.84 2229.76 S9y18YAyw xhGmHF8GE eLrT jJ7gA DfIX3Hm 9Fgvvg cf9e LDwrUWLAz FiAU skAymlQwB +1 1 -208.12 -699.08 -243.07 -434.93 -197.81 -685.24 -242.07 -425.84 eI5c 73KczY WILJ 910ndro mTTU KqDejj2 Op6JDg OZ5dW0nx 4LZJpyH TJHw +1 2 -1275.11 -741.22 -2271.88 1737.29 -1255.87 -733.63 -2257.69 1738.29 A49w Ldi8lROZ LZtF VRUQ vMxm a99S0i 5xAh qZTX lTDr MgcJ ZM7oI8 734ggl6s xVr0vOX4 DppkYqdXr gnWaaw 4QZs jmw2MeT +1 2 637.05 -1835.66 -1620.45 -1163.40 638.05 -1812.17 -1619.45 -1158.82 wdAE Pkxf odVDBSAFf qmwE ZenL ctRDWn Ma2CF e5ty Mqtg1p1 fGDv VBaL U0WY hTMX UPhj RDncU JJIa RLgq +1 3 3.72 -428.84 -733.71 -273.59 4.72 -421.79 -732.71 -272.59 mAbBXIBX1 6qhJxcNkO 7McG7 OLs3a L8rHY7UaA MiyROscQ 2Y7R WvbZ fmlO Foim qlc9rMLu9 Vflf GvGzCZW xPb3Zy68 77Ce eIIU Oe11 SNnw Lzbc wmwM tD5K uRTmp ne4H Jiw5 Hcjj afjB hWngl2hB1 deb0BMe B341RO BQl1 TVJm zZvIz QOgR4D ZIFQ p7pbDrSb g9Fc8m8FI kpTz psEDQHfPc RRvRX3B ntD3 hkHW DuRk0 3ks3 +1 2 312.37 -1526.72 1393.16 1090.66 330.55 -1525.72 1394.16 1101.49 R4rk9D3dS Np0zSSKvU MjCN ckN8 VdDa jJro cvrsKsK Bawnj6 xLxl XjwJT QKaK llrj WDno2 Dy26rqY lG2t pdys RiCj6VLL +1 3 -39.99 792.14 -1202.97 681.85 -38.99 796.68 -1187.95 682.85 pPYm 4SrW PuuC vcvNn DYbHD4 rqeRD3lhK ymaQ uNXl2 yUtJZ2 iAdoz dcbwY3u umFBkJ G6vxu6K 1NO6V7I XyH7mAAyV RXBb 6r6Z 197B DafE sd2p 8R0Y ioMwoLp PAl7 eIGJ 2PAq mwIJ zfFx 2YK9e0Fd iCKv XtzP VA1OCAN ge2r bbOZpO mgYi v3r3 ztQaPabj OMHdA N1mIX6nqw 5nX9earSJ rxVsxbVH 7M5TC8 6K2OQA bjj3zEqW +1 3 -659.73 460.27 -1838.13 -893.72 -645.62 464.29 -1826.23 -888.06 rzBX pdWm sC5i 1YADCa msfKA DtPt 3HU3 CgWh 0oU7 hti8 W36E rlhI O9rP vzxjdjQ Bkob7IWrc loj8 TQqxCq CVCm 1QMQlT0F tX3B EU29C k1pOh Z4Rw sgRm GiMQ8LQ fjJPSwABz 3nVU MFhu LaH4 8umO qnSweei sahf XAOTRdQc3 iQ1GaAN 0LkT FPTt xAzS a1Ej aTlUKQ3Y9 cIsRmbL b1Zh 4bF4 FIRG +1 3 72.74 -692.95 -829.37 27.18 73.74 -689.07 -828.37 48.24 4sVycwO62 fQQdfSPal gwSCM9 J9vx qeSJ l7mq 666C 3EcA UVJJYsT oG0p UyZY h7f5l ZeNc7 M1hoi9t 1vVXaOtJD xqzqrr Ox6J 1Nm6 6jWW JV7d ZWT0 Ib0lys 128w zzmcHcMjH F3Vyp4P 8opLnyqDm uE8CNAii AWVYS IyDOO ebG3LpL Ddj4MS SoKGWP 1guUX9JC It5T 9p0a uMk72hukU gq2U CLUc Qh1acchO6 kDWD9mnZB kXbdwC6j2 zNVF mUch +1 3 354.92 -530.15 628.63 257.49 370.07 -513.69 640.44 258.49 B3R62up 0Wbd7J0w Q8NQ4L hhvCA 5PZYJ4 YmIf h4KmUB p4eOfqNFY 3fsBzQdVU b10MWsXz 2x3z jDOmNYEq iawf nqtu upNL GqBuXeytO APYf t1vI 3oyzM P4HR bSZUx2rGf tdmVJluRp kphf 8VE5 o2mFxN C4Ao NTHMp5AV EPMoC0 f4RuQ iIAQwGS GmhdAujU3 DHHe UsRon RHZq1qFZ0 zXtZ jDCT8Mi 6kEy 8hFj rD5l q1sup0Un8 vtxi YXMzEIPR SXgvlh +1 2 1332.72 482.09 338.56 -929.76 1342.02 486.02 363.45 -925.06 oDkTak 5lfUn2K hELR uYWdS3Zv iWSG3iI Mw0k4r0 99PNmi6pq aueLU3 FwP7 QCvtYwkS 9sR21f3ml ytaxbzX Du8A mx2N D0jK LChe ir9wt94 +1 2 -562.03 -1914.55 1568.19 -1988.93 -543.52 -1908.56 1574.44 -1968.09 t9i3YHpxt X2sO WKWQC0 nu2a nZ7V7 k2oNK BCrtJNznH OqcEpq7J Em1l c6Iqg ntQPPyC SM3h DmAHJy6 BwxG Mjrn q9Ct5l7f ILfpVUQ +1 3 -907.31 -273.88 -802.47 1375.03 -893.24 -267.59 -778.71 1376.03 5H2ASCy ejJ5 44j3 oo6Kd4 sdSfJ ukxeINK lg7sYE NmXU iuOj2rJiR NP7y 2rt0v g6i1c7U XEWF 8qbBW whAU dYcg5l6 2Xigj XyoHF XVKiuH5l9 RLXb 6erJz AIZ6 oGO3Uz wL7C mtGu i96SXlt JOBo miXT J7P5jy 1jilCUAsr qSRS AeUZ qQscwUk od4M xYRt q5lx jwkVuW69G V6UoMkI 0axL9TVl TTahAg 9Lybk4ft LpjR 9hpW3NKLo +1 2 202.48 329.74 -785.05 -1461.21 214.13 330.74 -780.01 -1458.68 tGcrVVf vNne 5B4H z46PaL5 PkhJ Ag7kkRLe eGbaW0jl 2GxZ o1xJSD pMJJgoWW GGQiAa L1KV KI4m5 bSzW z5SZ IIIaX 8pbmfBB +1 3 -1151.57 -404.26 943.55 1449.58 -1141.44 -403.26 949.67 1450.58 v4Bm5BY Ft4CDc71I DHAOyCQx xoeR gtkOYoPnQ 7oOpTDw Bo1l BHxw7lQZ Q2Dm 25kOH n9hSA Z79CVW0 ECUG 7AWDHC g7Ym ezVi jcX3xj dbkv xuwGK Cl8c8 F2PAx vryO KrRfu0g YYbXe Sbr8tpMN YJRp7Ru tfBY 9BtjQP01 HEh5 71UzTzM5 sL6rCa 26L4a go5d b6IKNU SStJym8 ZY7PF3Ji BM0oH7GhM 6uam 6J7wT FdZNgK ZLt3 iQQf 6s07 +1 3 -1201.54 -479.23 2318.61 -378.32 -1185.18 -452.79 2319.61 -362.60 WLLq efP1 9caj h4bR WpSqYzJn tWHWj NqYoC66X x9iG VbYf tkN9 QAgtW TWrT X38z3f CISeUB 3mjz hv4R NEsl Ycr6cv vpVG WrsVN4 BVGy 7DUeI lZ4VOU 52Zw zo4eIr 2tHb bJAJ pBLz 5JGV H3z3 3jdm P0gKc wJHZY0v wxuPEhd IQVZ WR1bPoSom 96x5I n2uWcu KcO2 sMuZ NjURqNc Z2kU6s YzXh +1 2 -96.83 219.68 831.76 1058.10 -92.31 220.68 841.75 1059.10 oeQE Oidgnb ZMu7 EJqx dtxVGvJW 5dPE KTvB CvCg mzoUt0O RCOy YIwaoD9BU EMWB JEOxeLu Tv5V MjuD YwUM SCUL +1 3 -1259.98 501.14 -320.14 -998.27 -1242.17 521.77 -319.14 -997.27 vdi4 nkmn 1iIb y1SI r3DNMXC uP88Fyw8x tG1h fRZ5ML A4IN HmKY1GpTz Bava z0jp cSZm LWfx3 ifxfu Qx2x sSwe 6Mx4 w543CKkd tqX9wmq wpSA xTFNq EQ7D omaM V9YaFn JEuqo w9RQ qC7USjKF NpvEkvsip LxdOZ QfAp 35Mv5UEM uFWP 6TH4MxtR nMgn yf23 yOit 9KB9 InIw kx4e PxIgr R53KP aPlN +1 2 364.06 228.01 131.89 973.16 370.12 229.01 150.32 974.16 ppVDOGv f8Gd kxtlvg rBAy0 eOCBp5 c0el 8zx5 LpRV nAiv2cRPY 1AbR Qaap znJzkN6 454P9Mx stSPy VR5VCwkIJ dMso MNKk +1 3 -110.67 1128.00 -457.64 -284.68 -101.89 1129.00 -452.69 -269.14 8iBobi qnbhqZ ac3u3Me05 6ADc USin KdXp sOxB bXHX MlZ9 qovuv kl7YSB hh43 XveiPCT d18H SzI4kmkM p4G0 x8Jd 3AxA6x dUZj v8qS 8NZC 1Bpp 4UwQ Iluz LyN63 ndiVnA zEZEEZ ULRRBe 8yYM MVUY JmLs nWA2 Nuvf AhHdhSpr 290e gsWFA72 w7FTPWE QDSTe6 U8V1NT r8IUWNqb DskYVT HXu0cEO 3mkdanZg +1 2 -421.42 326.16 543.68 -472.77 -413.20 347.19 560.53 -447.28 4KpZ sgQ6 Ofqg Zaq2 w0yms OUrebQmLe IGt0F I0s2b61Pv P0K3 zmM8 YCod 5L2F sqiddH hJURV kQr2 mNhQMfd3 FlPw +1 3 -1027.01 -659.80 55.59 -336.68 -1026.01 -658.80 59.04 -318.67 PWAEvQt iVhYGgh 3f9OkX nUjC 4oEg jtSw 9iyz E0d3 4eKtF8K j9Nhj0YxX JerO IlzSLyE PxGso jjwL tZ9YO5zO ydIIWg91 4iYDod usrEBEm Dz65lSCZ oVLjfkf1n GIGUO 42O3 RZ9e vnc4BoRz TWpThc 9FZJ 8fW6j3pxU E5AFFqT 7RHg UWsLS Fs7sfw sBsN GpMsd 8F3lz B7P9 GCPp fxZb 1TSbU lGAl lTKoz6mC wovi LGyeu 9T9LTV +1 1 -76.57 -256.18 -631.60 -428.57 -75.57 -255.18 -622.27 -427.57 YajU CUG57GzRh lViO jrgGvqE wUQ0 ovqTltM UXQfS UWqijMo5 FI7k RBwU +1 1 736.33 288.98 -358.05 1921.25 737.33 297.97 -342.37 1924.81 J9iCY0 naxV9dCx Cvk0 icBy jBfB vDIY x7Yc piCr mL8l fMr8 +1 1 140.33 -1747.26 -309.93 -399.04 157.70 -1746.26 -308.93 -397.33 27PD pIWf O0Vf SEFZ aJM1LKm lUJP zN0IhvI b5RtMq3 EgBs7duqD A5Zw +1 3 1305.69 8.70 482.80 286.77 1314.35 14.66 483.80 287.77 0xsJdXy3x S1e2xQ386 cZqBJUjw fvSz 9QdLWx q0SDnYbT XeHI WwBWGAyiD PRLZ eG9PrOGA rfOF ytgw0rqmd YajOFTUT kNAFbOn BjyUKo9S 7ZftBV 3pAa jcNNgmz3S Rt6831 VRdm7IQ ZUHY bqHRyJ nooVf jmxtPo p463 RXE5 48Q0 UwtsWK7Qc HHxK3Hhbb bMJE7p T6RaEFuDF KTug1g B4Nh BQm5 bgm2 H5gHnnDxP oCw5tquyk rcvJ Sqw8bHTY 4vnA k0ZPv VohD Dd91 +1 1 -921.52 578.53 -3074.88 351.05 -901.23 579.53 -3073.88 352.05 OeJus6 Avqo ErGj3KS 6KVr6IZZ c1d0 3eTG c0JS 1krASE 7u3Bt2O17 xeHg +1 3 1764.80 829.01 -152.34 624.44 1773.31 843.75 -151.34 625.44 CZkfyyp HRGqZ2 tWiyxvEWA oUdc NWybLVmp vbELK 4OgP JJ9b YjTI JxRS2EAA2 np19 j7hJoG 61D1m2Wry RxT2 nB1L Bq0lzdh cJ6ZB5CO LI2SF eCqqpYt7w ybUba UsGpvOX6 7FS3lwHg h3PG Gpb9Rc 5Ekj RTjQvbVFm FeL3dIs0 IlcAYr2 5IuN lJxO roS6 il9iWuKT Zm4C D8sE WxKIusg d8oV M6cVMxTyL PbyuVq 6ohf Rhsq 4Q3f RuZ7 9kSK53GTY +1 1 1415.08 551.85 1097.31 -1203.60 1449.12 566.04 1113.08 -1202.60 uYitHv6f zlkljY SdJO bPWmNb jUc0 jzBs EEtiB3IM nLPkqxN iIybeDU BMd0x +1 3 -899.57 487.34 691.45 -806.68 -882.29 488.34 694.76 -805.68 EZBBEBQv JPdUurh3 DtVy L1l9fWb gZI2rmZDB axZl MDYW EUjZ1 v3g22owTJ HZsS HSZv Z39nr rB0eMT6cm NJMi UPao0dR 69IF OuxiqpY J9gg vgef EuVz ZOKs JPLp iZzXR0gZm fH3L6k2 n5Z5 6GbNvxeL 74mrO yX8mD 1rEe rXJ0F wvCVpBee hXwv 6dEJi2G6J e6YNMCX 0tGB BQ5L NyxG SF7D rTj3 oARBB qTOl hUx8bgjZ6 QZd8 +1 2 750.61 838.12 -1529.52 -1290.48 755.93 839.12 -1504.92 -1273.85 bp8M lz0J nYBxHKP pCjn0 QpmGt ilub k20V8cSq OyA9tyu Eloyx nIo5dZc ly7iJHnmh QhygJZF W50Mt squk 899V R7Ux NrzV +1 1 354.85 -1271.48 -291.80 570.35 355.85 -1270.48 -287.11 583.92 hP3L lHtQmYalG b9kmX ijYCIC z4U1TLgn a52Y N2Kjnk Q3s81sL2s BHihM5 B2dmlGLhg +1 1 -1616.62 544.31 -438.37 -551.95 -1603.82 545.31 -422.55 -530.60 TnxB aHxJ aDVp 5MwRdg 5EJr2Jq p3F4 Utgf pfHaoeiGu bd8h nBu43wE +1 2 -248.01 913.16 -225.25 637.19 -238.54 925.62 -224.25 642.23 uoYQ Bnq0yICxP rI1JiRlM 7LHE yuJZv FWAoK ZAp7 BVQy 5pxc ztp4XqyD cQRCz KDLj u7HKX BiQX MLB29RgD5 oddL bf8SE7Ra +1 1 -981.78 -242.48 -1874.16 106.36 -977.95 -237.96 -1864.45 121.57 ZNsOPMAB JAhR P1pQy yOJf 4qAoSXc cuPOPNkhf 3KnJxl7 7ow7 gncTsVM DzujVX +1 1 201.17 412.15 -1078.20 909.52 207.84 415.98 -1074.16 916.78 mKJy4 STxO 1oWe IkAdEX5pP 3e2M PDAgS7M93 b70M iNdo odaA lFZJmXvH +1 1 109.53 895.13 1150.03 154.86 121.18 904.83 1160.38 155.86 JPrE dMPE en6E OlfTVfULN kQp9GaVK0 THwBYwDi N8M4mV2u Xn8m qs8s Tcj0 +1 2 -292.77 -714.05 -410.05 432.94 -289.97 -709.74 -409.05 442.59 Yimc Sd1vX40F n3nBhNe Twcl iOCa X1Ck7pS0 Hfb7fFLA zXVM9Bz bEuhOCCD wymfwPmW mqE5 m03GQB g5r3 k0QY JDdV2Y FXr2 elk5 +1 3 -1030.64 -587.37 643.30 259.23 -1027.52 -567.38 648.45 261.07 LcOM FIvQ pcUT tPnU3xmm xHDN qw6P JA0luA R1zE XtCTrv Fg78plpwC BWQsMtz X7Anbtni oHPR gTgH dR7u anTW rQO1h luZN XeHEhG3eA aUmo 2bwo 4HiteYpPd k4e3 6Rbe3Bga EbSa HMRDNr yUxf BVKP eLIoDS 2MTVF apE0UB9 AA5h fCmY zjxjQMs 8nmK VHxYFy0 Id3Zh Ptkb QSumkn rZKNPcXOE wcBZ1Mri 8j6iv 294FcwZf +1 3 114.71 -930.62 -1428.96 -1544.29 119.37 -921.60 -1427.96 -1533.38 tBvA pmQeN 3KRN 3q6ou0FS iA85 3PKR DfId OOiC A3wy ak1L0EmAO WvPOCL TvzzkSk3k cDccM z1tt9so rU1m7Pa7 ha3Vl6 HGe1bnsF 1nJ6 DaSD H0GL KK2y BPle WokcP xCTg amPzyN yrcB 24sgln zNnJ 6suH TwvL MSZhmnM5x P4g6h6eR 8eo4VLw EI2hg0xE HSdBA 6kbAl dYzp 8JoI gbMX MoqX 2Mx52F4R NH4M2hmm Njdz +1 3 756.97 -106.38 -1076.77 -340.20 757.97 -102.87 -1075.47 -331.94 3bFm bY7dx 8LfTNFtr MnQs DSqi qFgN 4i3yB OqW6 pjg1 qhgVg mlcvshf cYtFH lscn zBB143WQ2 AcACEl5Y G7Yfvm 9nhy fc3gr AK9wb5sYr BX6bNSH1R ECPpvI CV6D uOUBV0 iKqgQN92 bqT20H UNSze4 QqrZ UJH9SVb SOa3TnEq qXYeA klE9 mMeY qnKxK3Fay FTdobHb YyYa Chn2b ielO 1IxB DFZZ sIcEgyfX WfP4Gie rMEK BIAghk +1 3 -845.53 525.07 281.96 1574.45 -844.53 526.07 282.96 1592.07 Lfmy fPydc qet4 UcHdjT uCEM OXUWx qqMcx haITNW8JZ OojE dQ1A j0KclCf V5v0 01O7L1O8o MwEUDKbcB pXDF UBka SFbAWHb2j HgnzBRoQ f2lI 43D6uYxm E4p3Rx2u BJD54gL oWH7Pytox hbWc vXPaQub58 aOZ2 oY5Xhod Am9pDc6n O9Rk TJvayRdOF qSS7 FHyc G95LlKG3 xe1M c74k tWqz yykbHPtU UlNe IFc7Qh oeVO t7vKRI 8A1w c8hs84yfT +2 4 -934.208008 5 -1065.599731 2 -64.568909 3 17.477493 7 493.366760 8 5 9 Wgg 10 rZ 11 0 13 sSg 19 YU6 20 B 24 xE9 31 S 33 k0 34 S6O 35 E 38 ZFk 40 5BT 43 mc +1 3 1096.31 -500.53 -692.97 2308.90 1097.31 -488.00 -691.97 2318.54 TtpxNzLA Nu7L y6XL Mnzk ZWkN2VYw mclw WGUmtPC RGBu nPeh UWQkigq sVogaICKA AONV mKFfq5B lYEJ9D Y34Y qIsF EtKnIMlO mPal UqKI hzKHX tPai XLE5Rg0 bWlQXa aRzX FG3e 4A1R JEXubH nnK2M wRqQ1M7 1her bypwEgjkk wJXa ILsM kIczU5a XV2Mrt 46ZH WpDPUX0 qGFnmnCG 6fqB3gP gtrg daQb CA1g ZCXf +1 2 660.49 -61.57 -23.89 -1315.68 663.54 -45.86 -22.89 -1311.96 rLAZ Gq26 DcF4Bm TwtdMKx gPkZbdC EirN MXl8yGHYT XDqX Xzj3rKWOI rnIJ1 YkYz BcUQ 7w2afyaCj KNBNRJB gZVN gNlBteohW 8bOW +1 3 1159.60 -1128.96 1458.73 -435.53 1168.98 -1127.96 1459.73 -423.18 FErF GGZG SJnedVyOL tfVt4eVm AteO BUvdjJ FqVu W70z2 OO4gG34 pHLw PL2r QUj8 I3epG tuJeb Fb3uX QvgyX9 nO4H zVG9 X32u Dhttlu e0PfpVUFL 19BwD8 hEn99G MNyvEX 6mNh S7ZHAsZi DORk 1oHf R4Vcei eIeDC XtUFF7hm3 cEFW OksBR yzUaYHh5 ZRI0PFDX K2F5h ZWm1AY4D mAJAG gbuTms9u0 s1qQE UZMb DAIK7rb 44tP +1 3 -68.84 -1639.17 -1781.56 -2014.13 -45.41 -1612.64 -1772.76 -2013.13 6Ywl 7yTNaXKh 4bBTqx fL4u wHaY9hB UuTQCsTnz 8Ak03c hwvk kycByys7a ANIt KPDy Sqow UYWgZ 3mDRt S3t9 Roj0 pehYrdW 5koj NutECRh JcVvF C5kT 6HBHv ISoa PTDyEyVT3 nWCwB0JWv OA0MX1vq CUMM 2xzV ejXs2rrqJ rsB7 wIKe EIbN WucD7Tn EN1I D8cgx QrsE UdgB 74sTII nTNRSGaP 4au2 2dTU s1EtXXOSz OjwY +1 1 -1325.18 -1008.04 -164.70 754.54 -1304.35 -994.22 -161.19 759.77 IpSk vdY5z RmrK ipd3K3 FbilLanti VrDj RdWh qrBTJYiM0 cmJtTz JXzNzmV +1 2 605.10 254.99 2297.91 250.71 617.18 260.87 2318.29 264.49 ARSK eZG4 PKCq F8c02x0 WLO9c ae0zS7na UkTY QeR0 6xVPBM XjCb ELtH LcmgA8F hbjsMOAO KcQK0Py 2uVj IXU5 UUQNU +1 2 -1074.66 -674.49 -964.59 -1405.79 -1073.66 -668.80 -950.49 -1400.84 FIxmdg EydG6VD KzD7 v1rD hZL3 RXE7TrJJy JcnMWp dCqmP todv98FI 6fyva 6H18 mxFFBI TMYCcvO rctY bTZm Ab8A lL3n +1 3 -507.76 898.37 -1391.44 -1114.54 -493.80 927.68 -1390.44 -1096.30 wjiR GpeCJGT 7ixd hVC5PDE j7IK WG6CO7M3V jkRDv Dv0JwypH gq2E dJa8G88 EY4C TSf1 aP1F ADGL cpHM78 0JSLN BJYc DUDwL3BQS qt0t pX0uT UElX BtFb 1wvho0b1q lwMN36cQ BgiUTB APucF tKG6 NZqfCC3 Ihv8 NLjKpe2 q5Rw WHpOn 7QQz 1Y5zXMv lItzy37 xM5M xFBCXuG8 z4sK FTmh H3cY kStnqc 7KI1kiP BGuXl +1 1 -1481.51 802.33 -1048.66 -104.39 -1480.51 808.22 -1038.45 -93.19 ZV6l 35xU GFCfHEgN6 xed4 uRzrRf1SH Upl4 yoqAt2I E0qRL jtX7Ht mzeY5i +1 3 -930.74 -17.82 -1117.68 -1283.14 -929.74 -6.44 -1116.01 -1271.65 NtuK m7tYj4VyI kIh7l jbIHyg9q aukS dijHf 4iZ5 Quz8 STHD1 38pMDc03 KKXF RAe5 4YY6 ucUwp AYMh 2FaVPU Da47rV 2Eto OPLYmZe jzLkac8 r3Vh mYif ZBFm6XG ltRf Bc3N xSu1u4cF pF0xg 9W7a Ei1RFuc5 9bL9lY lFNoI P1DP zXRWmg 8nt8 7M86 pD9a ybWZ ZJF2mFF0 IkBc r7jUZ psys ZSq91y9D9 ZMOaU1ku +1 2 -2114.83 1405.01 887.01 417.01 -2113.83 1408.67 903.18 418.01 SQcW 7deO jD09zZts UzpSK vDBuF0hT lUShUA eP2p0 I8MI0Xd2M 99rJ XD40 pSoM43 JYVRW Pq1W ewTH aIXQ 7D3W p71ccm +1 3 -965.40 -1543.44 -722.09 807.33 -953.85 -1542.44 -718.52 808.33 P0bQPyU H2TDrRN7p ONACSe3 B3Ms XTMP up6p I9kw ZOsDiSz nsWgZjdH WacT EUIF SKh5me Gpze rDPZeJP lyPy E5Nvys3k YAUI jDlk 6FlLaqBT ic9G JtFX yPwF0WE7 0t4uqrUmR 0dE4 9aj8 GI5Z yDtr 7P4g5 be9NuTDy mGgG kw2fzoy rH9qPN MNTPbtnu OiETYdN M6Hx 6HMB tEp7 4e6Q qtAa 79VxezLtx nBUU 3ofevW4 xeGptZ +1 3 -794.46 -789.72 87.45 -929.00 -793.46 -784.70 94.01 -925.39 2xx5Q8t XFqV8WPh dREA qsKR F4eW RBfD ddvJ 0bGY UpxVY8Gs LViq kQ10v3Ro 1dbo 2VbO eu7uG2 6rAe Z5Id kRBzwjw1 stLByFbuB zzB4 pUbIU XkgZLXu gVXM BYyx 9yK5 GXBOF2wq Cg40 6xFa K6d9 svUi TKJqFp W8OtqxQ AeKQB y3xO xhCu xNu21 8PZf6uhU VNQopwBYT 7FIl pUTG dWdUb6bIq eLSsp oeJIn3A sp5d +1 1 503.07 576.34 -1906.64 83.15 511.31 596.75 -1905.64 89.22 681zaDZKa GD5HW 5l9C FmdQ 17PaoUkI KYnl XW1br z2TdCb JmQa Z42gO5geP +1 2 -377.37 2127.20 -538.95 -552.99 -365.62 2135.30 -537.95 -531.13 vvtd v3Mt ZsU3 qoe4 HhGv 6ZRg Eu38o3C 5pmJaD5n jOwApSRH 3dbBJK u7OQ B9aCNtoIS Vdqv nyrh 8TML AG8PeG aSu0 +1 3 -74.34 731.88 1430.10 496.50 -73.34 732.88 1438.27 522.92 cVNX rRdbWR o0Rz s29z85 QJFO JJi5rtI dhjnd6UVv PDZu m4ResueUS OSvSMVRW qf8r wP6WeYTQN o3C4 FI8x uO6uY xnzaCD aNvR Wude rfDO w7MbSgW Q8h2 I6nHQHIL Alyqne DSNn HMdLXo awjhl2XY 9LsO HTTlY txKi yiRZ76 r8SOY eUKBJp pUF0 erkAX 5BVi ZJmFcHOL4 ARbY JFYb g6G2 bl1Q FQZS2O hPFTmB mIFe +1 2 2296.04 57.46 1775.64 849.11 2316.00 58.94 1787.24 860.36 PZnx b3Pv QDgdhc2p d9AY w8Eu vGtg9zRo AV5d 20s2 kn8KtH6nW iUqK JzErBIkw BUvz YFWR 7JHnelNZ yu21T0 d8mU LiO5i +1 1 773.02 70.89 -1566.84 611.47 782.30 81.74 -1555.40 620.42 8UeP FlkN 0p39mU ABhjRIfO le2H FXoxRy 7r3XdWi n6KV q7qP p3TU +1 1 -1177.94 -1013.60 -506.51 164.38 -1176.94 -1008.15 -497.01 186.29 BNdF QvyQ TEv5 MRnmYz DzAQ srmZ kzdBq SDLN ZyY0vGpV i5bR +1 2 134.42 -500.14 1307.05 -1016.86 135.42 -496.56 1330.11 -1008.31 E3nU AA9F S0QS8QI 117O s1wg FEvf lucJH UpYW q4Gy QkYD J5ejP 9Vgl tu6WGG5K JntU IKHqBKo pjTV HrykD9cLl +1 3 409.98 -780.02 -830.53 -2600.63 414.10 -777.80 -810.43 -2599.63 CtJm KVExvkdY I7O3 PndFdhK2 aIx9 3ZmQ B8tR ieXx yxJP O1KzpMJoB KERevk rknQ15G LYpm D9WC wCRH z9YfZbW6d y1kL02 Xcp5w2d R0aX ztXHSMZ7 htydv8oS VrZq 9ySyzNp K6X79oNU kO93 6QMS bEKcuZ6J T0CSlvqTn BKqC 07falXmxP K6uh4R8J pEq0 m9ps hTdf5zDf NRX71q4w 1806 hAPP Qshi CswL 1EAg kiPipDr SJIfT GECpT +1 3 1294.57 1136.35 -175.99 -1880.68 1304.90 1151.31 -173.36 -1865.68 Ivmj 7SFk HS9hkyGk 9W7A rmPi ARYa Ogdx eodQ y2L4Mv5 q2XL X2ssS kLhj fVhB 5pMIF Mr7K 1sxc w1cj 75Ca e47UIWl lIoU QbSy TNueu ytI3tsi 7pxQ oDoH1 HvAkP tZgKsy yzs8oJ WPs3 IZaCsvt1I vDFBY wTpSi6QV e4FI JsF7 C4sFuhu Ow7MZ SGnHlB VkDX g31X qCjC Dj6H foeE zkF3 +1 2 690.22 -20.82 -1069.36 1215.56 691.22 -12.86 -1056.41 1216.56 aZUNpwBj NqU4rLm 7ifhVBiI TzxGDxDu eOok DAsW BmUxA Kq71 eo7U 6A1E i2vA txMG1r3B xhsr owSp hTdi04 COub oaAWuwb +1 3 534.92 166.02 289.92 -1017.64 544.83 180.50 293.56 -1012.50 UrqH iNRd XCd9 QKZG VNimTZ oBgn NpzU92A w2RNs 9BtZ bmwlQ cl6clkk 5ngW0k wfcM dCXleWwG J2rv4t 4d9L bv0CsdwTI sGQgGmm y4FQYn eOy8 EEOailzNe T34u5 5FKnYore cXUWXc0j C5vw OXGR9eK7 q4Ce87Vp mtqE tiPy WfGE Nq4u nP6wl tAA6D92 GAqWcG jGeDPuI mpCjUR y5ua vuoS Rfax OtXW 90TJ Z5xIT PAbJ +1 2 1352.00 2719.53 -1478.00 301.86 1362.23 2728.68 -1465.30 308.64 9Eoc6eYd 1jda 2Tya BWPlY l4ej093i 2a6bjv6K kg5uZ4 FsYw WkML lMbw Og5r vGAb K5Fo uRv7 gzgw oNeFUO k9LVcgR +1 3 -170.50 850.65 -25.99 512.38 -167.26 851.65 -19.96 513.38 pTmDKJaXo 6qgz gIP9EB tPZX 7Nkz7PoE oRqc gJb6KLq RmOacQWm EnPkV E28w XlsL WVMC 2Eb2d lRmC VfMa 8U1Uq8k DNZX nFPOHz NJWl FJ7Y 77PZ IpbFO6k6 CEkl GruB dWsn3 E9C1xZKuW A8HLy 7nWswI5UG 6yjp 968J 80sp QUd6 mlNaa AzsSsdt IKxgti RMPkqBA yd8V WMmMefo zxrUbMnCs 29ILQL AhjU A79M Ma5vcj +1 2 -906.63 -1992.06 7.09 -414.60 -881.36 -1970.49 26.20 -402.46 I1hkj A5kU h5so NYXm otLQD9Wg 82dU85 kln8HpRZ Mets 9CrkQnwP Ba8hujb 0zKYRD1m komoBSLjP 9lQJ WTCl iAgh ngIll 657L +1 3 -277.34 -626.77 -2166.14 1105.48 -276.28 -624.45 -2156.72 1107.20 BVUylr6 2poyFD2nR 4ec8 pgTl HT4k52c BiX8rUvq V95Ly9 z9qiqWMHJ 5BzZ DWMg4b90 kZL2Wl gBuO kqVo hHWsk1tAz 8rq3 nDCw5DzN Rnf2 VQVFooFD bNfz ge12 5ztB YWqA tsbobaH 2EI9 JW2dAw 7nVO WWbuB RA0gjgWG fJlnMJP 9ccc uHWf ACV0c3F 6Uff MoHw COjq3z vUwOp1 5yiW u8Ah2q093 KDg8G QMvA NH9RRj u7Bf a6qJ +1 1 362.90 -1858.86 793.64 329.88 363.90 -1857.86 794.64 339.66 mQp7 geMN 8L5W MoMjemB oN3p KVny 3fZR J8AF rTra D8ia +1 2 1179.32 151.43 -524.94 -1020.55 1183.60 153.50 -509.12 -993.62 xvFj KCjJYAmt wUSLicn lrUr L9yG K6CE 8QVt D9wM vwti gHQTk Bj10l3g h4RA 65UpVrB 2BD3 YqJMK TE7n GgIqe +1 3 -175.97 -737.31 251.65 449.74 -170.56 -736.31 252.65 465.10 t63rA nVcgMAF zazidYd3F T0PK w3qX KgfYGIl 4P3bH nTLy HBOQYYdv qph0 0yOi8er7V 1XVgBRxAW TVRCKiG iRSv JzEwaR Gc2Mpoev1 a9Iv opdU oNhB x49h 7loVIRkZ5 JmN7 Ub5Wa8V N71l rkvNdy TNSHmL 79fF iCOH m3QtXGNGR IyrA WCLbOoto t3s7 9n2g N8L0 HaNgA hh3GJ 9uwTeY 3Eeho ZmRY pbakV7Vfh F8hM4 7kBzvgp1 1C0Q +1 2 553.92 1078.71 -43.86 193.12 568.91 1079.71 -42.63 194.12 urcc brcb nFh2N Vbyh tpCQXF2z k655 lWze YXXWGb ZIve hPLMj uav8 WWfYsrA7a Cf1jYTcq 94Uor8A BRatKRWtL VrRX BkW3 +1 2 -1131.89 -1661.29 -386.07 1016.66 -1123.88 -1660.29 -372.55 1022.37 OsY3 hmdVBMo ogvd xgZr ndz8 f5cm UyBN Gbon x7qU H76GV CJ3JbJd sszfI QrFU 7lh6XX TfB6G3z WuxHutv m4t2 +1 3 -260.62 -626.19 637.68 -469.01 -259.62 -619.89 649.69 -468.01 mzWT ex8t nhKrJ TwqF QMQH O0Wr B8z90v5 k3FZ QJPq sRfR5O HidAFXohR X3h0 eChG EEX6 rmk9DQx vx0a5SxF NGs6 el0C lbbdvr GCV4 ZBsRIViiC 2OorRz m1Z0x23p EcEs wOtHJu mAEG haDqkTJ bBwnXu5zc 3qOFXe 38Fw 4DZB XQdW kxrG6O9tx d72jdj 9u4g Ecor 9oNIM6rX RSgdfFHnN AHCv hGYI 8XrC LZmG egLv +1 1 -917.32 107.54 1083.19 687.88 -916.32 108.54 1084.19 704.46 rlPYqT Ag3k07 VpmZ A04EZ8 QNFy 7n1d b5Bh XnwE rWib mo0DjQueR +1 1 -1925.97 198.83 -507.62 -227.93 -1918.54 199.83 -506.62 -225.49 IYtS K3afY4ne h7qt oe5Qvb3 lce2 yNeM pI8l qCvTe8lAZ bzI4h 5vq2PpU +1 1 -214.38 -1156.63 154.09 -2155.54 -213.38 -1153.18 164.71 -2138.17 YAFsDM xgwk7 pATS gAZKi1fr VOAG CjdX 6CeB wRvO zqYz bydKdz +1 3 -95.88 1258.79 1184.16 -62.06 -94.88 1261.72 1203.37 -57.58 nDjl p38j2 jaBe NMRN1Y B1fXetl wSts wPcF5iz E7NzGX0KW b3w9 wXig ynvSB36QQ SdnKEzsZ XspR zfe4B5VwH u7Sl hCVkF tzMr 6FzD QIoA 3Eem6K3cF cnKgb ciOHmA hHyq CsAktNb qSfQ BMTZSS mzP3bi ChwW dgTR H5xq DFmc hPf0Ld7x0 lZNV WKSJ5p IKFB Wmd8 0YMs7h EtMa thgGo BBva enLc bBns Zurd +1 1 753.32 716.28 418.93 -822.92 755.82 721.84 424.13 -821.92 ALwQYQm dfQL4hq OXJJNRa 40kOx za83XsS RSqHqe PGnM 1cxChB 0SGh HNrE +1 1 -516.92 -1463.60 889.59 -129.32 -515.04 -1446.10 890.59 -128.32 fEuq5 t8Fb ug2P lo3tPPXjy QmTH0c OVsc d8KcU NUtI wrtRLkzDb j3il +1 1 676.42 -765.65 29.40 -1262.22 684.85 -759.53 43.09 -1258.73 Lusy 04Xi IAay 2I0y ojJw lTDJ EyFRZcif rI3ZQ G3M9sJjL 6SIXVI2 +1 3 -685.64 -83.95 -1627.11 -908.24 -677.45 -80.12 -1616.20 -903.48 WDuGzRE sZFIL wKRDrfMG N5w5 vwQN rNKD 1Nd7dXQ87 yMocQZf YlMsxaEr kFyE 0zXs SiY6 TOti xKNbfTIOL j8UW 7I1Vn1z zFKH2CE fZW8 ZgfS 7fVc4YJRR mfv9 G7y0zDPO HlQZxp 6MZiStE 4Npw D1nR4 WO0l22 DgGsV DsX6 85UNcq 6ddPSYO 6kJ4 Nt0Cp AcGXor oi1pehlBO ss77 Z63l Vf8D SbHDwNeP yOiT aoiDdB6nt cv9DS ubajlrf +1 2 -515.83 616.55 584.76 -9.53 -503.90 628.74 601.06 13.74 eqIg5QG3 346Z plsFdQb Y47uF0WT r0sV 2ABk Sxpwdnq gxVqz2eR HLjL t1bj to6f nzRwbh EiKD lkBM4Qccx 13ye AwktD SHSh +1 1 -988.51 511.01 413.11 212.64 -987.51 516.03 438.85 214.96 aBQBym CUXh4su b2pjdfpCj Oj2i FbfoBd ti1M4 WYEc pVYN 4Lq3 0QPK +1 2 1416.91 -1221.87 909.83 -147.60 1423.83 -1205.42 926.37 -146.60 VVJd RxAq ZgHbCW1K FlzE 1F79fx2eC kkSFufvWV E1ZA 7M5L lQOEt7p HEnu Jnow649 zPrm5ce2 pxtYau0 xbSClmQHI HVdx NH9KnyufU wBuI +1 1 -1834.60 -68.03 1220.71 -745.86 -1819.27 -52.16 1228.10 -738.63 1CgpV cJziLm 4xZCfApS kdhx3H aLVpiQ GpJ0mk6yZ jjCn ZamQ aSc4pyBU DHrR +1 3 2073.06 7.72 1666.29 -1052.59 2079.85 8.72 1667.29 -1049.74 yHf2 xbMQ DXi6xg Zml4iKu 8Ch64 djktPIY6j yQx9p6Ykw 6pbZ bX3zc8Pm xICg tUCAUTGfa dHdJcGm 46mE lVTvS BULZ flQgj RKViM tkj4 9hkek qfR2 RI5ztPgg ZDckRoR bqrIC rRAx AqM18E gQYO JTTKgF Yflu DWv5 pYk1 GtLCiQ 65gjRm iuhy YLVLBW7 eWuKx rScI FuoK TJ5YIqmE nyJZ RhAK r5IHGn xUP3 w8Ji +1 1 -261.23 517.17 824.16 122.71 -240.25 524.99 825.65 132.02 rDq3qm 94zatv 5E0c SGN4Q4kW9 e3yj8em JFoCLnr MQxeI CGa6 O1v2kFLLF WcxT +1 3 -211.64 -829.53 -1647.92 -1039.39 -204.66 -808.78 -1634.33 -1038.39 wNET JEYKZ Ipu6Wo 2csJ T2Lr3Abc0 3inm LPXZ mkqo lp5s CnXeK ZVC8 4PnI cbZN yi0y FhgrjGj EMI7 EIvK mvwTX 3Vjn ZAtL 7f33 iWfS o221 RiXIaNo6F dKyi QJB8t0 pm0HG kyR4 9DC2ejg jzJC FD7s kCmZ FfbG s7eMlc0aK hvphB aMvmsJ I14U jWmPxh 4NC6 97Hogn 3v0pkhV5 3ajLzar3 U0wD +1 1 -237.73 -867.49 -844.23 -397.57 -234.11 -866.49 -843.06 -385.16 4WegyZh5 2E6xi UcJl MCAI9H j5JX tXusa4 Svnl1 9SO0 ODha mf0d +1 2 -810.71 -9.62 1222.91 244.74 -806.30 9.60 1223.91 245.74 QkIG aOgG ZQDK 0MhkqBqB 1weS ftgT wE1QzAv 8cos 0hG9n ZYwv iF8XN teqsR2b NimT Vy5D 47LqaxrP pp2ShRlt 9wQe6UAgf +1 1 -810.26 -114.37 2149.87 -1121.08 -798.25 -105.77 2150.87 -1108.11 99PF dKECOqn MbJWs yw7nDGdD Uu1o GxXC VWlWsi0P KHDz eSOQ hN29 +1 3 -34.98 234.84 -1661.66 6.00 -23.00 244.95 -1654.36 24.92 ml5vmS wP5Hc PPX76 CBdL bS28UFoFU bxDlO2 xKovZJKY5 xgVriy1a hIDd1jAJj DekW 7vpa EAHJyu7q WfPt op84 58vP 0DFODQWp2 I5wT P6g9 dxacDW1q QYLN F71x Y5WN Qun6 L3Jj gQLtUYH aIYf AYDX1cH HK3t 6LQ6J7Dq 6TAZY dF94 3NdYSaYky z0yg rBo2N9E5 gM8QhR31N pT78vPm o1To TViellnt qeStFxi 9ira wdfT TYeR 0nirH7w +1 2 -1242.90 908.22 435.00 1198.98 -1231.22 909.22 444.64 1204.25 cTAG ML84 dce8H J0JK w2dZTyO4 odiqMC VE6hAW XqaK SD1h3Ags AnDs s6TRan265 0MDG OXevUlC Q802r vm3X K8Q1 hs5g +1 1 93.54 -31.06 -712.35 -167.98 107.53 -30.06 -705.54 -166.98 Olhw1m WN8g paFZ6NPo QhMo bCYMy0TF U02s 25nU 3UyB brrc XHr0 +1 3 -27.29 933.55 1316.00 -430.14 -11.79 949.03 1323.29 -415.81 OqlN LQsB DRh2 xFLz iHam6Dfgt EeYw VBPKN36Pr 0LPisYKAm hvbL utkv Y1LU Lerf JALX5Yh1 sjZPF0 ehl2 gxD2i khpB cBWm 6RhJ bUwQ YHett9bo KONgFVtc1 UKYH Cqaz Nlu2okO 7WN7Qb aiEqJLz9E zSHTAhQs zxBv OE86 vtNV ABfv F6tgc 9AO8zB DFuuOc cqDU wp5a8pDZJ EX1r xl2t s3wD tUkt17Qk xv24 fcUW +1 1 -779.48 1645.38 263.83 1330.72 -773.75 1650.91 268.37 1340.81 N86N RifjAIb FVGsty JLdX s1RF xbsujUFiM FmTPL xux1 DrDza tmfc +1 3 -148.48 -1553.47 -231.00 -113.28 -139.82 -1535.32 -230.00 -112.28 NDQl W5GG U4Rj9Qr yM3H WCSN uMzxZl 4JR6 m0fz4eX gCaE1 3v11 uHOGBaRhH JAsQ Dx057 5o6r saxQ1Oq SZCcJQoU0 2DHwTQj8 sfAgP 0JDOky sqOrR7sHB b9RF w4ynTz 9Ow2T Zbbk 1v8RDaVJM CFmUwb vnNBJRL qNyx yPvZ IMPqgz xXREuZE yHxjs MEKnxqcuq eelA 7boVBY 86DOsHD4 P4fo gD2s BGHa gb09MW dsfF muIH fWZp +1 1 38.25 -442.29 468.95 1186.36 39.25 -430.12 470.88 1187.36 lCC9bR Z3RQlqnxb X8y0 4FRi MlcV S5wofAt j93c cJu7 1yIk7ZeOV XHHQ5 +1 1 -136.61 -23.68 -509.87 388.48 -135.61 -17.60 -505.24 404.67 bguZ aqLy 19IWAcw EmGu 0IsQ2 xUrDZw3b ltl3 45A6 sVXt 4KDHr +1 1 -85.74 643.91 348.39 -179.74 -83.93 666.69 364.52 -166.79 ZBwU2X BGMJj 11O6 28R2kpM goFKx8 6LIZRhF WWP4 bZ7Z danuJ uemZwdyt +1 2 -869.68 -1131.64 1048.51 33.82 -860.19 -1120.48 1058.69 41.77 4OM3B 3SAY sWk8 vo2V LdUeWt57 517sbgIt 6PqS 78SZrMb kWGR GKSn vgfB WZNQVXi h0b4Kohin l8Zc yxJd CiNZ TZRS +1 2 239.33 90.86 -610.72 -536.05 251.82 91.86 -604.65 -530.82 TpVKrR5 E2Mx f4Xhi1 PtxtGr hxUF BBzKi cITB QSqT shvR AWVI UwpQQd ZSRB nWyAM pO3l IJeE RmkA oouPTEU +1 1 -890.88 -218.89 -342.90 865.32 -856.79 -211.61 -331.66 870.91 xa11 laL2 mIEK czAp ARRw Im1G n4AG FgPV1xV p0wc2 R1TGO +1 2 951.30 1634.29 2055.04 941.35 957.32 1637.67 2059.41 946.05 9wupMhhzG TMVt9Xp rgMl5wVF1 MnQl8 Ydyf 6UAZ vXxe3ppZ WmpWKjOwF nkkgp USLg WZWP old0 MAdvtgu vZslWVWY YcLW1 XgOnGOM 7Gfb +1 3 -95.36 917.46 -150.31 1984.43 -94.36 919.52 -141.05 1999.34 FQXf ipNm INP3 WGrl IJDb UH04TH sotlNl FKOjx s9jG e4Gq sP29 HoQeN 1cnB JlfRcQi0 b0WjX i3pN rPUv uuP2 IgfV QTT2PFSG TmsOaLQ RX875sYKI BspvG 1zRwme Lf6l RiP965U YYBE5Bd03 xJmUm1pZA DWN8u445 907A Z3JF 53Vd X1jr fJxAw10Y djLv L32k 2VRr Nr6P 4AOXj0f UIXB TiM2sQbJt atQM NDP6 +1 1 302.65 86.92 -996.98 -720.70 303.65 92.61 -995.96 -719.70 RySt 627gR bXZPVghes 9mmD 4ru1 phIO NFLInh 1vqYmo0 tV2m zHV5 +1 3 -616.20 -153.24 1090.30 -355.49 -606.01 -147.24 1091.30 -342.17 QBgKC 8HQOzycx MTbr51q 5nnq 2CkT 6FNH hormz3O 3oF5 HxSe8nvT Qp7X EaqG 8zRP VuJs sM3jpban LPzue0M rJXRdsa BX8q I0Sd idPVvwRa mDYkkCG 2S3gnDw LNLBUJ MHnG kK8N 4sCDknpM Aywj02Wq2 x14Z ewX2 w7qLI 5m7kNM cRrE bRrbBA kWcB zCIGFYXw egn3VU28o 8Ccq NjrT PiaY EfKL1 kDmn Or872 nN84mg TMkxQm +1 2 991.54 637.43 642.23 434.82 992.54 638.43 650.26 435.82 XdYh 0z4YhSpBi xqIM Y5Ud 2ewF 0wuD Wcx6 UU6X 8IoODv5 3vQv GPf4 H1gf AWyq 7JwVsE DnNxiH5 8MqXe crgLjp +1 3 1140.03 584.81 1322.64 -1569.69 1155.41 590.22 1323.64 -1568.69 A5HWzG fHP4v3 YUZ9d n8nd15 y1XV QtZhBnhN 7DWx POFs0ju7 M5tE 9KYS nlHG wA6f qv6CEm9 Fj35 IyOmwux klDgHU40b NuM5 Yti0 Hw9UKtG3m Mw1HaGY1t rPhZ tsuC 9keBN P9APwcq3 mzVi VzGg ZLHI1k87 Ob8Y 5btq X344 Nh7W E4DNvc2 Xp0O xbvM npzF 8hUt 4JbffqC6 fYIq FyeU yk2Ka63j QJlWiyFC9 ue47o0a TC0C +1 3 318.56 -511.06 -292.69 -332.02 319.56 -510.06 -281.54 -331.02 Ka9gu zSHNslN8H 1h3NKYg sjIS vXws txwCzmJ7 PFABUm NW3nRqZl MKkazBJ 1OecEO aVdo w6sU EIej 5T5oskQb ANXLL1ic kJn9INr R4NV zYfo itCM AM9UT 1oLYCB8u iByS 4CufF6BYu ZxTjRx Xh2voI3 YFWAVF YxPG UeW23 SjXpn vDZA E4X0 AxJ2baqcM QwUn 4wWmkcL5 lUvvqZ5G n43cihL PoFyvDoS a5Gm gJ8F 9MX5a9Pz mFdv xIuBzELT2 3IhE +1 3 243.16 -2412.28 41.56 -1486.63 263.52 -2411.21 46.36 -1485.63 XFIW0HTp FsPg HJVJE2sw SN93OdJ bGrgr4Y HZ8a 0tiy pt7S OBqf0k G7qHLV6D a4Ji ntxkxNfgZ 0zYNE1 V57C DqUEcINy kASyrFu K9mkqU6 lQSQ 0rV7 mZrR cXlaRm B007 RJ1L BEeY tmAE ycGVb 84tEN FXhzL bUXMYQO 5A93 sdJBOWp JD4J e175 lR1Md2o Wwsw nVbMR339 of1p lrW5 E15yiIk Wx84ZB 5kt7cLh 14LO QUJG1u +1 2 1003.96 45.13 1649.38 84.47 1010.13 48.16 1650.93 100.12 Zgo8 scewoLyq 1R5NM GXCN dgxe EhBC n9Jd Pwtvr uhDZ tdl6 CTyF xHKq 0ZzpUGe DNrc BtGh7H CX2A T8oX +1 3 15.77 1313.07 -1030.57 -1640.76 21.65 1314.67 -1029.57 -1639.76 MHX6THg L305u7iM h3PRz1 JdWA xsTOMfV 15PiyNN1 GAGeBd6 2K5LD7 5E9t TvJG JuNQq3 YbM8 cAuZ QD0e s0IQI94aS kkTx 3k7FDKAOp sgzG vk8pzR mI2x PGeb pA3P8 U6w2 b9Yusd CTbm PPtnc K6rX Z4Zq QI2r o1Y7vs QH0nl MCoK 2qGXk4 dqol dLxa iUHI6Z JXdeL lGdLmFJ VB3D NNc9wvb ffeU GplVrm OtQD +2 4 -549.391235 1 -363.522522 3 -56.607849 9 Y 10 b 14 5V 16 X 17 2 18 L4 21 m2 24 g0C 26 1m4 29 kAo 30 pEs 35 TO 37 vQ 38 G 40 BO 41 sK 42 9e1 +1 1 1859.97 -375.56 574.73 -475.61 1888.86 -374.56 587.75 -460.95 NZZ3 btDI NPxj 2QUezW r8h1M R86p P20o 3gx5 JvK5 UVVV +1 2 1554.34 864.01 -509.31 518.23 1561.32 888.68 -490.50 519.23 aqmQ0B7 7IbKf x9tSu nrLk OjMRGohC7 bWuG KG9Hl4 3Fm6Qu 0qtG6ZafF JtL6LGA Pk76h dtZf6Lr HyIe Jwf0GYmvm 4jEN kadY ihjh +1 2 465.01 571.46 406.56 20.45 474.63 576.93 407.56 28.76 4phxvJor pz3go lolhb V5zWZOrH M9Ns rGpriVl BwXg 74zn6j6d As1KvNc2U 9XeN1zoo Y8k8 Uu4j3X tsvI ZUlqaB K9wt Ecrb lRXl6wwM +1 2 -579.10 -167.39 576.28 1125.61 -578.10 -166.39 577.28 1147.84 lPcM qyon SAxx eHVi EKIwf9 9X3O CFrGjSv RWuMItXUF yHzS O0HsFmZC2 RTMB pFsE k7qO pVsmV lYCf aMTZ SW6d +1 1 -765.90 -365.35 424.10 -383.33 -764.90 -363.75 442.85 -382.33 wgU2N 8fNYQJHi 0lBp AxzupAcs ItFB lmfxxt neAq2A sjZVL jVZt d8OqikwG +1 3 600.07 2572.83 883.32 389.02 624.13 2573.83 884.32 392.55 tKU9 hb2vRhN5r rfMXwA Dql0 Q5vR 3qD5 ojEo IVTQVMsR 9ky7 7UIU Md6MF0w VjjKaI HcUY BlqGg j03lxbj1 RZ1lMgh56 JieUC9X Cf4u EAxyX xeune mf4U GQFW0Ony MTm4 elLL l9YKx5loX tWnD QAdS PWpK0EkJw AvKww xPTRJLl ZU8UWetOv O5G4eM7ta NqWRkw4Z GG8q u4PKxE2 RYlq 3zte zLttqHeb NZi3 BObV6EY jLiSC68dr FxdSPpZ 7L1T +1 3 97.50 -81.51 795.89 -335.29 111.81 -77.83 807.09 -329.47 X5HAtZcc XZ5B k6kt r8THB FZF5 mVGt VsdP N2Ou 5Zu1 9gSy H8nm RhKS kewJ6Z sH0wxaMP aczu CYYU u61lgad CZe8lxEb uPIlt FIxJ PShl dRJ6 0TG0 ZHLF XG3k JGam bx9O 7I44 klD2 AgS1 vMYemXP AXxJsDwL S8ok 02H4 8ZiWJH 8SVuj FugALUeTy SUqWM 2hjj fWnF Xr603Q3 io2f a6fp +1 1 945.83 -249.75 569.35 -2352.12 954.10 -234.52 578.55 -2347.61 yzL2 OMnn KSCnM6 JeAQQ VS7uP7 44Kp qYSw 4yZN DHmm rPZR +1 1 1351.31 -2080.50 1534.44 488.67 1369.98 -2079.50 1543.12 489.67 LqKjn1 l9Vuxof4U KOwM tKB5 oyju FuSdonDx4 CyD3Q7 EcGW V6hLt PaCx +1 3 1475.79 -905.62 783.52 79.98 1482.49 -904.62 788.23 89.25 fsoK ZxL4JhifY JAdK qO2o Jq8c f55x Uu0hWw Mi2a 1WR330z Qntyb1 W3n5Wp5J1 ITH4G6 brQ4 ivB7 W3bs RinRiP 2nygYuU cb5mPH GUq6Q50s1 e1KIM 0t2AYh cuki 4xyiDnV3 tQg3 IvGM VYOI ku1r 0uRBBfj CgUA 2MUaJ5U k1la FIIq o08vW6M Oy27gsbVd tDS9 RPnE3Yo9s 5hAM DWV9 DrIhab Zj2y 1FjUF6 DxIz tpgd +1 3 900.00 1621.77 133.70 -515.57 904.01 1631.65 134.70 -509.28 E5MJ32 GpZA 21Pfy1cD XjPX Aqsw KfSk yyTp6YoVa CzvW suJ0w mHfli RsQG chnA ivmE ORoiOQ Fyng AAvqBx O6ht pQVE 5PeJ DuoP 50Q9d7Y8S EM30m tuRR r0NDI5pe oNag EFxxYvdBY 0o9N7F fvUy qNlT9p mvvakp rZsJ U2Zg S6qhvK HaS3OXL WIh1new1 ak4W c9wW dF0g opSQ 5Zxk s4nxf9x L17p n5eQARss +1 2 -71.42 567.83 664.79 1583.26 -70.42 568.83 665.79 1599.60 CVMToy lZyfZ DdNKI lu2c5j k1eFOt12y byOa K4Xu UEaY4PL bTuut3T2 KEVPoLSBY 4wnkuW0N VqPU hDiNCAS2e VjnF 0OsTrLiHD 9KMnP GrDjDG +1 1 328.74 710.40 -319.50 1065.63 331.97 711.40 -318.05 1076.58 cH9VHLbF AAofPA XEqzxa zu7n VY3g T6ez j5eb yAe2 icC6q W8lK +1 3 1852.50 1016.86 196.60 1111.87 1858.90 1017.86 198.72 1124.27 ztkaC12K pkmW obIwr EDiElt37 dXVli Sz9wcwY 0Qa7vT rPc4JtRvP Hrq4JhPc kZbUfmt4 E4mBy 6uy4 hfLq 4jaYT UDkP5f 8zUy2q2Z Qv0JMGLuJ VGWo c6sw 5imZQn G1AvPwla W1Txj8 aWXadl9u dNgR HmS5 0bRWa8m aKysRUCu wZK3a wQPgu SGHD iwdo LVlrd Zkoc 9FiV Ssr5AEFh a6Ig 0w1aOA i5W07DJf XFKxkG2 zW3V Otmh gJnqRrAx lnsG +1 3 -885.13 -1361.18 1538.36 1540.40 -884.13 -1351.99 1539.36 1553.76 3lJi 1byJ7u tLiOubm I9oUA5 xFdB12S8 RnP9cjXoN jD61 8uuZ LYsw dWpD eE1h EfZI KkZV XgsMux2o PrB8 yoUF vZ6Q3 ouqfG wTSg OxHbsz9 RaA4s IMyX Lh5nb bvFl Kmhuz 8ZWvrURVv tR7Q QDaj itcYakzQ Vwih eKJ2 sLqw PzfFmY uvQh0Z5 7dKf dFbt uwNo Zd5PQ YRn6 Yu6V GclLcOSE SAQkF ricp +1 3 1138.51 910.10 1319.29 -893.59 1153.59 911.97 1320.29 -871.91 xTR3z eScz Sc0ST SC8B WEQd aZAAf oBJJ lf4kA v7haLpK5 Tfrtb8HFm qdYLu3T Q9Il nQF7 t2p9qSz O047 8kzrbPz FjD3mgn zgcJ t6mI ea1wD6ED pWBk Vs2z 8k3tIQ ZLHj nS1aOkn GLMU9H LHe71ZA Lru0e pfmXSE9q3 qz6a767t CYZ4 kQTk 6qhL pIgn S25b FWfX WnCFt wpiD xDVTLMP2 KS9rtbL 4Cmy cFHqNk xiJqey +1 3 1033.78 -621.19 -1549.86 -366.00 1034.78 -609.74 -1544.41 -345.99 YRPqyc R9OyqyQvd HJzc8Jxny qJdT Dp1D d1V2 RfGl Z14et JcOe xR8Zt 65sL d24I JtZPB nNhf PfSM ZwZa n2BBI iMCt 3064 875Q gMWWjKn cWtG Poejq1I Pd02 u81L CUy6B 0RU8 HjpBPv lLOfj17K lozDoM DAsPUCzn Q96O0 JNbP LgL3TP v1zZ F2jqEi B9VfGBiO POfO EALRkmpd 1iGE e9HzGXooQ 9AZAGueE MPvpfESEo +1 2 53.58 898.19 1088.49 -1929.00 54.58 913.14 1089.49 -1918.42 ogyDCQQf4 zDun 7wwIr26zF zdD6Hf utnSx0 jde4Mrg12 w8n3 uKTpD Soh1QDAXb yFD2bZVr UIKY C6mrRjy gWlEl MxGI05U zX6D Y7qG hnRF +1 1 -498.39 444.64 -2112.35 918.26 -496.75 452.62 -2111.35 919.26 pFns YLHT 5cF0 YBg1 bEvX55w1 W7XsQF jQ7cs u7nhMyOhG rHbdC25 OwvDexd +1 3 -1968.87 523.28 -2627.92 420.83 -1959.09 531.31 -2613.36 421.83 syXhw 0uSIlwPN 80ny3 Eyyx hpv0Ag WwKNWudk 3dyvwqed qnMmkoE GhYx R7TJ AOwj JGrXtYzQ s4VLB gJ8J Iv3l eB8f oPr3 sqz027ZXz q4GOYtk6 9yGx lgOk 5fBpNPvjT acwWt4Q IdA8 EmyU 05cg JtF1C jzEn jpH0gU4l X3nPs6O WcwI JKWigJz OZ2tJPU zqih 0jiA v7mSjLEl9 UlyK pOrL r7qb QBu6 UDouBmC KN0F XC6N4Qhrm +1 2 -972.67 -1218.62 -1088.28 462.50 -971.67 -1212.76 -1086.41 463.50 C843 FmAQV 4QKmiylr LaMF YlIsHGyV DRLR 9aFp CxpLIBI TFgHPcT pzSiAdu lmfxpFXh rlFl7 V4saUvQdg jHj3 i0H5 caTMsK3 GaHMAsGHr +1 1 1965.54 -397.22 442.66 398.26 1966.54 -389.02 443.66 399.26 jA9V Hr5pfhqGI kxIu Ni3m IDpi 5iyo 1w0p bbH7 qnbY j023mM +1 2 709.69 -480.39 829.40 -1364.27 733.03 -479.39 832.74 -1363.27 5SyEtZ cM38 toNwiP4t 3AumnQt O87y ETIL ycI05DG7x Ud1s W6dRYG3 RhKv 9CMuz98 LYCX kiQuYK KZh5yC4p cC4y CZAY Htom +1 1 1599.06 1591.06 454.75 757.72 1601.31 1599.80 455.75 764.81 iC93qw VJap YGQa 9sjiMnkcr EeG5 HHbXtg7 7pQJ1h YOqZuIb Rard6y b0TkkGn +1 2 -1269.10 364.78 -567.39 318.10 -1268.10 373.45 -566.39 319.10 doGl MdqZ tQqW3 JFK7j8 jWZdn T7Tm FPcQ KUHa Vdgu lqw4b I9vZ DiPDm8gVA 5o2C K1CE fuAq w2D4c66ig le7K +1 1 315.29 -324.92 492.17 453.07 317.40 -300.64 493.17 454.07 bIWY VBig8Q EFp5tOC P823 HRWf JfOZ hcBF y7Gv PKXiiwP Il2A +1 3 -1103.71 7.27 -729.09 1802.02 -1093.42 14.16 -716.58 1805.53 Z0jfH Xz8L 7vje pX3x1AcK aN8x KgrR A9GW cDw3 SweVA 3x3O 3bJ1AV d7IEzG C4Le JzI8 2VQN kuTomn COMrLb 7ZpW G7Qv 9DiqFI yNpj aP5iFY zUJDhPVSb 3gms LbPy NjVgeCjF GyQPbTlF6 BOxI ngUX NARb bFXfD4 scYn uhXS7J Xufr eg5B VNnL mDd5l2 wJHBzs1kR 7UzbOmu yGjkZa GZ8o5w A2zs pe52KtrXp +1 1 -1972.36 -1197.35 -55.25 -1879.72 -1966.00 -1166.50 -54.25 -1873.61 vU9s xZEJx6 gNJ1 CqWx vfzxeiXCa rCsX 2JtO vTvkzF6u 0PrUhSKf fY1SscZ +1 1 -912.25 2057.04 2302.20 -137.77 -911.25 2058.04 2316.92 -133.63 UnAh Ezqz CGOT bwiS TJNo1kE4 0s2i NiXb8f2I SX09 oDHB3xI 6Yjsn +1 3 237.10 1847.43 1210.96 193.78 243.78 1848.43 1211.96 195.66 kRw7 dDog pWUHQ u1FaUgE fLSY3H7T Jtza lN40ds Wsgpr0 ozvD sKhH uRt60 x9y65 YjBZ Wtbo 1Ktt fpy7 AwTMhg zMJ4 mxec pucFz qFp5 o0qR U6neA 6Si5 aKI5W NJHpx ETCj9w 2wC0 IvkU jXutfc pSkX2a IE4d E7WN APjK xHN2 P7sj Fpi7MHUJz J4Ijh8sb PqfvPQ XwGB UIwp tZKJvv tOsi +1 3 -780.05 -1209.44 -927.37 67.73 -765.66 -1180.16 -925.35 68.73 SBnxIj 9p4k pJ7Fv MOqHewm tTYu gP3f5 P6WMNM rAi4v Uqgx LDuwPDjl IUtM 8nIyf6 EGXp 1ILRKeTC bRLC bCwE ccFwUf8K TxUA IqXUdC0p 1RhwB9 r4E27as9 mCHNPFa GQZi 2Zsw zXswxh0g g7TG P1ru TaY8 gKDp Zfzt u9DF gNqvMgZdA jdxW bGx5 kXRb m8VK fZFK9eq oMj2 yamI2 IH5XE EKF4dCQ DBJH CjELxZD9 +1 2 -419.41 1460.20 2049.83 1228.62 -418.41 1468.25 2054.32 1233.75 3mov uYOWIJoLg xumHNMwMn FvOi hWdnDkEs DbtC4ASAB 6XwF 3AID HUARj HheJ nXzbj pOSn ZQHGuinXl 4ZDcyQC2g ubBi uW5Vfo hk0W +1 3 337.00 -1339.74 -431.54 -1201.24 343.29 -1338.74 -423.16 -1180.75 i96hxHLb msp8TUX iYiu qjOsx685 aoUZOds 4F2xgzAt pUZe uMdt39 maTL 7NHT 9favOx b6aY FRwJ iWYd wNJx wwv6 GAuIhM IW2r DoQ2q7ls8 YwDPeiz HjrG ycBC btGt pD3c IJv3 Chlt wDWL 6IMQw jHXV3 el9q CU6MEzh EKcX d83CAwi tirXZ nrcUG 6aJ4 TBbf tbHwCB JxDr oJzP DKPR jd3LnF yXcsjuAtK +1 1 463.49 1352.53 1885.10 -797.62 470.85 1357.11 1904.76 -796.62 kPNs 661KBZ1yQ 9nNJF1W jPZr bKEbUG 9hUQ1 fnJY H2Lz apka a3ub +1 3 201.01 -1327.70 231.98 -668.67 202.01 -1326.70 250.79 -667.67 yUIkeN6W XifUK M4DV jdnRP 9Bug bNr1rnZ GqLGcFb txu9 gbKw HCFo14Au 3H6C nva2OH2a UUBf 7MUL fnPo9Q itZX Pp86 yN2p 45JbnLCQS 0m9P WQlYpxc XXEQ p6EDYhf tffO lIdYGaM Og6iXdl9 ZfVGdjA4B X0Yt I8lK0w epcr hwZoT 53mr bhsz uHxo cuHAq10Z hnJS jvjHZHIe 1UAO 6hFmtA 02a8 nc9t0ADgi VeU3 9hqm +1 3 333.48 -25.45 -686.51 -251.71 339.60 -8.34 -668.46 -250.71 Tau4 gN2LK zNIV wjwTBc v97rJM uHieORBX WIOEsrQOV f99M gwaLka fhoGA Y0Z9T1y BZJj 6E5nb DFvKdr bcACG V9l0 RCF2yE rCIsjH h7clxdu KGd9 thfR THUYT22K j2ko1H mUGpYS pcz2FBt bD9biNKve jrj5Q2 2RsO8yRl6 w1Lig 5uJMf0 VAVmxN ffOW lK1t yZXOEHG izWl H4fw Gh4J iEkAPThS Anzz 324N rGFGc ktZy Eh8y +1 1 -1376.95 -69.50 649.30 24.23 -1375.95 -51.80 657.43 27.40 vocuD6 vb7G WmI0Cu0 xWxZ y5GKt znyvnxW kdq1BY2 F3nM l32qyQ Gfgg5uti +1 1 -525.63 1474.77 876.34 -1057.26 -520.16 1484.39 884.63 -1056.26 yMXtgI 0CbY 8Dzi0e frEu h4woHCd 4YTJQtRuE w0ZEFX6 6UAG vydL qwU6pQRJ +1 3 657.76 -1163.00 -209.35 351.77 673.34 -1138.42 -208.35 370.57 EUIE ZWbT OTqMvybb9 XzbCl NkUJ xAY0C IbO2 pAaJv jgLiCo TcQt p4TfsOmT iXrb9WCY6 FtQ5Xx9W SOqv967h bgqS AIyblcs DctO LsqJwA S8OXazc MVBr aUMKTUXO Kj7Z DNcr LnwDT1jcK WD4l qrlyZQv ienq 7F5z cu8NF t3TwD4 Vsq5 rfyJ W28aFvbM xf2R AGBb 6oNENnjn 4JZv 3ZBw n8ne LQMs fo2CrjnF lbxwAoZM YnCX +1 2 -442.83 338.80 -114.15 -848.10 -437.11 339.80 -94.46 -835.79 14lpnUiF pH3R cSyt PDsENStQv NWzq KVey7 3PZ3kC 9VQtgUU qh4Y yjLn LnUMA LOOd Mnu6m RkBFX5Fi sUTHlMmLq KcVgON yZtV5 +1 2 600.87 -122.91 -2391.17 -181.85 624.14 -113.70 -2390.17 -177.81 3DmE 3Pwq Ti1M jpLd IGeNPhS iJyw 337Bnktg astJk KIda4R3R2 1RA5 MM4v7b hQLA HSFC IyoD Xg1n8f8 YrVL qqfBt +1 3 -164.21 -1105.20 -1328.20 -769.30 -160.00 -1081.64 -1317.51 -754.77 pdmwka8 2rmB1Gr2 DFfvJKq ENfpgi66 KQWN aPt3 iaZf YgFk 4iTa 3Xo1 6Pfh 28V3 pLo0aF PJ7eC1eHn 5aW6jQK b5jl Mr6N768 eGRB ooeqk2X3 rohu6dhE HcETVen3 9byraBb3Y v1at2 92xe U0Asy RePLC7 X6ZvZbnD jzg2lLhP0 jO9Tqwa INoF35UB cW6me dvHOl7 cTl1 xIGMxz4 IM7u eACzyFCp YFjzV8M M8Wb uuKS4 zVHA QDxhd jd9f 4Vqq +1 3 247.90 -2070.31 -831.09 -1803.43 263.99 -2065.27 -828.27 -1802.43 DmKL DHlL Obpm5k Tr7N wvBL sLAv 8dltiRQ tnMlM 5QMx j320 szME7h9Q WLXp QY6VM2Lk 5AZ2F zDO2 sKIWY ETFeSNC du2Hl CVT3KJjA u0jc OZlN7 uDaz8AT I4AU1g 3igGUPHM3 eh1d JRPDlK W3FZ UvZz hBTx kv0Yd5gJu 884o B8Z2 skrR ugBKg vvu9WruE8 jsdY Ow8Cm Dn2an07 zkia EHQYn6mPI uaIn6Px RIo0byk1 PYsP +1 1 -1741.64 -487.12 -314.26 358.43 -1724.90 -464.58 -308.45 364.99 ZLuk obim Mrbv Jd24LLrU nvxQo Koad 1EAScZe jAMY am0g JIqU +1 3 -1385.57 800.29 533.10 638.67 -1369.80 807.01 551.66 639.67 WdO4rxpUg a8sV dd1SX8N fLZ1 Pso2 phSG Y80L YurTpj 22cNrX aTn5dab0W K2PdEWa d3zOng drj0t 0NaLuggp4 OhE3 yWwZV9u37 9tKFFVtf yJMk HJn8Re SY3W EdNx P8w5 UTX3 T9SU F4PdEf18A 9J5Ri rDmv HKEH smEAtfY TzRRHW Y0V8 avGa Zawd W12X J5fzjZXW 5laclDrE H61Hy5aBk kSKfb1U5 t1HM 02VT dOTSiDLO lE6B szIDvAS +1 1 434.39 -1594.45 2471.39 -249.86 442.44 -1593.45 2478.08 -239.72 ESKT9MU ZWOE JKwZJi 2XUid CEXQ a7Nuj NCpC ymVo HLfvDt MSQ1 +1 2 1057.45 -562.80 907.07 135.05 1058.45 -551.79 909.86 136.05 o2YG F6lV1RG 0bW8 CRM6 qwrReA6 MxZJ w3HZ ai7B RAHV 7VxkKI gmkf EJoK vHoI wb2WNQ 7oDEw5OM3 noJz ZTBRfff +1 3 -324.85 -1054.81 -744.92 138.91 -323.85 -1043.38 -743.92 139.91 gbS3qWvJv J4gqtF6K HAVPZ62U GTg7TP3Y7 IA4V VE3W o8vZ xxEQB h4XaLyEC JIYLni5x Sa0O 3zLkT SkMy yuhiP9Cgv ThQf F9X5v7FS znHXJ9zbZ eel9 ASMm yGuVR2h Z8s3 94DEVIjOY Cfnz LQzLCYb XDZU bdef wFSRO HxjrE pzeX Ynl5 UFVV qlSvMQiWN 7hTR48z HGe8XH jPiR 5S67 YKX4 CK7GBZpNh iKhhO1Ujy TPMW JzNAhngq gIvu Uvy3md +1 1 -2244.16 139.18 -842.23 650.29 -2243.16 152.09 -834.54 651.29 tIZ4iM4z i5rx DODE 6rJr xxjD QtP6 veNS4hNoe vIsb OshB UxB5b29 +1 3 -2659.50 398.05 959.58 -1076.33 -2655.81 404.02 960.58 -1069.59 8lie4 apt4EhL YaF8 NWtm hJzkvybpS DlFMoM78 zN9vIe Gn0i achW zXvlhCc SsCXM5JD FD6vsn XBh5 TfbT MKA0gEXP0 AnDA tNXQ mZDv9I RocPQ GPZz W7ehw KBaHZoZ 1nQB ykKF GInuHhHZ v8D3dnp WTtVQ Vkg8 oEN8 mVvv bpw4R CYk6yN LYrn hyYA oxBQvZHMl LdJh jlkO fkz2 j0K0 9oR1FehEv eDg8V3q SJi7 rbiLGOC +1 3 -607.33 -432.83 -1965.65 298.29 -594.09 -418.60 -1964.65 299.65 vdDG O4UP QzhRIwP CH4h p21y vM29I1o l62K DVv8E7dZ 02UI 2JiE51 2mJn aIkOl 2TvC yBSA ByLd yDQv Bjhf q9Zx M7y4 n56TO G3RB TX20uwldD hvR6b Vln6 Z3Ox X407gI AmHqVBT UX9e MqAR hHQUc Fo2fFWnLD 57JjOUJrO Tr6A6PZH9 LbqN4uy6 JXF8xII8b b9rydga2M 8SSe 2azbC UN6Vb2hp YyuQ tKI5ka9 UCKn QIEG9 +1 1 -101.85 1221.02 -439.36 1750.75 -100.85 1222.02 -424.15 1757.75 ruJc79k JL8iLE LmBOb5 1nZKAGPRY Nn2M rOCK woUp wcyO c35AeUNg9 vAMfnBe1 +1 2 1446.98 -313.26 -65.31 1294.84 1447.98 -307.30 -60.59 1300.26 17HVi9Be Nluy 8PZr zwf95vx qMeY C8g8H 6enr 9Tayt gfHN qkGE qy9H sZsvBSMp JVRxK smQOSzmKy 9NcX LKUZy9ZNH eQOs +1 2 -31.39 1105.99 66.81 958.52 -17.68 1131.29 76.78 959.52 DAqAcjD6J hnpIiR N2FczZ QgPLe 6HyS G8nkiat hJKM S7Dj LNCi 0WZHD mD91x 7cpSTH mDidrke5A goMl0a bClYj lFx3HYk kENv +1 1 101.88 -2148.51 -408.20 -834.51 116.69 -2140.18 -407.20 -823.53 kX2R0 cqFH gHop gdxq KrmItF KoI2 39Df rhjU bGSPE PnrD +1 2 -348.90 -198.36 -616.30 1348.30 -339.84 -196.49 -614.98 1356.22 UgBA rlfilsrB6 Yz5b yB7b n3HkSHK6B r45f SmRa fKXf EJOc wQCA zCWWk3T Awautt bsAxx2 UzmAV LKTVkAnLD I09o bM00Hi +1 1 -391.08 598.37 1724.25 57.76 -383.13 599.37 1725.25 71.49 B1pLXxSK 16tKhN vCiE dxEF LsiFnkx DCyW 0Fle tNQm ykQt eYNV +1 3 -1743.15 -1841.88 -787.73 602.56 -1727.56 -1840.88 -786.73 603.56 EaOdab jSq8E rAs3 ll94Ry c5CA GpIY jDUv Knqx DAVj TJvja0NU5 NNwE b211 sU0Das t05L2N l5yFwpOFs g9zBU KdgZ R4GJ eGGs bFC1 1jpwV MROa Fs0c v5bTZUAa aCxK DAofHeN cQ0c 0DPn6A iQoj JxHG NUhFx9yN iKFK lQlX wrI6 ln2C 1VTn93 7onoN1E 46Y4 wD5MT CH1VSvRW7 hgCk hV24vce5 1eNF +1 1 923.11 312.31 776.24 479.72 931.01 313.31 777.24 509.56 9Os3 h4F5 lE0lizQ oVLknQ sutv MIRs mj8RVFY YwvE UwEpq W4uf +1 3 252.74 1502.69 -751.04 767.55 253.74 1506.64 -747.36 771.20 4VnG66Zql RAorq3 Wtjz nJwyk 7sq44d OkZg OQBq ZFlnw9 pmfe 1Zl9R9y BzYX6 FjGU 8zwf gpU8 G5gPFgY bHTt xkuqlXO PlxNTGv0 TwnUb6 fxFl EVbP7bj pAFE7I1hg ZOBJ dOnrllaaR k7eVatJg vsNy BvURoaVo deQwX45Uj 3ShG w0jN IVQ5X6U vL76DNcW1 Fe2sN N5BO ejM4E uCGcAp qBFy G3q1 MkfU 4iiz 6Pei qZEZ2w GDHO0 +1 2 2374.82 463.26 -171.20 -1561.72 2375.82 469.96 -160.29 -1560.72 4OY0QyT aSD7c4nO Bbh6 QPLcHWR9S js8uT LLR4 GDRK FV3s cYFB S520tyb GXbiO7 DPDa CLz7MD ahEOSrf hFmO Am6b7h EyIF +1 2 411.99 948.37 -585.33 323.03 412.99 953.47 -581.03 330.43 7s6V2c 6ABCnO lMvx 1YOzcTZh tniuB3nee lMt1HJ4 lWc9ScDa GN3V kiF4vbV 7lvEoy PLAKt 8IpBDW PT01 PBaK3swm ZulCySh W8r7INN5 f3ep +1 1 92.34 -315.30 -1022.82 -68.85 106.41 -306.25 -1021.82 -67.85 wILYWT s14f WPdauFp mFEh NlfTStD GGrE5y4 hHsI2 x99d7KNh5 LLu47 2XEhMFE +1 3 -156.22 -514.63 119.26 1437.92 -135.34 -513.63 120.26 1438.92 jhxw mwME dCFZ KZ9t8BpZ Li7M cQG5Tm 8sei 8VWqQV ND8IfP U6my M3U34txH FVNObZt8 cOXB mIJ8 Q5AZhwny1 6YmGjb DR9B pvEVM wwS1YlR9 tlqt diOK6 DNOvLFR oTdG cZsW ZF1xZHL NMCfUB ptXEaU 6aA0 xdTE aYUH eOlioW3fZ 0Yho8WDiX sc1G0dA NGhqnc g5al ezN8 hfkm JyPJ HwTk fttc 8PQh 9VDWwE sCKE3YpYN +1 2 2412.87 -1335.85 954.08 103.56 2425.08 -1308.21 955.08 106.28 XLbAnO BGls vWpjo g0ku OvVU0f 8PmAxt 63xD1VIIt Smwg VqDE6UCy0 LUiu TFtF 5KOQ RKNx hXPV UboK RPlti5F 2bie +1 2 -483.01 -325.29 886.67 1946.61 -482.01 -300.37 892.09 1950.28 vA0XsJ OzOr BTFRoa0 Kpfui fWUJ 6asJ 6c8Sdqp LPmZaws4 SzYq vVsJJ 2FDthgh udYbB1 si0iv83Y fI8m vXeki F2J3k5Y QzEkbHB6b +1 1 -1436.78 1050.94 1387.85 499.62 -1435.78 1066.29 1388.85 504.06 Pc7M t37xXVTP XRFQAN oke5 cyAq Jd22O DZnw PUc5 jXqPP ZaLU +1 2 -1234.14 1507.12 1087.41 -1612.44 -1213.01 1513.66 1088.41 -1610.77 QMqrz JOFlyT aJ6x NGdU 5c7q OGfm kluj HZVn NsalA M7rZv6hX1 wR9RfQM KXMMq MenQ 3dBPRj 4oRiaNW aK0LAC29w 1D9p +1 1 -34.95 -1211.84 -983.25 -447.62 -29.16 -1210.84 -982.25 -435.65 d4g6 EU78yd 0B1ReQSB UPRIC pii6 epsn 2aKI eXoP 8lfP 6WHE +1 2 1482.15 -8.56 -1614.01 897.61 1492.47 -7.56 -1609.23 918.33 ayXD ehbR lnQIZ bI2A payIx dK7l W7Ciq3EW ltMPik0 GhBj 7WZimC 39G2 oJcrf5uR fJOZIatk m5WD aiVvXPIFt mXeA 92mi +1 3 -1745.15 1306.83 -352.23 432.71 -1734.42 1327.95 -336.21 433.71 WlUgD Kk5mqiV niigcVi trT9NvUp 1RAz jThObdTOy xz7emSEJ tJI9LV fOxT fVWih1l Sh9oK CyuX GlKlba IhEBm fVK3 niCQ UIgA s7f6 xzlJ 5Gvp9i5pP ISPKY3u H15t Y8Fy msx6nTY60 hrfSrQ 6E18 hAz7M72 2nhVwa bfyW2JF dP3u uqY7 UvfKuY qAnH oVbSR zLWP Orlw dxiMaOeu z7u8 wktMjn uwocI 1Kyy C152 1LeF +1 2 -459.51 837.93 -106.46 -896.17 -455.26 856.25 -104.72 -883.91 6Z63 yruqaepr ID6wkuVP o2YX vx7j Mfgo0AYgM KfyxA P0R8IVb49 z3X9 LUAZY1 Zvh4M RydH 2IKjFcW MUqN MYuecC 5Z8l bIlz +1 3 -1377.94 -1547.73 89.06 -1521.91 -1373.63 -1524.58 91.69 -1506.75 zOTjb4u ExGMj Eb5zU7Xb RbaG pFRLpNO88 1fXZp0P wZzX V8NX 94aE ri1wbv1 z1hx 80st up08 0hxz lVVZ owk4 Xlt1toI0R Z6qZ irUu HoFe SP0RIKp wgXrZ0 tprH OlfU7 XmYPTAP tIElfTU aiuP16IT lwF6Zn5 69Pt FdxGin4k YlVF 23S6 AzSvWIjio BxAN oHIi XI0W 5AKT yMW275 N4kCo gmBf 3HSP ZSfp kLd0iVHza +1 2 799.82 -563.76 163.30 1392.05 803.75 -560.05 166.29 1393.05 1Jp7c FTZN6 6pZL35XA k0xH IAFX xM6E gNUCiDR mGsD me2WBx oA1Zkdd EJHeCo ucpfs3 jzYz UDd94 78xJntX qs3Z Hy4xCP1HI +1 1 -294.58 -788.73 628.61 -344.96 -293.58 -787.20 631.86 -333.43 MfoX35es HuTe1qMs 0ncP xpvJYXqB rXxqSBJ XkuOme Ljqi2Bpa 88g1 0lMJ 6VUpU +1 2 -2421.87 -717.12 -323.77 123.97 -2420.87 -702.93 -319.93 138.17 soovQNg oVpw jTqF rc9U 3U79Zc WngmcIah6 GXydvCB yGvT 2LyKOU FoHSGE TPFyo6Q kcePQO wohq cMUrYU t91C ubvp Du15 +1 1 -152.55 -19.98 -701.81 -1038.31 -128.92 -9.16 -692.63 -1028.87 3Cyn 4cLD AX82 ECIu PahPHUz b0IVb4aN igJ1bvC1 uCBO bzKIS1UE Dqio +1 1 -527.64 539.38 712.44 -539.24 -526.64 555.61 713.44 -538.24 kJhH slC2Aqz pWrFmHEC si4N Ba1C 49oVW7 RoEkbA RtpKBu l1R8 ajiZt7Wy +1 1 -35.89 -105.77 -778.00 662.75 -21.42 -96.24 -776.36 682.91 60bZ d2f9CkNC ENzOiV dQpp RVuQI fEKA rEsR 3sHq Aab7E0Oa KUUP +1 1 -2036.67 513.19 1156.11 734.17 -2024.93 514.19 1166.91 741.43 TMTy7qjjW wKF9 xBry wi7U SSuP3rcAa ug9jwF eXPo M7g9BG0A qWJo YtByCbNkk +1 2 -1013.90 1621.49 1298.57 -1068.35 -1012.90 1622.49 1302.56 -1052.09 enCq 3bSv fmIX9 3qOt TRoL WzHF fCNF 9h9nBz nKXG u3U4vg2 GzKQ8mBsB lV3GC58D GGIUGF F02JdlN HagacgYX iZ3IIF jXDk +1 2 1001.89 -1930.75 -1662.84 -336.97 1002.90 -1925.14 -1645.08 -335.97 1f25 yC6K oGqq HfRW 9BeUnOq yL9Qq duttHMRXL pi1Y4rk echp AbJ8wYyg M5Glo SMD1NKcyJ jyCC E5XS 1BcD QAzV Z2Lbd +1 3 516.06 367.03 28.37 2141.46 529.24 371.95 35.40 2143.08 p9AH UpEg LFNi Fp96 dGUM u6cv0 jONL Nj5EHX ekSn OHPT JYiy8 HOtn GeLWL 3Qvg6y y9EFJf Mh2Q5z IKoJI 5xMnt vr5fQZ dKZBG E5Zr NFL42tTY p4bk zrA0 VRjdhM O2hh K2qQ qqgD HD7rUA JcK3jx ZcwX IhZM OMxW Pb9R 2Wd99 qAyjB X0y2E u8LqY FqLU ye8Z 97HB qyMD rGfA +1 3 1211.24 230.35 -492.88 43.71 1216.60 232.55 -489.28 51.47 aVci4 tI5zY TjdBOd iWyh 8ODJBua QaIL EolCK ot62 KbZWeo27 ZVMtle Lj7aRSu 39rq Vfit yQzGL Elor7 wiOl ktdb4 wFDl kxqJxoy4 YGzNeTXI2 uY9CTMh 56UVvxp5d ThaxjV Osx0g7 fODnzP IcRjz gQISU6zf K9Jum 1IjaZP ySFCnXF8 gbH4 FFJ5U LGg2 hLRro LSxUuJsy 92Nd Spu9 SgTFP YDrOD JDEtEqqiX xqQn q2Xm 34Xw +1 1 -1011.67 -746.22 40.06 -544.76 -1010.24 -745.22 41.06 -543.76 WIS1hON6 ch3x HiNF 5JRv l4yYiwDB RdXO7 HiEN YG3T8df HglN O7dSHMY3 +1 2 1081.87 -2986.98 1021.00 -393.98 1082.87 -2973.73 1036.49 -382.59 puMPb zTG0miRKW NUjYJ TZOiDKY 6hU2 s9pWy PP0fnfl WRZL Cd1FORhWj UtJA HDGET5 epJV eVNV OXqsh FBcD 1vCkpIk1 WC7Cz +1 1 -500.74 1095.13 -739.99 -1044.36 -496.01 1096.13 -726.66 -1038.06 vS6G JPJzwgOeV yUVLo3 e2itrbe 8ChP pwnfiPIh ftYrk1jse gcdV MI32 9oxRu +1 2 760.25 658.16 510.08 -82.66 763.73 659.16 521.27 -72.24 L0qJ hKz9 R5DF g4WA dS6O LhNc w1ddT3QPi hSFezC r6e4 RQ480qRy bWxnbnww 1erEK0jE A6lEXQ myZG mPmo yHnO l0xa +1 3 581.30 1173.72 944.41 763.23 583.38 1174.72 959.59 802.30 8KuK K1Xi p5yg bAg6 37OY Xj9IC9h 9V42 pV9o 1wZ0 rp9Vl6b ZLV24 KQOi uUfQ RqLit7d uw8Uwo A3jXqs6 Yg0c Vuux I5s1 jngZ feNIbef Vub9 Szwe WCPx 5jQDz OvPe 2YpVJ psJRjS mPeQ TAsXt Lpja XdI1GxmV nABjF vk2HqpEL byxw 9BysS uCIDW 18lGX1W x2VfO1j ruzy 1Bre BtA3 g92m6k8 +1 2 -60.12 833.87 227.81 -69.07 -28.89 845.62 236.29 -62.24 MFpht Phpy eh3g 22mg ArOg O2USq3xo W9U3 AXrMxz 3h7Mr4 KgY22OO iImv D9S7y0aT Ng3HILD fTWn5 s9KHfNim4 NDz3 AVaXlzJNE +1 1 52.23 -84.70 -901.65 -1627.53 69.36 -78.89 -883.36 -1626.53 sTBSBh 4DWcLJLam nXKK C1vm 2uVP 0sfP1SSv9 1MlX YMdb ElCG WjjM +1 3 -1041.28 287.18 481.01 -1409.89 -1039.36 289.55 488.92 -1400.86 0Fys T803 RrNt opRkK EWxYljmE myPGh4F1D ZOi7ngT u4ZdUHuk CKVfqHnni SFda6gf gGzJ 1y6y 0NgSf59 G2OT Y1iO Q9FE TGwl 2l1KeXFx3 vWD8 whq32Qaei G1qU IsOC eArU wfwYz rOHL A930ybsVu DkuQ OsKs mj5G lLa8 48J9 APiKOyHc3 rMxP brCF WNSQROVmc KfRj7rvg9 YaRDCAa8w H8HUV PykPoXi nRTPiSnW kSdeDfLX 3Yzrm XJNv +1 2 594.13 3005.43 311.22 206.49 618.93 3013.95 312.22 216.78 E5ecdAhH yjSuAiq 4W4m 7n3gKl 08Ob VrgcPDO rnh8on bi5K1V06 au2c8pop qqmv 5rqp sAxe gaXY r1lw6tXrO e2ial8n7t ucAJ M4NI +1 2 391.32 -966.14 -252.14 -506.12 396.31 -965.14 -247.71 -491.57 epNz c0iL glmdFD R3fm lCxh933 7tku QjF2 Ktgn UblU y3pVWdNm oOq8GW4tJ Vo83n vVd8 qj3nyb bQMB2XDa wB7B 92UX +1 3 2863.66 207.22 -77.02 427.78 2890.51 213.18 -72.36 436.76 vJxlFi kH9Ph8w0 8Yd4I wL5W2s 44a6 TkXa 73c3 eqwUQ 5o1E ce8NoG9 Dnkg m8io v6IBZ zcQ3 ZRqz hhXx vQ1p amKWA mbtf 7OEe ReiKDLg1 2I9pL TDEqi5YoA 1ZQ8eI JdlV vMW2 Ezs8LOxY FZOQf C8fu ZwHMR JFlQ cPz6 psXx dJQU8lqj ZVVr w99T 3GK7 1wf9 xr9Y6 nz6fYSO yu8t vGga6qpv Z8J9 +1 2 1709.49 -1578.99 895.10 -421.09 1712.13 -1577.99 896.98 -405.21 tV8qjKSnd GWOeOp4Vv jR47 o4Wv7ru5 xXCB p3FB fVPD ict9e 5AqF7 5omYZOZ9 J8sl jhiH DUSd vkZMt HqEgipk RQZQ fnmHzm2 +1 2 -1076.45 -1382.08 367.79 93.52 -1058.67 -1381.08 368.79 94.52 6m6F yLbJ DT1R7 dfDl0z1aV 0Vjs aod48LJy 59r4 YdrkrC gig7WrL JGPC2H NY3n81 kdyD yUZO YTBevkoWG Vb0D6JJK qvW8Rd 4hBS +1 2 -489.56 -2154.12 -648.53 -1417.14 -488.32 -2153.12 -647.53 -1413.39 j5UF EboI RMwD GylI O9Tv GVv3 ajgRgJ EvfT BwPR gI1isKUcm eVYWQ zJovd uwCn IDxY RKTM 16XR fxis +1 2 -6.61 1217.26 1389.60 1005.62 2.90 1224.57 1398.65 1013.48 Nvo2 3M1W 6VHU PMYrvCJ RJC5 6l2KIZYOj tjGS EpNre WGRQsU5au 5uJ0 9Ud6Qaj WfVV VzDR 53Qs ewBsvJr 9nWmkod fTsl +1 3 -2525.98 668.19 410.57 209.11 -2524.98 669.19 423.44 210.11 Z8qu mQWMuN2D c4GN hK6IBJ Ng71JhrSm q5x8 9P8wm lYzT sZRz e9zO N7EAusjql JhhY PLBoZBT6 jClEkN8fe BRww JroN 0MwCBfDb smtHt3Fi Hbg6mHH7p BYqK gwxP gdSenzI wDTS JhzE 7lMIdHKI 8eZ6 V2VjG6k sgezrzfuO pSBeu sYIILkO EW7z5MEz ppnT kqeS sZf6QJkXu mJ3u NE2P C1OO Dty2 3WkX KfTP rSg3Z KpEicjlXt FCwHn +1 1 290.80 494.91 -486.09 535.11 291.80 503.67 -478.43 541.16 Es1n sG67v mAFR Fgfw wFXl UR9d Gfgz 3Rg2 ieRHP8B FqWH +1 1 154.99 -336.31 -444.09 -249.98 172.53 -335.31 -436.56 -248.51 eGvw 0oDI LJWBZJ wmWV NdV0 WJ2b e0Bb gQWp9 NQB8l 78Cx5AFr +1 3 380.24 1548.13 48.20 191.13 388.63 1549.13 58.22 192.13 7MwbwD 4K3oEQ9sD wecauwv rJkX UwKjlDAVD jZUnzk3E fgBV HakWWfDSg enpuHj Bbki xL5k NeeD6j 7tuurzs 8435U fFhQPuZ eUQyq 7uRN3ul mjD3 U4G3 Wiw236j Jd7w HTyq MGyc HC1e ysDSnZ 8es2 9nFRY H3keFtYg U1l0 FDY7S zIxQfg5 CSsw 3RNc9 ILNuc XkwZ hHxaOpOxZ 3pieqFe uuDo 6m6j E9qUQX0 iL1LXg iLiqEC dWDc +1 2 2351.16 807.15 -858.28 -33.20 2372.18 808.15 -853.42 -25.41 DEYN ctJD A2UU 6QaL hGGG 6ASd d84TgA tzpo eMKo g50eeS5 6wXk xB24 8LYxxA mFEUH gLhI xpbDeOGl7 e91VTwBQe +1 1 -1252.63 -162.53 1212.98 1565.89 -1229.08 -161.53 1220.52 1567.49 Feup yjqW RV3CK FFhP 7QEJ 3QMl Ic5ejUEbf FJkdVCW 8dFN UaWz +1 2 1962.62 1745.09 -268.78 665.00 1963.62 1752.40 -248.15 668.09 x0qwTy RXg1nu IDgrAY dDud qLQ2n wX5E A1IKYWD jwplj hq0C8 F67fbWeY J4XjI XunevwoM aGD1z 6RZW yhRSyDCEE NUnc WqG9HdY +1 1 935.86 493.33 -177.56 -514.43 951.99 518.91 -174.23 -508.41 yRf8uCW 312gZ Vyn8 HSie 6plV 8YySX HsqDJ ilC0 VdigGkd zX7p +1 2 -1509.69 1985.33 1114.66 1750.71 -1506.67 1986.33 1126.56 1751.71 TqWa cSjQ LU5aD aAPY oCMz aApd AluT x8sy qqCl EhGb 1fpVoO24 bbRtys V0PtJcr CLY9HQL BmXbv nLwk 6P1Z +1 3 911.30 -1340.47 301.87 1325.69 928.50 -1326.34 308.26 1332.93 js4edhJ9 Z20x3 ptVAgl sqhZyo QW1USgie0 Hd9tks GHrL tCblLEp xQXvB DtCO ULQZ HgYWB9A Uf7XYWM qSDe Ayl9DXI BZDn eIwI WDe4 Q6Ci LNcj 9i8V gTpZPshF xROV hHCR57 sLTSqjwNn wZTktZ Gyx9 FqGA 4YO1WL vimd97 CA0h NX2c 7ENa 5Zqk2hVpr KwS6 kPgkFHjWy Mhzp xRYzFch0 oHGenC oQb7 M3ZuH5 Xk9kJ1 W4WE +1 2 161.21 145.13 826.73 -111.15 162.21 146.13 846.68 -110.07 utyLD bIS6vQxLu glGZCiDN dqTX QXD4y6e 3V6gj ynYNjEST 1f51I4fA Mp10 zFuOdwJK xremXyO5H jZH2 I64e xhJA R42H gDRzxg q4ci +1 1 63.90 1220.35 439.34 -1395.06 64.90 1221.35 440.34 -1394.06 i3dP GuOl WOBxZD ntbO aKkAS fdi5uG1 cs5HHs2R Cb8n yIROF XAGL8 +1 1 -1981.64 617.74 -2418.81 -1461.99 -1980.64 633.13 -2412.59 -1460.99 K0nHnwVB WKcHNB t4C3ZRz5E DHOlv Bha8 z4xX HDpdqlShr DeZHtKgV WIN5SZB l5aElHHNo +1 2 220.33 1315.02 -262.84 -2406.58 232.19 1329.68 -255.66 -2405.58 NqLD OHhN kTZ8Z8nY 7syquYnr pnjo qY2t KIpu 9JSX OSTF EIc1 q6ex Lu6q xH3j QWIE sjaoVka 3hlZx 7DPL +1 1 636.10 -296.92 176.17 268.87 654.06 -286.19 182.83 274.43 7jdV pnLhvrqIH oTtAqr lSbqMos 7Eg9 OPnP J1LbC Qmlz33Na wXbZ WqqO +1 2 -291.86 67.79 -1788.60 -1954.06 -282.31 68.79 -1787.60 -1946.49 iMDBV4 f6nn hd09 zo2kBwdy r9FJsko70 u1wy V1zqYl3n3 cbOzvO8x pphsRF yK6Jcy 62m2 s4yOs lohIQ0 H4w5 7Rss cqzs 3uOKH +1 3 1434.46 1408.89 1614.29 897.55 1443.59 1409.89 1630.14 910.64 0QZ8K3 BkZwiNEwk AkAC ygupGzl TgNZbYWy fFsbg qxTr CryM Y9jG zwYU 1NG5vK Hu99L nHbO o3vJQII UDAs T4fA5iMvA W9fI XHQjQ oM4C pY0lwtWp Oaiw Zdr6Fw tWGc 2wueimu KlbcMt GgyhlGMbB yUcL fqeG niieAJRP3 IqcN BQtDm tT99XPEn midFpdA GC1C XJZA qVUeD dI5DEGus9 s1aX yFPh E4mggZS3e ZZNw ORdW gLfLJh78 +1 2 -1106.44 1289.74 666.51 316.74 -1093.00 1290.74 667.51 321.02 enUpdp3f8 AVzZUga1 hBtT 6joPP H6Ax f1xi 30MyUI mqlB ikSkNE tr8HF0FLN 7L4K WSLx Z3o9 vtiU BefQ2S1OP 6ZKu BcnmxNRk +1 2 -681.74 1487.64 -462.95 -58.05 -667.71 1488.64 -461.95 -45.11 09fK U1Zi JibfAH zPDHtt 1Zz3M tKU1 yDC3up osaQ2ULM4 wPR5 h0KBv1 0GK3Hea e6m7s Fqll Z9zvUdy T3nglM bBTznJG97 BzXu +1 2 1444.86 -338.44 -268.17 900.10 1445.86 -337.44 -267.17 907.31 yJOAwemB CIy2 INLO WXpI P2sC5 ypmT10MXu oSJ7 DPs3uSdxm CnG6H37 sYWY zZ3mgCFtF e3hlKO eo7D lYOU y4qm FopTEOS RgHI +1 1 -523.26 -1790.66 -872.52 2068.44 -522.26 -1784.90 -854.50 2069.44 347bDk BBR8FA 7g1qtU GiaPKanm 0WrN WVs9nCJA y3SHFvGz7 56T1 JL3tZNEqm fsGb +1 2 897.75 -920.38 -574.52 2916.04 898.75 -898.17 -564.64 2927.19 yQgH M2ZB ouPcZEW6 aeWTtRa F6Vj Ae0Ol4 EVdyRtis eSvmD9s FIh0Cv XOntjq dmZEzvs7 vR0R fqOo JWNYIrG VISx IKYskK5k PPyw +1 2 763.43 133.53 1003.26 58.97 780.04 138.65 1004.64 59.97 3AO6 gfZF wpL53yxTd ocLq sRKz L9xj G6wn rS65 kse8aYVg IRYqs HELD ocRp 18wPF0rW Zby0a LYxMJ Ojoy nOuK +1 3 710.50 -464.51 -1370.50 -1959.52 711.50 -462.77 -1356.38 -1948.48 tJb9oA ODPq JunvP 42WY X2df0TsH tS5TXf6A ABUj U83l utRCCaZ3 liwT W6rOCshjk JkfTsm cZr1LsasH 47qUKFI ndE5 gLHS jdnYn2QCO S8hD S1zA kGAx Q17e P4ZAPXX6 WvFL YPb9 WdNp iNGS nyzU tSOPJbe 1yonnZkw lzUjA PuHOk T3Hoph0 60nW0wF5 BG3A3Lp q3NH I7XB fddg vuYC CpI8d lzYcHY ZNoix9j zl686 dmg3jfh1 +1 3 173.08 -1235.73 -612.61 -1804.94 174.08 -1234.73 -589.26 -1800.89 6enz0d AeVdPcm pmuRPir6 5r1TqL zRlB XVNa9aG 5V9ZMv GnLFPCtrV 9wtG eh1A 3vZ13s7 DQ9L vELP1gLX3 xzx7K1YUi 19CGt TSktknm opya l1ZpR VDGK qh8H gXqw Bx6WWlHxP 1HFj bYpHY0 ycc3 ozXj ZUAf 74791D82 WhpY 0vMQ Sr4XM r43Q b2oh2m0 2e2x CZgF Kj9t Mfjw p1yZcT0M xaSv iliRkIuK SxrCgbb3 aFCtv7O70 BnFe +1 3 984.17 -1995.92 142.29 1401.81 994.97 -1982.57 143.29 1402.81 TkQdixFH 6RS6kiC xdXm tUyrLJre l4s5 Qhk3 MujSIirO KFGL efobv66v 5hC1Lg0Dx 7SYh QUyZ tzmm NxIX 1BwIM8GDu YdZt FMwTnccgU iSv1Z ItxSbg oSWx 3q5l PrHAeZPgE 2HjW PJZq iXJ5 ZfEl zDCvvs pqI2Sqf i7ej GfxO HOPK NcuHbw Y2TX CvlH pFY6pW UP9TC76r dkWA B6vo Kqri po6tLDt T1Af KCzR vPXVtEo +1 1 -491.56 74.80 1383.49 -806.97 -485.06 80.31 1406.51 -799.93 3Wqw eFGm HqGZ HsgR SINKywrw VbUX EYw9 X5wR1GHWV Z8SJLT6 KZWH +1 3 659.01 -2239.38 636.26 1993.89 664.66 -2233.63 649.93 2007.56 b6Wy rksn A3DmmxhdG CwDT D3VI T3M2 RvgI eU8LC jslK WZnr q1hl MCLD2m msgZ URbrXu5p Nj8h TNgv WcMj 6rxrlWb b70xLj9 mAP0 kbJuQ1bd6 lh7y2ciFB frSUBw igOC yURB zwm8 41CO iGmg o0dn M392k xBwX EJhm J55P KiaG 8Z4n YgtNYcv wylGmTZfW ef3RlG bodv rwDmEi zYhT 14i9 XJcM +1 3 481.20 -179.15 606.54 -1425.72 491.91 -178.15 609.48 -1417.38 gBoA1Ij V1PR 6BN9arJ txbDna3U3 pXQQwQ6gd y9Ad wdxUR 1IYcZ0E ivTIIbZ ZCn8 vEmU ZLfy tlG2 wQqD YRtLTb8 eXlNuiqdH lPNN gyEM uuFa Geo8 9vJ3 qz1uJ7K3 0F9uD yi3vrLJn i4HqLm k6aY h8mf jr5U yFWov JIcG 2RKv W3gT sqJE BvhC d7Al1bE 0QMG EOgo zMvZ 6sp8 D63nkq WOz4pykdX rxzQ EwMg +1 2 217.36 459.17 929.77 232.50 238.22 460.17 934.86 233.50 r4rl sLln iRED 94U4f LyUT0M 0ucl f1QX lWL9L 60mg SBDN tcUa AiBS46G gVqg Wk8WSH29M 7kzF pKXQ RdA8 +1 3 851.56 -626.29 11.05 -106.08 852.56 -623.47 23.88 -105.08 ak1E VWiri x1wu rZvQqVbu RWRRU1 kYB9Z3 ypAq FeWJ32vpl M0ibOXU uAY2 fvOm askn6u tcV9 hmho XDhINiR q0RO cKF1a CoaY 71FI3r8 dT9P c4Xv9V HaI1RkAc TygIsb6MH Hk0H pNun SpV9O yGyj tjfvNExND QroQWt6LE SUsuO RqcEC4 SxJS WCAga ANfD qIYC Q3GQB vb2nD yYefv 3aCB C2ERNawA 7OlFmvEvN tVopm20 ok1c +1 3 -1264.41 -509.78 -526.60 -660.23 -1258.01 -508.78 -524.91 -659.23 LukGz LHle s3RlaqQ znYc 73309fw mWOq66 FvJvfJG tVm9 2LKk 5qIX jttf fYTx 2jCM VixigQCuS Suwmp dPKN xd9X SMX3vp2i 3Pi6Ip Q7hr ldtH wqvqQnEPG O3p2rin MTpM 1KHpq ZaVF HDlX htOF hrLo7B94U B2ik 6Mth opfHOTgu SewEPsli KwC7C9o nYTvbIQ4 wd8u ESSm QoGQ owqq SgZj zx2NM jzqv zAWHxXzTC +1 1 -1137.59 823.73 -90.88 -745.73 -1136.59 827.61 -89.88 -740.54 7Y1gMBet t1VJgNUZX vTmf BUT1Foq IzOF NHvw oOPlQxZtQ kpNW syzP M3Ua +1 2 -1868.34 -1614.93 342.90 -408.25 -1867.34 -1590.76 350.52 -390.85 lyKUH3N8 52HE C1KLhlrB IXrN Wae9hMa UdjWS D5cLeh3QA qrGfCzHhs bfitr jN7S YUggiI5 LIG3 ahxEEDJ dXunHkZw 3OKhXccya kD8k6P7r 1Fiu +1 3 1233.92 982.26 713.36 168.01 1237.20 1008.86 730.48 175.13 Q3vItVi6C 9uJu KlCH q0iS 89R3M1r4 VrUrneoz 1vywhxhg ak5UnLPK lK3a kYFKfcdiq tpIi 7E787384A zI5c kwu6 vWSw ELvSL J2Xu Z0AjkP NT2D yBdi sorc x9BiKe gmpjZOj qYEL pChj wXcl CNmu poHl YubXIenj PJeO8Gw vTo64P 2vJ9 lqHl Mze2 eTUNyz YXVU 9CBACRj7 f6S1 leOe CjZp8rg6P rvp5PJiYm nw6I8 Sh4EXgVeI +1 2 1130.46 8.69 -1263.80 144.39 1141.38 9.69 -1262.80 162.63 4vbn WuCEQRTv P81Tx6u tEjx fLrTY GiwYeFRIp c5p5qE gmNuAP 4zVOih80 IZNC 4ep2 xLl0 5CgJNcd MAZs lEgJ k3SY vk6DDpCPb +1 3 -139.09 -1295.13 -169.31 -1687.76 -138.09 -1294.13 -156.61 -1679.98 QKbJc5y qf2qDwWj K4iF S5k6 47jj Hz3u qQTYy7ZC 6gsw3 662DM8V YOSM8YY0m KXaONLM fRHGHhI SC1F Ie9fSk HTMKyAk fTXP Xwor Fmd4 MBK4 OR3tfYC 7w4X RQae Ga1e4 3nde aJXFTRJ 4JId Vu5U8cU 7nhy6o lBsc4z iKZRZfu Km1L4l8G BHn2bM sPgx VhOuN3 VQI6 rRn9cd2Ti 73CsM 5Utu B8y6W2i 2p3s Lf8w mO5o EJJF +1 2 533.53 -854.77 -103.63 -1756.47 539.94 -840.82 -100.33 -1755.47 5BdK4aO oo1w 4vDguLb8 9PJ6 cUtp6I maValA3p 0yKA vgMF UVTqMuX 9gpI KEXoyK QPuQdq TwMV JpSi bWCe rn7Z n1eT +1 3 -1012.31 2527.66 383.89 -739.05 -1011.31 2528.66 394.99 -738.05 AfHg wXDLqsZ 6TsxJ NiNLBO Tmsz Uf9U ic4q pMRI hYXgl6 kS4ThKp cnay7sE gitIj K2ID XeKtgbrP gknz4uQq3 QTJ9taJH0 alVjPK qc4mf GmOb EzvXbzq2T 7Cix pEXn Xb2HqY 4qja wZxC oQvh u4Da8P 3oUt Fj0d NEUeS EOcFz3q muzZ PMAK kVmyWPsNk PWtO GtoKijkXZ FHr8 5jo4IaYiE 89uFxhhU 6BDg2OQDp xJsnsDLo AabU6w AgKv +1 1 542.51 -1157.61 -945.70 50.06 553.99 -1141.47 -944.70 62.92 VPPtE Dvah k92B ObeU VIGt X8Ie Ot0xPLLq DZiD PJnP 3XFK +1 2 738.48 1372.96 -459.32 866.43 739.67 1373.96 -458.32 873.97 ei472 gDgwQ pAU9 heHmn kdwBMlOv tWJI DyPEPezeX SVB1 Kn9x pCon 89Q6M25Rx YHCw u4rWaFK 3SNJd8 wCnJ 4QtL bmOgpV5BM +1 1 -643.42 -729.70 1325.12 -491.18 -625.26 -728.42 1333.27 -490.18 dA1E QfoWX mVQt c0IQ hK6a MLZdV dhWb yEdQ Ua2T DcUQ +1 3 487.67 881.24 562.06 2935.54 492.61 882.24 568.77 2936.54 D4hM nlLd xUrU nB6o7Gc5 u1ZQ P6RuaRdg mEf8 1Z75Ovw 0QL0 1wuV toMo VyoI nq4K IVj8RAdA ALyPIh9PL 3q8NCXZRB KoSexHj vhoz 2mqQ v0o0 F7UF wjxmJj gVNU Lnf2GdYJG IMBmJ 2bB5s9 O4Yf j4keze kCPC2JWZm HQczGv6 zcmd disaz 0FhL U1ID foUohZyo4 Vz4oWlOKt YiSevVB zIcSpEZzL CmhpbF PmnW 0ymg 0y8l gLe7 +1 2 -681.52 -712.15 581.42 166.65 -675.06 -708.19 582.42 167.65 pu8e FkWu Xcj5 TJOx vLA6Dkucm pdi74Y IxMJ LXri WulfAOrhb 4vxq MttD F8btgap UDoe kiCS zi2m 09Pd 8W5hGuDo +1 1 230.50 -564.36 20.51 1385.77 250.84 -563.36 29.53 1391.94 TRgc KOpI Qvke4mo3G 1NUXHn a8kE3 WOkR XgI0 EZ6O f2Ggc9 ueQUdao2 +1 2 -356.20 -1182.34 57.64 -128.30 -355.20 -1180.37 58.64 -127.30 cJOL MJRg C8e4 XIuaD I6iZFMcW AkuY HYqs nydS AawY qpdV m4OUd1cbb a3Og ivAbCNbc 6PTaPaI YGFs QGLo Ss9TdE +1 3 925.46 -13.47 474.88 -1238.07 926.46 -12.47 475.88 -1237.07 nN2e fktQB hof9 cHUx gW4XLEyv lDjo JTTs rZPYGNj 1PSJ bdXI iSAusQPRI HYGVdoAkc lrdu Y40y IY5N FKRuRd1 DmO3 20EGDmh qZGH LykkGpll fveb fibcdr9OC Tepy N3n2 A6Ao wfOTwirWt L7iVgw eDpfH1m KWceMXCn QM4b4 fQrw bfysO V18b6 IZkID4 UUu4 S3rnV ZsQn yIY07hFs IOk0 BwFFCDg imzM rSXks wZi5DyC +1 2 1603.30 402.22 1189.94 -1637.48 1604.30 417.87 1193.31 -1623.50 F8lc SFj8 hV33L0ey FfuBi0zhm 30Dx5Ja 2Bsu Uyj1 gOX2MkpL eUl0 lynH A3Lt cN4S OpQe nzDMr cMNd 4yCriYQ MoBz +1 2 -346.68 131.00 -211.37 837.86 -335.66 151.41 -202.05 849.43 rf0X l7VFH i30skaqa yI46d6in8 TfZT sYPMv JfQylz6 HyL2 TQ6K JdFv MaDA T6yy7J5A SdTJbey GdZ1SMUhI 5MbC E22N hRCe +1 1 77.17 -952.89 -1682.70 -1817.95 88.09 -951.89 -1663.12 -1816.95 r2zGpnw7D BNl6 welI iHllMRB riM137 9yQj p7Q8 EduLxl89e WjDG 5MJNS +1 3 778.39 1723.67 -1701.16 495.58 801.77 1729.28 -1697.59 499.07 V9kXgL h9tKrwL cUJdccnk jzU8 M5kJ D8e3 2QCC repo rE92Z5iv SRLB MVUAwYW JoT8 jc94 qDJVY DVpN sNhtYy eOuN0x9D5 0HL9TxQ YkxZyQC YqkE aPVC FtIs Dac2 HkFCROF XCIA 65Yz8bRQ EAEnR pER1NMZMh ng22T TqXye ZtveiW4PV Mwac g6PseBf SlkN J6GjDQB6Q ToaGX XogLBxr0 H12SHSSF2 tqX9 rtDY prVLjwjy iXvQ Xvaf +1 3 937.90 672.76 190.47 932.78 940.78 691.22 203.92 938.55 UxNN QfJU21i COW2Psh l5Ws wWFcjREU LDEwW dKen 4LFd J3As 02Tiw zasG blhG sF8e ytiOmMiO rmik dx7C m7r5328N rZSW ghKH wetN MVfb d0t7 dRfp yhot cYIp CaOS riqM9q26s upew y8zr JazD ClKoe3l6H P4jUkKUI HpWy xdNrWT giB422R oIX2RqOP4 MlDm EMBk SeSX x9nVVB1 rOzAzb HBpa maL8 +1 1 -334.65 -129.75 -852.28 1059.59 -326.73 -117.27 -839.86 1060.59 IaVMGVuw eKgA GjoB4qC 4Mxv 1OTW 5G7fg1eiq spOI SbEbbAEi4 ZcNk 0rId +1 2 633.86 129.43 1144.99 249.21 634.86 143.18 1151.52 250.21 AERN Mhso l5AAZmO5S zjaz 04h6 HrhE zttzt ZjqX kiWh 7o1i OoII1k8 uhK7aRe3w 53d4 ceVTlDg 8iUqJ pkOJkm WtCAs3Um +1 1 -241.63 422.78 652.81 -1603.33 -240.05 423.78 659.27 -1580.37 a4bK qPTu Ia7Mutm ebSt lp7eS9GM 03bnrpc 9mkGS NOJXrdCEJ 2eZXCI17 zVIK +1 1 886.67 1575.41 892.11 473.12 891.33 1582.09 912.10 498.69 1QH6cDc6 krzA kSAQESvvv CvxO tHCB8HVL0 dPer LLtF o0jH UIO2 i12d +1 1 -1209.23 722.64 1350.70 584.28 -1188.10 723.64 1351.70 589.51 MHtdbk 19Bx oZjC XSRN AZFu 06qaf5 0yPv dT2z lDeOq eWTP3 +1 1 -143.99 -611.69 602.18 995.45 -133.80 -608.35 603.18 996.45 8BCA YOuF ZBHe m3vV 7I1G mJJZ eh7gqU68z iOAzv S6XC7hMn 31tcm1s +1 3 217.94 -1708.79 2576.41 -482.79 220.04 -1707.79 2597.13 -472.85 vYtS VllAG ArJGpz kmHu 0x0M 5qUxhZ1 ysk7epSf KHHMj KW9j9a21 rQzUZJk FGvC dEI8 7ELCs2N0P Wl9t8V7d uJ8B xz4a50Vw 6PaJgJ 5l0v Fr3IIl 6Hgck x61f D4rK j9mq mJg1 5j7eN 5aMT Yqtd 7g6Z aF4qx zg5raiF s2RG rXo6 CKRm p9yTNEZ 32lu IX5Y UPgDBMeAo CBdl H9PTrYv PFQ2 LKEb474QU YzXRhT 0rFavvU +1 3 1602.84 1237.49 1211.71 1028.24 1607.26 1251.98 1212.71 1029.24 lbmKI wyXz EOwOEr e8dY jYmZ VUAkGKly rfWypUJ8 bVQO BiIYtU qeWcKwWv4 qHwvlX8xV Speb 9a9pn1 9CZl K1zb xyugsq 3vU3 5OtZoLx3L SAuB NohQOOmGx eDNdQNPi gKXPg M0EnUMD11 gTjf OrochN Nll4vB kT32 QoNyB hXz8 zmMKX mAYL XdbJq Lr6vqWB7w aUAG UVpRPipqX dbIXmMr qUoIUBWsx yAjX PjOD DCXdUB6Dm gwUd wS01s qIlE +1 2 -270.55 1185.81 1307.58 287.12 -261.78 1186.81 1308.58 298.56 lftI rMgz8wjWU CBZW OAF0 gKLh LZTo fuQnwtr 2KDZB jFz6 bKsQ INxGgZ V2MD Yn7zP44n FZ7kdOO5 0v5X bd7hyqQaW 33Qn +1 1 199.00 -708.08 971.72 2282.99 200.00 -697.55 977.21 2298.46 YeuU NbrnFRxQ tgHd ZlVb PeS3 kTbDMt7 KNnT Jz8ofD 5YbN3 TNQ9rFQ +2 4 -246.886536 1 1693.352295 2 254.110260 3 -352.829071 7 324.441437 9 d0x 10 Ppn 11 I 14 t 17 my 18 T6 19 wIs 20 gf8 24 G29 25 tcq 29 6 31 X 33 GDa 43 5 44 3yX +1 1 1622.00 31.03 -1547.76 -810.97 1639.70 40.93 -1537.58 -809.97 gq1qNMj3 Uw4f 8x6W sgSl1 I4EmrgH vSdb 75uy bu3e 5Xxe LLDc9vk8p +1 1 -1571.68 311.23 710.95 1193.23 -1567.95 324.98 714.70 1201.24 DymYE imVg 1pzVBalsO LUdYWdFfN s4Nd 8DZh gXvE c7Ea dK98qz CjW0 +1 3 771.22 1414.34 1191.87 -194.86 775.44 1427.50 1199.26 -193.86 A7FL 6yZ3 AGIMBDqX QlXuYwGpk pu5Z hUI0hf4k ZiH9 YFKepEjcf i2hj7 g1ZxudFn yEzhnW3kG AWz6d8S4D gtyL OKZdj x3zk1E HY0Mqo3I6 nHZUR qEXy llcS POKz Q2fB S7SUlk4 MaN2 Yvh3m KXP0 pORN 2sIo bFEtR7Le U3H6 J8kM czLyAbRjS r0SP R0ZR 2Hhmrgjx PaAh qg1kIID F7Sv l4p5 S70Q0 d9n3h3 leUB N9Y13 I4UB +1 2 -202.31 -268.99 -1112.88 1447.30 -200.40 -265.67 -1111.55 1466.02 fuUC8 CDfx GgGI dothrcK Rekq2Qig qKtR 2Cjk 4V5LytS06 qONf4 7Op4qU VTNm15 7gXd9lrBs FQFOznbws MMvkg9N bTVB7 DV44 ZF6sW0V +1 2 771.86 -1335.37 -150.71 -834.47 782.01 -1334.37 -131.98 -821.56 4IjYY7GT XWax QMd3 yoCu cateG7K Y3YH fWXvcwNhj XS5RCW l1xV V93z5ME4C qImtQ wefV Kxhv dtCw rt5V DSmq CRiNDU +1 1 344.63 -1250.00 -1641.01 -1392.62 345.63 -1249.00 -1631.73 -1383.86 MXFa9C Cgzd vzCy QS9cXnkS8 8YVg pT40OeR SicB B6BBmmr SlOvkQzn0 5rHhl +1 1 -692.50 865.00 311.39 -490.83 -687.21 866.00 329.71 -486.69 g20P t9DC bJww DVln b6iI CxUpK2qak ml1tTs O0oX lLnd 4gcyy9 +1 2 -998.40 -132.72 -1450.52 905.59 -996.70 -126.35 -1441.81 914.46 2IaD8d HJuk YQK0 lRxcKvqv qOwY YN5Q lrhh 8QlUdssPW cwq2 X2HQkHo 2Pca80wG 7DrE Lhfa NFmKpyTWO jLJwg 7KI21D 0Znrb +1 2 0.20 -34.34 -673.34 -862.57 1.20 -24.56 -669.81 -861.57 fOLGxds4D 0jHL VEYb HiBpo1 opFPlq DAm4 6QPz ARKyNCl RFPrvK3Xb OZrQ T5HI QeRk O3poxRS 8CZeJEEg bBZC fVD29ptV Osdy +1 1 -1514.71 -1807.86 1215.72 -170.37 -1492.80 -1806.86 1231.81 -161.97 qeIf VvfiFmtkB afWEp irDa K7Vk dWyHmD3z lLun UKiT vFDdn4JbO k9Pb +1 1 -25.58 -499.82 -1217.87 833.65 -24.58 -489.79 -1214.26 834.65 JzVZ KjpjCOt SB6gApb 2f1I9G nwAq E6qX O0EN5Cz SOfG E2yLeJaKF zD2q +1 2 -302.27 268.51 2535.24 -274.50 -284.96 269.51 2549.36 -272.88 dK9TmmU zwyQ LOK8 OYNq ZFFDn 0MfV 4UJd Jv9t GrzF iP7v fnMR g5hcR pHIV K6qQ 3HbwDit Dc6B unPn +1 2 -536.30 -246.25 -1443.58 439.47 -535.30 -241.95 -1426.22 440.47 NggX RekLXji Mwpdc 2zYu QJOw BpL3 0kp8DQC yUKObK iuChV9IVL XMod jsFbzau2 HX8vFV 7AT0NjNP Lyys JPZT Fwrmg LIfksaB8B +1 3 1350.46 1038.95 -870.54 1535.55 1351.46 1053.70 -869.54 1551.17 m60N zCWjHdVw 2uiHMM hVYH nQdI Bj9R IMU3 ty86 6jhRiBar xtPh 2xjE NUGQ 6M3u 2YDst5gTM LQWP DyS4vjnyV O1ec zFBli rVYn4 2h7qP2 ZFWh 9yR7 IhpO7h5B dG15 BTFkb hU8tKlbEn EbOp EAcBJa Wbxi p8wFM6Cs 3ySnC1tK R90925B W1Ta iVjweT2 3XjB xAA4 bOuO GBCSrTVK WGQm smDG k4XI PYze ekaLnx46 +1 3 90.55 -88.61 -205.73 -131.75 101.60 -87.61 -186.45 -125.00 Ysf125wf QUdn63H6V 1pqU q38QEWMWN gwNb eJgfw bJWv a7gWdJ9 Khm1 P6Pz QSwGQOCg1 ZFxBUS Cvuf Fsg6ZNQ2v mtzPjW HZM2 qGDv 4whTq 3q5l PUmV jcexOi ESWrQMNq mhebacWIg 2Yeg riBMP xPkEuV S21Rq5t4l 0eJ9 QZHQ YL6d4 bMe9NCw TeEqc3QR 0bsjMw5t9 NNKp3XeIw a9tsJ 5zuD EhxKN G8Kt7l vY1UMpUny LBTuHdWT ah5ik9 YxuTf Coib +1 2 576.80 -339.59 15.78 872.65 581.87 -324.58 24.88 897.76 BACmVy BmaA YKaS68Q9a 05xa J4Ze vHVo U7qy d4cw DhNLh rW1X lRuP nHaySd 9P8o QgHA Dccc xYPBpb3 gydQ +1 1 1178.41 234.45 -35.23 363.41 1185.01 247.04 -30.19 374.53 aVNS BUL5 VPQW Tpjya2 WMnN 0fJku 3w8C 8SAM 3Hwidv8bs 3NrvFIa +1 2 -916.22 1044.63 -640.65 -866.73 -898.48 1045.63 -639.65 -854.45 LXnl BF9yfdy ACx4 Ewyd iEdnCs 00aaFyo 1Q4w aL52LAB ieYuqWx pVZy vmJXd ZU4I yTLXKjr 9nTV aCJKJZHz fEVb JAp2juPn +1 1 -931.92 129.24 619.32 -1179.31 -920.54 143.71 620.32 -1178.31 zlmg bWzU9QqMk Cms2 SrsOOlP aGsyCLUf quzh Knew sP9w 7B4dIEX0 Z0wj +1 2 297.52 -286.70 -509.58 -910.38 310.32 -263.26 -500.63 -908.12 zxxh xa3r3uM9b zVTYW GK4W TyTHX0 IOtI tM9xwvSYy 8xxR 9M30o glLhG WDlB n4mUsb AlT7 k5W5hvA mlp9dU 3cLsNcjtX GiJ75N +1 3 1776.83 139.35 -853.36 399.41 1777.83 153.20 -846.43 403.65 b6eJ 2GzzZ NDej mVzT mziKb0z3R Ibdh 54cOdfQS 4CFTpHR1 USBL W2wp VxvN vEu0 SQ5T GgDuh6 6Ssm7wIg zozV lY6y7 WPTZQFo RPwIMrQU DJVKE 0xOg Uy4HpmF y72k pDiI mehoAbcz b4Qc Wd9YL huNZ RBbJUKQ 9wLd3kf KeHsr5mPR Sji2DMB 5KhG m3Hu rT4iUVF 9a41A h0DdZkx v63AgVP7T 53sVc fQp9cLZJ Olib iF0o Uhx6J +1 1 -1376.98 -539.06 -53.85 -1925.11 -1365.31 -518.27 -50.83 -1924.11 bkpx UaNCXrCM F42V CM4m0yUV njsW chfnE gxcs5H6 Ks2W bapV LkVrM +1 2 518.09 -676.13 -718.90 -1421.20 519.09 -663.86 -714.13 -1405.83 2Ubr KSY9Z L0JN pqRH 2xVS gZPw qK6W RJSaW7K l6pR 2nBHh 9Sdi 9hjsQX58 2r6Fu M0W2 pwUS 0v6945FKY X12u +1 1 -264.91 381.07 1011.50 -421.02 -255.16 382.07 1031.16 -419.39 lcEj C9ZJZiQ fsQmf srg9 FKtBmsgsR QYDz noLODIXzV KF0c40H Y0XQz79T GQuN +1 3 -527.21 -396.37 955.96 -1159.14 -526.21 -395.37 956.96 -1157.01 9UfGAEz KCBCL xi5w VVEinlybr 7Q2Ng6D jikOh qy0s B80A I96BvCp F8ED aiDI juoO JM8EgCa CV4a0 xrvw VTJFG mdai7LC7 YL0Kl6OX PgIX vbT9 OxoA M7aL2 ktc0 aLEsz4 zEqB2POM 3AjJoT OQfm 6uFq1kU CqO2 zb5o As8AQsBOj g42S xccdS53 VK3PJ PnlGux FawEFo NE1R WoOf MYL90pkh j0a3tR7 O08M GOEFc gVTv +1 1 -1666.13 1735.23 1023.08 356.30 -1665.13 1736.23 1052.74 367.52 yVRNNV2 dNfC7 7iKFrv ZqdH 8xr8RE JF8s yjQI 95XR RfJD WuwL +1 3 21.55 -1045.72 -1584.25 -93.19 55.61 -1044.72 -1583.25 -92.19 BLu64UU NIcPK bOoc Yk1SMi Dhh8 3Uiq fAGJL VhH8 RBof EBxT VVUiK zBXD5 ysxs 44dw nyoQsz Zvov joTLC0sJ1 EoQs Sxu9 FVHdq 14v3 67lf RFnRU 4gOujuU KNlc xEhV ueX9OoxkZ wyCRXZQ z5Am U1Wp w9Yt wa6Xg TgD47kmV3 blCq q8UhQ7 hRWXt5Ur uuUM 1Hwpf S9uq 7gdL0N 5Ofh6e 0gklTv scODU +1 2 446.65 1368.37 571.20 604.45 447.65 1371.19 572.20 626.14 69dq AJfB gMwhQ7K PCmzT4 dvjV IcGY G0V8S VeLo d9vM BR68h0hW ZNC0 kxLlr1Ze2 qfcmj xYgkLrIp Uwy2ce paAc alg4ye38W +1 1 -142.77 -1656.98 -453.66 -612.62 -127.56 -1637.65 -452.66 -597.68 3Czi R83fstkg1 fwB2OmI fXkjtI0NK WVgz zKg6WK6 7Fof sh8KVxGdR 1rw2LyoLW tvTm +1 2 -1109.73 -245.15 1318.24 375.20 -1094.00 -244.15 1319.24 376.20 ByvQrRK Wpjm dDcC iHJ3e4 DNjECX FhSHRJ epWJ DMLk o0L3N OW2ZtJOU cRZb heDBuZm wNct IrFV lLwX RwZL 0ngl +1 3 -238.30 1941.29 854.26 -162.70 -235.38 1956.59 870.00 -137.60 ENzh Nbte 4I5bF NowQt7w5 Tq6q Pp7sr XBXk il4wxZ6M bOuH1rkxx xJL9yzL IkS7jT Jh7q p3aY SozBoxMD A7jRakDr HDLvN6DP LQHDPpce 2Sb1xJjrT 4wu3 hnsq CHD9uc9QN hiFS iwqu uX16 3HXdX 7EEaPZu 4Il7 5AQbWTmwG ZZjN V9i1 sz5MpbIT QD1RPCH3 MBqw 47ZDb srRDlhB PAowZ S76X7L0 RWlb UdaZ93Sa hnmDYA 7uKK wflAW9 ivLziSHO +1 3 -118.55 742.43 -1270.86 -627.30 -99.67 754.39 -1269.86 -626.30 Hrob YyKUZ b7RpmjT Ofd5 h5kJ vHWB5G415 N3jG purLcxf1 FDwe9CO 1IYv vwAd Wr14hh8 mo46EMS jBsU 8L4c9 VxDE qUMja rPrVl 84uCGq YEBAZP3 dabzTe uk5N DULDBxonb rtXy7r qPGf chtP zhlcktql2 IETw t6Wp UCI3 Nx08 wKkdAb RVoX rjg5Q3iaT brmcnOBg h4pX SKanO NgAFlttn qajqqJbv1 t92eGy xhLq02 ooGzl whp0xBQbp +1 2 347.34 419.56 497.05 -674.55 356.86 420.56 499.34 -667.31 ZkuT 4vYc vSJG wvP1Y3 2ajy ceyIq ADfJ a70Mzd0ap p2wCSCCvj sCr76 jp7o FmLPtY vWpX pxJT sWZP2c 4ikGzBvZ 0ITYjVFr +1 1 125.41 938.30 2278.98 -128.46 126.41 948.39 2285.01 -127.46 g5Rv BlQPm bnEHkR 7AG8 FoEW uxt5qFs Ts5V 9Zyz GxuA BjYq +1 2 -1926.62 -1192.47 -199.29 -87.44 -1925.62 -1191.47 -198.29 -85.34 Ba9gDa 3CaMFtN3l 6CWXK dtNA FKX1 GPNQCwcZS 3n1f 0tYG QdyB pzOFN jF1u fvCgj UKMq qIKW lfOa brsYfZIqF KnCPZw +1 2 -1167.60 -1377.72 -27.01 840.11 -1151.44 -1376.72 -26.01 842.48 Il0g FbzD GGqUKLiA txCGPO qbMR 3HW3oj RmBIs ZNrYTkNV dJP52hKN Odf9vyG zX8JOs RGCLE4y qdLr Yla3 86pTTHd mgFzPNHY w0F8 +1 1 389.96 -458.79 -1067.78 -177.43 390.96 -454.22 -1066.13 -176.43 MwpFZut 1eHTT jYGP0 a3Ps E7b7 lIk7 aeeS InnX 5ExB 0HURMJ0a +1 1 -281.51 -311.21 -813.17 -1054.47 -280.51 -309.64 -805.04 -1053.47 9hwKCqlH FK0M fyoa sJ5C tusz W50h 5zPVQlll QKwZs764T JMO0r fahu +1 3 -51.69 -1097.47 657.34 827.68 -38.16 -1096.47 671.11 861.51 A1OePT PIOe ogthOnG0G ZxsJM 4VYk gvHA T4kz DqtV 3yBJ Lvoj 5w1rG ZAzw MoTtc lG6e31av h7UB 8k0g r7pyFJk b0ga OZ3r6zW BEKDEv 9iDg MZdp wH3e yJAK fVDhL3P8 TsOz sneZSd vN0b BhPbJdY LsdE rmOuY5 09y4 X3Dnk92D JZW6 LkGFSY UOmVBzG 5f1U fXh0 92nx HXxRKUjV z2XzHgn PqXPYQtkZ bCNy +1 3 1358.61 282.12 219.84 855.70 1371.83 283.62 220.84 866.87 4uSVapr peyA 5Ze1cc chfg FcVK jY55YICZ qzKB dPjf jGjhEg FWqJ YZ3REH sZZOkL cWe8 JbV0mCBd rm5qgcY jdKp tmFM 0bTt 1bve PDbo dhbcE lPSSF mnJkfDboG xtst ydhJ p1HP LWDeDEU FNqJNefE 9UuJ TH130t7M f3rfJ5 EdqD 0PhY sx6S 4xxn Mywg faMv bhndoKhC Xqvb EEfvIpZ5t DR6x 4Edx DAMx +1 3 -105.17 -679.73 516.89 -487.72 -103.34 -678.73 532.01 -479.39 loES hO4H ZeuM3dN 7A3k c6X0 Vq0rvn rR01p bgqnt s9e0n 3DkMR AKkA3 q8SY RVlw BgwdAF S1Hp ZBfm SpecMPKc1 I0WM8czs RZGv PWgP mlKopR6f g5Dr kyYi 3RL6d zcMk7GDj iLCx2JSS PmYegT tG3AdR 2xZqLE 6W1EIqy WhgO tou0 Gjm5Q mxxbZ9fx IgwRokUU NJvV Vs0g Z5zNmr V7Nf O7iO WnRY hdkGgIM 3us1 +1 2 -242.71 -92.61 -774.91 50.83 -220.75 -87.05 -769.24 51.83 uQl55Xtk OAvshmG4e Mflhr9dNE vkhp sB4l yXVI LlVCSh qk6Sz IE9cArQFf SiIZ v0N4 isCN tCIwB155G o4pOuF4t6 imyk YX6c mWa2 +1 2 321.70 784.25 1214.92 1826.98 322.70 794.93 1216.44 1833.14 MCgb xbOsj PSw9CGe FwPF vFyld CTYCeEg FIrZ 6NXRx0 1Oiy n06vw 08xfc e6JB mdHr mC7l PcYFYdao 2CjU 3p04 +1 1 -918.61 -258.48 734.48 -148.34 -917.61 -257.48 748.09 -137.16 JXgM AhJyJr2E wTvXsLo G7JPfU5 H25Qo IJWD 9xw6 tTt5G5p gCVB 0iwE +1 1 -18.50 301.40 2093.58 18.45 -17.50 302.40 2094.58 26.42 gYtDaCz 8pqify JLhj5tL mFmi MrCP fLpD DJvh 71Cj J0lU NJLk +1 3 -3008.10 358.66 -808.58 -767.36 -3007.10 363.82 -807.58 -746.01 ojOLUIYl Vk2E 4IAvjzUft nrGn icUZiArG JVqt Otrp 3GIJDUgOa GHxK hfXv GTk4wx7 8TgrhQy zyxB y0aV dKir l4ct 6Jfo 9ZqEg IgxWv4mq kvaf3 8s9C7vqB 2lGlO KW0q HUc8kGzNi BOPu fA5r Vpif cBjI woMZ u7Gt sUSBLyOBt Gy4KHfIZB 4AYr kWgH214M FiAYYudp gQun PKRM nPFY 3Ccj E3eh 2hcT1hz B96Gqy1TI 03LX72G +1 1 416.56 -780.95 2376.74 209.35 427.23 -770.31 2386.03 210.35 gfkk1Gw mwXa1kU ccNq J6Wp5bg uArRXJ QUhtAZSU5 tFzOGBYSy RZgcgqz CWaK OHQn73 +1 2 -240.30 -2727.03 175.25 -544.17 -227.35 -2722.57 202.45 -529.67 DTrv Cfm5p z9mxhYVs Z4sf SDg4GX1h ooHXx4j 807xkh pBZG IoNzbL GJrN 63uJg qB5F JR6PMO8e 0xK4K 0HMU 2VCx TOAbmS +1 2 98.58 791.70 -400.87 809.89 106.57 792.70 -387.32 823.59 YPj3 V40B 6LBuC uQKq PrkcHT39V CW9T i65WF 7jHEOe ilMd kwJF5 85pj WHI4K0SN uA60 3fD0NcXA iYQX xP2fWzD onpe +1 3 415.14 -1347.06 -235.09 1104.46 425.07 -1346.06 -224.08 1108.43 VCy5 71y4 a4gJ 67GO 4cku a3cJSYoH FPMLmwJw JMya F71TFLbAS AKEl 4JM9 xZzj bHN4 wuxI a6Ew gs7G eGEY vcIno4 bsur3F KeTH fdsX ss1ysr4Jr DcDtl vAvKqgmt eGJC eezP 7RlLiVblS M6gRBDf g1mnjjEM Pxp0SL8 b4D0UrE nwouw6Y 705Svq l9Mo WrTH vqui kbQy t7zinm LdYf qcI9 Y00UIoFpM Ib7lA RH2xgpg +1 1 -477.53 -538.74 657.13 895.53 -468.48 -535.06 666.77 897.34 vlXz qOJ5E1X2l I0NAzo5jF Dgws 01tp YxUMn QZ6Q SeVB 2b1JTY8G alShy +1 1 -490.75 -321.03 -468.50 122.56 -489.75 -320.03 -467.50 138.35 PN4W V2X3I4a pEQ3WdqCJ nIkh O7Ox rpectQf 3vXm 5lzILmb 1NP4s atMeRhK +1 2 1019.15 1258.97 2193.02 -1216.66 1028.18 1259.97 2196.27 -1204.58 HmlVmM6sN gFvv9y2 sBZA1Sc tqSLCvR BY8bZHjST NawZ fCu0r 9Ssf vWuiO ot4fhENrT 5BYnaL 6OZia7Ue 4G2qGbg fKkU D01s aKtu MUdf1Oyw +1 1 60.93 1566.14 -311.87 395.44 72.24 1573.92 -302.26 396.44 BuRt LiJZ Zz755 7Ho9 e5NwwPm A2JHP gpUY 4hm3 aLdsMN d0dL +1 3 2027.71 -818.20 -1193.47 -286.55 2039.70 -813.87 -1186.58 -280.59 aIQ6CQR TToth 3FQJX FyOa vyyc8pz I7iZ MWRV BBGz ESeRp4 Nmt4 mswMEq2r vvuI TraE nUVa8e3s RHq9 muC33a3p KnVb5jeiQ x4Vvo CXXp HLZ9I WKsW 56Kv fnVW cAH4 wubTJe UNVn HmHHbitVW UpbGRi4 8AScP7 iyT4 HDXUG y1HvfMaD GvDElRvMI dg2O MeDq NVHW YVfcvsMc jr4P5j J2QXt8v9 RDCE kV6COZP ACno BdX9M6RNw +1 1 -753.59 759.02 1216.86 322.71 -739.88 762.62 1217.86 334.59 5mWt kqnpITZOB Aqdk jIze Wvuk tFPrEMA GN1o lS5A0a OriWJzo ebq9 +1 1 2.92 1622.54 -1424.28 -127.31 5.59 1630.66 -1399.06 -126.31 jXlgh20 8QU3JFYKe qgdq z2kh9Rbbi i4xy IDY2 dAno cBNC4cx YuyHP YcX1TE +1 3 -1258.45 -510.97 -1369.80 434.65 -1252.33 -502.00 -1360.59 435.65 Pakxqg HJ1jKbAjW 3gzZKJf pN1h ZDVO7def xofm BLCBM4N QUyG sSLH arRnvDR 70xpM mjs9 FPEV WWzl WnM9 NUAg pl8J ykIu YJ1j xRxEqd7AZ 2WqB1 yQwKnQkxh x6p4 7IePW5d 62vciZmN A9Ot sR7M DVzsQMSdo 9oyR A37RKwK7 7VyZ XNv2ljNl yS4IqQ QYtbz3Snd 0MY614V 4Qy6nQuK CyZV u7iz vitalXH vZUv mrCzOVnns CWGDiVCf cfaN +1 1 -805.48 -227.73 -629.17 493.42 -800.23 -226.73 -613.62 494.42 Owi3 uEwR CNcUV6l 9V4J NgWj SX2FvS iAy1N W1zy29l mrqxgnPX 82Dt +1 3 -366.54 -104.70 -203.29 1337.65 -361.45 -97.70 -193.27 1338.65 fgXfP m8f7 Jwge ZZHHczX n3eu EFB3YYEe tZxX aLMMIwRM1 xiMdWChw 4fIiaaq w4RW mlCj saeq zrGfG Rrdd NmhWvB AGRC TwhyI1un w0G1 J3UW OJrM xmoXa96 ydpYakV QKcr ZvHB uFzz skOq wMtO sdpRJRqvj DIH4 vey6 oA4b x9xA ggnVeeDn 6hI3moJ CqzR gBW0Y PQJM Oi9jof zz1fSYNM q2juikR 9MPAm2OB ZA6w +1 1 779.77 691.70 -97.72 595.68 780.77 692.70 -85.86 596.68 frHAEOPEh emc1 Q5aQgZf0 46SqgvEDW QTLdPOAA2 SXZn X1bVch dYvEs1va 0eYp7Op ClQHr5 +1 3 1722.21 -835.14 1.25 -281.80 1723.21 -834.14 11.70 -271.55 OkPn KvvXC89F8 35amvnOkK HfwuQuYX 9i7feAeZ Fmd5 nRL4QAe 3jDKAm IXuf Chqr Unkj aSX3 VhSaX fknV g0akQNEr LYKfQO XGtu ixWD dRi8 7tRuo wU7mh9Sq JgFv dbpt YIi3mBIYm 9Z9I 6z1V qqNl 2ftg PKW7i wDLH rNj1 GyVi hgOuDNR xPEhpGA8 gQFZ ATVQ KAEi 2KUaM 2OWQ jXytf1S emcm0 35i0D iF00E1g7 +1 2 58.12 649.36 1037.01 15.21 64.49 651.58 1051.64 22.68 TcjW zUbr7z vXUceUo TrqJ xXy9 ul4D WmkJ6Zo PWVwU M1H9j9GP Ln5k lQyASAJy2 aEha fjP9XYCs rF6G zbHR ypfS lkiH +1 3 -1566.51 -902.93 -1282.03 1103.03 -1565.51 -901.93 -1281.03 1104.03 Ukq9X AWwe qZkvgdLVW 6DXg glz3J5 NMEu ep75 njZZpoVf CHuzSivZ 1aDtG D9h9 Y6wc0 T2S2 ZH4h2du0B ulLUe vRvK ujbE hYcz oX8N3zDXE FXE18f4p9 a3B2 7AMFPJy yj4mQo rNimobcj z3zKo0B7i lP3i hVzG 33vbmtnv b1XY 7rn1 mat4 BXX6v dY6Le a4BqWH7Z mYBJ V95XLUfO LU65Q eDgErl wgJ3 1pSP XU48 4VNkc87V 5Cpa +1 1 2538.85 322.00 399.10 -111.12 2554.40 323.45 404.23 -99.65 eBnQ Wb2W6 US1G fLSot6B4Y Ke0J c70Rr0a AECG 3DyU XwYM029 7jyL +1 3 1318.84 -666.55 -216.86 605.37 1332.91 -650.61 -206.28 606.37 eZKz 5XUv tLIwEfP 5If6n8 9CzBz8 fd7q C75O ds46VmM RWaQ B5uvKy 6SVL4 qKQG 9th2 Tf51 1bc5 PezyzpH Cfl4 mQ4i hBufMz kUQ1 vQGrKT 5jdK gTGR 3sHV e6sImB5L 3YiUEJa7 E0gd EaJx ms4I NJR1k 8imY 08J36bne pvn2 Ayzy 1GVz IiP4 JmGTV zHAL5C XJey6w zsHs BHeu hAOgkWiw8 65gR +1 3 1971.99 3289.29 732.15 1099.31 1978.40 3294.26 751.70 1107.15 YdYu yqlF k7gi 8DhH EvyJ OkLL JP1qYQ 8SANlXgZW OCQaG0 yQ0P KTm9 U5xd eVyi hY2lNw rz0s GN0xKX B1RE GlXr KK5zcuE IpFHcM Vl2K Jhmi nonc W2GuqF tuju75r9Q GXHqf ALY2Icpbc q3Sp Y219 GpxiOin98 u957dw4 no0M lXRXPXhFC bqOu52w nKxm hBwp xUPg eVlOQ 7Bf5DEa 1sPR 575TVjAER FS5UwFa 9pf8 +1 3 -641.26 -116.36 216.41 31.18 -640.26 -104.91 220.51 46.88 wewx zhfD r4s3V 9OCn S6dL o7jdh3 sTfv szXB8CCY SE5Z DeQ2 fWwJZFA1 gesz06 MyJskq 03nL l5Sm Mn7OY0 4Q25QP qPEGJt2CX RAsZgn MF7r dZKErL 9C4hR XRgb fhJXEs YAJZ he0j6m uQ7IcnxF l7fJ 8w8u jNC8wJM tdv84IZIV WKTE O8y2 FIDy m4IV Lz8rSV PUn8vWL E05FuJ0Cq 5oSoIJm 66dZiz0 eXhR FvcUo xIIv +1 1 117.30 328.11 592.69 -583.80 120.48 343.14 600.05 -582.80 ffOW1A dyuWuQVj jnJBA mZJK 30QyouLm 2BtL 5KP3 BfzF HYuWARr fIgdW +1 1 -104.13 -1078.86 1404.91 165.62 -92.36 -1077.86 1411.26 170.54 TUqr 11560PwO 33hQGUrl GpimcsiQ cskHTe GkVCh yoyf TsY4F TU2i GZUnt +2 0 398.964996 4 408.964996 1 406.251099 2 -445.253265 6 -435.253265 3 -322.481812 9 C92 11 lRI 15 G 21 GFg 22 g 26 6Q 27 kGW 30 Lb 31 4 32 z9 35 7 36 T4 37 Vu8 38 t +1 1 250.61 -447.89 301.14 790.98 251.61 -446.89 302.14 807.53 WdxSRAnbe zBDeWObw IqVU fUwAre CuJU 1o3T ttkTYoySy oHcn wKOS BnD2 +1 2 1530.69 -1131.18 548.56 -192.07 1559.13 -1111.34 573.67 -185.49 wB5n Inu4 n9eX 8I5z Txvn 7zLa Iotl 5AITQ rOO7 XnRG jLGP j9KE CWKOp 8Y9a vttn 500fxCYa U7loER8N +1 2 269.53 1011.41 -248.89 -287.36 272.03 1012.41 -247.89 -284.44 cAVtAR 0xdp pn92 wnQPTj T63V UXGAO4M OnnJbA9 ibDJ JZSe TP0h bGWc yrLnUnpr WHYI o9VT 3GpL10 kNPA Dmtx +1 3 501.33 83.53 419.56 1858.28 502.33 89.81 423.17 1859.28 6e0o pcn4 2zA9k42c qc2SC 3bB4 CuwHy zyzw g8OMT QROA O4TNbJ 4yZgBSt MphWHEQ HEhm 6zFs6 cJoX JsutZG xZ0Mg GxcvLm5N bcEQN9C gKP0 1pGk021Ru dmIg5oy 7riL QTRi zOAe wXar6Esj Qcyo9yqDL eggV KYj9 zYeX Rb3B HxUw zsKvNFr VZNraT4wF 4Gblj Oax2utrk Qwdb o7eZ2MD C4dc0 llsNaXWSR unIN jYcV oLWD0u +1 1 -7.71 196.15 857.97 -390.01 -5.89 197.34 865.28 -379.73 hTzGm 4o5X Ktm6j 7dn0b3 TdQX Yjyf Jr1P dVkf GMDQ 8h4B +1 1 -609.69 -67.69 121.30 95.02 -600.71 -57.87 122.30 96.02 XHHO hQ1U4RxU TvcN EeZ1pl pKC4 QTD6 tHAkYTbC SOonRRHmB z5gkubaCE Frdd +1 2 -1218.60 -518.78 1360.30 298.39 -1201.18 -517.78 1368.78 307.80 CmZEgyjO XIQh eHHvfty1k kxpR9C I18vciwa CNVQ mlA3dc4 eSzL yra7 ORVe Hgva 8MWv QtcK cTFt4W oSXv AHH4u N6Mx0e0P +1 3 379.81 1540.41 300.92 -930.57 380.81 1568.70 301.92 -929.57 1FiLbd 84Kt PSJu 6h8y sGrOw XcPpddq vopH Mks7 8bXF oFjb PTeU 9uwNf 1TGl n22Q hKjY 6Yidxb0 BDNCHduzF Byql jL4SdI VYZ2 n0UQ 1zRoNLUa 5m2h SMXWc Gu0W Q2WN3WMd UW34 aqqWsdV fxQ3WRCrX o53JZ63l nk5J zf6mPyFge pkmLDCZ QMim WTn7 HEJO wGVc F9M1 rfrOng1C 6tYp gKjj 3zZV aDJ5qvURP +1 1 1225.47 -101.91 239.27 -1626.23 1232.84 -93.68 254.37 -1625.23 Bmrs0mHn ncsH UAJusa ugkO EGvPUQZ FbBu ixju AXff aH5m jmUg +1 1 -395.47 -647.92 -969.42 -2138.65 -394.47 -638.49 -959.21 -2137.65 UIIc2i 2sTzSP BdXVYrl 4Kci iB05 31rWB miEk3Ym6 VgFA srgiG1L8 UYA3 +1 3 411.30 -1834.20 265.05 -777.98 425.47 -1833.20 266.05 -774.38 2LDs PaH6 nKAB kdDf obTa DSAlFj7t6 qOLG5 zkUR AfHt wiH1 UxFc t3vH0DvD LFFofC1 TjCU RS8x kvzV s8jc3t4 jgjC c62K b2b0 D0Eb6whr UujYt k1g2vaaf HM5a aUSy xZ4h ocgezD JDcI egus i9CZU SO40LBC3 rnAh nYAz HERd Em73Ak9 O0rd5A 3yjQl bBOu ETy8RW ZjNk1Ao c5bpTYbiu Xak3D UDsJ6sx +1 1 360.78 -290.03 756.99 -1044.78 361.78 -289.03 757.99 -1043.78 cQOh YrJo 3IpQ ud3n 0sgzA qnsRAUZV OhCd Jo0LuoJ JRTT dNfk +1 2 -269.06 452.82 -1277.25 1089.63 -246.06 453.82 -1267.95 1110.15 khDVMfy n5Ah 37NK 0Xtr x9lj73 e9yJ w6Gn 0i2s5t rKH1 XzsX xfZM jY3m 4j5YT6RFI PGic WexEjLa SKp5 T9mR +1 3 469.51 -966.14 897.46 -510.31 470.51 -965.14 905.72 -506.22 TCLui C55a1Pl sLb8GrB BKY3MU1q 4WJg sqZ3YsPy snYG 4n857a EbQR scXXi YToJ F5vGOJy LW1p KBKv 4njv MPYV IvL3Z7p OL1s6hZy u1goL 4dqMJXk8 zukU sXtW y68aq4PB F64LQneF LMaM XEJNJNr8 28zHr jPQ7TqC cfEp95m2a NFKj UpbK um5D rmvu pnY6m DId2 GugDL4oG 3dPF cxRv Dnw3 15WAn7uGr RkiO9fI8 tBAfz q1mcq +1 3 1351.59 963.60 433.42 -1168.56 1356.76 964.60 434.42 -1167.56 xYyfS 80bC n1lh dXSoG3VP0 1ltNM37CS p2K2 Tnsr TBXqC SjL4AZh SA2LrmH3 zGTP dS5S 92FQ KuFK dthYTgQ WdxV mrBz 21yN p89Kbf2U1 bJaf MkEu TJEta6S74 W3AngZB D6D6X 1hs1S LeFLDxC vF81 N32a vFm2qjy uYuyR5 XoeX 7MYW lZBuraY CKNl soJB d1guAsQSY 5D8v aedY 4Jyr EKtq9v k4ZK CcMv SZII +1 3 -385.83 1536.02 -819.53 439.09 -370.95 1537.95 -810.65 445.68 XpIE CPlQ wzCI ap0W eD9D 42bv Jrld v0Lec83V t22Ke7 IeW2q808 fUtz cufGU3LX 87ndz rv2K MvcxkyBS yykLa2US x7kK 6zyKw jbj9rl 76W4 zjwIcZ PCF0 ujyR JBPAOl yGCI9z w2h58lMTr hCWDMGx dszY SRk9GvnWJ ECyYR1 7NuTpa VLmpP SBEc cQFTAd 55EF OpE6mnNO PC885J gd7jt PfbS ye1L43j EB9Bm YMzT 6FYs +1 1 878.88 50.02 1148.15 665.35 883.35 62.80 1149.15 676.09 Yg5z 4itW rKUBKR jRQc sXS2 IeR0Un4Rp boUe8 g2ly7Q kN7qvrCq 5Fmob +1 1 944.23 -964.04 321.77 -322.69 945.23 -957.59 322.77 -321.69 QMRF oNPW QsnR baGR4RDNx yM3z D3c8dABw2 M0pJ IQ9gTC1 OrQfX MCY8 +1 1 1542.36 1313.54 -663.46 -1090.70 1563.33 1314.54 -662.46 -1069.41 aXPd 3L1b 2ZhI CmjtsA qFTO 1zyg Vb1K5Ds ybY6UMF BBo0HWj NQrw +1 1 866.82 522.83 178.89 -205.73 867.82 523.83 179.89 -204.37 LpqAk VhNI hNdoyQH tl2r MYH7SK6G fIgLYM cMj9eDNi h3bI1Ck IRV4 mcbA +1 2 420.12 465.76 -1416.35 919.55 421.12 475.20 -1408.21 920.55 WONe AbQ7 Z45Xk0JMU YXjuG5U 3rtacf rICV0qL RURii6ZX QupI 8hSZ g5oB 3ZRMNcU NoQ4 hUHx0 0XPx yJgy8ySCE zQ9F8Hm EYR7 +1 1 -2137.40 513.59 -702.67 316.60 -2128.46 514.59 -701.67 325.00 hRZF4sjl 37J4 P0Om a5rdQP OEte Jnn3SLgm SmbyVVrGL Eqq5 IS1d wD4xmBrCa +1 1 966.28 -1300.67 -279.95 282.29 967.28 -1299.67 -278.95 289.68 3mHDtjn4 dMhU1pH AG6al p9J5 uMPuPWm kMI5o e3aF Ho52J6o MJpmBh m0JjALwF +1 3 -611.97 -1400.71 1147.30 -338.56 -604.80 -1382.33 1152.19 -330.28 olbw GojFhYvU bvQH rUyJFwGwu l5FHq3A LWbz adcEfWY 0XaRCXGR OEkClWfH3 x6ibq5 5zOJ2eEk 8ht1 DaafJ 04MN FlHC M6t4 UHswMvq nHUl fFvN Ky9m KFKdsRL9 EPEu cZBlp dBx2U Ehte QzCDfaOz jsSiP2 NXNmM417N sOlq To4h H1iN 1cva pZ0xQNIi m32ut2BX7 KV6LvW EjRdgGg CKmoMPkO XeZq 1xyw iL7oN FY3TrzMI2 43IOCGCj7 zW3c +1 3 -1424.94 1605.69 350.12 -258.24 -1420.22 1606.69 368.52 -246.96 U3nyrGTm 6Gd74Z2 paUJl60 Ei2Z Fl4y Qjpg OwLPqVm tjEU 0Eso mSup eI8DSSQ9 6Db0CpS dAlr hV5a Btg9 RwmRR FD42 nlAt GfzL DD3t VjwO u1oi2jeHB i01RDwRSq yMyhD4B zJf78K 78jE Ag2h ahCU L5KyYJ uER0 TVGjTZe4P VWRwZfm wpWj52p7d I7QT kWaY opgQZNL 9XdZ cs3X D18EE0PUv xfbw blsB nFn3 lf0C +1 2 -1128.42 1281.45 7.35 462.87 -1114.36 1282.45 16.46 463.87 dvzS b4LB a6g9 ULab7 LyBy sglA tSn2 AE52 zsrQ PuR4ynE y7N98 nb6N 2n7t c2gT tLrv yKzKfO Wyzt8ynY +2 4 -830.544617 1 -75.453979 6 -538.354126 3 2497.783203 10 2 11 75Y 13 2F4 16 ETO 18 y 19 V 21 Hp 22 1j 27 A 28 N 29 n 35 48 37 NT1 46 B 48 F1O +1 1 825.66 970.54 469.70 -427.26 826.66 987.81 490.55 -412.33 n7OFS9GSl fdgu A6l0167 bRqP9SyA 2iHT 7VfUo6Uvb s1regyl LcQu WucWTk iJVr +1 3 838.60 -119.34 -135.88 -396.27 839.60 -118.34 -126.22 -393.18 7YJs WR317HgOw uqh1DuF q8507G eWnIb8P 0Gug haKvG tdAM uVDB MSBHi 3ZOMgGeeM U09e wflfYEQ CzqNC6 xcIz 45gIHVS60 u0BbzHXi4 5gh3 lAxkphGe 70RtUxe4 oYwJ ueOHGesr 8RMrCI 7941 eLWJ pod9 D7pT oKdIQgCCF vYnE j6238r wAMh Fw1l6fOm 8gAB YWL36sIk gslE kZSu aU3S uVMi 5YRQ B1K3 6NxhAWMfb QUalP9qLu trMJ +1 3 -160.79 -481.30 805.43 628.43 -159.79 -469.36 827.27 636.98 Fj8D loyWc q0UC cq55 c4yAOGvsL xjgDs QaP1 rWZ0 VwDxBNscO c1KNTzG6 vCzWL rBI4uoW hyJwJ97 4wq7BFZ4Z nHRuAn vPp7sD gD78GKf xOlf d8p6 g74Q seOaY8vc iBBG 3PxLP6t tVMMJT gB7f cXtwOV0 281I97 NJG4 qlWSEys ltMtnzAXu Dno5 271l pfmS aToF UpZj tDq6Ys yG7yLL7ah A1fJCoIrq ekb3hN V4W4 SQrRC 6vyph3 w7olrLFf +1 2 1144.74 -1476.80 -451.89 1025.80 1148.23 -1475.80 -450.89 1060.97 5HKX bJtl eAJA jJ1B xSBz hUx7Q ToHG TlKlt2o sHwl 8Xf3igM qYS6uX 7piUQNc8 vnTZvB0PE Qces CrDE KGhh1ssq2 oDCjg +1 3 -749.06 -446.90 1285.12 35.01 -734.97 -444.36 1286.12 36.01 5PRY4 wgv55KX 5iHG mJzDRx0 3vFB btcEln YXOOC XyrKHct0 yyVX0Qx pMIt ooOz weHgQLm TGV1 vL2X5 bJYb1YA HzYumpIg VvonsTJHi rmldM OLIaKVU 11nP GA6EAEb KGQa E4svFhDZ3 BDyPzMw wXcG 8SZ5 3Pnk SFgt TW1J mhSu uq4bMezE YwmKiH T1A7 sxaY nxfwH 0VMw 4go1o9u p32j igZ1As oaN8 vOiq jPGX X4nZ +1 2 1716.28 45.93 -871.20 1429.38 1736.14 62.90 -869.57 1430.38 AtXf 5iBuQ IvMAWKQOL bamc LOdsWnck NwnZ0 mXnVgPnRG KAWU7r b4fwoC LNuH9 qxduiy naX9 Zvp2A Kb026qS P4tUOPR PtgfqMF 6zqc +1 3 -675.05 -618.55 -141.25 248.54 -652.10 -605.99 -133.50 249.54 PBG2 PGDM 1USFiK7c ewnU 3UoW jbmC YWMd NEDCzf Ageg 4uF6GtDm eXMA gc25 BurH 7rvA23W5n ChycZbyB Rx56pG3 mRCg on2DZ OHCc mv72qKG evZMlzu rzH2l l8yW Hrz9 6wT7EKMLG lg0sp0 fjuY rdzw o2zn 3mqS A0bswrYB 7y7AK K3WFLLB5O HMev nFeB wtnti yy2f Z3Pc XiYE 7u8qJe3G jRrU 87oq osdOI +1 3 371.01 -451.34 -1151.79 1081.95 374.38 -448.44 -1137.93 1082.95 fHHg OPQM d36XP QtzCBoJ QPy22 56JnNH8S SG8K PF4osH0 W6tL79jY cdrH fjdj 7o3b AM5lmTHv o1HFdgxn W7qd fzdd tE1i IAcqI in2e cIba oVU8 kSl2hpt1 hVLv3D3pw g8x8 SIkb AYiY k7iz ZJ5bNKkP 25nv JDxYPU vnn4f0 J440 hhO0vYLV qXdm Rv4M GZI9 VdvO 65QK N5k4 uzLSxHR ZcS7 QnORVr4 92wx +1 3 959.95 -1392.99 -750.77 -245.13 967.34 -1391.99 -749.77 -223.47 V9igDIV UMyK ZBdm 5VelR 0ILQc2L1 VvjQIttG6 fd5L4 EFzRO8 VP5N E7ZY KVFj YVvTLnq fl9Ej5zf 1y3M VTCw PPcQ kXL6OLl KvsI 96ovWb7Nn RPrVx kVRt nXIPz QtIOD 9xEQ5IlS7 ID8I alpR619 O3iY HSSy t2m3o2 Ep1qNBse u0avsC T2z9PhO lajt 6aaOzTdCw tX22 WZ3n BtGBS GAcVxOGR swEC anXTQrX rmiC fXnnx PO6Et +1 1 -1213.71 857.02 4.56 -160.52 -1210.91 864.63 5.56 -138.03 HVI1w4OW XSdXfpms EJDtz b57F DU0H HsPy Xb57pT vJh8 JPP7DhrJJ O8yQR1Fu +1 2 -372.66 -232.94 1132.65 -774.96 -370.72 -231.94 1143.49 -773.96 JwEp JcrL scmv K85g 9jLU zZUViwNZg xlFu TWUO3VWu 8R8E 8ihBf7 2JW8 mXNO6Oxm 0DpdjXf tLf2 MD7ELF 96vyt2 i06A +1 1 -435.62 330.61 288.24 -2456.96 -432.36 337.44 294.67 -2426.54 dgaG q8uXxf8pJ DRmm xG24 jr8E tJQx6XI Wf62ZsMt U70cj klXB sWos +1 3 400.77 -155.07 168.98 904.12 407.51 -142.16 169.98 905.12 MeM9sR f0l8 saAt Pj2V wNj5 X6hK dxT3h UOftZ 5DTC mXSTsBYY UmWnSIvX nSHv ftVR kwpX kumT kBTjI XJ5g w9VE kfLgWQB5 MPyxwYDI j9Dp avarM JY5gf5OJ9 9G5L rdHh07d2 6INYj n8hi MRlK gfxG dDM2 fvRqdam1r SXZbXh xshc oAmx p3rtrh jh2D IdyrCx kQEynf JAJM XIEC BcUPpjuA2 ksrURi6TE n9AHZh +1 1 -788.11 -1171.00 274.98 -1177.31 -787.11 -1170.00 283.96 -1168.46 PF0CjqM aY79K I1eaD fLZXWm3 yuyv0ymcw 3Fsz qVerrAswd wOG3j2 PUDF OBt0C +1 3 -614.97 -565.03 1686.80 695.43 -613.97 -551.60 1687.80 696.73 eUqBb hOx4 oCa8zTkh9 6z92Iu6E LKdz bD2tbp8 w16P0m yPoJ fWY9 XGtOHncH5 wfMcb 6ZesEk xUlR PYdPM7 EZ3K HSjTpzu TqW4 lvRj UBK5agp jwavNrLm 6I77 B1WTiXoR0 OhCjG1 Ae7qDXY PPbV6NQ5 PpPU LGecynrY 1tYx PKi1ojol EvEK JESU8 MO0N VcKf cO1xujG12 s1dM6w1T aq0d 1kFN M6Zw eyi6TWPrL 7hjxIP BIhK XDZh0SNCd AmJ20 +1 2 -1048.13 -376.07 -965.51 1389.84 -1042.63 -375.07 -948.87 1400.29 hDggIo3bY xpSsgN NAsb U0c9 TboTZJU4 iwWO GVxK vqQoj1d6 SGDRXPmw jVudntOtg mnzb hDhL8J ix7w bObC FLDV aiQOC4pkh IODQ +1 1 216.25 1386.31 1118.27 -1174.74 217.25 1403.75 1123.62 -1170.35 lBhN VH3ao mSgI c9AU6t4uB vUnp0ogh 2Bqoj2xlf 13DrQ 1mgjRUn5 m95YT5 qxMA +1 3 -1151.97 -472.41 -618.72 -944.28 -1133.75 -469.76 -608.33 -927.43 J0waSKxyj 1UFI XdD6 hQ5b aFWX dzwe rbXH 1b5xVsCw JVbn SdBa NTlmPMghf kVKhvn9 Z3ct dkWb 989j7 MO2r qeZtDh UTGpl7qbd 97JL wpyEHQDVH BKyR VdhQ GY6iz7PY cVMO j9rNq1 0pLp e56sZPZ xytY QVi2 ovUf KTyOv 7VZNM 02CP Hnwd kNMK JZE7 JU4t Ckzp a9FL dIVPIq 3SyV HW4ZB szFdkuu +1 2 134.10 1230.00 1483.02 -52.49 135.86 1231.00 1484.02 -42.83 qJsyL hDmx aIQRt4rA bHBE V4mzh HYFN aGbt UBo6 0XkSHJ6MM YTmpJONKY QWsm14Q JRiW GgwBJnAV rpXy 7ECB QjFn m46M +1 1 705.67 565.46 -353.47 -187.58 706.67 566.46 -344.64 -166.14 UOzY g1aje9UOd m3OsQB5KZ eHQFew4df gDFhTbow eWWADUF9V E7d6 QC9Y w2xM8 1ZhUN +1 2 -821.34 820.33 154.55 -444.25 -820.34 821.33 162.40 -443.25 Olp50eg 4H728uxF o9lEA jZ3r 7uKB hir0 5P73U 5b6AXnFK O0C8 au7zIi1a iqzPfDg tl1x oTPw QJTM y1Zn 4Ww0Q62 hJVkCmB7 +1 1 -271.61 -536.94 1284.81 1563.97 -255.97 -534.85 1289.09 1574.23 0M5xALmE d1WEfd b1Kek3E Ms82ZY5cI 6fyylKB BNQMLcmz ghaAfm 4i92 MWwG XGVa +1 3 342.29 -560.52 -708.81 1490.62 343.68 -549.26 -703.80 1491.62 KfXw ys5M pdyq 4ISI K5VVQv1X XUvK 1TA3 4vyESPP as6N pZcF8Xzq 8WRJWlx kPCoKx g1ojk mMHmrlg DuLk FK3GBYkH CJiI wQ6l4nw cvWj mUPv5UH y1pUq0B 7qjq C211ZRq DeswkxDu PHzOL YaqoqDlnS ArP6 H0ek Vilnq4 FPhV IPFbKnfm juLZ 6OGG uHaD WnPBDwI5W nzsJ t3HtT7CF ScZm 6D0u a7iZQAyWw 0ZVf i8tg IJFQ +1 3 1224.83 1892.27 359.79 1127.54 1225.83 1893.27 360.79 1135.45 Wzm8 FXBhGDu 56e88vqM vcka lkJJ mHeED Bsmuvex chbn EDXX BtLmwTGU NmTa5QR C00V WbHMWU8d Ccui XGPH AA6R tkMn ibAx sgVpH9 Ki04H50 zT38 Hv5Nc jLj3NqAGH igVu mqxvVB75f pcc7n GH3F XOHKU4c 6uSvw nXOe n3K1 69htgHjTR FbRgzK7pH bdhkBK 8l4F dvh6 yJwvWIHYR wiPt Jz6F MCGm w6gpLde EnjR jBhL +1 3 2348.02 1664.34 461.72 1174.51 2367.31 1665.34 462.72 1183.12 jma5S Sr3PFl Kfw4 9Bnc 4WcSeJd 4tPRZShu 6d0Y F5P6 ARiornLsc FO4tuNp hWGU ND3GoGR5 YVT0r ae2y tolralN mtt9 8aiBz36Zr jkICq jc7X 5m3Z t8nI 4pgh c6ISuC YpTx HBlIvC ZAa1 hVgx 9zsp mntr NYY9YyC 1QPaQA d0iZ zi6zTzjNC LeOSt0fW Gqko4ut ZxF0rjLw rhUJALe 6EVy NyX3CNl Cws0 Y5Ms 9cTz PWaF +1 3 2196.46 -742.74 868.55 199.07 2215.18 -727.07 878.11 208.92 IpAQzvwn4 LzjM ZfMfB r4s5 qqP2 G3WCE SkuKl hy74 R8acH6L m7bB 3MW9 UcLSD Q6iMZDZ xftJ sPWe7oZS neW5hx7 Ld2i gsV8eAU 0FXL BonIqi KDOd FxqD xpC1nm E4Ugwe 9pE0 NCP15o dSlZ 3FvJ 3Mr3k4W MmtW LMBMrk qb5ToWe5d CK0X DziK rGIRIibEC uwGE kbPIxYE Exc2c9Mvh CaMy 1Zjo 4ouS yzrzeCpj 8vdW +1 3 953.15 -445.54 2095.39 -17.38 966.35 -433.52 2115.24 -16.38 SZgVE6xU jfQ5 YA5BW7 dnxy UlU8wT RSIK sjHth 8V9J eLV6Cz bZnrSGV LG6kkUtj a5Sj4Os Z6Lt T3yxvzO 62yL eT1a jXDT rGh2XxKmf JYhqOZdlL Mibci6 flPBysu6 koS0EQbxp lF8I9sJa8 IT3a dToC FpE9BIerT XbSj qKAo 0F1Q v5LA pVpn 2aue a1mU xVb1 su0c4Dy zlzL rqck YIsFiDn NKV3 jHC0iqNh LndnY ALka9 OUftYP +1 3 493.57 -1714.98 -1632.12 371.28 504.06 -1713.98 -1620.24 387.38 zhaDy nqmL M18Wp KojS QopyVM Dh7a hHpNfu6Fd Hfpd 9stvCz e9TjX T6Iz LtTy m98S 5H3WxR6W 8CQh H9aD0a9 9phM S2tT vm3m PMXDY8L Gxs1RAA k7AxTC6Ke kXt6M3 inBg11qd OxhR WBr9 G4QhnaybF Exur9 ItQf sg95 yPR8 D1qaoW 0k5CJ C52D zIBY2 j9CsKR2qT hCAM Ex2wCX 9msG Wnvz E94PASE RKSt xoN8 +1 3 -778.00 -242.38 -194.21 -1047.40 -765.21 -241.38 -165.75 -1027.87 SvnvZnNj9 LksKu3z9S RLpS aMWn OlqkGMj sR2xuqEu ZVHP cUeL WatFQ QZWjNEiU tFdS pRnf RSrrg Na66uT ofFZ7lAZP Ab1O SjTYN O0EmTwI 0C5Z5BLH MFZ4 xPsL GOXc Jpotl vtt4 1Fqzfk9 ISFkRVX 3GvDLDF 3lKD lYk2n 0aLNFzZPF O6Xw 6RX5 gZba CBPfq ltdG dQXcRl MmJAtlS jShy 8JLoO yRFe xLRCogx5u lXAvSiBOL Qv9f +1 1 -1858.78 -1098.31 560.90 1243.44 -1847.81 -1086.17 561.90 1244.44 0kyk6 Goct 2iYc bOjqfU4 BHdko0Ui Dm1K9 cikadbBpe qV7xO iGsiDT8w QON5 +1 3 1058.82 369.55 833.19 2752.96 1067.16 377.92 844.69 2753.96 8devfGUdf IWgfx kSfY TRPpYF99g CNK3 3BNX hKSl kLtv 7ALN dTPno 4axO9po vQqm stGYNQ5a tS6j NU4qrta8 3pRx Pds8 l1bL Oogk W8sz7W aR6T LnaF uFg0Wh TfYo XZee s3QoP BnKDy pRmR SQRp2FZ txIaZ6E TfdT HuQLJ c69ejDS48 2ZZl 6u3kteD mwljn PuOX PKuw MAvH 7wgoAJ9b BEuI JCojY fUkn +1 3 -1208.04 296.96 -856.37 -244.74 -1192.75 297.96 -846.73 -243.74 yRH6vzug mgiJ eTuwg EvvWH v9ipu6Xdq c0Nr Z047NjOm TLlk Hmi4 AGDU YD9gTNU ehYgFD LrcO uxVM t272m8e6c UkOu 3ET423j 0x5fInGH HlI7I7q9 UlJao7Rdg CuOu CFQr6jy5 0Jph6 YbAt dL433 Mg8kvY0Q 2NP7t6 e8PZ sMHn 1Ww1 f5raOK FfLt pymi9D9 XOzy magi3Zqyp f8Txr YycIL caD0Gu j7SH SlsH X7Hrw Blfd ALVyJ5iIT +1 2 986.31 837.15 -1683.92 691.72 1009.02 840.79 -1677.72 692.72 ExlL guAh LvVV P8hUzgxS f1TLe VG2N D4DX D6BK dksi LoREe kugJ 8nm7Wwo GjWw er0lTMttR AwDl pp6JQo hq3Ww +1 2 2308.62 1620.83 -634.82 395.51 2326.33 1621.83 -630.91 402.69 TIeaG V12K SXYj jQ9Ptt yXR2d5fv DtrD v6Xds3nb TbxL D1yM 6g2Ku xLvG gj7H 4fmw73q 9fJY0hE1 ghser d3v7 vG7H +1 1 153.39 8.76 -211.23 892.54 168.81 15.30 -203.55 897.11 32u5 BHavsH HO3g hgxA H5xPcCHI oEGgHd CWgNiBupJ IDuG JdsksJaY zthJ +1 2 462.52 310.85 1215.44 1255.61 472.37 326.52 1223.21 1275.38 HcZLuK Af4c HcQHGFNSB lTtdavPd NA6W m1RO XvWS8ltlT dOCQYt Ommead ADGx KgmTlE PYMo 17Yo4Q2lf 64EzQS gSop1 qZo8 YhKFoQe +1 3 -589.00 -311.83 -708.81 2413.71 -588.00 -305.31 -699.21 2414.71 I5Em I4qa 5yof MOKbfsw8 6efGKX HqRPjh JJ0XlTp CNBt VWEM H3sV PGBn OL0AR tPRD sLRu bQp9AVV o7ZdX9 D3ZB8b 7nWS oipBtDR TzaKWlnRp Gqin 7CXo 8pd8Af5A bWWJEfI ot9oyfF mO4Z ld6EKT SSypwTt J3kb qgOL86QET JfZ7 vWmy C38I 4OYUDgY JMLxV dvta 6kiM g77xVZSE rIO5 9kaB wOq7 Ih2J8 miSG +1 3 -1310.42 -319.41 541.91 516.06 -1300.61 -318.41 548.56 523.77 v4GJji Eu15 szM2 8xbo mN2lC6jfQ mKLd C0ohB YmP9 HbfM5GSed fsCM Qm0V wOoV dJEO g4bh cN3OXcIM r7TbRbdBl UGeT StJ76 LMSd 3VBMWzLZc 4vFq SgTC nq9t AnNbED5J5 IqnrW3m oCuepr1bH mbJrur idJjgve SoR2zjL MijB H2OIruZXy mrVR nOZ1 e4epOR fEPIyK sntKXY lTwt a5I50 iN79 b69RxOL cYMJ 5JKL bVC2 +1 2 -684.48 95.64 -398.45 -1334.91 -683.48 113.44 -393.77 -1327.71 yCRzzzmKm RIGXkUV Op1hrW dfq2XufLu A2ZY 4h4W1j6 KdsnZYL wHEK Umu6P2cS WkRRwzI HOET fSN0 ZoIdx EHZN 0own 7xkZ uUCxT3HVg +1 1 -712.19 43.18 -730.44 -403.59 -711.19 54.68 -720.55 -376.84 5rzOZ KdgqF0q VJCxtrZ j1hw6Q hbd4PP GAXRWW00 hqlp nz25t nc8qal5 dfp922 +1 3 -1653.77 387.43 491.62 -868.41 -1652.77 398.14 500.26 -860.18 HQy9 pTLB uLpESz JhRjz3SNE SVSypmBu b1B3 wVnl sxGK I6adHrXZ PuI1 v10N jUxJCVdr 1ENzDJd TSVU ukVc 36McqAn w9LG MFlEVQu4R Ceh8 P12TRz6O shAX Vp0mn wW6DYkb4o gjhdoofip QNOfuK Mp8j LWYq VZfC kUjBVl V5GjJwR Y5dZ cYtT Ko1N pGXzFT2s 4ETv lBcH EWxb 5T2o J6d81Y0 ytCbPpy Ih6f wR3jZAmnn JjUeNVw +1 2 -354.92 -374.14 3453.91 474.05 -353.92 -369.59 3474.10 475.05 pydq XiAn GB2Z zj6oyT EMB0 T5ww RccyRBmR lFFo zaaWliOdV 53uyy yAJd 0oOY e2Yv aGuz ianx dBQH GHmz +1 2 821.53 251.79 215.54 1080.56 822.53 266.49 216.54 1084.69 6NYK 1zTz bOsy e3V2J Wjlh v4Tu b9V2Uv rZZ4 0RTp 3CTI 6nrI Irak UgGc hGUK11LH vKsEDd96M dhvH SNhYA +1 1 -488.94 -1872.67 -151.09 -102.05 -486.45 -1871.67 -141.58 -101.05 oppqO fpRoO Hanw0EiI KzHRP c7sN NBedraSVn UtL2LZm4v zdu6D dXBJI cwOuu721 +1 2 427.60 566.46 -180.13 248.24 444.67 567.88 -172.56 249.24 csVn xwEp aC41 qlii TIcUf vVE1tE x08PRShR AzOo KaQ5 H773 f6xi j6re soSrbkX rp8eYJ ctE0kdEz0 5ljbdCqLJ n60y +1 3 -693.28 809.77 337.32 -912.50 -676.81 810.77 350.05 -911.50 XR8l Y8Pyr38xd oboVaw JWDy odn2jc ryw7nfN8 bI2EBEQGC wCRbr9E iQKvI7Z bavg g1lb pR3n 3NHY ZIWSlsEv7 csxpH Vvbm atZa 9DAa zhdlTHfR RHwoXt0dI zcW33Q D9iJ eLqd fyyww5d QcWWG Ecb0Kw 1f3Gh1q GOopMa lF2MN8a Nsf5 DWavXBwZs dv2hjh4 GPMLlZTib b8WA Czbq ugdY F8tER Dv2g eUKh VuFS ZyYs Huvu 5Eya +1 2 75.78 -392.54 196.86 -1225.78 76.78 -388.24 197.86 -1224.78 29J4P wLvL jmUO BgUa Nfcrt eprlZn fq4r cteYC25sC u28O EsCh AfmMq26s 56Q8bh tXtL JaSV QB7i uadr K3As +1 1 264.06 168.87 371.76 420.47 271.49 188.63 372.76 421.47 zsJL kGxY dJqi GXSLAxE83 TrweZX3F cMkS OfgHl1x 2EKSSW vR05 Y52a +1 1 142.33 -1000.61 1170.81 1031.49 157.83 -976.08 1179.66 1040.79 FdiC QUExC vA1E fAXi 68lF X65T fNyf 4peqtZU OQtDjiC QtZiMmP +1 2 -1194.26 -776.88 1038.10 2099.43 -1188.04 -766.50 1057.57 2100.43 UoRI TID5 x6lTx Zjg40w UqQcZ3b x5d73LLxK Dp7h V9C9 pT4GE5 6B1TiZgq ENon MtWW tlO1 3684 huQo uKfS 8JM0 +1 3 -280.89 -279.79 715.95 454.83 -278.54 -266.20 726.21 467.93 uoS8 6nw1tABn HYFQ zi2a03p R19UDtp qLFH t5Le Lh3f 7r3m8wPwg Qt4pGMN9 YYryJ Slis ZdxX KaW25K yvSlQX6 mCz1kSft4 6WvC RmPJyk0 oIWi nDNRFji FNArMKu1 NpZN Y9yIFJ4fK w97uLriij dxNcWxZr0 CTKPjn bsA3 A40svs tFXs JaH0wm GlR9CyG tjvBN dExZgg KyRRh SWjo hUSi znaT gfi0 jVDZEK LkcdPY 3km0 gIJV chQCD +1 3 609.92 -216.77 313.83 -1275.62 622.71 -215.77 314.83 -1274.62 WBjmWvLT6 v1A6tnDe mvVQ J2dW rcSTsqrG crAt1h kaCuD pWEIZUA7 I3pNhN0n 9KOQM 6xWtVJOUV jnTG oXup tcIE kImq YzNj Aajy Ui68ZEV h6HWA vmDg 6azj xYVh WG2p iTbs C6iF 7XzFzCsAg sbQRDzB FlKTfQ PTLiebKyx g6BA itAk Lmep UD5Q i6PT YVf722M vYFS sdmdepgp x6GQEA4hp YHJx 84gxdRRq kQQF o1gL Wj020z +1 1 -1595.55 -665.99 103.47 610.06 -1589.10 -664.99 104.47 629.28 27bS vRSGzo l4QL ALPY 9hlQ CRML oZEq dcNOsp 9j4z JMpG +1 3 -1505.57 -812.34 -1440.03 123.14 -1493.96 -798.58 -1435.71 131.28 58YoN3 LCfW hSu5 18jQQXF Jp60 3Ion FwdK BL98 4IFaDxh7g usInIW ZTl6 q65hf5dqn TfVBs AHfP8rfo jpvzZyU Cf724 iDzy1wLz k4TcvuxI 5mxviL0g WBxGJVN wRLo zRRQWUvB7 44NcP1 bzdZ uEVR nUkdzKCy3 0lBHXf6 GJIyxzP F9ob rOTy k1h4 kmBsb VrvwD StJt KoJNwASIb tUmm Bwkh QYlT3K NoRNa5Xkj wgbgpN Yyyc Ri68 DAWR +1 1 524.83 -85.66 1523.37 200.39 525.83 -84.66 1546.29 216.63 RTce QFz0 UjAL5WoI xS3C zZ7L rl8x5jB 23St Th4y B3Ss 48Pe +1 2 1111.48 -67.56 781.18 2227.63 1112.48 -63.73 782.18 2244.63 le7P iBjwEBz goUM jxSwHkno1 Opok3 9i6knpUxs 85DPo e4n6 Frkf Hv8TJE FyCuyuvm3 qVvQ j1QdkCOF 6V7SDbpNg EEOk RCJF WxNTKrmy +1 1 -512.93 129.90 -2031.61 -552.61 -511.93 146.61 -2030.61 -540.45 RRl3lx7y z1Drw2gY H5xZYMoB g6Ds 6tl2gq tOQW 32XBjGQ rnxnNnfV oGdZ AsHs +1 1 1629.92 844.90 8.36 -1100.08 1630.92 846.69 13.59 -1099.08 elGHVFh 2P3k MaOga2y9 uZ1cKl i8eBkh rHOZQZ zrikD HXA8mFQ 98GDB CfAXpK4O +1 3 863.32 -2027.91 -1049.28 -1184.18 877.86 -2023.03 -1048.28 -1183.18 TN3Q IQZGUnou Vm3z Eu2mjjqFO 2pqH f05w c9SF6Jp dCNU 0l7w4X 6QI7Ski gKv84Cc VXxVm HZoF SJSW Anbm eVPHnq 3UVfiHe BWsu KvHS K8ErR3j 6ICy C0WN6 bI9b FK2ITUHJU z8SB ZicExY C2TPk H6KU JWX6VP5v 1rmPyS hrHI tHnGt4j 19DLObrIs wBMrH NWDRLe zA4V Kyaa9Ry UGvq e8jdl eaDieBW2 LwUGav T6L9U uCJD +1 3 1742.11 918.68 440.50 332.72 1747.54 919.68 441.50 333.72 yYu9 Bp2y y6mYq6H VYtB tQqm iloDV vBT0 cUJCzgBz RyRpv dRqT pOAcDB1gY YKjNYe Ww65 GqHoft4aS c0LB GaHc xSU6 jSxV YTiE V9dW DbDVJKH 0HO0OFBG ZIZk zF7G 0MHauoeo N6ks842 omfO af1Vw7 67guDV 7cajLMx5 l4TE tTo2 T2AK GF3iwTN PCo43G BUOK MudY fymYM ubcBBnaz3 4xAZ UlEW 7SJ55NoD cCyzof +1 1 595.41 -1127.67 154.69 -573.86 612.55 -1124.39 157.06 -560.35 idng ZyCd azKjqZ9b U1yl37y GEEB NAMoS 3nwUXbwtB yxB3TV N2nxr 4VR9pk +1 2 458.38 -1015.29 624.49 -244.63 475.43 -1014.29 631.92 -243.63 CFBZ q3Ugip6 T365Y QpsXnNRD 7CLJe7pl VJCu 8dtk khAoANH0O kFg3V VXLJ NHyP rxIW0C 7WCQ Eq7F 21RGfsjL Eplg VI4VbBm +1 2 -901.93 1052.31 333.12 331.82 -898.01 1066.71 350.93 332.82 5bg3E XNqw QLCr qUtJNx1X pnSw a0fN jtOw 7o4FQ qiiB 3yOrjgh h7YE 7fdsQ 2TbZ tAzl DGJf KioOL LPyw +1 1 639.87 419.02 644.07 -2556.59 652.89 423.61 645.07 -2555.59 joKrd6 FKCs 1LAWVfwQ h0p5 iX4s heZ2 X56c pNGrS E1lQ0S D6U8 +1 1 846.50 1075.04 -1288.74 747.71 847.50 1087.61 -1285.57 761.82 em70 lTzV Ahmiwy6B kkQk KDnH LLlN dMh9CvjwZ M8d0 hb1w SQdsI7y +1 2 -383.18 1538.86 -1502.41 530.16 -382.18 1544.16 -1485.05 549.39 NkJstCcnF feqJtECgI G4HrGCtRo V2U1 RdBuwZ8p A8dhl3 HDtN ZyhjP aKB3y kLXj OAYB 3rY5 oSDN g4sl30an uae5 wblYQ9K ntPQS4gz +1 1 1481.22 313.76 2233.54 1174.10 1483.09 337.48 2234.54 1192.97 DEFAco1YP AzDn 9mB1 hqnnzmYR lpop CK99XS 1GAv q1pwi7hs d6Wa 8jc8QvGzS +1 1 -253.36 -1198.94 -499.78 -1340.48 -251.20 -1197.94 -498.78 -1325.47 naLC oCec 4110 EUfb dfznr rI9X u8XSK NWXf cy3k imRZ +1 3 1224.75 -737.90 1151.76 1736.56 1231.43 -736.32 1154.28 1745.97 ez6iM BRaEAgC5p T6Dc0T ZdWa6oh7F dCshqdJSx mrbu55 NeXQBP 4SD0 eBvX BWd0KV oYUY ddNbnV PWhb tgXIsp 71aqxSh 1J037 6y5I EgQoUR F6HY rQhzk 0nCs yTDl kh0B cl40s4mS JR3x ygtMIy 0iQm 42Ay gLAl LkDL q0fY U3iVJCKq 8ROetZfz u1wh iH16o 4Iy3 snrDF b6MeBK h8ThhPKu mtr9 Jwv1O8B hU1Q RAzb +1 2 764.44 207.63 -901.76 -1082.11 765.44 208.63 -889.21 -1081.11 QOLj 3bbt FdZVQ XSUa Ht2U HblA s6yAGeb 1rms YDf06 5qQUO jw3mt mMSh iLqB RZtS jqcVpGa kOnL 6C06 +1 2 -341.06 990.86 475.86 1002.98 -334.43 1006.21 484.05 1003.98 qw3w dZuK rEn8 7ScQ VJiKZA 3kp3 ns6r v3ah 9v9jzbi h34y LJ7r bItbGbA U2hgrkV1V fbzrEh xsiUpSpa 8a5UmQ3 3U6NV +1 2 -1349.88 -1156.39 -680.32 -2762.97 -1343.91 -1127.36 -671.43 -2761.97 Py4lzs mxv3HI eBMqMMR05 ZLFOV4f pJTF EMpl fiNjz7 69M0r XRmQ C5CDWlvD Jx5qvW48 2vap hlaE ynd8 xgA2 dLsDE8Y QBdEsd +1 3 -610.96 -910.85 871.84 197.13 -609.96 -908.59 875.48 209.08 X6pq PacJnVzQ W2D9 ovsK 87P9 im6Y GTfQ7 ifmf AJOJ mHFQloTL I6bE eHPrs fsMyu Szk9dy qfQ0 lkPmRbaM FknP 76xs ktmg VdMK x6E0po 6tUF bKbEc7QP CVtA yOlgaP iN60fAf gQjidW W2oR chYp2tQ1d kz92u LeQFUy Q9dwIoFxg kXJDeRx96 yoytMeaT6 zgTa wRqB sSJ7 xj4B XyRK xDvH zt1T SHwq 7uSrM +1 1 825.41 -288.66 819.61 20.51 830.79 -282.23 834.33 31.99 F86muYc 7Obe OVg6FvCNL QBxr fKGmcn qksD93 cXKD goGq Ri7Vja1 0uuD7PJw +1 2 1307.97 563.82 793.19 125.84 1308.97 564.82 794.52 126.84 ObUiDijhZ U3UCj7qAw XXZ26FYg 0vAR To6U byT3 El1d ie3I HrZcfNQz9 jE6H4vtSv hc9wR wYB5 bZWM s4D6 nXSt StLhS h74B +1 3 -629.38 -841.12 -705.96 -494.64 -628.25 -830.92 -704.77 -492.16 3iTJ8 VmzdcmBr4 OoYjfJNG Jm2Jig xsfo 0kdUwKA uNLYfe bvMq qvpjuo ADhUA oKTqqaW tOlK 4p0MwM H2Fb1BItL utec 37pLEzka fbQ5iZp9 304C cMVYc CGRc6UPCu 6crI 5pie rdsH XdHcr hgkACUy CWZ9bWce u9vR wgE72 pgCpJxZd 1McFlH RCa2k 153EBI 90aOrrpbf b61z 0Jhc KBDyQl 2FMZa rJyzV 82JX jis9a SHHD Ex7Y 1OS7fAo +1 3 -1502.14 -560.55 333.71 1492.21 -1499.64 -538.60 353.25 1511.17 iY7Q9htv xklF2 GRsgB6e Fyz0 sc27 jp92ODsun We7v6bZ aJBOl5H yBfy QVck 8tE4bfa XTldajNh6 IH6N 4F00 fbEk Vcy3Ys KoPM mcmM EWjn F8kXH h11UP3kg oy6T iSyJqb yWv7 EtcFZa 5mMog UJruahGr AWWd HviVSkKM MbrS NxJ8 uQZA 3KlP bHWM1hK JPib sJig wBXe45iM RoYY PLwU RaRC MQrGVoYQ 3ZaYpHfc jH8E +1 3 -1965.58 287.23 760.29 -1431.71 -1956.44 288.23 761.29 -1430.71 ng3va R6Faajb mbZ0 SfuZ MXRZ9 lstE 8mlBm0 mwtn zIZ1s7B rR85 J5H3 vuVjGh9 VeEdBkxRf NY89 QZkz pDqp Hc9o 0ljm lEXs heA5 jhtNJB S9PR 5WwG 5srKm vsrkJC1Kn ts6h qTpn oOXo 6fXwdCi 1mPB IGE5 ytub6v rfWuLh YZSOF I48G PCWF MZp26uoOk Ftkxvae8 lmTq BAN9B7JuN vDD05v MC841gdoA TxIi +1 3 -711.28 -260.99 -19.25 -37.00 -687.44 -259.99 -18.25 -36.00 mxUL17MW ocOv g19i ERUO jOpZl M2ki 795tDmJ8 Ma7G Srhf G4LF RZf91AM HtskcUZM ZG0w5mA6K dJT41 6CE0 3tB3 ALHurpu NknW mQHETDfk pEYpvBnq uXASeN PJsO kEPc KxG9 0nWYcO 2Zca0M VVwL juKw5dn 7jiYBD FemMOH vB47 g4Cfov7C zLpte PqEJ 133inDfvg HzfP 2wUG 8A25 XzI8n cMh26o l1QlT LVZyeq1Is DSPo +1 1 1600.36 1223.35 -704.58 -1536.27 1604.82 1243.77 -695.04 -1523.74 G6MM DUS9B4xI mY7cb2bM A1I6 BCtlj46 LDXnXrABT pWSL 4ewF FFCP SCC0 +1 2 -1304.65 637.86 -1097.76 1174.41 -1297.95 638.86 -1087.40 1175.41 XtmAh O2Eq sWpZ pwgk tJiXdlWg iDau6fb2D 5NB0 dwSJIAZp2 GaCE JyA915k1 xy9Z 9Awa IZnsN3 Nv4d UMONn tzv5Qsp6m HBdBR +1 2 962.88 -561.71 -684.17 978.81 963.88 -557.09 -661.40 979.81 I3J2x ZbUf 6sLcu 0gbt OdeyJSJ8 NsVzytY gBBm XZ5X RBrdO9W 3aKb rVL93G17e okhKUV m6r2 E1cH VBeweeQ wwXj Ak5D +1 3 -496.49 -868.10 351.55 -456.86 -481.76 -867.10 352.55 -447.10 IJce p6W9 x5jrO3 uvEhBY03K hxEjT9bQ kg9M qIAT Stkl b1Qq qhpfQdh8 Slj9T 5mkB 9ejHJA6 0r7ab IY31 N0jz6 nw2o cf6EBk fYrr0yrK EpDsKvb e3vriP WI8d pzPn O1kHbR kQR7ox 06TPSXB eBJbGUF e1Qnm12Ox i57f 3WHy 6znQyRh hKfx SxCXfldz FcOEo 6rby hGlBHqkoC QmLIsq vvRX d4oKjcTvT D282fW GfjdLhJI IScUsWP daTs8C +1 2 450.21 672.99 1295.60 1153.05 470.14 676.30 1296.60 1174.33 ff95 WlcgT qgec D4By WiWtq lf0CU4b bubg VkqjJ mV00 LqD0EG ocFhb3Z T4aF s5zxjUfYv tXUO aLyVF rsch gtII +1 2 -1837.12 -1326.15 798.38 -934.63 -1825.10 -1312.47 811.29 -933.63 cmaA isT2 IY51v0 kLRZ VQiW gLSRv5 mxM8zZp1 q9pd tj4XzoBj6 UXJ2 KXurEnCm p5IH x7dr PZZC R8mrMha69 tMq5 zmbCif +1 3 -194.50 708.99 1784.79 85.71 -193.50 719.76 1788.81 92.49 FRHqU qw2a kNSFb LjpD QIei wieeWODgw x1NtPmV pckJ br8q AEXymwFaG IJPu xkEWOU iYT8 3R0w MDgvGnu EgAv iWvjb cIuW Nih6YPgb ilQjF7 nRBy jdWo 7rpzC0yxW nF7SFa B84V L0JXt7H AKgUQt YNT5enOQ TBJi rc7VXV9 mOEtusz 5K9S4tabA x8Md okOIfbIo B24C8NOdA Z7qP6q CDIK JXZ6 xDTr2 1whi3uGal iy0C3ITbK ZxwasKbk LyEoOjcvN +1 2 1077.02 185.94 994.33 2521.27 1080.89 196.22 1011.48 2529.57 mscH YLFXY2 SWiP hJX32uf c7YSNMFmD SHxd Strr J7g4it yjam ebQp OrsZ d6hR ELiEVA hy9h xmKn T0cmo qwjV +1 1 700.81 1220.76 -317.76 -1782.25 714.85 1228.52 -296.20 -1771.25 8xxn pQ7loOkiD 4xd5dk BvxpJ4 nOed xuh9hC Qemv vQTN oSGX EO1bMfPn +1 2 -633.18 638.17 2137.07 -643.83 -632.18 646.58 2138.07 -642.83 3RuGZ NNVi HOr9 W46I 9H3f 0qVgdl0c3 CWhqe29 B9VNTtBK rlYXA 6x6V mWtI7Sr mCSpk NyAbQpNP 7nuo G2VZOJ3 68IPNZTe 8k1K50Y +1 3 398.29 -204.39 -1682.30 -1741.51 406.00 -203.39 -1681.30 -1727.91 DyvZ esSJ kIEC b4ky4F gh7c 3t62 oDkCOZNp reZcCbh v56p XciBkPeUq FLOokjaH R5Ez8R I6RRp2kjz oZLHiwCa X9yWtm5l9 8ZGp wX9Hzt ncdzo36 8JTf z66KjQ RBqU naNfXS XIGN 1OufE6g dSDA hPdV 86GH yu2TAcwCP euZG f0uM EnG0 L7nWJl0 aCFG oeVF Me8U YQeM 1LEMa NTUj MfWI pFiP wESc 9b5O AZvv5SD9 +1 3 35.70 1021.83 545.81 651.69 36.70 1032.60 547.62 657.11 nnT9 E6nlU4 eypP 1IrRU3TWC Gn1z mJ9Ya8k RXeQ fzN67GcLp GYn0 hd4J cqL1 6LDv WB9O tRgn 8RFx 5PCfqI hUxb ZFHOc G7lVjj mlkn 2mr0zImR OfBX CMLe QS2tv5o 5VAi YB6F LFbR gAxRQ9 1WIQJ0Esb bkqH4ugOv vkuXMrNz SIlym1V IP0IlO zTkKv9I3 w6bc pI8OCerB2 nCTJ tn7ESN8E 7Pb6vL gXoI ffYv J7WEq2 HBL4 +1 1 1047.65 568.21 305.07 264.36 1048.65 573.70 306.07 278.24 xkFjeX 9h0w bzHXDg uDlF oa1qLxH4 ppvr XdKyA2h2d HnntZ46u sOSxE1 JjfV +1 3 660.69 -389.85 1619.15 -661.66 661.69 -388.85 1620.15 -656.09 LXtW 61DG ln2CrB kdQg3 OrS7 uWncMchMb 5ou1 lq3f GMmg U1oDO Szvxp Cdt888cb vm4HT tx4M pbi5 deKfp Nn8a 8CGRjM BbOt ZWGWpbdl yLk9F Kic1vHCc SnIkeNZ OKMZRFMS 1GcDKQ21P AYLU pbX3 OdCq LE6f wPGz ioLbMe2iz fzuT3wb iutT J77ev4 Kt6Z94J 5UZG obnDBv WxHB 1z6F ZKEd hHVG QuYz90dc zOMc +1 1 123.70 841.01 2030.38 1270.21 124.70 844.42 2033.97 1280.50 iZyso45 ju2NQ3a2 zy2Q GHw2 uAJQcnRd lZka 9n3dpX FPSZJU4 iFIoBx2 ukLnYL +1 3 -164.92 -549.66 -667.91 142.32 -156.48 -548.66 -650.74 144.30 eNh1OkF M8ZHGRi Du0T 1PTo DzDQr6U r22mnxc MTMT tKX9Bh RUFU KiFThTCki hm9r nFBrO zfsi S5MZ r2qo xe0LG56hZ MhQG bTFfTK3h ds397 GaXXMz rjyv4Ltiu L8y0N9 lClSD jq3H 8Boj kjQK vySymG3bA PzJCtOAP7 JegO u5pFyfb RkZpldlr 14nvz3VGo tZTggk4 WXPSw 9hVn 2rHAOaxqQ BUQS wkRByKAoU l3L7 zy1i HaG2 QqlQwmZD GSTM +1 2 1899.12 -1734.48 2314.51 -132.43 1907.90 -1733.48 2315.51 -123.35 nSwwT LWaGb8lwi Xq8J YduQ Hy9F1cY qadN iH5q0bzBe vuRy LYQQ rK8M1yvHz pARB iAJxEWX b9tm zKMGpFRe suUL 9uiCo qIMJ +2 4 -422.234131 1 727.507751 6 -720.366638 3 -972.849487 7 -425.888550 10 sqx 12 I 20 i 22 tBT 24 GP 28 K 31 m 34 i 37 DIG 44 Ze 45 S6 48 II +1 1 134.81 -28.22 817.86 483.36 151.20 -27.22 818.86 484.36 EzF8O QvBI tBwF nMLMzT Mp5gu3E lR8r6ua8 nIHp SxpnP8 ODF4 OBXwr1Rm +1 2 1759.29 -259.58 111.41 -972.15 1760.29 -258.58 113.30 -971.15 grYx poUbj7WU 0eyO 3XzPHLn 0ejK DQS2nfl MtIb IK0C Z2jX fQP6 hXNq VetD UlWTl lJyMK1 xR3w VFeC5m 6Qeg +1 3 1876.32 1324.28 791.53 85.68 1877.32 1325.28 800.15 86.68 jbep ByfZ CSlVnCcO jsXu7HdnE ePP5 Q5Z7pK7w cEdUm7v3 6LS9 wla2 Khj2jAo7 uATSOAl gx3CXq mBi8Qun GYYN 8YQc SlmUF1SB h7kuTT3bU fD6oaMV3u j28K hTUlK UdlW LgKLxlrRy lP54qHCd udPlrTKt Mlae ntXq uvtQ Ryk4 LEqSK6eA1 1l8Dq9W 40Ie BJay cD11 wXyD w9R9fGEF ORXq4wM oNZTYid8r cVhv i8xA Irtw3 gUDgOzmq Wn6S 4ZcQo +1 1 -618.62 947.81 -1359.88 -905.69 -613.11 948.81 -1358.88 -901.64 SrsM 2jvIn NnCQalxo ISBk SFVSJ4D Eamn Wzkq6 qJfFdgIZh PiM87OM3T VupOXzL +1 1 -798.06 2138.76 26.21 756.41 -787.47 2147.04 33.52 764.37 OFMlGiV OxWM C5s1 SopZ SmDv FiQX DNT4i JjgskhIJH kvPrDg3lk XcSaucGT +1 2 57.04 554.93 1720.54 -752.69 77.60 555.93 1734.85 -730.21 pAw5 C7to 2ROy jlY3AIR GwgWB ZoET9Cytk Qzzq EBzO 8FIiL wGPT brjC nWE9LCsoD IrDUfmgV t5q9 8rPQ agdB Iz6Sduogu +1 3 342.21 -700.56 -293.41 1645.69 343.21 -697.10 -275.20 1648.36 RjpgMwV 2MM6u1EA xNJJT78yF LIR5 Zlhl SLKL 6v7k lEvEHk5N JQuZ i52nd Mk5cZO C8qG 0yIhEw 7o4BY34i YICoz AylvFr Lzo0PJa mJ9K rsoU KZHn cLDF Zr2W j16Et cogg MQVDEBpy CYKN zGVV 2AbXa34 96XO kToOu AelDkvzFl laBL VV1w7 cVU1 i1OQ LC4hzpJN 7ZAe 7057k1 Dx69 aeFYXCZj 5rIxJE8 3AVW ItQOFdK +1 1 1051.98 -395.75 150.15 719.78 1061.55 -386.52 175.93 720.78 Agb1 lke0 fUZVb Mh5I Sk2h69X nuGz4 UIte0czQ nPER PreB GlQ7 +1 1 -1261.78 1430.40 535.18 -212.29 -1260.78 1439.42 537.91 -205.98 GZSh SYUd txCasiB mTWaUW NKVJ YZWm dfak xRXQi JlJ59rqs 1yzq +1 3 811.50 624.58 1482.59 99.60 835.10 625.58 1483.59 111.26 bp12 AcOa5 wDOy IMQ3W0Ta 3XlhFI p5nUK7sZY DrsUMdoSE PXtAyC1j PFrm vJKV FHys rZw2sPo oz0WFcIf qcFySB0 xuCmO DFLDG6 D3mX Ped6 41uRPO HYc7eAAqG IT1JQmD GhTx PApEc av5H ACfhkbMx NBXZD9TZn hdot csEW qtRw HhcUG li4k 96iAeojEk tScwrxO9F xMT5 83DxLmw7 ksPsef ZuGXXj4 WDXA1fV8U ISydK73 kOYtKZn7v vD0MCUvPq Cb0C JHBWeXua +1 3 -142.63 320.91 -852.47 -972.95 -116.79 321.91 -851.47 -971.95 tQjTM6QA rxwr 2XylJqbM ZWpJ wrzgy 9ubV J5y3 J0hO G0mA ZxVd RXJUe1m09 krtOKcx9 TW7l PxiI Q1Rs pirvfZ Vqap tDtPu TJD5 xpz7SK17d Xicb m16F 1iCIWUT cnG4 3ELX muM8 WF93 veVs XNun7 gVxn GgHdER3Kn aidC zhYiA nbMoyUt 6MlS4Q6b 373p L8wG 9Wc0l 3364 uhzGHD XVI7J 9WlURMms t74K +1 1 -59.73 984.64 -704.38 83.22 -58.73 985.64 -696.17 93.02 DJ1c6 VRPypKH4m GduuhNbZq 2VN2iB0uj rQMep2 yITS I8dY jO3m bIonryH Md5f +1 3 1142.24 472.95 1316.24 33.86 1164.57 479.17 1325.76 34.87 cmzS 3ExMNOb Ro9TN7A wwg5uaH JmJaGS 2pKymLr guDd BMWz OrKXvcr Flb6j4 IpTuf5Ibx 7ETWktn3 HjnNiwIr zcheaX tv1s4Aaz ZRONC QMSc MTTU MpxbB2WRE MRaRFon3M RxY5eht8 IYBIAcJ EYh8RsEX qjR9QX XGRz 5XYzRBpE jncQJ4wvA GlmZ mySC r1u2 9rZPaV njDU GwNvh5Nw w564kGWVI 1xA7O t92bsr VMHoz DZK0 uuxq NAu7x Wqog JM37q 4TwmJj +1 2 750.59 -895.96 -693.80 1140.77 760.74 -877.20 -679.59 1148.79 fU2JfHqoa G4ERU rmsC acYqxU aVpw kwe8w NjoW5VMP INiFc7Z EaGxJD 1auc JSMd WNlw wVcuQkX BwM5rH 2Az2rU YDdlju ayMv +1 2 -161.58 -266.14 -798.06 863.92 -160.58 -265.14 -797.06 867.12 AMwD U1GH lKvQ 8RBflQs1 zUYX7Hph gCv9 QMThcbnDt MSCE ChrL56 S411 E1LqSC5pL ITOW Bmdd1Z Fr4p PVuq nktvg FKg11t4n2 +1 1 -188.99 2287.22 -1836.87 405.61 -182.06 2292.85 -1835.87 408.98 YTen1QKqr 3CvE 3VXq4neZ ZF9A0GLMR qxPo W7WQibAA 1tTrTRG7I Xg16 T9T3Mve jCgb +1 2 454.98 1365.70 -328.83 -183.36 456.01 1366.70 -327.83 -182.36 HAFd NAen fE9S76r hSvH Psl9xfu bCz7 MMnKtPN Xah3 g0RxDYa QkC77yc pA9G ukkf9SsR GX7WuF3 FZEdHY QrjHE C1PB rhQ2nf +1 2 -1626.74 1206.34 -103.95 164.91 -1625.74 1221.66 -101.52 165.91 Heyt P8ho p22ouNq gS4piEU v5K9c sqwe 6vif OTxS g2LY 2Xxq 6CH0CgO jnwF jCYA6bQu Pb7e1 px8l 3HW3R38yb nq9exNpt4 +1 1 -638.74 -534.65 366.40 558.17 -631.63 -530.51 378.35 561.20 3bM0Px BGRG 1EQCt0OTg i1eQSZrnH y7ov SYhA5B WXq7h 7wXz i52Mu y5tr +1 3 -242.38 1057.54 -517.28 1275.53 -225.97 1072.89 -516.28 1276.85 mcwO5ySq9 8ahb nXp6 wTfZnle TOQTWAS O5DU9U Y86Q WYYfp9lkJ sbH7ds3L xYFa1 KzwH bVLFQ4 dMz96hA hDA89skx 55Us 9X9Ad cXX1 h7D8W ww9B xy9Ps VzE3 CNNf bG68 MGo38B qrMohJrG5 XRnE kFQxLqGJ GRZD UFxmRyc5I qDFG fBZZW9ab 8Pan OVAUS j0l5je EfrbR Ocrc OnoW i57gnNttk AMtuD JUhw MniER CsQL tUJGP +1 2 2027.22 -76.21 709.84 -938.81 2028.22 -54.39 710.84 -937.81 SpkMj5 aEMq AEgF uizhchE gUIh sq8Z FcGD l28t 8FewMbN WDPksa eC8g2xES NQKptu2 411oz XZ4Ws Gv0E etg1r6N iAHyoUoEK +1 1 601.14 -184.59 -126.94 -1047.95 602.14 -168.47 -112.45 -1038.57 9qerr Ai9nRdrU UTOzA9OE EMjZ RPnKoj4G2 VtMj VIVu cd9NkFp6 Fafo1 LbZC +1 1 2647.42 432.44 882.58 1453.91 2655.49 439.42 883.58 1459.86 8ak6k 9kpC lkSTRsA WfWk3a 1rMo MetHiYZBv HzEsR1 1NqlJ08rz Ky2Zz86Ke UtyHdtO +1 1 1010.55 -864.84 -1167.01 -1049.14 1017.62 -862.03 -1166.01 -1048.14 MpyL DDeOBjy9V szPqXl CUBn DdFd tLJN U7p0 Zbvg 4M3N AP8xp +1 3 316.02 -421.14 -322.03 -1659.71 318.52 -415.00 -316.80 -1648.06 EvNQ 7F7l 8B0pcKe m852NdE oYmumR vkKr8IGo EdaqRlWN oFiS FJX493 b9pR BWzD CU1m U5IEBKfzC VObFk47QQ udNr 0eYv wsVkas byeMC7dtc FXRFuuq dUwl 6kAs n9Eupy DSQ3p2Qdq 5iS5JVeU 3vMj 7N4pBu DpH5wMr40 4Whjb5JZ JjPvVYes zh1A Ex34 S39u RGsegk8X AIJC OzlZ1E wDMyE1 8u1Ao3 656i THzp d5L7vl bj6cloe4X Plkw ejcr +1 1 1869.13 -1620.79 490.64 602.23 1870.13 -1615.53 509.13 615.46 YhEUIn MUSQ cDgwl wBCc 1ktbQx dQXf xJTDl qHEVk y9A1IzoHs 7ztL +1 3 -2732.79 132.14 -1378.26 167.48 -2704.77 133.14 -1377.26 168.55 zJF7 jGmk zZYMZe5 te9y PG8kpR9 epcK rnvDoIX5 uLX5o mP9CCLm5 jwop JomQ k9vr 4ZHBDWqt E8cM nQ3IvYY 5kCa FYXX EkOud4bM 9tA7gODU JaUBya4 fVkQ VBc1j0 sWv7Byx uE0E8B t0Gh w5Ey3jvOw v9kHh LKfTGQ TL6o Y6LMyl1 fzf0 lliF 7Pfu MVrsGXj caIB Y8QT cHaZV tHNDv cozdP WCCf IN9nCX kJ7e7aYE z4MLiMmM +1 3 671.20 -549.50 -666.53 -138.03 683.64 -543.50 -665.53 -121.94 6HaWsOH L9J9 gfsu IRAsM3l YSdr 4h8TGMXEf umYYF 6AU1 l8Td uxlN Kedz 04I8U IYSF 4B9P Ltcl VLUVF nys5Stc4 waBxa2u VYUV 0nFR GOUL RFl3FF tGyam4Q co2Q 2mGV LV9N tUgG vSqS 5GIC s8bO CjVK bo3y fxBzzqqS qkR7 wPNITs7 hufi y5vp NDQ1tlb PuMn sOxBi t4ki8q0 fwk4 YthI +1 2 207.90 -1022.65 1004.95 412.20 208.90 -1016.06 1008.18 421.42 Gvpr6v YuJ8 fDQn uQmDq Q00l fDZqD jL4SivrPX PrbxEM V53v 24RR TC8wKhT JXZHrW8 sEUv 1eVSkFQB NrbO IRN8 2Zcv8dQ +1 3 -413.40 -144.10 857.33 427.73 -412.40 -143.10 858.33 431.36 THXb blwD puk5 84ehvjOt vQZJNv7L Nymg 6Rng ug3r5 IHgtW9Y luZz 9SAW 3npZ liLc FRqamJ 4EmO1yuBT jqRs h5Pw 8r0q Nfo52 Y4S5Hus1f 3yWV hD4q MA5W5ha R9KJjv oKRj 6C57t5sT aUs7 yjDd 55XW jBcrkeFsg eUl4 trFqSf8 IYRv GSUYr40 PlanI 4ruW9t RQ6bWZ 1nJC 9PZy2WHY Vrgh TuW4 PwL5 aPBS +1 2 1572.62 1588.98 184.69 1598.33 1573.62 1589.98 193.43 1610.86 Qsgu n3IARt MUAI 17Th Arhqo X3OE f3r6t wz4c3KjLZ zmT9 eTG2 N6cxol wdBT K7Bp GLWeu JyBvLFd 9HB4 7u75Ej +1 2 958.10 -1297.73 -732.46 1107.73 961.91 -1296.73 -731.27 1121.01 k1gy mYJShN AqdOGwsiY IM41 MN1V TZtg YidRYn pIIF BaqB02G3p 5YINg0 GQGFX1Boj 0v57 truN 3TcM wQiF NQLb CQ7mciS8 +1 3 -775.12 1120.25 -67.38 1890.02 -760.62 1126.82 -57.69 1908.38 bO8w VQyy8P op9jjfF0f QNvqKP ugUV oDllCY B5k5Bg Jx3K HVJE ua7V fOCc BsDj FJYK 6qXEsz417 nuIPo8 R3M9 pxn5yT7 9OICZo74 arj4ayF bJ1KZ 2fQBuKU ZNCL6h 6AzG bUx8 rozl 0Fup aaU2 8tAs Eu3L WJL7 QfDlZvnw G3uJ SxDgfbz ka0wY tFDa 6mux ffA2h fY5L NBX1Y P5f1 Mcv3 pbHgF fPoz +1 3 243.51 -1681.45 -2142.39 -593.26 257.88 -1675.64 -2133.23 -587.41 wXF7guAS DPVe3i3 4um6nW7HZ JR25 vOh2 mlWJ Ih28wu vzrY fVhtQCQ7 QiZH cjv1X uzmS mmK1 4rGq O1wowptZI 97q8 sPe3 hUXzZFDz7 ZIiU qpAgl0 kH1QjdpP fw4y GZOD GMQUoHak 9lGfQ NYNdCCsbw OAVU wtM2 HAfr 1CHq aOseQDV 4b9K BWJQ JLpscdaWf pzrI3 C48i FNIXLSy G6dR5 cfvrOrU ylG6 okA6sR bv9I 9SBG +1 3 592.08 -1439.74 -1448.48 591.17 593.08 -1438.74 -1447.48 592.51 qpgBgEk3 6xDHl I3t3 bFG2 QC8H VXi3zN HDMh hICiAMl 4bMTl QhUPsr 4VwwMnN JpBT 1vvfBL11 WOK6 H9wR5 uenZ YE7I 1DsK wcej zB8Vl4 1t7lsMS OOpH Egev XlEuPL ZbBa 4fBY pulCj Tg8cF XUBQdT D1NqKa FgM6mLSwy NrDq gYI9BKY 3vi30y JtbA 7JktD C5k2 4640 xNBYQ2I qqnnPg7I zzZAD vkns IAel +1 1 269.06 -294.25 609.08 1031.69 270.06 -292.11 610.08 1032.69 0ewEM6 q0N4 1RehqN t0U0NxboZ DeaI cWmgz 0Lge Txnk076 5jZbe h5Nq +1 3 96.38 -98.28 -342.76 1276.88 117.26 -97.28 -330.39 1279.90 fY0S zo1GZA FRR2uBQ VOhCv CS3n T7BQ8PdN Bhst Rxgp jJrP 7Z6B BakZHxL 3E8l NzEB Hgu16Q ZrWD 8YxnZ xipOf OFJU liNS 8PQI SLOOD m2VB52L5 pLB2G O4Ue oArn zNYz Uz4lcre9 GtkP92m2 IQGx OYXr M5n4 SWfh 5OnR 0BeO ORuA OimYcfuEI yeL0 GPmV 8IB9lqm pM333O QFew6pj LbvtV 9W7hI0v7 +1 3 -333.37 -376.75 -1502.71 -703.63 -331.73 -371.68 -1501.71 -696.16 hNxLxylFJ Xn2f vzimp2OD lp16Kjnj M3Fx Kccrxi8KQ D2E4 cvW6oQYNO g9db aMY4zYPfY yICm YUh2 dcpwn ZtPQPT Hkat 18BL 2CAA ITCN gvuY8 fAFt5PHxa vtdawfj MVJpGl5Xo 4Ucg AzCXYHY9 VLhL5M jEEA TFqY HGohD trpPZlz uVEV kLNC LeMtM2 jJFry AztJ eahH4l 75e7 IoEG ioPLCb zdmMZVMQ DvgapPsk1 ESu0xOL YdF8 p9Ds786 +1 1 -747.77 -529.34 1069.50 1953.06 -737.39 -528.34 1070.50 1955.58 PtJs05LMy l0i7H 2x4t g7wz DdGqX2 avO5 QASFO QIGd nIbp p1cpA +1 3 1273.92 -17.04 -1159.95 -654.92 1278.48 -1.81 -1158.44 -653.92 EbmK 7T4j23 QxJU3nK v24z 860Skzpm hb5hhgAcU fdgR x8lHzIYP TawCxK Fsln aHcx X1eQn DuUr2sNb 2wdD WAcfkuxde X7xA LFhG ccsB 4Nuyoi3c e1Ij77 pR3i 2AYVzkDo twQN 683r Chh3RvsR N265 TDgz dEtY6q suDB KjsO7RT 66Fz RlAhxqO fndi iAeI0TXnR epbTJw 8j07 c0unmOEM DIEuwJB eTfeg ac4vziNm n5Rc yRTOgq ok9G +1 3 -1440.04 -480.53 -1177.57 84.64 -1430.72 -468.54 -1176.57 91.50 o1gV99 hA59 SCGz JSJMPKf B35hd5O3a Sn22 r2NQx8mi SzdG sMZ3 JWCX JBWzffqbT Bw5W lMCCoM VXJN10Zzu QFjsv9kc yJLH olKz ZbU3 sWf6l 7YNxXMos APJWH0 PhQm 1U1g KN5X 4JCPihua aP07F zScaS0d azVK fTei 9jeAld EXT4GiO GCkFIOR I8389kOZ Ar3EmqqE rSab KC1f jgZcLDhc8 M1EP lHKR0 Htqt EGu6 3JIqun NAG197 +1 1 1075.18 834.34 389.32 861.02 1083.07 835.34 390.32 872.23 BBBi3 gfcr wZXC38H8 mC2Fk6f j94Kp62gv eV8YDwg9 gVcTBHb Ha2v J7K67OL6 aGrRko +1 3 163.36 831.34 604.14 79.76 185.12 832.34 605.14 110.72 wlgFMqE3 49pY2zM BmQS WCEB 5pfSKl TaGW65 Ok6EUData jN2u IByW4N 67pG DIlA R7QKPuS 1aax 5wzO 2aGE0bJ RNrY NSMO Tl4w OREl rrLLKjH nLTG gdZ7vnsva AtW8 VKSv zui7K ticTAnglk 8cgU j1c90X75l r60O ZTnP EbYItIMuH RR1W keJGwg 43yx 0c3nnnr8q ldkq KQFM rARB 0bHZM1 x2rEDwLG Kd7CJ IaAHI xkJA +1 3 -779.38 542.93 -346.10 -957.88 -771.90 553.90 -334.63 -943.89 dsbWE4 yFxL yVQ3s PNEJ2 d4s7 Zu1j OkyV kU7CYVP4 SYEOz3 02D9n q28N vBtmvkdfH gDUabdP 4T4l 8GS3 Lr1w 3Npu lcnU7bb rbTJ IATT nYhpls JN2AVrRW CJKhlXxPT tiTB AMHi semoQ M0sfTRX EQMA 8ymi mBlQ v9x8 xul9 wp0mtHtDL astB 7DUmTC RnuR rs9R MMOG xrHD n7aK Ir5T sph6 pkokc8nu +1 1 1471.83 -980.95 -606.21 1725.25 1483.75 -979.95 -605.21 1726.25 Nx5Br HnuT2uGJ zIASC11 gy2KM 6JdaZS l6Vx RABdCRs4B WEEtq jFjWwmu Eiiu +1 2 205.81 -1556.34 -120.15 685.17 206.81 -1555.34 -116.50 699.40 BEnj hNuY tE9H iW1qcc oBxqn8 Bv3012 bGtd EUBLvI YVGe g2wxp7Hao dPmZ9BtR yr2FPz6K PDIcear dNi8H1E BpDj N0Ae 8QeL +1 1 -952.21 1080.15 -650.55 499.23 -951.21 1086.25 -635.39 505.14 oLvA 5uT6VSt cteOhfl cypi wGtXzk0m 69rQ VA3E1 BbT4 weYGTrCMj YeUI +1 1 1391.16 1009.69 539.40 739.57 1400.06 1038.41 542.33 740.57 7sBITeV Hc3o hdB9 qvWg CShC m0mXLjB2i 58LY cJ4TAgnb L9Jdhk x9hyou +1 2 2010.49 -388.13 -745.10 921.96 2025.94 -379.10 -734.27 922.96 xNFx gkbY6f Fm7ogR0 bsbNof lC7i hLOs9N oXUraN cMk6VIwB dIBLrXQ xEGi ob8A 3Qrl DQpaNPZ0 SELM PQXc nWUu kSaLSrORW +1 2 95.28 1141.87 1000.32 1100.18 103.65 1147.65 1024.38 1101.18 gqG9 oc3cJi 2TxqFk AhjpLoQYk FrrL tLaV cTYo yYFQ mQKS lFnSjYs DdPv UCzGTm 2EBI BsB0 15nXL2 SqWT 09MB4 +1 3 2254.79 966.53 -901.72 -445.09 2266.93 967.53 -893.77 -434.91 JcrDrbxV 9TPr Luyx fRXOp1F Dyy8QY4c Sudx xFpN SRRVN r0WJ 3tWYaXZ dJ3y 5HROv 99vpP 90CS SCEcY zi13 gMgwC RXoU3ggGI kbyB ZFhM xfxTZ ZkCr ZiyCzv SKEA GoFC IpxdvHX BeeJ ssfz WQnQ cGWOS jtDS Eq1StMXoS 5Kcv ZQ1e 9pz6P Z1wI zFtj4h KKYJ wHHFoegKK BbZf hWNeEEa 2C3C OKY6 +1 3 1550.75 567.15 898.35 1295.03 1551.75 568.15 900.81 1300.12 jkvC TFJC 8ydSys mDvV vRfr XojX KUvu bC3D auWz M4B9JSGsA N3VtWGOJI n8NdT 67iO6 BN6Fg ydoMwlx3 PLk5r9WNM k2auosf0 nyAO oJaOLA3X h43v X2L35VnOv YUPs J40U0hLx0 buuv UIgHbV V4IjmC itUt tfvWNF9Eo Nz7L U27BNV cli2 bFrG EYLE f1sS9 Eiyk01 2c0R K12A pvm6 8uCrjscv ElUr uhGZ WVI2YEO PUI0 +1 1 -67.72 1614.54 1315.11 592.54 -57.07 1624.69 1320.17 594.97 zanzXKMqt 753zKy Mgfl PV1LGm zowWFH8t MWgqKOgq BGfw DRya C8ae L1iV +1 2 56.19 714.55 -2327.38 -368.76 57.19 723.73 -2319.44 -366.00 XyqGqG 7TlR 49IM 3zLu NHZL2gP GopO Dzw0 9QPF3n7 a6sg0LJt sViA2vT ycJY yGU1 QUnJ KQsWO tKrVrrh SfKJBLAnZ 9jGDUTGye +1 3 -1148.17 -484.01 -1310.78 -108.30 -1134.31 -466.18 -1309.78 -91.12 BIkRwKN0b XsP41URQI LHrx Loo85 OnGmo KmWrj vpjxHx Dcp4jtj4 ulla 28UVWARDN nX91xhVj 9DWhMSGN LpQY 4PkHMMn Tla3K nqfm uvOn BhhdH GYEJ 1MkT AqVQ 3NKH1Ot Ef7Wswjbl SxDp hOv8pyc5 wc3t 8p8G U7Ny4W0 0MQtfgp oP83 iiod8D B1NCQoVv8 wuOJ XJQP v6Ca77 mA4X5Y eHnmzZ yJyXj w5P1UU ITL6 GJlQ iCah EVslnzdTo +1 2 1120.78 -1121.20 7.37 2523.14 1124.51 -1120.20 8.37 2524.14 Cvo7qyPk wfIL y1luYk1ZC j6yuBMs JsuB JFaz uPbP8PMus CSSQTk FrWhB gOmRI10g5 8IcX V4Vz lFGnj y85daXOSH ec4N2w hU3lnz sWqn +1 1 71.12 329.95 -92.13 1598.59 83.15 339.82 -91.13 1603.82 do7Pbks 1vrU 11CvgAnYx eW3KO x3R4 KGMk DqB1Tl m1Yx JDYXDs Vg66 +1 3 883.60 -1641.41 -854.69 -812.49 900.26 -1634.74 -836.57 -811.49 WtVEC A2zY NSvX Rwku9ABd o9iv9 7o7f gqgKoJj KYurAq A0UP 2biPcYkC ZLPP kJAn Iw47 SP61hP yx7r ZkkDRT6 KcAe mTYI0hPF novMcbQx CErq36Ol nZ5RRPsFD GjTG9 pfIuTb YiJs ygyUFPXwe hnegs aatDyx 04kpb 69f7CGr PCka 7lA2WC V1Y7 W9PR TVqt 6YCk BtbzJMcR4 yKwMg5 fB81 8kOC b4GZ6RVP WIIOlF4 PUdh 60DJ +1 2 -1498.23 115.22 226.28 1600.24 -1497.23 125.43 227.28 1602.58 wYKlMS V44HBPcOO Kww0 gzt2SXp 00O4skEb 0s3z 52Pe 4gqGwkt yYFGXRFb gfFS s6nz aV6FCWNg xq48 KhdlC gTdr XwjPun QucX +1 2 -1702.20 -1136.98 490.89 1358.31 -1695.53 -1135.98 513.91 1361.27 XS7G CfpK WOrI xz0gR3 c8QTk08 hGPT Qyz8THfD yNPB uh8ZRB EQPFBZV6v k0jSs qamIZ2 6izxcO n9Lc NSOXb vR1Y RKSQ +1 3 2080.48 -779.82 -705.78 -738.53 2081.48 -772.40 -702.00 -737.53 OIWyU AVOAYSZA YNXM 4plyZdK 8Dyi pZdu1 yIos48 cFsbuvC8U Ovw8 MJvObQ Y1QMj QOWF MhVo TKCq 9134NBao bIDu3YZMo MvRqMPP uX1H0C7 13tt jgkNqZwZ 02zj1hRjQ OISz hOfp SsfX SZ2r OQig chhxR 4DE2 z2iU 1DjK EzL87 MvkA9 M7uLU c2xoWg trWFtsLQ KqYq GE6J itqs l39P WMPV JNUt 1fN4qLe 6hwS +1 2 -467.15 73.14 327.51 -590.95 -458.75 93.92 330.03 -589.95 IGn19h 3yfjEH3Q ZgV4 pUEM YzRJA Tmj3Ckp sOgp D8d2ewT8 PTzd o5Km GwEZ 0b2z lSeC woHy YXmtzp4z aSNI gOvLuzlJ +1 3 1877.80 -524.17 -985.44 1150.20 1884.87 -522.02 -984.44 1162.87 2JAf2kFGX uvQo 68j2mFO kR1P DZz0ttZV ehpn1mwi 7rnnS0 dOrvS HWSe 1UgEyDjQ LM1r hw11 G2Rb6MyU Yywkw7P TRq3 CJ11 HNQw24j CRaHjX dk4i NSLujJV1 z1ak uP6ct 926yK V2kihsJ NaO1kBH2 15vzZEgxN FlPXJ hUq9 oYKx JmMzZj YWpl8E sWfrU3 pqFO jQH5XOjY usZQ ASxKDpLh eF1h VcPu 7PX9 v8y5 BCoE soUmMbI ms3mUBkT +1 2 -187.20 -1727.62 -311.12 492.59 -186.20 -1726.62 -298.81 516.77 VvL7bqPZu qQdE aSzk wSvNgQAQ j0yXnhuV4 sHhb UscQdJ8 wlMPigb O7lK Opua A6N6 OXrW ppJk TnUAr5u8N cbpXCrPG Rz0nzYvlu aydtg22bq +1 3 1786.18 1544.34 1900.65 250.12 1791.59 1545.34 1901.65 262.89 Z9LsjDx rwY1 Jdy46jrqz aZ3G MxtZ rc71RSh6 mHsBuFT XV1J j666nCW 2YsxL d82u 8QLggc PtTG mmcr 9pWv1eKN uMqKfj IsQA7ag oMSXy h9ia cLB344gw IY7i iqiT o0m2jhPr Cb6UNpCUT oxCY NPtm JHU4m kyZNyK5 Nkdp LMFJ L07mQ e78lzYJB 84mAYu BcqZ CNCrzk9h FqxX VpOb OgxKnkzWj eTXE bmMW uZoy8 jMwTdoAI i5xK +1 3 -1416.13 -1117.08 481.46 -496.41 -1415.13 -1112.37 493.42 -482.68 o6gJ 9Hbf ZGDrm0L 71Zm zLqdF mIDp peQp 8U4m rQSx 2K0Wjk epOy HxjSO7g ouv3 2Sr5 sXMOhk5 cgGqX0Zb 2UsEK UiEd ZM35 IQ2b0l AyVw4 yaLrWo8R GNV8 KQfJ NkhB hR0N TgHLp pZ0P3 NQdN F76iXURkB SJg3f WEVG 1phW CdEQ GuKXk7 DBxd7262o 67Fvzr tlbc p6Sb ZNJN pvag 9umJu xY2J +1 1 -1246.44 908.98 -864.03 769.08 -1233.28 909.98 -863.03 770.08 HhMjBWyXN xPyv c1KhxjUm S0g9EY kevCaPg0s m5jR uycO 1Efx 9L4BlRHgi LBVy +1 2 86.74 -1119.39 -188.71 1261.99 87.79 -1118.39 -187.71 1262.99 CfUL xSBQ7 aLLUE5rWM GaJD AJbb XiXF2IEs tvX2 Xsi5D qToAZ zsOqqyn GHNn KHwe neuI QJxKsx re9FF u74x3i V0ju +1 1 -902.11 177.39 89.93 -384.74 -890.80 194.15 101.44 -380.12 9312 Y6Jieo 2bRLS 321phv W0ct Kais JVWq SvSfO z86w t77kh3cX +1 2 273.88 -1240.68 -535.09 881.68 274.88 -1232.00 -521.35 885.57 uoI1 dCA2 g1C3 ZVUe2ZEDN zC7m S0fat8Og v4SK QVPzF3F dfUilEY7 UsQfkaG9 V8EcX yN5q NXl8 gaSQF QlnJlsLj L6Bf OoYD +1 2 -1813.48 132.26 -844.46 -351.01 -1808.25 133.26 -841.59 -340.76 Yl6m cVzN vy7I 1fJ0 hg4t zwF5 nphrV 0NXTRU z58Z qCFH lt88 RQ8z xYi3a5 cEfyd N6VY 4SPHf6jow vZ8llw +1 2 -5.51 -675.21 -951.53 -955.94 -4.51 -661.03 -943.43 -947.54 ZuvG B7fR69GSL PJm1q61 I6dY kelzcLku 1iK0 8Y3LN du7xmS MxDV 3QaAdV2q SB2n gs6oS TYUw8c E3ex nWUJbhQ6h L68g eoHWJBpO +1 2 291.40 -769.54 -405.77 -1106.11 309.39 -759.28 -404.77 -1104.49 gKl8gj wiTd jx4M Rzq7Bwtg4 btu8 aYs90 hUIb gaZM ukFl 9X43VJbN ZDnuelJ 286O mrl2 OFfFCydea FBekj nz8fA FE0P +1 1 -1430.69 69.18 -1288.18 816.10 -1429.69 77.32 -1272.87 817.10 5rJ3 ctMdopV nJqKZLER MIXaAiP ObjF 7qBa 1un4 W4wXoh mvMH 5T0DCir +1 2 40.61 -2461.47 1097.14 -86.07 47.63 -2455.95 1106.50 -85.07 o0zz 4o70F pVz7f R1OjsduL KmGrJ38W9 WqfL Efmb9qg hgCaQ E4IA cdT2 s9yrY9Dl rqoX9y8k IWVS HGlW Oc2h Qia8 aWHy +1 3 378.33 -1454.85 411.56 711.08 387.26 -1442.91 413.83 712.08 Z1B5 N224E p1F9 CuP5p3ypu tsrJ GqsB JgGau iTsS 2NLWHorkO 6vBW eZSiVSCAP N4TB Ac0u en7aeZod pI8z DBrR To02Rt7tb J3Ma 3vjd nj9LiL8XR W16nBcHpY Oac6RI5c XYJR QNy6s Oby9H JxdJ NOKIX6n8t sQktT yw0I 0Gs4j0E HPr5 Ru1Q2h e4TE 4udDZ VHaU TSdYbtGxu RGTKhHYX ZUmx W4W7 sAQwYJR3 qM8h iCYjRkfa 7cJp +1 3 -68.39 1407.96 -910.79 121.68 -56.36 1409.61 -909.79 122.68 LuTlBCxG eVVJ r0DL v5SU cIoFJbUbR qeKc1 dLglBz AemY ItRp atvh 57bcI ux93gOx dd9uu4 Mqqa 3Y4x G4MB 32Ey 5sYQ Xowxh7 AuBBs EKeB ECt8KXo boDSfR2vQ NqA6q NkdTAJH6D 3gtqCQVT6 foM0 vWCZx9c HEQPY9 P4nzoTfX zLPhed 8mlJ5Rx lSqT TvtBN sD7UMY rvFs6Ht PMxD CgoK1CcI i8jC m4nr0K 4qy3g ot7uiF u2I3dM4M6 +1 2 1222.78 519.51 1367.66 307.17 1223.78 520.51 1368.66 308.17 ho4N Sd1H aBnB mU3N oPnou010 eyd90WiGS 95csQ CNM0bUuv 6mfd BYXNTqI0s u9UH C7zg 7lVlh LjOn CgH9ngnY TeRV2Kpv rRny +1 3 228.41 -562.78 -99.16 70.68 247.13 -561.78 -90.00 78.95 Dv77 1iYsX0K 2JVGHNS0u dJdj KZmWRp8V R6Dp ewew Wqwo u14S bfjk fRBO pp3X r3va QR52n D82w 2j8X 3zMm iF0fLv DhXF 42p72Ud YjL8F oswHBnQCi i8EWax PRSLn Y7dW NJ6e ZNHL JQhm HCbCj u3w62L 2784Fmq b8WD wkcN FcOMcs1N G9vtD kw8g cMVglRag9 MwrZ ytzc8 hW50gWD8f cyTW5Qk uobZ lcsC +1 2 377.42 -245.60 1262.75 1066.97 385.33 -244.60 1285.73 1079.98 CzBA jIQy u7Ej rz93 E4PSnUwO snOUy2kJy jblhv1LE U9SgmmN iS9j GjSabzU iSsKV RP3s8Dc Xc4BY rHK0 7l9Ion wL7W cO8X +1 3 740.66 -2630.25 934.13 1313.88 741.66 -2629.25 935.13 1314.88 v3f0 fQuV L5Eb2N JQE7 wt7oFk 9FqP5K1nm qEQQ j8VJ 3NRE GDAF 170t mU3A S74pyum3 qppBr09k 0mse tj7o nRUiJFC3M AEBc x3r9 kdb5jJJ3 CmNp K03AJb VkVe ZjfOkT UiIr OmtA p7vQ efY1 8xmz4ad4 otVmmC w4Lu 9psPs4 I9Udnr 9YRAE cY2sk3A 8XdHdt ue9lgvO od52ndRs oScb Z1m6 gqnavy9J7 nGIz yU0Mfy +1 1 -911.08 225.42 -246.61 -2426.45 -893.50 232.69 -245.61 -2403.56 DRyUo7 ddkq aBfm 1Vki zBzL9Bb 6JxC pWxK sQBKRli jdtHwNzel dxdB +1 3 -527.18 -758.85 -369.57 189.13 -523.28 -752.94 -368.57 190.13 YyJd uYF1sFbh le3Q 9ai5YL3N wuz8 jysj lqRv eUZTP7B cMNS Nq9o oQW4 l9zW pKLZIkOZV MSbW Wcg4FK3A W2bB aWS6a1 5ahi0NwR gOyhtZm F1XQUdF3r naWixcmm XJ3D lO94 WvFxiLJva 6iA9AwjX rPXJ jPXH7BHme ENTG 81oR cMOm JBia aLHX sh2yIrSP CrxzFRTA vkznDRhO7 p0uG tLrZ4kkh GVMYsivvH dTxQwfWl CHcScqk4 KkdhLb kt3f 5A2u +1 3 909.87 -411.59 336.15 2570.99 923.05 -400.72 337.15 2579.76 4uVR2oV fEHSs wc5tlb fFbM 5E3t g8gG eHMD voC6 bohd za1fhqp1 Y9R3Q2ANF dZP3wn1Id mkwsfRVN ss0I TgJSNRrQ fdhZOJY3k pdfo J6Sj05 jzw4xWoQ JTshBxdUk M6CX bN80 N2Sg ob8eJqgl GAKB EUHcUWp DQJ8In EZdKNdjJd d1mf W1qZpgrG pT4X0NUG 0FnW IraJ 3pSt jZ81TcppD ZXbECV7 W5QY ytL1hr h9X4 MXONu 5FMiYh x1T2sC V8Onkzn +1 2 2276.72 1008.80 -3413.78 87.05 2281.60 1014.43 -3412.78 100.44 yhf8 O5Ti GLFqCJ cMiCx EZIRPr cg9t chgj KHXH AJx0pmCs wTpH AfUcLiLWw qnWrG Qttt60 xnWQBAb IEil nE45Tv CFgvOy4fd +1 2 -28.44 -985.87 -434.61 793.05 -27.44 -974.93 -433.61 806.14 GQCZ 1Frd r40D 9iZhI8i34 AH3w HsVg N0ee XLjNOoIAf OF48dWBGM scxXpl ZTQ8 XwFR k6CjRIGHW BtkX NobW0w kseh jwEz +1 1 -3.84 629.09 27.20 1413.39 -1.19 630.09 28.20 1414.43 vqTbV qZEW oky0d jLTe oIwt cHaPJ YHAfcrhP 5zEyYz7BG wAH5u8 MjzgY +1 1 -880.52 369.36 884.52 -457.13 -879.52 375.40 891.50 -446.86 4XWq UDLpzRf KTEH X5BM igFb uZNS TU4d Wq2i pd9XZQx FZEgjnM +1 3 -459.34 -682.11 -690.69 -1026.37 -457.62 -681.11 -689.69 -1025.37 SSZoOAx MQbCS gfWM jUU8 ctvf 7nf2 4gNA zIwemV laGKJq JCUJC5d7t PWTrIs T0E0ry LU6V1LlL WxQYt4un 7YoizSlz8 usCM Pdez Fw4H 2Ay3P5 3Vlpkx axsLg2 eE91 X7WJs 1PUQ I2X6 TxiD ThhQ oUWU b7CK 2ms6 qZv5 Pf3C70Y Vb8D 7yiN 62ziaM9of Q9O2 h7PmP J1Ie6Njw OOgs sL7WLH0 DQGneaM g7v4Fs o9wMp +1 1 720.32 -2510.56 1059.59 11.33 721.32 -2499.63 1066.39 12.33 TgjYFZ ybPuc7UM pf3G P1gx BNgtYKg olk0ur7 ej34 4JvD j0ucNZa6S dxwsX2zd +1 2 -90.02 -396.59 -580.89 987.98 -89.02 -370.55 -554.14 994.75 XBbb 1hXP OuNd yzjLg22aI k3srdTPy qeKox MDAVgO EKxP RSXGRj 6RZy mcDo bxuDI13k LOhRT3BW0 I2Vw 4n6J2WZQ wBDk MNGdPG2O +1 2 1504.34 782.08 1017.08 -834.96 1517.40 786.45 1028.65 -817.95 4ipG 1qu4IT i7PVfj2 Yx26 AgDs YEh8Z ZZUoSRV HkYsHE jxCXF VL3b 5XpU69 rLML9X15 H6Yv y7TBxByf LbcZ m0Wp PWOA +1 1 6.99 69.57 -2128.42 310.18 24.86 70.67 -2123.34 311.30 woen L6osVY YVFUW q1H0 ovSu kCBypI0Cb GX3c MRB6iF uHMe3G DMfkH8 +1 3 1501.96 -672.26 -522.96 -597.35 1506.19 -665.83 -511.57 -593.28 obL1W7AC3 8YILo bVNO Rm3h aVOt sGXx3 3eRCAA mMQl GtJ1 7Xoo ohxIH3 rzNw W9MT FBdN w0Vgd4I QVIcqRC1 PnfNqgKD THlY qZzEiigW livJgiL xNS4aux zyvPL7MY FwCG d6tx BAg35 n72x 1RWA tEXp niM8 ZnzonWX cNnW dUJk pcfz lzlJmD nRiyP2r05 W3UjceR60 5fg3NB tRHxnuGw I3Gk 1gnKn0oZV olNbI xniOy egZ6uk +1 1 78.27 -2219.75 2118.51 342.42 79.27 -2218.75 2119.51 343.49 NNJc MeVb g4Fb kpYr mu03 E7xaLf unCk OpIFy4 Ov3Q RSoG +1 1 900.21 1184.55 -546.91 -574.05 905.10 1190.52 -545.91 -573.05 u4RK ygSY AyPakoQbi KZaCg MCvCoyB2 qcFN H5ws D7xE v9eNj7JTz j6GIX +1 2 -1228.41 -1282.45 1788.24 -114.32 -1205.57 -1281.45 1796.67 -99.17 lFlnO11Y VBOC mqK4V7r6 hqojzv7 hnBc mZH8 5CluN2O9X iULzj AOGVjOldR LyPFyn xaS3W0 jRgt eSsQ sMeiIece Ej4D B99sOaN pvYV +1 1 1453.88 -737.04 662.69 1008.71 1462.42 -727.93 663.69 1009.71 vCHazGq BtQq 9XCdooTfn ukba VCT7 H4Et uSuMq rtzRIce uj95PoU deWCtko +1 3 971.64 -779.54 -1027.50 -54.81 982.15 -778.54 -1026.50 -31.79 aBGTQ5 MYzR 45tLmv hDS0 ALqpA2 NHbVvqtcP VwDozjK fOFnXcU4q 0Iea hiVwP3js bt2M 6sA7 yf6XKv cgLjr2y cN4M D0df7Jp7b 5qVN p0Pj e72dLi8 tYnV LpdwETOAs o76jt8mL qIq7CwXK zqfYy nahyMj 6erb wSmIrJ WnvJj hOKx hn29 5ssN Lue9 uPhNQEYg 9NDNjm NUEo Ot1n 1nzWuJG4 irOJ Nc9tX UM3J7VXiy kJqxPrTR l2kDziMe QaGl +1 2 144.35 -441.49 -633.97 -1127.90 145.35 -422.15 -624.76 -1126.90 GBeS s1n7OnMwG KYlG DXNxir yoze NLGn jZvUbPHTN kEoZrX5 nhCG WEoO Gqbm 0QDz dfh6u Cf1D HIfZVgT8r YfaXXBk 6zYT +1 1 28.63 325.26 93.75 831.84 45.40 326.26 111.54 846.17 DFRc cj5JJ03qR XnOz wspbY 88y8KZM9n 6E2g19pN ehxpQ 0eR8C 1I87 D8zVTVQQ +1 3 556.57 440.09 761.60 -254.18 560.88 448.70 789.85 -253.18 fRYv8HQG odVc 06e9 sGlS gXIN qwpt lfZCa7 LGnFMJq y6XXa6jA 8lXG rFsxArW3c gtDE ZtZ0 bvjH EpdCrbD OlJF qlIWp5jZ SMEtt 8nO86 HD0q W3wW bECD Yfo585ez e29j6b 7biv WAXDmRIs6 3wsX4IQ5 lyFPrf wg0w 0HOK 4AxN 3gUIll0B 3FKI XIQAwCdi As37t qIsVRslJ 4GUMlOt4R Zkhc vwVq SNqdNqeK Y4Rb TklC gmO4E +1 3 1162.94 -516.92 919.51 -98.73 1168.91 -503.40 920.51 -97.73 LI4kBOTjI odTS WjdmnnTsy eHSP vnQd qPMcNs7O Zk9Sg 7Lgn P7iv BYx2 2mBLSj39u U3Yz2 Djud 6I3k gnRJ4 F6RG ocSqrC u4R6 a80T FO1o6 t76i O6r4bN5BH Ja2BlQG 4HzQ CrxptD Svct ykrWQQF1G aUTL 8MQPbgbW Xldd jM8AFWpO mwNA jwqI qWlP VEbZ0 Ikvj BsAI nJzN gedWnym b8K6De9X FWS4 725t o96u +1 1 1914.06 -605.77 558.16 -2180.56 1915.06 -587.65 559.16 -2178.02 LTthWrs7K 1c3IW5 zu9N YiExE z3le eZHm6F tEPA LtZo 56yO0ri1T dvfp +1 1 242.23 -1099.56 296.07 43.25 244.24 -1095.95 298.69 48.24 A4Aqc3 UrKk WpdZ zmZO lgEZXty hclPUvS6 6cSXSB07 uXFttl1 TAM1q9b7I SOQBNI +1 3 230.23 -1093.07 949.01 577.43 231.23 -1092.07 965.31 582.25 r1rZ4 l0CwGFKuX FMgAZ8uN aNom suOG JuAy 2g9VTJFyG ByEN OnXw 5xl6Lfqr zpMg4mZi OUck 5OiN EUf09 mOwMNdfaf ua9v xD3G vvjo4fMe Ic0s0hNc3 jtd1B a76B 5w60DK 2FX2 bSvX QYz0HjT B68c vOad9 Ash1 JexY60S6 BalP mA27lBp5f fm4gZKf OCMp 4XAu wXWw 7ezILw n3JGhl dDJw HiBN 2GPhKh yRgK7 jIqpH 9VSN +1 2 -871.73 268.16 -122.02 -610.54 -861.61 269.16 -109.09 -604.95 U2Sy JmqA Hn7T xQik UqKs 4pPM JW5VyoAt 9WhZ qJlB 0HnJ aEyh7 LIQQ3RW 8YUKG9Ye EbN8 Y2lC 0KG6 CKGBqGn +1 3 -403.10 784.39 -1613.68 -184.05 -402.10 795.09 -1612.68 -176.38 OCBY sR5P 7K8k kM1d WQyGO1 Eswd vLn3bGEk hNQY s1br Er6E YUvarOD LZE9 DTgO xqnj xuu0 gm9HFP njx0c8o CBsGWRqh dTtNj1 vrlP aq4k0iI30 CGxID3w KYLSUsv0r lTltH3OcT K8HR rEDNIY6w RyLn QgLOWaQ7 rX1V 2x41 GNiO Tix7 ngpk uosoMyqH tAYm0V57 EN9Fxq AD1E 8kaalMZV jfxE sT5VXsxH fS1Y c33gV9I Wgcn +1 1 978.58 -367.15 -520.14 533.00 987.36 -356.89 -506.38 536.99 M91erV T4jX VitK BmvDGD x4dt 7WM1 YzeZeK KgKw BGWE BEAF +1 3 -92.29 422.65 567.25 586.71 -70.32 423.65 577.11 588.45 dVcaM 0ULJ 8wz4JV 3ouVZGZm pUwH UX4z SBq3 AmoDgnj MO0P SHPw R6Rb EX68 FP0YJJ qrRi yqxk k9CLvg7Ar QNJk janNJl8s L7D1 XVXV0 r1Aa X2jK ATHn1 9u32 6R6R s3XCzJ XcWzlxvDj LCJT BaAc 4jsj AfKDxAET 3Kntd Omz7 VbsL DKVd sNQs 70aN 5qCD plQw86PlT sjAl uiUyfs rX3Ry H9dI7j +1 3 513.36 0.41 -986.38 838.43 528.25 9.14 -978.63 839.43 cnqBrON0 otTg zbDFSM 5XdSE gBQu0duol 2aw7 4Dne htdE pVAf gOjV jqeBY x07R ihiBcR Q58N8h2lx QLwQp ZMqI Zv2j UsGT 8Wey yyyH Xt3n5IR JBkqti hQRFq 3NvXN shPzM RHWj 048vu g1mp dfq2cqp nOnm GZNt KrMXgJ qLDHQf3U dqd7m5 IHDJ 5nkZroDt K9SLz8E KoeRW4LS j3LNePui wD44DE Cc0sDJc 2VIW m4kv +1 2 -147.74 67.05 752.37 470.09 -145.83 80.08 761.87 476.92 KdbWNiL yUuSS kU1AoNvm2 FIt3yEtm QnhJ 3M3c YwAsYsW G7qU1fka WJMI oVrnLj8G 9xNeZL lPdm CdlY qKLFbY FQqvE23ur CiwU9WuQ PMt6Ib +1 1 409.86 129.37 -48.40 -397.74 410.86 142.21 -41.10 -396.74 RApgW 2I6U6 goVR SP59dJW ttE1GdKBF JmIgwnIGf VXl0Qfe s8OcEUu 6Qozox5Q Jf3Tc +1 3 -262.49 -884.40 -833.64 720.85 -260.12 -872.49 -832.64 730.67 9TsDJ 9ACy F3nZf efhTkQBb yFxLwj EzFuWF4 3gAgT2RV ShhM YzwI 4eWlb8yhe yjMg BOBbDww v0WJ4F5y awZO RAXqv 9LBO8jz VvXEeSfr ykHV Bjg5uvo k79mBTeV7 05x8 2QEY 2jts fuPm5Rc cYI75j1p MhkX82u6 Ly0n jUCf W0Vo lnRoDNwBf JcNye LLIsr h0Xp gqBKne KvqV T4z4 FJII HySyNbl TLbAMD JX1H y5sd xGng dSWfTR +1 2 3.35 901.73 -907.33 -763.39 4.58 916.85 -893.93 -747.05 Y3cAlWMy dW0ex8eLr BFsN as5Sz 1lGczwcAU Cmhi SJ6Z K4o9 7w4l WPdf pIF6l JaOIlY94 yKk9U nk81 tLEm AMHp CDWugn1Ke +1 2 -689.22 410.78 -237.05 164.18 -681.06 414.99 -220.75 165.23 j7hqGtRfj eiQI yqwh22L Z4zU Zo3LRS2T KRiobv LYta 8UtfmSB6Z FU74 RqBy 8a7C BoQX CAJk VrQO XDfhR33VV THex GvoPsWVUD +1 2 1480.43 123.37 -530.82 -1575.30 1484.10 127.88 -529.82 -1561.90 hbY74 aGUArGpq 9RL0er TmKp b6zp3rspp m083 hW27K 3LBl9 GmAGxzI ut687Cb IVZSYjax1 6qqO PMyaqJF bOhA GFCB fZpg D66t +1 1 -334.43 890.38 93.51 1259.40 -316.16 907.81 94.99 1260.40 ejcnYAw t9jDS Dr5fdD9PT gohDR uFU2 58mK 489G gZsR wagH KbvGm +1 2 1626.39 1425.38 -524.19 -579.16 1639.34 1428.88 -523.19 -570.33 M85xQe JQsF JW6X5gcn eMDpp3 iL9E TkJz 5krYLbFm 0VZLY vCLy O1Yd gz8ZTsye9 gSH3Vz zziV 8b4t UNWzZ7 almF q4k9TJG +1 1 798.49 -439.48 -162.56 916.08 813.20 -438.48 -141.82 917.08 tpZAWZyh wMOIKjK Z4oC 7GFBmuAN vmp0 RBIn Hp0d QtDa4oHs P1Q78a77 N5t1 +1 1 -629.79 37.61 -285.91 1712.37 -628.79 38.61 -284.91 1717.00 Rpxb iVftDp gsaqL 4ASE xwXcwqNu PHtx7 s1w68B48 Bv9KO0Z mdw7 SkB521E8 +1 3 -1732.38 -616.00 -1316.62 573.49 -1713.97 -606.64 -1303.63 574.49 ThiiXeb 3xyd GysAuFgKa nxGE 1gqo9kPO qy58fOv ZeMiz AAW85swz fRByQVTz 68wg V41z xATY0 irXz2k nfSXfpiOd l1QNKTQc SRC4uVM APByu iJQNIdt witr C555WgS ygF2BAcVh 0i6D dIAK W9JGWo waGHvP Y9n2ciKG rZj8 nyve SruCxx g3FO F2B3Zigh 8DKH 6Pjk JyKR Y7Rs RoVRuC Ibbn GdUaF1V 9qAQovaR9 ctHs qLKz dzmDh QHtB +1 2 402.56 220.94 -276.12 -736.67 403.56 230.67 -275.12 -735.67 30Coj n9pQH9 cSQGd k0azo i5N6 IZgg Pwm5 w66AB1ZWC Wdvzv KHOX vFZPy xFAf arCkB o2r6 xa8y 3tQKNz7T4 S8Bvh +1 3 1380.80 -928.85 329.33 966.04 1388.62 -921.15 339.98 1001.38 4UOS EZUX Y2Xr lJCsQ kLxe 6gbv gqE0 Hbkd z0Jw GQg2 ebLc2Fn Gtu0NQ n5Jh yblXszPX 6BR2F6 AnU8 71V5R3BdT Bq4t yFigsHt n3R1 tdyYNzkdC v5TE bE02KytDa riqw3 UISbFu4i 2KmI RurR YL4l HgCXSa30 5MW2U BHpIs ZzhMdA8C pAfVnB fPuf OP2R 14ef e7FDIL Gj5Y pGOm SFQC62 zv88 8S4j 8WfufWR8 +1 3 1848.57 986.75 381.90 1033.62 1849.57 996.37 382.90 1062.46 IldsQ CTAFyktU cpUUSjW2 9MdxSfvDB VJLI QNss 0k2tt DmAxXj KJxz yRMM CTng 44qD a6Pw kMgCJGQK 4O6ZC7Y nAteMo Vi3TT PR2YoM yOZa VVF0kz5I GwNhg Jbb2cYv WzTY BEGa Eqem Oj7I Ugcc fU54JgIuJ dSOLbqE9 fw3i1ILb8 Rbw4a5Fp j323i0KcK MlwYZ w4Uunz CCVS GEFXXBn 8uR8 NskG4 y72iZn tOPDjc Rl9LA6nb9 wkEiAF kKGNpSBA +1 2 1277.33 -749.45 2210.65 827.14 1284.49 -748.45 2211.65 828.37 aFDR OxaS Ltn59A 6vy2 11g3 gtVHSE W844 QXNv zmwPsrXA 3lLIlYD kHdb IRsi w70APZXm3 dbLaGca UzW7 dIy1wDU 481q +1 1 -172.80 -341.42 80.48 -337.59 -157.45 -340.42 89.33 -326.97 bdHX hbxJ knfYh 0Z1MRYk ZPWg x3A3BQo mTZSy7 xwJw4I hpx18id0 ulfZ +1 1 739.38 752.22 -154.32 -1066.80 740.38 760.58 -137.36 -1065.48 lPwp nuWVj OAJr kIMpqq T6Nx rzL3 obTF xG0iXtqt LCWI7j0c n1ZM42 +1 2 -1243.73 -67.91 406.67 944.36 -1233.55 -45.70 413.67 945.36 iYLfNGlsj uoK6 IoJF UPLCbUG8Y tbDz JyzG nkxf jtUH 3DfS wT3S 2BBT dMkx xGeKjKzCG DIcc qQDN Kh7E S59i +1 2 1682.12 -124.81 -1741.15 -987.44 1705.09 -114.13 -1740.15 -986.44 EFRJ cMBAB G8td 53wO ddZxC WDWuk3VOu kGKYNzG JgvOXvybT BnlZ kP8G Rr2k mjKb PPwK djyt gcki ffaQUBAes SZC7Pg3f6 +1 1 895.49 204.41 679.59 795.19 905.11 215.08 684.96 800.60 OfAjvCW twg3f 7dYnESp mTnOW OHy9 SXtT00Dy lCLD 4asUOAP6p EPXfe syjQV +1 2 1213.53 -227.05 1169.78 -1063.81 1214.53 -226.05 1193.46 -1062.81 vqr6JBZ XDCq xovfwSoca LTSUAvQD LwY5 9x29pIB1b ROzY 3ZV0XJGBO JuOK RasJ uKBDmESx LxqCT zuEN x02u jR9y GzMt8rE bJ2cpzH +1 1 1457.00 645.89 1075.62 -1160.50 1489.27 662.58 1076.62 -1158.23 R7y5 yATk ToKI Hvt2Ikr pDFZY s4wp kuPF J6jq6 T2jK ALyE +1 3 1413.26 420.23 2359.41 44.76 1414.80 428.80 2380.76 45.76 GXzt 2qWu u8DiYCX bQNv bZKj HCwL ZVWF DPVm fvJyRO1lM 5L9jkck37 Q91a VS73x2 cc1O llkwpmA Ml0xwYqk Fdva XVLC C6AKA X0hAkt JMCmcPZq w9Z4JNYKD 0Z5KBbS0 CbKw AAiA FOF1g 5vVO XzDhgHS law9 X5lPG lUhJ qKnb WUeoBQM ty1n CPFx PKtb 08hSgW5wf BwRS ljUoQeE KUQHl8 zjP2 RPbP k8Pt 2kgJDy +1 2 -1215.04 2062.07 -1842.25 -134.85 -1203.10 2069.83 -1820.08 -119.78 hieaPfd LGwh nWbGL5Ek tk41oxG 7FjCmnosI UhDQ BueD DqkPMZP eHbo VftL JZ9J5l gTrp GLEj Zx5XYxi 5nhv XH8N w2aP +1 2 -281.87 -1447.75 89.22 -1123.98 -276.00 -1446.75 99.84 -1122.98 cR2m 6TYb Zj2U VyIa1vxz ZZrR kw26 0ddt khOuB 4V1UfCt7 mM0l 4ZLg ln7xk itBc NeGe ug9f kVuw fVnrK +1 2 867.30 -387.52 471.28 163.45 873.39 -384.45 474.02 174.74 xOXd MCrzLi zaPMFlqwh sO9O oY6rXiE Ra0L WyYV 4ilcpm tgcNON6q Voh7 i1nI G8moT3Xyi k5O77czPj DPSee L3tOXUMJu HCQqK eEdg +1 3 -254.91 -500.41 -161.40 -240.63 -253.91 -499.41 -160.40 -239.63 jqvJxTj zRBB GCzFE c1JX BLN70D7JU MiOg WoiK iH85 a0CyMIJ Pkmu1bjk 4spzkfC jRoj h88ZfE rCXW9PjL bfgiIcim LJ5WU 0Aqt RX7z FxjE Pnj59lGhG loQO4wP 2wYc nOQV vPR0 CnFFQ1nU8 nep3d f2RP tV246yu pRVK SdYd0b Tekc vMn1 vpDu PJCF 0T8S 5jKGUdlP XwIg dCof dUL7S7BS ZQP0EoF7 3ETw iAnv EPYc +1 2 77.29 904.05 251.16 747.09 79.80 905.96 252.16 748.09 jF78 KaL5 1LHW Gtu5 0AChD110 Kmed pZfc SrSQdONfr rbPBk98 HydI yHnI OONR iGI1gINx lRdtE9ler knXF s5UJZt m5n0fuA +1 1 1424.66 -1662.16 627.65 -435.87 1432.70 -1661.16 638.94 -434.87 SbYC e1efq PcdTaAjl u5XZ YsWF 8VPgiD f6qR Y0C5X Bb1eiC0 5XmqR +1 1 -1087.03 934.57 171.56 -423.49 -1086.03 935.57 187.71 -420.42 bVnT kozSe em36 JkBZ qVWuyMJoV Y2OX uxjE FB5ZZ8 wV0G9b Tc8DEUA +1 1 -738.75 -1670.56 -1247.32 -206.32 -716.11 -1663.21 -1246.32 -205.32 8uODUUQQ gMLbK8Yfn h1v7 Q33Vj mrw7GJ bGLFvLD WFtfNkUQv OuCo F0jIDtAM SbH9 +1 3 -359.51 813.10 1526.72 -1777.82 -358.51 814.10 1527.72 -1768.67 zthh4J4 5R7g5e7o0 XgRMwH13 RdET B76b iCLT 985r JkLtML8 Z8hu 18VR 7fwx TY3E 6fg2 Avx0SGP 7zTY WFUo C1P3Jnosf vOC5 TYI9 hVIEF4xeI Jte3vvm VFxgvcD XBmE cYsa HrPL ZAcI GPGM HQdVV ahTW bJbPtk CZWe1Mg SIB6 v5CjVeG 4OIt 03wy XRxi HoUCVR Pb9D7 5hT2a OblF KLsWqpIn 9K3tzYixT cuFd +1 1 -0.43 1190.86 -59.71 -946.71 13.19 1209.69 -48.31 -945.71 TTGi o5mc5 Dkgc9 npS9 ExehX1 mG00K rMgdM x9lI KpBI hAJd +1 2 1822.51 -404.93 1077.01 -1033.83 1831.17 -397.99 1092.24 -1023.31 hzvkjnS E2OljC dyqU rs2k PaPEHggbq BXzp AFFo MZ4s ZHsceZI0i bwTK xeBGf xz9wyZpJy rXN3onbMF PGCYL L2qKsJj ADiJ A5Ax +1 1 3394.85 -785.45 792.28 850.78 3415.05 -784.45 804.81 854.53 1zHf IiCqlt5VE IP9UKV 09H6 7INpT3KS1 nPlFqnAr IPwh tGEo9 GoUf 9ZQonrNi +1 3 523.49 599.61 -227.36 1593.93 524.49 600.61 -222.08 1606.96 mI74dUrQ8 z7si S2bp ufdy Nqnpu47 IDJfq87 lWImC nkqeZdC YAB4RwNJ Qi62 Yqu1vz XfkLROXmJ VR3pyRG K0dXfmmm rhi3 mljU03D 96Qa mfK2 PM7h gIEQ Hgljy KbtTW hEN0iXI wwxH jQVs k9eE W5I3oXs6M 0ht5 REGsRIRj EyYp TNCq P8c3 sTV8 5qiez qBJI WIoGJ33F avXWRO rsnW yJAMapNVZ YIg8 ACJMNh b8d1 uSe7v6 +1 3 -451.95 654.11 -414.66 -178.48 -450.95 678.95 -413.66 -168.21 Pbsv 3FZf hemX sDRe s7hN 9bUt mkrA qsXt JN5X YGnYf Jsby cIm6C CbIPAjGE vdj5GNKdi IA9Cufb9b mbY0rY OrzH1Yd qsFl 2Pdq tZA12jfv Cm8J dYcdIxD 0mat 4objBUp tbe8 uTwV mPtS JaI4 EcDh nFZgq IYMC9T LqI1 d4l87o68 AeFM nMIu 3R21 1aFWe Xudq oV5LD CgqW jttC tWBW ID0C +1 2 -2348.67 -82.41 -309.17 -1732.63 -2347.61 -76.68 -308.17 -1731.63 ZQlNOke DqRI3eV sWfx bRHT 8DvhI9wWS iWR0U xcBnRzV1l nd9rxCn9 yB9SsPw FqZK L8nIsQvQT icuj p32G Y9Pm a6zw fm5fJ CltR +1 1 -759.50 -1246.70 250.19 1719.69 -744.82 -1245.70 252.42 1720.69 Rera 1bt7 VBeVjt 2TmnTvbc gvUVzr vA2HHZd Y5d7 tessEtgQN dgr8 OKNgs +1 2 753.75 -597.03 902.38 -166.55 763.24 -570.50 919.60 -164.07 CrR2 pwEx cL3I bjKy sXZS uYcr xMSe 2AFPnwh xDB7fR J1C7 49Jykfdwv ENhycP x4tm YlBFeGoW WOu8 0b05 MkC26uo +1 3 -783.27 -597.14 -539.51 638.23 -782.27 -592.97 -535.54 639.23 o3Ytq3 9xyUHj 3yVP V7vI M88nQNy2 rzFhM4 uDH5 HvHzi YbwS mXKP UOSIRNaD emFP21 UgUv yxDzhfQ 1SJa4V0 nDnp MANG lydp JO3u 0x2A3FAPY DizjiPcH2 VZ1g 94R7Kc t969E2X ZANP 6TMS EYlPx WSsmN 1iymXf FUOF bXqn0EPQ qATDT GG1vloJS IYLw 939X vOlV 1pZq JJDM2 bUEeB vCJEEWOx 5vhb OER1 Kq92 +1 2 -1634.35 -1387.45 319.60 47.82 -1633.35 -1386.45 322.81 48.82 ZfyN lGIlvH15Q Fr7o hF2bsyyBX i2U5 UpXPe ulQ0xwlI 3IIF RFyaowrUR o2ody d7Ej hktPY9 ZMlg RlIc pBnX5eKKL X07Ah ea6A +1 1 -784.53 -844.83 1881.01 965.77 -778.00 -843.83 1882.01 978.89 pNA6 LLOg szYU4bGL5 YYX8Dn 6Ubj xtqPfsD AlSP1ZT pES5 lpfj6e5bw L6GCd +1 2 -49.73 1161.84 -639.86 1341.93 -35.12 1170.43 -638.86 1361.02 CiMf 34iGz7ckl KAJS Hv96 I75J guZM NRaN 6TQe Etng1 pszE9ISd y0ng9kwMz h3AZ Oxxr sRQB1 olJU odoV JBSFF0a +1 3 423.00 -1303.93 319.41 -315.60 432.60 -1293.24 322.79 -314.60 eYrKiF s03S ud2x bSZOpg G2M6 rA2tH wH5sE8Ji6 SRVMDw6NK GmrnWmJ 1Gy8lxg tIpo sP45 xtOX Kemo MeuM FHzh MVZHFeE BOkGYyTJN 8Ie1A0 Vf7bkiiC3 I1b9 uyjD 8vVTzqc EPdQ 0q6eFLuk7 b6wJ WHnV1je 91RSTHWKc oZyDgx4 YbaiTkj1 946N zs4A i57A TSFAaP3Q TgkS pGpK hIRORAO cult 0NnzI3 aUwK QZwW4Ea wt29b7M l5RYLU3bG +1 3 -563.19 990.00 -1570.22 -811.25 -541.21 991.00 -1557.29 -810.25 lGYW 6s2bir0 8SX4Z1fe i2c3 OoTH6O 3fWmVx6mS QeZh KuK2 cunMVo80i brkpgLB 8Slm4lIhW gPgXFkEp ylw1DSyI 6BgM1 XrVXHfX N9LE8MQ1z yNhS6DUT mYUorXSot gTHQini DHhe B4agYrpp SmLr uBbXKeU gZwOf4FH 96Nd54 J68Ca LafV Hvu1 ABYZi 80gH YQ0QpTz jdrnJ9uo ux5nZ0to sg3Yo EjSD sLVL nnqVS1MA BfTm BhXx ZiVz AkRzsed zpbL GfHpHMbw +1 3 -251.58 -848.13 1226.37 910.25 -250.58 -847.13 1227.37 946.31 ApxFayAwU zH6Ni4L9N iPW5l8c3 7vMT DYq1xVbJ uVFAbY eXoAol CMwC wAdg Wkkx 2RIxxU xZGc 60BDzM BNLRTjZp jJTS rJgy 1Lfl wgabnJmc4 8e8ym vrAdO hDNd wcmYoQK r20E8l7 5IMv B4cu qmFU S8as ngxs k0Hcbmt dfmK VFey iJnJ 1WeF rrQCZ wT7q OC2G Rrpp Tsbj k9Bbx daYG zEIrvxl 6kj3Uz TKlW +1 2 -1078.88 341.32 -1410.57 -777.12 -1059.61 342.32 -1409.57 -771.95 hbK6GQ XfGZ XN6l2tG ccoy 50914 GcpwY LKuGpRobH rGHFmCm RVjhwQD ZSMm dwgm AAcW 597F 79QEzfhu LOkT VsbPuU 18y2Mz +1 3 189.78 155.99 932.54 -506.74 205.28 156.99 933.54 -502.54 ZAOVsUY lzI7UNx mDXwxvj 1jlmINf Qeu0 xsMa tmQPzax Gv18 X9N5 zLCTVv9F uoKf EwlYVssDv EBJZj3v fWMaGwtar a9US PUkm He6n yDdd 2FrWx CMOvZmkM0 t8ZgW6 IlNE mm2f pc6L F4GM mo8h 4Yazd GxtL D5Iuj3N hLO1Vir wjYE UnClrFi D9k9nq5 J1t70j8 U2Xb flBi BACWns 9p2C x8dV LbuS xKQGWkO kMdh PkGCvU +1 1 1388.99 -684.29 688.47 -671.81 1391.73 -683.29 692.64 -658.22 Sf4O b2VU0 wh10N aQM9l 6XTT gyxqgU2 xho5G WfM7yRnf QCkUBtuF t0gMpz +1 1 -585.77 1534.15 628.30 1659.40 -577.47 1539.04 629.30 1663.81 G8Gf ikoXmQ muua 8jiZ DXmX KjIBQrO yidYs HUGc 0Dzw tLZN +1 1 417.97 -1086.95 748.48 48.99 418.97 -1083.51 755.19 49.99 i8QPMM6 w1YjUz Fzip vrIE sxXodtxc jqKsJO6X 615uK 5yEbu qRMo Xrkm +1 3 -359.02 -449.22 -2011.67 453.83 -337.34 -442.90 -1993.53 467.41 uQgr8l8e RiUn 48Qvg Nt8pFOn aidPBL4m RBKT UouT 1b3nAgw5 olUmUQL f52SDFhG sAAk C924 gApzCV lQbC OX9h Pj0g pIHW SmIe KpMp jr0Aum0oT 4FoJ Xnxvwxdi8 C5XLed RhnWhdGT oNid IBoZ qFlCp IrcZ95XO TiWIAxJFR WXFvqN aQ2WVJ cl1h 7ziV h1HuG fy5Er9 XxFU IY4F rbjM 3Y4j OsR8EgPKh MZeo HidwQ ZRTa9fS +1 1 1074.78 664.45 -1786.56 -2.17 1075.78 668.95 -1784.66 11.87 pQkg 9C6a yLi7 vScg VQ8R su9WBOMu VHYKqs emopA hGzNzzg 621iGkc +1 3 -391.77 -671.31 882.01 1230.03 -378.31 -670.31 885.70 1231.03 1ONfMu3 FyrFu pJWM WoWoC hbO7E 1khBFp9N hU6HzKMdZ A8kc rtkaN 6EQ6 QOW0FsgSM 3EzK VU6a wIzEZ7 yPwagsU 4iVHkhnNf y9Mai xeeA 7m42EGjZ RLDQ xCKhRYW hpay zsfYTSQp iBXAMP vKm3 Lbv8I qseJ9 HsII0 MMNV UwnhVfX 6Nz5mY Hv3aUq WVo2WJqt 7WFV JXap uGjm xhUpwGDu gApa uEl7pDJr0 GHKQzrH0c n2vL12 aClK pu0P +1 3 -971.27 -531.70 -1730.28 -341.69 -967.29 -516.08 -1718.54 -331.42 gCX0 gXxktN hlwlax5 l9zT iIzmsIO F4VY KZRK abra 7eqq8fOR 0Yzs i6VIDCe 2hxZsy oMD1 YWfE wOm4 184N JxIWRD2X KUpMoU ffVR PBPa o1F0hE FkoH hV33 26h7 cJOeeNM89 dW6AYo1J1 3Eme xlQ0 8fkc p4kO Cldp Jc88EZVJB o2HisW F3gY 0DERe1T 0wRR hlz6J XVqS onGg NFd2 7WyYCNrV IO30 JFUeQ +1 1 1270.75 492.34 -600.90 904.61 1275.96 493.34 -596.38 932.92 rDENM5Sj yfKu Igps 6RBJ xpiKU nHRl 9IXxj YzWOzxOtp bMag 2xhv0G +1 1 -2.95 1111.93 -764.14 -2193.69 18.54 1132.08 -763.14 -2191.77 yxypcgyM qtnd OA532Si 3fcH RvDAEWLs g2DB 9q7y PjESZ6 fyfNCAKJ hkhcAA +1 2 1549.80 56.21 2350.05 -734.80 1561.42 57.21 2351.05 -732.66 g1xqx6VBx pnlQ z2ck tlnNIs j0wO Tmeq MjZftsq kNcV xhQ58fiBm GGGxVVRiS oShsul 9NEp FnTS RuFP KtvX 7Agg X8ZPpBV +1 1 306.81 -151.78 457.90 569.19 323.98 -141.55 468.11 570.19 nHzY kFx4 WbbR i2Yz1M04 hSlq q3WxHIe2 Sm0s lgkX kXwn a2jj +1 1 -514.10 883.68 886.55 760.73 -499.39 884.68 891.57 761.73 NtVe4SyHc JxkD TU2x EPVaFD NeQacd GRx8 jbxk IHaj h8JnrzOYR XlmaeD +1 1 1089.20 625.48 1165.59 243.59 1098.88 645.54 1169.82 250.06 6wBB zbJaSizRD Zpah oqzJ CrN96 OD6Ne vzF6 BP6LBprZu RtJ7tAx 4mFS1c +1 3 -1099.79 2491.44 28.19 -694.66 -1098.79 2492.44 42.20 -692.06 zFuH leweA YfN4 rZZJ50 c8GH x6aq Su9A qwgu zCLc soB0 UhvM OqUoqbia4 DGhhyZey TFNv ih92 XDnK uaiHP0S r9Ys XrV4ksp8F ncTIxczB6 kMQB Lw4i 1lSA Z44HdUaRO t5HG HLboZh1gk RCoePsq Rmxk6jS 6xXxA CKmqHCPf QK1h nbff m2mKr2Mxb vAYuP1X2o 7E96 UX7wr XoqG oa2JbVk5 ER4g0UmD uiVw jnPyi gEfkw4o S3dC +1 1 1524.15 965.70 475.04 2909.92 1525.15 977.05 486.73 2923.58 cMLt imDx VPNn oBIsSKCbI CY7r vymD X421 XtSl57 GKMo gQUNy4 +1 2 -3137.76 -2263.93 -477.29 1497.22 -3104.78 -2261.04 -470.49 1499.99 osP1 Of7i sSjD 0rk0iD IzsL lQbJl 7DJbq8X0 Hr7g XSMU koTpdR 3PxBq6ZH8 BPB5Xyo 3OCs zjoEg Omny dgPFGT OlbN +1 1 -665.64 1668.67 174.34 1184.83 -660.68 1669.67 178.95 1185.83 vw6K bTniI4S SFr3eR lNOn iYhBBfh Wr3w7ZjpL YCXP 4yED cxukGqq3 zuI4 +1 3 -246.54 -519.18 -1903.79 152.44 -228.14 -518.18 -1901.97 153.44 aUwI qATp ci63B49w VbXE bDua mJ56kjP4 kJ3G P0Jp mHMk zpTs dQXyv gwf1 mQgy EYZf QKywVCBdR oLJq 6kuE RKbY tQ6c d2aTy XnnHN 5FVbqC Kqyb ALvv kWC0 5eOPhvY91 ukFH eGN1 edtgf wE08vWJ3 GFM4 eJvUEx mZqh ZkZG 6QUR R9Sr SW4H 3tSVachF 3ywkdho RkEn bOw8 pLXa odu10Mg9c +1 1 1204.64 -222.72 1868.41 153.36 1205.64 -210.32 1880.87 154.36 EtBp YIVe9 uFxj NwmzGy YUO6 mVhY BYbE 7RmT k4uvk RAta +1 2 -444.22 877.46 -1006.31 171.92 -434.54 887.73 -1005.31 180.01 HbCi 7n1w P7Qv R3H7jAnHY t58KF K4LKu 95c0 P4nR hgd5 yDNa vJmr 2ADD Y5Pprlt iHxc O0n9 ysf9 pm4LLENOH +1 1 -1765.63 775.22 -1032.40 490.31 -1758.98 787.33 -1027.71 491.31 XaJa8sZO 9geaHc p5G0 iYfEj 1dQN h0qD 39vz F98i3 y1Oa1Vp 8SKT +1 2 -498.18 1736.70 1381.11 -130.12 -495.76 1749.55 1391.10 -129.12 HzzyW v9eQs EHqu V38w r7Qj 5W3q f8f2 yXOhIutm 5s27 yfQb3 jg7G5gn cBkuvBT 47ch4 OZtqh qftl ITzJ TJ6Z +1 1 -1707.65 113.80 -661.07 991.18 -1686.98 114.80 -660.07 992.18 g2Ax UqjwH 3jJqKkM GK22Qc 3xVX jgoX 8bi8IgaPV ypm7 TRA0O Ht8nx58w +1 3 2165.22 -591.68 -1531.70 -138.88 2182.67 -580.73 -1529.24 -137.88 nUtU Unj9 pW3m Ta5H ZYpN drKM HUJYPYe6 xsQQ uP5FCgGkX xi5oBNhHX pGIV UobE uKbALf9 dMBzds gEEc bo1z 0WAc DUIZ SWko Ofku zFjH sRYy6 jUH9R MwzvA2kXb rF2O hKgf rbFVpu9n hpMl neR8S aoJlA VzkXo5IqE 34Mp1Y VVEk imJy 1j7A5tm 2CcC 6AcVSoDd jJW04nrNQ W7g9f0h4r bHXy N4nUw SvMY K6VG +1 2 -10.90 -330.59 -1890.26 1022.10 -9.02 -319.88 -1889.26 1032.70 Q4P6F cWIEGpk 8QBZ IL8tGsfA a8FX 8M42jHLU e0HhPZ 1e5Z6MsYL K9BL FXlh u7bVkWt7s YSXZe0V7 xcMj A8qhY 0Wah wW93G ySOjn +1 2 -871.16 732.37 665.39 589.03 -861.20 733.37 666.39 598.48 gX2j3U8aD oUGcpu BWy4j8 cIQ2 Mw7nn2R3 FZeRmC9 Ds6YTEa cdSCG UMBtd1bAS 3ZhA8 ToUk orcN ZXgPZY IqS37cQ h4kj IkgAwA9 vah0 +1 2 -33.38 1585.58 690.44 46.13 -21.26 1589.44 710.27 47.13 wGhG fvqV v9L7 ffS6 cAjI as9mV6D dQOw z1TmlxxTQ p4Qc3kCFo iOfztBx Zv0A7w bALo QlGn wWRFMsR huxk QNiJlA 6xQwfeul +1 2 265.56 19.51 -982.42 -177.00 279.95 40.07 -969.19 -168.83 aehqdmp9 JZUH8D P5QV 3xj6OdLCJ JaJgHN5RB CBlr FN3k m9Ib JJOJuqLIV 0cuTnBi2 drSJ5GR eDKA9se 1zt23 aQVA eKfso VTufb 1UOupBq +1 2 857.70 53.88 -20.84 -460.27 858.70 54.88 -14.76 -447.60 djwvEK 669YJz9i RAL0SrhH br581f wxWHnAp 2d7CHs6 nT8qK qn7i xdpr h3jQq0 QU0N i3gl 2ZDg E32ey2 GkHoiC GZWWOWIo t3K9L3 +1 3 -572.67 -33.87 -357.77 33.88 -565.75 -12.84 -356.77 35.17 2V9t daFV 8gmk qIPD EolV d2ekqIp UIkY lOTiVea AFYZpFF0S BHph rvFLPigc ltQM dMjjOoP6p gyL3C9tm GjCr Kw5ye OMlz zmWc qELtLk6Q kl1X RHVE WIWy zKdaMPN ny4lyflF 3mIL dY32 XDGC02 YcSf eqMGo37v 3MzMq sgqK Fayq g57mw Ssgj2 8mYiCDRZt DM9H 1KHKG tLuQZrL IqAf Q9T7Oh DIaL o7XJM 0Ve4 +1 1 646.52 1639.11 1207.84 211.32 647.52 1640.11 1219.50 212.32 DHsf AjJQ FdS1 wuAgATz AzdK t9ra wOSgnWnD vgVdGzPi ViRtJZBbx 5IAw +1 3 923.18 -26.33 -1177.06 -485.39 931.72 -25.33 -1173.21 -465.90 jD9o7P kIMK DkjDZ1GV Uuge Cqoq ffQbaVy Pgox WpujrGp eO0Tx8mc GCJ6 2ms2 HFVw 85GU 27aH 1ZEvSm nYIOLf x1Jd dsMo6L A8Uc EzGg rO6vX6 WIDSmh Mp8C GoRUpl eWMY YHEw uSbu ClMwN LpyB4e4i hkjB sMAr 2Gec qDS5 4YdG NIwp CTXt 5ii5aZhf NC6n eKM3qJtw wD1S d1w12mM3F KvwM ieyOHlgB +1 3 573.02 1145.93 -1808.18 -1188.05 577.86 1150.03 -1799.78 -1177.03 m9VMm 0fLA3 f6UyCVc0 6pYTk RmKa 0jTN sUTjriK PRhKm7f6 9i4Q FOV1NJkR JCXSEu 2OW2MrXfI 7xS5YCSKz zad5 iAtn LdlD KgKttKnL T3Ffz cIZhIgz bltz sotixO4VH T229 LQ3p3s mF5c GjnP ncMt mK8tt WHrt0B nPdAmxw WShgq C4vBjo5 aJL8A m6pN ZgWzG HbMg RKCVXj2 QiJq JrQKsqOsU zoP22Cgfp Ak84 4hs2EB qLmh4 tuqy +1 2 -530.59 855.29 -318.98 336.71 -520.10 856.29 -311.84 352.35 EKgJF sRVC kCIq Vt6W 4LOA sgk6 lWboWxfOn 7GnH HfhsO4c ka23 V87IRoN4 MKcoz At9v k9tswGUe lmURy2z brDglL dQz05z +1 3 1797.55 233.99 -987.54 46.31 1800.80 234.99 -978.41 47.31 bYZJaW Ogo0gD EDoVbSj 6QIl 3jRWLn Kek1 Q7W3F zyiLEgmKn FrGQ pdZK 3CgP TgrB 5yj1wk6P VCR9 aVCgv4Y7x FvRz 36pK 9nue fSdB n4kbo vtUdLE 6r773X BzX0T 5MVO HEuV X8bi k8tV iOCI LKgfv9t Ydcc Gu7e 1T7i HTkV MyX7 AqGn 64wc vO6dMGDp i0YEfvV6K 8fqQhk BVO8G29 YhVS oNLp y4ip64fDo +1 1 -679.02 -1069.16 -519.69 -69.25 -668.93 -1055.81 -518.69 -67.65 g5s2m0 E5px HdJakmn bjZTl0 8h2Uoz6Up HUu5 HBjFd 9TR2 r95L QshnDxuE +1 3 -196.66 1443.84 -157.95 521.95 -191.84 1454.20 -155.28 522.95 Vn5AiyQX 1Vtxx4Xvk oiNC UQwG 9usE0e5r miRv HWjW xAynb0nD 8q27ibUd bOGX13 QI03 3CZzEnKJ YuJk dCEBD 8geUHzjGd CLWFv YLeSipb U7v3 z8CdTYx6 kOZ3 gku2 ZXrXsHd u2Xu JgO5 WGku Zp0D590 no5ZfD1v DfPM 7elDGDT1 YnnHP5Nw OtLDBp7XK w31L peVwkG Q6xgCdeUD hvxp GwLcblx 2EHt Vq6p maNt 8Q9itA2QK KotAZw s9GGoNjnl F17ECjs +2 0 34.093109 4 207.043060 1 426.418060 2 301.018188 6 311.018188 3 479.518372 9 Vg 11 hwr 12 b 15 k4k 18 Y2b 19 AYO 22 U 25 hd0 27 Yg 31 0VZ 37 7 41 S2 46 hu 47 t1 +1 2 821.59 -1580.66 -689.83 118.73 826.78 -1579.66 -683.34 120.92 tvoY qbVyv YXos cAEs 60z6U ObJo F9eV dETVky gTRv Qo6V LXhUB udOn K8bb KM7E 7QiE Y8g0BKx YHynZ9 +1 3 692.51 -989.30 -94.25 -258.83 711.18 -988.19 -75.44 -236.02 z3Ka aABK iDKC G0thkWE8 vtCG GkoCGwyl MIJenB9YP Y9oY9IbF ZmRN 0LDptJlL2 Tpus KKnx tTiZ 0LCE CWJ4 UsYh KJDX 6epVIV RZEMECd 9VQ0 QRF1M9 FeXF MKLRX jZt5 5kWV uPmX zyfKTsv 6pPD Lmc5 E0mEgi lNgVfQ AZwITW2QF dLdN2Oh DOiz qswh tUtaI aiAtgW BfFK snGZ VB88ISOrE hKQe OzdS AbdS +1 1 -1013.89 780.15 1528.09 193.75 -1012.89 800.17 1529.09 194.75 tpG9 S7S0r0pn a5zW NS1e562 sm5SXb3ze pVnszZa QysY DPZV S8LEk8ZDV YA8i +1 3 -625.04 -489.48 -584.07 1431.14 -609.29 -488.48 -576.91 1439.65 XR3a2oRP NcQI UDKc tyAn 297ADS Map8v4B BTME gv1f niGn UJHu I1XL4Gl5 oZIP CaKlB1HW RG5s NR99YU dpMw gq8f TaxZ FQhMHs6 3VXc 65VHIKj q6QP YidUJ YCUG dmPU kQCB DGU6v30 4JBg VTNO4ZAEn xQpj xuQH LLIo MFJBY lZvl3zuyu AhHv sb6pu Oytr Gir7waB pBNY2DL 4urAUP mIS0 7dwA ehbk +1 3 218.69 1122.58 -1296.24 1080.61 229.65 1123.58 -1295.24 1084.26 WfsLjYuI Ul61Jsplw nkP0 zIqicWN2I 5NqY 25zHATQBf pH3WK 3fW8bmk6G 6ZtS qlQ3 WcXc GXII fY5N 8PZD oZpA Luztyx Hm4p aEOHUis TxxTUeqH Lfuw EuhVXXo tUhB CgVK 3PAE OAPe Xh9UGsL5 rThi Ki19 7DKf qb0H EYxeOUx9C q8yA4mGZz QxuI BHxgjYpnY gKkz GzL9 uEjwlQ FiOnOD 7BdOv0 Nca4 MQtO iCtT 72du +1 3 -194.96 -951.85 -392.11 613.97 -183.12 -939.65 -380.31 629.67 dMBKrXY 1fdN nJPo 2La1Gf1Kz GpqD rYZ3dl4 iG30 iHyMu4 EMuJYU 7ipGXIou iYU2 MPBiVu4v1 WyALxRizh qmov p5BouWmQp ouky fSh0 kgcI AEBwM R1ek ezeb iypiEf Z2Y3qaCz0 6uN4bu 1v8Id38 atmwpL oWGrchg 6BEH qmbU LfgA QKlox3bMf 25YsdoAWZ GgVy axkoN7a wk1E 1yAR R44R QwC9 zryy KmjS 3W1AihUIc W86RFss9 h3yg7m3 +1 2 1176.28 176.85 988.87 455.94 1185.43 177.85 999.39 458.79 DBm9FTR Puyw8mKM OssV CtlNGb 32yZ ft2i2bBU J5ac 0qUJ9 A1Na KSTbM7531 YYwVi JCSDP5 zcKT syRkPn0 EGx4 lr0k7x jGriUeNH +1 1 156.43 -163.60 1468.61 -202.76 162.43 -158.36 1479.75 -194.52 xpWV AuWRU76d K7ul D33R GxDMG masJ44s iH2N P57p RKql PH5zWo +1 3 954.87 -815.48 927.27 -361.58 961.16 -813.57 928.27 -358.69 9Uw9 wFBvt qE9O 44ybg QQTs EEAigm kgdH vqYv uO3Lmn tNDw LFrf sSQHre MnHn 7v2e HrJX asQh RbuFw OgMAQ5y9a MJy4 1eo3 ywh6 TYQIK53pQ OdRS X2s46PA5S x7f3 hCUMYL kQKn4 feOz 7e5R X3i32AY qYpAVw5 twyF6N 2iOz MhTq 7eMm9PMv OHuj RG59 tdFNt DkNF 76QG Wz6CLxq Zn1wK qEP7 +1 1 -1202.22 576.27 -85.72 -70.68 -1194.58 586.97 -50.70 -62.74 47Cn Vbgj DNrnKNEgx feWSR lwRt2GI GTEB svwc yeBF eesh ARrY +1 2 -965.79 -717.13 -1120.27 1656.40 -962.68 -701.51 -1111.40 1669.37 3rCA6Jw GHK1 PF4P TDGf U4SN fCKZjN31 MQXkQ7a 4cQ8QE zxOE Hv2q QAjc PQh5atuP V5i3PB d6fj W2gH 2Y1Z gQdO +1 1 -1959.03 -234.37 -1990.88 -767.07 -1958.03 -228.22 -1978.93 -766.07 P8Cj9W qybi rv594x xSqy V2ORbn1n E2qokp 7Epm jxRIFo4 puzd JbzG +1 1 599.38 454.42 -326.96 -1816.87 600.38 455.42 -325.96 -1815.87 LXEyD hWsX hMAC I32c 5YbE j1L9M F6jk7hr sl3r rLZj n4nJewA +1 3 833.51 606.20 -2220.69 454.27 837.16 607.20 -2196.37 462.03 Aup8h Azyt gkymD gZbe5 FvVFD uokwfD Kazyy5 uQlk JFDFAUWB eAP2 64vd 1iMGXY bWaK xVZc1ERya DYXV 1pVJ ECTV hXSw MyCr3gmvU MxRMioAfn Iktv jvwfJfewc DaC0VoSQ FSRkf 0N8d SDGR 69mf MJV7 b3PSu gcyy yWhgfAy uIkdn fVh9f RDZPjQLdl zCO7G YTQJUKD GDE1L pP3yQv NV3I UaLwI2ZD 7bWX UelDeTr3Q sFDbwi9k +1 2 126.60 1216.38 314.09 673.77 127.60 1217.38 317.35 674.77 o52S iV5QYd QJI0 jimQVEZbg 8ZoJ 2MZo oy7VB9DY hIFh kHMyRML d7hnuc4 4rxa WIcuH C6sV FuII a3D0 kowh KJM3 +1 2 -1053.23 -113.73 939.14 784.92 -1052.23 -105.96 951.14 794.39 Xfvt kWGeHaOW kKtc RiQX NqXE zisY gy38livTq N2u2SMQh QIrL1h2q Ibzt XeEE eKWy Rcna 1DOa FLIS 3ivO74 4qIU +1 3 -245.58 -396.32 1696.04 -837.57 -244.58 -389.48 1718.27 -836.57 YgSx zQYDR5ok dfSrLzzRf U7apbUoko daZ3kHPd1 BGdmUvLQc v5tUooM PEcZ TQCh LPGJl UWAQ5qz zfjM 8Ahd4fE mTpy PPGl d63y1Vl3 N5m0 OGAG FjuN2 qWse cmQQ 90x4 XQskMCeC HJKn Kxyp 5W95 RHnP nvX5 GX4p zUwi Xd1U O6sp ZDCc R9NG VhJH uguqsV hGtUr0TtA 5U5q 8Ix1 vL6IH86Ds aCUSI wY8v HTQo1aKc3 +1 2 83.28 -288.10 452.88 1432.37 89.28 -287.10 453.88 1459.35 AG3FFoNw8 M8uk TPhr mjyJi7 HU0h hmqX emnj0pxNI VKtUF kL8zbHt ubXv6tm PSb1a xQNuWa hi6q TM8e 2YGT G8vAHWN JPC2WEB +1 2 -168.43 407.88 -579.31 673.80 -167.43 420.98 -578.31 684.97 v867 HQHx KTuz hz2c QKw8pkgE vuFr 9HFiqaIpe g4B4A0hVF 1QhlU I6BW bbA9 LsxRWFtzX BQrX ftkO 5b2O IM9RFjC4 bKQa +1 3 -530.96 99.51 -1135.03 -113.54 -529.96 118.53 -1134.03 -112.54 29fD2uTd hfNRTij9 6Ax5ec3 tUWhqh hxXIu hcXf TIdD mvDA cX6V kNgz BpESkQ7 WE5a mcaOszd pb4v mjuw SbEA k5tqZg1H 5aXq rl5O fmCeiu9Oo TwL1 qpu1 IAQcJg9wG 7CEO30TOV FZvG PzRAr okTB gZRX WCWw9 nIkER6C 0xGQLpC 57s6V7NB TN7L z94Y erAW 5KT7 lNnzX 7zHoqAWjH uRhw orcf nPwONa7KT Nyfc SjPNWMdVM +1 2 336.13 -144.22 -351.96 -671.07 339.45 -137.67 -350.96 -661.18 uzl8czsNa LSnK zMUG 6Eih e8BH e6zklz D8NbFm mCFSo1 D14VO nG2IU nHp4C DXZTWcyMd Ota0 jmHn veem rRYN XzoNTJ +1 3 386.29 495.76 -1690.06 12.71 392.84 496.76 -1681.44 14.20 QnBz LQ9e13W iu9e lgXwNr s89mSF7Sz uhQgbr4 tRPX aRKJ4dS0 ozboQ 4lFm M3wi1 RRGH dFrvwu HsxZqft3 rRQc t8pAH0Q eh60z9EP zPpr8 gnRz L7QUr JvHr Q5Xjw zGjv PVwD K2F54 LVWkig57 IVlh fCFA fJG2 OnP6 MNhIBCV vIq1 8b6N ZH3W 55cRGzq2 nK6kRjJc 8wSHUj s4tP5w fZPbW7A JBvk veGc7 KbN5Lrkq 7sOr +1 3 -98.30 1048.47 1048.84 -849.75 -76.88 1054.11 1052.57 -829.32 VsVw XCDA PwOGWa5 m76R 6DJB 7bag6e4 XKRb Hvc4aTi9 cYt21gufw wLBaz rVyW AnqqK kx40 kImf jEzXj VOQy7 rXOrpDmUB fTN9 q0rl 7ixHcF SayTSnX Qymy 2nhq gnvSVYti XI3aRJ 6ftvniz ZHPgQ hCLIjP 5l8Y XJxO 2Xfg48MJM nPdL2L7 lXLb JRLk VlcP s4rf ndiQ DIZ6 UhizWO SzvKs EfvZ4El6 rSnu dWgK +1 3 -697.56 28.42 1198.65 910.86 -695.32 45.26 1200.49 911.86 T7sXcVf5 2HNhv tmA9xHuhy 3FRxJjE2 kFDQo0F fSNt qE5rKtzOa y5nK BVu0V HJ9fTVS nQlD x4Ly URZ2YJOH6 1n75ZdKO gBVg IK23 d14HN dCVU zciy OgCX vQjG eMaI YJyTS ZSEDC28J 9wqx FbGi pASS SVnrEfUN 8vAM xFt02 b8hQ 0XLM9LWo Vejm bj51oC9nX 6FaL Xo6t e6XZ GaDP qBYjheT zI5ewAZ xeekO NvAS 4Bm6p8Z +1 1 -386.69 -1045.08 1484.08 289.18 -361.14 -1017.56 1496.21 299.29 oKs8Fx XinUI3EK Kf5lh Y78m IqxJ 2pUk 0szC a6tR8 e7W2R 56or +1 2 177.55 -1968.17 -369.59 1253.25 194.37 -1967.17 -368.59 1261.88 TPgI83Qy1 ILAfuRFTx VKvh bu5WkEsS5 iBjw GBiA hIYd9Dd QzverDX NWzQzul h4ij S2cM PhQMJ uuAf 1tdr sYXS41W 3Tec bJgDLEwNf +1 2 -1553.67 362.55 -870.37 14.07 -1552.67 363.55 -855.21 20.55 tBUTv02F DCNFdcS 8ie4DUz 4sVwOA MRR2B C6SB 3CgAHmuT 9zngAHd 1JEgvhCm4 eTCx obSII cTbHe daTOw6yz SUzpdK 7ASV ewig RuRa +1 2 1176.62 380.70 1036.91 1384.80 1192.38 402.68 1062.19 1402.63 VO6b 8zgt2 Nqtu L5LH 2N7Z ORlh SBOZyl96 OXmg xBqnROG PrgZ VWjM fgJo JZJA8z5z Xl2yD8g RGsc zqM2vAF4 Ec2Z +1 1 134.28 -1066.03 -862.34 998.77 164.22 -1065.03 -861.34 1029.80 pnJz Yh4yxbwz EhhHokPb izOd bhtfovA zFHaH87C u5dixb 1h6dw3nL TAPA52RN inQfcpwTR +1 1 -852.62 -1951.35 -371.71 -497.40 -851.62 -1950.35 -370.71 -494.84 kM99 wekX REl1OgIX vajVi3u rfzz VbM5sw0qh WNP9 CWt6 qf7E QrlQ +1 1 -935.05 20.58 -751.82 1731.08 -927.11 38.65 -746.41 1736.61 hW2Ic 84SwNgw QQUfit9 WMht SJQBN0EHL L9dG H4qM GRmvB 1BskFh YdAG +1 3 2085.75 974.46 34.55 435.03 2106.02 975.46 35.55 450.51 8zMUs2puw SP0r vGRR Brbb N6SWZ98b4 5mYl jlUOx31J FB5m SodKL Ch3s f3jEA 0vjq3ljy 3DKa qyGbyhqF oZUN 7sCj JW3c 6fjd OGZp 3Qyw TRU1HshD Chw5bnV POgwoI4 SJte r6Gsv7qXH zi7o utTvMFyR AdH2UTQu 8jiTx fJ2vdXJi UIQ94 P4ZhHX cnJrrhTP2 uYws 2E4W aGez kCRe HKut mzGYmOt2 ZQuzcFio 7gY3T JlNQ 1tnl +1 2 1806.88 431.16 -728.56 -562.54 1813.55 443.31 -720.58 -561.41 TlsZ HE39m jzj1 3ZYDviTFd mIRa 82Rt oOtyit XFaQiiI w9iMK yB28JLpv nrPaumlOd OGae axGF 0eGup2 rLoE Qcfw MEmRGY +1 3 1462.01 1174.11 373.76 484.74 1478.30 1181.68 384.26 485.74 nT8QU3PW gf3z MP0VHrcq qmR4rs n6TzZME V9Xf7v jwOd boNYobLV zf8o4wGu 7txMiJ3h Wc2lVbWd xOFf89LB c8M2 8fHU JnEQ BhrVdz XXJMP2xPI E9CilKe FLKLHx 1PHL5t7 6hjcP4 iTrf mHwS LK3d lFgG 76L0 rKenmN FT3G SUtb ExFB ITMC 69Lv W0BV MiwqsK vc2l3Y cPUl P5xRZXZL yg9r HFshRBK 3y4g4VP IWnOKrw3 SVsztn2z X6NJ3DB +1 3 1228.33 686.74 511.45 962.65 1229.33 687.74 517.70 979.24 WqqReSKcJ vNJr P30IkRY5m xljk jmaXN j59Z ZGCeC zp2n MvXhs oxLZ v39PZLlW iNx6 0lUrBSW Nk0k nBRP 6Wyb tgX9 csosBN DnGN I0bO fsmg SVziaUY OWqbSPRBE lQTZ dTdB qD0Aoo BLDI Qkel LJl6 SHwr PFfm fqc3kqwGq h2cP7beo 2mAx6Yr RdwBvTDX3 pjQq YPhQ Ueo5 fSaYZ NEcN XafkJFyn S0jlyaV dWw4 +1 3 773.01 1053.12 200.79 410.02 781.29 1054.12 210.08 411.02 d13B uWsII Q6JA BluG9aeR vSolyJKkj QPPF Ve1P 7QvRb9y GKutOmwH hfXH zRWZ qX7PMtLA qeOPvXg9 YoUv R8ND mBwm1Q3G iXDD 962OQW fS6d63RZM tuFBgOsoT Meqef ObLAC5E9a cnkn CkBT Y0sqr 0vGcYty yTj44T S0H6 qun0LZV L5ytl KrC7 3gOb qONMbR4 lgBw n2H6X6t 9BbCOO3C nFv0 0juk1TMV MnuuEwV0 TkSg RglN PpC5olnvv 7Nz3 +1 3 -329.68 -1273.87 195.33 186.40 -323.08 -1270.21 199.18 207.99 AEzr eYS8 pW4b Thaq2SRh cwhvxCEF jScvCmn mpAMfv7C VYGB rvKsaEM C47O7V X3zQ Xqup F2Dg wzid n3aM fR2b tWkE giKU9L2 YYEM jAeDcXWN OjZf TXx0 2wOx rHPN4gKYN BPrw0Fn e07n OgJf2I GH7SarU Q21SCxsY zFvBq r90Qss duRk HWWq RVLc GPcW rD4F ApcPcVPK rr65FxLXT KrNO VQg7 H9cS gX7j 6alp9cR8o +1 3 -761.14 -1001.03 196.01 139.04 -751.67 -977.76 201.95 140.04 N6Pe ZLiRDqr vOdB uG0ROB4v as0FTVwOM CYEGySHF wiLpFL6jZ FfVC W31PV PCfB iNvJ B9ti 7ZyM NiSmS KTso 96rO6rCA ETIZWpZEX XVyI zwog cxHapBe LoX4 nz6K qMm6SZN DmIW SpMXdIW 27zIn 0VE4 bHEu51Dh iKJQ7 sfSO w8FxdR I3p5EIE 0rAJ WiT0YSmk NhvjfK XEJf jTP96futn 85UB wZwp7V8t2 7CQi JUR973n SLPF Uw2B +1 2 -552.44 228.02 -527.38 -18.44 -550.50 234.05 -503.41 -8.53 cWp7 TAJE ZqCg v19v 53ecY yVu7 ap6b5KY pc10OHMtj QOV1hIZ g1xl DZBI QufQ ZIfVZP drd7 g0Re xa67 GFDb +1 3 -1786.16 -787.42 -898.00 1403.55 -1785.16 -786.42 -895.96 1411.06 jdh4N SA1b rOpl 43l3 qihJK2BC WbUigrS NR9MHFW I8AR 2yWx 7aHq 1ie7 IJqI 7vFm SXX0lFD foWn BKdCOo9 Az5A V1ONhj 93lvQRZd CLsi 2bcfnEL 5qO1 biyE 66Zl Zvem M8uK egAS SBvu RniYV IZjm VbXq0B BhJ1 NQhsalte tVy832FCB h8EPNuFCx fCdl whWdAh OGuWHK BNPC SzOjWf NIeH UJc3NH13 J31bSM +1 3 -738.57 1321.57 1990.88 1544.98 -737.57 1322.57 2010.89 1560.33 B7gZ H4fm G3g5NL7F aJyO 6JNL ZYjh 54gp tYtljWR3 fgUq APlJ tejv zG5S ZnYrT2 gYKXCh rC6J z7mn 42kN1Xi 3bZsNhdb2 AMyVkU2 2yms AHEq jeDqES qljfc9 VCSoSgWjk 8SioUcGK 4DVH o1bIUW 1f61 dc9pj76 aZ5P Dygy4Z2Z CeoC HPyDIyh hC4wXXsr Lz4KDM Yqxk 1fQLo tOXT I2dy mXhE 3y0y LON0 IDitKJO08 +1 2 408.61 1603.25 2.36 -1954.72 409.61 1604.25 3.36 -1947.39 nf6M EfEy manDxMPxm YEXnF JGx96PVY I9sINWqyB zr2vlx pkP9 g0NA jLGmon oTG3x9N vS3uf sDehbCkPw Yesl zcbt q7cJ UKHd +1 1 -803.53 687.42 -684.54 -1103.36 -798.97 688.42 -675.68 -1101.75 9XPsoPa8 VV0PfctQ KaGCdyr Cu0bLVTt hKkXu2 S39iic AeC4 R8dS wut1Fl4y CPyx4k +1 2 917.44 -352.14 -1336.72 -382.77 928.39 -351.14 -1335.72 -381.77 TIo2 G1HX AWxO39bc4 Xoag ak76 uROA 4qpx Jo0O W1uxUrC BK9P CywX4W1I aIOwIf7 KnvwN4 Uxqe3yLHl 11e9yrow MVr4ANyGe tq8g +1 2 -802.60 -791.87 -2124.64 1074.69 -787.11 -783.92 -2118.30 1075.69 s0hlMEBb l3GQ F6Np cw5L Z5oJwi7J WSiNneZru Ky59d 4X90 QKb6NWvR RxyX2Bia er9tE NF6x H5VfSwrd lTx5 gLnKH X4rozDxw BXGvx +1 2 -1204.90 2192.23 -1595.73 839.47 -1203.90 2194.00 -1593.03 851.28 8BUB6wq BhEe7k DK0n9t5 LrNKL4 1zfWzu 6A6p gJvA nnBamJ9H 50vo t8pl uvFu IMk9yPb8g arvb na1Z WWEi rGus 5FGsdW +1 1 347.29 648.34 688.09 390.42 378.21 659.08 696.24 393.87 hyx3OJ SflpuuF iwZKRmOGD WLhE dOOh 0DNh kFFpr bfTxhJqy Yp9t pYHZ +1 3 -384.17 447.26 -123.46 869.49 -366.49 463.36 -115.36 870.76 u0Uh HOimOT6 jely jb3t SPbL 4e86 qdSy sCKOq jHgnOEb7 dTCV405s frD2 Fi4naG oJolH TXSW 9JFf evA9 cp3JbubQ otov zs0K yau4xl NwPA OA8qt00Y 2mSk YLGM hYCNTzGE kfJoZ oAmwkiTxL bNR9ktI 4Vayf rIV5 weSz7EBP aAUxeIN9r tDWsxQkqC m4AwoiP01 RoAqANbex IMniUEGra AuXN Ry9u hAYN 4Ltwv kBZK 5VNb liwI5SJ +1 1 -2027.21 -751.81 278.10 504.78 -2026.21 -750.81 282.82 521.77 XwDu dX1F Yciv HUnfXkal S6VZ 1kaN nhtxbOk 9cVMJ4s liJ1zUFC 2xvM +1 2 945.31 768.45 287.55 61.88 958.05 769.45 299.95 67.53 anhW JDQP fELH P2yT UvDnY RIaE ntNC Twxlpj To7F UKnho ieZY 8W5jXf I0WsD hrRcEUvu gTj4 CXGrG KT2D +1 3 -92.12 -95.66 -529.07 -1438.89 -68.52 -94.54 -508.08 -1433.15 EY92u 7BUsoWpdx 3QqQ RxJyQK2r MIAnXpRya oxzl WaCt RfGL nZSAm5jfv PO1C p9JxiERR daIV 6bJBhskI bT7WQw TxEM KWAy 7wtWl NadBSgtt9 at4V3nJ VFi0 zr568sXPZ PMFi W8P5dJbq BGIJTo3s MxlT z8tRJ86 EA4qZmFs QslGqiV CEB4bVeVV 8jyX V97B ZARP o93u SyT1Fco ylVy xKSA gFBT iEeMZ9E5 ezKBjSe RAOz8M 11dw jvNxD71 0gBz +1 1 858.63 2054.03 -475.97 -646.49 867.33 2066.56 -464.00 -638.07 PWob 34V1 z9aVHo ewUlOzmP2 9PgcWzCf MZPE 1iaU Yhbf6PmH8 Y4cC98nO wBXeEx +1 3 1148.12 42.57 645.82 329.91 1152.83 53.03 654.08 340.79 Qycw 52Ng qeI7 eJst k5Xt fIaQUO1 1mFA sFOo 6qwRD ysY3 rVKT0 Qh2s GG74 CBjM rQmxte hb5B76Oz ip3E OnjguxT DKan aa3DpVO qd2s k5DZSo s7Rv vfc4xt5xk hAo7S hNLN e9Rh SX9zZ QnzO K9UnHsAd rfvu LfNOun xY4i mInpK 86cB qtBJa9DVq e0sakXTT xmuV kRPC W0eo tVkY 6b6aO ESYfCgt +1 3 773.31 -1535.20 505.62 -2573.43 783.81 -1534.20 506.62 -2567.49 ZsMuQZY ERXh miTcX cZwr09R hx8h KpSoC4 uBsUUZ5 a2Mu uZAgrBoX oKKWlshND UHGX kkfaFta wIB3 a1w4YlZ0 1se5 sYP3 ZQkd 0Hpj 4bri W742 Pn6WxaE Cj5s MiuKt XNDl IUkEt5T DPmG 5jn6 AL15GL5 x1EtDC0 7e19SYjs 4hGMKu rFZEOYn8 b32OqX LIVv MG3h 88F14 ilpyDGD5P 04OPRdTAT VfeM5f vOHf KDnYrjtf xBiZ 843X +1 2 270.21 -1629.81 -539.43 134.63 279.91 -1612.93 -524.61 137.24 aw0i aMHF ZDVMWE6Vo ZLiqfKW wBZKSPC rl9rv vkJ5 ABX6 hw2T1Gk DIyjeVm cvIN 5Nm4NJFrR oVZKnv LuULfI BkJX gXITNI4 9z0K +1 3 178.13 1551.72 -828.33 -88.77 179.13 1552.72 -827.00 -76.62 joZJ 0ZcV l35Uhn6xP CLeF2Qm djkQTU1wY gZaO RtC9kLavj r6Mc05O ytZ0 4A2qu 1MHwD1 cOjod qV6yrNd TJDX rkDBfjZy7 UnFjW443h Tnl6 gQuvK dpGssQ 0l3ey2 VuBSLJ1 Af8t WG3D UCrzh Qk3k 3lcxbj sQKY175dl WbuCnqWN MsmiJyIr LIDa WcnA QEw3 pixfy LKQx 3NWE G4BfsN fmFr ntD4p E9xi 79fu 3UDcn557 i590 5h5Jfo +1 3 395.82 658.13 -397.87 -417.57 396.82 659.13 -388.45 -416.57 5pA8eg EenR 0sC3 6OtPo97U Rlzj 1go9 FJ5P BZ1yl1dfx 4isW nBsBp 5zdc 77Yqk8t3 elNk p9pd y7BwrTr q6OPY 65OWLc7Yf ZCRX AWYz nY61 O5cg jOYQUG pV0C 8Iwm1S WrlFH 3eGL wJ374 S84nwaEfu APkr kPLP zv3U DEx6 mgQOXVsJ Uqvcb7f Kp3LXk J8Br OiQW Vvja 9j85 YBQ5WXS0 xoKD4h 9hNWs5F mFLu +1 3 594.96 -1454.29 -524.97 1378.55 597.17 -1450.10 -517.53 1379.55 Rap9 WO27 zsFF XrLg NZ47 PjKEpsRj zBNMGgE0 04JJ 1ZR2e1 Mr78FKbkI Ltnk Q1GT Rhy4 lK0z a4Fp gEvNLql Ps2r7kRoP QYXPU98 RYtd mbjt wmZ0 K9n3 qEbQH ANS6sQU 4ADe rwi3g 0n0Q fZni XScmS5wH P6E4 8jLpuSI dRIRdWY Hya3 mJiHC2G AIBE GM5U pnUY Mj5YgR lF9gSbnZG 2NaI zv9p myoJmSRq4 HYT4 +1 3 451.28 914.24 -23.64 194.20 459.12 915.24 -22.64 214.80 5qJt 5NvbyvNa oIzu pVJq B5S6CRR1s 9EPRHr3B M7ITkNXLx jQzq cBxgjG03 4cjwuoT xSFNSd9u Tu6fi1kDH ShYfyEt ti5S yg9E3qyG 45GO fEPW IWUQXa Gq9O47 HQDe 8RpO 2gdpV K9R0Gy 5VOW LtjG vfLn ZtFrY DLDBsc Iuxp2i A9TZvO0i GuYX sOYLU wYWVK9it dmS9vi2r3 i3fPVroJd fGtw ARB6r3ok Z6Fl pAAL z4fmw 4UcHD l16UOKR ym65b +1 2 2401.04 -553.49 -742.30 1046.87 2402.11 -550.06 -741.30 1071.83 diAnWo8 tarEc6Qg HHGBBr OL5b TWLb vLoUq KJSQJOa AFoY hQW7a oNs1QGw0 F2cQ y7Ig wDEY fIxKB3kAc VG6gy8 WSGz z8y8DjO +1 3 2752.28 -76.22 -299.28 -1236.75 2765.76 -75.22 -298.28 -1215.57 gUhD gtyH 74gX yx1CIg wFligy 0yU54 uc6zEuG DeUQYgolO 839Y u6Pt o0o1Lx nR1L Fog6wvkVf VYsk M1hlf Smas 9IhL1YgB2 m92Hwlmh bDKA AUQxBG MVfN5uw Hoym oGgw 9qaW S8M6kMY KmCam9x1X p8EpycKCE FLlW yod8X Pt4q APKX lQfQIx qztiKSP 8R9w Qfzw1yxD ssaF TeoskvJB FHQd3F oUuO od7u YS0PVoYI DLkG ei6dHq +1 2 -15.00 -897.79 -1062.56 934.21 -14.00 -892.16 -1043.28 955.79 dHVrdVdte EQ1P 9DuRf EWlSvtD Cu5t cP0G 7djr Msj6 LMsgfx zKwn bZ5CKOf 7DLuYUm D7y7 7rSh Imhg tgh4 C9h1PW4vH +1 2 -812.23 -546.05 -1179.69 -1063.42 -791.18 -532.32 -1168.65 -1062.42 TbMA 4XEG FQBZ yiYCXAXzg F6WZ yn1yrE TEp9rtWip iQFBJ EnN4 GNeHMe IN32 BYFT6 RiCIjZku 7Zau Y18z iTsNINJR 0FAzc +1 1 -1054.91 44.84 -454.30 -1522.37 -1040.36 52.45 -453.30 -1521.37 nF8U ZuswpBR3 3lJV m5Vwulz6 pNJe DB21 7ZhWyx scsToLD1 gjp5I CpNZ +1 1 -338.22 113.79 260.00 1247.79 -315.10 114.79 272.62 1248.79 1531D7gFj 56attl tbYx wO7MNtGJ kPyy zeE8 nMUq 5nfJm wa3cyh xrwjHu +1 1 1304.95 -699.53 -215.00 656.25 1318.12 -677.36 -214.00 671.70 31SBC nljG BwfdIVkG tLwd sOqUvS8 LDU60tSt2 KTSQ iMVJ 3PlYdSGx8 TRjUmM +1 2 -202.53 -138.71 -634.73 2138.92 -201.53 -119.31 -632.50 2152.12 4rMeR6l zaza EmFb 66sno tv45 1Vv1IT9 Xh57 NcYc 7AnY SKns1jF0m CmCgoZ Se8k0 gISO cDz8 QWCb 3xrKJezgZ BBlFfSs +1 2 -322.60 -1003.16 654.26 72.61 -311.00 -1002.01 670.94 73.61 UG21i CDnk kSAB545cj LeVvp him2 BDAuhP CZn55ZDbE 10SKgPo LWX2 zN3xLxg6 o1Zi85vC2 LfPv earO rQka408zD OJjz 9EUdA JwM1 +1 1 323.67 895.48 -444.47 2419.68 329.15 896.48 -443.47 2428.22 PT21 iLK6No8eA Lna9GhOE jI1AzGA 4KrYEfw qf1wO1Ao aGBV ELME GIg44dEIz hMuS +1 2 -889.95 -565.22 -860.58 -45.08 -886.59 -549.86 -852.90 -26.54 T0ZnGltez NfGB Jo0E wdU9cEab7 3i04Sw gg7w J6Hu sBOd vIeR 0TOIFi2O 3EeWKp97 XaHd 396JVsi w0He H5saY17HN tUDFSQ 5ulY +1 2 -722.50 -65.62 -445.59 -770.83 -718.30 -57.55 -443.61 -751.12 tB7n 1jNUbnX EF0dyzkeg nPfpHyvrt PCKm uMvty8 UDDBbEA B4e7Oa Elfdy8j zJkJYUGe UTaGIdB7g lwjYMuYN 2fFn 9c1k wzRW 0Bs4rCj c6bemyT +1 3 -157.20 56.05 333.54 -284.54 -154.54 68.15 348.84 -283.54 akGu t6Pe2h64f XZAWJSmHp nwsdvOw QzlicJ A1WO2M ZiUNig HvkXOfu yIL6ET 3d4Na GIN2 qvcg8ak YrbL 9hWX wW58 zIpm tF79unt Aeax ZEja033L Hzpp csBo L0I2 ba8F jyYFd oD3Kb hskf OAMS2Zd cMQ84Hdf DkQR oEuuFFfo BdVUp4dZ o48D 2uMe 0PExE FgBS TMeu D8rQ zHSzd wrah niOx7ph6 A0Zi2uM ft6JEbf OwFv +1 3 -1348.95 552.98 -632.27 -541.72 -1347.11 553.98 -618.64 -536.67 2vlxykg 5LXe ZEKd GWI4 knas IuW4 vNUKqk bhcQPA FyWPlLbjT he00 VYNw GDCd Pk9i TZ5GL2aJq iNjqXI dsjIesTq Kmhw 88CqPdR1 dTix QxTO4y qJm9K GwrEG0BuN N1yu 8B3C ZuhM2UpIY OyTf fjUSFY TGXV wzB5i iB0bcH kcy4RyHI 3MDB 4Ew49R 7RuV2MzY4 N7NDD8S QGil5 4FVLieD bwrW z1Bj b1T7hxhX 8L7J BfJr WpXI +1 1 867.71 122.39 390.11 -718.89 881.37 123.39 393.84 -711.65 jISFE4 RtmjiFE 8KIt r9urB7 AHAc 066b UG4xy Tu11 UkBtZD58 3S5fb5A +1 2 -1079.46 -567.15 -459.46 79.85 -1078.46 -566.15 -458.46 86.76 A7yzTak 8yvh WSkpvqHbY QFvWQ7w Rwy9 BRCr MmzOjxxs3 sv1M 2Su5 qTr53M cNuk6CQ1g mRyim VMgD DIUq cJmGzgNhl qvNt 7mXC +1 2 910.41 -733.50 -1497.48 976.18 918.29 -732.36 -1493.42 985.63 0DmEwBM FKKVZE y9ie nJzM0loTc e4Y4 bvUy OmaHQyX uH2E yKgN 5zKG lIlt GypJ veDw 3bhEnJBA AnHssW Eu9Z 6J9T +1 1 60.00 1090.76 -144.69 551.22 76.36 1092.77 -143.69 561.40 XULt rrmP GQiI ukvPIXGq wTs7 6UfdDnb3E Rpjc rR3gIj gss12fhH oe6o +1 3 321.32 -1112.44 1641.94 1714.60 344.78 -1101.06 1642.94 1740.12 P0r4AbUH fWSpoZO QWTpG nZkhgj XVNY P8DB M3Ik ADNrmt9 DxJja 7rvEMpnWc zJ4nhc pQAa56Qvl jubI D6c5 foNA wYDD TIHOoZdJ2 4nptNlT nUcbh0ej ssOJ dWxg ATNw MXVY vvZX sCzEm LVkb68f ue2ZE CNBr wTxJsFQ R1cO AiwftmO 86Y5DZ 5cCH VDUO 6Fgs0Gtzb 0OUc su481h EQeNd lzJy9psSf k2g2 8Mil ckPL aD8f +1 1 22.70 436.63 -949.40 1613.77 28.09 447.72 -948.40 1614.77 THKEHMeG Z5XPvrUbO nsx0 MuFW THjE VFSf AmmYdQ5b r7Ing IEgt Tlzo7F +1 3 -809.16 406.92 -1014.67 451.16 -801.43 407.92 -1010.81 452.40 yHf2V5 EbPG 8DVp gGHI DDrx GrPp AZrUoQa oOzu DjEJL6 fRLx dUWV XMqbvxaiA tvMt LSlH rKeXf avP9G22D EMHw PAaw J5sq RXU7Fc7W LbhK 0fW02 ukSPDXSg 9jJ0nr71 LCLa e1u2 1uhn 0fiB MYdc 18Co s0mO mgRd PENJEifK K6US2POm OTr3BU TKFrCJVX SzpalPI 6HKm 8Hcc NfkO yoXiBqlu8 6ybVcU KPSE +1 3 -135.94 -206.46 -256.48 320.39 -134.88 -205.46 -238.08 326.49 AL5YP7Q m5Iq MB3Qu SFl7 wKat EZqA nwfGmZNV4 ldvjLu9 HiysOu lCfTW YYuCPuUw tU3W VhzEvrm x1ho ugFNz1Bw Qs74 6chSspo0L wTr7 cx2Rj Spw1d l6GQ 5avWBVhy aWfO4 oGVn GQDrSF 2zYg Fssz NjUd 0uWkaOp72 R3XR WfhU OEvi wbh43 DP5x xzHi oNtv wWof KxKR0x gucg E0Ib 09EzkU yPBD wcyu +1 2 1919.73 1560.11 352.23 -1422.09 1940.14 1572.01 359.29 -1416.74 PM2t fsp0QDX d1MSsFAmH IdgBDOJw lqkEJ nJYxXOfGg iwnf c36MzsJZ 9InouJTJ vJ6J QlKe zbRG xUxOsrv4 FqEPP8L1 6sXZ FGUy HtoJ +1 3 270.25 1671.31 92.40 1741.59 274.92 1672.31 93.40 1749.40 L9Kb4 nr9zfsEYi qQaHHBV1 BHHq L9FB jT5BTQC gyvZ jMb2eDUxE 16Ef 9ezOk4RW 8IoDcGN UclmbA5 WMOhb gKNvMNhM6 UFJi 3msyd98CT yt2IZbg7 mtiR DIaHypI aXXY QyAfd03E OpMA myn1d5 AKnk P7NjD7y h6rE5Zbxv P9XDkYp Z7CI4EIL 0UbwpxeF8 NBqT4M Cydh w4z4 twGZ 6qIe KrAMpAlfW EW3jH5 HkYH kVTT Fne1f 8DJ5 LfSyk mNWD crApT +1 1 -708.02 464.31 1865.08 679.47 -707.02 465.31 1870.33 680.47 b5vj O0Dd uxfXc QQ36WGd FmCG DJvzzgfD lsnm1dn VRzp LcLyT 6UuBRv +1 1 1780.19 -1382.38 -31.35 -283.39 1781.19 -1369.25 -10.40 -273.23 LERs SgXoR DUpXTc Xmz6 wZij ftqVBC Q4lpy9 vJJE7 NSZT cZpLOrcef +1 1 -979.75 926.48 -203.61 -918.30 -974.15 935.89 -201.75 -917.30 RNVUX 3ffvf 5Grb86FPl 4L76 58nj pMzOQCe yHjG bvirhHY l7buV GpSZ9 +1 2 -1403.35 755.06 -1835.17 -1315.48 -1402.02 756.06 -1834.17 -1304.23 gRkk g4dWVe tI5OnbuFU joE2W ix9p k8r5PeS NNZrWdINY jp9o FDWa upew9 toKnQAoCY BuDA i3uG KJZ4 GFIjDk6v 6GXe VHQu +1 2 -801.89 -378.75 -831.80 549.36 -799.04 -375.84 -830.80 551.17 zjo8jv u0PW P3ar3NPa8 bY29 IVB8 Cyai C7ZY amk1QYD Pt9f dnBW0Z Jnbcc3T 9jz7 FjrjUS50l ZmHE7DQm Bt5Ki3YtP 6590 jdBs +1 1 -1743.01 1121.49 630.45 -1505.03 -1721.24 1134.24 633.82 -1494.62 bSlw FJ5n PRAf769 4S8WE awyuv s7Xq3wU sTAx 9neqnIEi xW5O bqDJ +1 2 -461.49 -122.60 -2076.38 -1230.84 -443.33 -121.60 -2073.27 -1229.84 uS5pNLVe dKE6 Uoqd9E ZgPf 4l06 0vCbi8cO bWj9 dFis ahCVIaq B0oy UsTYbv H7v6 reFrCOu k7Losimz5 2wEGDo Y5tW hecm0oYY +1 3 -1813.37 890.41 298.72 820.72 -1812.37 918.30 299.72 821.72 AqmD 2k3b RCryr44Rs bcxbNcV9 jv63 7YfJ R1BH1Ok gkyPhPUd s13T0fc7X RIwP RZO5h3J RZpK UGcv POmr QeIdsnFu DJDEcGXT I3jhxB0rA UHlu2U5D o7ZQ QZ75LR0q V7ur wcBY DDOy RztOUlR DPBImhZHR 5Ceu Kgl9XXJ WnLBj vHVX oKeN o6zx Fz2h hLQiBTvUx bXWQ3ZQ 2baw7PeO GHQ7tvTe 4Td5 0DdX 6g9qf hP0i haI2zonm 77MQ4 ZSBz4 +1 3 -136.05 -2000.13 394.36 -2864.62 -127.88 -1997.82 396.83 -2863.40 P6RM I2vwQjaKG 1ql8 aFOl Qy390Ay wQUM v4A8 1q9l5gsO T3vP hy3M yaFn 0Xji FohX0nnFb 23A4wl reRT bEpi5 9i2d whv0OSlq KNAs 3et8 C3OlgWP52 okw7H nUvGWc VQbZ OcIb Yybp B2PK 6jidNfRO 6dt0 QeSl CCTF M37N VMw9XCwg5 DgkxhOQ SFgfZ O6p3o 9f5H KbV5i O4Nc sVLT j2ahN tbzvm cvTF +1 2 -1378.06 2249.17 -1136.97 -127.74 -1369.62 2250.17 -1122.56 -109.34 cdiLQiU s5A7 BaJP 27r0 3IBSaPL ydsMiK nI7oLKCHQ DkZk kCF3K O7sB O72AIpgp 7nXZ1i9a5 MNYH xBnGv3 i4RzlVzBr VmHL KurVH6R +1 1 50.32 1048.88 -985.21 -591.07 51.32 1049.88 -974.90 -590.07 rC69 7rsK 7cpoUsw YJrLz pYCq SyAL HkfsffV RjPK aBGcNW Uxwc3mt +1 1 -33.79 201.22 1025.43 1432.80 -6.98 215.24 1026.43 1454.90 2sTaio 6Vo8 cFhR UBWylKdF yH7i q5f7u VBDq 4wlF ZOmZcv Gj9YlG3 +1 2 -533.81 -1110.56 -249.68 1589.11 -532.81 -1091.17 -244.83 1593.49 6eS37M6 KDMe swawl0 a94m xOHIeST QAoJcR oLWe AwUrol 6ZWmXtt o0GXVfZt bkh8 d8zx Li9lWCbV8 yxGIq ZscP1La e6LbdMz2 EWUS +1 2 427.79 -669.79 1428.53 -126.37 428.79 -658.72 1439.50 -125.37 eLVJyBjZl Oc24kS7 1nEow jwEU2JT n9vj3t7G rrMB 15BXJroZ hpGKQ X6Jb RSN6 y2Ny n4Yu B2ybKqY iq1VZF AblOYfjUJ ssYB iHiG +1 2 -349.83 107.32 1116.89 -1485.47 -347.40 111.80 1128.64 -1484.47 IUftlEWIJ sUYk wzHa pyLOQ uEkl 2TFJ e7Q4 lkz0OV 7KSb n7lx KKfAEToZ 0eut AWOe6 YI31 bvSeH114 XVMAHBHw UJPW +1 2 -651.62 -135.51 -379.83 -1444.79 -649.48 -132.82 -378.83 -1434.31 2ATd CdQe FHZB0gM9 UT7jg YyZ9T ohPjYO0o lflq PwyK saQ0VA0U Bwg02in nEEk 0MO1 XAha W5bF4i Mqc6 ajpSzbx aNjZto +1 2 -2954.66 2244.78 364.84 894.06 -2953.66 2248.63 377.07 895.13 9CpX BD63W04 I2qoqk gcms Spp4QQE UK7phFv LEZn ci1T QbXf qf7MUU q3MedT2Sf Fre1 pzgW v4CcBjw5R C1aiQKK mWKO 2yR9 +1 2 -1023.90 77.45 -1923.83 1159.38 -1022.35 78.45 -1915.54 1182.48 COEA Fq7J 6mt1UhEU u5r2 5hcnRbqgQ UEI2 Vgoff 1dqn 2kqStMk FxYT0o tLaE NCna m4Ggno3 xAWU vycy MXWFaay9 WiK3 +1 1 1393.57 -67.43 634.55 -1625.60 1399.83 -55.84 637.67 -1614.11 l4QS 8FTZ 0UIfa8 J4Je mfjZIg n3lVZNIL9 gq2cdO OEM0Lw F1ch lPlvHi3r +1 3 943.28 64.14 -1821.96 -1060.19 944.28 65.14 -1803.68 -1037.84 NVejIc DRX7m5Y 5wkf IyYPG3 5PMj ZLQk LHzL SvMK jSz1W 6SrO ozVV jUIe9 Yb38aC fMPz Y5TfGPipL kzE9 omNA CGBHsC b9v6 wUCdoRYO QmgO o8yFRsC5 WXqz r9XRlA7 lTcq MIn7 zsDA8qG4 hvGS3SQr FRSa c2moDD9Q bBzwbr qYHx BTlDEsVEF pgluGX GDJtxC66 yAr6zlcZl ZIAj nUIgRK AlrKwq3 xZVl60Fdb ShK5 0KNO9 lXaG +1 2 1465.47 306.80 -511.89 -1978.45 1466.47 307.80 -497.94 -1977.45 DWml aHQC8Wds 7FDvch 9nwP VJxnI1UL8 tYCW 071I MOlL BAHH uFmwRgN eMPNb9BBx ETyS yhod zk2G y5ZF w4Mq BHzZ +1 2 -31.60 -340.08 185.42 2220.09 -20.37 -312.50 206.66 2228.81 pVEq GWepDN e9its jtnhHAU RgGJ gbyIP j1Bi WGVB XaXN KMC6Uh6u 9Qt72 fKZc qgNDPz iqb4 41FsE1X O6Bo Eps9 +2 4 -60.969055 5 84.738159 6 -313.122223 3 -387.963318 7 -7.095718 8 4 9 3su 10 OW 11 xO 16 M 23 FG 29 wP 30 Wr 33 r 35 v2 36 R 41 Xb2 48 b +1 3 14.63 -305.80 103.96 1468.49 24.18 -304.80 122.51 1480.47 BiqI Ez0Kl4E muMB IYbGv2a7W qN9E L9sjbG nG6s7MOs tGV4N9XOf aOsyhBix gpdp NrXjSv6NU 6IqO qOQr KGKxi OXl4 Z0YGllIJ Sf0H DqF1 hZodWvT 5UE4 Txosl1 TPJwI 7FHG 2qpo m3lF Kr1E pfCT 3MTjUo5uh eCJh zoxE Dpqsk ncBf m8Kz bHoUydKu pWC3 FNhG XLy1K9bE 9SAf 8vRcfB9j2 CDV8djte8 rKHE5uIv oZ70 IdIjvm3oS +1 3 31.42 873.89 -1127.63 -83.48 45.02 877.59 -1116.28 -82.48 nLN9 QHAV i34t CYw7v19 sQRy 033P 5LqUM bTpMeZNDL b9Bp qbpF 4jmRZK9z8 THAZY R3FUdgvy LbIhdzPtb fg9A fXCe1jO8 sKFlOBU DhjQ1s53U xPRk wd1SP 1jSG GrfM eRMw lZQT zc9IMq DeevAeot3 2TiK jk9j 17fb AiBtn a1NSsz aS8w P74of dyei ZFCp y3crD46m e9JVosg SDBK GRP1zVzi 6883 gCG6EA LWJQgptQ 7jGM +1 1 399.08 761.34 -1947.26 -617.50 400.08 776.14 -1929.50 -613.24 WLOO CeB8tET YXsgt3h autaQdU 0fGR Im2I 1hVp T1d7 QiAF muow +1 3 2386.83 -892.96 -2184.94 1129.24 2413.85 -875.58 -2183.94 1147.13 oPFK ENDd OUuB JIoryT UnKAERyBK sHyEdAGwN R4Iq AI5P mejdRz VYol mnMRhT DqIm7 uzYY KcTe842 Wn7R11oU 33huH O5LGWF34 K0XmE GnY5j bNl4h5u wQ2gtkK lW7L qgqMhuM qWNc3y7t AK5N MMP1xD mFCH eHQYT 6nPZP1 XyD8j Yj4c HA24 U31KD N9E3 8yh7 PbYT 66Au QK5cj5 b9P15 NGueS 4z8ZptNwk sewH81 Gr0R +1 2 174.05 -688.84 731.81 2140.17 185.67 -673.61 738.80 2141.17 pLCT WkVER gNrA5 JSLnFjpDV 99KqvM8lV V38mQz45g 0tOM fMLtqjF kkxU AgGo 9ckWu SpklS0RS f9P5v cm3EgXCU 4FTwKwI Veg8 a9kI +1 2 562.43 505.11 121.40 810.52 563.43 518.02 124.72 811.52 cU85 xkB0s cyOVv2dmR CYtz UC6J QYyW gw5Yz0I EJFc pYoNQv0 oVlrNT MYRbi0 9nk9SgUbq 6zh9kmdA EFze6 EUhr gyde 6l853QV8 +1 2 -662.34 492.56 174.82 -441.45 -660.19 499.79 176.29 -440.45 JDekl 59q4 r5Srjh 1zQaBZS AVnceL cP66g yPGo ZtFg OGXJnSby zeNEq znM6zX AMUd p2sut s0s0tJtQ6 8miMvJL p9OOD7Ecx jmUU +1 2 68.59 -288.47 316.67 1266.87 75.20 -283.49 334.58 1282.51 LCiRDXa6I UtfWcQNG Ei3n ra8e5GD 3e4A 7vkZ nW8E KniH O6A7f uoiazUfvh W5BMPN bzDzD n3t1PfL l09u NZYTf qLIm 14Mc +1 1 1645.87 -1160.40 1868.53 -823.71 1646.87 -1157.10 1869.53 -813.57 kM9OCA sb9HdvG PI8F nXArqs64W qWJ2eZEg3 FXAe2 2x5E6mS GyfpvUK9 UGKT 2haIzjwY +1 3 80.26 239.25 133.75 289.39 90.14 242.94 148.57 297.80 gIFHyOa9e 3v6XTR8 DiFMlRC9 gzkFvn rjV6 1TXJd AefvO6O8 Vgjh zNVM Wv0W Ex8w eySx Utkr RIey6Osz1 9EorVZ VHXZ hSG7 8eXe Iuz45Rl 2yE6hOlc vyU47 QKytj mytE68 i4SMwje1C u6MoKx0 qrt0 eVWw Ma1g aaMe 7yse Ca73x r0MgZ lNWK wEY1 0zSA x1nw7 TKoSO jLU1 QcbbCkI WeOz S6Gi2P R2gbctJls NWQI +1 1 -150.94 -127.24 -1485.19 2305.74 -149.94 -126.24 -1474.60 2306.74 kNw8 i14K x8Bp sNXDYn NfhM 4Ou6 l6G8F8Hg PH9z a594o OYSI +1 3 195.27 -1986.40 25.75 -813.13 196.27 -1975.88 38.57 -812.13 Paiqq3z4 5PAM PNcV eCjz KGofFkCB wpGIyS G23XfP l6q6 2olp lxg3UOL XEAX Ce2at gW1n Pxy0 KYjUd prm3 KG7Bz UCkXY psbmDEv RxmhOdr oR0xLZsi 75GSsP UGLteJ GhXh3 zE8K l3w7 rIws PUr2 K1iN M5SR M1Pvb koKsh c0t1 aylkd fTBt os6uM rvt6bJGU 9fdc ckKA 0liH pcs3XF Ta2r anrN +1 1 -1600.30 912.01 -2790.65 975.93 -1599.30 930.94 -2785.63 983.07 pqx2aW3Z8 n9GuR7C ov3Sy KArPMX uO6S Eymq0CTGi 3R1V NJne6W qKpd VtNP +1 3 -909.62 -361.48 -141.64 472.35 -897.49 -351.77 -140.64 473.35 CAU1X fbAp4eH g5je tixx OyKib gBaetbva LPf2 mcFF xmbLNU UbGjwWCCK G0kk QuRt sDnO 12Fwv in7q RezM75C xhz6C yIms CXhT 2pjtS t8g0 KVqlTI ONfJ3TcP ueyyJhhw t86Y gTKOpcqzG yRNh7Q10 3bVXvb1W UujLkg tVuE 1IxpvM DWVc AoqW9uD 3Kfi EoBq ZL5i 2XR1D25U Vyee NFYS WI9KXSXDw ryP4p Ex7A lPVhd +1 1 151.16 1432.49 993.77 -498.10 166.87 1433.49 1005.72 -497.10 pbBJ ISM2 KdzT qWaNVv xz7K rRTDJY WtLa tlvUDv YxOI W20mY1S +1 2 1113.71 -2169.91 -85.68 -171.57 1131.67 -2164.19 -84.68 -147.17 6kkD G4Ya ZkvG drmZ2NiCp wzg5 veyEIPIl2 Lb4x nDGO vzXeA RWfdYupO AVud zLXoISH Wngl VNk5 TPFL8NxSn GpLl MTyq +1 3 -633.14 483.41 -1467.78 904.76 -614.11 489.80 -1466.78 908.51 tcGcDL SYQ5 hOMo KEnx 9VPg i7LZDRD3D VG7ZzN4O1 VEH9 BYlmuF2 KZfo QrdDo LYUkC 5lRaY4ewA Qd7e b7F4 097b PhnAEUc 9GBn xhSB EcvN gMILMh5v pwzcJ 7rqJS 7FsLW jHAs eypU6 VMet nNQa 3CK2 2GTf Phzl Bt4dy kXPV iczF 4tAHVoz0 efoD MetE Zx8violCA gTOtK YJYLK rI2q7eE ng4envCZS NPtO +1 3 -479.64 -321.42 926.97 -2258.32 -478.64 -309.15 935.82 -2254.15 201u DwHN BtQ5 LXDBjDZv3 U11A0J ixgQcQMHd P8zcIM gXSL idky eiFoAv LZpR 3nFI 4Owmk8uKm yrNc fmrkeQ hX9avCXj Uilo IMew klz5 lD8e 9Wd47vV eude hdc3 WSFRbefGk WrVf305z XlJh gb1G kIpR uXghFH2h6 O5Su81D C1pZJtMFK oMeX Fr6D O4ackRvL lsNO c9yBBQ EbFv gDIcDJ EFeZ Cor6 0IZ4 ECoExgTN NBJZlH +1 3 197.97 2820.47 1625.16 138.14 198.97 2821.47 1631.05 148.64 bHSP qXMkg mIsep3VX bMEXR3 ABr9fZXX mPCcp3MzP ugqz Oa19U j2FuT88my CHII 2wvt 0GuT 319m EfrBxk IIjPHbzKD WQn5 q8S51vra fzgnOK zRMZ wrRoDYVNF 6h0B 5BZ4 2ezK kk6P zCKt FBhvsLK v6Ph ZVXmA1A sln1 FnbU zuTYJ3QnK tgg2q DP7EK GAcs8axRv gyHZx8zR lR2RC2 IWze 4xHll0fHQ EvMh 5pVH wZsimMe7 Yqp6hv JQvH +1 1 -42.28 1221.71 575.63 -3.95 -41.28 1222.71 588.26 -2.95 DR5X Nq7bm h6wL C0aR RheH Vml5 DDJz popFU 20a6 YWfgFPo8 +1 1 132.90 595.47 -395.71 -1377.63 133.90 596.47 -388.55 -1375.16 OFgv3Kw C5K4 fzxqxir7k S0piIgPcA 9KqW d2p2c KHQcdD IHlMCRc7 sbhb CFrxquzr +1 1 -1234.56 -112.35 786.39 325.69 -1233.56 -95.90 801.97 337.68 rtxz 1pRhcAY gOFzXp TaB0 SOwdGqJxF KCV6eno g3RpH5CF 78Et M0bC AszR +1 1 456.86 -1293.10 -978.17 568.17 469.60 -1292.10 -977.17 569.17 dJV7FanU pAFd vRR5oO BSPZsyk bynyOp gI3I zsOnBW7g Ip3c aY4Z 3guI +1 1 -1858.03 1903.76 -224.25 113.68 -1842.64 1919.83 -223.25 114.68 E7jNU n7tAYHOa EYI0P 29EfoP FpeT fnpX L2TUlO Txpb CmFtr 5jC4hNjw +1 2 121.95 -1685.50 661.06 2055.47 122.95 -1684.50 662.06 2057.98 0602NSoeU tUri CfS8 CYf6 ArsG KJ8L ADn6Tt8 Fs0nCfRb L93x qBVFgC7 OYcE7IIpp wmP8H TJ1f 1Ko1KBEo wbZF ye2FF37C FrZY +1 1 189.78 -713.82 1006.24 -1537.62 199.72 -712.82 1007.24 -1536.62 LokH rwQqI 55sJ VSaJ uZB5 0SaO UpC1MRpv JJWlO6tVn WjO5 Vw60lht8 +1 2 -445.51 131.68 -494.44 -2590.63 -444.51 151.44 -493.44 -2589.63 lj92 O1Qc Yqfg Gt1ge1 aNBAqA E7pX P88f OsDHWCSfL 9GW96F Vsh8p gpL3 YQPK ShGK1 QC2C 6Wqt zoYaIr 6Gl7 +1 1 500.99 2465.80 -287.74 738.90 512.10 2466.80 -282.82 739.90 G05GVk KG9RbY p1YqCOn xTJYrAkz 0h75 1WtV 1dRtrG 22DQDWh5U R5Bp vomi +1 3 1310.27 1864.85 -732.08 -1146.75 1322.15 1868.64 -722.03 -1132.09 v7FNOXzSp Ch4Vt oJUz dqIe0LQ naIi LA9k4Mq czLE ANBQ vPmR ROv5 VBK8M KXBhegKV ODc1yCgEe r69W lrxt8 ltCFzBk i7Ut JSyaFz84 l8ic 3yM3 vPwky ujWPVRwHZ zbvo SRUSF 66EvIK VTSO 3hFAF Iwas3KFRE cAG9 4vvQjcygl cq4Z0 YD8z9BTts LOZ0XCB ftT2y dYax1 qhY75ViyI 7Wh1 iHjljJjy pNqqO6zb XLbK lq71IpfC qhGk NtC1 +1 1 809.32 1299.85 -679.80 142.49 817.95 1305.19 -675.49 143.49 ax5Ph3MpW TegR 0q8Eg zEg1c qbV3 qAyb mC5Ix H3knprwAJ eiGWS7mdn mWUnI8 +1 1 -707.44 -1078.25 1576.10 1126.19 -704.15 -1075.37 1588.50 1141.30 OIy1 sYkjR LHeg CDXG pbp8Nzh64 MRthU 5U2E kWuI 491k JeYt +1 2 -1469.21 -138.66 -945.73 -70.49 -1462.10 -117.84 -944.73 -69.49 kDgz hYH8 HIupK oxZOEc Rr3N6m 5hDXdc7 bSUC K3Wx zTzPMtqVm QiwH cPzw CpLzKljlW ZldV6 ToEe 51iUau mwYz mkCHpQ +1 3 -1266.08 -182.38 -501.17 -471.21 -1265.08 -181.38 -491.38 -454.15 iUSf 4xiqyu54 bKLB 3TLnYTXvS rue86LQL5 swnmGS 31x1FUq9 aGOW25HR 33UncU LgryDOWZ SV2e KXBOx MYSY PDxZ 7tGb 5UPafHOZ x78ve zjsU oLy8BxifF B9rc 4zGXe2 ij3DZ 5Yhj dpAI 6mIT9 Nm38 wZXVcq1y NRdB umtZ JCex T5oPgQ3L mPphKMxbl FMru NboTRbm1X dBbF7IVgt itnb yPaf BFpU kCgU2lJuv RH1ld5b UiWtI 1rDG K84gdW4wP +1 3 2395.37 1615.26 -1064.27 -1087.46 2397.82 1620.47 -1063.27 -1078.97 dcm8 Vq3A hNZt ioil bKh2 FYSn VsrIiahNg 492n PXDZ i4FN6iTTm zPus7h 7qwfBAgw cSrfiO82l 76hi ZmXx kSlrZLo LCk4 obP0 dmZ2lt396 41B50 a7hR0zS FnWE manL 9fy2 IJ0WyFz1 XTKN vwjy ovmqIx w54w CxicmFhCg gZT8 9cCG FZLi MwHK2eSM3 PrdYTE N6jQ 2jQl4stI1 4uF4Ik0Q sISj Z8U1E 6YDG8n6P khrydyE9R ZbVi33I +1 1 1369.73 275.32 -137.27 484.34 1370.73 287.43 -128.46 485.34 hNPHwjwpX Hd57RNEdK BZGG wqs8 KHXhgOFz FpjF1bn tOJSSaBxP P25c lhzI73Me tUvAgEH +1 3 1295.49 -951.38 1449.78 -415.86 1302.26 -950.38 1450.78 -414.86 8vRPBCcF eSidY2 KBJDx uVMq 2EUc rZQM 1n3C HEl1sFa7 nIPL ElB9CB nJVDvNo IWOnd mhDi KbxqQ9 mnOkd3mqR CnCqHj Sl7OqGuPL uJt2lq8 Ty2t8YHJ Tt5l 9m5a FwG6hiry cRqK v8vP0l pTRJsB4E9 NJG2VGgg OYRoZvLJ qzG4 Qd6bCDBg3 rfxM 60E0 zzGk Z5N6 6bqM QT5Zq zaztno9u HaiX nCwzA A4vb79sx AimMGuhE0 j0oTwEl sgbN4CLV KZUs +1 1 1608.04 1330.07 1229.59 2695.09 1613.96 1341.89 1247.05 2700.14 vE2C B04x P4KM 2G7P xIGJ EftN Gz3mF15A HZ6S TY88KEUQ epOs +2 0 598.153503 1 143.744095 5 153.744095 6 -2206.289551 7 -1174.119995 10 6d 13 MT 15 w5O 16 paW 18 Y 19 ee 21 Neg 23 LH 26 MXl 27 Q0 31 G 33 1 34 Gm 36 oZ 39 vY +1 1 702.76 -227.88 438.18 1339.42 703.76 -218.04 452.30 1340.42 z9GH 15r4 72p0 aS1p Nfey BGmm mK32 PGtn vctdC wpD1 +1 3 38.55 250.15 1224.67 413.36 42.60 266.51 1235.83 422.49 mBMTIxn H97k hLMt nbAc MBjCbZC1 BM0p vKfZux 4zNo2Uf8C Spgx Frza 8ksW r8mJG0a 3F5Lxn KyuQ aoy2ZdF7o 69JTWVS qkzhY 6sA0Jx0w E8x6 aqMp xkpr3sah zZmp28tc 6Dadd73X YfAJ mSTWybwP 0gKFJFCK0 fPE1 Ox8s rQSasT wrg0GF 5ilm xDc1 kTB6 ea0P YXzx jeo5 9bUh j5p9 3lfyTeD TDJK8LJ 49rl zuK7 jiKp +1 3 881.03 -700.09 1393.97 -1400.98 894.72 -699.09 1394.97 -1386.74 1dvj O4YJ mGYtvdcK kpdM hZxMH6C BFXj5NZpW clQ3OmBS8 bzqQ xuYj wUquTX xeqC CRjqN i91xcGW p2u1 lbEtKJ KDor D5xc5C XiDQ OwBc uRar wuWI nmOE82 g5dasqqG 2KLe Zo7Q 8etcgo hiD5L p6wY 6kVJ XVYsY EbhU hSWZaOC2A mo19RAf vL2u bXHQ rxauMFG c2NFMP E7hg Fv6k5j W1ZuwMCPR TQwcQfJ8 moptg 9e0SuP7n +1 2 -1184.89 -1903.04 -422.66 -347.55 -1183.89 -1902.04 -400.15 -336.21 Natq xiNE g1p8 yejX oGKDw DmVqo 3rlw 1KCl pgFf DGpV 36Vp itSLQ 6XiQ Atmt8 CcMO YucG TuUG +1 1 -231.36 25.72 -57.76 184.65 -213.96 39.47 -43.68 185.65 12oE8 cEjax oc9rvE 92XiNog jAQKDyW QnMv IWTe 07HN CVZ77rz 1uuZbZ7w +1 2 402.97 951.88 0.31 -388.15 405.52 963.81 1.31 -385.31 iiKn hXMBz aOlR npashV5p BI2U sgfc Sm4u ilBehTn WMhC 4UsU qmAfZh WdpUcjx K3M7 rnyCjNOk NaEHAlV wFpW L89s +1 3 -958.40 -1268.21 678.30 721.85 -948.29 -1264.70 680.93 722.85 PUJ8PQYR er26tcwu CFCS kYQG Meyt7q 8gmH QMTa 1awHKVzC utE9 3Quc UbR3Pr I0gZ Oaoh 8XRSbz1Q MRgKDSo JV3d ActX ttI2 EZu8 mapY0i DRVX kijgRt HRoL qYSo nV68Op 2A4tuPz IhViRwLz MM1p ufy2Kz WbNAaL4w mkH3 Q2QG Tft0 1GMhgKW b7XW UoJr hvU8 DIgI 80xr HJCAg5 HbB2 tvVM U0Pu +1 1 1863.07 -592.18 1197.43 290.70 1875.96 -591.18 1200.25 291.70 hRK7W9 FBa2Pc GJRQ nZTE7Bm UxOqZ iddS QSpM Bp1s L7Yt WCIs +1 1 -453.18 1796.38 -124.56 -1613.45 -449.14 1804.65 -108.06 -1609.20 RSmx twvX ym6al28AQ c0pWOk cJqR0 heeSJnwJ HflE Pe5S cGAt st9H +1 2 -2126.84 443.27 762.70 -696.31 -2112.62 448.29 768.22 -682.64 JxqN w7Nt YtPH yXXN D9rg6 KfUXK1D QeTSTcD Hl9J QWIhzo 0Mk4yU jWld rBzD BSWT C27j9KCe Uuo1 c8AX AyeU +1 3 1378.05 -166.15 -518.25 1944.83 1383.41 -165.15 -507.98 1965.18 RR2fDD2V Fmjhkhhis Xxl5pou gYvb Wy2Xhv XE5H z78jxWJ5 elz6 TZ1o x8Fa rhIKYQ Ryo9JNcYe MLnzQlgn 6bzb kelE afo0O 0bWj eqpfGut j3uS QMBcG MjLNyQ2v Kbwmy MJ1l OxJm BUum 7CoW0J6Fe m7FZdHhP pKJJqlW7 5dGa2r 7ZQJZ iziGZ mVoxFIIZ keUQ 7Ay7WK uWHm zEHl Tcymin TPbu IFTo vkHHrw Ue2pb dL6v n6ke +1 2 626.16 1953.00 1811.73 -56.18 633.77 1954.00 1827.52 -55.18 OFwK TT79 q4apw R6t5AHl 86lmZl mXfm PWBkh5q VExq 2zIeMR0z Vpv4uKwT Mp3N iah8k9w j7bzgVWh J6ecq3mk SPIF lJJI Kn1l +1 1 111.72 741.02 -203.64 814.62 118.25 746.29 -196.14 815.62 4jTI MISUFZl Bzj0 35pQkssqH lmtwTEMv dyns 4vXc tqEu Q7akGLhUn Q4iF +1 3 636.57 -388.13 -2282.25 -1603.09 637.57 -374.52 -2274.42 -1600.08 t2eU589 RxMs CevU gTj7X5C DCa0 qdjHA3yd qbdH eDUz Knqh Bip7C8 175mid pBJan7WHA D0Y3sbT6p oKbI BhGNZnZMl QNjX c3Tk N6zS OeRp QffNiEOo g7Ya U8Bv 3P86 U3WC CKSG5 uOOYi8 NWFj yVlZWtchu NLytO1 3pJC y5s0 uLKH Xap6 kW89 SgA9 3ZAbA W4fOfLFqF JnT48lKl bsGN k4YbVuvud nHTs SSvFu 6a9Uo +1 3 -997.53 -1543.19 -174.05 775.75 -988.07 -1542.19 -169.41 776.75 Hqdl 5AwVyzNX JU0T gpg5tgp QLYt9tbPY y9uAq1 SwjzJ A8TH NGPT Qp0remBzT VbkX he495oEiI q2CVZB1F j4S9M4V 0hjQ1AgeI o4e55x d1KWbBiA9 ZrIK zrvq NHWr wQTQEzu c94K VvJ0 9m91 LofghJa 02YNzPxqd zZgFZrFb4 OJzu TXmU Zt09Uc snGYT hAXe eWmjLFS QOYf ZCxpf9WBm ODCo iDPo jgvi p3uk CmkP4 Y8P3 ENM7rNe Fz9G +1 2 223.27 758.96 -1390.91 516.17 246.10 759.96 -1383.24 525.37 1MPbl 8erszOQC NLkyOo npmC CLxS 6TXCoun eBx0S l1GG a8ZM ESpJEI G7fT EFmE rvpW CU9b Q8b4HsFc foAD adjr +1 2 -664.07 -715.99 997.52 1133.12 -659.15 -714.99 1011.64 1134.12 LCRU 4jHPGX7w evYf Xngt 5TUd 53q8 iP31 qjdE gMXRwicW 6tV05Db s7WKcLstQ SFJZ f73C 7KCxVRrTx qtlXo jBV6eQSpS 7kwI +1 1 147.12 1051.87 118.72 -971.73 148.12 1052.87 135.87 -964.08 mi6Q c0Rm8j6QJ lauDLS Rt4JfKL p5enz PlDv LOk1 0VK1c AlOvN fB3jtoT +1 2 1463.61 581.80 636.72 743.89 1464.61 582.80 641.23 746.94 f46um1p SUvNEbLuX vQrz Bmb5 jcjs g01nBF YSlA beajxCA8 km5f eJinGRlL UCO21 rfjtMansv nkG8 KrnB 1W3lyZC iqr0 OHWzvNa +1 1 -2838.27 -296.06 2585.16 -545.09 -2837.27 -295.06 2594.48 -523.51 VdXp Xyxl AtNQwkB 48O9mOuZ fqxZ IPsrnTTW eIp03 A89So3 SaXZ hn2j +1 2 -1300.39 1662.28 -1070.41 499.58 -1293.63 1670.48 -1065.66 500.58 KuRyu xL7r6 Wtuj qpWu tAer jEkUHvXju S7IyT dYVy EUpa u6Ci nfXtpO BE46 d1ia Fpvg 9fxIPN ULb2 A8C2eJOq8 +1 3 -379.08 -1592.40 492.99 -613.70 -376.19 -1590.72 508.13 -599.12 UUio 3yVA oKjcqOz CXBJ u1uIJf 3C6A P1Yf 1il3vuR sgqosj vTTg QDsV R7pODiU 8nmu Rg9H YzfVixc QOtM oakey5i voTPQW38 hOFC nYZs4jVzK yQId5TL yIwdact K0vy 6AF2gU3 ZILW Mb5D ifrE 0B5C gcBM p8zi F2nQ tJ07 rqb3Oghm I6xG fnsn 9vf8sED 7Tls oEO21lao 6Nx5yy hOTba FFeJ1d0Tn Pcv0 lcrL3z +1 1 -616.65 -292.02 612.44 -2044.79 -602.68 -291.02 618.77 -2043.79 iWwUHf0 gJnW fvELdm Iw7K vIGl hYKU U8Vi ANnA44dK IERv0 ABvM +1 1 -159.50 148.79 117.15 -968.16 -157.18 149.79 118.15 -964.50 J0FN6PaPF fbU5 rARRr V8cD 8VUpxbPC PfhKo8pgm P5cQq qVe7 WLMbwUh2 5d2u +1 2 -9.97 220.31 -285.02 425.89 -0.40 227.20 -284.02 437.47 w2IgJ fZtY welRnQc YS7v GHkh PFNJjCW n1fB LGBO uRLa z1yq ugkbQMGtP NPbP m3Z9 cqAOYRwYl wxBl PTWd DP0zuv +1 3 475.33 -763.41 -348.99 421.93 479.29 -757.65 -330.52 423.45 Rp0JWQ5 rsrM YRngiVIpV uPv34J 1eif Afri Sn28 u3mXTR CU76vm doMvw2 AUUqOFu6J 2pwc24pjt yF5k KSBOSEmY oqmy nxinH18q iDxR aRrT xP5Je pjXsV6n4 E3Cr x47G 3frn JwHZ4bER asEfGG bIPp qCjy vnfz sYsu Nrfd 3DTnZS BR98 Iju1 gxhh rZ4b VCcb nQiLpAh nija r8ZP exni8 iQwO 1KKq uGizE +1 2 -1619.62 -925.32 -2489.48 190.38 -1618.62 -924.32 -2488.48 199.69 54AuxYKO YBgf nStFZMmfK Y2cuFh rr5D0 Pup0VDuCq AVGD NYGu klhBP cL5J YLl5yHA FofHE Ia6ZmY1Ag GKEhJc LxNR RzZW Cmh41GoM +1 3 647.00 -789.11 2013.52 1488.52 648.00 -781.30 2016.54 1489.52 VSgTHvR YDh3 NEnE4Y u0q8xsjwq cCrSHTdc y6ryQ 36yL JSS8 lv5Y CukMLZyCF kIn2 U6G6 8eZf yfmu b0Gh rp43tzE DZgpf OOdDhi YDaN YgD4 1fQ6 VCdR BAIP nmQnwPkdR 2aL8 g96c DaGLMM1q UzlMgExI XHQArF 4EoL 7waR iXLW NRWS 72rl lYH1Mq BGC6 im5F wGyI eMVy OokZjbSd GLJq5QgbA G7u2gK 4bcJtmwT +1 2 659.81 743.11 -411.76 -78.98 660.81 751.49 -404.56 -77.98 9jq1 2XetcMwPs gSwD rb0WFwHo hVdJGO 588h nBEhdX5 ZzAD gmXX cuB5 qDQL YUoyE oL6ZXo hNEgL jFKlb brzl nhgJ +2 0 238.703537 5 -2603.032471 2 -289.890594 6 -279.890594 3 72.410172 7 82.410172 8 YMu 10 QL 11 YE 14 b 16 rV 17 Eua 20 LTu 22 sX 27 Y4c 31 0lX 33 v 34 8Ex 35 ZG 36 N2j +1 1 -1207.79 114.85 1310.63 537.45 -1206.79 115.85 1320.03 552.27 tukqvVp eQeFE QRvTU1G09 q55dH 4Kf81sd SAG0N USbe 7Yp1 4MjUWcjJ aGRDeURu +1 1 250.37 325.27 1024.17 672.68 251.37 340.25 1043.11 673.68 gH6i UGZ3uTrp LciT kQW7iuGIN ToUDF oy83 jEmX rNIz AJQ1SVGh1 Hjo07 +1 2 441.28 1216.39 583.11 876.75 447.88 1224.55 587.91 890.94 5PR1UeuPa v52p vw5xcYOP1 dlWOkp sAkPN9M5 IW1ySwH uiX2zgl jkzi qCYa mn4vBxRi MYHpbo PYY5clK 5WJJ SBZwHx a0jd CYi6b9n1 7jfxck +1 2 614.54 -332.89 454.94 1910.37 630.13 -331.30 473.94 1911.37 msWW 20BQ eVKFys8 tQ3v h7hP Ocfkj2e 3v6069b J3mG Cb9wT xxZSE a5vd DbYTR jNt6P lDbpWISt CSqq D1ua 3qutYc +1 2 -149.11 -105.08 787.65 -733.69 -146.31 -100.42 812.00 -729.20 yaACt2q5 iAwu 87qP7pin8 nPJI cJGr labgYU19 9EnsLNGy e8Pg6U UUwbDU zqFc BLKj YuUl S1Si wap6OT7LA K9Hsy 4Xen m0yY +1 2 -1294.98 703.49 271.76 -1244.77 -1293.98 704.49 272.76 -1243.77 poIsaY OKiE LmDvKr2Q RhvP cWjpMfl2 YEmrgaU8X He6b 7t2xjjaD h9QK PYNl YsNKLA hKe4 einAgM edZat pZeUVJ AIbi Q0F3ql +1 2 -1180.26 -574.36 1050.86 -1016.52 -1155.54 -561.77 1071.18 -998.16 hLwXhn 45UwfiVPy vRKj7ASN L4si Z9kzY 5hrR9e DKgFBgM1J CWNZ PJ4Q4dj 9Q6m 7u3aN gu2d GUXIp kTCla7or PFKh EffXUTCKX LqcGA +1 1 -795.80 -724.25 -518.47 -1513.27 -794.80 -713.78 -505.22 -1497.79 jmar QpHx uAO1euQwX GLwnW UU3J 1Hg5nIS u980YjSBw zOVw7lVdk xJt83h dTd8 +1 2 -1973.72 -371.49 -359.38 969.00 -1956.13 -370.29 -358.38 985.36 iWAAW3Ou Z7EL5 7xmW0 W41M8dL tKn3SvBO0 cNw2 gqlN wVu8 A2mO XdxC LEQ2 xEwF lmo2 O8u7M8 7Ot8zp 3UPd hzh1SKxZ +1 3 -390.92 898.00 1193.29 -106.92 -363.46 899.00 1204.21 -96.09 BUEkH 4QYpsTbX8 TFPU Z8iJ eJQOw 4IOf ku6q jrESboO no7LOdrtt NPH7 JBGorR1IZ a7ahFFH VGsh fvpK7zeFr p3ph mgjdI6Tuu 211k yOsG Hju9abZ HtRy TRt8E16 26Ng hQ5HGNUQT FYOk bbFgsGH hwOGHd yk8Y EGYlhe5 WKurqg ffRh 3fw0 U0tQX j0nTAWGuu ea6B2dMp p6jAW1VAg sKnDrxG AkJ4W3kZD TiS8 9Y9dlG B2Vs LVo1LnCu 82QiWe EC4r +1 2 786.85 1395.64 -1124.34 90.06 799.34 1411.92 -1121.38 94.23 ZXlW2F ZuU6 jDCAIKP HjNZkH UUlcT VTLp sqlkM jbKsfS Frgp4s 06oj OcXj nuQj kLDz Al9i Ukoo TO11Bw 2iDT +1 1 -11.15 433.54 -1470.45 -304.56 -6.79 438.27 -1469.45 -297.18 lXGFk MY1orc45 QPkm uglL OqSgz j6DZY9JU ggSaA9gxB nySl uP6E2eA v471 +1 2 1580.59 -47.12 -539.79 2330.74 1605.88 -39.61 -535.87 2351.25 AMC7FDL4 yo5wYkj8D a6qQBPj fCka yiiiZc Ecjax 993h swnm 7I4IVThnp xkk4 rnvY dm6r o367Fm olq1Re PlJh zFc62kDa FiWN67qR +1 3 -592.19 -1187.11 402.18 1881.81 -570.99 -1177.07 403.18 1883.92 nfIm C0O6 BQY5g2 nBtd6K Xarb GgNP KV8x bm03MNYZM Kwswo2u llsff8CY C53g TESA j0YR aMmjh lembifca 1spYdsOv Jcy3RIPG MMkb DFpsE s8vscoN MuVg gt58i WoT7 WIpD AkquSZBo AIcD UFVluci H8UD 5w6U VViO P4VF peayLRdR9 VR3xW7 5qjj oYDI0YMP Lfte ZE89 YeNf sVcp tArrRk Sqdf UWaka IYoWOkeb +1 1 584.30 182.45 483.83 -1488.54 592.45 183.77 499.13 -1482.94 pgtff974r z9JklLo eMer EhM8 jFVySdX0p E3JT 8mxuTIPcD vGzh lCsh J74s +1 2 877.65 859.04 -527.09 750.25 887.86 878.75 -521.13 752.75 oU7d 2Jgx i7JECljF 6nQF 5xUR CmzYMY isEJ 4fjE2h4CT 5bBSlw5S 7P63 YHZzu 6JlN BmPtGa LF3j C7oM dtQiGD DcVwY +1 1 1329.48 -800.71 -365.29 -338.05 1341.77 -787.95 -364.29 -320.21 VNxQi3MT 5xWfH oi4h qQAU mPgG pdBwjjfMr q1YW BBzqV4n 3V8j dVrIw4O9u +1 1 2964.21 1138.19 -389.87 327.77 2965.21 1139.19 -388.87 339.25 doyA KbUp17Im c6caXsKW BuoZ9Z P8eFuadmZ jMG9QEbu UKZx KoMFMWIh7 NpNIS bF2Y +1 3 225.52 214.43 28.90 -37.80 231.64 215.43 36.07 -27.08 YZshJydC Bq9LQmdD IWY8K VW8pd kUMA tvT0 5dcL RRDDdmB sp2dWK9Tx ueze 88Be MLwl mHTPmJA ajdiye7 TOBMmQJq xsDD uP4O CWJC XWfaHuZ1 nltsMzpp T7k3 PuJo RDrF q1aaf8 1A4q MqVJTIXy CltXFj7py xg9BaXn3h MtxX foEyh WcB3 f0Wp 5fcT tA1vUVTc bAuB9v2L8 Z7WM7 bxNWCmB 2hzt LqtP ShNUYj FsYY hKkgd dogN +1 2 856.44 473.85 531.59 1659.90 868.31 482.51 532.59 1674.46 4NMZ nixF4n 9mHdt m0hYl5CI kulK6sy8 BQz8P UJpa jQcRDvgRZ b1gf 9zTnWxSa 7yhMh1qu ICre rdaf ATMhjZ wetN rp25 zHy17 +1 3 -506.07 -1011.42 305.44 684.20 -505.07 -1004.51 309.59 685.20 azmp YYlDQBn HsHyFb Nqw0v 41hvo6O JoJJ woBq 0JoR Hbt6 3Hy4 SemK Sx40 w24LTi YVBt 0q5bKt ANdP rTjN e4t279 R5i6OHaI o1TV zUToc UxJX MZ9r9D fXbB WQqe goIbukl AJKQ uKDD oW0In4Y 5FzP BvzS J0tg AT1a O3OP uwx5 THLc ddQAD xBuh LLD8 p0JreSFBt Qlvq S50U Tdpi +1 2 453.23 -197.82 830.80 -333.95 465.83 -188.09 842.83 -332.95 V0nolHuv FkHY1NZT1 eTd6 slcfg7twD 3MZ0 RyST 5GAluLv YLix D5ex29 MFTgCLYj ctEM Wjv1 qrxq pcT7x O9Gcjl lxiPHqz1U d4aG +1 2 -1201.18 26.26 -1443.16 -830.38 -1190.97 27.26 -1437.55 -822.60 812F wvko zIDt Ks7Y5rHd6 I2cL4M yBzi WpV5 OOs7HuCM SUIVE l4M4 8etB iyAM dFCy nPQh OoR6 c79xTYe YiQce7FEv +1 3 -1000.19 -970.38 512.08 1283.28 -984.69 -968.65 516.66 1286.86 uFIb krDjrRK dcYu 2QzL voWzIx OHZQ hWZR BDsD 0SbD cuL8Mb ny6S hTg8 wV8m4 KGN0 VNYU omyW tJYtmcYIY zLNj kT4V BE4P bymm dQj5YYy 7NHzGR ZoLBfUTnd mUaqZ0EkG 3NbRYrADX UTLS4TV OoarTohxT QNSAycv DI8r8 bxeXPb FnJa wj2drrG RkLXAMqS 2hr8 w25Jfyq5 wWafR 6A4N aw2pL GBrw 9ntX u59k J0qkYj2 +1 1 -1116.64 307.10 344.55 349.33 -1106.49 325.17 348.67 354.07 8iwq iidXl6y 5ABX DwkJA ycIRR2 zrnsH 1Rab m28C Yj2gVL xflL +1 1 1667.47 210.11 -702.48 -674.43 1675.94 211.11 -687.00 -669.48 tKVK ChhU md8S ZGJM 8xgXKiaK BOgsB HCxj aRa4ofHN 5sDE H7Mc +1 1 19.39 -288.57 447.19 316.03 20.39 -287.57 463.04 317.03 p0e0 9BtaWal VsZOUU ID2Jx7w O27nO LHQ1 IiYa 68e1T obtV uSKH +1 2 245.27 546.95 -96.69 -981.77 248.16 558.47 -95.69 -978.10 YhmgA peoG DZfJRb x8uImJ Hq9L tzwz 6oj9C Qv7g DfxwEgn8 ew848 UjaZ KTWp ET5E 77NsgcQ akmD 6uJr26Ds 69yW +1 3 496.18 -471.88 470.82 -730.39 497.18 -469.19 471.82 -729.39 1PSDR V4Mp 4x4e xMOi Fr8C a9kW AprNi MbqA PlgLx EDZ4 3qlUbE yjVc WeEO Tu97 AJAY zgEq Thbp b6zz6S NjIWe3dA Z83chk l362X67a yhmL oleQUWxX 6tgp3dE kIX2l0 8ITPWr8l dRKCS 25Vz XVXv x7QX tGHgi6Z xhOQfvhi 7FWWLM aHsi EGAcRUr Q9Nx pLV4Bs6gT Liky5uCC 54tr m8ch Wt64 X3EsBD1tV SXdApo9M +1 2 -164.98 -173.08 -1149.59 -231.59 -163.98 -172.08 -1148.59 -221.32 Iehb MZhJ ml3Q GTioKQgk 5wwu Dy29Wmt J4Ft KU4y h8IQ 37pk1mNZI EH8W 4uo0LbS l9nQ VNrSwstM FYOSx Yi09 kvWR +1 1 -1011.73 -8.44 312.47 -719.31 -995.79 10.43 320.08 -711.95 N8en gurt hC9s Jq7W HByu ErKU zKRK Y8TfRi1C DmYk AUUm +1 3 -1533.50 -1249.63 375.60 -653.91 -1517.46 -1240.44 377.07 -652.91 FThr Re4MJF GXMd Q7hN rSL3 qy1R9Hj54 vkVzq Hq2v 0bamtT rzMo1WW9S 3JQc J2lu58R IP5r YkZu LKII 8NxR3zh 8Bw7 bZFW FsdT C4Iw VrsvEQ4 h1FTcU9qk r74J g6lfp35 lR7x cAcsnx wNtcV WikY38 jnPd TBFKczz sc2D osYF CfjCghj 45rF odRVU7E5 QTpD4r9 nPub ncta pAX4M vQ4x M3igg 8dDH Tarz +1 3 -822.44 -1086.11 -1303.70 -290.40 -810.63 -1073.01 -1302.70 -270.91 qgN5 ByQr1geL0 G1JX VryQ bjyP x7Ah ZoO6XCVwn SDbq SjCl7xI gWAt9 PIPPOA cQTJ OefWBK n6NUbFGx 8uQH afy0 yicMVk ASf6HDo 2sA3TC8U L4SI Z8BmTm Y8pgxHQ08 sBXz EOf06bSR D7suT22Rf 61ISFx2 0Ral 6XaS VIGkVkB O7Ysy 2Jwm8Ot xRku XFvj d0RpxbPsp FPCpdc rXxy BnYK d5FlZb 4MwBH 9qY1EEt55 iaIg3 bmfN U1Go +1 1 -943.30 1473.11 195.31 590.69 -936.28 1474.11 202.75 601.96 EWeZ Okqq dxpE C5Vb s4dV FdT1 BEMs i5d4QIjpz scET zi4ZSUe4Z +1 2 1032.87 322.93 -1125.58 196.66 1036.52 326.54 -1124.58 197.66 swCpC WBB1 ljcE cNgNHhO 4iop rlNrSWcV G4Zz yZRyHh9y GDI2 0fSE DbtWNg OJzE OlIo dyPV nfeQ VPs1 1M4JVL9 +1 1 289.39 -2569.41 -2082.50 -670.12 308.49 -2559.83 -2081.50 -669.12 dlw0zlDB V7mmR3hV 0BcP5 AESY s4ifiET 4yC5 RD93S 0szN O73j Tt2d +1 3 537.52 -494.28 -2174.85 -40.49 538.52 -485.70 -2153.40 -35.87 oGIoYpvmE R56lC AWD0 KtOz Oa35 7AavxDv KEPS xiKb 0bhU 5qns VegFDG8y RBX4 X2sy 7EFSQDO00 yQ2G X4cH LdB4Elz v3Sn mIFa bxvAG3 blVP Mv2Nq L4uiszFU c5vfVUJ oko4t6OBO 5VoIQR XwzaZna AVvZCeQ 1ACs JubBsoMl wyPk Q2d7 bhWZyB6qx ee8eXX3VP LzDo 9Pm1i9iJY WFQxZ5 yw0P NpFlg91 UHHQ pfrw mi5X GLMa +1 2 -961.61 -6.48 821.33 -881.74 -955.69 -5.48 829.64 -880.74 wDeKr qePy I2RRL4m JlIQ 3C841MW6P jOv8 2obQv4 vjaQ md9LRt 7NoR fliN U920dC TVk3 NtQj8Jb 0tJWTfNgG cKxGRaWve rGO8 +1 2 1061.52 -2384.82 255.31 -1712.67 1062.52 -2370.79 263.96 -1711.67 Ej0G z7no K5sHv5T 2VMs vFdf IaOvWxOg cpXcG zpnK GT2v nJFKUDTtX pWUgY 5A7Z dvMe gl8WpkFwx 8Lrr h6gL 21WxI +1 2 931.49 -1245.63 -1901.52 -509.83 942.48 -1244.63 -1899.66 -508.83 EH1F 60Q8 EK7D 0FYq PiHw qeTb6go oivn nBv1O CIVW Lsef odcIbCp9F g0YIx8BC E3RR5u2O SHQp 3Qq0 17jZ 20nN +1 1 -1365.37 -801.69 1971.57 1701.98 -1358.64 -781.97 1972.57 1710.13 5X85 Fej5 lUXr wP51 GilZcgUHC XQN3 IwPw ENqV4 sUaO QAWnTDJ +1 2 -25.16 416.35 -1212.36 -1717.71 -20.68 417.35 -1210.77 -1712.01 ZrQ3 DLGVepLCg cQPzfb 8jdl 39cIDp YNPS sblS YEN4Z vfx7RE x5eAh4Or JqjT Y6Ax7XXlz ysG0 yaBV lrwB DfeJ ddeTwp +1 3 -1509.86 1025.17 -705.91 -1706.81 -1505.62 1026.17 -699.21 -1705.81 Y6ZR6Ta4J eXdE76j8 risTk YWQh dUBko19 tsM0sF WGOJR rg7Q W1XN czom1ppcL 1HBX HIMET G0deI nQXY o475od MqTj YXwV WfQJ gpFX yI2v BhRt GP8D vyy5 zs6owBJlD 14v2 VgeF uYEngtu Gz68 53U7 XrK1 LgwH 7yUj aWXS5lK ZaJCkA LzVK 7yT1 LpIH uVSp lEmg Bykw9xBM jaRTDNn oWZJGYI0I t0sk9X +1 2 402.76 431.75 -871.53 -86.51 403.76 432.75 -857.27 -85.51 gIcrbxYLj fxjlABT 2Hsp QKP8JBHe oFSsUi 2b3zLIMm TIXOw VHSIzx69G 7OrG Wu1TzbA GZ4E 497R YsNlu iDWx sRKmi cUL2 hCAiuxt +1 3 -1625.43 -135.19 1746.12 350.45 -1624.43 -105.97 1747.12 360.94 d84u fPCH wr8R9 bfuzVhp LAEC1t MzFo yBzOsA I1NZ IUA8 arAJ m3jD cw6EyUYjx pnSFf6 toqdl6kk XsZ3 io6nvUt oxcjk cWkrm er8w XvTsF uSSb Tzvg J6FZ 5FKa I9nx R99r UMdR 9uk5 8yYT Ejjx gpqC 4Me3 3X5qKlo wtap i2vcDh cJx3h5JY bNztYrKF lFWv GBYvq PPlI xWI7 23UlAnZz 9JJG +1 2 -67.71 -125.72 522.91 1304.64 -64.59 -121.49 543.22 1313.83 DTnQ yrUz oaKr Ss3UAVruU CCa7 4y2Iue rTfvhj 6KKF 5STY0g 5YKV oemk PsHn RJUP a0PpoBVo IRSC 37o3e3 IZ2OZ +1 2 -366.24 -257.82 2170.91 1634.15 -349.45 -256.82 2177.65 1635.15 d7OA b64O DAwz VjvU Emk15S7m 65TI 4Q5lR 0ylgXHZ3G AJaY as9x42 vKaS NG3Kv IJXE 24nKm if0GtYh pKE2un ZrwM +1 2 1862.35 -221.43 654.97 752.11 1884.97 -215.40 667.78 754.65 oNTKOBit ozsxen0Eq LuKw DroTw3cV aU3W Ciur JgMV GLSs So7pV S7T8XPtZ zjRqAEle 03UA DAhhaouNM wr4nR2 UTTMKmFb 5Zx34NJV SyP1CWDc +1 1 -760.05 731.76 -970.25 -699.99 -759.05 732.76 -941.22 -673.92 JsYn r0OtLwG FKw6 ZfhFSsS Cc18j1fgO NMT1Scx0 eQ6nmB yOFK p4635uH pX69Vm +1 1 706.15 -1378.00 -1500.34 -728.71 712.27 -1377.00 -1489.99 -726.98 jdt8 mtB5HT4jj hhJIBPbJ iOAg z1Jz 0dNPjA 1gXD FJZIFUjQ k3CZ bPvHSeY7E +1 2 471.78 -1696.80 -1861.29 855.56 486.66 -1692.76 -1849.71 856.56 cnaC rJfE d4HC kjvU DOU7o HTBG viWz dXHG0Jt ZBp7 YrOGB5i ueq7b0 8Vaer AEpjG 1dcuRZk 2Gtzq wSo3 Q4m4 +1 1 -1597.24 403.50 551.14 162.31 -1579.90 420.46 575.93 163.31 p1eIA1Em ayrlAS RlJfFdouC jxqR 4V0Uv krwA M96OQzK wna4 WpMJ Mp37 +1 3 545.22 -593.55 -888.96 2429.93 546.22 -588.92 -885.65 2430.93 Tz0P iC7m 1bhdWJ82 wnDnjcx EOH8 NT1yubdRo 2yP5 hVVw GGjUiHBl mySwzb RikH vtVc uq7Ln1t moqaNDi KtW1cZ3f Dbnu 6cOzZ ZW9zA7 BCcJ Is4q Jm0gt2a AuPE 8eYH ky4ph4 SHt1c nH6T nk8xL LvcgD BFQEyJ6q3 UHYA hOJf 8ICMFkMwv WxD6h4dl5 r8ugU6n CcK20Wpg 7KdM o8yh 6Fcoq 8nS4 E95y 7o6o CGdXw 3tD5gO +1 2 -955.82 -1033.52 -876.90 389.33 -951.16 -1032.52 -863.49 394.98 7pcMNB nntj ctgUeih ePXOnUWW gLnF kSZi vWdR Et7w Cp5KxK VYr1hvj uoX8jm 4901 otN8It vWRj GEU3 uuUk IqXv +1 1 421.30 -2.37 -39.48 -1506.44 422.30 5.68 -38.48 -1504.71 eEXpZI NNuB QG4IKUGda qHro iSpjq3z yAyw3 kZn9 Umnr V5oMPFNbl f6ZX +1 1 -1095.35 1043.99 -1179.32 -607.05 -1087.57 1050.72 -1178.32 -594.91 Yzm76v fUXmHS qF4N qStW 7FdV OMvmi3HHD whHZRc8 YuNxI4M cwKlKFw6G w3Xjv +1 1 203.61 447.25 -1167.54 -488.13 212.84 448.25 -1166.54 -478.85 A9Mq aA5V ElWcoX pQYn QTCOgn fzadoU XDXe 6z7o pjwZtwU nlz9 +1 2 640.75 -371.14 170.30 -1516.61 647.26 -364.30 178.41 -1515.61 Mo6nOSJ u0Wg cn17 ku2G 3MUy yWrep Yjq2UIeJz WHIZxs2 G41T DtIf3K5ff o7A9kJs3 igSvblc 3oQg AYz8l O7Nz P2RI R80p +1 3 -890.73 -1393.29 942.70 -604.20 -884.80 -1377.68 943.70 -595.41 cojff NTTh 8RZK 8EHp1wMkC qQ3I 5aRX rLcy haGV uLjx 1Vhd 9w72yhZS DGqrV0 G717k SYexo NNwE npNcs ywqf u3SK ZVNk mMwqKID YeGf 7Sn4dyGd BG8o BQV4 xkD8u XZVx I4z9 tioLakIU Xo9zpd6Np xWtaK4 53ht QHcsazo 7ZOr95ff 1m4P LB9fVu 418X kVGw AjaJzJHH BnQvO xGqP bBg9 A9PjjgXo Akyzc +1 1 -185.29 -420.76 -332.61 -253.28 -183.13 -418.47 -331.61 -252.28 Atjy KcnyFnod UUj1 jSuW yoCZ kQtiY nlGn4hcv X6fr 7aua un8W +1 1 830.23 362.34 495.27 243.71 834.21 364.18 507.32 252.98 zwHbVo2D7 x8rc Itbe DkXR CYN3Zgs ujsV b7TO 2dmHNipF KkZ0 QWxj +1 2 -304.66 -69.98 479.81 -520.90 -280.73 -68.44 482.84 -511.06 oBmoxUR cUiBLG z1Mo jL8NDCsAp 82yO AZji AN0StupN5 NL4vssUl fEDwLmoi8 U2b9D7 il1e zZAM sCyT 79Hin8N KE5vW2 041D W13rz +1 2 641.76 19.83 -451.24 950.25 642.76 36.16 -450.24 951.25 9Mmy3 7sEUP80 zksRoPoDb leya K2Ia dDSkAp yPSPvvh mEPIZt2Oe 5cGi oQ0qk SYihn P3mEgqu cerb xgWE1I P6Ur lswvC FTCMe +1 3 -1104.21 -1150.78 213.55 -1234.36 -1081.94 -1149.78 242.69 -1228.29 yYo0 xRBC 5cADVkay 41Zytbt foaim OMRYtXYi JY85 t47A l3EsUA a8pM Vv5DtEMQx rcKU2p vpUG NzLcaFpj lb3y Y3fUnFePn q0KYRbO2S a5P9uu wmMj tmNqg5f tq07WU dHWq 85ceU9DXz bvAqGI zObp97 WycR 6Oqo jlZK QokmlpC6M dNbfFk tQEE8 2LYDUDr 3lRX inUS fGWS 3C0d aVp3tVsh jhEXa bYrFvmbPF Jdaq 0XdtcHn 4HIZ KjO5 +1 2 265.96 -637.22 930.80 947.51 278.37 -619.68 933.06 948.51 XLMO bHxG QpiZj AktV VavB5v3y cgAIfjBGl rMmIJm cHP2 MRfY 7bnn oNhQ lk0117E7l S6Tg YLGxv BdShcEJ aRzPS oX6G +1 1 -460.81 17.28 -723.46 -736.96 -455.53 18.28 -708.93 -735.51 BPAhxDd KY2sKiRK 9Gwx Gwpg Z57F mwJU rX8m Ytu4 ZxfyrX1 B4uig +1 2 1167.55 268.04 -2630.57 373.91 1176.25 281.26 -2617.32 383.40 7CBQ ioNmcjzx AUkcL i64A YSYON0 8Ake peS7 hKFS 5OzUAlqm7 gdJR COmf Lj7w d0p7 VyVAy mbzl Pfny 146T +1 1 -869.10 -937.83 235.69 345.61 -864.85 -928.54 236.69 364.58 QtxkuT4VF 54liD5o xTdkgt6 8Ce8 DbCyX W6Qy TcDHLSs7 uF1g nD8oS f4zP +1 3 177.18 217.47 -83.96 -1573.53 184.37 218.47 -69.67 -1571.14 qkFQlR g4rfQEALH QkG1 ogo0 PORO 1WyI2FB OsbV kwrt x9tv JHcweP IpxBsZkoh R8vn hkFx9h s1vAba VYkR 7SW0V7mX Za9i zaOd D48C BhVktOBH aO3L0OS3 4hAqPaG knl4kzm WL4MB7P jcEE 4nJV HUPe2T4z7 9qNF Av4e tl1b QJaWuaEZ gpIi JcqBSF oa2fKhZ 4NfJ 7KlA mLyzLQ9d tCfZFTZto VqDD WW6Ug 54sz XJSy1K Z4S412 +1 1 -39.07 -1468.85 -1889.05 155.78 -38.07 -1450.92 -1872.60 167.38 6KdO L6Be QgDkRh ZyVj qSLHlnp UetK w8NsCh YB2bH8AN vcl6S dnPA +1 2 212.10 -722.41 343.52 546.54 213.10 -704.89 352.15 547.54 sUjf eOks vOsh EHscNA 6P53 BXtm 0FMK xFogonu5 tMwE Yj3N dhOyGxCO i9oR RrDa BDTNEPNR KA7v327gh AnmnMq Fueh +1 1 1186.90 -759.12 365.20 -1766.45 1190.02 -758.12 366.20 -1765.45 XoNCpCEUf 4D7p 3Y5I53t cSnbxC JZDh Mzlj FSC0ujgAO Z68Bu c8lhIE EC4q +1 3 2507.20 454.80 -1.33 -1800.25 2509.66 467.30 2.98 -1782.36 GwnJ F6gU ICwJ rCXBTj y5wO bouQ FCM8mTk jKIy AcMf Z1lH5t n8wu ku6Y TOkGL8iL hZYA7t J5JM Fsg0SZC4H iwaN r5hH0Dw7 AdDO QyeUaPj f4s8 vBP3 3P99gh1 40GGbsR lof0Fw bbeu1r iy4N 7Qye5r 84cSUA QNGL Z4w5XPPQ0 ppNlI GBzq8 0koXd43 0UB74f YDyOL5g Ci69 E2Fk 5W8q sLWbdh QiE6 3wGj Kmts +1 3 -1581.31 -1001.15 -556.26 -2597.32 -1580.31 -991.21 -550.91 -2590.95 k4Ll ZEad Hh66 iU0Zy0Zq W53E eZTGFRgH cpLVi7vEz ivdp ZWjH n73yoA6b SOd1TE8F 6NPofjk 2SzZnE yHNGqq 8On5r JLzGglTzG 1GYDFa8 MrI9p AzcB FVPf EJNEbk HhBOH W8Pp ltdV uVZC XRC6YS ZQLDe1f e2oK e7wh eBQuBM e812 dQB8u KWBx bICOknc epa0 zx5y1J zxMVkhvnS EKut KrzEW G5gaoTqYm VFZI otbX KYmhLLl7 +1 3 -61.46 234.68 -255.72 836.97 -59.44 248.04 -254.55 838.08 d7SQ qYfi9aJV0 goNn 7nRfGp xrQMZ LlCyi kWseRO6iB iAeOf5 Dl0zp6rC0 4KXzEr Z37y TIO5YM3kk mO8upeonW SLWv oDn7R33 Pu89qv HcUE m7zG4m0f ZKn0p ArES 5rXQ joMK Pum53dNe VEBx 5GYW WgRQ3 rA1ozq k8AI gqHq B7t6DG pfdm7 NMNq r5cFuz gCF5 vZ2R V289ws WDq4Y6G7 QG2mLp 81uw mOSm qJGofn68 c4Tu JIou +1 3 -1408.47 -1122.66 1027.32 685.54 -1404.60 -1121.66 1035.44 711.57 fJYzq HzTdi272y jniV nPvPJLCe 9uJWl2cP 3XU0fat qPZs yCIE vHzBH OH5pfS uLZt coXDF7xhm FXyO doar23 DH6g i4Qz j4Mb Ps4Whjn 4oLOkN 0lMv oBGtiRf Oytw ygRBQVqn h6wX 8mQvtyT 5k2WhbJw 6Bvt dXgp rdTT5Y 7i2Z EoHdniAO vuAB 9TBU i0azeR 8MKn r7577CJM CkXE 2ik6 XJvdR9up IuIxBlW0 Jaad3e sO9w64QU 1Oa1WD +1 2 670.21 -1764.70 1452.39 106.68 696.19 -1755.01 1461.06 113.39 a1QUk5 zHML eDIBJ XGTL YmfbZ3XK1 WPH6 Eshf SqtZ b6Q9JLs HYME ECuYeq zdyC ZY1T rOQG WJ7g 9uhM 2zjixNjwD +1 2 -1854.96 291.93 1199.07 -288.53 -1853.96 292.93 1208.46 -281.77 45VZ3I0 6wEh GyQbMX6 cmd7 8T0i m39l3 dfHO 5V0ogQ W6iR DFjLZGjc p67V JK6N i5Fq FXUt 1v3t 3MLS v2M5 +1 1 759.32 977.63 69.30 -520.39 762.74 979.11 74.05 -509.62 3cVc wQlu68h sxxx COp1 XZW0re6 dUwM eqGWdlzVc IgAC 9988gYPy LrtIKcwg +1 2 -632.29 -199.74 -1452.41 116.68 -621.60 -189.32 -1451.41 117.68 lKFE 2liI 0fXPfC V8jwZhXu LgR46YLX p5B0bkt WVLId KrbpO y7Xn f9TW fXOsdI 7osJ2 DUtEM KX0s o5K6Q q2LAb2j WSGG +1 1 -131.59 -22.82 -1202.18 757.07 -124.02 -13.85 -1201.18 774.83 sFJu vTC3Go gTHd kmtv TOGrfM4kj TWeB rPWD MBb5EZv6 v1dAXY eVH3Y +1 2 151.19 -462.19 -335.06 253.52 152.19 -461.19 -331.37 263.44 49IJk youxPI1YY VxED ZKqb dd6zMeg 9fTc rED3 cHxBxS7BE X1dx9oH ZCuRZNBa XrbT 152g c2nV G0SG p9Nv55 rk6i fNfm +1 1 -386.03 657.76 -551.04 -898.71 -385.03 658.76 -535.45 -897.71 wrWb nl8hjh qArWE XPQZla3vG GKOfw51 kBAL 5h7RuP8 iLk5 qb7degV4 5ovX259 +1 1 1706.55 144.74 -674.75 1343.18 1714.69 159.08 -658.17 1344.18 wHzn nlTAN5 IQqOKpb fsZf NNb5JIv6y tUvDWsj KFb8eWNu6 84dy d5VH QR1s +1 3 1680.60 -954.94 808.67 -136.44 1681.60 -949.51 811.97 -110.21 l6ph dZl1 xxwc eaff vbxqPxC NK5X vHcPp wivv hq7qNxcE0 LCRvUg KZFgMPp3 bdCSq5DIc Y88PlF9g 9PpQOzV kwFi NBhCrd eTff zXLi3nq q4We i26E2vcB O7tU D7PI 8CmUQTQpi U8hZ QIej zKWE sl4ohA UVIwbd6BK pKJLUpgx SPjP aDbVo qxQDQ5iUY SHx3 x7AB kbj8 Zl1I Zna6 29vST rzAkIL 65bX xaU5 vWh9xjA jLRv +1 1 1620.57 647.56 -1226.54 -1329.87 1621.57 650.58 -1224.48 -1317.22 z7Mi mfUP KG9g CzHscm3T ywnf bv1W jP6r2I 0vSy uCX0 y15n +1 2 815.42 -140.54 -471.48 -202.75 833.22 -130.14 -461.10 -200.32 4sIyzG Zb81 cmKqt y0ffOisw WQ9V PHrJFGAV URNcN00NH 6Scp 0wVh RDT6 7EiyrV5l bRlsA rS3fAA QsOgG88l yD5zWXZ Rrva2tN u4d7IH +1 3 667.15 -590.67 329.58 -1747.95 681.87 -577.95 339.38 -1746.95 OXZ7 zTJYuxHg K1MS Xf4V 1Wpp DFhdPP YQ7C8 H20k KdD2u7wla nDFSzB3 AnKXY3R QHkp rpNbQSCQ0 lJAy T06X fpYW BQ4ueV38y 4qtR Uimh RCXCBowS IOqI rrWO K8ZBqclc 5S2KiBsP O1X8VcI qWhV 7tfrnT1 hrut SP46 ptrPC S6OD DGLJ CPhr3 YHD6szar5 uUIf 6wkFK sG9Hnbo7v KoU9 sHJo M2gR C3F8cc 3DKeF4r dm9xTYZ +1 3 1093.15 -1391.08 -470.77 1314.54 1094.15 -1390.08 -462.64 1329.43 JmivKJ qOpB JH9b CQv8joHZG QSY5 NQB7 tnQR ETMAD6J mlar lOogSV FdQt k2voqmt JS5z23 Sy1T v6ZZH5 dttPZ2 c1wp AFF2 FSaMHb vU0YAeY90 nLT6 vWVtJSA 50eSrv FAnLcD 3O7y T0Ice kg18 fpToDa6s eFwY 8QNk Hgoe 1b4x BrO1 fZR1 hGecJ gy5w RrE6 TL23 lmBzlaN 8W60pn HOsO4jQ l04i T6l9Zj +1 2 -1198.14 -778.57 -53.91 -983.21 -1194.41 -777.57 -43.28 -967.20 zbAi J8Gt nXw6 IZh5FsxB 6kmV Xb5y SqjZ chfL hc98 BDLq MhwcfgB nlehP GCgeEwC OKEK h5U9UODc uoT86I IsQpAROx +1 3 706.83 -762.26 -2001.41 912.12 717.28 -756.09 -1990.29 913.12 FpK7v3ObX oAO4HhvZU iZKq48 9qaEww B1pM L8yYgV4 e6j4ZRr Jll0 fhNT jfb7 wml7IwP eYnC 3Vzo8W WIs19rs rJxFsF N5WbBb s4LejJcyT UM5i0f TuSMSJWMh Roog e1K2h8 MFu9 4H1CfcpAj OKILiQZn a9lT MNrYus GpKg q3VOU R10O61fb vP29 JZI6Snqvc DDu8B1 QdtYEoA4Y 3cdD sCPY z4UL gbgWyh iIFF ZosxYBr0N Ep4Z E1yaF FKZmz 2JxB +1 3 -13.22 -1441.45 -628.07 -830.91 -10.57 -1427.43 -627.07 -829.91 KH02 lQlA gPI1 P48G8E K3Tp CkWg b9NF AZIy mJuE s97Her x8ATi MnTf C9Fz 4IzZX nIGY oW19O06d VSg6Qy K6He E7ce2vy cQRx 16Hb GmyXc2c7a syypJPv ckmCe wk4jIUv dkxG 7YFm jfB5 aYwXj9s cYxaJpTb0 Asnn bkGHZS eP90 h9DZBCS nrprMjz Jp5U aQCa sAxa EA1vk m2jN7C93m RESsRmp xuIuOC9EL GAKykSQKI +2 4 -2052.287354 1 992.015564 2 445.120697 6 455.120697 3 423.700439 11 s 13 l 16 MS7 18 v 28 y 29 Dpr 31 TuI 32 r 39 Ctp 40 f5L 41 NJ 44 x 49 B 50 MHj +1 2 174.99 1178.59 -212.98 1442.66 189.12 1179.59 -211.98 1461.83 ZwSJgL uaxNd LsDkDROm 9LuG2 n3mO 6lAE RCkJ 6k2MdtVH pVDE 4jSvb xUDL dLxg5 iQzKvJgz SiEa omCn eliTB6KG Q9qB +1 3 137.63 393.64 -1767.54 -1360.05 153.20 394.64 -1766.54 -1359.05 CNugCQ3 bPoW7tY qPUz wlA6 Jbv4 EiEGMRTC lnkcv cxRrQz siXZ lFoH E0Vi Dvxu q8Jp q3yj 1ZUc 4ePL9LN fwfreJwc vI3TZOJLs hnnrLJIP 2gmy0Z Fz2h rceGnC 3rjm 6A98 Wz5K u01iPa FySMUD EdZ4 YCvrpnJ y1nXQl URS3 dgGG uy2yu4vf Tn6JFk 8Bts VttClOzb c4uG r0AD RkGkNvj m6oE qzPN X5HtH2z 3RA8 +1 1 235.88 353.16 311.71 680.94 248.50 357.23 315.86 681.94 gtBf qRTA2Jwu xQrv whEYkc fwJZ 7l7xQ daRV jkXQ 8PFY tEMBjM +1 3 861.01 1362.43 2203.23 -1411.27 862.86 1369.48 2204.23 -1404.22 DkTP Uv7J fJ5sOg TBUNPYXJ BDeSo2eC olein3qe TExPugPAO 8zkm Xvwz upgAK Qezg E0uGe 319E16vGq yskxv EG9B tTp4p tIXl JGOs Coe9 bGMi 4xyERA 0oSCt95Y ABPXaXa7 N40BQYh NLMx ONuM WpZ2 1CE1Z 9HpB z4We0VCqd B9fi F5bqVC Zubh TutYFnp8l KvvOLg 6rcXnJ Dsy9 SG3MqR BzKU Bg0u haHMX1Lq6 68Zj 8Z1r +1 3 -1712.47 249.74 3323.46 -955.48 -1703.36 250.74 3347.07 -945.31 xrlNfVR pzI4wbJKJ cdCz cSTR lz3y 7hLGGF IBJt nipe bmxps 3dnYbmkk QHA2 6zOkUjv3 wJHcUwR EPlgYtgr RePT BBcg 9cAiIjGHr 2v0d cm9V3 gmwr wpYy asW1MA dRwIVJ r3233QS rYAf Ncox 069e UOHXxYH9o fVsHQF 4Grf E5DSHVl LFt8 2fnYzl eM3M 3w2Dgg F93a g1rX ypKQKg Pzy9 0qswN jEERAgM5 6ClU ij4T +1 1 834.31 659.94 -351.91 -280.00 844.63 660.94 -350.91 -279.00 qEZXkff g4sf 6S0a xer2 8LSUcOy0P NV3CBw v5gc 769X D6feRj NIhm +1 1 -589.10 -651.24 -398.42 -379.64 -580.36 -643.53 -388.49 -374.85 fXbW gwkX yju14Kt qXzqVn xOUO y8KfIB6 WvsMTL 3iNqSEm g2de Qq18 +1 1 -2054.12 -119.28 45.50 -102.70 -2045.42 -112.54 46.50 -73.25 4eeZYQY8X DaQxJ v28U4Uf1w 8PLW5zc QNCyiyq K6Z3 TfAE EybA4kEP OCd3M d4OcItp4c +1 2 2084.78 1450.49 -19.72 -597.19 2100.02 1455.43 -18.72 -578.55 WDE2 JZ27 kzSH nsVp VAZ9 XuwvKZleY GHSjmX6CY i8MYT JDykNIM wB4M 49Dx xWK0 DFSzr2Q 5A1pYqX WEuf 6HHvv ghg5 +1 1 -57.53 -1584.11 -108.81 208.81 -47.38 -1573.88 -94.44 230.03 rQPS lmgJ D9z6 kiFs kzJNvK wLtth 4ShS1f1z LNRV8bW rApHV3q O7VMyYSod +1 2 -29.21 -1084.69 212.11 -2061.80 -14.97 -1083.69 213.11 -2059.28 noxr vpW1U 2Y1h o53yd pwg3J vs4G hGEc0By 4liEal MJ9J duSP l4saK VaSWB 6PXts01bC LYOy DeEN GhSoj IdMz +2 0 -104.129059 1 647.681274 6 -944.345093 7 -1669.688110 8 TDW 15 FfM 17 vp 23 Lr 26 T1 29 gEg 31 c 33 M 34 H 43 Me3 44 RK 45 1 46 1yd +1 3 -98.88 -1326.45 -1648.98 216.21 -91.95 -1322.06 -1638.80 223.64 Z6AR D2Q7IZk5M HcV3KMb grAX Ggp9 ppMYt91gZ yHSKuRIZp gjIG XD3H 0Q9kCqP eu6d9 qs68u7 9HqVRfKcE HN7CWAi mx1vUT QXNj etd3UgwO7 QuouBbLw t1GHjaZXh IMsy WWDviFwG aFvA P5hb5sz 4d1Yc63d bDgf xb8tYc 5kKp RPv4 hglR7c QUtA 5CzXNgz JK0tJGY h0Ls 1do22HrWl v7hn0 0Ksm KPwc KpO5 BnM6 Vcuo PSlgau eu6Z 7WXg +1 1 -2005.77 -620.82 1088.22 765.12 -2004.77 -619.82 1104.35 774.91 IHjV3hBV oaNu 7uby9nUya 0ilEnk QecFLvx9m qM8b 4XxkpnVn hcXm KQFX O37D +1 2 -718.99 296.37 -1973.23 -488.11 -717.99 303.05 -1972.23 -487.11 BlMWQ N5dfQHVy OrALjU GFxoydKw3 ZUQ6 Wn8fvEg zIfv yoQt 4Obh55 dJ9EOpOz gks1 GnHbIlA Vxxmr HvrZ8fVA Y2su b158 wRill +1 1 1510.63 388.77 69.37 1332.77 1533.30 397.91 70.37 1338.92 EvxL T8FKJ 9iNCV rH0myMe3X 8b8O U7q0 MVoK RVHKQKhSh l1cH ckWu +1 3 -763.25 -606.27 824.57 116.99 -761.09 -596.82 847.54 130.09 JZFQ 0vf7HKkz h17q dNoPKWoh FHYL sy7M CwKB p4kmHno ErPa qZhJ T73cmiq E1iI vjLf PwCkTXD SoB4z 5dEa UgUX U9Lj D1kB cAeW qmUt MgQw iBpwuKRc gcZ6QEWS U3qDx8 TqXTvC 0AUU l40DNHasJ lbAPkwo VB26u0q vKwK msSTJ 5z00 ZPcT Q0Rw h6U6R nrrJ HABq OJesuB o8M1 ZtWpmHVfZ CXRW 5Utb +1 1 254.08 -1335.29 -615.77 -382.33 263.28 -1334.29 -612.81 -378.95 I2lF 22aQ SqEb5u5 Smtsix LZu1 o6Fyr xlJW kvjwsI hpSlVv7ZA C41l +1 1 58.32 2364.88 -1877.10 642.03 59.32 2382.47 -1876.10 643.03 Y6OqXf jqPoFpM YgA7bl l3k0MTT BQwX y07X OHDQjyccU C7MA cF3Z g1Xv +1 1 1356.42 1834.47 -962.95 -39.76 1359.48 1835.47 -958.80 -38.76 43cNF QrNe pJ2LM ipORkpmAK pqzm4NE5R KpFv 0ll4 a1E4 Z9m4 6K8z +1 3 496.80 -2746.91 1790.51 1430.70 500.98 -2745.91 1797.21 1431.70 9JkOL28vN 9xJ0 7YEKqDr sTxWp ZKxTpV LhWb F7Rg UPoU fgXJWJYUP kMKw2joV X9T4 08bFRB 2dxk WI43 R7bcv1Cag 1D13 swCU riK6i Xlw8 TsYKfk2 ojrJtJMSK rQxi lHy0R fO8jU8HYE J3Tp s5cQgYd QP9e 9B7I 37kkXlV SF5g6N lccC Aame S3iT O0Os By5y njPoC50 KWpZ IlS3 TRIR XcwX YX5BaloAp uofhGZkF jcGOXYXG +1 2 -414.93 1196.76 -114.00 -975.90 -411.85 1197.76 -109.18 -967.86 PC3Gq Hwbn rw7I 5RxMeTOFK zpKe s0A9 gGTg FPuP gGwF HDfbDFtCC UYfF P7QO e3kGaNxhU kEPfrS UzO2 bLDt F8pb +1 1 2032.14 -1174.95 -29.10 567.81 2033.14 -1167.89 -28.10 568.81 vHAJ 1k85Hq fwXjJMgf L7c2 9maJh9QF DlZOM gQdX 3VYV 8319 PZaIb0ut +1 1 868.04 126.84 -1045.20 -1239.35 874.54 133.61 -1044.20 -1238.35 eQLU3T Tj834 v9QRF VuIOWW UvQmQnHk ORZf JrSf zob5me ih07 bGalzw +1 2 -494.94 692.74 1013.42 765.91 -479.12 695.67 1019.35 779.73 oWYh hNBSO1Q6 GzM1F5 s3YE WjjVHRTH8 lPoqBKjTq ne3XY5DP RWJgTe 24xR PSRG TveWiR ghihW6 S4ge fKxCBUcT uxMd JvZ0R3WG okHjNg4 +1 1 1166.53 908.07 1313.52 3.63 1176.31 917.41 1335.45 4.63 EKi5dem9A vjoS V9sf CGgp iWApOEY hW1MXK 33H5 zPVgYCQ Gscv da9i1wx +1 2 1335.91 -399.35 -198.70 730.67 1336.91 -384.87 -197.70 731.67 J0YW uWEx Q7uEYa nTdkPa xtC7GZ gUVe NBSDJU co82 bc0E IhT1 RChn xuGS yMd9Z9I T6zz bRVc0XG8o K105 ucMR +1 3 -1171.86 -450.05 -484.69 -565.14 -1170.86 -448.82 -479.78 -555.23 ogPP NVe1 7Pos7X UJ5foiXDv bun5 ywqo nfIi D0bMn9 mY6mO qrexdO NstdC pmeo kOKDi JhvCG VoN49 iHOzjt fcJMRq NQtl cuoW VAkCfECf OHxFK J7sCsjd JpYZs1 YnGT gEUSYnzD yqSn Fbcx TyI3 2C4Vpq TVpmfxB1 TZO45off SshH 86Ze nLXcf4M TZEHY4j8h P01pzawUK DC3I03n bXUk3Pv dpfEy E1kN yE3wWD CuJoIng bMVIqMLlE +1 2 2428.20 103.50 395.03 768.03 2429.20 127.59 396.03 770.85 I0jm0ob gmagg2 CtXI eoZUwBEWT lyP0Pae jAJh VzLX4 ih0c bYqO 6Px1 kX4X 2FPzvt tKZK nEKSO vadzLM ZZpF ZCoM +1 1 -65.32 -773.72 -460.61 -776.78 -64.32 -772.72 -442.46 -775.78 el6fl8m Z1YBYK TVJG1oEN KzI4e4bvu NcHs 4QMR5AYyi 0heX3aiG eHH4IZcVT Z50J UhnRj4t +1 3 807.10 691.10 902.62 610.05 808.10 694.66 911.14 617.92 XgBw Nqxoss4j Q5xJrDnJ8 J7cvdS vgOz wMYHuAR vryRHbEoq 1PkPmL aW1Z ds1b NZfh6 JGYPWmw 6eiKYzp wEGG EUEaSWi VpMB mql8 DVXJ7XGf hn7nC 5D7E XeAI gdgJ9VOIf VbhVRBvfC RDIv aUZFr tEpRgr305 PbfOJ42c4 nfsh OiIx ahpR 6zvtXGn eOHdgV2T1 7iI6 UGDbAY 9b0M2X zLpB tglF 3AF9ub5F nDDHc hbnJNq BINK ppVa hMJUby +1 3 286.27 -2893.08 -220.05 -121.42 298.48 -2876.97 -216.73 -104.86 iwRu EVkq2s g3pzjc TDsL z0W9 66m2 drbQ KmVIq gpmHzKBj mV3NViQwl rew0 fcdF bAlBNQRR odA9PVT wkTgy WuT2 o8Gx E9vP UCrC ftHuBQFmM fI1z pvOW imCP qQDiE7Cw9 Re0yk xU8b 72tZk xL5v46Nd YcQ2tvb3 FW5cdTN ZF6Q kvkmoOg8Y ilL0Wd1M Uf3u 6GDA cVTVbl Ww3A kkINANFC 5qlolBOMT 6JFYmT LuiX XYEq pk7d +1 2 666.20 -803.25 180.15 -1073.51 667.20 -782.99 197.23 -1066.34 LO4x MShZ wJtyqX 2bzZ aP0n FuRbxZ FcYa S8gb7 lc3N gKUcc PVBB fhdlXyJaM WZT1 ddeLUxvo fMgd T29O ocZE22ab +1 1 354.20 855.18 190.12 -1095.26 365.91 858.93 191.12 -1090.05 B7Z0H 8lfGga3v Zo7D RRuhK pm13 CkPcYI ksW8W SrchT1wL7 h0pAtC 76OG +1 3 -2515.58 654.51 -1600.69 -596.88 -2497.41 657.73 -1582.19 -595.88 IFqa QZcSvXd YW5Uld5 keFkC3hA Ab0t FJ36 vROotg Abp9 LYMg 6JVD NNFJ NEOl KoMs YHM2KWqC BKEio4Ai gsgJ UMVrr9HR RPUAT eYD3uLs QXOP NZul686l FY0lDG ASYb SmLOwhAN nD6g0gxZy lk5r IklZIo0 vKJUFD zYw2 Os1F WID7 us4o jeNcD1 enxG u7Z8 2cUW opPAc S9oDf GBt30Qop Ol1x PyP9 khsF cWTO +1 3 25.77 728.79 -1835.98 1938.66 43.69 729.79 -1820.25 1960.78 Jlzg BoyW MriR pG0GKgACY bAOt SpWFfOAt7 QNhe rtMkonM e6VWbdOgo HSwV 0B8x LfFd7uy Z8wF hcPCWdcxO OqPY 42P2 yArbxiB Q4YI1lUh nT5Rz8 I0eGWE 1Yx7 8RUiKW cBeP euEk dkUCW9f N7PL OXIH Y1cYoglR oK8GdpA1H DLt4C0Gb lUj33s uMpIy KxaE 5NQu7j61Y gcu4vGMO cOJCWIblk XX93 kpqh AOnw 9FOLlLd n46Wf eaS5 5sbG +1 3 -917.90 -793.10 552.36 285.91 -900.65 -785.32 553.36 298.98 qU0D VUnQ gyJp9vKj ya7yhYQpe rSyl ziTg IKts nL4RXH g5wd rc8A bfnF52 FmqS Ladb 7so2 w5UK 58pk Aw7j1fo Al9M SszhFfyRC tquY doGTvn3 mlxe NPHw XBajmQEzO wt2aoK 5Y2csJ fplY 7MLZ Oe2mq 1bxd08i ma0Z lAu2PjG 34MK tApzZBRy U2KGBgIJ rlr4 Gk9Vrra dO4Xuc MIiaULxO6 CYI3 lgSy kW0b FnTz04aS +1 2 1210.42 1336.63 817.94 384.30 1223.88 1346.70 840.65 392.32 R1bB 71ObJGIB XmJy TyidRf BXqLrex9W fLd0 9Jjnstv3 RxBRYTsHG sF8E n6gxD0rl pabi KSYA dd4EFMw h7Nufj1 TpD2 3Xft3 OEFbr6lW +1 2 -630.59 472.27 237.50 -1740.12 -629.59 473.27 243.36 -1737.37 QLIB jyLH6AMI yCFN wTJB gWcasP0Yg cLBJ5x RlH3q0f yAYQuPRq za8sRLj paj3wazb JuCp WS8a krGVlzLL lrDZAo KBkr 6rCe CrfhVTE +1 2 831.21 -767.35 -1001.88 330.98 832.21 -753.04 -1000.88 331.98 1T9x eTir qMtZE7q3O KUnv OKRh5SNB DzufJZ0 OEFV bAqs3MCh9 39ya N9UESodCp rEuxxAp WXDgVuxJ YxTXQzSdE oCoa nh2vV6W x2nCfB5z2 9wK2 +1 2 -0.12 438.50 -1806.80 821.40 0.88 439.50 -1805.80 822.40 fSnw 7uEtf ULV0 XNFlP SaQ2R0 6J8A 9IJM Um8ZnJ VVObw C8dv0XwG 8buZYS knMG Fz8o cGe8 PSbf BgDqsNBX bhAF +1 1 -2883.39 -25.22 189.88 -95.73 -2877.92 -13.38 190.88 -94.73 Ayzn pgKCj7 Hq8OYB KSBt 8FH0pCNQ P9WU vbleJ CXLb 9FeW bV7j +1 1 -188.29 -301.23 -77.84 -740.57 -178.67 -300.23 -76.84 -734.30 hEuRGnzr CcdE4Sdf CDit T1hh egHZ klxHzpvc DZug nfnR oB1Fm JN69bv7 +1 1 -474.75 247.45 -1034.94 -513.11 -460.92 253.65 -1032.38 -505.82 EcDMv hIDnOT 5VXQ zyA94 KkC5w6J KSev SVuZmaR UIdM4z 1HszH 6F60 +1 3 610.70 -225.54 315.96 -66.01 619.26 -218.05 327.11 -62.85 W7Sa v3UY ZhV5 Q1UoouU kIBM FYmZ DzWE Cq5h 03HeF uXnk ZsNB9djXD aiF7XHj7e kEqj CbKs6k74 N1215 XEuMB d7j8OnX4Q 4YIk kZI7 YJgx7X9B KaZ8 3Mow w0j25gFt 3OqPH J5oJ j8ElEWx8b oMyy j357B1 5N8S 7QK2 bfAB dGDgWdwN vloEmV YRBJM QEyPw 12TXJ3DE fhzJG dP3X zrLB XVqi3xJ Bqde dUXiQz O24uAt5 +1 2 146.48 876.45 765.74 910.03 147.48 887.17 766.74 918.04 fXhJ vxuC MbGM BG7IyISs ovYa tE5Jqul Xh8j41V f5Rd VeA1 euCU Y2d9 O8dD o0oYhK1l reBG V28aovRwY mCg5SzaFc 82b4G944N +1 2 -199.43 -964.97 1275.60 -73.84 -198.43 -963.97 1276.60 -72.84 pMHu vYGzwJz uRY5hcz 4jhF N4RcneP8n RLAE lGHc0Bpl 4Idw NlwCKx HUXe 6TC3 jLl5j bnlA lSOzubS1 QrrY fH3l eLA1d +1 2 -317.74 -135.30 342.63 -444.10 -305.21 -129.18 350.36 -443.10 pqu8n N11F SvB5 XTZu BxKG H8tp 60Hj WEr0HO FOEp9 6uem P6VQcVT68 9m57 sffijFO GLnq TBaQ e0LR uki5 +1 1 -1574.15 529.90 453.45 -262.25 -1554.75 532.60 454.45 -241.15 UMof 1DqD 7E28m Xdrn pTMj CdlW Kx7i7 UuKLHeBW AKqWDXA sjRXAVaI +1 1 2030.24 -1636.22 -396.34 -1192.60 2045.28 -1620.37 -395.34 -1174.52 SBEY g3vUjas JqeKrdzEi x76zR3qU LIWS 0FGQJD zZbq TIDjVa8 jWwfc2alm 3KjOtzsF2 +1 3 -165.09 -1543.26 1739.12 -918.01 -161.87 -1528.16 1740.12 -917.01 V2RuR C6FhG zl2nmUaAA zYQY 3gNifD5 AjPbf kMCC uEEd 05LE TWZw ixFVovHB neYi G0qP NF5PjUPYq L8iYTqY y43y m1Np ylTn zRa1 HjVg CWVn yspF3hvlI WroG 1ySkdgaQt x5Oes1 QTfhChi nO3sbZ NPAeyYGy2 MmXSRChB gLSo Xk8zIwy BLrRQOnK YEml wVvt 9XE6 qMwgCl2 9qz2 4CqRJtbjD rzU8i F7lFuOXLs BVqI yVJ2 JhUhSyh +1 3 227.32 -1321.63 112.82 -98.82 235.56 -1303.86 119.23 -97.82 TqjO1 4ktFi DRFw MOYwT2h6 KmBo QxIy sGjX75 z7Xsxc wdCaaO k1BOLOo 0t07 inyl WXYo rNFbhRvs 1fGq A1to xJsK sOXPOwvxL 98Rk xzbPZ IlHV iSmuWQj53 Y1Q2 KG4qknw7 8yom PiSO aNLQf cjLHqEUD 2Ixj rV6DM7NE s0mq WRj7 3o2N7ue JoJh TEOb xtiB riAz 95hXzxAt naYlScW koAA3URlU 8qsa PNJmV4 0YTt +1 3 2410.68 -188.95 903.28 -160.88 2428.51 -184.75 908.52 -142.52 tQf6laHNA SZaC7S 8lWu zx4uFMfz4 CO2w8ShY i3Lwv 9Te239r r2mnPj SsIx y1xa KkRsUMC1 1Bpa 0iS4zp7i xR6e oJcKFm Ds1W uF2DMu SDTT 8h5FyJo EiWi cjhkPmP88 mXEMw dSIK XNil0t vRxx6BcQq sOAChBg lMHX5 Pofl 4F34C8gA lYsQ 6pWVQuVN TZvGr uuri ajlN ingw dmgb Fkbi G5Dbn7Eh TU1J oSyV 2pLj zjck SKDs +1 3 -896.12 -363.86 1615.16 -0.41 -889.37 -354.38 1616.16 0.59 OMsPdTSiv vUVg CkmJ4P1 cNxRo4n41 xojmUmt0 WHtx0u DrNL hgC0 WoYA kb90 bjW7k 9jcs8Y qyJJ H7LgvltD KwZPAB huxW ZW7FE 7vcpDzkR bN5V DNm06 EsR0Ies 6bCU89 csRt CmgdNzT n0CJsg E6pC ZWypb sut5 KhTt jTG6 efk8 uJ2JGlOCQ q6Gd FD3rTr bwwL EuayTiDSu h6kU ThGb Af6I umaHv FfFr bWsfLN uEyVSX9z +1 2 209.12 -1524.02 -2251.10 -1770.50 217.14 -1505.84 -2232.73 -1759.05 jCq5d CsuAcIp BBhwn mibn7lf 4EOjCO QGqe GN7K xBMEHz NL1r CNzYh3cxg 5plT LaIz JMDiczc2 rMgM 1BNm8Np bNSR llAd +1 3 -438.40 315.20 490.86 -577.27 -426.90 316.20 491.86 -561.91 u7VvEZ4 yKrz pJtV35 OJyBk9 qnqL MO9qtUmi lcHH XS6A QpL3mt 44NTngm 5iDj QfLH x9BbAIPmd LsySd1 XXxZ SUDgROo rbK9 NjEf Ium3 Em9I T1L0 UKKC pNmk YoYp 1fkA4VsDY VOlp 8aXGDKucf EK8fhtDga QDlIHmYy 2MWG RpBB GQm4m Hd2IS jQF1 X9tE E54pKl0B kandG0K FCO2 eTMSn4So9 cyHcqg5dQ 4pOr dUwbN45Q mhyKIpvGY +1 1 12.84 1390.91 -1368.87 -462.16 17.01 1391.91 -1364.35 -458.92 qWiO Q97e MPSxF jbkkwp6df l9Muv 1JMF aQd1xT QEOT HLcD Imke49o +1 2 -815.86 370.56 1103.52 1408.71 -814.86 371.77 1104.52 1409.71 VR6R 0Zht Xc2R S4aO cym2 hs0G cTFrUsMC oR8JpEQJB SogO tLNz 7x5O EbX1 L3JN eQ97 Me1Yq ruQB JPztI +1 1 -677.52 -2484.38 -674.04 725.67 -676.52 -2473.52 -672.37 739.79 Bko6 QSPxOsAy f2hA qTzUzfv0I DfHcQwjAi oO9k a8mPFoij2 2Lxb Te7C 6kWc +1 2 1373.50 -314.60 -1398.96 1717.90 1374.50 -307.45 -1381.29 1721.35 5cDJzfL oeJj YeH1Nf 2H1s C31w96 zqOmo lBVy 8xm9 TePq jXscl qOhw EJC7zG52M VDjEL pDHo MTyFoS9yS py249orvZ Tuvq +1 2 213.55 -131.56 509.50 -488.16 219.97 -130.56 510.50 -478.85 DjLK FT1F0tZL 3cbZ ee2b PQiY a7MK05 ZRfv TiDb XJUxXh8 kn2x3 HrzJ gtUW61 eqlji FpsS duiyiF4j vM71 i7DRabf0 +1 2 -169.48 -480.22 -171.73 202.60 -162.37 -474.88 -163.13 203.60 xQiYa 0HX9JET B6wH xvIF5rGx heHQd xU7Q GfDp8 PkAs qligICL BS92 2DXeS7BS 3zxH 8SCH UOeyVKU nIZNt 0FzI 8NEmGiCf +1 3 868.44 -234.66 1016.81 -694.27 884.13 -233.66 1031.29 -687.42 p67WrcV 2sB1T 3LnJ g631 G8pS WHwDo7MF NEE1 hL0yD4 6NWp oNqppt2 gpBB9hDs TKQj wZBd zCMfXZT1 u905EMtjI RZSu m18a nrkOMeg tUHI rki6XCUw VSid hpoE 87ue SCmb Jygu 4OeKA183S d7Q39 NdG3 X9pzo s8m4 5fyhG zV35bw0o n0mQuX jVvFrrU HoGnNA2 KSBubX MsnO HTgE UOhoHh51 7zHj DCcyf cILN rVSV2 +1 1 -1343.82 216.34 -588.11 957.89 -1325.21 226.03 -568.19 958.89 6luJOJP x6r9 QvHe VzBD nbwN RvfJ uWdj obiRltv 4cVt 4XQ4D76C +1 2 376.51 -755.82 1050.00 -1097.17 383.68 -753.53 1051.00 -1096.17 FYC2 XTXcbBM bu0e CKn4 tVwcs1 EeMP erxn VDVy Om1G sugc sswF DUj1 mQMKhXTv WFiG 7NCdGY Ja1jpChCl gaKL +1 2 470.50 210.94 -407.31 394.67 477.20 219.00 -394.21 412.56 2M24 aRwo21 Y7eZCkghc 83HW x3AZsZlAm rdGi 6uDBP 62kP xpS9 fwn4 8Sprx Xt2eMf pjSC 4klV 7mJaYY WzFFyOkR Lrc4 +1 3 1105.50 232.14 19.61 -315.26 1113.35 238.78 21.22 -314.26 BmtABJ lju9 kCIABj cT2HqRfa ODGPb9i pEc1ASE vJ2dPx cTs2paO Q8R2Sl L4m9zmk tbbvxNSaJ OVxoRod 676i jnBG yML0KDk2 Y78Trm26U 8Cov 8BBc 2bjA 2KsRDT8V OoGPBje2 aPQh 0tz7 PjQo 4C1n VjiJ LGGw rm6GeGK1 K784 Ej5W Lm5wt 6OyKjf k6qN9Td jqGU MSph Mj0lgyvl mbSY Z5HW 5NcO G3qohRbKm kQ3c rUfZGd JaDg +1 2 -4.45 128.07 984.54 268.87 27.11 146.98 999.21 271.69 vYcHW BD9K WPTulLBa EgROh azRz SOmQH0sV pA2Bf IuvU MrQ0 cSZ2 Lc0w a2z5 pBUg GoUfeBMrv Ml1ak7oiS 30Un aUbG +1 3 423.93 152.70 -822.81 261.06 431.36 153.70 -815.24 269.66 bW3GpNiAQ gHzbP VReMFAzI qoLtIb PpSJjb1 cRly C9O0 8PJKyuL M4Ire8z Frkm K0CX UkEL IcJXcW apaxBOs sJAk KJtMVF LtR4FKz Xggr N4kM GHtb a48s 7flqwV aMBs fvBaYGfZj ysOYl yRox iG8Z TK6j 5xhkAIVrw Zwl2QR12j g95a6AkH TA7M FCh0 GsF4M UiXL HBup PAKO 1eTWeIWOj nkS3Yd b0Kv 1Skf 5b5sB qh0W +1 2 -275.55 -1880.64 1013.20 69.52 -259.02 -1865.15 1018.99 75.05 Rjsn XiPtEN f0Nn NCKnSep ZlB7Lsr nhp2 TNrl3u K21S oxd6E7 72yu r62U05 gSY6s Xzak hOgZ L22u W6n8aK KxLhBh +1 3 224.16 1095.21 -1812.18 665.93 225.16 1096.21 -1809.17 672.58 tf1tF1 Xa4m lN93Z1hdo 1oehQxKqU tCwE7K 0RSNuZo NTCHveDPm Y0urS bF2I 3tVg CCcDG2e 1vI3 YKzDcC kCCV SSPUFA5S qjWa TOJpWV N28kJs3M iZHp8hN cZokdM QovO 7gwb 66uL4 YIAYTmK4 WVPi njBT NvbXm T5GG joIc gCe4 jPau3g 59DN Q7XC zrLXoO 4xEH ydqoxAI 8Qa5 v1J3 5t5N13l anIWtA 3L4B 3o4L 29Cg +1 2 448.81 -820.56 -653.53 808.85 449.81 -819.56 -650.34 809.85 iM8FAjYQ IWLZ GgVX c00U Ul3IEzCsJ uzzQ ejTV ur1Shsy9u jeu3 p000nre TIDK EPNe JzuP PXICnb IPJAxU9A GU5Lu54p TOdh +1 3 -1435.87 173.43 -263.21 -14.31 -1427.89 174.94 -256.42 -11.48 PazciP1yV EtQtc qTUR sglC LVkwh8Lt BbOU UkuvgncEN ReKHr 2I6tlNHFo xKcUNj5F C3ADJHr 0lk6 1wiBYSVxc Wq0w knlH XgTDvf llQh 1rnN fVha AT2JX ZwRaW0 ke1z xazFqnH Wfrv9D 4ydnyKJ FLRW n5mZ p9WV g0hE6c2Ut VHOVh0D b96VY6kMy xCer eKtv fxOG 476PKb7mJ BdSM SFP4vO7 Cj0uecc jYUJ AwWmcL 9pwfQlgpB w5f2 CK67m +1 2 267.98 962.99 -1597.17 -240.79 283.80 970.37 -1596.12 -238.13 MWhTEn fDon 8Zle XNeO TDuAKf LaKD hH9XPnWF NJtnA gefM7T5oP 11AJ gwW9 WkQDx 73T8 yECA33Z D5JSlFJW zR5yu CrkL +1 1 438.38 68.77 -1679.03 -625.94 439.38 69.77 -1666.77 -624.94 l4Oo6YO HXw76SYk 1mCH 7r8YRMx V8r1Q0 x7Qy JC2H jHXDdrlG HKrt CYiU +1 2 1582.90 678.28 769.51 -80.41 1596.16 679.28 783.67 -72.62 CfN1gSe 4jXoRV1k DZL11v 4Oi8 Dyfe YYT5LKV yBbB3 8D7Tk9Z hbyD xSGGt0zvH BrZa ORQtHD LvyX6aFvY R3bg FbG6rmZ kQIu Akc8QoDMF +1 2 1456.79 -486.79 211.23 23.74 1458.82 -470.16 216.07 24.74 LdBk rQYP KEKKy69j CPfnuE 1Xvd 4SCafG JBCLMZX Ng5y2Mb a9lXER6 tMjq uWQ17v Yf2wlm oMUz7 IdW5 M8wt igMve7pK wxKO +1 1 672.74 -377.26 1278.78 -477.01 684.84 -353.95 1279.78 -471.40 rnfP 1Qk0NLblb 4MUt4Qq0 vORc7 iNN4S 3cL1 8f5j Lng9 comkHksxv qwMpcyAyD +1 1 -477.75 1080.70 289.96 -804.89 -476.75 1096.17 290.96 -785.85 oEdE61t2 lyV5 8Vkq 0lhQOwS SB4t w101 Xw1k TN3EniMb Hl2GxI xDIP +1 2 -892.87 351.54 232.15 -151.43 -891.87 352.54 233.15 -136.48 TdjQIzk mDWYu2yi C0iZouP 1lMi gNJQ pgGbgA Ifo1 09kpk X9OR8 VGNy1fo yH22Roh qxyZ VgJTDs ds5f R7mw 0Jeg APCPBQYM +1 3 2211.45 -431.20 -570.97 462.02 2221.56 -411.81 -561.64 477.56 KaHj 016cjM tIE93cOVP lyx0 cLZQ qLLM 0VEH iSKg PWq5 H6xv bxBRTs hZzmij6Sw p5sx I2n3 T2DmwN 8Ro0lP P2d89xEVk t6wy 4MPTpy14r Juyzu N92K qZQc UxxA Xx8X mzeKBrC QSGN5bnwT HeJf 6JWV w7MD Zefx YAeI 8YjUg nxLJU siUP ghDtrqrC zkJo APsP QnmBF T8If v8ltJr3 XK4H VM54 bBMm +1 1 -2285.72 -221.29 1210.57 -613.80 -2275.44 -211.76 1233.33 -589.10 B828 DxMu amYf aGPvmU Te43FFd JO8KiO5f wAzY 6TTw 41Xo 2TSu +1 3 651.29 1011.50 -468.37 -876.59 665.35 1021.59 -461.49 -875.59 ICtjucuoi E2mZpP 2SWIc F1UBFA2sL 7jMY wfE4 2gcq g6ulHWc55 hDYB3 76Wd hfxp 0kk6 f2mt Xplv h9qX mL1K OPl6 GiSa plFh8JoO DwTyXSJo DSGP 0Yfe1v3s ZTr6 dkyZU aPGxnaCl Ghbp a0Sp PTuae O9BI DhbV p3EMbD LsEb xGEVYbo RpkcAj mgWD 6doV6 FziTJMsyR z21t da7Rud I4adG 5gxn BmzEKc aaub +1 3 -158.08 -218.61 -219.11 806.96 -157.08 -214.70 -218.11 815.24 iLf4qPt RgUxWlwPM odJO DIoZ BHBHGU qDRQ nevmed qRx9g 6H35 D5nEC66Bq rfNkg jk0wwghg LKTb 7aCS xFvhUOtz8 kaRa REid1m M8FOqV7u g5IqN3 kjFh 4IJz gwja oOx1j1vye omcVwA iYAAfD9A L9pX 5INoQ0L qCFdD Tl3AAJU ePV4 uwWR TfPC Awj9 yXV0 dBTD SXPYCv nfUD ditkq NLdb Uwdu fg6NF5 7nUv KQthu7wA7 +1 1 -199.49 549.69 1488.29 1537.10 -197.55 550.69 1496.24 1538.10 tjnxChHMf Ns13B yieT xYjNz5jC kdYZZExYK gyZ7 LSDvFMfj 8Be4K7 H9nt3j QXcLxd +1 1 983.82 -329.28 1573.65 443.17 995.12 -328.28 1576.18 444.17 niwI5fbj 7obmH 3BYyXr vUYg5h8Dy c6FH uXfwk3cgT ak6C N1kc XWqm VUXz1G +1 3 -1259.52 92.82 -2781.45 1573.97 -1243.20 108.82 -2775.11 1582.37 hNuf lMKg 9Ugm w4OV EHsX s97lYNgRP CskujE Jb3N80iyr 16kX UVrb 4e9f pb5yDOu zkmF1N xeTX GuDC6 mRZO ji0FLvGb fbCsG EUIF BrPHxIf4e PjPtkNQc X8HQ eVdNWrtM0 Jnc0 Pfqy1B Zpfu Jm7Up N4cYp9 Pkm2UYXH i1gO tz9P sR7AG0tG9 47prAl0mW 9XLN XwL9 sRb2v9 iW3FP Qjeo0 91rl XTjP uyMXTjx8c 9l8vfgh Gpah +1 1 -344.81 261.78 861.79 39.26 -343.81 262.78 862.79 46.81 8T9l rbVM ty9O54sE8 zdRZ2 o8Fx7o9s AtI9Zq COZcBAj wO0q h5QnSssCO 139n +1 1 -319.36 -884.31 -480.66 -641.29 -303.78 -883.31 -475.46 -614.99 wLgL OUIa YfVq nfYW1DS LWFbvhH UaQewB3Dr acCI7s C7Cp fikEb mrlu +1 1 -190.36 847.59 12.11 646.88 -186.66 848.59 19.16 647.88 yhS0 FrTN 3sR5nFm I2PR CEMa pZXo C3NE3Lr 8WcH NoRZWAti Kkd60dQcF +1 2 -1149.92 1017.01 -588.19 -2559.20 -1148.13 1032.35 -577.51 -2558.20 47oi 5YgR 4bxb soyb F2X5TuDe 0LnKUqe LvcU Uvlc 5oBa0ol tSO8iI5j 97nw FCmuz t7UyAKEa KGnG gjG1 2l6f3cQuv M5SIz +1 2 1148.81 806.48 166.67 1679.94 1172.05 809.27 175.36 1680.94 ktxz XusCsbh 5ed8 uqfXXoxw 7bPI IzRC 0SLoIr kkl7 ljmebl tNO14U bO9M QiZRml6RM 3mS4 187oLUW bBER 8wDGO8hcf Hb0q +1 1 -241.86 644.71 -1413.29 1131.30 -219.46 645.71 -1394.55 1144.95 vhhNUg IdMwdFdCL WiENkaQu x3orhTks E2eM zSPRBPx 86do dsEr14SW vsWP xih1 +1 3 -603.81 1919.10 -508.35 -239.66 -600.83 1934.10 -496.43 -238.66 QIttQU4 eGDfpNS U7IB 2IwM N1O2RU xsMl 38jGSpkw CXij 4e2Lwy2 Vc4t KIf4sE Kp3g KOZI x8ju SmRORm 6OC9 QMJ7sOF2 43O6NNT 3iwK2 yfh9 zmHx1 hKsE mupvU aVFt 0Jdh8D VFnHYc Egxr 7fF6 nCdN2owwm 1KeE CLtPy aRdP GdRo IW6gk AAsnt rbYWNb 1a32 XjTh VVgJ GgqTigY4v N1oG6 qxa7YO nTFj7fP +1 1 -1326.43 -589.30 -368.89 1988.70 -1316.02 -582.01 -367.89 2006.80 vaL2M6w fkM4lN1MR ZRSm CZFB 51do 53y4gvJ iqGz 6h0oBZ y0GglWK bThI +1 1 -861.99 -613.87 -1987.70 387.32 -857.75 -591.23 -1965.03 399.08 mFYr nJOF MOwk 5ENf PY8V N4KZ xP0I b3GH dMVZS WDaB +2 0 -125.008522 4 -110.047707 5 -1416.287598 2 107.185577 7 -116.568115 9 0F7 10 4xC 16 f7g 19 O 20 hm 22 jgL 28 kX 31 IR 32 n7 35 o 36 OYd 46 D 49 ul 50 tU +1 2 -475.79 -99.81 549.91 161.73 -474.79 -98.81 565.27 166.66 HTlxm JAHEzK PV19MCC tmLpOrVB H97h PxHJEGD UATj IgJjkyozP eqGNL 3GT9l7 eAmlFNl mQ3K zxGUMYGAF WZN6WY814 hSnUeYK 7ped i8mD +1 2 141.15 2182.01 -170.23 -1176.15 159.40 2183.01 -169.23 -1164.71 cS6O tTBlMJmR 46Qb nC2V zOWQ 0a12Uz0 ym5X IK7J sNgC eunmtK2M9 7cjuG SZ9K Equ6T5OS Mypq VTJrXfRP4 kdn1nmp 2gFWax +1 3 459.19 -708.88 587.41 664.17 464.72 -691.06 588.41 665.17 d2MO2vp IVWNv 0Zq1 MNbNmNSf S6DlK zQ5HhX a71k I3QwX 9yA1 yvYe Azmq yOQHi8C dfGxdW63S oVum vDBjbAP 35Mkg YJ7Oi FNj7 GzlIlz SJwqRYSB 86gv FxMG HeNb iOAiQjQ63 aYTXLMbp 66CabmSJ QNJx vqIN TZ7l ihDjscF ARxf KDKpGuf E3UD wu6o hCjV oPFfY VoqgBxd JG0qy3PRW YQbEcmB ADxq qunPTvXHt wEzs PXPSqncp +1 1 -13.32 -139.62 -436.19 1063.46 -6.26 -133.98 -435.19 1064.46 8YUR 0qQ9ap itiX 7aJj yDdw vdReWqdcF cJsb 5EXs0 hksm bKas +1 2 -1054.59 708.39 1003.69 1056.25 -1049.94 712.39 1027.00 1057.25 R0ltTm QxNZ Emlf TbI7 3i43 zQdUxj Uv1Vky B4Uv6aqj BbAtC5m4t UxpP fc3KeJO HkTnG3 bMok 0mDY gGje ek7YSi ppEC +1 3 521.08 567.61 -395.56 -854.21 522.47 573.30 -394.45 -853.21 Rftf lokE H21YsA YB2e4lC VtEv62KE9 qsUJEIS DTOD jAHUUm mSv7 HGt2 f0tTFDn 505UTS3 DWyhc zFzIU epjEqVy 2usHVlOi WnOLNkf1J 1PBx IeuGLAZ a3CC8Ar17 csrb tKQqv RBLzu ean05k U1MEyA VBVi yghhQA2J8 RHbuq E7VQ VxEX5VIG3 w9Eg PC7M CmTFrmg GtRB zI6e1eI ECX3gy PYdPNzunp Sr7Q RiH7B0Yp2 DxIZaVoWG J5QeiVp syoL EsXz8hL60 +1 1 5.64 -415.30 -1579.46 709.58 12.52 -410.46 -1578.46 735.61 wlV6eQvbH wzUJ68L NdZ4 kL0Sd Tf81DL WUerMVmK Izem 5f2G yYoMRJ DZ3WDK +1 2 -872.59 -1199.81 -1228.90 1387.86 -868.50 -1198.81 -1227.90 1399.05 yN1ocOu Yjtn 2B3I YksG jTHigR pTz3XEol 0TPGm f1KQ rqIbaNP aIMjs qa6W WGERGB1 Y2I2 o1p8C0 lSGcOg1Qb XGstNgGs6 x4n2juAQ +1 3 882.50 116.64 -199.55 9.83 883.50 122.09 -189.19 19.71 0CZcNz BYOh YNeX ctE9 3iXx a0W4 K0ul PTor P38L twEDL aeyM GmiQ7MXQ nhSf 5OTrIGOeu JOb0T m0sx hxsExH G3Tzf Pszz 3o77G tGhN 6ZVT4kx4 O53G0 2r2I KoAR pO95 AxXmHNql xFR3 L4cxfuGUQ 2rGu 7Mx1IuU WZ45 yBmLg7g 5RUd iYxpAp 5RrlM8Whp 37eIKwlC ZLC4 CPMEPlOT jSJT127K ZARswH K2sa A0FD0M8 +1 3 -1571.17 285.70 -1685.52 -2190.39 -1570.17 327.12 -1682.89 -2189.39 hWS9euUAB bfLMFy mCC9 FfgY bHP6 NmKAN3 GXonCR9 WqEP GDU4 Hjsg r05w RXSq x1x02 xGwz M8cX cNNw JJXv mlq7 q184 oM9Q zwFF4 X1bNM6 JGyCz6 RBwDRfSWI K5kY R51P NsbbT3 BN451KcQ WwIP 6BTa xW44C4DDC A7mc QuaH4q cGWh vJvz9k7l 4d10 cz9KkvTyZ zKFs 8lO1 zL4GE2T IP01MEM xCY2HYn8B MSfpKx05 +1 1 -671.72 -576.26 1290.35 -734.71 -670.72 -562.46 1301.15 -716.34 aVFCmaTm PEm2 qMBJq0 76ie7f f93s1 mdId n6as5bE qpD9uk rpnz OKf4 +1 3 1583.18 -178.76 -2028.04 -1250.65 1584.66 -177.76 -2027.04 -1249.65 n6Jp3ng93 0IOxw YgDeG0 1vh6 MfkGZV62 19Cuex bjWA Mwt7 NrJr XUbH QiyNfzDZ VNfd htdfDksJp MfbT m74cpcsdq sIcV LXrn ghQD3ry xlu7RFmp gKgDzRO wmPSwra Y8zyTBvA zWQg ZTOe 29XA aqr0 wigS kNDU77 Nk0yk4qJ AKev wLgO YEZC wZ4wZb NFP2lvO5 7hMM UJiH7 s3R9 yIjHoSB rYzo 3FPL AIL8 Gxd2 5vcEroqwy +1 1 503.90 735.22 791.09 -376.98 504.90 737.41 792.09 -367.44 qiEkCAH93 FPPE HNBpB5em kd3US KWhW tqwbEXvH okauYxtdq WV2n NtAYfXmN celuLwrF +1 2 1035.80 920.13 -1066.71 -206.78 1068.32 924.23 -1062.31 -199.02 XKC5 ifdK 2Fei zsgu sllv vpnv 5C7M 4LpGLtcVW L5DR7gzw TCK1s6A 33Npr m2Rqsv yA71 0Er0n Uktm 6ZrG 0RqNx +1 2 -509.54 393.73 -781.43 874.05 -487.15 398.38 -780.43 878.37 AawZ LyP2M h3FV MJkMcLoHf I3bE F11JfUZ9 7z1xDSR BP6dI y49w 1s0L MSc7R5 PsmZ4 nx3A rtm7AUhZ 1OqufZCQ4 vfAQZD 5QoZS +1 3 23.76 -88.21 665.89 672.95 24.76 -87.21 677.18 687.19 ayLHu8rOW 6ZLXcN6p TVRjqkc Dc9l qXxhKP0 aizc 6Ggu u9eO leXR pSKP XZfB GsqRoiPlA 2aT1VY AQNk ZkMlZ BkBFZ Of7o 4rDKxo xgBB skPg 1FuA U26Ah qEr1 NdFsraTV JXfj MF5nl9 BSqJADv1T Wjia 6VFl sviVvue8u oUtJNx CkGp cCpZ1M ZFL3yvk L8po jQ8p0vjv3 ToLxyoX XVih tZkJ L8kUOsnA sAItXfxA N9pA0cd uNeh +1 3 -1937.92 1009.70 1451.12 -1034.47 -1936.92 1010.70 1452.12 -1033.47 i0v8 FWHz IP7AYO ygeU9gsnx T7PG3mr9 RpJ9N nXmlIqZ0 6WoO dHAw 8b9Gu0l D6dDmciO 2SK5 XSVL vm1R iKts I5pOA g4ziqdhYl 02KyIe k0TQ wYSD kKxl EjlF 7PU0v ggctWBPZp 57c1 REdHNyXw lcd0u 1JpH YXpV9N vH7fD tdjfXSD ik0OCB2pb KNyk v1I0 e0rx gX0M jWDBK ieRe ZE1MXi QWV0 8SfkC oUKfqgcbr pK9q1oCE +1 3 -513.66 -905.05 198.49 281.22 -509.92 -894.07 199.49 292.24 IBnc QzcptRPXx AS9M loCe0 rxeMA 9IXi9uB 7qE6Mib aiwg bHO6 3tjK 3NCq JCrI nlPns shCso18 UpI2 Qach bTZB rMGi JCMf8cPjk jaqT 23Qn eNPW07 ZPlH blzmqM UQR9k hvc4U LFXII xSmpc tphSuxapR SHiR trVH90o23 oTn4 38ipXs6CK 1w2Whl xwfCiUZ4q qd9jbo GrCHjSkE 1AS3 fo8b 1j6x pN5r 9Y05 XiHGk +1 3 849.63 687.75 1105.60 416.76 856.44 688.75 1106.60 417.76 mrvi dHnV FDSy zrBCLr2w LW3p 789ER4 ijuD PnSn 2of2 UxR62zr gboE v5r5zWaf 5665 WaJMhK mpG5 5luF LaH9K prcB LlES BCr3iPG TlIb cmVo FwlY 4wQe xXzubf5 Sxy3lWh j5UE NuFiNRY cJnY p4gIve0 HpVBlpkEE ApooST zoh4GF0 ywzy ZVHN uNM8 cECf Kldg B8i9YuHf zD81swH HpMjsAm Lk63 2kFy +1 3 1073.39 1083.81 -1230.83 -2882.10 1074.39 1099.71 -1220.89 -2881.10 zueh wEqZ Ydc1PYs qtyAzXr MbSf fujx 1tUsF REGN 5vnX CyzIey BB185V gtHn JrMA FnwF Ak3HD 9TRDxPDU VSCl IyKV oN3RHoyY 3Gs3 lAWJXRd jiWAiuCbF oaJAfI 41L8VGMWE 3haBbiIyP n1Ddubb1 cunMT OKYQyAJ 1YUk sbT7 PSEcB pbuu N3SL hmEm xH1L k5enj OSEh FNlO 0aOSRbcAx bVzosY6g 0pOld6S DVnUV2dtC PF5lXZde +1 3 -871.51 1422.03 271.40 230.44 -860.68 1423.03 272.40 253.33 OswG CmbY tAbS cs4v zppH 69LRQyFv4 D9Qq4T9Vl YpHz nmxm CMJZ RzwmLbij YM5ndkb duLaj5c1 nohi haNI8HV euAL 8qd7 LGCow OKVCe Rsvs 5kipA wsrG MIOJxY HA9Y BC3U wJIS 54DT k5cX d3gMXe K8be9CPd Vl0a 2tdk ZURN dBkV wBvV0ty rGZQ QJZvYyH 3bw1 agga5A6 jVqI Yhe3vNDSn 7TMK SmaI +1 3 1500.29 -486.73 -539.83 564.14 1501.29 -485.73 -531.48 565.14 cW4FO Zy1b x7ZO rGBvqwwB M1P2 kn52 6mjiay bF14 bBGCK sLnO CUp5 EfgV zITqz5Ur 7cToB1bK 4eag at1Q6jTL nXVKBSBYo O73r uvl5 sUTs 9SZS r9bt nbbu n5WP tCgU 2y5Ge SIAG0PO6 Ps6JAbuvr xHuczdMn 7lVGZg 6Qooza I32V ESW6aG NuxTVYSKi Sv0RZX pYTiT9 5q7LW Kls9Q X2HY WLoQ VGfr 7cN2TY INhY +1 2 -199.21 -267.51 597.67 864.67 -187.26 -266.51 621.43 865.67 ajfR7 GsHJ 7p39vSx EHKS Ke8Rnvt EeVt gfiB JCkY VWdY vBrf ok0uhqFCp TIZx MxwD8T3 5tgIfnF ZcCSY cAl4 thOp +1 3 -504.25 786.88 -417.70 -473.16 -499.93 794.76 -416.70 -472.16 AarTe UBpBgXn3 qZ0B WkgAXk14 YMKh YVJY j4uX yfAH gU9h DsFv I6YdIxwZ sDc25lWS n3Tp 9blbIF7 znSY aroX T87K OyaeZ z1uRC6g cXDnDAoE kixcVlN LJEx 9L2gL07N UDAuC y8DD0c0 XiZcVC z6rY330ms sohVD8 wBhH0P RdY7 AluT6a1nu 4Tuc Jm7i V3CM ImQt gFuu fRZ0c pRao l1Nqh A79flF KKzg znG5 cix1d +1 2 387.97 467.58 1822.85 2178.25 388.97 477.47 1837.21 2179.25 T5sRDwXw 09Tj pyKX HGrDMn Q7gp x50z z5kN wgam iQY8 jo5brZtsE knrZ cpiaC2 By5t wv7I K0RmuFwf ogCE 687ZsSxMT +1 2 1088.85 1283.70 -278.32 -442.54 1094.54 1284.70 -256.96 -439.77 kkDP7I Vdu5 0cvG q06cj tKbaupGyL wJNC 67oLtB NOpqSYHy kRzx PaMd NWgw 3rCty79Q DtdJmi3tF 8vHf4vbBP 87C9mJpu e4PGM E37rzDAn +1 1 1686.59 233.00 1409.65 -1247.64 1691.01 243.99 1417.09 -1246.64 7n9i BNzE RYlW 7hXXT22q RRrDE B8YKRc LJLI SP8kho iyPCxl Jryb8xnG +1 1 971.45 899.92 -881.10 254.17 976.83 906.86 -865.64 255.17 kRYaW uS3HIg KbY8St QGlUxa TrPG FPweGa2t gSQB9cEsX YwwmUF CwIa37 bjfJ9KaZD +1 1 489.22 -47.13 283.15 -1828.95 497.21 -36.90 296.43 -1799.30 LJJC DGs7 3ofy uNAf 6g511F bot3 beuG DvbyU C8W5evA1 96Q0DR +1 2 -1458.42 534.57 -1058.02 -1176.69 -1456.94 535.57 -1040.75 -1169.28 7irEPBSbw yIrW JadM K2U9PJPVz SbImLNhE 7A7ATZ 4xJT eeRUlF UBJG x1BR XF4U azcb WI9XLFu AByv LvX4 YKJ4 rzxq +1 2 -53.35 88.69 103.90 703.94 -46.85 92.21 105.71 707.14 r5Zm i9TK RuMJS PMjW jVwynpS qgsFVlj c1ID 2Etl hsYW8rWdU 5nN5 QiBR8thhc xLPI 70te 0Fcgyt gFVpfE9 HCEc sFZx6S +1 2 1155.70 -481.19 1076.35 1040.00 1162.21 -474.90 1087.25 1041.00 TZxwBApX 0BqK yD6G4m vvMT brzdifFB SPdU qoAMuS 16LCIacd ygvCKN dsGd NogUuU1z 2RH6Bz kwOPshU YOBThjM4Q NnCj UBg3 Djn4Z +1 3 -1284.15 -132.63 -1307.99 -1131.11 -1283.15 -131.63 -1305.99 -1130.11 0bk4 pvPl 2j4hEo 4QNa uLdPLIr 9o64zKY 41Vom 6qRRWgk 3X8Z NWCIbqn n48B 29oM 9iiw L2cpyv k6JyPS SuU5 HcCR3AeHd P1mq fYt8 KNUfL stDT vSTc lMNI kMnw NSqy tsph NDGMr0vqc ElkRUqYx UCu0PJ YshZ Z7X0 kiQA 5gM4 U7bL Us1H aHt1 31m4 UemXbnW r72mLUjA mn61bvdr 1iT0 1MJPBUE CrOqgzaXY +1 3 451.87 -1168.14 -98.27 -1556.09 452.87 -1167.14 -94.44 -1543.58 fRZr sv1f JpVrifhQI h2vw 2hfY H2lf 6LTX 6gTBmagU3 eYNR htAbn2 Ya0W wjQEOW inuVsna D6Ga SYEfg 4WNI llmi1n mscbBGad mTvpPrp biEa NFef a1E8 jl2Ib VsK3Va xoEW Ik9b8H3 fRWk lNXw gtmX 13yV zHTT ZWErP5R gkN0 QEiIdVGB y5ZjhC3k tBMY R4SA 6x4K0M I2eP lkoF NKcT 53Zo bHmf7 +1 1 642.53 -84.92 3114.38 1842.19 657.14 -83.92 3119.85 1857.51 22Fu8 ZShn YK5MLe uFbt1V OkPr qeuc esnx2 X92YdZEFG hs9Ap 0VqF +1 2 2784.39 630.54 435.17 1110.03 2785.39 631.54 444.28 1124.83 yeIZ dMfoylcC tpjRQ3A J8j8 YAY8iH9 BD6P5d3 Td6dO OR1rIl UQ7uz Z8QR YD0bv9y AdHc50JE8 Lf99 TMlI YTqd2WZo3 boT52X5n YBPi5 +1 1 795.18 1317.47 -170.23 -949.10 796.18 1318.47 -169.23 -948.10 eGJAjpf 7B44QTV I8oI OiRe3 HdcbCzG 4z5VLoTH hqPAVS sz7I wHtNpIqSA 01nhDm +2 0 1754.941162 1 -15.859695 5 321.285339 6 -178.336670 11 IMn 14 N 15 k1 17 Wd 23 H 24 kRG 28 hS1 30 8s 31 OF 35 f9 36 0Cc 37 nY 38 9q 39 h 44 Zq 48 q8 +1 1 -505.40 -193.70 535.67 2673.25 -502.61 -191.48 550.80 2678.92 Jgyf vPVLDx 2WxR O3fs8f dIm0tKO FigcUCoK f8yb rJJN3iRu 0n3q3 03jTaM6 +1 2 286.96 30.97 435.94 759.88 287.96 44.52 441.08 777.49 oI5vWTw0w 6gFI z9FEwov GO9U hC9Q ld5oR YQYrV84v 41oUOMh 1VQtpj44g mD17q g9yz fmJuEEpvC H5ZhXaY v1wy737 J26tM kWwTjwD9y NDJCLfrl +1 1 827.50 340.48 -321.06 875.00 828.50 341.48 -317.72 881.74 1o0b yTlvcl Xc79xAdn4 CASr H0fsFI RW8j Y5hi 2PLs K7Uxce9 8N8Dbepf +1 2 670.73 -2377.26 278.90 -698.66 674.84 -2374.51 289.33 -677.29 wAvCaufX hEL6 7n4nIv 1CpgrgHqI uSwserNG tWjVlHk QwdUNsN EOl52l Tg9E Ut8pCRX qRfm6oU ZcBp 9VWnKZM 3NOK fI3oCwfP RpGj 0kpcK +1 2 -392.58 2177.12 676.58 -440.54 -391.58 2178.23 685.82 -439.54 N5WR AFBJ 2FSkSlSQ 4WjC 6SRFTW VOtG LtBz aY4g B0M3 qfO2 V7XQ tOD3jhbXq b5fkv9E jdbH tCKz S1Bg DOfe +1 3 1427.55 2080.08 704.91 568.82 1434.89 2098.15 714.78 570.19 qvf1 lxHwR vD5T D1IF6pMV MInIo VSleX z0iCuDG yamF YGPC JhXpNA8d OIxIUfIkO cnLPkzK gZt1 roIbe iTmG rPDAo9iD 9etR siVR uYFh J9U8NcY0 aIN5SmT XZ8B RCauZGO3T qlzL m4W8Us1 Ee3crj EppZH h1fEY88v Lksy6l4 FQvL 1LRe 7aqjTo RyC7 SSpEcnMx l0lt kLJz ABQb AdHHkvLcd TALB s8XL bNQJ5SH 7RuEJ Hv8F2HNq +1 1 788.71 -390.15 -318.51 1720.72 789.71 -389.15 -289.72 1721.72 f82E Ukgv Y1nfI QQzDCB hf6axeq AflIEASW Sjfo lciq aeMA JvBzs +1 3 129.45 223.18 66.16 1643.44 155.10 236.04 67.16 1644.44 9phv gyu0 CCpuKP U3eYKS ETT4J 2G0v60d3 U2nYKtl4 xMpM StyOj62I HOgx 4T1qYITWX 5aSM 6bjQywj2k aaTHQ1 DTPn TqMF xW3V5 55Cq knHt fa85 5kuvKGLk atre CvLx H0b7i cuNIa Nqr0 R8mY5FSH6 0iztl wj9K lj3v qGwJxzT2h Mcxe28m Ptty EpnQaQ jwoAruAr sPkp U6Uh87J wn9L yVN0ZxoiY 83Stvnq3W 1mOq EF98 CFIO +1 3 -511.09 990.90 -1380.44 171.33 -497.71 991.90 -1376.32 172.33 GX2L YqR8L9x myF0 Ycta6ABK pAaO 7vqo 5BRDCGvW JMKBhHp2T olsq udrDC0 NSM1 Q8n8 Tgjkz4nv1 6GDD 8uvi eXnr sMT6 dxxH tEJp uhFWL 2jRE yFiO29K roFt 73wJ3FM8s eiFT f16IvNcUP gu5VCOL mvDm znz5s1cR wGRLJ4U Y0pwQSXV LIke7kw 8zjrM6 16jF 9VK6 B8Sa 0Yhn uuNeKNhGo UtGQM6zfy 3ZKv Xah4 Z89STE4W qttVCQS +1 3 -191.39 895.04 763.38 1315.30 -189.14 917.09 766.99 1316.30 TXrmTeX VsH3x H9lC Jrpb7ds2Q V3TF q1gYU r5cX7 JVTrI B6kG naHN yCEF RrpG Jwgn uN0x 7L82 9quY fASoM MNlk 2bqc2vd8B yTtOU eOsWA8i TlH2 LlHL XFjkGE9Q F0pcj7pS zWdiw41 I1Dr UA97d xDtY J6H55uvM OnoC fm4Q W3ci XbIQ 4OaoIay7 9l6x Fuxd VqwqXC QJK0 LQs2 YZW9 TOtINMU YYHE6 +1 1 788.98 -556.89 310.34 -293.49 795.65 -545.90 317.40 -278.10 Dez5 xESj8U d0B16 C4351bV OTC6 9l9p O7pj IIf4 5FQA3qvsj mWNayme8 +1 1 -297.93 942.22 1012.44 872.83 -296.93 949.30 1023.99 889.12 1jOC Uopb mr7Em EwA6DHRhF T8xNx9t Vswo 5KRJz umMo 9xh7dxWJ rvdbUt +1 2 96.89 502.67 83.32 -2317.26 97.89 515.43 88.36 -2314.11 itzuH3dr OYmvB VehLb Pcr8 ftmg ySBnWh vJOn 9xhbOCLQ TCHQ qxXth TGuM RnMoMF I0j70TedV 2ICrl98 vTuuC kW44El El0rJ +1 3 -1508.56 1579.05 -7.13 -828.43 -1500.75 1580.05 -1.74 -827.43 rWOO eDbiIA Uu7WDZ EkYj cLNl VHmU6Vw 3cjAt emgi m8s9 8mhn4Y nTHHC kdEC EMjpvv JAnNx6m q5KC Ef0gY47HX nHvJvQ HJ4I W98OUJ TMGEYs7Yl xyFrQn KOJQ VKBqM5y hDKn MSwi0p j9Fv 1iig srmI i7M2 vW22P8jiU 8xVE NEaU zxcQ 9LOT QRx7WQ 3sgLa1Hod xa7Fx vLPT w7mjJFMNs 9LehINv UECrfa3 YeZw kwOg41i +1 2 -1715.50 -101.68 -429.34 -43.70 -1714.50 -84.80 -428.34 -17.34 LLug AS0LPyaqB QQFA UIef gMkj u2yyMjWP gmrq silE Vx9B Ia8B tKwU 76fb e8XeR6Oh1 mE5v Gx98 NCXI 1Wou +1 3 427.54 -1254.02 277.78 1564.17 435.84 -1253.02 278.78 1565.17 eTxx4EI Klhk AVrf59nF 9kb1 W6IF 8iQFhc uJ2Q6x 1lamjYEO Il6j y2qg HBnUSAEoI lEln yTARV sdIBFK yJNyNTV dXh22GPf 2yUx xVhm PNKad0H x815q66I lVzY 2bVz BuIkVkX vkow2ANU bKAN b85h8pO Z4PGyTujC LfSwm7 D0QG m15mDND g6OB6y BKZdhAu 8156 hKCQLY 1x6u AGAuC J66Nw O3CgsNT4 o2DYcD Bq2P 1Om5W UG7x pLuF +1 2 1824.37 -300.93 214.95 -1174.06 1829.48 -299.93 215.95 -1173.06 6bYb M4fm bbNcylxqh U4ww 8bnD WNzn riTtci jlft 1bzVWV FrwFKgPq djrvYmcbR Ei16 ip0O JPpY Rc9G fZCw MS5ixCcFj +1 1 300.92 -1376.21 -326.49 -132.28 308.22 -1375.21 -310.30 -131.28 ZEcz g5a5 0eryqz 3bQg BjEFImQjC jplr 9phh bmIE nPs5SBmii P5wCL +1 1 -821.92 -636.51 -164.75 817.05 -820.92 -633.27 -147.68 829.54 bNob Gakz kg5B Fsea hzoOQV EnFofDB Z1Cdntwfw bJx9j 7lbb RqhaYu +1 1 -899.26 -20.05 -542.61 1618.47 -875.39 -7.39 -536.06 1627.44 GrxBo pby0 c50N pRmB aMH1rcN 7TQB hv83 9BKQOs6AN OGVn VlgglUz8Y +1 1 528.37 -475.25 1199.26 -1293.71 529.37 -460.31 1205.24 -1281.13 qjJm ixBG qTau SGbM jVgtl XYkx fRQp xNVL uZ9wM9f ppVa +1 1 -1773.06 1624.84 988.12 -44.53 -1772.06 1630.93 990.84 -33.47 Y1YV2ot snYV owEv T6Z9 wxDt 6q8E qYrWab iDGE iRvjc 6IBDEX +1 1 -324.92 -1140.93 -1762.51 -124.21 -323.92 -1126.24 -1752.84 -113.86 lhdu7M5 0uygF uAyHOM nK1y LLKtKEbc LrpQ u9dR xja0wRyK h2Ov fDJP +1 1 338.16 1149.50 543.91 43.39 363.82 1150.50 559.78 46.76 izjP 7okb Z0tkwZ LSUq 03kAs aEbG j298 5TSJ RGuL BP9dt0hhg +1 3 1360.51 -1080.18 -821.91 282.44 1361.51 -1079.18 -820.91 292.90 Z1fB yPs2uTVub 2yBybv ybQcKBY nueq lPTq GCIM SZSq2 rq5IJC82 J1Yyqwgyb KvrIY jdpg CXCtn XtZ9bbnFU Bve4Jv z9RklUQl SuKbsPdZ MuBacGrq7 YBgg TK8I zyaHHUHpw gxAu S0Bo7e4 RXimdoq H1GXvj a8D4 y3gT mxeotm TatB KBWq vAtg 1vrIiqRz se6Q DZxj F9QOoRt TmAU qxGeWiV UdSB 9SI6G1f8s 2k9Sif 3q1a ySS6 Jubf +1 3 561.16 -317.39 1941.74 55.09 562.16 -311.33 1942.74 71.90 Te52 GqDGQo EFhD ExlL rQ42eYyh pqqg VHMrgKS 7uB7 Br9o Svze SLlv rb6fjB7UD YSov7 YvdMus1 j9K8JnDK 7uoUGlvZx hjZTJfs NcLNe5 OIQZt7Dj VjGJa4 FPB4 ci1S yrM8 00yGfd LoFK obGLPVC E6jg Hxwl 4Nqr xSd5 m21D0iVz GwnC jQfO LIKK qqah 7P08Agta8 mT7sVWoJ2 g5j8vI vsv7B 8I92 JFRRn FOQxvq7U8 1L2pA +1 2 -183.82 -148.32 -292.82 -1268.73 -182.82 -139.70 -283.63 -1255.14 4ZEc HnP2 65ZD NHQkr3tFF Oy9aOcoH 8BSz 1T3A qeJ7 7uGu lBQG sLumWCjIq NmoF 16A3 3T5B UajxlMdWE AS2d qAqU +1 1 695.46 -343.70 942.05 1108.34 704.73 -338.48 943.23 1115.39 TLNADGzrN X9p6BPf j2Py3q 5ZLA VjlZYfNQ2 wDcf ekFrKi aU4UrJey v3im qdia +1 2 688.52 -1134.44 169.39 1230.34 689.52 -1133.44 170.39 1231.44 cqS21c qX4u zlcb xt6E xWti Umqf9F rx9kc6h Xua4 H2vvvG FNqv tQZqb gcdP yrMo 6NhQ JSZgLT7K5 573S 9DD9 +1 2 -1548.74 -1552.17 -125.72 -25.81 -1541.59 -1545.88 -102.08 -14.48 qbNT IfpLzT 058V vI0kyPz M0wv HgLv WrUJp HFcz QNyL YbCUowNn 5dvN fGtIrYr mfGh aVaq DklM rQi5 wpCgxt +1 2 -137.21 -201.20 612.03 1522.27 -122.90 -193.73 619.08 1523.27 2E2xVF55 tVWH rdTz CGvxGdu zMzq YdoyyP gSUH3 MTLG AEwd RsDV MoPw YpQXlmY IYHJfNrL9 2bqhKYG2 OnL6H6bn x2lb yeaK +1 2 2638.13 1506.64 -840.24 -366.44 2640.33 1507.64 -831.27 -365.44 4KBY JDOA7yRD 0XL3 sTZzYS 6FgM cl7BVoa ndXYVZzRT udGAxP L5HK 5mFn XJPtvVALL 50A2xEkt 3Reb AY1MG0p9o 7iCb0oqh ERVd syi40MPj +1 1 1950.64 -2.76 400.44 -1073.25 1963.30 11.47 424.62 -1072.25 vkoe8 AkMvA2V hkca jtvDvyrS 0KmefDKJi QH2i 96ssEH v35tw BzdymliwV gmljAWd +2 0 527.198303 1 -119.326073 5 -109.326073 3 249.440369 8 hs 9 5 12 vaH 15 Z 16 b2 20 Zun 21 SP 25 H13 29 yBY 38 i0f 44 XM 46 r 48 9 49 l +1 2 -223.50 555.67 -1231.70 320.44 -196.72 571.39 -1219.78 321.44 J0hnbZXl1 Idwx yRFZ YGHZt I1A3Rw7H UJEccS GNlnt v1IVJvoru KAaU 1gaZ Gj4htYgv 0nmO qKWZpaPYr sEQt rQwP2EB9T dBxuldxU qnhl +1 3 95.86 1227.24 1694.67 -157.86 122.38 1237.07 1705.03 -154.07 DHydw xedocnM NMMs96r jPbQ l6wnj rNxO 8POD7v JtQu DSzX bZicjUWQ AlbM3JYpO eUlGyex suyZ dJ8j totE dhRA jCaSlLh wYyx 5c4SzBokw jmIkvtIR bKjsB jzk2OAtF 0G4dp P8yU uXc0N x7Ls9aCd SGwaYbIXM 0YYpQZutf eTjl g7KA Zjae 7MsqZf5Po y6SdnH4 Z47E RDMCI2DKR 6CrA5 hFwgxBf PfOES SwR40uY7 EZbP 2osPs kdc6 VbvB +1 3 -982.21 -1205.89 87.90 703.74 -981.21 -1174.08 88.90 714.45 BWaa 0Vs0GMrcS sHLYxhSe qAqs 1zBkJiK5P LGES9J jMikBQp jt1b bMah QSSK BSpR gWjY jK8LCpHG YHVbl2K u4guJkFN y5g4TEf OmIYZ orBC JqlWqA Ffug IWKc rvtEd MdEC pVmH st3ir2wur kQoP nbMAnrJb MKp74VF0k j7gh wnFW 4bSa J20z XfjN eD226SNm 8HugqaO h6RksDOUL EMTsQ0 rGpK 9ugm ygbT bNIkvRq kzfo 90aH +1 3 -678.53 705.72 -150.72 -68.22 -674.66 709.81 -149.72 -49.97 Etyb ANOU25 FFBo U2w8 IGvbp9 R5xV JIGUV6lki bT5VOW42 CEYYd84a QOhc JFgb kpiU LAWan1 p4hkdZO qAhj fbLtuaIS3 FJFv 1yuK D89i Z2DwHxg 8edx BSxo0lM Jb3z DzeH GyCgUd hYNR WOmB Cxdj qm2k 3xx1dnw e1iG M8Js Ncj2 172A S2Ql AopE ruaz V0ty A5OajxM1O 5ldlHTuE YpeT3WGj A2EJ rzZf +1 2 -1614.90 -123.73 -213.25 -21.25 -1613.90 -120.40 -193.92 -14.61 SgCxQaL 6YyokqG pMk5 oTjH Ce2u T3OL gUGw rzeD jVfTR9DK Hiyot2W 2v6soB2vs 4VJD W7ThUJEUk optq9e qisj QzoNX8w l3q4Ou7 +1 1 -1015.56 -822.38 452.26 -324.42 -996.19 -821.38 458.19 -318.45 1KFyFzMpB yoawO 9TNurl YatdaBGur 6IrXnPsd WieS Zsl9JjQv0 EKjSs CEkL sKPD +1 3 1065.97 -110.73 -129.34 759.92 1082.61 -109.73 -128.34 760.92 wY69p 2xb81xW9m 1E3z XE2N xPWs PaFM Xake al39V3 K7VF OvHm yrYh fEaj27Wbc 6H98 08bo k2D2 sEjuzK H0q4WvXfA x8vN s5VE HFBF2U zX4h vTZw k4kA LMOo oV41LE7t Xu8P Mnvs9U TjS8 fwpo kASTe Z03L5AoDh 28I7 TPur 1Jr51Oy 3QvyMUVKT Hch9pr0 xS4O 2pVKmRP Xm4k hFVeS bLZr uNvQ BStD +1 2 -127.77 1725.78 915.80 -950.79 -126.77 1727.57 916.80 -949.79 ZhYz fzIWQJ7F NGNK ZtUS hBH7R mpORxe4RK XHSJ uUX0Plj OutK sr8rHyP yZjI BWZmPc6s b0ci Gh0oSnSM 2WZYLs7B Wh4W7n Kyh4UwM +1 3 1.48 -1117.12 117.05 -1825.52 11.71 -1102.77 124.87 -1824.52 IEJCIJ1d L2Oqtuxj 3Jk3 nA1K9v kMOC AsHL Q9btWSW wwUx 2fzW N4rGXq YSBo ySKq8 lBmZKXFU LZbk XqfL GsMSLYr BA4pJyW ngdz L39Y oVLK ivc6 YPrs wGjO gqbh IEEz IY9s A1YgHDm1q ERsj FBsw XHGE 63R5O9Gy AfDV 6obo bDfsUDO 5UjB 1W2D H81zwXk2 4wc4 TsId 7C9Z HHk6 BMuFWi tMMtdpZw +1 2 -108.16 326.87 598.37 1957.38 -107.16 340.75 602.86 1959.04 HbBtG Il4t21 jB1mAA6 ss5dQuCB Caot agSzVcT q8nwEUf Io0r 2d4w 2I44 QyZM7 7TSU4jW47 NJiP a0Wkm FMij SoeaSqZ 2HS8 +1 2 -898.39 542.44 2114.26 770.99 -897.39 543.44 2115.26 780.93 SDr1 qK1X 1EuIWz381 wnMc XvGW mEEg WovK ZpK4 M9VwLihFr smR1s mdZX SPjKPGDrx KCPG UZvh q3Bc rKIq E0Dc6JGX +1 3 -761.07 -57.09 1230.92 355.81 -757.97 -41.34 1231.92 365.94 aL1N 9khPJvB kQGF idVeD wxu8 vk8Y Kpsh TY7LQbhrF pxa5 Myr8 GdlS jgV7s xAUx4aY TDjz5s 2z0J pVfy OiKRyViRQ 1TyH njIh8Nw eqEF2MRgt txqHTBj Nijh E1Z9Sx 1WjI eCCC 62vXTp B9X9 mGGe ehVHZ IQ8F JIOo YjuX RfMu xMIl RlLiO3X Vcfk O8vRzK6bn 2AMafgh MxWL NH57Ay AmEcnM8H UcPo 0cb8 +1 3 -609.97 681.93 -1408.18 1176.13 -608.97 683.25 -1382.50 1194.31 XTsKxt BvcN6IC l14ioh 5jxp kdaX 7E2s zrZ9mN mJCHDvdnV lATX LpdL Degj ph08 WAal rZPe Yifn vCPF nd58 Xo8KAoJ2 9LSlnzB Vs10 Hz2O 6fEw ffMWjXs3 nd8G7dX Ak73 I8DRTImm bHKvC9z ltEr6 4dHz36e shQZ5bQ QFTg O072kV7 h64M Ozxx CmIXKby 2lXa YnqWe6LtY eGCJEe zrgeydpj DKDZeeyC 6ztk 1Ydd KXfk +1 1 1274.19 526.94 1760.10 -1170.76 1275.64 527.94 1766.90 -1153.42 Tudl2HCx6 Ocu6 meAk UqR8b Ja1C yOrdArirN fa0Im9lF bGzT Wuu9lTuF JgWm +1 2 885.75 1599.52 276.06 102.86 889.00 1617.10 287.79 112.98 H3QZe yJC4X 8KXCD98sn bjMt wPJis WDZG Vhuc NmR2W 3gaXg20DZ qrwBl kOLluy 8eBdsA93 Ivla gx5pRpA q8KNN nS0dIYhOf dFvn +1 3 36.74 293.93 548.25 -1556.56 39.73 302.78 552.85 -1549.58 1Kl2XRQnw m0MH n7wcXNDhR 0buniENz M6VV MDTJ 72ito YndBMA pXuV J52SlVzVv q6zR YXm3 p9IIo vqjjEgRM sx38 eKcG WA9NZB4 LhpAOoM 36vUie1 G9oNPwF MVx6 TOpbIxs dCrxiR AXZI6 pLBN024wL Le6r jxis a07l2 FZWMcVBNl KH7z rLmLMgerz iWcb RWTMY8e n3Ih IyuW uMP6 BgPZ Rbm3 VAI8 bdWu nm3R MiDUz Ca7B +1 1 925.86 724.68 821.20 686.29 940.75 736.68 828.99 704.50 6HO5 5aEKPs0 Sthrz TKpXzA CLZ8RUhm whny7f9R n8DM 1io8LY LpiU8eQ tUll +1 2 2017.68 50.66 782.68 231.03 2027.71 75.39 787.06 232.03 siG7 jWuk pmbeTQ WpPvlN xOtV QKwXRA2 KZmF 3VPUqfFn ukqCXi7s cX7l6 4uJQ O0dHo8f iLoX RPVU0O pSvTOPgq pcTr Qh1MJtd3l +1 1 1075.53 -2656.81 -1046.36 418.16 1083.42 -2655.81 -1045.36 430.19 kEXG fQ1g 3vJtSIAmw ujL0 frqv kZoH2iQ nkMq5fNd nPlHT5OD khwd vtGQ71 +1 2 -1057.96 662.79 176.83 769.00 -1054.08 663.79 177.83 780.46 1IW7SSV P1DW RC5QIDqZm iwkHG9V7 OEnP hp1n qIyY 4rss FwNx i4g8 pMtUi rzSA KNHEvr Dq5ZE lAv5bldh wDCh NT2G +1 1 -1730.21 2.87 -1096.18 -1222.63 -1729.21 3.87 -1087.18 -1221.63 MV11 cgxg dqWno5D JqOX RJlRWSR hu40TLIGz xo9Fi tpVMqMHr 0EsY 5nc0zi +1 2 -1902.91 491.75 -938.61 610.00 -1898.66 506.69 -935.85 626.92 7r6PcasWb r1uUXI 1qNdGAI WacC TZuRo WvvWz MdbM bOXs VlPo oszJ jA9Zc QFryPiVnM jADc 8SfV 7cp24 l1g4aFYBo S0k9 +1 3 -1740.85 643.29 1870.57 -1112.30 -1721.39 644.29 1871.57 -1111.30 VjSyM MeN4t2w ffxS rWSugB LHoy g5LEMF St4C 67rgIekRM kt1qRk JpQ8 vhONw r3Pt ORWa 0Ma8e8Pch GXFK LKRL21f FHe9 eL7j q90f35 m9W5 66QR VhID NjZK86k NYSlca Ibog oUoCq yuV6 BwGt iDjz3sukv 6VVS cpeBpa hPEd 5WgB ImLr D3KNW 15x3VT eDi4hAu7 AbkEp8z tMed5 twCn EpgTltQyr sBwX5 joYd9e +1 1 316.06 130.69 312.00 809.48 334.91 131.69 330.70 811.98 v403mVV apLO B2fn TQM1Iez Au6q xhTDo5y 5qfyOSgE MGju lhfCKD3u KuYXEf +1 2 -865.37 -717.93 -1586.82 -266.03 -853.12 -716.93 -1585.82 -262.56 ecAP aIvg0 YHEI UzV4 PThW Uxjgf 2qC1 sxaG 4JV6 n0Qjg0 1t5a fDrDlGR 8YMd FoOJab fi6gNCy GAXT2w3I RwGJTy +1 3 116.37 387.91 -782.45 -23.00 122.09 388.91 -779.14 -22.00 erjq6J KZWE Zy5j skha LmnZ 2AZMKre9 DaRS D2bSB NNde mUv3 gp2Y ogPgj tHZU hW2D bCHK bvqT uUNAkA0k fqvH RpHs449 3VZL Zm0Zdu22E Z63PmLhP ZtIm CXY3 67jz HtRj Mkd9 Iafu YefY AyRt mujsyxzM joWQOS AHOf mBWIf4UnS MsLg czEit6 4nsT EM7G1bwY zpNCXHo8 LEWo IwF4LUMhl Ktmf gjSTf +1 3 -1735.49 545.91 917.01 -1730.84 -1728.79 574.26 924.72 -1729.84 jVvX7s3 GE8s YJ9K ZesnZ5 ki1b xWdb arKjET1M Do3W yVz8 L2DgPtMl 2hWGnQ4ay hv1W PKTN VbSUMxb wbYC34Fy y5eE QJPd z7tQ dm2SM9OAm DZdO OjdJ 7UnlRA luYvd xW4S sVUKeLmA ispQ Upsc bIpTdwx dSSJ fIMcpGGK ZlOA zzXP oyLltywzO hozCIaK u60N oS7Ub88 ulfnU8ET gXB8UANYR 5WQ6 hNai K0K1 bhsI39h kIS1wUK93 +1 3 326.58 752.86 -1184.79 1783.68 335.13 769.85 -1183.79 1791.68 h4OxtUx OCJJT eAwc Zroz B9KXogC9F nbqZ 3ebR zLi13Cfld Vedz njoEc Q7Giqi OwB4ro w9Fs1 WBKLBM9Qd Bti5 APBiP4kf WvH2fmNa aY9p CjTz uWam 0alY sFZvtRlNN tTnuU0 GnWO gzeffM 7PE3HRme A0xw VqgDn6 o38Da X2hx kS5Z zZVX83Q TPT6G st88 c5TcRjNl FxbM U1yT LxqLWFTf emLx XQ2jmThw UqZB Cx4S bZkabu +2 4 -124.775757 5 -132.050110 6 -2117.875488 3 75.509064 7 410.481476 8 xYK 10 tFZ 11 cu 12 r5D 16 klh 18 l 19 of 22 xN 23 R 33 4 39 2l 48 DaK +1 3 -233.19 406.94 830.69 -673.55 -230.61 418.71 837.75 -665.35 RUMj FBiMTX 9PA4 Fyydl ud450 tAEUhNfV icQpTZu El6dV0Xyf WRwr Ziqou XFsS 1Awkf xnJq GnuPZ 9jQmTM pXA3 Acy9pnmiA tzRJ fyUHVhSz qjIogeq hnazO vlqA MjapQEOST 6KmF 8nVi hmV3na6Kt 2ikHLJyT 61RhsMCn C9Ckb zBTHqM4Z Kp2BfV jThB XSVv lFwQtc2SJ BhVx KYSH UO7ut rerS ALxQ 4ABT COG7 zr8T Oiot +1 1 -338.33 -578.25 634.91 1134.88 -337.33 -577.25 658.37 1135.88 wtQQ GRGtJ BmjW lOVEPHe cOWE FipS AXpwjV fXezVT H8V9eomE FjlW +1 1 577.79 2031.77 194.12 -1165.22 579.22 2042.63 199.59 -1154.19 O50v 3ezi 1WVV97ku zlln PWRMpg ArkNgCZ bCik EKaX tK32 GU4OAm +1 1 1781.45 1808.72 -132.29 -1162.24 1782.45 1813.15 -130.09 -1161.24 FwKK ceVlTrv yrLpPS RklW fAz3 azFY mglzdye GeJp2C c5so IqLe +1 2 280.34 1080.81 -18.55 578.42 281.42 1090.90 13.85 586.57 ixZg dcY6 eBUj tjjka3hFS Ij0c BNV4 lKkG VR6om uaoE f4sQ OCYlE qAyQ vMNFMiCXW iJNeZJjj XNac bFzW PkKUwez0 +1 2 404.14 -185.86 -366.63 -1179.81 409.73 -184.86 -352.14 -1164.96 fEu6 YhKA D75qJ kZ1L gbG1 XozZ akg0 cMcu rqmN09w3 9AzH REmc 9iXm 7T7b a53u iuZ5 tLJDm6AZ 5KjZZd5 +1 3 -1195.81 1810.94 558.71 1331.37 -1194.81 1822.95 573.45 1332.37 b2rN iN2Jk2wkb koYDXTME CVcVCBQ JYwC LwyS yJOM 70z7LAn 3U7N9 kAXW rS9lA2bOr NtO0Cg RMgsWm6 zkuOHEvQ m1jE 7L53 prqIBw 2UT9 YAAR a5sZskK KTCR fOvIad JPBb CYzo zHvm uTDlNU vH8e zTVbveUcW INn9J Rjcg qQD0y GrOjT8dy bEEs TUJqG L0AL84 imDls8znt ewDM yGQ1 3EtZ X5593n orW0 bt2s 44Gq +1 3 388.60 -177.15 176.64 668.14 389.60 -158.34 177.64 676.64 yLzK kK2S 0ryat UG0I k5x7E Vb2S 3G7j NxVDV0j JUQTcryIV 8uv1 1D9s1dia eyIV WrMbUtOUo W1EVu Ovz98 hDBR aEQX 4OcF lu23j9gjg MHrv17Q Y5obWGouF lY65O7 0rhjDW2N RGpa 9DuC1 MSZj EsPxbgQc tnle559s KgWCyyS3c lH9w 5TihI oYeN HSZSLLrC 7ZXoO6ck dXMf 2vW4 mqOd yQafY zgBZ MkNQl2A2 GbdWmgGI2 sM92Y 35ja +1 2 -339.65 -696.48 1147.80 -1782.60 -329.63 -686.65 1156.24 -1763.59 EqzgAac2r oiQxn 0sFl1Nlth iBq7 TBYNfuW2Z SbJlk zJLRE HZJz cKws2ffE oylrFk DpKlW 9KFP iDho 8TPEvwpJ6 aJY63Hwk0 ZdsW iy5wqi6 +1 3 -73.21 72.51 -227.05 959.91 -60.67 94.72 -226.05 974.13 O9xM 1S4W7 IS4d7B9 ssevDpSh gowFjv ByTj 2HsNn 9isv DGpv 45gO 4VSHIFsBk e45bASXu JXBW PXjA dThe dQhB 4omQ4 f7ZoW lUZ5C nehVGUlBC bLg8 9OZw Blzx uaoySWoj vOkV 6HvJ H29JV4C TSry 4c6Sopsh ZNOa OXl6 kdWsp4 3rvDsToFn PVAzkme 1qdJ2Ya VrLq Jvsp XHPZ1z NgOHE1rW IFdJjAcU 3ju3if lt18 weY9cdivX +1 3 836.87 326.11 526.16 459.65 844.01 327.11 527.28 471.75 beqxF xVjt6Hm 9AFTY7 n1lv IYFVYoXr z4yRI rOfvPEme ooEI K1v2oT5L 45oG phf1 UX9AGRw L6rScBQe k5Rzwry TO77q Zh4lX LMx0a qmwqOV 5FjZ 5RadsmX NJkMs 77dYUJ2G 9oM8 82Mg 0fTu 4rgH tyAe28q VEiK I3RwwJ dTa9 cbdu CSwz 82pQDOe PE5NTZ ON9a51OqC XCnHwA1Z vnSmjhgRu uK2AO 6sSq 7znjoe9K 7UwAcak fwfC9gkoJ ZguV +1 3 778.68 358.57 780.15 742.31 779.68 375.38 800.50 753.65 fwtx U8U46H 20wH gub3 lRo2 BeaEQ1 JF5RAaO WzKSUr lgQt k7U0 kVXV d8vy1r pbaZ f1FO AHCr ZKTX 7659 pvc0o hoBh 4vci qL0LnP yT5A PoPP eQS7 p6X4 CQFW 9G9p Itih zCOb WzWLC 455UCn 8KRf7w Al02 kMEWNxPC rqBbK 6mex TleG 8wdbN t1jY JANR 417g NB23g izDNg +1 2 1162.03 2007.45 -940.66 -195.26 1163.03 2008.45 -933.38 -176.74 I4Xh8aP jXyJQ gCUe jZUsxXkmg IKa0 38Tv qbnYOuK 1cxNu0Bu Bgs7 6lWph8kZN tjfqmpo9 LpCq AnECMVx J1Kx hdo6 cVoB 76CUKDMg +1 2 1989.92 -1181.23 -542.59 -107.28 2004.37 -1180.23 -533.61 -93.70 liBo qjqu scVW R4FM8w Cene ZMHLF Fpdg1 LjY3 OdHA V5B9 EO2Wf8E iFbs zQewrqxV sEaK44Pd Z1yY dEGJ 1EoNvRddE +1 3 503.73 802.50 1053.85 150.77 514.46 806.06 1066.45 151.77 s60U 7pzHKhC ZAb7L RLxQ d8L9 nlqY 4w9Md 3m4A dili OXHP upWg ATmDC zRGr 20mr dqcjgWnAk gJeVDRA 3wNTFTi u3Vchdu TxKs5x0yF E9pFefe irUj KgAHwQDo wIr3 aMYF XMZYJ7YRv DTAA3Moq 3Dgx oJf1Tuhb Smq1 40hYc9DRy ZiKQ8aZ UQz3 e6jw xFnP OOZv a6F2 7MGH6L9O Y4tD rYM5O9luj RwAUs3km NqK1 YrrP pjRDHdL9T +1 3 -676.03 529.31 1444.05 -1197.30 -664.78 530.31 1445.05 -1189.50 lHzj Aq24NMr2 GKHZQ8E fKe6KpI 8Yst EJmD Cw55 KZmK ZzbbBgaG 0lc3 jFA9a8Aza qi2lS Ohab TwZd YEjUiE0P Muin RWCHHg 6ZpCJKlf qS7cFvv ojsHp aHhK vxZr TLgb ym1R tQKC 2vksDtzq Im5G F1Ah p5mP V89xD Av9HDxtnL jOU5u OcwI14 E5LB fZSZiOSae kBHhT GTnRF tuNDBe pLS8HPHR cQUTI yS1aGWg54 Xiuhqfk Rf8X +1 2 344.15 414.16 1753.64 -320.88 347.31 415.98 1754.64 -305.38 fiAMkGZ 55yN N0PNMu 68Ik b2iub qFP0 8ejG OI802HI CDsg D5CB 883c 0tvv ZyiV m7wJ6 ThN8 7Arw XB8tZ6CA1 +1 1 1068.52 1933.16 1352.46 1152.93 1069.52 1934.16 1382.20 1155.54 UBOv 9udD PZQA w1XP twmEC FjYP BLfj JgnhlpV 6q9G EQvg +1 1 -180.00 -219.35 -1305.16 -1450.32 -179.00 -218.35 -1302.98 -1445.29 qDjaklVEk D9mJ NOZ2 zjNL 7jKH 2I8981B ZWQo LoNbBe z22S YTWz +1 3 -829.49 735.45 -933.09 -771.31 -817.52 736.45 -932.09 -762.49 f99F wGXeepBU q54FMsko9 PuBo c9aH iOdn f6PU97CJ 46OE Gj0Q jplrrAiIc lffV hCqAn2f OYhIz Au5h 4K4p IagSUOnmN SpPB ZFVdRCsh6 Seh0CLk7U yrhQReZa SyvEFsa iAXbBY F6x4MBpPj c3oK WrJX SAFQF0iB LWPpXrs0h syq3ayDdw a4NFcp 4veDjKX V9ko banQ M73W EDMQFo CFAyPvmIt fsPG0QqG lujb NOK5 cdmKxE wi3YZO pikYymWE cK17 0rU1I1f +2 4 -390.946136 1 1603.734741 6 242.984863 3 -481.420837 7 -471.420837 9 J 10 M 11 Gd 14 3 19 gV 22 kL 26 o 28 45 29 Rq 30 JCC 32 PFB 33 lC 34 RRH 35 GR 36 ri +1 2 1477.85 -710.74 -565.94 -879.04 1478.85 -705.54 -564.94 -865.06 uHPtKO YHEV neAj5F1CE iJzi 2eg2 ut0k DUWhnkl D3NGatvN WPSosR8 JlktEHD ziQM HgZZ 1f1T f8820ckWi HLuGUn3S IMfu ld8CRp +1 1 583.46 1482.34 918.43 -165.31 584.46 1487.66 919.43 -164.31 v5E2 FV9a RgEDqv g7YHon 4Zon LzGx sOgXkr ox6eyMjCu ydkZSNI wPIg +1 2 -623.79 415.15 -1031.84 1585.29 -622.79 416.15 -1027.53 1587.25 mYFibz ADHR VOnc 2W3Q38 Qghu xI1s8ou eW4n 9IwLd am5t Ujh7 D7oupc 7sAW pNYq YfAf Ff5W w7hgk7Es r9dl +1 3 -1821.19 -1376.29 -617.67 1122.25 -1806.83 -1368.94 -616.67 1123.25 krMK9j jQI1DX zdxjd Ij2X MqSO SoviNYSz yil9bzSK 47Y1r vOTJQ 8oo4 rQ8iM uMxGjcx N42h 15dX2 lHn1DL Xu6p QwVbo1z0w a1wCmQ8 Cf9G UZwBz4 zv95 vndtTcw7V Bc99 l40a OApI hBSGcv 7cdMxaLr5 Ti3G489zg vzlP StJ9sy EN4g a59g nI8QrM cHaBK YeXiz1F PewBmWBO 9NAY Q0Tl jHKbF klALwKxyK 6bpl4apse 7ZeWoBWQE igOyhHx +1 1 18.00 -414.00 159.91 -676.91 34.06 -398.93 163.22 -675.91 UhVG x34f PECN H4dM6Y4iW 1c0rdBU9m lHOX ZeyZnc ETLTxZm Jy9i LITR +1 3 -84.12 1075.97 -636.09 319.58 -81.84 1076.97 -619.12 320.58 s5oC xIcM 12gd fKlJ 14Ks JQFP W043 Uvax 86L2 j6tKuWy pZI2 CkRxcR4P hFhCW lJMD 9SJ9 tUwq hVpT 3IbRD kJtBV Iu54KG24x 6x2h 2uZRxX4ol oUpl WY2fs vwRC bpvQ qKpT xyIg KTYhO BKI5P Mbh5 c39X eiWz WAyl d8rW rO1rbME 7zDDGZps lvZrYoTO hVUcCvCT XRaGttRNC 2m9Z qlA1 ARfjqZzT +1 2 42.99 794.55 -735.29 1011.71 54.25 796.03 -734.29 1012.71 9Ysj1 pc6osL14k H7M9 0jobm n3CA 5xul D8Dsqfox UWeSDiB 6YTxnKK 8EtS GiCAfej 53HJ b2Dw JwDx P8OwMRe BPWQRZxGb vD5C26uRh +1 1 1074.83 1617.14 -1106.33 -1879.49 1083.21 1618.14 -1105.33 -1868.94 yOAd 0F7M mUASY3gP qZja3a yNu5Bd1 R3ZW OJux 34IR CJV8 343cB +1 3 1962.94 1751.11 277.07 666.18 1964.39 1753.73 278.07 667.18 8Bu0 xL9X KfKM sa1HqrUX 67VZ lUBw Msofg WLb3Fg8n uutpG RgTO 87sDHQ1y Q6ZS1MYv RTWmkn HHmExq0M1 WQPP 5qwe 6ZUxEq9oa D6BZ 37cH2L nSl4 Bd5Z T8KEV zXOTo6WUH ffRDxPY oSKT 2Atf hemQ MjmX EbEL 5r74 LQExQnwMg 7r5KN51Sp Puo2 TE5z4 iS0i9m EfhR 4Y3FxORk zZatyvTJ 5kKwQbjF6 Wnn9WnBAJ uh8K myMlyrWU FYjmvN +1 1 -1016.94 -1044.78 1716.72 -601.28 -1015.94 -1034.74 1722.11 -600.28 A10C ClyQkpFtb JBnlqhT QlwXCs DxDbYuJK 0DsM arnzKfUr J57O0viDa SUOCi JICAH6nM +1 1 -1074.67 23.72 -1162.10 -3045.02 -1056.67 24.72 -1161.10 -3026.34 LubfCgHF dxFSG4W NZbooLg 5QuXy l6op rtz5PN7 XAKF Da75 uEvysD EHnK +1 2 -510.19 -350.80 -1046.45 -61.63 -509.19 -348.72 -1045.45 -60.63 S6GrHUARq nf8C LMbHqu Bayi HA0z ZHMp Hs5s 5Fl0 AjMH kN1Nmc1 IyYa pDBUfYVST BeCFkZ3 UORrzwlPl fJOGvG mxZE9YBk SKtFTGTg +1 2 54.16 161.50 208.90 -2324.95 90.29 162.50 221.25 -2308.61 FC1Vim iMy6yDPRS wuaX LzylKOaOA 0IQpO3G mqg0oZfa0 bP5JN 0pkWcspI tgeP3r3I jwVSQ5sx xxxLk QETq QTp2pqM ShKm unlqTrfOu xxgs IytUC4bhT +1 2 -1374.95 -2111.00 986.42 2615.21 -1366.26 -2110.00 991.05 2616.21 3FZSm tyRmOKCA Buo0 QIXk mtoFf1MY 932zuV FSk7Wvdb XMwkJgs wYQUA Rshcl iiwEmol DcXJ TBavrkcu bbX6zqIEb pYkAYdrn hmQdBl RPkvg +1 2 1414.00 1152.27 125.17 -1063.16 1415.00 1164.67 145.51 -1062.16 zEtT zUFKSMsp gxJr ZfcQA6 axxpLgij 86zr YUc5 h2TLLTGB xwQK SKWSiDCAa BEduNcjS 6kQzvH JZQW0tosJ axWT n1K1 3KDf jZqK +1 3 263.15 1565.38 -635.07 -752.87 275.48 1572.75 -634.07 -741.51 nyIDfqOjT pDnd 5T8P vuQY7 XjRI5Wj I0FlGIl z1gS ffjN UKcQ h9ZIbOoU Fclk ZHEY KU5c bjd3FExR9 6NTl SVwB dxZ6 t6W3 JAoW okl2oS8K1 ODd713aI LuDRU1 69cenRtSy 562Ru3Xl Zn8d3 guhL3 dX72R dINl XHg3 NWFP wVKF uyPo VwwKppRS 8v3PCu 3oBQ MTG9LLkZ Jd3L0L ccuP 5onv BsRhNHrR A6vNbpPH IlYRQ23 vd7Pu +1 3 -783.17 2127.68 -1297.46 -912.58 -780.98 2139.08 -1296.46 -904.31 STFpdRwT Qmjn7qH hwVY F9b1bsW oNi4 kDRNm 8GJOYU 6B1ykAu sLe0HU4 n7cs JYAZ0zKh zyJ5s FpBT upYb i9TOsaSU oYYO15Aaw A6c4 mshlW3 X3mlM6RQ Z7nd tbN9V CgLE g9AZ ugbY35iw QaqLZ7l F8yp uwnSS7 vvFN MzQgg9s hcC0 RD2NaR72 gOLKNP3Ep Ww3a O7cg CbQH 80YuV BAi7 LkKw5 AdMn c8eS 56DKC YQjEpeA 8NCY +1 1 -1026.55 535.24 -720.21 -137.27 -1013.47 537.49 -715.74 -116.96 03bc cvTv Nj5X 4Tmg ptI1 Fi0yygEv niRlXV5z yTJB 2KQp tjHn4 +1 2 884.95 -523.90 -663.28 626.09 885.95 -520.29 -662.28 641.68 jqjRccY Br0z EcEF 8sfo TBy84Uu 3s68G6 4VvU LXip h2Kb NGvA MDLu bTcBwJ1S pbvi HJIZ KXyy Io3OqT G024ByKR +1 3 -1273.37 -154.97 -416.29 -745.92 -1266.51 -153.97 -415.29 -733.72 E9gP gEl86NY TEDM5fvw d2guSpJl7 BpMPL tBkn 3KcM uWO8 3iGT qNkP5 9jKGp6s ZjFK UgCJGoY EL1p TfSV cNof3x 9MBm hsuR lD1cC87k RqVn HPre KHPg to8n 4Sh5 FjK7 o9zRkOs3 OuPEi QUSX lHUx dHE5 jqSSJAJif GxcjR plJ8PSTn BExE5L Ftkmf Gl4Pos4t YMZR P9VQU1U Ar9JoAmHg XhWGJdZxS 6qZeC dRhRO3 vLP7 +1 1 -1038.96 -1457.13 -824.34 -1054.29 -1022.33 -1445.87 -805.75 -1053.29 Wsdc 5fT9 SZCP VMJElkUpX SNCJZu xmlN6 zNrK 1S1DZpe dP1bL1A IfAh +1 3 29.69 -492.00 -423.87 55.65 30.69 -490.69 -413.84 63.52 pnE7r 3Zp6JCx EEcU 7tsfy Uncj oYV0n 4qjABgAf NrtZ rqmh SDfh acnd X8L0 72mt 8K0VgnkT9 pkUeiUZ9S nrF4PK6 f1AB kKVTYkA bghb 8vc35b B5wV3s YGiRK xgHyliIw ijropPy0 oBMW Ugyx DJJc4eIUz azDVqC JhS1 FQAw jGXO 3FR1QJT lBEM tOtC 2msIh GWLgP4X NcW5u2 FQO3 NELX BbjAM1 YEcN FvVlj e4f1fIDoh +1 2 1083.90 -1462.20 448.44 -1739.77 1091.23 -1449.87 453.32 -1729.03 42Qd tSG1 j0sv0ecK AqOIlyMu sZ2N mGs4mB 5cthJZj 9QXT 9zuL 3GDv xnEP CIwtMGooe U2jOL KRezf1qfr VPBD 5qBQ8q 4JnM +1 1 -20.10 -361.23 1316.51 55.21 -19.10 -346.05 1333.05 56.21 WGTQX Qvh7GAi pcFE tVMQH O6Nvz5 XI1W cNA7mJHG A1p8X4 lagO YTDS +1 1 -216.97 1848.70 -1155.32 882.09 -201.84 1854.03 -1150.04 883.09 4p9Ytk 6pr3 J0cjnW UzVN FKA6y wmSHoU pfS5 98kv uyLvsgN cAkm0v1p8 +1 1 2885.73 917.80 536.59 -213.85 2886.73 932.45 545.45 -212.85 c7VLcSCc QskA2Ri K8VquO8 ApGjOMKXH QwXH7xIQ nq2OVYB 5YVj VEKO nmeO CQLG8Uj2A +1 3 -890.09 501.75 -488.32 2698.24 -889.09 502.75 -487.32 2699.24 y1U7 RlUt9tjm 0BsSY 4Hhc 9xjV2Jhq7 p1cY 6YRbV1 NiFxe vIm6glKm oif5 PReQ 3TQwaVL4 SCA5uQL 30dJFW l9cw Vpbt IG8n ut0V JbIgaikI nfHw xICa A8RRUu W5ULRr VyPKwSS TE7S GmFC gYRszjiM BSpQ CuowkR2 IHHa eCGeE q9Rf DYGYFVpK 07Wg bnfYA2hv 4AHEqh RHoQ L6PtAC6 VK4f ttiI RSeel0 D91Y07Lnb TJM7FG0C6 +1 1 -1263.56 434.33 -1489.80 2728.32 -1253.26 439.99 -1479.65 2750.21 2F9L agOa8 ooqBNHmgT g20b pKhs J5DE Xa1D Jfib oHmn 3mjJ52YI3 +1 1 259.37 -267.36 761.23 567.37 264.96 -266.36 769.61 580.35 dTYm1i GJlZ PN4D ctRk dq53 O2Hp nV7TI eOLT FkjmH BZl5 +1 3 -1202.56 2712.98 825.58 -860.29 -1196.84 2713.98 830.33 -857.48 gKac UHLegOZ LQHoc AAQ8 laoWruG P3RO m94PL1 3TAb S4YONw Ke8e zhh0Gcl 30XJOg pLeyC Cn2q xlYopN9a TpKb ftsxj4WSm fsR2 rmBg myLQ dM1SeaqqC 3AqHJPDcp ZsXC 2fOm xBwwNH yrzS Cy18 rYaYX owcs AXudLj L8H08E0 WgAaZGd MBOb xTr1 4ofGP6 jqThvC 9lkG Z9TMvPY Utzq 1om7 EEEM S7KT 4jB0 +1 1 674.21 -203.38 435.61 925.87 675.21 -202.38 452.44 933.40 ZFLuf kDyw Mzro zbfo ZVNV ueNS zm9i ddXQm5XN mZxC egbf +1 1 318.18 -835.94 810.41 -1781.39 329.02 -819.39 840.99 -1750.72 M2hH PZM0 INWv 3N5jGkv c61k 3bL3 4cZ2WNoC3 qSTNf4 UZhOF0 06uL +1 2 -427.72 877.81 362.97 77.96 -421.07 890.42 379.20 78.96 2LJoG7Y HzhIs YScaRI 3iUP 4xTCVug Qv1ODtHI wsEQ MpSZtYK HJqS iHwfr8Mts Zy9i URZdEDo7 1ln6 2uzTC iezA 2JuI4v7 9pDH2M +1 3 -542.41 848.95 1880.57 3611.55 -541.41 884.53 1885.08 3614.34 e3uMPa79v JD93q XjSyobxc 9vwAL tA3E OezP5QOZd lQmiby HTbYdc5 xv8B gApg EmBe AHORn8e g3XQBG NpkTz1g um9r 3ROPMU37J igV0 ihtpQyy5 YPfr MomCJykS tm5B xdnS fyMRVZ2G Tf5R Amo5 62wl0Y P6FB3aqi iEUIpO3 G8Nc nKf1 qcuplFpTh ArORPBM 7Eth7Zg A0XOSqOc AiahZq Zb7t 0t9fI5BC OVSClzfK 1IrT2 UYCLiOs HZUl Sadygl IknY +1 3 460.63 -245.04 -481.89 -1476.97 466.75 -239.40 -471.23 -1471.51 zDdY SWFq 7zy1f ffEla8Cda VYW2ly NuCL9M AcGSjn 8sEK ouUemb fOK6 aSBEmptUe rW7Py0C 8NuK iIiMfUAIN Eh4Bmiav 5foG VIAe TXuN0 GBmklm u0bF ZXqh AQN4r qWcW Zk9Z nwcc97NKf VkYC JaXv gmH1QjP kmauPs aPYx32 clkcrCBP TIY88FHvZ gH0ebG 7Av1dI6 ggU1 Y9pf Ctb4oKMa 2s7vK rbaeG9xQ 1v2EUH Rckc 8AwJ LFHegAZ +1 1 812.85 -2216.06 -948.43 836.37 813.85 -2208.38 -931.91 844.17 VUSZjlQOF Tk6M vECj5SEMm E8tx iiUpSD fHod uwBL1T gnaa GdPxvf JQXhi +1 3 2919.63 1019.75 -754.70 -1189.52 2922.52 1037.60 -753.70 -1176.50 Uqw2 zJIr udJCIK Nh9r Th0P ehr4 I2a3h1t4X ze3iB8tXm L01h uSzs Po7S Nf8a JkEy 8t5b FzJi5I S5Zaa NlrY 6Hn6 9MyO jsiN ahbOpK rS3OQ x9j6 EET9PIAfJ crbaiy OUsxH4i VoRI ugqDXaGz 0OaHMR93f hHuqt e7MJ IwIG WYGA0 j6sl J0Gl dMEA jZv5 1Vgk 8Bjfiap 8ocf 9iqL 6qR9 0nmRfPYs +1 1 747.53 906.83 1041.85 1230.28 757.79 907.83 1042.85 1232.56 hhV5aTE hXNMNt 56dcA35 ltwYB dlWPfFjk wRhP1KePK 4OUvU AgzJo17 0Jz1 SlueE +1 3 -271.00 902.39 1468.11 521.44 -270.00 903.39 1470.60 524.57 gEK6 0Nlqgp wvmn xkY4X3B bgYd RmWF PDEW OmjN bXlM F0BYP dLyb KXXcXa YMpU krDe 1AZ1 Nv1q OZFNwXql3 WGer FpWs 57KpSX 1i13 6uaX YvZdL2Y jMGAJ20b dtXYAAhrx Ivle73 3Eba0vN swYG Va4q AOleAhI zfXT rpIB4BR2 kMzP NjuSjWK OaW0 DK3pRU7F w1rBXoZk3 ZRPj aQSGFd 3pva6H 8JIA gshe ON65B +1 1 -269.04 735.32 -611.03 779.15 -268.04 756.29 -582.81 785.44 QnzV cJlI p1nD hYmX3uTl gE15 QBsZ ccqS WeEI CcdF j1acBipAr +1 2 352.86 -664.63 1260.98 1907.93 353.86 -642.04 1267.31 1920.85 ldWlXJFxR vEefxT Aw8h GpfKtobBD eIELDhxJi J3Eu LGUQAYD Egke FJD8UX GblN woGk 22U0 z8S9 KAwR xgHX BwPT Qndy +1 1 76.27 -1428.55 -1456.24 33.81 87.08 -1416.95 -1440.75 65.35 EgCC MfItUciJg Mhch p2Da IIOP Hg78 hWZqO HukM cXuI PPVlzRDK +1 2 991.89 638.16 647.11 435.22 1000.20 652.51 648.11 455.88 MyES9 S5WMJq p6vn70Y S8mTCj3 aiAhLlHjp kUlX GCG9 943C tbai Zm9O jWWm55SE 5Klu IcL3 MOc6 z3WkW32U 4JPR R5AbW +1 2 299.93 58.90 -2591.58 -652.97 308.27 83.56 -2587.12 -651.97 buKp dvdzbg a4OW7y 1eNi 5pE1 YXHT ZZi1 WwUc 4PwR0UtJ hSMn6wo j0vh 6Qs6pHOx FyuxUPnzm plsc dn0Q e0R5 ZjpOjm3 +1 1 724.17 2208.80 29.42 -93.90 726.07 2212.98 47.38 -84.33 N4CWRPWS oVcF4NB hdAn I1OMPZ HZx5 VLms Y4oi5hiQ epNN 87b40 MZBictEn +1 1 658.05 243.44 517.15 -1018.64 679.82 248.05 518.15 -1017.06 xzzi yzGd9rOPd vkZmNCVga 1Fm5sPZCK P4DDYy JkTg rz9J cWREuMW19 ZlCj t1q9 +1 2 -1904.67 746.31 158.39 -509.00 -1903.67 747.31 161.53 -492.44 J9AfU YPAVa1zH l4fuv KrQm sHAu xl7jBvdoE B1ysZ oCpn6nK ISGQ XuHY BhRg1luLT dc7i LxWy LnXo Zl3rEg6Ap IKRBK9 a5z8 +1 3 554.26 -844.30 -656.89 -1816.51 563.55 -840.56 -655.89 -1815.14 HP4PZdgP0 blHr zsOQ F5RFvb3Ga bP0kS9GYZ GqpR yEyUllr JybK LG7h wPIA 5Mob 2OEeHSTO Xj4HKtVR3 CIOe 5uOO hEoVLgyaS kBVQ oBb1 nM49Rq qpR3I8v 2rea m4oblnzv hXcSn 8WiKZ NGfU PFYu 1wHv Mm4mXtCh bqkG6sp7 zCpv T1xw Cx0M rybi JyR4 t2UA TWaq UOZHgouaq okjn d7xm FBI2g1TI 0WD5 bzub VDiU6qCa +1 1 5.69 344.54 -14.37 181.66 6.69 351.19 -5.79 183.37 5NrwT n8bSoL2pi 9gWvvZnuc YKYe ePWLZa L7081U mEbg ixWE Pq27U3 eTJ6 +1 3 91.98 -88.34 150.64 -35.36 106.20 -56.29 151.64 -29.15 0nKz EA8h04 WiWjT S3aI adUf cZU5D8k c1UZ mImoqf7fE hASQ ZEqx WTPT4BQ2 g1ps KUsN tnEkqUV27 OxQ6J7w1B RSY9 zjSd u7Fd7 leqbLU v4Oh y7q6 WgOH 6auy nPQc 5MiX elkU v8HsG DEyhzMOl iUXX jiBP D82TahY2 DUL1IG H33Q7h 3SXP JL0B LAAsTP ctoK gbid NJV38B kiGBq3xc 7RwT ETRa e4YS2Qcy +1 1 421.52 539.11 179.31 400.74 422.52 540.11 180.31 413.97 iwbu9d ervkhp3 wl9w SffpL14 8UeVRX40 pC81kTUp2 9fJkY UXIg MiP4 GMZ3 +1 2 -521.32 -1018.50 -765.28 -301.62 -502.35 -1017.50 -760.68 -299.78 2FUctn8AH XE8RGd3 zpe5Xbt mKm4 ol1GA L2G9 4bl0V6MI1 Y3Uq 7fYQ MAV4Qb Ilwuy3W EGso UMGHMrKz x4XR 8yos IuQ3 kXCr +1 3 -1179.29 -747.99 -335.15 25.27 -1178.29 -736.23 -326.82 40.48 EVSkyyHMO qFECDn U1oSbdS cbljYQZzV gwVFgQGLh G6rsK NW1F nK8r GiP6Tx8 SD9S 764c s2HvLFRj dPJr sdJzvE hMDK F9YIi vfJr eZU5 yTZJXIIKi JDyy Ny7ZBfk Jzed WUAq7Dm 48cR2WLl nIeRrY S3HneE DPmfj e66V 44FTlczAn ciqR 9Z2K 6aONwxSu IeU6 0xH2 AEbK bzTANgRt8 EHQq bAzuPvx MXNxkUI Na8B rOAM G1VVlMD3 Gy74 +1 1 -507.06 -508.16 -897.58 -3150.75 -498.01 -507.16 -882.79 -3142.43 FZfQT2W9f w0tl 3Mlt bMwbA PEUpaEl mK9O pK0XDc BWKGGqh JvA02LL 3gi3lVM7 +2 4 -612.846375 5 -1372.144775 2 576.186829 3 -878.432739 7 -404.524170 10 5i 13 J 18 4 21 um 26 5e 27 Tuq 28 1 32 tS 34 Z 36 Qs 37 J 38 F 39 xdp 40 8o 45 kl +1 1 962.02 -927.20 -923.68 -542.80 968.05 -920.57 -922.68 -541.80 cNl0 fN1F ibiD UoqP rQGE IKrjjwnf horY8 qULy SfXs q8GbdG +1 1 1467.72 -893.16 682.15 -890.62 1470.57 -890.44 702.05 -869.23 cbv1lA8 U5HUuKhk ulWxw YMRi 8lMs kqLt Ygngrtn Ap8V f2HC twQU +1 2 -271.52 -60.66 407.40 -1663.69 -256.44 -59.66 421.03 -1662.69 njxe dxal yA6lT3T4 5pzW qyrfuzcY z7nfqOaat ZFZU kyGT LHh71 K2pJGrsnK k3hXfJ HdRsJNPpk HOVzs7g8M oaZToUg qTwS iy5rEedAj C4eJxx +1 2 1737.03 -1379.64 1372.21 -79.33 1738.03 -1359.13 1373.57 -78.33 3eYa4zk sjI7 pg8S4 bkkHrq wfiCSU1s7 CX3T 2VAN ZBLLs 9IDI f5s3E F4T0 6uFU uZRP gRwwPaF zwH4l QPeyU fu21 +1 2 -1125.21 -1842.74 1000.77 -641.70 -1124.21 -1839.34 1007.23 -634.31 onmZ fMqq qDagF 04ce oascyramP wO46Sg rCYl ArTF XGcy DMX6 Ay5C 1wkd Gg4X AJ8OxY hS5eua w47qYa GAPW +1 3 -232.64 -590.28 -1405.40 -1681.53 -211.23 -588.13 -1399.60 -1680.53 8f26a9 L7wZ zJ0g oNRa z7nn IWyDX5O SzO20 EpRG0kJ zSJxiQKC Iqh6 lxvqcx AwRwzOQ 1YvEJbnU NUhCY k7YI mTuS mKr9BNRoA ymkj zqsmEbkhR XQkb r9zs fGpG jNv0Yr5c DXBUwzDR by8yxz sLn2 DNM0 HO5J XYVOzr MMOv dHQL nN5o E5vIJ3DF enhi bh9e 3LFL LmH7a1s 0sqkI ibKU2 I7c0o0K 5jMGKTUT jKCQlkFR kSiO +1 3 26.55 -1727.38 -553.04 529.43 47.94 -1726.38 -550.04 542.14 CtUa0Ma qyS0RAU a3BYBt8 yC29 0VPj OIukh JIRo sZa1 ivn4 7HeHzW9 LOVu ZVq6c x7wS s5bJ ppnfm MGi6 dkdhNr hV1VAQG sK5eNN a7sPRDN h7aHNdMrs mOs2uNe v5nrDC2w ezZrMFhE6 ltOF57FW tc3o lvDV HJmn1 s0njB S1jd xHAk BVvq2 tOh55 IIFy1 PMTJSOLdn A4ydHHYKG TwEUUACf 1FdO wVbTV lfuw DzEEaShnD diIBJokF DhXq +1 3 -97.04 -753.07 -360.36 -241.42 -96.04 -738.46 -347.35 -240.42 QJ6Sef E31U SqS1 ygUh JIcv31 4PKS 2UqX4Qorg Quab uczUv H9z9cGms2 bmCCd47 oC49 HSZHYH 4e41 6Q1GZrnQj wLc3 UiAgDIKH nNaHyZQBw rh0D iD2Vk m3CHFEHO7 Fs4Yas3 uiRg rR5A eaTajiEv 8Pgh UPxl bwlw qLar YS2w71 WyxLaHp Hjok e1dA NfoR Y39L qdZlAZD gxMlCH qB8S aLFy vXVA LzDP oUDiL yBHA +1 2 -1835.53 -223.17 349.70 370.63 -1834.53 -214.85 350.70 380.87 ALvt PKqx iH5n4WI4 ttei 6m2G1RBO uOjyE uXXy ZW8Mda OQgyq TDNFKI JOiU lMEN fL1Mj GrQAny pWlLR9C 4wmg d5LLC +1 3 430.94 -782.51 472.57 679.96 431.94 -781.51 473.57 685.17 lbMs cIuv geTTS 0sa4AkXe jz89bexc ykwM TNse LJyB 7Rbv iaiK CHzCD eRq3 f0wnkY NEZe qCgi TylE R8tL RlBZJA xu81BZS 7mh7 qFTN lbQA W0uR C1or YYyl k3hR Mrn0 ZQza CtVkL UhKB fVA7 xuHWvpr GCq13Tl oOQN khMK SlByS nBnc vbdK wcFA GkZ3 npKMSI8V gbR4ox epzw +1 2 1074.48 314.76 -78.24 166.96 1075.48 321.52 -70.60 179.76 VM92 hOgSg hYoeCeTd AZHeeZD qlDCpT v790dCR 8rfkI3w 0lC2DZjC VZiDYU px8y 9h0oxi ugwB YrflmT UMoi NVrl RUui Vfj5v +1 3 -298.74 -1027.52 -1071.63 -1022.80 -292.28 -1020.71 -1068.07 -1021.80 wahMT QTSM 0LvV nFM3ceJY HMZx wO2Y uxzlVN0 dcPP Mozo gFZ0 k9Hsvs a1Kp G8Ec URMJWGN 1KPzGdTlV e57XSWkyY 5Jfk IBRVMCK r5keV13V 1pV0 yh9Kt6 D1OK st3Pwtcv3 V1XdUemm 5GZwZiID IBBYQQdi 9wEpnS 6m3DI 8m8eD x3JRpcf 83sndC 9nSg 9T2KdE7F KvXv DvAZ 4uv5voJYa a6VhI3VuM 6I3b zNe5FhA SCe0ZG 69l6 I31Hx 2Mzw +1 3 486.27 220.77 -633.40 -113.62 503.27 224.36 -630.16 -84.50 DqnEEsCi 51wo eLnD OQdD Pz6j cXAwoVcQ TSPi 7iEP KXkf xQVCF5 eedIb0 xDWk gtco HXYT bnkXR YMCXdplL DaUI6 y3jV S2me e8rE qPrK XfMX c2wrlmy6 SY6liHM lomk LyMEOmg uIhuAL OOxW kGHV mDwgE 0DLM3Ep Lvzl UfrZ 7fVP sl5rpUGY5 ypfr ZIxf MgL9 ndsKNOe9c 3sau 49jY x4e6 BhMTAu2aP +1 3 -625.77 -4.25 -757.52 98.62 -624.77 -2.85 -756.52 119.64 pR87tknwT hWa75s xtOniNUZ wHZ9 evKRQ XzDfdM0 5QrVO wWTN Hqq7 lxIKg Kxll Ubbt GwpI mxYg 2iDWzbylH dtnp rl3PdTxMV domx Thpr3Lg rbH6 100c eMPrgEtyQ TL5S xnkZ d4AITXNpr HSpM FYUwR ebSIy1BD 6vGTy L4XC xbo6 mAZj FIHw GmsAe35 rHtS qjkB 27ZjKG85l h9fNy 7UYBnh nFwLfEBo KIPKNn Lqsra wYkEorak3 +1 2 1966.99 -571.96 -1275.33 -746.86 1967.99 -541.32 -1274.33 -731.31 0fka 15it s4x5 DpD8 hFUf aXsINmv SED6e3DZR hnHbIgGn o8wC AwBz Ug8rCQ Ody21T7 RH2A HEvT HK3A HU1L UY7w +1 1 -317.74 -140.97 1201.47 -385.45 -308.60 -139.97 1232.45 -374.04 fSf6 SLNwYk kmp8 qsswj bRd93kJc V2S1 HMvrUfF fseC Q4nE E5xG +1 1 1769.65 -1624.54 -1689.11 54.69 1781.96 -1623.54 -1682.98 55.69 t8oq nXWxHd1 BSD1cmbV AD6z 4vZJM4 CtVhtrYf 9wHg AFgF Ku9b khUP +1 1 96.85 -1325.28 -883.14 -318.58 109.53 -1299.08 -878.29 -317.58 ffUwSuY KNpC nGzfPiSG eqcZgD qcJAZAPiW I6PhGW20C Zyk8BZpW WESbQ9ZG 5BzV DqmgcB0O3 +1 2 1064.83 600.48 350.96 371.97 1067.34 601.48 361.02 380.21 68ik QPi4F1lv 2IoB3 CRCAjB s0CR WJQlFlSIW DNyglFcgZ OBXzhTh McNU 3KLxZ oHWG lU7wp cO7n akrB eXV4YMX rwerJS3C7 KJRef +1 3 -335.76 -1285.39 747.01 -691.61 -324.88 -1277.48 748.01 -686.17 pehf mlby 32Cc Cl4i 3t5R 5SZU QVRkVI 2NHVK7 oSTvJh ndvhjKIS rrwp0TpXz 9C8wbM NvObSf 7Po4OwF whPl wfL66rl nR8v C8A4 XtZ4 kn8seIXM LKQP8W wnnEfVY dtEn rWRV GzBIWj MJDndmM rWmClnla R2xi iVQBEZ6AO d97p oKuL IA8z PEyWc9X hPaGxQX aH8RP iLxh wV22G 4GR1oR KEf3Q F1wr mBra XS6v4 miza +1 2 -1751.74 729.10 67.38 -1803.29 -1747.55 736.09 88.68 -1802.29 I1je0ya YLeP hVQ1 xG65GeOI DQJLZWe QZaBncFDW Ubgp ik9c 5HlS joEo5sryU 4bAp K9OKie RlpLibzDw opAd 0MoAUdy6 4KklkbEi8 y4hsO2 +1 3 -898.27 -1109.55 61.74 989.40 -897.27 -1097.18 62.74 1001.26 iL2p Gkd54t vwT2EfiM5 BBnnw 3KoA lYuThW iTzd YkWjtA9O4 ucK8 J96o cpHsO NVsz 24eQe tFab7 aAti NsYOJA1HJ MdDzbCJ QiQC ONJ40aKBd kphj5s WNBB k1DM D9UAUf wxuA cmP8 Xzu1wq zLNfaUR1n 0vrE vjWz 3ygI L4gBd r8ix tkVqwx3v 2ToT 80UO 2cfOG AHbo Uzsk ZoQ0 pAnxEj aQDi6IOqc mSLq Pbuq +1 1 -353.82 -648.23 845.21 495.24 -352.82 -647.23 846.21 514.24 X1WN DQqR Dzev 9Jre L4l1 Sc8f6Nt xKqa gfYQB8Mh Wl9Tt1oN 8LoU +1 3 -978.10 513.50 496.06 224.23 -977.10 523.32 511.44 227.94 I6PwoU XxVL pboP QNdg OpA3z8C TDRgUQ GjE2 Js2S 42exokc2G pRF74i4 vdluZ xATWTA Z9D5 v9vfo7sW 19lM CcUKyyB hsq7 DqztU qkgsO4u fgwH b6kI JfSA kRZBx 3LeR i853mH N98j 8sAp0HI ccbHU64EL nkhT r5Ku xC1E 3DVpAdWN LxAHRRIVa zb4eAG v0Bx6x ODBUOHs MnvrteM9 D3DQnog69 HtTe YJiEkCtK7 rSMZ7O f1fav7 vbdS +1 2 349.44 397.65 509.92 -1084.90 353.86 423.98 520.42 -1078.47 U7MF 07tI eA3od 8yCd kfemN83B zN58 I43kVp9U oo99nBB jVNE j8fww6 XxTsDMwdF RF66O973u cLjo TiCz9 s2tM uUA4ykmle t1cQ +1 2 1146.85 1477.59 452.18 1026.52 1147.85 1510.36 455.57 1028.46 kNT79yFo 6yFo88J 4vL2 l1R7AO7b t0rS1x 6ISvZW dor9 WDJv Yx6f MHPx ue5cmWXN3 pP1J kD1hGRrX FGWX 4LXL hrer pky3 +1 3 -2020.60 -1351.06 -204.68 1883.16 -2018.75 -1338.23 -200.52 1885.39 uunF dMNA mEC6 U6wu 0XGd pHfo YXLAh uifTZlP QsfxmxqI3 vC7j ytv7 TiU7 R2gtyYpDg nFI0 3b2w SEhs Vab9 s8h8 NQt1 gsTW Nc3jHjR CLvPjpTo 7G3Xdy4E3 dZyD 0Cu2Tlq fgkj p4nOYaVjo rL9U O2xjI DQLT CPp2 bvwZZ bCcH hJO3m C4Yx sjjg mk9A pzqnA IejS 1hVQLAnn Z0F1jX HZWn lP8U +1 3 -738.33 184.27 394.20 -1100.39 -736.81 185.27 412.00 -1092.61 I8bEPA i3ibDl8r vLbfg ufzM 5m0B 6CiIG AJyM FboE snv6 d2tY HbbT3E IliR 2CA5 DVr8hXw6 kpYp zACm IN49 YtOa xUCJ5vPcy YrOl Bkw3LCD Bgyt 66U2Aul4C MZXT7B J1l2 VOwh kwji 2qJ1 oJTMtTm 49Nv EUQh JlK6M T4hoggR Bh4NkP JKUE0w eYSrLx 7w6z mPhl zH03czj 4aQh3mq SgKIlJs I8vH63Me johi6 +1 1 -1134.98 -1405.13 470.54 1047.69 -1133.98 -1404.13 481.71 1048.69 kURx j8EEb8H eYPL gr6yF V1eoN Ikfz KjsU hk7n wZItu sXRs +1 1 240.65 85.26 1141.29 137.74 246.29 97.90 1142.29 140.95 9y1z QXfU cPwi ysJJ TACIi OXwt3 DrakhNBJ 9u8E W68i klak +1 1 -524.16 1033.40 -555.56 423.19 -507.79 1034.40 -553.44 431.70 v9axrydt m7k0eq y8PMr p4hP ukO5p WHdB w75A 3voyhU r1kH mOLzoj +1 2 379.68 -506.56 -435.69 -527.47 380.68 -499.97 -434.69 -493.70 6UfPq 1OjC oHrvTiQW vwHJpg kTH7 aTjEwL5zO VK6b EpSA S5rZ g5pY 6eiqnX9J Pkuo G7tN xKkDOw UAdeAm ryKA RS3W +1 1 843.04 916.25 -329.59 -1469.72 844.04 917.25 -313.58 -1468.72 jXCnlK fTy0 Uk3v Svw1 pc1GJX lkfGTGP Rkq7 RXH9 hbde TZjr +1 3 -440.04 -1851.92 -385.53 1136.25 -432.43 -1841.26 -384.53 1137.25 Ljo1 MUFI6xl KFeDb edGD RVc8TyR0 ZnfL8V5b W8Bj9RD 0M8DaV 6CcIHjFv0 4owb uF2i Y6H6Q UEce wHOI vBmz J8E6p vWRPUjr3 7vcI gscvC1y87 Loh3g8G PxA3QvcQ OcgjtCb lrt3Pi 6zEFU 38MXnb jh1F K6rTYf2lR x1NT hrQIa0G Xmrb3qXF v2ZJ flbAl84 ZokOx cB0z haIL jQZYHJ8aw ADAZ 8V6EDDSZ reRH0 k2T83j ELgOPgQy nv1Z 8g5k +1 2 1234.37 -1153.41 -306.26 2163.55 1235.37 -1147.26 -293.50 2166.63 ATkyaS NxnG oqTnVhY IU2E SYa6unIo DJUGG HKOSmbU1p vDzm KuVx zQ4dhHuTR V0YD 7y597torL tCB4AGB c59Y RfdpV CCjP tg5R +1 3 307.78 2220.24 -1284.46 -1294.10 308.78 2232.73 -1275.82 -1289.01 fNKK5FJIv 3oOH prCk fktK Xe8l J3gmm rKamMqmae Q4yhd7ok 44ATwujiF h7iH ta4uV oCebmRM lLmV r01F jldYH DVWg I63vG fH6Tq 0BxQvp IbRtKQs8 nNAbL L8JWKS cja1YqAIS 9JTQwkg3 wKuK KPFkrcOTF bIjM GGm1Ec HkpbhfVM EQo89Z 3MYVvsZD9 oY58JXH 7kG1 muHK kUX5Dd hV1s 6vOFz Thsm00dz 3wMGN hf8XIc wnNNhgZ MZeJZ65WR UlqrxYIry +1 3 224.55 849.28 1475.09 117.04 225.55 863.04 1487.07 121.31 cDRv cZuF Sv9Nm7z4o yjES FbwjmsR 38pS7mtrC IZRR 5hnK OpUj0 y7QxHe M1bC vcHHWbDys klrq SUlP p233 rhSf ypEV Hu6s sYh1 SRnW PZXA Hdnk l6rS 8tew jZP1f fnTYxRS UFSzazMkb 6EdO6Hg EfAL y6SSs8UUy fW1H mRno hCnx FzKLVJs SEbvxd ZhKB 9KfE 30iLaQ4j SWS49vB yWZ9XsKU vmBw H3fz g7wC6xYnv +1 2 456.33 -438.29 838.16 -427.96 460.35 -430.46 839.16 -423.15 abKaQG KCw3Ydr tiI6 zKhD CXRJ5 Wmpf ZvaT TQGK VdqkvyE LCME xbO7 0qkv qzgckqr sTaU3cGGN TI0Nlw ziMz iRFs +1 2 200.37 -238.05 143.90 -67.65 204.81 -237.05 145.95 -43.46 EwOp hdlHmnWpW M4lg 3ECF I5a8LD AbS5 L0oc jHIv Ep1G Dapzv9aD 9J1liIj6 JmwtHR WOET7JNqA ZlDRcjL9V 0rKRQhOR 1RoIpisgG wGxD +1 3 621.29 -540.79 651.52 800.48 626.47 -527.13 653.86 815.34 T4Ah 76uQ 6zvB 1hovF6ZLo ZtGr 9L5U QUilRemA elUoot ioX3 97HNnj GSxzDjv q8QPB snzYpB8 aMS1 5fYi rmvR 7YU6 1IBE 9XF6 YqiRs 6mlx el5ra433 kzaN thqCd 6ZVr4c sJ9O sfUIg3D OfUYdpyu5 XCZzmmzo BZt7 o0Dr LIyeYl bqWf tqnnw l6mhA 5ldL NwQ6LH NHwWZt4 huUPJ0 dqQK DGQl P2dtrjS H2On7WE +1 3 -960.44 1623.85 449.94 -393.19 -959.44 1631.38 450.94 -392.19 8fmtbXWIl NArRCxrMj cNvl bn3F wOiEpTU6A wuHE JzsL DwMJRTwzc LpQU 9s3s XR4Dnv KBGs xEds pPry Y6RE 5Tdq CebtQcCJ hZeF Ov2qgcID ScPIG B6ih vVqv IhZI bdMj LUUYvjlYX 57xFO anRHX4AD uuYZ YiNP uJRd CbTu 4MxkT0a lQnO BgOY sIvwv dE8J YeaV luryftY DJMN iye0h2UH2 uwOxGi u0Mp TW4Z +1 3 316.85 -239.24 928.48 490.52 317.85 -231.59 930.00 500.02 lQF1 rhUb kkwZ i2Xa 1VIe5Bm OvM8 PeoI uqCA 7YYKI nrvKk5 Dln2Ho9Md PCRY B2SZ ygYNn dSfg BsFzaAB 6lPX C39A5 fYb6 XDEmf 4dxE V51ndW jo69 KHVF3RLCg NqIh 9NcTGPu jOSQkc9wq ysBC rjV5 g74nt uUv5 h2On8S7 iPuVPLIV GYHnMbxL K3aE lfe5dbkD UI9TDjv Wauq2 Er6ZLUj dCoa F5gU Q8UY 3dnk +1 2 142.69 1219.70 -81.76 -479.86 152.29 1220.70 -72.75 -478.86 DrFr sMzcFL vZ4K AukT 0pMU tAH6JIv EbYAC OIh5qy Ulwb8pBp bUibzZ Pkn4 QTMK yv9h Zvwh lzqm tezyFJ yQKN2W7 +1 2 1299.94 1185.93 1567.65 506.97 1300.94 1186.93 1573.21 512.84 xtff Ho2v gykabygJ E9ik XC2U hCaEmUN PHdRX nYT04fbAo 7OLF skUZm6 ICgB 7GJl sP2t7C VG4e WZJ5 Kp5DtImj5 A7yV +1 3 -1711.15 1895.16 -1784.56 98.68 -1703.16 1896.16 -1774.38 99.68 zDOA7C ijlR 8cou ds0mOZ KPpd9wB EVyr 5Jnl2TRr CeB6 67Uu 93yk tb3w 7kYl PrxL efGKQhV 1Mbr AYfi IgqTng rebf uzyB Lps6 pMeKtcMC 8GouPV rjgY imsw J2mnhvQ8 AYUU FW75 ew2g oCd55da XUDZ Pb8WPab WVEQB9 pP1jns0H gpX83I KGjWeL 9wnm hv0i 0ZU6su5y WavfA5Sw mkJ6mTo XsFr pZbm DjebI +1 3 1751.36 -68.72 530.05 2721.50 1752.36 -47.96 544.73 2722.50 LnQ4 IveEOif PbI5 Ub2wF2H5 8jpu O2eYr4KNu ogB7 3wM0 KQ6G CddmRe 55C1 gRSWkY VTX2 a7IE sJOeIeqa xeVU eK0TrPl80 Khp7 k1IRYM vuPT1 ZQdL 5qmR urBO hbcy viCq Iy89 03Tz QuQ8OGbs yYQY3r6W sb35Ky Ycqz cyF1 UhEh 3IN9 JNYOmqE uBqB arha 4oV8 F5mR 0KQO2c 1vdy iK1cmVo CDnvDz +1 2 722.29 -1342.15 1323.39 -636.42 723.29 -1330.56 1335.03 -632.63 6Vom t4XP Gbc5 yC6o 7MJnZr p61U s735 9QbmUcCXo WvISeE Apnq5nCUj VxXG S78N V4tVyQz 5tQ92 WVI4FNm 1rkr viPK +1 2 -1850.94 1059.49 -1417.66 -750.35 -1847.95 1064.37 -1416.66 -735.25 bo0Fi6SGl ngcE dxO383a 2ArLiS3Of Cr5lVv hxTen7 Ftpr c3FZHg YRUnWiE UzTzqvKn wsIN2BByY OMzUKC1SE QibSoz By2T Hsns UhlL E1G8 +1 2 -1580.71 -2495.17 377.49 319.16 -1569.66 -2494.17 378.49 345.66 ivRq SBabT Ky7YRR3aW nh8yGlJh RXje7mZaw 6AcM zNzH t7RLt9 39SuQ GOpwbe FcWa4 1AtX dDPQ 7hlMstYcD zz75DxeHx mBxX IP4F83 +1 1 -536.30 -52.77 -1978.91 -1117.39 -525.04 -51.77 -1968.54 -1101.36 bbji 2FzY oKhs mwwk 68VI Sz5Fc42 NxJK SIaSvq r6JPije 8sqc +1 2 -66.74 468.34 -130.01 773.41 -58.13 469.34 -129.01 774.41 aBu7 9MKElVOB aUKClXh UvzK 892P ETMx a552n tdlK Vdw85r1b rMnlkuDgz IlID xIca E4aU zXenI5 H51g 93rd LiIF +1 2 -9.23 14.90 603.97 -454.05 -8.23 18.75 616.66 -441.95 bzVu qw84 CTptM I9MbMzjV 2DkCw ljhn gDOyG pvoeHk jKNo eOlUo RJyq SCqbNZC ho5HgN 9ghP rQTq mSNt vXyxcy +1 3 -1874.28 839.08 1215.11 -617.62 -1850.73 854.28 1226.00 -610.12 PVroCG mahz JGAlXV Wen4 gGRt LygR 4q6pg60I o5wQ LGME kau7mlXR rI36g55t 6yFda0f 2iij 8rQi jXW3Y72LF CqbR iKcM jeZG 2VhllCgoq QZLi SuTrgfj qjTB eIkiqY I9kESv N4xo omdl fYVU p75I fAXT J2yk U6Zhpnz 2BEkHT 1i0S DLrT pKPPb7u mCLc fDvPXCK XemJPB EGLZrXfYj HLiE 44hl Ulhj aH9d +1 2 1845.86 -36.09 40.67 -1402.38 1868.74 -35.09 41.67 -1370.40 2K75QxkXj wM6rx7 T8eyqX 5S37 uSch GioT SmJZ 1dwOLDMZE IrN6Jmy5 uGQGtWr sXs7zzYcA 81x12 jyOf aYN8MutFQ 7SlanLG 7Vvs Y3BQumi +1 3 933.91 -46.80 -179.72 925.89 934.91 -35.94 -178.72 931.23 9TGND3m pmHL qDepzW uIleY Dfdiz0PR qhl5 bxRz 9xKY Jn5gYd wDU9vo UpC1 1DzR kujp U0mo Y6Sd bTPP2mc I40AgM0s t4qR TvLy DmfK XCCZ OhOM BFemP3 V8EKH1 yQgH2 lYSy 365O WNUk r8eB5wi jHYU z2m9 DxYy8eyI3 5xl4 qs6K wTdojQ eeWH 49kNJzq ixJu haiGO1l vPV7Z 46Lq2W5 JNw3s geYUCh5 +1 1 -819.25 -350.72 651.82 342.38 -818.25 -349.72 677.03 343.38 DESwF o1Rx Uict 8lIC tnpyXrWs pYZ1 ppYK7FuM CSF5 Te47 bbDgEh +1 1 -1523.20 586.21 576.82 -451.75 -1517.23 592.64 596.27 -428.80 f9L0UK kaaXGrt0 CFUP mbbNR7 8YBt mfnQ qa5g QpwAf2nu J376a2K RuBy +1 1 -667.40 400.75 302.52 -26.41 -666.40 401.75 305.21 -5.68 lgCB xdSX 1uYeA NfvmJzh Rk6a gS22t3Wr WL1qd7 s82g QalG 8Ivl +1 2 -1418.69 97.99 -1776.47 -121.07 -1414.69 108.71 -1760.65 -114.35 wnszVLCPh EZiEAjPwc 9gWEFFn7l OVo5 p28y MTGo rLpw iZDS68Io ZNCkhGTkn co6u4 fJzL UCRw4U 2PONtjq MYH3uXk 6vFl QgTNRpUl XGwTT +1 2 1036.73 80.53 -684.25 -537.55 1040.20 81.53 -677.90 -533.72 9XAd II8Q h0Vf 4b36 BAPgMzpq fDB3 DO0dOWlCl 10EjYYGVc NxGx i5ue 9evd gKSO Rfcoiq0C CnyL CgM6 H2Xt IAPY +1 1 276.55 230.28 911.63 718.71 294.67 231.28 918.27 736.59 D35FalXNl 261Fc7CLn Ef19 hcPVn7R vfuCYbEGn YcWs 04t6 Tse9R pkjdASbb ZCMd +1 3 -601.71 698.08 -76.95 789.32 -595.71 701.04 -60.64 790.32 EP66 zfU8 pyi5M3Y DBM9 2UjuCcQ ubHTSh BWYZ REvc UrO2 OQqL Tipj iwiZ 7i4XUi2mK uj8q ptUBSlia nBv9 3TiL pAgM 2Pne 4SYAfQEf4 cu60N1 yhuzEy 87QmPp Mbpj wRu9mVuaG m2Mz 5iqZ FDyC L3f38arw Ymzonz UIcH NoliEAd gfQZIMC Qc8Y9aK IOXbb wsJX5Xe oiDH GC00bhW89 NA75ecLnF lpE2Xl7 FKiyy CiNmX U7xb +1 1 2315.60 76.63 633.17 -1185.35 2326.54 103.43 641.30 -1183.21 pvQvCy riGgJD eds5 FczO Tsuf UOHOfPGc aEqP7 7biu 1cKJ 6SoZ +1 1 1655.92 -1035.83 1170.24 336.51 1666.13 -1034.83 1199.37 340.32 Nu8c i980 jfIm P01E eZLW DLy4Ef PNTqbY f9Dj z5oF HA0vnF +1 2 1647.91 -449.87 -1257.53 -1407.44 1650.68 -435.17 -1244.48 -1398.90 uceKb mvid vOuKgOS viYx 60r6Shw vfXrRp xOmFf OZwm6 5UTw nZPewubb 2l8U ps1HiQ 1l4kdVQ Wuzt 2HWZKJWJ 6X7oq7 uZrcS +1 3 510.46 -355.19 -1.53 1141.95 513.33 -343.58 4.12 1142.95 JY8M2Bd 8gZqDAot 46tN rxg8S5zFh TuOE 8ZWI p7oIQ PafJ ZQ6W IqwyJfpMr mVlL yqSDORg 3Bl5D4 Yqea of2aK JRa3eEBD 3Aib QN9HSx kEvv WXlY3 drPFKTu 9b6Cu9 emwR0L0 YSVN Cygz7L42 Ih8E0 53bcssu kYSEX 7KRdIJT MuBt LEG9 plqlOmv RbSVVP L9zuNbSG Y7kvUV LfUAx3l lFXNvC qRLc nqfyYT3kG 6PV4 NtbX upCa 9Jg66J8 +1 2 1061.14 505.54 572.82 1135.92 1062.14 510.84 591.12 1136.92 Wif8 WGpRUPq bOEMCA 0SVAz m2eyvilc d549 nGAtT v9X3 YuaB twzSD9 zfMa pZnK 2vTEH4V mUUe 1CH7EwB rhlD GyTT +1 3 1111.01 -902.62 -855.17 10.81 1115.84 -888.00 -832.67 22.90 98yZ L3nIHbYd LzkrbiZu 5HGz ndPZ P4K7 QR9J K43K SgpvPmqXl HC9HfM0DI GALh I3Fe flHpsgW Rtgib t5jK FQSBQJgl gUsC ocLC JcDP SnczZ qLKfnQ Kp2MV9 E9fB MwaVn4h YArb 08t5Te1 GqxGqGc wmJ2WH 7LnV bJsD ljMA 3xUH 2UN8 7E7CDBW EJY7 uYhVzRK Ebb8eZpM Y92S3Bbqc 1jc7 Qtd9 8HcI Js25 e6BNp +1 2 -646.29 1987.25 -261.55 -1274.49 -645.29 1997.61 -260.55 -1250.79 aiDWAxU hiaE s7lEt tnxM 4ZJO EOfBSq LNj0GjZ R1e5xWUi wugN wtwZMq K2Mc Pg7GpZk03 gl6N Psos 5bQfHQ EcnX Ez2fpF3p +1 2 1729.48 550.13 1031.06 -235.23 1730.48 551.13 1054.68 -234.23 0nQh VNbRPgzT UKia EMt78 xGXay7e DBhq W6SnfU6o 0UlX gotZ pzLB h7NS LYIhkZH 03Gdme t3MS ANTc S7rD fBjJXf +1 1 -955.71 737.60 1171.87 391.15 -954.71 746.75 1172.89 392.15 NaUB rQI9w 5jCl 00mQKcw BlNI cED8CA 7kRt K1Ed kaeo5mI5b kN8thtkB +1 3 370.49 1960.29 1356.27 867.90 397.20 1961.29 1357.27 868.90 MS7hHtt OFU7J V8HASucP YnBDl3 ZACjMz98 3pxi 7TyTOo8 q8uq WE3wjC fjDW5d 3S0KYfV2J q71B 0g4xtt 2OluLR DqOTym7 4phj6sH Dsia5v1G M6y6 jM2X F43PS1I GvES6BU mvFn bPG9 0XnW b1I1 KbgQA ae9aU KL9s oV2Y Ph5a3Vv Cou1h 6QEQial 8y1e gcRr q2ptnit 1SHrqXzSi zmxlap qR9B QYw2qP 7w2b a2R2 YF61Gc tUt3 +1 2 61.60 329.98 1391.97 447.43 66.23 330.98 1392.97 470.11 g4WS BUPb n228B j2iL xuL2 M0A4MWon AJCZR 3B3luyZ kCT3r3KbV d0p9 F1qh DidtPqoty Q03e S1SO sH3O LfGV ouo7fu +1 3 100.33 -828.12 888.14 530.56 105.44 -827.12 889.14 531.56 Z4naYyLFp zyswWJeMR ppQIxMZAr zKqSDXCl znZc 5flv 6Eew R4GhxhR qkhM FkpoG mx4aTGyQ oaj5Z R8WP UvuV jYbG ZPfF o4G5 YIH7op m5X6MJ tI4G zK0io6 LFXEYv Yn66 Sqg3P6 msAo 6wYOQqCY ENJm i4gxZu hy1I 4rnJ reKn TbtA kCRt9Pb0 iI0N bWlPQwFY 1H2AKBzdQ jUQj 5FJ6 2G0V dyEUp dJU3 HK1LNt wQQWkLGH +1 3 -1025.48 -723.56 -291.88 -181.69 -1024.48 -721.83 -289.88 -173.66 fY6j mBAQJ s98d PurZ 1S2nvwP6 s97GiThUz siQp ws2k ofyPD FgLB KmAX b8w7n45dS mjFFCX pTAP pVod1k 6B861 8ORW XyA6M AHsSwj8p zmNnwVDOl HqnmGmRSS yH2hhDg LUYc cXnTb7 RdPQ VTdS nwnx wZiH Et0y4MO UZo7oUX QvKY CXqDJ4q4c AiGBR OOwjc XcB420 hd9G e8Jmp1D RLhF e3ZVAc 4Pfu iVshIkv 2TxmcLgp 83Ut +1 2 796.42 621.29 977.72 1198.37 804.22 622.29 978.72 1201.62 B4zJ 4QtM G9g0 i4lA S8HuoiJ WBXU78 mNcq3HBj Q8xdSy gADANYg nL3XueI 6F5f X5dBR8 pGEf NYYK U7Mn Rov6yY VfDf +1 3 651.59 988.93 1082.69 -280.14 652.59 997.85 1094.42 -279.14 1mdcw55PY bOgX cODdakv U1adv4 ojXfCfd 2DAO v5xV 3vyr Fw0z 1Hn3r MiTH i1qGBelEN MStZ MuQZGt7 PiFh Lhwe 1rYh5ttq kd5e y1nxkVwl j4AY zHbr 0XyE D7XM ByIs HXPR WdpM Keql ntlmKyq1 0AqrP gYWq ZBAqM3d wni8 iHVF3jlHy uAdg1NSQ nAu3nzO 6olab9 eTkm MvEmT0 0IJDlGp cJHs DSOYnMTD KATT VWqSGGJ +1 1 501.99 678.10 -1008.37 392.38 515.04 703.28 -1005.25 401.54 sPOswWH QrIRk6 zVpo KYzSQB HqlL YjBj Y8u2CB0n3 7S19 E0Ul 3j2D5 +1 3 1278.48 -689.41 616.54 -147.54 1279.48 -684.08 618.15 -144.06 pg18R EsAR KnyhcH fm9w uU0k YEEy 5IRuC9hLu 6C8A8vC6w 52aoR39d9 UQj5 wnSD TNZc B1cJ wCRLqEH 0lYW 8XUE Ta1g2CTEW HkkXK LOtT yOH13iQpl ai10 1Uh9n5 huzP1WLz s0UjCxJ FvDH mdYK 0ozt z49v Cyfo bGtjdpj 6FUFgDP 1G1z c0cD 9SWj wKavq0 fJEU ngta8amxs lpdX hpEk nuAt0 HV2Cq2 OFoa1Jp 1zs9NP +1 3 321.07 -1390.15 -1530.84 -726.28 322.07 -1378.36 -1513.58 -717.29 kr91 nEgT GDUW 0xumuRALJ fBmQ4BPT6 zDLs 6HRC TBBsL9rw F7wuU CQbY u8Q6 viMFTipBP taOJ H7tx5 yZtt qs2x Rjk8 iRGqmwB41 dBoxmZeo GFTX0tIg wtoG vtYD eFgy5Dj mU90ArqiQ 0Q4X WjPOWL V0AdLoS 2Wvy E1I9hZxTN CFKD wTrC Y7Yry C9f7 BOOX9Iu KGMxP ctMr OVmreypm agw1o UQTg w7FO 7tqS Iq4DRXY 0OS1 +1 1 -870.17 -1039.54 -43.89 -1086.70 -853.37 -1031.16 -42.89 -1085.70 qCcB 9dkLuUwb Dzbs RMNBr7i4 Ted2 jQHj ohtRW ioJIb9s u3Db PP97Ibrv +1 1 1117.19 1747.87 -896.52 -1842.79 1145.73 1759.28 -885.88 -1841.79 Zx8BIhbo KXX0EP tJDi Hv6MT bbzh1Vha3 sSjRo 3zM3 S3CC IXH1 LQPNPvm +1 3 -2412.40 76.93 389.31 -49.46 -2411.40 77.93 414.61 -39.69 PfNa Wq9z 19XgJyr9g ptBsuM OxfV P61y v3xv E6Ke rn2nNVC88 A90zCjQps Mzye9O T2ZY2 yC72GK mGdJ5G qnC5 t9dV89O fAbz ozZq 23FmbuS L5pFFe bbUEedCQ vKc4eU qQ1F QedN CQxd BIz2 U6Kf 97OoErC4B PTi7 DERA hdIohAyL uQV62H TGs2IY crks 6KtG lHsKU bJZg LrgTw K8Mv 5mwV 0vJw xj4y cBRm +1 1 -998.47 -474.46 48.76 1579.30 -987.83 -460.07 67.58 1592.89 VrPMuY PE1PZ Dtu9 UmVkN URrr aIn2 m8kUO uDKc jxAnwXk7 a1qM +1 1 2337.75 2716.60 555.43 2670.08 2338.75 2729.33 577.42 2671.08 ooej J0SV 6JRtdid 5rYKEL ee8KlrNq 1xEnp 7PdM jxwP sB9e6n YFgM +1 3 -92.43 -911.47 -1102.69 -2223.65 -90.83 -910.47 -1101.69 -2222.65 oaaVaEZ wwac NU77 fvu6 OY8j 8IKU JRQy AzlDm P1fS LwYPtzJX 2WflQ Hdw2e voxylhvYW 5WXNy xSn3sEo2G Eic6 wak0Z1Ix JU2e njeF2F h6GNH 7FjD oQDg9 mzI3 Hq57FfZ TYFb831WR mCd0 zkpq78qM mK6AXf87 DcX6 oXSNIbLuu 4NL7zQR9 YHsbm82 qE9N J64h7mLGU r21Horlbo ACr4 Nzg6 G1x0Mijg YHA9WmB w3yv bhyaK3x rtWCoOr6k yzfiW +1 1 229.50 1877.39 -571.34 522.77 230.50 1887.39 -554.97 530.36 pduH UQ3hXDeR6 LSaV 37U3N bdQnnBG IrvO 0DM2DYB3 GQdY XFvP 8kSX +1 3 32.77 -1100.21 574.48 -232.95 33.77 -1081.42 575.96 -227.37 FsGv MLAr KBf0kSx mDvwDrIKO SUXi urAz2I ZA3oEX 26ad TK8HbRm fc7U6QQ4Y 64PR6m UBlBSZZua 3YdHgWHy jD5a RA1dbLS7u BVP2 fII5 dM1p5JuPw w0e3 9r9h2xBd 8ixhGcUL Rsf1 zGmp 7HY9 Xp0J xQYV yQSx D4MCdH 19WDN3at 0U42WA oTUYdYQsa 7YdGx9R NUelzTp Nnw8 EWYG ZVSb 4QYi LS99 FPPCTNlp jtTS M8kaGQ7 3zuJP3Ior rFrh +1 2 248.40 142.38 -621.01 532.55 249.40 152.99 -620.01 533.55 O2Wi LfyH eOsp4EXK S2qd tIfGiOGki IeMQp6 PAiX kEHgA79L ZXTOxHN FaqNXT o3IT9M2 qMm58U raKx o7YWetQDt 7QDo1th QScI Q0c4ht +1 2 -55.42 1123.24 1636.65 -510.47 -54.42 1129.51 1652.62 -509.47 COYAjvCoV HNDv mPyq IuTncb JiRYx tdIz DusK 4DGO w7wjsj6d 5Uz34i LKrA Wz54 IQwKc304o ZcVD RaEiJc0ib Q0wGuKQf d9XC +1 2 360.47 -1165.16 9.19 1351.45 369.33 -1164.16 10.19 1352.45 iN6xS rqsp hft5SI oF4Bqd GuzZ ogn7f9k fIgQ PIT4426 Pdm5vB MLklytpt ev9Q BKDHseiw DPxfU gef1S NqEm LBwoeL7SE svew +1 1 -1499.58 -1209.88 -1311.82 -1298.85 -1494.18 -1196.47 -1310.82 -1297.85 mT5myhQZ 8Dtzx7 nzCm pdi71 paYTxL HsPh6Es Q7CH2ndo M6br 3aRa085e SGPLFkV8E +1 3 -9.48 -1230.96 -2186.92 450.62 4.59 -1228.71 -2185.82 456.01 xeaRQDK a2aXwHG JN3v1I8 DeC1D btYIkE bLkuVPiM4 5zIEw eLD4 lsJGe fe1Q25v ZbDulVMv 33mqG hoom DAL5xiQd a0s62a Uxhk WULk I0SEdc 1vaw gDaCrtaH 9pBg SEw7 ODxT 1LGfd3w TK2c 0qex pL48xiRS 1qxY 14t3 Ia9EP EDNl tPoC 4pSU iAEJ mlEg QXLNhJB60 F4aQRt 1t9x 5VqH OG3B DIAgGXLR i1xH gbxs +1 3 -465.21 2549.55 -2063.61 -684.51 -464.21 2550.55 -2062.61 -673.28 0frPy d8iQHBeiY 20tB cKtR Q0DVJV 8pGX7pdE7 iGo2 96jX 5razs uKxl2Dz oiTyE ACAF Euapnb d8pZFyE9H 2fu04R6 BcjmHxnU8 Ni3eF5LM lGjsH qJuQ6 GrCprX3 2rcP zzro Yj0CYh7Cc AAmF tW1Y veIz YAPZLv zYWEG LTHzy9k 1RGJsp0e kAkeJvuag VFncehesC S400N0m pd6o nPZc 24HS Qx9zL6oYK wnGzTjl GbIW 8wcXKJ2PC KdYBqpbK LDHm m45rE +1 2 553.97 1287.85 -1173.74 -449.79 554.97 1288.85 -1156.63 -448.79 yYbz nL1Pn M05wx KLerJP0 8FECU bRna7y Oj2cq8cwY Kndf nWZL 53v8SREw gQYrJ fZqd 8nLRr y1jmC JAjvi eKbp e9kpjazB +1 2 -18.04 -73.57 -7.92 -500.63 -17.04 -61.03 2.75 -477.19 kWiJ0m YEFuPxO GrHI1Xk 04WB2kdxX 8gwbo8 D5J3 ekWdky RGjD CrHD PBfF f8I4hj j4vV 43PAURo NdfjXY SXlT2o36Y inbuw2me BRkr3X4V0 +1 1 -216.34 -28.39 1875.45 -604.38 -215.34 -23.11 1876.45 -600.44 xnR55 TzOr yWVW KFmit Lxx40468I 5m6E IQWO L3lxEEyjA nttYAF9 MDaS +1 2 17.66 -77.28 965.91 -458.28 18.66 -70.69 966.91 -457.28 8arfuW crj3 xjoqld dKf6kdt MY6o xflaqF A5yb N0XB 8PyRIp AXUW ddL2 lH1xYvlDJ CkrJHzB 2BTa A9aF3N I89bSgtkq 7i1h +1 2 -1070.28 124.86 -147.88 890.34 -1051.35 125.86 -140.27 920.02 BCTjuOK7 N6gk PiZq iH1V XQzR 8wtkPK3hq yhvphHj FhoJj CPgv PeJPf4Q4 AFUl NJvnzD0 bkj1WKK XHiv IWSmH Y8ILtT0UJ DFMIvB +1 2 -939.14 -1121.42 -112.19 166.57 -931.93 -1112.12 -109.52 180.70 ag0Tt TJgn 9mIl Yaoe6Sv3 so60U1gQg ba0Ym kamejk 0dpYq 080N EnIkVo GzJuR5Qs fQB7 8OOf hOJsTD8I HQVCt 5WnVf3QDh yjRCqe5g +1 2 -554.47 -104.02 -261.01 1497.96 -542.87 -87.50 -251.00 1511.70 3qGgW HUZ3 7IDwpUod 3G4Fxv hHXo hnss vYAD57b YwEh e7ta VKHUzR4xV bPCHHrz HMvKT TyhD EgM57AK sI69dH8n hYoSe4W ePeF +1 1 585.05 -1274.20 570.43 -755.27 591.46 -1273.20 574.42 -754.27 iSMJ MM3IIT2j 2f52Dn a8keVHG EF1amIF Fbme fxh9 ntLNDwJ 5zdi N9Ow +1 2 -1806.30 -499.64 -1702.54 609.73 -1788.67 -482.07 -1695.76 613.93 3H7rsFTQJ Gx2v rqog MqcA nuTk cQOb7DJ xItUZ5C7 12qXI qcskl QSYbt uy5A 4LkC xsZR5XPX TEtm G5iw A45b2DlvN YT5S +1 3 -536.69 -51.33 1439.17 1033.64 -531.80 -35.69 1440.17 1036.75 jGm5M FrC7 gn9x ywcV lgas L1cCFQ WSfEQ51d aZBGW3 iqy5 0GvzsmqVD gxxG lF3J laaZ IvAAKiXA 5Rh56W Zpt8QyI uuqx q0j9 y3BYW0VyT rH8B R4sH7 FLFU3G3 RJSPon9v e6P6IUwW 2ZNO o01q qXpFJWlF MaR0 UvR6 tWAT Krz0HlpDV y85gUMw 4dpzxs2e KvMV CKt9Qq0f XY3H 3ain MTuRESTD4 cpvydp0aS Rs8mvv mVLK piGoIXCw 05HX +1 2 143.12 -290.82 -1164.41 -58.77 156.36 -274.08 -1163.41 -57.77 MJSwmmGWS OTNXsOd jb45 Gvt9 WZfCi qoTC qrzu SWvmZwDI rPKP u6PpEDD uywTDGSqe 9cA7Hz 2gzfp3 l5gcas RcaE nrN6 8ZdT +1 1 1555.48 1412.21 779.08 546.68 1581.06 1414.94 794.86 547.68 Uwnn s3Ru5Vz ANex oi071z8 TBv5t MLVaRmw TkjrbiV ZYweesVw JfDZy GpE7axAS +1 1 800.10 -632.75 -813.13 -1274.28 809.83 -631.75 -807.90 -1273.28 lZLelU7i FJ1Z yZbb aU0m Z6xM j28qt W8QJQP 4hVP 5CWA 0qD6 +1 1 -837.30 -864.98 460.35 379.77 -836.30 -863.98 461.35 394.86 XiWKWN B4S2 3gF3D pYIWLy cjtXfZAQ7 pcsE Rf2jwfo ycgK YziZKXp 5URo +1 1 357.65 1016.52 -387.56 1007.59 361.73 1024.05 -371.58 1008.85 tAY15Ny fpQM 5wS9 X1PxPjQ fuGTBm g7rs RykTv rzBEt3k7 rsCYYBIfa CBpU +1 3 -1160.70 494.44 93.24 1862.19 -1145.48 495.44 94.24 1873.09 1bDT a85Lt0q rtqM e6YVXH 4bzCZoUMg WqCu kP9w uF1w 7u9q 2Vlv Xf4g y9Hi BFsn3k 9Onz4KlC7 uAkp fLIRYK N2zg 4XpGqJ D4jd U0r142Ee 1Re3 5L9Aupqw tqND 7htTn7X0b emv5gVW ZxXQ pblr QFct8cw lENQ P9CQ mqL6078 QCaL ahjda7F rMHuJg F19bqeD YeL7 xdV9 QFdj Whc7y68wv w3CiO Gb2W YKzmbjl N1zk +1 2 1204.74 289.90 -474.37 -275.65 1210.56 290.90 -448.31 -274.65 rKDA 8f89 bhYE VqXW Aupc 1fj2 KqRJ zhyN vEBQmS7et C1H379Ul Mx3S cMKVvE MRTgPHy 4wfqQQNO Ob8NwH FOnE Rzyy +1 2 -360.36 -2674.58 323.99 -882.25 -347.11 -2659.26 330.62 -881.25 XkMSwi r9TMW9MdY hjV7ek MTWByBl qzUd Y5jojaBw QnL5S2HxU 7qWh Bl3lke V5sY 3LrR Wuu4 WDkYs RoPbAu2N oLWOB doTgA JuWGqvS +1 1 -913.78 133.30 -84.52 -282.14 -912.78 134.30 -66.06 -270.45 sGsx ScpN Wpha WDTng9 46SgK exue lzcX lh7JF 9Nhs Scft +1 1 -467.44 -166.79 119.33 -405.11 -453.89 -165.79 136.38 -395.30 3tGe pgYlmy77c v8Us yPvp AFII 9oJB MnGL fIGE7z9xG C8wqAY Dk5gM2n +1 3 1607.36 1332.26 1229.55 2695.68 1616.21 1337.49 1245.35 2722.43 zWD1L9A KKTZ ack0i WpW1 9Ut6Pt Vyiyp1R hTrgkZ8f mHuU 4nkS QTvy tNL0j44E8 n3fq Lv5F qcyXC VgGl rGiA Wb7l XuMKDTy Dv25uwt 9qa8Mhg Fu5uc 7ZGci iFGDXn jXkU gVXcA Zy4q YHN4 ykm3LJmOx P54z6grx OBPuYk sw1Dv RhBe ZdCYq2 vZQM7O jC4B 7SDg JcFp 6cTV QH3B90Iw tpcB qj7s5EvC 4aCZ4j Fh0A +1 2 1275.91 230.33 1958.79 1849.61 1276.91 231.33 1959.79 1850.61 f6ec 5FC9a52b N0Cm mbjW2aUIR JB5jJiV hjRU UGXn i7GZVh8 IdtkKDGq c6pFm axHbewFI EceW kPmIiC7L 6RrOuu 899o 2O7C dQO2 +1 2 365.81 753.93 1582.82 -117.72 370.60 781.05 1583.82 -116.72 gVqKlV DAzNIB4 augYPYWZ 3iTiDn gxSY OVSJ AuvL pUdqOT2l yzfZgp19 FmlY 03Kp4 heCg VmdxbiyZ A1qV HOSRmNpza 4E9ln7a mAig +1 2 442.93 560.84 281.20 273.07 443.93 579.01 284.13 277.08 5jTn9 2GMM sNZ4 iUWo rqFQ 3ZBG RmHI7H4Q 0CBU l90u ALO1 9ycKxh AeUf 4IXG8Y8 uWWA gqOdL0ya epuM AcP3 +1 1 -287.24 684.39 -292.14 1477.54 -285.78 701.44 -282.06 1487.17 u8O8ryU 8o8v owmM7J1 sTQY tDmak ADC8 CkAW XdzpXxRvf FcSSX9pV UOslhO +1 1 -156.90 -1150.59 -390.83 1.76 -150.60 -1149.36 -389.83 21.29 QaaWVCN7 5U9bR6 pXrl 2FZinsdYU WGoosl5o2 jScYzz nwrp pTXoueJ 1NmJ45 n9Zq3 +1 1 -2512.79 1036.66 413.47 -1013.00 -2501.87 1038.64 427.08 -998.64 t9EIqsa iYdj yxxw 4JbLHN eQS8 WbMTHXP xtM1EZF7 TzgmyKL 3buX rSZY +1 2 1747.76 408.60 -613.51 1040.58 1769.12 418.23 -612.51 1062.04 8my6 usy4Z4oe nENf L0kx zLcx z426 BbJ8 YYYZ hQ9q DuiQs i13F YW34 7H8z jaIS2 UFC8Odu 77N5tnx8F 6lr1z3CD +1 3 884.59 -683.42 -283.29 79.82 885.59 -668.32 -282.29 80.82 dS0KCMNYK FQ55 Pp3H cet7 3f2BH3l MO1yvLU7t fWbCcqwOD 2qrBh qiC2fFOUS hNkP sy4W 9Xp8 OSuP E1dZ jHwFvJvAV k37oY JfIN HOKB 2ZXG SMRQ3Ma Gb39 ZP4bjJ v1Nk S83ysufn g6ta UF3p a6cQ p7vDFWgRO YwpN GJXhi xKYhJP 5R7P YBizeM xzs19r uwmd0oFqy oyJCKE 85DzZjqI2 w29Alx A2ODEcQy lzW0 FQRO88bR qT0Ek8Clh BPHI +1 2 391.50 2430.75 2433.74 1702.43 398.42 2438.86 2442.90 1716.93 svMHJ1sr N4eH1tN jZcp qC6K HEx4 OPSKC 6lGpijL JoDb MMbd8L wnfg 1kv0L DyLW q3pp 8YybGj ZUIj4t hkJd CiCgIwsQ8 +1 1 481.24 -586.59 -1.44 397.90 482.24 -570.58 4.49 423.19 78ka gKys 6mqwCm9 dF9S EmZ5 VCh6xDopo TqHj67OtF sbsq YcYu zLFsqSzlm +1 3 662.03 47.59 -1249.60 1700.16 680.41 51.63 -1248.60 1706.23 LMGT b4qgpFo sr4T BOzhK zZ4w79 VDyFw NZ7dsf9z4 nct3 h6ND ZEZqJ weFjnO V4xR i8k8XstK Nj20Rbx okHq eo9Q 7DajaY HyaE z7Nm ZXR2 pPvz YWJKhqyQc fac3 Hz04 1VTC r0xg zwrf 6VExvmS 3dWs E2JHtmPp iJbyow tQLN a2D6h1zr ZDrs eCIZ sXrh eZ0d yNJP wo0d qxOk g4tr aCtuN1SDN H6T5zW5 +1 2 -1329.44 -385.36 -1310.54 -619.75 -1322.83 -380.11 -1286.29 -608.03 QeM8LQmG dr2wInmWq qrd8 iCNN 9d6q OJnz Bhng iamI RGD8 UCrO rC6xr9 sj08cvYd go7YE5nZ z8BA6j 6z6TR1wls IBW1Ki eJecDj3 +1 1 968.90 25.03 3.95 312.75 969.90 26.03 4.95 327.24 ZO9G9 tnyoE kyHkB6U11 kLdYJ yaQX GgRgpBws0 m3xR AVcxBPu s1KN 5Pkz +1 3 -613.25 -708.47 -1432.69 127.58 -605.19 -707.47 -1428.62 133.53 YYYmA3Ke 3wely mAlJoO nl2zFvbl1 IWrbA6k95 xbFoCjY4B lgO7 ESEd 8lcd tjUeNDTtX i7eWjO2sK q5KeFX La0e 8Sjt htr3JLzib 4fAD 1V7j VBsp AQ2v LFESlj DyK2RNWq 5S0g kEbNp59V clJD RZ2W 1jJnF35 b9ucZpOE XvVPX790F 1sGogR LtTV 1BXEJ7 uZ6wi FZ2SNA5fe uV0v6f1E s4XL pfic TQjs i3uPY4 sbVzb0h fWDG Jl7Zbka fJcWxGtZV 2RNf +1 2 691.12 -559.07 -250.73 1467.44 692.12 -530.94 -249.73 1484.06 VMPs 2hFA gMCuE ImM9FcB kKqP 2mWQyh4Q P4JrYBb P8b4 fu4Db GwGb 0Fju 1YUS MSRF gDit 2oFa1 zT5Z n5pw +1 3 -908.53 139.58 -811.63 1300.25 -907.53 143.05 -806.13 1301.25 1kO3 KbhX 71gK SxwNr vfvrkFs mjkz rQhA rN9A 1SNv9 XFqN3fbW8 KS1H n5rGmscng fbFs uRYB F9Gz QlRiCKBA GLFy WO0Y oll4 qn895tcC eeqd0 xLO6 Dc86 baW7 KZEmRRpH 7qCWQY AvzR RfnDa UbC7Yw3ai S5DS6rmFs lH32 PBmkaRWYv vfxBH1kTR MFFUr qoYgW NrKO 08pC mAkz UfVL hhtd Hin8sk7N0 zJjWgc RsloWF8 +1 1 979.93 27.94 -1167.28 999.53 991.15 40.61 -1166.28 1014.62 1JKE PCOl 6X3cbXTr4 MlaZj SRjO 0IsR JnwZz5O3V tkZA P5KL yH4lG +1 2 -650.27 -1533.37 1887.50 1355.55 -649.27 -1527.98 1888.50 1356.55 zVqg m4sDC nyni vMYi9EZ V1WFGH wHtm 9kHP 3t92 CAk2 5O40g xCuK RRhp QkGVt gpe8 GMbJ d07z hkQf +1 2 -205.48 501.35 -1980.22 -317.53 -203.13 502.35 -1979.22 -316.53 u33Np nLfvV4KM EtK8 oywNU LLvnU TAtc U3MTlrLo kxE2 Cbamb9 tm5n f8rb vjET h8bS UNHeH Iv3Q IA8z Wg5kuMICw +1 1 -1891.20 1623.30 -883.60 -201.35 -1877.04 1624.30 -882.60 -194.55 MO6f9KMp ZZXasrQsC i958 Owu70 cHnY Kzf03aI 4sJI kcir4tnac mySldUqOx ttfF +1 3 1305.66 279.63 -2239.21 -481.22 1315.64 296.07 -2230.63 -475.69 HLs8wjY7A aba9sAqK8 AKtS p0zuLHwX rfIw v1vwQj AGgnGVLF Ue0r LvGA pRYv LZKA 02x7 EhPM 5AnHRm fEq8aJ wmj7 oLHe PiEwJ kZya 5Kez CvHj cuvd CbQj AaIfP9sl sighAOgg f1iY QFvD 0VKv 6Kh5 Qoes4n ocBurm aNCN M8m4Ao ah7X 91mz hkKo 1dZ6 XS3nr4Q iFYv Pc3QuHS j500B Xpw8 LtTPafB1n +1 3 -803.93 604.12 -271.30 -73.96 -793.79 605.12 -265.60 -68.03 iuztNN9 LwVN pbMB lrpW eqfR PhQE XyE92bVK Wkzsi fv7r d0sTf4d nwq1 PyIi Tgx1 5gR2a mmpb BBXhXilH w5IN08DA6 8hQY iEv4 75Mb Nmn0KpUWP khbv l89Z hC5paM7l UtGu5F9u wvUSm4 yyu9 hwFAG yZq9 QjTQOm UvtEmx aZTPUCz lvQT n3t0IV 0Z31zt n6dA PPy4 nVuheR Gscn UwzJK BQXE 5T9hUXG2 jp1B +1 3 8.09 -310.39 -1056.91 150.70 14.22 -309.39 -1049.88 151.70 tLJwd Y11YHFxhX mxdF GFa4 UBlCk QPMe YYvK EJyo xIWX Iryj AjsGB1qj6 OAt6JkoR fep7 yEFS Qbzi ZvcH oYwC8QR3 VPjiqKiCU yaPMy TQIO 62Gu nRuI tGhc 7DYG 3tJX1 S8c8N QBIg 8jgQl 288M bACjghK4c BibT KVBq dM3j lBhG G0ET bVNh R0yv Q3mw EPPd eonZ wQ14 7VazPnYB DWtsnMD +1 1 567.56 -1007.91 -1230.52 -80.01 568.56 -1006.91 -1221.21 -70.34 hjwk FUNk05 pth4 QxggfpY jL0p WQiXHjXfa HekKo I5HSSdxLg KYDJ Fazi +1 1 -634.05 189.23 -13.26 -933.14 -633.05 193.28 -8.47 -915.32 MTls ZHwzgu91 8GWT ZnOl fwXSaI naXq WOgXXNE xLjP4KSj aPery5 klzd +1 2 573.32 -322.98 494.40 -599.43 582.54 -321.98 496.84 -593.84 0hTKulT MBEj bdRQlqqUa DFwrKUT D0H4jXer RVB98j FmhGiuKcI c0Rl 3jei nleb7vU wXHt P3k8VC WQz6rTt gUjCk2wBA VmPY0hTrT bCMQx TIP5O +1 1 991.07 1261.07 1535.21 668.40 992.07 1270.56 1540.55 679.14 rqaw32H nBMc dE0hJG g1GI 6wUSIc gsu8H 4e5o 9veWoSch A2NN iCfD +1 1 102.80 231.18 -2983.77 -1706.00 114.95 232.18 -2979.49 -1696.28 sb5E cTeLzYq rwkBnyP VO4P QXoOz Autgjt KKeRCLd MQqfAx5 lVT8 ndrO +1 1 -499.65 -2200.70 922.76 2790.40 -498.65 -2197.02 928.61 2794.81 AcPWT ulXn7ksKG HBZSW Tor4 4hhT PHi4nLRvh LQTqle T0aO FgGE HpeZbM +1 2 -1476.84 1110.26 -780.39 892.54 -1475.84 1111.26 -769.28 894.58 ic49 zTi5 KqZx AeI2 nYkqxS JU1N wqD9 fvDW jGRb Bp9Y El1W quQ7uu4y 24WO1dG DPPj1zr2 Jc36k NDABp2Y8R SaiG +1 3 -58.83 -837.54 -686.35 -35.32 -49.39 -817.72 -662.36 -25.88 EPKZ Ryg9uCm 45ZI unaS 0o5Hg0b 7lTEF3Vcd cgI8 RUj7oVGTI 3T4z 3fuders 38Vp wPAN w5N4 66dj dVPr gIun32H fOQsaI yEnc 6Hk5 Rz44yTXq DD6G DmNSoXn0 nHnJ RBJ7 fCeXk5kba 8wQG rhiO X3NtJqHN dYbs VzULN 9tw3 slGQEjs 0Uvk rQJR Jw0e GckX 7fVUOmQ9p YUcs qjdu m47j fUCs z3xrNCzl ZAynO94zX +1 2 -196.78 1194.49 -791.20 264.66 -176.41 1211.72 -785.69 265.66 m2tDvr9sB 0BtyPIQAP qNiQ sweZXB0 EmsF0sPn I8cuE2UC TKpioP 8hE2 QUZ83PP MxkjUGv Sux8rzP0x 74eQw mo1EVdtMB 3qtt ViWo dJpK l79e +1 3 -924.11 210.03 -1034.07 1421.80 -912.56 234.85 -1032.78 1448.94 3QGp UVDr aoIr wN7Z Jazs Fkxsa7e uknMh j3qL 97CShLp9 AcuW rdsjjHjcS 4d9mj y3mmkVG GObf cDWS xelmZIIm E3m4 WEdX 95FI w5Uu3R vdG5O6p oavRZNRq 6akE5qQ NyOCFD DMW0R50 KQKfJBRNN JSgbpCnL3 00yV zVYZr7X nBUEaMff Ejq5 rOxD IV3oJiy Yjyoj jX6BLPvCU KglWU uUIz8hjVq 9Ewr9 cgph 2ozm6 lifO Wh0U 4Ugu +1 2 808.05 -1596.44 -967.16 1067.84 828.90 -1590.73 -962.98 1077.17 Pkl1G8U A02o eePP 2GAI 9KCweL8MI pLV4l9Zt TU11 b8E7hj ZZy9zZ0 5zu9 5dIc HTNf cksVhGm5 KTar7qqL6 sEV2 Sb7PwePx G19bGlA53 +1 3 -1173.50 -422.86 338.99 -609.55 -1172.50 -421.86 339.99 -608.55 nPDqB OZno Jngy YTCSibBh JP8d U5Sg D08K QkAw cgXHqI nq71 jcih5eAV qW7bn mlIUZ KH0u 4KrO j3aLfjx8I E4j7xi kmIpP RTYwD0ckB WpbFdJHVl Ft3elnK Y05J MqzZ qSaDu Ypwrk 7mhMD 9lPw 6x2c lvT8 Wk0n4 Y4Ov O6nN drgMNU j1loQW33 GxNz zqpQ lEqS GEdc kXtsWSq MglajEK IxEfBEz9N XDUj mlbAgtNC8 +1 1 538.53 -1383.43 2466.69 670.59 541.87 -1382.43 2467.69 674.06 S37g oGT5 PrCT 0fEahvq TLoeOx e3pJkJ zFZk YbdB 3qXd41 CaAaN3LVR +1 3 899.16 336.51 1068.91 2510.51 908.19 337.51 1069.91 2520.33 Xz83V wb1UhhDh AhCHge UfBV Bcjv gNmn15tJ6 CC28QgQi7 revV Lc87 AWJbY 1G27XvTph 46mE bcT383 417iY 7U4wkx 48Na n1xbn MJBbd sVSwPDu 8BcA rUv8 FqpQBgN38 1wwt lLEet AvQI iNBpVa45 ADwikJqR VOPiG7W HnSFUpc Sl5x OJ2asE1i 779Jl KkA5 6ALT 0HS5 Z1mp MCyM7D8O uuOeNfb 6Npjg OcOY 4RKwsU bWcpHX2 BhWhK +1 1 1295.79 -1012.55 94.72 -1062.52 1300.17 -1011.55 99.82 -1057.48 XRahbP 4fV1 TZsH s6zc RLfQ seei nKj9 lBVV qlqzgW iAmf +1 2 75.35 168.60 1979.46 -324.59 76.35 190.39 1986.13 -318.42 c2l2t dgPE PrmB96ng MEGjYZFGE x1H0 YXLsT4O OhoAxH 677b gUGn 0vWO S6Yl c2kIsMwc dwif 254T Dtuj MVrO qgTG +1 1 732.22 908.05 1098.21 71.81 750.06 930.89 1099.21 77.22 XLST 5u3mq TgyRX36 h0mM yls1i LnWt 82CRVirD NJ4k jQWobh m0uy +1 3 130.07 2093.99 -409.48 -811.85 139.38 2113.39 -381.25 -803.25 8JvA EOFXDW 9nJg snPRzaLCB xPcUkJJDr q6clmJvq 2FFl IWUH 8qwj Aa2G1EFt GT1D qaMEx lw5tZ SaNA gTeVZXsxB oyOoSK3s AG8mSJzx oqdk ediC 5RPTwOtl ZsYgNZw5p 0NiK GwgIqo3 yD0I YSlgaMp pE4G qzpxMBL 3xTfECSjE U9jk QKzeR Nfz9 RjUo 40BM wJWFB ZshKR7 dPax pQ9NwW NMiU kTxAn y2IOO mwtEyFc0 xBJnQ 8Zos +1 1 226.85 -629.01 437.21 -1461.41 239.22 -628.01 450.83 -1454.36 imiH PaCB WUCbA hoMTnRtW4 28NlJ oonc wKOHX qcsL6 iDzw WZwo +1 1 -1342.13 -1132.29 958.25 1399.49 -1335.65 -1119.10 971.90 1400.49 uWJr0pfra KUfD2oHp ilGT wBJssLpfA DBKNTru 6bKxb2zB YHoAwYS qs38XL zwcVM3 A4nK1khB +1 1 155.52 -190.92 -1092.11 -927.10 171.08 -189.92 -1087.35 -910.74 Ubkw4SZK xG48kAo R1EQ Z8jn TkeCmQnc kZUzATkx K2Zz7iQ64 1bFgIth PI2V EKuH +1 1 2192.83 701.13 -555.96 262.36 2204.90 702.13 -545.97 276.96 Wbp1 IxM5 8xBQ 9DJfW2 MVYq DTlu rb4H Ex6Q KxAyH6 BtmDs +1 2 1352.93 48.91 172.33 1067.34 1355.64 55.70 189.33 1077.71 8xINm 2uEx qoq192n QVb3 qkJz gGwrwJ ZzTQsktVw OzZx eEyLmF1Hv GIMA 1M53cGS iSt9 8fPvsgx cfqj m3f9U0 s6lTDHML9 75A1QBLxV +1 3 -309.30 -1133.19 -72.50 -457.34 -298.68 -1122.53 -65.47 -452.05 3s6D RZIk Dolx q9EyqXMVr 9Xh1 a2rr yH2Co04q 0FJRiY30 gUwn grVJ TnHu 8aGJQbrXy pAby4GnuL 3uakOu8vh cywL 1LiU defk L18C Bd91NgWQy lr6T BDQq 2kW3 WFia cCrOxTY8 5g8bCS 1QANn lmgM C4rgF eDLm zb5h oW9p nWceyMDqb lOPV EuVr FpYd R3y0Pzp7z UCsEuSvJ 5KP9 nPrlArGHT slpG RGFs4s 88tc ptYSHFj8z +1 3 384.90 1438.20 -1524.15 -637.53 385.90 1449.48 -1523.15 -636.53 vHQPXY wVZ3Cd oTzb5Nt G2Du aT9I nvLQ 6G8Q sLAP1 ZI9Z Xz6ynge1S nWoNbUl WNdWKNS g0ElsjHDn sglh rf1hJ KEIg oqN6 hGyU iXc5RU Ldiv JEls N4jpjqS vO60 jJR4Ejp dX71HS Zo2RjA ZIljd7 0CdC bfYv KBEq OaVA HKUKPKrK GD8q VGftfS GtLQmv26 Yfyv 7xXY Jf0m zgQviHwA qGBJJio7b aCOjj2 2A77 o6yi +1 2 457.03 -689.61 -268.50 84.70 458.03 -680.16 -267.50 100.61 kIxv 0QdH Yq1p JH5hclgU c5vL FrkP klInrdxX 8X0HInAAo AcXt 7Gvw WpOp aDaEj aCUC3 OXRGZEFkv rt09FT 8lshUT4e 5d5r1 +1 3 1567.88 -74.02 -1520.12 -1539.00 1593.47 -59.96 -1514.40 -1538.00 rDwp PfymD 0mU8 m3QH9u5 e9eB CXgW w1fP SCI5 5AfW ihSKkkg2y s8Ef Kd2G UoMKoF vROK 6MMo pQg2 VkkPZpw 05pb qve6 Mmm2z8RFP LM9p 41Cx I9BP MADV KZLuprcN DVlw 3Gyd0d6W f2mxuVzSj AXoL 32KY cVey 4GTwkTiSo g5JuoHjP jcGG 1E8hK 0bWLO vjAoYiOn4 VzTr H85Fm KHcc P1Ri ZEWHoOSj PaZc +1 3 643.80 -362.72 1429.31 -736.78 650.50 -361.72 1441.19 -735.78 93hmVnn b2AE A2jZ 4KAe DMngG RZvN K5OIHjisa pPnn0Jw sY8KVZxO h1GA cU0iRlM fYQv 70sJZ m34G WrLj Ce0rap hlUaL A7Ex4 dsUs mKSb H8Ud i5MfGM9Mx 7FcBftQaH uuf2 wKMT x4RAvd C58p xpMi PYMw tuClzPT jg3L by0X slMBD9esi 4SGSeG Lj9s ZZp0SuFW IoV9 yflgADiI VQ71 P8H4 3RD6 57u5 1e3HIp +1 1 -1421.65 355.26 -434.55 -1398.71 -1415.12 356.26 -414.87 -1383.53 ZcB9 9uhYfQfXz 1dgNbDa WjhK S8e7lr eove gDCCa KudI br0BTSW3 4c0OVZ +1 2 -190.87 -1893.49 2389.24 -398.43 -172.13 -1876.66 2394.73 -397.43 cTLV v5POSEdz lxawMsMe6 1XlcS91 ba7Q VEUi D8yEPpJ1 m3Ui ya7c vu7Q l2zL Q4RG hRh3iRDdt 959rB 5wcIMOxR CBo6RQ zPeI5 +1 1 39.63 114.71 863.28 -93.59 46.57 115.71 878.85 -80.79 pKEm 3aOsXYP5i uBdd 9YaV GQQR 8ZFn jNt0 i0Hz3Dpua k1lL65tX zRD7nNj +1 2 -1012.23 -1395.13 -442.28 292.62 -1011.23 -1394.01 -429.05 299.78 ZDoaqTouU ihkk HqRGtM FEmq4c ZQD2 gpWXm tVED4IoB fPFzBb5vi eHiG HZ4S hDzX G9l2 IT8x puAWf3 3Ojn oF8WI QWctexIW0 +1 1 -291.16 -409.15 -226.94 150.20 -277.62 -395.53 -225.94 178.07 UDGYU Pg33 UNIJc hj8KntF bNw7jyZM1 KSjI9 05tx Iwn5 3C69r6 a2S2 +1 3 1753.99 -10.13 -23.37 87.68 1754.99 11.23 -7.61 93.53 xKMlmm zhZPPK e8MjTI1pR jK6g Kc2xh 3jVn6JY7E gOEALZ4 CkAN PXwf aw2W 2J94 rh31dFnI0 gmXn r4hk uCPcDDuh0 adKB ZuhVun WGoE sQxpknPwS Y4624Z 26M4 jrPgQK zKE7 G9LT5O ZuLc 1g6G oAXVF1 IeMGfSkQN xWp5 dusG JHUD 3EHrdu UKjk Q9cX xUGGjWnim mnQp6x4Y cPJh603 3BvPJOlWy 5XrbS0oC0 cCKP Fful BwNP4 slmu8WBP +1 3 1446.56 -1541.71 -830.10 -426.41 1469.01 -1525.06 -829.10 -425.41 Get0 E7JQ cEVp fVSz r0ZBx ReshbMerW IzTiYg MMdwLadra JLMH JqId QeTo ad4Fy1qs VuCkND oSw8 EmjEOm V86Qzt vn6y8uV vFE4i iJhd4q pHY1e5X yfjM5Pe oBKru j9ki 6ceY iZHJ yvkn 3qCJjqbfF u8rwIGw FXtRx5w hZVJ uieR LMEHO48 Bf9eXpv bwNjrPEsc fdxo6rumT THz2jMBER xoBp 7Wb4 SDig Zfyd QeyUTura 1zbZJOW 1UOSi8DCT +1 2 1463.40 1531.76 -1793.62 547.74 1464.40 1544.39 -1777.53 565.10 jHL0sFow LpgDwrMX YTaW o9NUZgbVc Gjpj sb4H WLmyc GvLj Scbg 2PRz6VqT U2l6KV7 F9hGo hx8pWL PXtV05 9hWr0 dxe32DuJ3 AkF7 +1 1 538.08 141.30 -1060.13 -348.34 552.58 163.24 -1059.13 -332.82 D5ey3vnBM JPzWOIe pTYP rdTO bRoI DRbO ANjN oL6v gQi8 81vFclsj +1 3 -635.10 -2.29 438.93 -2311.48 -631.68 12.83 459.29 -2306.51 BOO6aN8of LLK6 szlJZ 2Ucl RmdIDb1KX nupmQnA 3jJkn OcH2 fqcyw 6FVuATL eIIpg 0PTI c93EC6tC QZjDObpu UHDV gxpyIYX NwKO pi4n hR4Nq PK2Y yVoB I8NS D793Rrb7 yh9w rPLy 4fqr pFu1FyEYZ yhISju1f nx1E UBM5 kcwkaq GDZI G8GJ LT1qopcl v26V qonDUc6m 36PtZfCz ADYz ZcDfQV SfBi BXBTARjX 950eqG0t Ikhp0Krcc +1 1 -247.28 406.29 5.54 -712.48 -246.28 407.29 12.79 -702.15 09pX elNH 9NkOTZWl Lulc lvFv uUVS 9REyyI C37qCUNVG lg1N rXKQNGvA +1 3 -1248.56 23.02 -161.37 640.53 -1247.56 24.02 -142.39 646.63 XbenRPGU rSdW sZjcPk4 CK5B1 a7DoAEfzE qwHQ 1B1J ghSKGtNX 6aKq HKvL kveI XnuSZA reRW niuB X2JK CYj8 2Mmy c4BOE2 BoE7 QXmV s90D oemi0FEW lqXQy C42EJf huON9zd8u 6imP lOfh BkLUiZ7m W233 amaTcIg qqYJ Eqyq 71SA4 Rb1sC VXZn 7WrH x28lc RYDDp5Xdt DjCn OpMi C4blB KgtJOK bC1E +1 2 -229.05 -442.88 -756.08 -124.18 -220.35 -419.29 -755.08 -117.96 yE7z1b 1MtP XMyg mIwd xBQI dCpa Y9Pe PSlHebWb gmuh 8Qyv 2u3Y RSrr 2xha c0AW 67Tl fB8XhZ6lI OwMQ6sl +1 3 -257.41 -824.99 -2.36 1922.07 -250.52 -823.99 1.68 1928.41 uBvyj YNGJpOb Jc7e AcEY wZDQDrd Qd2d0Qx7 ZSIB 2VFh fxxX 6s26EPl lSkR Bbe4 gaco olNt vnHdfMjqL bjiUkFT0 wCpVr A36T tNWXoqTg eJjbigU HIe3 VkpY Qe3G Z4Hx eMOlBU ol3EgpP1 dbac AEuW kE4A cJD8 csPit d6ka DzkS GNAh 5HlZDVk3V EyZf BEoC mywznXosH lQuA hDRZ vWC0 jKbs4lAl WYtC +2 0 -334.590759 1 360.109070 5 370.109070 2 -290.466675 6 -280.466675 7 -26.501160 8 cbd 10 rq 12 FZ 18 E 23 N 26 p 28 rFI 30 nr 31 fBC 33 bgp 35 W 43 H 46 C6 49 U +1 1 1569.15 -677.63 -1106.70 299.08 1570.15 -666.37 -1104.14 301.34 d0YAKu LAPM kPePR4Yb WdiV IO0o 2fyB 4GwD 9MZCJo xANW ThIJq +1 1 -756.89 -535.50 -427.99 -2239.02 -755.89 -527.84 -406.75 -2238.02 9qwZ9kl GuxP60 VlsS 29lL 4q0l9 VKXJrN iDBO2i8n8 g6je BLhP 7ueIJk +1 1 250.32 623.90 1073.93 -16.26 262.12 630.34 1078.92 -2.47 0tjME QL9v mQfXkdw3x oz1mGb7 0P7a j8qC4n8 u1ATvBW8q FJCt sL4E P6luz +1 2 -1755.52 1144.63 -31.42 -366.77 -1751.58 1163.47 -18.14 -358.97 fvOqkdoJJ jMqZ7DpYl BQaq4qUUN KQ0RpQx Iv2CvRk oMmj q6aT K0vk L552HM5K 2yOAJz tGjK1Sjaf mwzXQ uF0JbUM dgCpr Ne8bgeB 4eWo vA0l +1 2 975.08 560.63 -85.58 -709.59 976.08 564.34 -80.72 -700.14 pmeI Y90P r7WPbGbi VBfs F3d6 hJLfVCyx PTUCA LgjnkN 9rcxRwmN hIyr l3rB zq39qU5p S1C4Tfs3 zsWAd TclF 3P39 3mDIlV4Y +3 0 840.285583 2 228.312378 3 -378.369080 12 k 23 xN 32 9 33 B 41 s +1 2 68.05 1097.39 200.60 -1103.53 69.05 1098.39 206.96 -1096.67 1ABm Kzppp VnzX JWYh WYEK rye0 mpoV 23qD LXAJ70ZmW LbSd T7vf ddtb JqjI PBESmU zR3d aYtmzT 0Zsoh4Qp +1 1 1776.41 1277.43 -715.43 -53.81 1789.44 1292.19 -714.43 -52.81 9GwG 4YsJ DnAyXR FoeH fUPQIM1 ibG7 134lxp00 ne5h9qfDj VO2S vZAb +1 3 -373.46 153.20 -35.78 -2624.22 -356.56 154.20 -27.95 -2612.20 OWwi 7ZowhCQ2 HruQ bXuczIaxo Whil 4nio EIVdIMX9J RTB32yN U3gN ExQZN1 m6WwS9Cl BhLL kbXW88r gLBj V3iaCvCo 0Ay8xIzr wKNvKWCdW bpvWD Txt4PS9g 2doGA RSYh fOoMm UCPPYbE8 42Je1 T4p6 U2DD gop0 LHQ9 E4Td lxEF 9VEnbdrA pTKrFcEm 6jq2 Xon8 wyDd nD5h D3il HaDYQ H9qk bPqV A66R H6Bc7I tHMBoVNhl +1 2 432.84 1021.27 453.77 1292.07 450.30 1022.27 460.45 1304.67 XVmDH YURd 9oHL Jp0Xiby WHZKac22 FBbu9TRm9 Itgh 3mkP ay3J zT4ZFeG 2XIz5vvOI jIZaGe wl7q ABwH C9c2 fCnn WbR8 +1 3 -865.08 -532.22 -22.12 712.26 -862.44 -531.22 -9.32 713.26 0KRe31k mPpK SyAbPyX oVT124ABu sa9i jQjPNj1J 9EfK gWT9 PmBB jYjU CyTo8 1PJO yj1E KUowq2K3 zRgw nRqZ10dwf Om15sJ OTdD PuIHBNd AvsHe d3kXQ9wm 5V4RLmY cZbl38ek9 jezkr7Xd 0miN0aqw mSk0Ih 9aE4 LSNzVsv5t V5UBETY 2Xr1 iPZi b3GOOn ZPL7Oz V2vru4r kGfN 9oDvY2jP4 X34m KsFu ZgS1 UgutYpQOs ivOmE Is92 yLi5 +1 2 2954.52 392.00 460.55 381.53 2955.52 408.94 470.92 387.33 nlIW ir6Gd 5FMpa 7SDY4 51Oh uJ7X u839bQ1Ky KN6z8fy5y Q4oaHP0 Ked1 D7UF 4fr7NO kM7JhO 4bS1 IA9mxcy 6T5i L3DoZsO +1 1 93.79 789.83 -942.31 2102.91 94.79 790.83 -924.19 2106.94 TYhwYo8y4 xcQd2AmQt IoIE b1Hlv ZH5Zhq d0lff2X E8G2ekxQv nGpl wAWV 9yvPE +1 3 839.15 -1528.89 -3295.70 494.67 841.31 -1527.89 -3286.94 495.67 75b6 VzS6pTM qgC4 kvtZ PVwZ T9iK P32P za1qdg79U kjcRs j3Uw1Dd7y zUau QFvEQq4B rLeM mqfs 4Rpdxou2 JDkQ gM8R yZGw w7u1hlJ47 jgTc mwJXLB pcZa GBpw YXMYUR x49N 7C1b Mgvz1U EvL1C1 KJbpR3 f6iY j0ot Z7Ng8mQN eXKv XS3d AF5uaZt 1wqidbc 52dK nSgR ubPG L8cF 4xc0DPw UQKqH bdAo +1 3 1740.79 409.39 129.42 922.35 1741.79 410.39 136.34 923.35 ZYdu7YbI vUQBLg sRsOe3sK bLEW VGJBD6Je A1sky tVbewf jK7x yuH3bkD5m 5twp jRZkYML9q qOSYljAPI 0GGs5l02 A41SzB AlDq AG5l 2GuT o0A8hcV eocH Wcnl ie6sASM1 hlzTb IZEuv5 mS0ot nzdu RIlX I0Z5fJYs FmZQ CZDX P3xfWK zew3jW Nihc c6QYH kOpe ipN6 ZY11X 91bM8 SowMUEp 1rYjtqXb 4AA6 y07s PreiVg MCiy +1 2 947.14 895.25 978.21 579.02 964.43 897.28 1001.81 580.02 hdvq zDL6q j1EHJxrE hqos 8n6EoRroF irA8pz p3YA zFnm 4potDl4 DUIAWc8oz m1Ih2ySXv 3P4yO a4tUgj 4z9d JyFb xw8I lhr7 +1 3 -422.84 -865.57 978.74 415.82 -421.84 -851.78 989.34 422.79 y7Ii ua8CNuj STh5js GR96 KF2rFjO 1Z0LiiTi G43m E5xfy vljPF6oQw H8A0YPikY 5EfBd7wy Xjtf 5xZ0 zvZz MlpH 5J5y 2rImloL3t s9WA 822jB DJlJ 76EqC7 qCHa NWwJ c8ah 9i8z 0bgi HbXf FFWf MPp5bpf chcL lbRkzu9R qhFkT 72Ju mY1G ArhH aC0Y 5C5x97l 98fp43F 5zEU HlEb hNGuOM2 plYF 05Vn +1 1 262.01 1873.98 -1524.07 128.26 263.01 1886.65 -1506.21 129.26 Sgz8Uok4h kukSXV9P1 nZfDq NCzt aTFJp b7B5 FLUY 8HsT DSam gXox6 +1 1 -710.02 488.79 1170.73 -85.82 -693.25 489.79 1181.21 -69.94 yh9D 7n4M0G fNIBKk1 SESzy Sqxm ObBEdxYX bRcaWRAD msvH Pvbm1K kVZA +2 0 -30.719604 5 -1560.082031 2 -203.577896 6 -193.577896 3 1871.452148 12 Tf8 19 8Iy 21 qLU 24 B 28 W 32 L 34 P97 37 O2k 38 R 43 YV 45 HL 48 td 49 uhS 50 Q +1 1 -230.36 1806.36 796.70 -237.61 -223.79 1808.50 806.78 -230.40 MrjNc dsaJoa9u6 iqdmom4 DPZm jEVC rPGOZ E2Qq P3lr lAan i1DKh5W +3 0 -371.121338 4 -361.121338 5 -2931.853760 2 -35.227875 27 QF +3 4 -1081.407715 5 -645.125610 6 -1269.943726 7 -546.972961 12 3pN 16 mN 41 xM +3 4 -504.412872 5 -615.603699 6 -152.306458 3 -258.666260 41 As 44 wN +1 2 753.39 127.11 2351.12 232.89 772.55 132.23 2363.78 233.89 DTn9ss 3jDa dNVP HGYp 63kxxbw3 y592fy 8jVL NKeDj7Ydv sGGe7khh N5gQfrRXa 8aPmaeb7M fOPu wXfL NNCD t5sS lT3bOp ZKKpL +1 1 563.08 77.86 1558.03 -647.18 576.00 78.86 1559.03 -630.51 06DOczfiK yWpbL7FR ITn5gfwAg 1OAomV045 qgVEh H9g8gLkSJ LsK9 n0up Obr1 s99X +1 3 -135.73 1150.08 818.48 1963.24 -121.21 1159.88 820.28 1964.24 bcbDD eIYz jiT4 yBFa hPM8 bUjq H2Vjty9 zQkJW rDiP cvZj 6mw7 BicIy64v vJVkDnfI joRi ds25QnZFY Boax7b7G KUkSU CeGqXXPN bJS7 foTO7sc 8SF04 p1MTmQb6Z Wuvjg8eRY sylT sc8nN m6LvS tAq1 MWNt FYtk oTZw ZRDO qPh3 5KISV0aUM tF77 XcKd 5Tikc9ZZn 2hS30A 429T8N kK3Wunf RwDP RjDT WzeY pOOG +1 2 183.91 1447.25 1840.99 921.71 201.04 1458.18 1841.99 928.96 kx6eG JzUZ E0P9 as5x vQ114ul eBLuYs1 T8eGtX tfhM MKOlc 4gALx19b r3Js Dh6E ZciU kNTp Oyrr IslJ zOoOHY +1 3 1949.03 -1638.64 590.51 -397.23 1950.03 -1630.52 591.51 -394.58 8kqp GoYx Pk2v lETJIJ0Z3 KobP 1hZW egtLS bejQj3 3oyEBU8h KsEYCg 4ou6 T2OWw gT6xkKAy 0Hyu Kkj4G 4zdP WV7Dg3 siq2 N3cP5tXG iGes 1nY9x iYCq muEMaFJ7x PUCM tsZ9ukn KRMl yKXdtQS KYRqOi gH5v Gvjg xFhZRG6O mTR9 weGrg25y x2L80 diT0 yTRiEu C0dmpS v7mZbTsd prXW xBImzLc47 pgwZj2X lWC3 khev13c +1 3 1227.34 -803.50 -1102.45 555.02 1237.80 -800.64 -1101.45 557.72 FG6k lO7W70Wd U0qCWtZ 44gc E13i UGtF 9ETP0 4l37qXbKP AjUX8Cy S542W kM84 IN3T OFk7 gkvCU 8dWW4 nvprt tXZF3Pm UC7D3j17 ACjl EYURgd OiZM JomB 36nT yp8SX0jqc W64K n9Ntrs kgf5IP JMMCQK k8gM 5qMQgieZs XKXr B3WW 79BcyhDyO aibA McwR CBNF lwwwAu UkICKbL TrAY0Gz xWba3U 8bnPSktSc ym8z4sE mGdG +1 2 428.87 -731.38 734.43 43.52 429.87 -725.60 743.17 44.52 O19H 4zLu AjUO CeLBwDg ThkEi BOHGJ 280JI51 qxPkW ZtYl PKU0 QL5sQy GSly qRSppD WwIk K7Z7 eckqBYl Xpcv +1 3 -696.32 -154.26 1208.03 -45.38 -695.32 -137.19 1211.63 -37.12 KnfTU6HK 9sKs HtqnhQim 8a6XimHII 88uL eZua qf48P8TRC 4KTJ 9hh3 E0fkkYFW FSHA oZ8qXskPl civmOM1 hnupt 45jO i1vi Vt1m WuSs ZptM ozB6 xvD8RUD 1GIzPcG ozFh 9rBBN4 l2bCAxpc5 3V0rsYF 5eCJ2UlRQ Om2J5 6Xbm FihZ2jnL XhIw MJIRq7f duZd NphF WFnre2 0YkkTjCAe p9wj 9mDY M6kQmiVWy 6NddCv xXpJ jsrs LtAB +1 2 -60.76 648.23 152.20 -967.75 -53.30 658.58 153.86 -966.75 iZsZ mogh 3wPN IFYx 6euc qFkn 0nCP7 YeXI kIy4b gfqPZY G9QaJ eZ6S kFYt r4HUfnS Y6tzHMeMq BWTE7L2Rc aMsVPSNW +1 2 617.52 436.96 249.93 -1128.53 621.85 442.10 250.93 -1127.53 vc72LPbMC OAoP k6MbiBY qkNV HRDZ 2i88wSDj p50x lAz80 mBOMLswQo sJmzq5hW TZbp TX4m KGL3 Jzd0 Z25JekAk 8S9DNe6 0OuqIH +1 1 422.28 308.25 -333.03 -782.94 423.28 309.25 -319.22 -781.94 lB07 BONe 4x3S08 3k6FUN 6aBV tAbYsllQB vgUDPqh2j ALCLRxqf CRmf EhUA +1 1 -2940.28 -87.91 -979.77 1283.78 -2930.73 -86.91 -961.83 1284.78 cKe3yR2U 7a7s HIyNJpyya GKwG 5wuFjlX yUXv d9tS pfr5g OFORrK U4Es +1 3 496.75 276.96 -374.51 552.03 506.30 301.72 -346.43 555.17 4kjX9uBZd 2nwjZIF 7E0O aJZO eLOk ioLe DU0g V5Ay6pJHP Cslw ywPE CU0oHY6CQ f07r9Wfg 80N7fh yuUu Dvuorrk0 iqbD8Z0 CCjx dEGuY9 36ax peEUx 1Kz9 nMusUjF yo5Z d5dNY uoW7eMCN hkLaNK1J oodJOJtqm FaIF WlCEL qWrW G91OckTxF xYZJZs0 op1mxkj0 sdhF RnH9 4uRY jWQLSL smKo zaPq zIe0Tj3r EJqb 84RR CAGh +1 1 -1132.03 676.13 -259.10 -1399.88 -1130.03 688.00 -249.19 -1397.46 d50B0kPs yCa9 MvULfm vn58 G2VO nvYJ dvGvApw pVmT iGma fvyt +1 1 377.66 220.59 1423.05 1406.98 378.66 222.31 1429.89 1407.98 uNNoHh 4Btiv5Z O3A6 ENL7 aqIYT UYDM7le KDvB Fxvyk kGtF vmlr +1 3 845.77 323.08 -730.31 1142.30 846.77 324.08 -718.90 1143.30 yfMVW fsWS gfci mLUXTAs gu9vNYQ bWyr nnZwx vnya CUIubf3WV 2WlkXdBX fnxv J8F8F HkOG jwfs VtnAP e4GmTdQbB hStE62U 283ZoMmR8 14su1UXKo jZzt n0tJc gkqv9vURX ow0n lmcfB nGNoI OCzZ pLF9HXy2m SYbXd3dJ 4KZIvhE2 JqzqhntwR 4tnqLr 5YWHu4 PcrL I3E9 LQUcgrT 3JHIiyreY uRsR VJr5 1kmXanM 9s58 drVa 7GfmZ TNhGg1y4 +1 2 -1599.13 235.28 738.93 599.63 -1590.59 236.28 747.62 607.92 FoJo 2WAEumcU GSxeUzzQK hqPqSTSH 8dGtf7mz 4nr7 jSUTf0Z kzUT ifLqJ88I DcQs jOy7TSu Xd4q Incf YEG4t mFWEwtv XOi4I 9PQzqukX +1 1 -191.81 1525.44 -1106.27 598.46 -188.12 1533.02 -1097.37 611.08 rkdH jUDh OKVyPW1 q7POg1j1 u9wr FwBj zwoFjKl wXrW tTCK Nbz4affFz +1 1 653.65 517.59 -1030.71 -952.78 674.12 534.82 -1028.40 -942.96 gAe4QQaYy QFJy LZee72 zKW3 eQSt JFP6 IFl7dDT1d jH0n wTjJZTp klFaUVG9 +1 1 1101.57 227.06 -1076.36 793.96 1119.53 228.06 -1075.36 798.91 UYoR QSFkf6 dMqIPNL37 tERj Smmk 1ONsIo6U QSbP SVBs 0nat Dl7uc +1 2 -1225.31 -743.31 1096.51 -416.10 -1224.31 -739.40 1097.51 -388.31 GhgqKEQV7 nq15 1FSy66H JaBJ Nsmbq e92bqpv 0VuLYcB slKB T7q4QD ELkyXDTIW mzly 4J82 dOZroPD cGQx b7Sc 9xlSKB 9dEpU4T +1 1 -478.04 1429.67 958.97 -1266.49 -461.30 1446.94 959.97 -1249.57 StEzr bSlVGK izoR qP2cwV cU2jZ IxrREJGV 7lHr iM4G m7Jgcah yzJa +1 1 -1542.22 -2132.73 -450.81 847.78 -1528.34 -2131.73 -449.81 867.23 P0aCvZ WwKy 9coSv Mepk Vn8YK LrCZ ogy7c5At Yt87 01BM CinVL +1 3 1010.86 443.11 -443.62 360.77 1034.47 455.34 -431.46 382.17 YPKU2himt jq9yv I8Xvoqy8 SZ77C5KNq 6eh3dX Y3RQA AhmKXkoA ZRIQ nJWD v5dg CiFbHmb uYJn AJsw ceti fgZo Qw4w rWVE 88TR Cnxm ZdOnx 3eAsGu 7Zxh MXiPfH6k lEP1 a7rO YpDX 4KAFpo7 4k52cxA7 zhOI s2Shm Y3rS BPGz bzLAN4cPe loCWC K9Q0 NaIpTpe5G oYF2 jxV5 C03k RLqMYBsuR ohf8 n7Slt9MXC grAr +1 1 26.98 -54.55 -1930.04 487.78 28.23 -46.65 -1927.66 488.78 OVxC2 DFcFD 7YcbSRDi HHdc 19awovx M2zgOFyb vGpmJ 6RQJvrnd HZzBFyu oe7U +1 3 -339.88 530.18 476.31 -711.21 -321.29 531.18 477.31 -710.21 qAMgf7 2zhzYo8ed pHGytg0Uz RauZR4 IWVbx5aaF h9txYebLw wfXY 5wqIC25 G8gr SVpVSlql nUl2nW xabG v47XODcl lj3i Pxe3kn kE1C 9Rn62j xS4R fIRtrN M07dm6QpE HHPzP12 tHD1vZCr egDuQW8R BCSF 9ado pdDNtu8 MlVrD ztkH2BABF jckU hPNV2u3bG rl5s 7jAevjBQf e6Pj3 Dmtvsz T9PVBww 23UC ZZOj KfG9 fYNsIBhE P6T0 dzNJNAJJ c60Kq mCkC +1 2 -284.54 -1679.26 -424.88 1218.19 -273.20 -1664.60 -401.34 1219.19 XjUt Untd IgHX pRgQ1z X02AMJ ABRxFcCAQ 1QQS CoKN 3CNQJX xQC5o e20L EpF1 t83y nIs9WP 2jePV3hL rnVd9yG0 oE0q +1 2 -1859.06 1201.47 -1468.04 -114.99 -1847.57 1202.47 -1467.04 -97.01 NXy9XKTy elrm8sw2s I3YL30 uYfXK2a Qgfs MlbS XVcTs Ec0T iQGD HKBi XXVakr7 3ye2LRpzD wA54 rKQA R8JWCHTI cURWlU5Z CqsKjjQ +1 3 1788.42 1770.57 -47.33 -395.21 1789.42 1772.93 -39.91 -394.21 9pLbFJlm ohLZwx GR0uv YStd BFUE XQYK WmSgC qi8Lv yvtQ gyeR BJkW4nrL TH1NfI00 ExrU Qc15tj HTx1 F95r cN2RVIye7 XAdv jT1Lrn UjEN JpUf0BYh IrXIMYttR aYQ9szD 6W6hVEP U2jBJ tvo4 2id8jS bjuKWOi 7NHa lBw4Es BR8EVY3 RE1d vwbM NHCcNVEs J37F7 4xM1As s1q3V5 jxYsZ Wj4J5SBJ YNzH 8l4gNQRq lJxg wGkbF +1 1 -546.22 914.84 880.12 -918.68 -535.37 915.84 881.12 -900.37 hP7r WuKK YGtRqAE Fin5 quZs PZmo 1xZS Uodc vTPF HQXv0xP +1 1 1682.39 -385.73 601.09 -497.73 1683.39 -384.73 602.09 -489.87 AfSk8y sYjzgI l95B MhH9YsJ1 UlCt wQNX2yUMC w3MOykmr jzUujDYP6 B6UL5ak2k eCI39hFFu +1 1 -134.21 1265.73 4.97 421.91 -128.96 1280.70 8.38 425.81 vCP180 ewYGDkYXK 1F1I fX3HnqP vDtA9Gwj hHPa m758 25l3 XJDu pHD4 +1 2 -753.99 -616.00 -1490.71 250.40 -727.77 -615.00 -1476.65 263.68 Og1GBL6 7sH0 S0W18m PIm1 fAmg Jsd9rdqg sy63 EJxn8fD QpxN47eeP a1jv 9LnTrrn B0GpyBnHe 5UY9mdWcT IBPI NMYh jdJ9 ipeL +1 1 -853.18 1236.56 1410.94 -688.62 -851.10 1249.86 1411.94 -678.58 5u1pLrn UvOl 7olC G42XH rNUOHCk4F B60k A0qu qIPGnTTrC vHt8 FdhfH7Q +1 3 1164.41 1739.63 920.75 1450.12 1171.99 1757.30 923.27 1455.62 KZxN5wV mcHj y9si vMAo YoO9 krTs z8JYp 307HbdH6 U3ADW Na4ASvr 1UmD m4tJ nlLOxNO BYkv pKvnoDb 8hryMq 11okkc X4Vo8 ElOd TxCL T50E Za4b 3ov4 upiA o6B1GC8 FV7w nOun Jwcu M4Zt YMDUV95n uc2x 8IAf xXT5 VkFFg7jmo SvWLw Oncei swJVQcj Dt9J x7V2D 3G2D ZdtNkF1 JsiO IkFucd +1 3 -3265.33 -436.97 2292.17 1219.04 -3251.15 -435.52 2293.85 1242.13 gZbs i1x07S HKsvWNz dy2C ZkqN ZhYKm0 H2e49 RJ3hluqqB A6Tk2H w0Kejjnk7 ryWduME5 Z35W Gcqd q55G X3AN3Vq YrnEB R6pi 944Am AKfOv xpGPILnBG HfVO9R f2L9 MDWRqQeVx GGZXex LM3wFt M66j 7LfZHhWJ1 timy nIp9 r1T9 UG10 rK0Q lOT82v GEcPSS vayF prz5pHK 0D0NPC18k AoWI 3vWYhbIU zXRJEoG N6y9 bJ8ln1J dbrlAevS +1 1 297.85 -1315.13 -584.05 677.21 298.85 -1314.13 -571.30 685.22 QuPi3fL jCFziCd YCgl1q 7Ly4Rf Y6lL Nf8EUaEqv 0T7S Bhzc 9XAw7eHy nAmvcGvV2 +1 1 1862.57 938.79 -1783.38 -220.64 1883.02 939.79 -1780.87 -207.88 dSc6 P9LP T38a pH0M K0dT iCFf6S0 dlfqB JNBiNON09 Crys sJP143 +1 3 793.76 216.56 1305.72 964.52 794.76 217.56 1306.72 965.52 thNNKCW WMRX QdhCSE H40rcIWRr FEd2 hpGY t1day72F e7g45icmO N0dNFK RYQw8y 6riC Wu2Sd Zmv9dHuI WBmdomd 12sBPId r3etSlhzS odvu wx3d e2gJnU HMW8XDSR nHDJeEV 4sOs V6Cdi 35Q1ppsWq kIgs B9DW hsPp TxEtawy8B fAYlFkD5H nlCs BnNRvuM uibD Ymm5vBP DHx6 bvpRGy GczL h8Cs4 N7c7 Pz0O DBBY7M QoUTdmwoi MtKw YXx1RmxNv +1 3 -119.17 1010.15 425.19 -1270.07 -101.99 1011.15 429.15 -1269.07 FVC5 aCJd 89JlB lgKc So0Q pMr0vW2 AVL5 lGjG7kOm 0ijFzl8 Gov8RGgi NMfTG0LS fyrl q7IIQ TBbh VjQ2gnn Gi9ZRet pk5SP px25aW8W hsMrh3 EkDQd wQxb Gt8jVGqiE QzRi XJ0J cfk0z7 02E5 hN3N fyCA uUgo ob9gfKYpu Is49a6 500ZNFj Eq0lr9 LNpRaR7 Bx0y uVf3fu Eq2UB FAP4 U5rVWSq29 Lrr2nnmBw juLUW RIS1 IalC +1 3 -231.75 -1089.37 223.64 -239.73 -221.17 -1088.37 230.62 -238.24 TPDTGI eZeuaJVHC bgPQ0cYN xkkb 7CG3 5C1wT2u xXfrrdhBQ zY0dgZ 4tDa 27l8 UJOKT shWk IvlH7KP8 4fWHEdR6 H6K7 QLOvZ93 218O3x AAFg5S7 BIXo mYL7AxA B5rSi OkfN G8BJO1 FADhQO SYyd nAga CAdspX5 Iyzw Ovrl0 2Xk8cO FCgby qOsHYUq o2rwx1La7 hM8cjrp Kp4R D1jWUe9a 65NhjnZSk O468o 7vBn as6v dU7p De1n FNyjitE +1 3 -504.81 -1251.20 469.04 828.08 -495.82 -1226.13 482.82 854.93 kbCI M3BGiyE6 3iQlf YUJzN7fY lxukm7vJa eHN7iZg 4bOl 7wg5HnPb a8XllgG69 ZsfP 29x2D wYW9 KEsf sinV mbThK91O lCd5Qny K0UBj TFrq 4MKn wcaA ywMZ p7MJ i6psnt MWEl7n6 0bchMsl Gsdr affN I0F8 xc13LpR LNbYZDQ Sj53bF dz53 3ukd4dNQQ C0Fk B3H4A TbwA eyQw TaxV nNKd HBAu kjJkjoj5O qWDIOU trtbuVzpK +1 1 674.11 433.00 1505.99 599.26 678.34 450.81 1516.03 610.04 lmARb6u 8zH4sTb4 bvUz qhOxI 8MCw 6Oyr Opr44qlU nt1RNBGQU A4IU HjoAxrI +1 3 -495.18 -894.71 828.08 573.17 -494.18 -890.77 833.67 586.75 35xJgNCG9 6TcB ume1vMk MOiA SfeF xJhZ iO7hx1I9m 6VEK Wtymxxm Ieu6 Mah0y iAGV Kmr3BruP 4tntrzyjm pfsLyUXAe bidD Vwn9RPd1 rm0qhB UmXG AG8K pGgntRn 0HjGy UZQE 9abKC PW3pDaWkT cTIhgRdlA hxVxVF1 e2kvP Re1cI6 naGzWjN1 xe7I dYdVDN TVUh ag864t ii855CFd szb0O4jNj Ti25 cmmz yl5B wPTHIWKR gZyn b75Evy PLEjr31i +1 2 147.42 421.47 -716.52 1478.49 153.99 429.36 -714.61 1479.49 GJZ9 FMut 1zrjwBoS3 zXqGR8 DPAo1 q1J0xQ9tD gGmD xoVE lLcP3 X31r0gh lJqOW2R22 RjzGhwd IK6G8lDu xzXJZxNlq TJ8lE17ii kI9tpsr ur25h +1 1 -1652.55 -1128.26 1720.35 -267.48 -1649.77 -1127.26 1730.29 -266.48 QJLF eIrp y5uy WS6o 64pjUAplA xb81 W6qZh4y YCLwb44d KgJ5Q XqnRp6c +1 3 1025.67 34.52 46.53 -1176.79 1030.20 43.06 53.45 -1165.70 0ggl1cc QJVIsT6 MyAH kImz Q1jA 25SLJXU sYFFlwT yMDL DXAZ ue6B swtr2Q 0sk3 E3nW TwRX gChr ZO5t LOLems8y sHM6Sx 1WKx lBzE Xk8OX BAat 2q1OrLeB DOX8 4tvgHM8XX Ppuhqw 6JIvKRGkd 112W DPa7 zQNwaLob9 oWsn 2ugw D07A 89dL l9CL QH5js XzMFG a6id 9XtpDNN fhQIA6 Ifjw8 2RTjpXK2 FATQMS +1 2 690.53 -536.54 595.25 -1506.24 691.53 -528.89 613.63 -1505.24 johmJP 3cRM H2nH 6skYgVmvn ruyECL o2q2P H8rKl TNRQ rxpSt wSdbD CBQn DEO8c2zcp iNpxeT7 NKlYw gEfus XDljVHTYZ uzZT +2 4 -963.013672 1 -59.320282 2 280.207642 3 1742.384888 13 Wy 14 Bt 29 b 30 8i 31 p 32 6 33 8 34 QA 36 O 40 mm8 41 T 43 D 46 sc7 47 8l 48 H87 +1 1 565.89 -556.06 1597.81 -948.93 576.69 -547.57 1598.81 -940.06 K5rb ABpF btoeU6 9DVu mxpn PIabGDyjk 078UbETB pa1t hje7BGLK sCDIWhzh +1 3 225.05 1033.04 729.94 735.46 242.49 1050.14 730.94 750.47 FO3j sIhUn RfoJKlr6w JXbD8Wkz t50U YXKl AT35D n9wO 2qMu sngC0 HuKBCVP EjJk ye3hQoN 3m7Z h5EbPZ MJHf fgETNM cJkkldmX ZfiFMw 5fwy 1Frm Sq13N f8XD9DV9 AcEZ0k KMdCRtGRK rHSD vLqn jdjr24y WvXh mSpt 8fNH vA1mBGqB U7C3 hmm1NL8 RkKl7l NV85 FgzE Jh95 GQ8pjBH fBI8rUF KSKh4W ht7T Z5Tz +1 3 -548.72 26.89 -29.75 192.15 -520.70 33.45 -18.62 209.10 EejO aG3MEnf GVxc9 d3WE42 qs8Jn Tvg7Ynq1E W6Tj Q3bQ8 xoZujCPC nVxujfA js9R PDTP HuUH GH7cRKhA L6Sp NSdIC mTei P9Ic 6imX tWoss85zO UlWmihx3y Cfo4 CFL6JYLZ 7w24pZ88 peo3 GTqX3CH F4ka ygN3 laRF bn2U XcUqSF9H 8P7O UDjrYW 4X5X k7cHFd BcbI mBhe 8ZbUe zucM 8mC1 buUJ l5cgz4t 6K8v +1 2 -1377.24 2216.32 -1347.49 932.09 -1376.24 2221.99 -1338.27 941.40 aAPDXl LDIE k5MEX8S ChQT vvEf cF19OT6 95LBFG 6fcUE 2sER CJWM 3BsWmDUd GXZL73 vjYAIz 2kBgvZD DwcjvPB eNYnMxlW evaueg +1 3 -5.00 -1547.64 -692.64 -1852.81 2.46 -1530.64 -691.64 -1837.67 itw8 76TQ LVwe 8wl0 ynuGPjmd pzJ0 TGTb i7dY elHR vWSE WKKT9Llb qw9ydPyO ahVe mkIgmx GpyH 9goi lH7SDt7KV RNxn gwYo OLBT9JrV mFTt teEFXd dzeJ LNrh9EW2o Yj4o qns5 6KwrX aKhf 7ed7 ceZy w9DI TayYVw78B GdJdHqi 4e5O EK3kFT8 nYik523p 1NZo DbeMVg4qi KXnR KrUgrqhyY oKBy tu44 gGkD +1 3 644.17 667.82 -1152.65 770.73 658.06 668.82 -1144.54 782.38 G9s8 To6PpHx oOPe OsfsiBp TxpB VYowhIHMB GDpk7hQhu z4PrV9yU TnUXBadJ h9B8 Ss7G eh3Gn FATk 5YvJra bPgK 6a6eOizx hyp3tPl8p L3Re 1osB xTA9 iU5AhBFnf bg8e VLzy ERXTl9A 6hgP mlya qtDh 7KdUK RrtG lR3l2jOJA hR8lKE hEmx yo0S t0pM2gH0 V8MX7Vo QAHEF e3Fw jY9lR8EtV LNV1bbLAG yJL9mvV8 9UCJ 0mNf 1ieX +1 1 1653.20 -350.85 1799.72 -605.51 1657.63 -349.85 1818.68 -604.51 6Zywh1hJ Ocg7VD 4Crr oCMF 8anU jRD2Cja oupM E9AZHhT 7zlbigi ZyCb +1 2 1412.72 699.92 -1350.57 1461.40 1417.41 700.92 -1349.57 1463.04 e7p3RaIr UOiO cO2z CCVb ecSs C5FCxOn 0OMg vcLEbQEoD VIEn 9M42 WBjIyvL WGUP 6A3c 02CpFKPO 9YXZhFn0y 349h W1ZJLxYE +1 3 -2383.82 -789.92 -132.43 228.27 -2382.82 -786.67 -117.85 236.79 ViV3 NX4Idl7 nbVD 3GVD 5gK4 NXRFzghN ikh6J 56uV PfYYFDA MRq6Bnoe LzrU d160BmLv n6OQ t9LYjr D9Jx wL2J Ys54w XYgg q8JH leDZTW wJUvEJA x3TD1S ng60h uWXv3D38K RglN ZE4cTaqEc 4NGa 9P2yL09Ki IZLU 2o4F cTPF 9ZrP bxY5 a7qQJZpg2 ms9Y yl1JQa GVYQ SfJU 3tHe gYD9w86g7 EXly qtQ6mk WsHp +1 3 -194.90 -567.51 551.36 130.90 -182.75 -566.51 552.36 157.10 dUSX cei9 tANJ 4hNe xIIkIx1gz Yods BXHk cKsD2S 7YHYX rP0B 4PofobsT EC3B HfMI xCYIqj wH3Bpxob QMuB5I jG195a tlhD gDtrzf dtmJDA 59pZ 4wYHd VWtp nVEU TBPA dsGZ JEMu DrhQzLOWz vQxE4Gk3 SBzdpP7K zRZm Oai8KmQ zPor IgC8ldr rNBo5vo 4hji Gk0O by4mjF4 OsKfHYUUC lujerAG No9J uzSS 24Lu +1 1 511.60 2631.33 -1768.38 125.36 512.60 2636.43 -1767.38 126.36 urS0 Lb1E 7bHLb6 BBp5Zca2 zMYk bc5vsj e0D84kb veX0 OayNdCiy RLNATS1 +1 1 -452.10 921.68 -1185.39 435.01 -444.17 927.06 -1178.16 436.04 QtZs DpxJ 8EwP 5B6R2SCR 5ltk vHUuG5I jaO9 9zZj2E4jl rFcK o3Km +1 2 -387.76 -21.01 710.08 505.93 -377.15 -20.01 711.08 506.93 hTVIa p6G0N2sfQ quG8 s2Wn sJUqJQ0w Vq2u2 4JeLAc0i M6HD U0Ccy A1L14 D69dUr oRW4 S7190LUqG rfssmaPP RRVWW6 T8XG JXdsrRYR +1 2 429.44 655.67 1184.21 682.75 445.67 673.47 1197.27 689.19 Y8mwdrg IHKBdQ lquQ aTjE OjyU gP26 5Nv4Y9 RN21M 9l6WugZ HkxeUTQDy PX4x efk4 U2vw 7GOd lsVtO1K 2DmDX3cs QfdZ +1 2 -32.65 1498.61 30.77 331.67 -29.98 1499.61 42.84 339.38 kpX4H mrJX fT90 pijy NtwkR SAnaCHj55 iGgb 7YHccMx2 D8166j Syc1 UPfwt5 ur5xXM 43F6 akA9sn C9F1 pj2k AQrp +1 2 531.73 113.23 1135.09 114.54 552.49 114.23 1136.09 119.34 AAor5k hlJB pyQf CluoeB 7HOVRUp0Y Et6iM16g M0Ug VWOXvHtL Wg8a SjtU 1q9p xdJHn JFoAMhD7 0pk44S5 39ylq PbHTY Q304 +1 2 -478.13 1499.15 546.19 37.07 -472.88 1500.15 547.19 38.07 QiGlW BaWfOLg edkPsni 9aqcp r9oszjHv VvaQ ueNBtU PsdH E6Is YndY WBHWxXf MWCJ TjRX9P trnS KJKx 1KzAA3 R1P8jDm1V +1 3 1351.00 -898.49 887.01 -717.97 1353.09 -897.49 896.66 -712.84 uXkE zTWJ YDVeUN0b aZHg 2qwbiopNy mRwt nn1KzQe SpbM0 DSev zRBrf g0eBd Kpfd 6upnf3 64Im FqQosrdER XiAy 5dyG yBJ5lHK FnsD Q3Z0 DcVVh oR6diqwS dvLw IJI3J4PB 85Q1 qgn1 yY3wv46 55c4 O38C aHGOEo2jP 4Krz XVV0 g1oo AXm9C9F Woy5 1awAFN 4BT3 6zPa 6sld bsiR BDjb9 8KBF Qwbw3k +1 2 187.99 192.62 984.98 704.08 202.47 196.49 996.17 707.59 iklM WSdf24 CPfOpyo fECa amGRBt FOqcaBUVS xx3CG Ln4A v2Ag K59K6GXpE v23Lhnny kBLr gK10 WMoklU YLJb DO4ZF EVot +1 1 611.29 -1282.84 584.12 1554.11 612.29 -1281.84 589.06 1555.19 cFbTF WXJmES FQ706oLox w8yoIT9r Ix1KH vJhf4SZB yLeH LM19ha1z O74od 0syBV +1 2 155.08 53.38 -107.41 -2196.31 156.08 54.38 -96.22 -2195.31 9deCb 5mBl toCQ T1VwUi ZZLXTE2UC EahQIYBv lPSOj r9nSVeok htrWazcm 3EvfOqoi2 EOHKZ2 DJyh XWq3rX5f9 RJcEdz ZTbO WVwXkkx5t 505j +1 1 -694.08 936.10 1610.77 -504.94 -681.01 947.98 1617.34 -503.94 tf0pQ IYy5uZLW jdhlJ41 hRGq i5c5 E30St1yu piM6I1 Rmg5 Eeoo KkGDCraHy +1 2 -1174.80 973.94 -7.25 131.88 -1168.77 974.94 -6.25 132.88 XOkI RfbZubA IlZp7 nHdqLl 2Nsr L91PZ bfAX qDSr AIoF pSoi gUJB PMLa qfzl1dEH 5fpf ZwTm VHdaZDwb9 8M1JEx +1 3 343.77 671.79 1286.12 -222.12 358.06 675.88 1292.27 -221.12 NTqHpX Vb5Ry Uvmc69vW XlvkBlYo vRFe of7N 7oZh APWY 7diR CJggAX ehKhVUx9R xXfg CN6P me7MD Epvq xyJ2b A4nH5 G22hZ9 1GvKqPG pGfrT0l royp 0RGKBpY1 Jg47 7kwY 6YzX INQeOO k1vf V3lctTLoy cGwF rabB yea59LQk Qqm1 fd9H8q5 SYfq BI6Vy 0YwZ1P2t ePNK ExAl1G4 JUDQ vyv5m QmEj cci0jeDv mCQx +1 2 2211.20 -1554.33 -237.29 1165.15 2212.20 -1538.12 -226.33 1177.94 wzC1Smv ro2AG oJHOWJDQv Zo9J7d uhkRMicsg ppuH QOOB YpOl vV2m 6Avn WYXd UPAyMgABp H0jFF llJzSd955 9r3F Vmu3I35mM FGo9 +1 1 -196.21 303.33 -521.06 -1392.85 -195.21 305.61 -511.89 -1387.44 36QfnD0YO OY7T WkgeS7DjU iSxMX FR9LRUV 3fdo 5QMZTeJp SD7G 7R1e ipErq61S6 +1 3 324.10 -234.60 162.97 1220.07 325.10 -233.60 163.97 1221.60 0np5 RsCRbqv Vsqf0 DUr7Hq zkZ4 AXK5 kjiRf V4VHmKxMG hPa8lqJJK G8Qb c2gk82aoM iU8k Rn6F DzmQ zUGgjNCJ7 WVCoJx7w A6LQ fXQpCcm LSvQK AxkXTm9 BdpMak9Ci RfOT jKuZ HLNjrIE JL36zBq j3RDDT4 KSRZbOy9P Qfv5 PCviQxCx q70r VXYvUP wIo6 67tO 3kpUpt lNR1Ge JNkM nLT9y NK9E4 43ULEqz2u lQrg qbDj JJRWkuPj Ron1H +1 3 4.19 -849.96 771.87 1027.65 5.97 -848.96 772.87 1031.31 vpXC kW8A2V4I8 bBM4 pMgU ibpdtVt DGfo gKqQdA rCk7YeU2O RP2f 6mrO 6zUu O2ld Dclv 3IbJ yFGdZMsNg 50wC tMKRUdO8M vKMSdC 4s0cNEW 9TDv8Bo BcHH vVzoXY2 wVge bVBK 3WcD EgMU AqL9 beoRlnqhj 5PlqXyk Qqpb Y45L2h 7BeOjqH H8lhKj zvQGKZONa Puutc q8QeG jbQq GghV Jz9y ph2R nKYn NTWYBvL aTg2JK +1 3 2153.31 -102.99 -665.99 -555.27 2166.93 -96.20 -654.71 -535.30 5R4Yt HkEf zOTdqTQol FaLH4Yu eSirNKXXz m5b45UBZ B5ng RiMcEu44 oAEp sKXU p6bU WHkDl0k5O MasgiOZ KycIy GBVK5Z1ug 4s70sN OkJK c3xn km7ZsdE 2XBJcj rc56 Y1pCRmW RAzrC VKg7LrEnS RhJSD0QRT H7rv sCGI d4Zk4Ldo bkRiSyu kDBF Zo0j jPjP j1zlOMsv1 lBK8Z6 zreP5y EAWg TYY6 iZ6ugsUnF rhWh ryPf8B64 XAOMv VFGF V4NPs +1 1 472.92 -130.53 -481.77 475.27 473.92 -117.90 -480.77 478.52 5lwY F8Sa LbLBs6cFK XPVTJ9tbC ULJs Vj4q FrqW ytAH2hDbT ykNx avYKA83tl +1 3 638.26 -158.45 -838.55 -293.08 641.53 -148.28 -831.94 -286.09 YxM0Y 0M11uFAO ZlLM8 ykNs8Q8u lQRx2e 5G2synVP RYln GKFx2BQ RsEvNlbz 7usu kjKP a23eV5H GFSc4 8Dir LAUK D02Xxs hfFf MTCrRZ ljMV xJWk 6n2aZB RZTt QapOJHC7 gCB2U0ae i4o2imcj t8io lRTO 6TnNDH T2cdF QUyboeuUc jJnn k3cj 5QPu ln2d nw3ZQ NW6jpe lgVe 9v51 jvvWSQyl q1jT JeaaCwaw jdJD mYQ9 +1 2 -1827.79 1722.93 220.78 104.34 -1812.29 1741.33 232.70 105.34 Mm1M wV4xmR3 ccBL AXRc Pi0q nqVW cKvkZu8 S4Xig27Q 2SNoy7s 94pths2J XSMpznIv 9Knh spYJ2 qAXT9 4gGRlz GaOESr CeLVU +1 1 -344.95 193.02 938.56 -1140.02 -340.12 202.30 939.56 -1139.02 JkvLNVYTr KYN46yIgk XNBM pZtS v3WA d6hO PJxb Xwwiz68wT aL4S G9k1W +1 3 2526.51 305.44 -621.54 -357.49 2527.51 306.44 -620.54 -356.49 xipjjKjx9 auogqyC3y YjVEYTW wIo3 mqBz 45rU48 DSxaa6CkX DIFUA9YhC K3q2pH3 X6Qn F4B86FVjL 5Vz6dcH 9lHSaCq v4STc TeXk L5P4 lcbGS7CfQ 5mMQ DIJR zrOzHHKJE PPsTm3L DXoH89 ISz5 gRYxy WycR KqehIvrR E8loG 1rP1 aYaZhhg1 iZkB kOXc Qdj6g4y aeSAbiW91 vONJ 2DM80 swaOPAY ppFZg QB8o9fZCP liYX C5iBAU2h NZ5Y 4VtOC3 QwnQOUvJv +1 2 -12.78 2088.92 1165.82 1764.04 -11.78 2090.80 1168.13 1765.04 dY1f VABZkf z0hjB4U Rs4pz KnWc2kHq IdFtPwnj WOghYt4u 9jXdSk6V FEEa HPf5AVHcT qQ3a jKHn5d KNOa KzEI RH4q vLRKcaX IwWNO3u +1 2 -902.37 -643.41 1806.35 -452.29 -901.37 -626.18 1807.35 -447.53 QPA6 TvSBjQcT6 V6lr eBpo 4O7X LYZy9fqR ubh5 YMrN W37I9Ug u1ck qvdfYp4i qESi E3Pw HM7m xgFUBl EfKt uCgVL1iSA +1 3 -1034.51 -1627.53 1041.30 -1009.56 -1033.51 -1626.53 1042.30 -1007.74 diwV 4fSCFkc d8EtVWQ FRrkch sqspSVYjE Uff0RCUJ 9oKF ZO3Wt5ywF dAcc CZaU6N HaTLp0F rcOGtJ 3zkr8p D8aU W4QI Hczb8O xrul jYwb ac0Y F0EFN gTgn O4vZ vI83vFs O3IkDo QoBz zV8xnknIW 0qIa SJnV vTWr 63ueD z49I9BP hGvD BVjyinK wqFV zO5p 79Yt IlNp jwVyS GezNDSr et68KNx EK6a iZhiSesxW dyw7 +1 3 2275.51 786.37 1168.93 1614.16 2276.51 798.00 1182.23 1620.16 Z6HI rujmB5aD rqqRL ogADGF 86nL OfeXIs4 eBn2 ck3FT ybpp IvIq UkVeaM yss0yMYXh qtc7Tt6Ev WjrR zuzmZYf6L zFOE TYLuQU Taj5aTQ ZKrV Pe8o WBqy 2y0w cZiqq xyO0c uDJgs vqTqUGC 0ovLkV wtbHyJWfA M752 7cAz Ml4U 4koxJqXE SoKshUI QA5e5c F5ciLd8FO V4y6Ks lRcjA0R 3jHSD681 2uUv Nqst vsPb UE2J FQVb +1 1 1425.50 1139.51 -600.56 730.40 1426.50 1140.51 -599.56 731.40 U9tX Dsp3A8iSL 4mhb ovIs0Xg7w fcbD WwwfNXQl 925M pm8n 4eTK K0gUyd +1 3 -1161.33 -705.19 -1823.31 264.27 -1160.33 -695.66 -1822.31 286.55 xMgf okCl ACd1 Pmmd6xu s5rpaTgHF pXmg nF5W 7EPUZp B52fnCPjR 0nF1 68YM w3V2 ztHoC6 MB4R 1LzY oxU5ZA Nanx HMMD BCBv qoznY9 uJys hOorC9 fg4sV93 lbGt7cXK KCoI 0lUG k1O1 FRx0 h8a9c58 1xcN Ysoe FIIR Ce9Y qnOT XWHtw DDdvQo ZXMz FBkuU 8M3Npoxxi 4u4d CmSTqW7 YisXp pstG4iERc +1 1 1259.25 -1047.43 1256.78 854.24 1276.93 -1029.45 1264.45 855.24 lZ9xXj x2SV QfZ9 jYUr X3Z32ognN 6nRq aOOP S2p8 r5mUd7R PCru +1 1 1529.02 1302.17 957.60 417.16 1530.02 1303.17 985.54 433.88 kYfOHlF cmjbM0QtQ hz8j vDld ZqfB AGZxoi4 qwSF IP9Q5S 1Wfe X0gm +1 3 -1984.56 -277.40 1113.46 -252.69 -1948.52 -265.82 1127.49 -251.69 PE4Pqhsjt mY56 nHJQ XoHc uJve3M f8eUV soGDMqpp LBZO vPyw D961u AlNd Ez2j 3O4jZxQ2p owCU pvOR 0OL2oB 6ynDo WVO1 h6WC NQLTkM nETafd 48FaA wYpK7mka 6Jyd nOgI i7wl NsC7LyydT vO3evn nFEIvhPBC EFyQLn UAih W3iz WCSALu liZbL OC7w eV1j PM7Y TYPu XtzA PTFA Wh4r q4iDRPZb hF50 +1 3 326.91 27.47 866.90 -2758.38 329.19 28.47 867.90 -2738.53 RAasnU5W V7UA AIQvfih3 QXIp MFYOR 8aXn nrmWB2pa0 BnDeomP 7BtzMZNTv j4vo 24ay oi04xnFY XSn0 pJg2UU fGGUyx8m 1jb3 numv aXXE8Q zIvc ho4Y YKUdZy ljuJ ZUwtyXMJy vCPg5 Hn3A0qc DsCB Vxtz a94K e65zG32Q cz2R nlTZ roO9cILjr Up4O uj237 kImD J2ER 0lzGT 6xormwm IrS2 KhSV T6BOKxQ2W kp0A OMqQL +1 3 1038.79 1730.44 1044.65 -747.68 1043.39 1741.42 1062.46 -736.28 9hqd h6fH HXA2 QBF1 A7a8Hx HqpR6g bI2HI2Ur8 m6CH QopmmKE oRz8 hqGDE knIKHrc8 24sk9g f88MEpJ l2ZH 6DprC p0S6 fRbn dZStJftFY L8wA FisuD5rsX 6NL1 B9g1Y RdbhE CEIPZUJX 9irV c5xe 3nEm jTEn CdSk 1Xq0 edWE F3g3EG4 nMXZ za7Li5 WOt7 0amu cTWT3itk MrJm m7qC rPRj hoQO dgse +1 2 -1689.72 60.81 -341.04 1604.35 -1688.72 61.81 -318.54 1615.76 PKg0 XldZOjOwz iipb 2ok6akMia BkHG rh5k 9sNr YYNGIOE WYUKMq xOMl nxjo oJTQpfQc 6ObKS t9Ez pxqx 2ve0 A2RH +1 2 -839.01 1454.95 756.16 695.97 -838.01 1472.89 777.05 696.97 tn3R YwAl qYxn773p J05N m1itoNo eiEK uU4epJ a7qM 6oOx uj93t Iel1 Lf2J YBiV CslS IjoiQkK 5Bbs zmjl +1 2 267.37 578.35 712.66 -569.43 268.37 581.79 713.66 -568.43 4kONwWnf3 ZcdGIUw1 G1RY PeYUENaH RJrq FEwt0 szbd aYf0 00WgEj2tI p812Pq 7Plk DtDsic4v dvIe P4WS nNBI uU43 EnxuV9i +1 2 -184.40 712.98 184.85 -238.79 -183.40 715.20 185.85 -221.35 P84k11 DkEq Uug8 cfjJHei2I gFhTovQm6 2Rqt hkOo T8jT 9rBD eiDXm0An oDTB6Br mUWN eWgi sKSZ YhQexblrF 8kjDzG QxFe +1 3 123.36 -239.61 798.35 -619.84 132.46 -238.61 799.35 -618.84 Pro3Snl fdnb dDlk luSU mrdh1L7R rSVj Wbrm t6OQxv LYJ1 5byy kI7i0S pci6 Xy7lPGLH5 U2QW KSeXsc o0S7 Iztd 7kme70 HTh6di3A fLUhZmj npJUWUI F9BxVcS rwT0 o5j6Jc JBVx JNLz UHdCQjpAp H336Lw RJwyg xzLCi UHfV HinO 1FQ4Br RtrB 9yYo8QKNi ejCJWnwr sDpN DmSD cLiJs DGtQF yOiK tZO5 kokNc7gR +1 1 695.36 1306.27 -424.28 -786.12 701.92 1311.54 -412.87 -769.43 sPxsBN9 Ejswa8G9S 2sMAQOq suIN 4ksO XebH M8u5 ljfC fsy8I9rnf Wj7fy4a +1 1 -167.82 -857.78 -847.24 1147.85 -161.39 -856.78 -842.80 1148.85 fXk0yhU H3SGocb ZDZ5 xqxy GuEknNmP yEAZ Jyn2 cFKWTl66y 8C4t 9gfVZxE6B +1 1 282.60 1142.94 -544.66 1713.93 304.19 1150.10 -524.65 1714.93 vM2J C0yEEidl XzSMMy IRnJx8R mQnJ ImpP UWvdiQHv nK4X aJ6NHeJh l5Os4 +1 1 -1278.12 804.58 -1174.22 -525.15 -1277.12 805.82 -1161.87 -517.84 vbQZt ZykK1 zmhj MInG X4VS9A0JE ENke uAm7DaEfu p5GIm v9oBq SIjN +1 1 1472.38 -1233.96 -1263.35 -1252.42 1473.38 -1209.68 -1262.35 -1247.51 bFFw 7syw 6NOE GLfSu9kAL 1KBq 87Lz4L8 8HHRJe oDNvR zb35 SQi93 +1 2 -254.98 2040.96 -1561.86 847.11 -253.98 2041.96 -1553.96 880.49 Ic8wsG1w HJMikC0 6h5e ltOG hV9y 03dqyvkbT jdWz 5M3i0VIZ kFtj2 nXIDUYpK 10ITcVp Kz3m BD1d cNqb5rwJ0 sY15 vmK3yU ClRmCs9 +1 3 1844.80 914.98 -1598.12 1016.90 1853.25 915.98 -1597.12 1020.24 NgNnNL1 MeGDzAkS TTaRQzCnv 61Bzt 0Oke0 pUYD m66a IDmZ a3Jgxu Z0LK epSn uLzn WlSOeck pQgK zXdW OTiV K7FN Wdr8 ooH4FZGnB J0gi0na 5X9kFah GT2Z EzbF bCjzkJkCn zC4U CEXS4oY AiJO VyJ5mRM6o O2yg ZPdc18aR q018KOx iV4p 3EQeJ 8o14H7 a8vG UeRF GQLh UQlj fUHGDN AxVa OxukFZpFD sDlHIK Fkbi +1 2 699.23 -661.52 538.93 -48.23 700.23 -645.45 539.93 -46.33 yZg8 4i23o Xi1O YTlJG bgkFLQcN G0WO gKr82 7FGN MxE3W6Pi Ynv0xUt LXxH 8sa6f Gn9X lNFRHvTI L5CG hEvx2 BHQSmHxY +3 0 -103.661926 4 343.041321 1 550.218445 6 108.250793 3 1198.343018 10 dT 22 641 27 Y 35 79 39 6G 49 Nb +3 0 1104.044189 1 58.094601 5 68.094604 6 -2147.218018 3 -617.726318 7 -458.289032 23 a0b 36 kMX +3 4 -797.107788 5 -435.711945 2 544.605225 3 -361.126526 7 817.975037 28 FXK 37 DgA 45 q 49 qFX +1 1 -56.33 -1507.73 235.91 1853.20 -46.53 -1506.53 250.03 1854.20 xBem5q3RJ ZiiIjMH nxVbTbo PXBfXX9B z1kUW0FWQ zrQQ lwpyNmi e5dfK0 JWxd 14Zo +1 1 -3299.34 478.85 -709.24 1226.20 -3291.80 507.21 -708.24 1227.20 DPoC9G5 2fty mFxgp5AAt nymJ06w HOlW9iI C01Jvq8 87kr 1m5YlpXg Y176lRw0 wUe7 +1 1 640.64 -66.08 -913.89 -1477.22 677.11 -50.16 -912.89 -1476.22 TmmnOHJI 07w1 yBMa b1EBt Hp5w eyxi Ca2L4e7dT ly20v pmxj vuGAI1opQ +1 3 -622.78 -655.11 -837.97 549.37 -598.81 -650.92 -828.85 550.37 LHmiW KUMDI uJ5r 8A6EGf yCQ12R4e4 kz9A xJqM UQNW ERhHNEZy BZFqs0So 6FZUFF6L8 9vrefNtB ihq1 JFG8 m5Pjpin xjGYhG4 Z0oR RnzGKS Bdil cGuV apyI hPna D3mH S3otWDX1 bSYg jJ9RXIxWv R7mjoYJDf qN9M KNnr hseIVOoL ZX32 9YP2 uom47aZu7 qNyWd Q7zP UXfRmnIZ Ca2q hwou VkDv UK7z qkUUn ESTM MVVUO94cz +1 1 -563.52 -1351.88 2377.53 167.03 -562.52 -1345.81 2378.53 175.57 LVDX aMop OlWJ cjIB6I Got89IztR Asmr SiBEGESoG niaTI Eeip Ux4UKt +1 2 -866.23 -646.75 2090.28 -597.00 -848.50 -640.72 2093.31 -591.06 EWwx rG4UBfCDO T9Pc lJ6f gXhA4 83mw T0B6 sqX0 DdVV 7ZYk Nq6qvp 0OuW7 tm0Bus jOiZ tDjUtQWL qbyG4 YvWWuLRj +1 2 -945.58 839.79 -889.86 395.03 -944.58 840.79 -886.50 396.03 A2QA n4Jv 0uZugd46 Uy2P eITFMtI vVqm5yWn IpjOu qMSsd2wkE S64w KZh9 MWU0 1OkYZKu 8ba4Iv0 RnR1 ykldlr FVUP6 sWKMKD +1 2 634.97 -797.63 -1330.29 -1339.28 639.93 -792.50 -1329.29 -1338.28 tVkzfrVN2 OzsNr2o eQ5OT38l a2OHbItv r3FH0hw 2aoD XEQ4 4XePYdl uyeHolGt 50iybtZ DJH7a Akds 8jZ9 yTDr HRz9 DwPD5 bn0aSzDe +1 2 -1057.44 -1462.38 385.54 -275.49 -1050.01 -1456.46 386.54 -274.49 IfCa W9SVa aLhM MH0Q TdhK0pA 0RDh jLkOG Imh303 BlAL HLZj dm2uPdBT SjQn5P J5fl Py9x KzWdmVs J7qB OuBK +1 3 -805.13 -317.67 76.67 96.37 -804.13 -312.02 77.67 97.37 9TZihKEOf gHaC EtBl yfE7 yGWY VXvU y1YYuVt PR9SALI fST8 c0cbPaE9 dm7f QTKcaHmra maVA ojFDQX9L P8Te0 IC0X 4UFUUzsVf QZUgsX 8Dh3UEK2L mzkE Yiexm4M xUGF ZxGj 1Zai2Yc 1Hdud sixH CTTv2 R9Ng cjO5 fQe3gtY qXjm94plS nw0u xxHOGa Y77D WM4H1 LQBD BAam fB7hAMI FBFA GolI UibP UWiS 6Za5M +1 3 754.83 -454.81 -134.56 765.41 778.89 -452.47 -133.56 766.41 siKn PtgG tbtzu JV2X 7Xj6JQX ruBqyFPi AKDW 6oUyuAYJr EWsFZNsaG wXcd BFs4k abky PS8fqRj9 2Oww iaof lrRh YLod nHghLFq hTYfqOXM RdeLs 2UMohCRGm HeIdyVx IUnhqn u3RS Rhu5 44Jh v7c2jqSf pkOP3XW3 Izzk8K nCGa06 YQcvlwa lMo5mFZu9 vghhY INCs S8XIUPxJ xYDa 6bHc jjf8 yVbo tAs1r7gR cUXQBIf NtlPeJ tGPwOTFK +1 1 5.01 819.68 -1911.38 2324.75 14.16 822.71 -1910.26 2325.75 BpPFm9AFZ TzAW CJixjUYKV HlDtrK clmHinO Db9R KqXr Via0 de5t Ilhu +1 3 527.68 539.56 713.09 539.35 537.03 540.56 721.30 540.35 qcv6qkGs tPSr 8gVB IEtVYuR phYI xaAyC9W a1JAjWw vHQR eqEOsR akqi3g0xL Dtya QgJ4Aij K6Ia n2YlLr Rm8T ogga RcEaep3az jrxdLpS2 tFHn bTYi t2C21iv3 zb66 1ePP LreK sxjx IC6NrIL bpLTJJnY f06M MT5X pUzfAR7 TSNN 6e4oTfwLe dGLWbGM6I bexv Fl3vtboV fiYvl jn5FQ doaB nDpV Q1Kw iZSDE NFCR yHXHRSWWV +1 1 757.47 542.53 -1622.36 190.09 759.74 550.11 -1607.17 216.74 sFDU 0k7z4A wEqp SwHQjYvR A4F9G598v 4XXTxZLeX Ua20 tzveuwa urx0 0ubjhoA +1 1 1390.94 162.06 660.32 -1661.08 1391.94 167.71 661.32 -1635.87 ZqfBFkFL BE64cHr1 Nz2U V7W6y skFD GsTd qextVKq cTACA8 f3IO0 rm6kYLBS +1 2 1055.37 514.86 1534.85 -8.99 1068.90 529.08 1541.75 -7.99 1nvW YR6s 6SPA kXQ6zcTTR KjVo Z2Cq RThG 6aiL WTxPhEY Ls5O ak8krShu 5HmQ9Ti pMutln HVcX Z19g EAeQ 1YYW +1 3 -1889.82 -2396.15 383.62 -187.38 -1888.82 -2395.15 384.62 -170.60 QjWmpCiz9 p2I7 zGujPd spFSK7 uupu 6onhGVs0 cABA nYKU y7qdvfz cF9oVSB dFwz MsoN VOr4I mTzZ allbo0h VrnfJc BaHq2wTN vQt7679c Wh42 4JgfUa4O NAVv CyVL CcVk s3qnj OZTs 7Ph3nxmMZ plOT pEiQ 7EPo X3iI P3YCquN1G 0uiL wU9Rn5 OkCkux kjJA xar1TjXAX wEc9 R15X4Nt jFwF0d ClfOH5U7 8dpB pGEh YcnM +1 3 286.18 -118.69 -793.39 -1921.31 287.18 -106.16 -776.64 -1913.41 Mm8Q igvS 4acehLea O68kE ffPo rUxumMEd mtVth2fp eflB3Sc R0EV mjhwaIkxW hyNKask8 6gDSi G2TRrtB gYJeq gIQnA4 TZT5ASg38 d5MKuGB ee3y OnV1vA98V 1DajMXMxQ UM7x7 K72vLEDTK pni9 BdvgqiDl7 RnPyV 7kw8 s6xP fXoU4V tf98 Xjgn rKxAi 8YaYeGoX whYN JnbB gb2vn O9gSqnb qKWxooJ c5Z97ZOq A3Uo NKnFq gLinZ OR1g cswI +1 1 34.66 -92.95 -651.31 655.97 52.11 -91.95 -633.21 656.97 o7Qj91SR2 sI8PHZmx n264oU8 pwKtU5kG VgLS 0GGmJ Pj125 ESaycSlv XVO2z21G BpW0C +1 3 -80.09 71.56 1924.57 -338.29 -79.09 80.80 1925.57 -329.52 AFPY nn4Ug NyISHo y7R2EP 7iSP Scdsjua1 mYxKk4qFx FeHS 0PdZ 9C6JQ nP3t FDGt 811s X9MZRIQK njWL ftInc oZNXF GUszp1mmM auDX 0rT2 j4RU ZpY9f XU5RsF IM9d 7uAF kNcAa ZMUo 21Ox uaCui13lp XnqT dkFG zRNAqY YwqlsGYk euIk WeHwOdQ fkf2Ie pCQU hLak DJSNKKQk 6fhS IT4e Ag8t6F8ra dUblMlNf +1 1 816.75 -712.07 2918.68 -1515.91 831.90 -711.07 2922.42 -1501.23 LEftq GVMu lYDA nyqYH4 RRJ8 GLXnR 6hhRu5 zirt xkxY b8FDmaIzm +1 2 884.54 688.16 -1152.57 -39.03 885.81 692.55 -1151.57 -19.54 XA4anZIaw J524 gVWq i7PuYOGj7 HvCO VJRC YEvd DjTtEVTDn l6p3 whWN4 6Lva8 rc0u mWG80 4erQ 8dSJ MNW0 JSGzQcry +1 2 149.73 -54.33 -602.98 -1269.91 150.73 -53.33 -601.54 -1260.00 3YYt Y1dRr26TV wGNS7BZFX 6tiV rIdtU XtwGDY hL5B U8HAA t7IM2IctC X005pp vgP1 b173C bpeL1ez 9oZYlbDlC Zp7p KtXS MVzq +1 3 -2120.03 -159.97 161.85 271.41 -2108.03 -157.04 171.72 272.41 nTtl PDxW CRlZ ADRreJJ MzQM zhpaWX5 xOOE fqZvAoV1l FWA3NfyT DobJrz5a lzjc9ld5r ad43 cR3tN SMpFlmi ngaY MwTB Je1omvIx nAF80C hN5B5 gxwCIdBY zFY3g3 VeKE dpKvHR2Ut LWCk tfgyV Zi1N xgqj BwDN 3rfHMPlx Dimk 4u99y9L TH9A EByh ChseE H3xb Faci MdvC bYQd5z cfYy 5LMq 2v0s rP5U2K 7RdS +1 1 1627.14 -847.73 888.87 1945.88 1637.27 -832.59 901.75 1950.72 XvU6 wLPjgyF fUCGn 3n75 I7t9Ssk 5zHy zmBomm sgcUHjV AMOW T0AtJRG +1 1 486.45 42.51 -328.89 -656.70 505.66 43.51 -322.97 -640.52 omMs 5wBXMHZ u0Um 9q18MgbP ggs4m p3VtQ6js MiBw vZkP GLsj3Dew yR9AGCXk +1 2 81.07 521.46 -636.68 -1662.09 92.94 522.46 -635.68 -1655.34 BHhg 5iW1 OtlP n0Zccp yjz6 BoOXKdn D2YiE9 Uhh7MgQ2p ExYnC YRVr gQVX F2If KvtD 8RdNkkj1 dC3WAl 10v4 KVH0d +1 3 -574.00 521.55 161.17 436.50 -570.86 536.90 162.17 449.28 cNQg O1Vc67bn ky0m easHXW Xj62xn0SS P0C1 2UWIpXI xD9kJmE Sbgo8 XHCQ W7Ne1Q1oX fBUQsuGcK XaYH DbSm ymYR vThC 6a7C vGBZAEZT P8Z9 0wsM z1LP Vr08Igf6 JZWJ 42m2q5O sLkaXEnzu mLzM quR8 h2k4Z NLb7pMn BYKrVF j8pF Kbdw7 yOqi20rO 5AJqmg rtbFrBb Tc9A0 mKkrcRNy qxg7 DI9Jom H19G XaOfIGc wqtS6Vqw skup +1 3 1382.65 389.33 -1563.63 483.15 1393.38 397.53 -1556.37 493.30 rBVb uxP5lHHB zlVILY2 erf9 b0gq Kt2d Aw0Y 8tTtzky5 xr4Mfhbbc PLdmfM c4ZC pHsAPc YU2HqE8q 37Xm UZRm2XrE YKwYK 36xv d2Ht8D bLW2 eYcd ohwq fWy5x9iU4 zxfQ kAnHtHZN I2zI 2cqT 6taIT oezKDp0 D7Qp bwOt J6Ur kNUj Q9Ft SmAFOrE5 eenu 0xzKF7ev EdO3wGF1e 7KF9yMEH tlfltF Z8vtOsWjj hlRy 8Th5PH oTyG +1 1 410.98 1543.53 433.77 -1509.58 430.43 1551.11 442.05 -1498.66 7RPQ evBf SYkZzfX o51OJ y7Qv Z8NidCl 6HL6rTo x1MG bXZwy6 YhoQP +1 3 1797.77 1055.92 798.32 207.48 1813.30 1077.42 813.11 208.82 0SLJt4wU AQvqslxG dozP 8OZ8k1C4j RFmy cZq8 raOy JELO gxFv 2OaK TuEcUopLR 9RICj JPaSMArnz TVcb 0H4g vJQvgsf0 htJV C95V 6MpP tqbTNV UR8IEMS W5cj Shrz PN2pcF7 Wpr1sgy6Y MuHo sf7Z hbux RPq9 gcsWZ SV7C mazv ILf3 WEDl 5jAbjRd eRFubFW et4haBspd 1fQRo h8bX L0fn QfPVvFd AEKhmMvU NbcFEIJi7 +1 1 -1407.49 -291.52 -497.42 -3.96 -1395.00 -283.99 -496.42 11.29 QpSF dNCS QW6Y zrL0 3Q3B SoHbyNKpJ isfE vgMS holP nh7Mum +1 3 720.76 -590.82 804.01 1285.01 729.50 -577.73 805.01 1300.24 xx9JK8cz gECVOhWe 5txuN13t ONe1A JQBK1 Yf9J upOXX0IJ0 rTa1w mDfo606L BDMZjdz E6rg UUz3rqCDW eAGG Xx41ABBu qZ1F WOYX2klT8 nDxD jUHJUBf 1jmC DDhk Uzf8 kQlf WyiW4q 7L3W2Xi TDgT yaj6 86yA1S hUlrTEi5 HGMN4 Bn6vkP ybNZprz iIUy wXiY 2qtfv3X2V nCPv 5DJWzCP oFtXz4Qfa n2Vh 2vRw zgWF 8H3e aiRG46b iuZ5r2L +1 2 122.37 684.36 2017.11 -1010.15 140.72 685.36 2024.91 -1000.30 AMRH 9EGAk TEH9 3xXO mog5NKtN wSjV OsLb yqRsL uGi0YIi okMAy N82iTwim sRgCB AsGu nGRnrcjK JFkR35yaF H0B8 51aq +1 2 140.11 -1831.79 -493.91 -294.01 141.11 -1830.63 -487.43 -281.44 LPBe JF9a ool0 1f9i cqgh78Z U6K7 iPZw3ZE8f ULqp 6X5jV UURlL7 eRACN4v eJr0 mYZR wyIN oXnQT4UK iOlA XVZN +1 3 1677.06 907.55 -1205.07 1213.78 1685.33 908.55 -1201.90 1214.78 dzhj q7dtADJP WP1s anj5lvE DoJs iLzW8Q5E avYQAYL cJF2 8PQr 7RPs T2zDSI jTIHxZ8Qg FWfM1i5x 5fSe hFFf C1Jyd SxHJ ttwL SXh5m wOSb Y8w4 qZO0es5W 8ZGD azl7ep 20tj 6g3qjYS 6CwPIR aZJmzuaF Sbu6PJ7r ZPO0 m99m oLA9npaiY 20p5 Ee5v cUR1 KTRP XEK80dPX gywZ yaz1 zO6FB0 zUvjI iuKXd r83B +2 4 -23.133820 5 -1178.897827 2 404.312561 6 414.312561 3 -246.994049 7 -236.994049 11 T 15 3P 16 3E 17 WaX 19 ss 20 VXM 21 9 23 7 24 2 25 c 28 L 29 s 31 c0 32 G3C +1 2 -846.22 -512.32 -889.44 681.61 -845.22 -491.31 -887.83 682.61 V0lqv 0yIh VCOoCgy G9N2 ZnEt RPYi PIjq 4oHY7eo xaEUkYfB T39U lcxn Gd9F6 o7uo hzIs HQ7NeyPX2 vDMW nXrt +1 3 1500.15 -690.51 65.25 2986.48 1501.15 -684.14 79.75 2987.48 NvEH RVdj Y49j VJcZ9h54 XRxp CeAQqf AJVmMh VfVdRjAL v4msJW 0z9f Yolr7Qt dY210s3F4 BJ1SKa8ei Yj5Cbcvc Tc3Y WCPK inQNLJH 8jAq oInyTOb 5ic2uyXs2 JXui c0H2k jkoF AdVYYxR QkAnJz lGaI AKJM scjQ 7Vjv tncT YQZgUZgU 00gmPZmi XfCokDNPP QzWF4rw 4IVz WsbS 4hjR U5RKzo vTdqCoH vUuf 6twL06ISD BWlx q931Is +1 1 -981.57 753.41 -940.41 1632.19 -974.74 757.22 -933.69 1636.02 borFPAH WkHEKeR bmbf alJu dZOl TVNj UaeI Q4VfoR NjpxRMrVe kcy8 +1 2 28.80 -1971.20 497.67 -1273.57 36.86 -1950.00 511.47 -1270.02 cwhKg 81cX nlob 0eQv7nV URIp6D gjbUuP bByHpGUJC KWsx JHRj 0zMm S8rHT0bzb Uqpj 7csQQ 7B4v 6N1N LI7t kcBQQ4iKm +1 1 702.56 1250.70 1455.31 1902.47 719.12 1251.70 1472.07 1903.84 bljFtDwH jk2rKx0 uC3su hIOov 51sm SGzBhBo 9dzc DkvT lF0o HBw7 +1 2 527.88 738.25 -167.43 -268.18 528.88 743.62 -164.21 -267.18 4XiR miN95 IB70 daA9 bwM3 pxAPXRCj I3ic7yq bhDZl8m huIGkd9WI P1ZCJ pu0T 5CSIOkS2 ZUVq gPxH iEXG qPEu N5Podrzuh +3 4 -545.507507 1 94.603897 5 104.603897 2 -492.364258 6 64.391006 3 -810.020630 7 364.172485 38 K 41 lJ +3 0 -463.908478 4 -240.304535 1 432.229187 5 442.229187 2 507.024658 3 -126.266754 7 784.979370 10 cX 16 p 19 jcw +3 0 1161.392456 5 -312.403595 6 -416.768127 7 928.584167 44 ag 50 R +1 2 989.18 660.10 816.30 -2290.94 990.18 679.95 818.79 -2282.90 isYceR upNka9a gNrO 2lmC 7uyG kj7vGNBfP cRzoz5j renU ndLG ZHv6Al Mlbx EIzN83L78 jZm5 yPxaaDw hWp6s FnKT hnzsw +1 2 364.54 -1426.89 -1029.08 1367.89 377.31 -1425.00 -1021.10 1372.33 5kzZ0c IA9L FdG6y w8XQ8 un2m0 4t0o apnyBgm 7VRZ M7vA oETgdFyw 2hnp Xu4P b0RE pVQynjH LTqD Y5K4 y7rm +1 3 415.76 -1012.60 -208.49 -169.63 416.76 -1011.60 -188.50 -168.63 ayN2 bP4M2o8 fttsNExmx stm4a9J74 r2txCJsME bz9yS n0wM j17s b5Kr4NdLa wkmQ 0qjk WVG20pOGA 9gVU IL9D Oigw a3Cy 8E3z XNH3IL zhXfQNG8 bsamTKy 49QloBIUs 54Gpht WSjI Igil2g NkUJNW idMv wvFD HnOS KC8k CXWX 0cigMYviS VAKw bO8D U5WU aF2n B3FPu47M k9wk zBwUszO53 JgoXyI fNve1w 8j394v1 x7wTk7h retw +1 1 -1794.42 273.32 -241.08 -1677.18 -1785.01 274.32 -232.58 -1676.18 kEC09XAki 3SES onUR 5BMg zpSqbhr5 LNojSDd hhXXbe8X dhHex7on0 T658 8W5JyB +1 3 -788.50 1067.48 -1427.79 1422.04 -781.90 1068.62 -1426.79 1423.04 zwIt ovAuqgh qSd1 Ohcwq 4AEazVCOv UHr6 9FbPn 7Rka w5zf pPwI aKc6ck v9aoeu 5HEa uS6g wIyu3FQBM m1QH wF59 qobxo3GO 7MglX qovdX wwrU3 6pVPPYX vJQU Y4OEV2 hGbl lNNc p95Y tuiB PFLRshWgQ 314D l1IL PKul6Y HVfL CniL CBrMG6 kdK0 fVAF bKepEiN smh6 tg5OxU h3ZOaT6A CQBR FWxOV7jN +1 1 1964.26 -1238.69 -460.19 -930.61 1966.37 -1233.88 -454.11 -929.61 Nyc3hpzf AhNFVmY vvXJa BRyk KWp7 9vhlT M8Bi wp5Xtp 8p8l WzvJwn +1 3 1628.60 -1587.40 448.86 203.62 1644.66 -1566.66 464.18 216.15 2XRc Y44V 0sGy aDuPIyLi OI4v5 BHVA 2BmWPE6s5 tkgbGpn jM8FMwC RUqq ujL5 lO9jCx jhSDYovB aCzn 2wB1 kuGi MpDn8cR NCov 0m73 QOWKEX 18ir4A DoPF 6tVc I6pL ENAG dzeIMQG 7PVR Doic QtvM oUJQ2YCEj vkBT YOt8 7iEq Z5wk D8wA6h c03v e57yuvXi1 Ds0k vPv2 IeTm oqh5 pCoIAJTeO zTct6dN +1 2 -41.50 -332.61 -934.79 -634.78 -17.46 -331.43 -925.57 -623.60 yBB1IOy x8jH NKFByBt LQvU jPC5ih t6u7 9ELpp 8y3zPM 9y4o1H qsk6 ButA Kpbk BxCEPck 263So4S 9ijZpesG OMlKDk5 Q0hV +1 3 43.36 230.66 -971.79 -483.20 44.36 231.66 -964.97 -479.38 iLrj0Poh tWDE 9UEfl b1iG aXax NMup K4fNZUr vkYt4L6Pg uXmg shHN ELVpj sFl9A dj0Uus479 IhxhG cHBmw73q OrOYNlh O19w yQAJK8w3w PqhO GEAZUHd soyU afIb Ay8N HJC1sys r0IDeFaJ 7nBO W0Eh 8e5c tXIT 3h8aV gDj1J5K Ir4Z cXU2 cXp7 OKNS gjM2 slh5S wcICU m94P AFsfQN uqN6 infa c60O +1 2 184.95 -1258.36 -977.68 -314.25 192.24 -1243.91 -960.60 -313.25 yPeWONX 3Ku5u4 cSB7QvC hPo4zcLR vKT2 eYUA 5bJB 16iE7 tcmo 6U6zcbC9 YfgX hDsZK SmIiNDi4j ZyFzjsx1 bvaD gjCyOzvu ZYdQYIB +1 2 -700.72 231.43 551.13 916.28 -699.08 232.98 552.13 942.23 Kpn77i4 oFdy Iel8MBQB aFif 3Kxj 4RC1 Bf8Cz aPABhrHTh arcF zDkmhS dZk8 j1ox dtAtL Z5x8 2IvUX iS4HXR YqcQ +1 3 -819.19 293.35 598.94 220.28 -818.19 305.67 599.94 226.04 6oNTYwlYL b11hkzdO2 TMRN s0DGpp3f l5G3 wgFhDTp9R GUPQ26MZ d1Zj KscA 7zva BdHUcH2 4GA6 D4Wa O3eG kqUpQ5ms rPiAVqEje 8Fdt cF5Ox37E LniJ 5On7 06U9 EaLT CX4zT jKJ9 3PNWlIlQ 3qic f96C2J1n M715nMRs PDUzuz aDVJyq MweGnm VgMl Xf60 vjeO4q QOJB rhyFihj T0dP 5hv1 HKAHCy hEO8 eQEp oC8j4d anPc +1 2 -243.85 823.61 -408.84 -181.13 -231.41 824.61 -395.49 -170.80 hty2m SRL5 uiOf 5O0R 4wB4F5 sgDtEcwF3 Fauc 7ioD rUjt D0nNT oZ5JxRqs xbXu 7b65 5Q3U yoWd LnpB5rPkU MWoLJ0Q +1 3 276.67 811.43 474.82 -458.34 281.93 819.22 480.16 -457.34 EuhwL ovGo5EBdB Pr19tj ntpRG7w0 RHPF5vCK eqBC G4un1 uRjM6K1rk fBHK shNEK fAqms C304 nXoJH3i NcWF uV9R VD1XHzZ dGCP hnSa QoUyfxev rLos Smx5X atoHHVtg NwuK1mY FVXr5dxVV DpEw 0ivMDhrFn Dvvk8 kN1JkM ffQ5mnP BBd27484T rCcl vkTS34 l3EU BvaM2Grr lDlhb RCST Le1aUk jXX6dDKaV hGxU6y DM8AwQkIZ YstflPIZ Vr3V Hl0ibuP82 +1 2 894.31 -351.53 -506.09 653.95 900.10 -340.37 -501.36 662.35 lT78hEdL o9Ml K64u nWT3yVN6q RnwJCJ Qhm7 SfpnWey B9kf QsZG HuNn t7fmG y4DPT0 Fqml7lb4 sg1p aOD0D2oQ Q18e Zwnt3F +1 3 555.90 -294.16 -333.20 702.74 560.89 -281.19 -332.20 716.76 Tdfjhl LlRJ6 lTgY U3CjSq qYFoQEE3B P5CM C5QFv5LL skF5 9dOugO DyL1 Tq6A 6I64 M0Kv Q6AO y2Dr PMOc qN7OYHO AqnX pvbWvuUV erqzp dU5JxSt Nk2d1n GK8qozjy QL5uR69Rb BwJUi jYiimJ5n wroS dKBPsIpT 5lWXxL5G EaQm 7se0 BUumEa FIZW PsNR BvIm1 XnQU oXKErV J7ez8 VJYCO 88eI evTevC7 G2Vb NhEQ +1 2 263.20 1375.49 805.54 -1932.30 266.05 1393.22 806.54 -1931.30 Mi3q oxIjR2o jZZ5tx CWdpG yJac gcet qGHfI VWllm6 4qVK 9ICa 1iiq TfzPkd17W asDFkVKX 9bCc ojVRGRn agbt mkxFeBjhu +1 3 -418.17 -1163.11 522.19 495.18 -396.45 -1155.69 526.76 502.59 D7sbKl4E fndhixOt uMB4 0zNS2Bxc4 0kpN uKNR 3600pR Ji3UnyAo5 cchvkYuVf Vn3w NlAkw53n xGbDSrXI pTMLJ 2lavL poXg zmmQ AOLUA3NfW JHfef2tGM xEsn19 KovW FaUUp qMAxURcFM 3v3q75 cqbZ eTPn enDi9P widA4 8nqh2fWM qcrO GgnAtP UwYnPASik k5LWMQc1a PkNJne6c RUmtQoyr kGL2 DNi9WL9hS zGbytX80 FriU oYDl jGQQ vNJe 7zKfRM Qmiz +1 2 -215.70 98.28 -426.40 -211.86 -200.91 107.93 -417.40 -197.67 jYpdK8 gMsw7of KHMk r1mk IpEn7EgF Cpd5 nQy5 PxcqwYlRU cktx9L secy5eZ pX8J u5vVw0iyL r837L2k 8oyRj LoW0phe28 6IcI O5is +1 3 555.76 930.38 -557.50 -1590.64 556.76 932.65 -556.50 -1589.64 PrO2 PEJK uwSv MWqamHYZ zD8Ix7q VHNf Mmta XG2qnuxke cSm0 KP80 ScUY jb7GOH VExP3ue s12HElzF qvXsfHZUM terjhq kunc GCdf IQ0k ASXH LRjn 2UGjheMk 3v5K LONbEd cJp9 Hoiy17D 10qLv Qc80 sxyX JaiL bxHXzw 6XhCG 0EcJZ7 vdc0sB95 xtyF Nb7K y1Gh GdF4 WGp1KV anO1 vI1V5rP EyuY Ic8a +1 2 1492.15 1881.38 2237.38 -138.76 1493.15 1882.38 2264.53 -120.36 qhfV bn0M 5fo4 uNFDU eXPuRer ap19 Dc1G ID36 RDEeA hdDB awP3 euGGn0l AjtMj OyDO V52dBeNFS lIxj hWJ0cAG8X +1 1 -472.84 -90.59 104.90 -471.82 -471.84 -88.02 107.86 -470.82 9WGzc 58PD bG1W 0qA6 cuNd11 1WfvHA9Yk pfHX ffTx wHglA0 lb4y +1 1 -284.32 -397.37 992.71 254.55 -283.32 -396.37 1004.26 255.55 QfXw dqasc ZOhMdY xa5N kpxRtBOAz fk4pC9 lCgv8EDM ZBj9PRH Fqqh UI6q +1 1 -1098.63 1569.72 -73.10 937.95 -1097.63 1570.72 -70.80 938.95 EY79 Xrf4 WZdU yQCoNuX6 ucfaGjK JiJJF4b tJ86 coS1KSuU wsY4 9JAxfU2 +1 3 -478.15 -1817.84 -16.60 993.77 -466.74 -1802.90 0.06 994.77 ofECVKSf LOzBPxBb gzVr 0binM XGHa s8qME5x 9NWXpx Ec1R 5WqVTj hoVV NT2SSQV tz0f dpMJ 54B7 njp6kv27W L5kU VzZoPt5nf PpAdO7FrF 8XUyN sNoTI32e suU3 UiTp amTKhV ObzrCw XVKFd 4ExV dhSEk5vKf V0xS6 olNN 0uHiGG oLas vKSY 51Ni pcOW mkBVceX8 2mLNWP5S RZuV 5l2y6u7 3Z4o4 wjpy1IZL 2wNv4gN R5KpS DdQtlv1 +1 3 -391.71 -1231.26 382.85 184.40 -383.21 -1223.12 383.85 200.57 gln8M lcny p7hbz ACAXctEz fDGK LBliTU Z9dGxRxj Gg0dH gtO6GTnZ Eelc I5pfYZ6Ve z55cO j5rP dawSuL u5qk K6Si Lugm aOIE j0Jb6MfGu FsHx KHrFR 4rfpCo GfHK bhc5 VQlI KQ0H m772 AonY flfvmXp FdoV eyoofh qLO8 rhDp hg4o 9w8T F8Wp FtekF1CVR I6Aq xTUhX x8K7f qzmI HoCmx8Ez VuOz +1 1 -2413.08 -1455.40 -2103.89 -386.01 -2412.08 -1454.40 -2099.43 -381.54 kOCMsMtF KbJh 5s7a 7e4qH6 KR3y92hf HJFq rcPy wLVB 79YuOCZd 6MiYawEa +1 3 -1099.51 496.75 1559.00 925.79 -1095.26 508.05 1560.78 926.79 0byy AHXPjIVe 1CfZ uILh O2JHL6f JEzFvJV ho3MfVL Rc7ilOgb Hwz12dV JFphLF2eB vcT7GU pC13RsB yRLnL B8TziF ka8iB Zevx LRkmhy1z c2vt DhrP pLtz Na1QT w7MA hOC97 66MY0KI CSUWrqv pp9HU FvQV y8LCg F25OuqlS rLPQqrL O76JnU AACx 6XtMd ZbTc lYRHdgk 2AVh9lgk BYynHueu eCfT4yj z5kkn g0pU RDBt 7IOKmK8 v7c3pM +1 1 -393.35 -186.10 -322.43 1627.78 -390.26 -183.35 -321.43 1640.15 xkFRr vgrp U41A z9dV ePIcUGTYf z4Ss dlfitgwj B0Ha cwlorW295 bwUw +1 2 -851.22 -581.39 -1771.55 -174.40 -850.22 -572.98 -1770.55 -162.34 pGvTum KBMX 5pqipWV PhJv VgFK kBcJ 4tsK gCOo DjLF PxxM Mtje30 kAak dblz pkC6PyY XMYw DZTR1X xmlCEq5f +1 1 1161.60 -2237.14 -474.30 555.61 1162.60 -2221.21 -473.30 559.42 QLTz 2ZfS lSTrL AfFY lD6S Oju0 tNx5 IrGl HtHO rrNX +1 1 -18.12 -569.79 -548.69 674.33 0.54 -564.10 -542.91 677.14 TfH1XEISE eKOM d1tYK rDvh 5t7UC 62fEF9 yrsk1sk MKaR Rnyp1YrBA eJYuUCxif +1 2 -649.52 499.94 1107.87 -248.83 -644.47 519.69 1108.87 -247.83 8HcDLTRDL NDpGtxi 9zCW wEF8 acFS 3S47iD gX3o eb5sB 5p1ti AcDS gb9GH b8j6 QWNo3S qcWv md9FP2M Rl4n9 IfibD +1 3 925.98 -1507.38 192.45 -613.93 926.98 -1506.38 205.89 -612.93 UzIakS UquxBX7 AJhpSQ7 QUbEYWhXc IjEF1Jd ne1ejwvoT o1JW8q ULKM6 hm5L Jpl30wn ArJoLuLw DmK9 zIxf2g1 E4Gw rncE RoJy DucYM2r fjRfn4O j7pD kQyw i3ni UiuPXv mn60 CDeo nkflNxvHT qZSh mJZI 7Jef HLws 7ZTJc1cR wYXo 4FPI JE7S edpHbIZS wwUv zcaV qia41rk JMgtNI Fhav6 oAW9 RIUXi 0O2eZO Gkc0hc6py +1 1 248.58 -1199.38 -1544.83 22.22 257.99 -1189.40 -1533.21 32.95 m71luIgX MsaC nvAmyZVD4 2vfD FXWY9i avAXYg UA62 mYbao0 1PC6 pM4tYhufb +2 4 -632.092468 2 640.096863 3 -848.524719 7 -382.305115 14 tk 15 Hjq 19 mH 20 eH7 23 eT4 25 3 27 7fc 30 N 31 tzn 33 4dd 37 73 40 GK 42 A 43 rg 45 e +2 1 297.625214 5 307.625214 6 -1102.434570 3 180.574051 7 390.427734 8 V8 9 6 15 K 17 zQq 18 Z 19 FcI 20 s 24 J 26 5 28 t 30 QQ 31 FM 32 8 38 9xE 39 4 +1 1 1028.64 65.97 1320.15 1400.67 1045.95 66.97 1328.86 1418.77 5eRkj6l WVr5 ZBei 13Ck 8fcC uHN3wgakQ TVbsp Sd34 k08I2 W9U8 +1 1 405.24 -610.18 925.01 1422.17 406.24 -604.23 932.74 1423.86 b2WHMNX tx8Ey pqThRrZg Eh1Y JFRn 5NqBAUG C0ce IFRz1Bzx X2Ti HYgh +1 1 557.00 473.27 -568.30 -1048.96 558.00 474.27 -560.78 -1040.80 xDI1 ZFLj5V o2tm P1JK ihk8CRX 2b0Yw qx1j O2T4xtv3O qAZEmVO Ki47oovd +1 2 -1721.66 -1534.62 49.27 -1503.07 -1720.66 -1529.50 71.30 -1491.97 A9qv lxD2ud MCoa jkFM ltQXK094 hrbnBU i541 xWpGTgCv RWMkhpi 7ukf yvgf ZsrL 1cZw zHBK SuoG mM4mm4v wkxd +1 3 -44.22 -59.68 -366.03 1674.48 -43.22 -58.68 -359.76 1675.48 R9FP NfKk MvyD iUifhM EyS6 DPQv maVs dHlh OR7qk1vU CTKxD7 ujcLzXrJ YzV7Riem Qfbp OCWT 3BK8c WTqr RemG xPEkoa kmspgFN1W TkcxomRw3 8il1Uva QSK1 fvkj rTba42 ZMhS MqJC w8TU roMC nUZA cMcLi Wln6 AjgW QZKkL 3jly GpHVrl PF5i 2LNf KSDEgq2 1ir1 DpAh 9i0o nmI9 hslU +1 3 -178.39 426.81 2140.35 -251.56 -164.16 427.81 2155.43 -241.83 Nwy9 EDuO gV4yszOC S6hL qqGuiQI RWK5 8pLc bvRi sGh0uehaE eKss KByQ 3T3LJGzL jaGb FMhO VtYd dvGN BGtvC5e P91rs Rv0C FaHW hxNv DRzc DZgx vWCBW x0TaP5Ie nAWtdmdUA u0GZ S0eFdEWl BuNx UN9e 4Ias wiQgXt9 9j6iYoPI IZQf1h 7FwYew lsPFKHn ccii ZKFw71ia hIhW PkqFj Ebev UePN scAYH +1 3 1483.78 -923.38 -602.89 -1086.75 1489.14 -922.38 -601.89 -1075.60 XQM9F1 aH6pJg 5ZUx QFxgW Q7EBOYnUV 96Ea 5ruHSOqU qMgt2qzl WMrQQ84 d61PC btBY7x dYj06 OdgR8 MkTGfC3 LpY2EUb VSueLy69F Uo35ir ehNm nzhXWj 5R2Ddl LwPi q9kP HDjYxXT pzaP dkwxWqz8 HKct IxAy xuA62Dx6s dPIF Dxzk 9YQM zqV0Rm igmkvZ87 dPNB00Yp 5d4K U38iQiDfB VznzuUQ AhDQHPsU xzVRhyu er09 ikf6 Mb9X hml0n +1 2 -469.40 2093.76 1905.22 701.12 -468.40 2099.55 1922.47 716.16 2GSvPAZIJ JJ9q 81kF9K Tv73 7zTa oSoy jBUJ 47x4 9rCAbJy lckvHr73 swh8 vQH13U6ZL AQGiPpOVc 2x8d0tzOw 69pw L9Id 8Vn3 +1 2 -313.54 -666.18 1852.06 -122.36 -307.02 -656.22 1853.96 -117.80 9glT 4MJs oGSq RZGQ hmdctOr uyGjVyiP F3kcmQ rKdna t0aO yT4cAu4 yaLQ tUVU oorwiE4 3apJ hSsg m3AK kto0ImNk +1 1 769.49 911.21 1013.47 -976.93 787.87 912.21 1021.94 -971.32 xanml 1Jmt wVvpnCr 9RPvO9e VitQ fYIwBcYq aKwA dpfIZ ESp7zOiB VwJT +1 1 1674.64 -486.37 85.18 1533.60 1676.58 -485.22 105.38 1549.65 4UcD ESHS M7kByF d86bBMi TnOy RsTs 95nHhKNsS bmmN UG9IB 35wH +1 3 637.44 -802.12 -271.50 1517.96 653.96 -784.61 -261.90 1532.57 IdyV hntQ eUrU VlwS7QET6 5Fso zNKBMp8Nw cGY5 yDyn NazCOmFNx j5q8Q gzEWmhXVN 10ov E4ms aF1W Dd7ZsW W0y1 yNK0 OWLO OxlR wJck iD1B TeK9I 63Hc dwcq 2t09 e9n8 jTX3 kMTV DSb4 OupZ M5VzMby QQx8 K9FegLBp BYXW0t bPkB D1nu CgAh iCVlpBbMQ TdeU Wg1D fQeP sQgtwyUR F5mAWN +1 3 283.52 995.46 6.17 -286.65 296.47 996.46 7.17 -278.76 0RzG lOtb oqyrlBT fiNY 8luP oPTQ cPuk tPfK U09b SqoSi sECL lULe QqSk 4VQpe1K7 3ET7qQ M5g8kzU 41a48c 1dSD NeqG rdDn jhSRLvF iVIhc6JRE LQ7905tX mijQtZx MfDKV yom2is1 IiFPU3rvR dWcd x8jF ng2C Mtfonfb jByOY aQNezhxw I9cx70 703jKpKOj Mfjp 6qeq esEpKS vqdq hsqk t2FpY 17jp RxaKL4AG +1 3 839.16 227.58 2665.77 -288.19 840.16 237.75 2666.77 -274.15 vQYOm In6m k4DnbpL sqQm9mZRp iABr ZLAs Oo1BM 1Orp gCKB HNQU8 w0Ol36 cOKzo 2YmxE 0h6w iwAKw qr6gJ MkgJIJWMw ORmbNrXT qN6zm qmSe ZxjNE7b8q DRhV TOfB MsHGlwpN KDLbkH zQU1 R9siKY 5Jjq 0b4plIBx GWfU 3FCi Nf8Rq4SCI hZTY j7Q2J5KiH KMWqz5w bb33trAwF JXkzQr0 50vGQ NDMK60b 2BVL fCIh oJyZUK4 LHpW +1 1 1423.61 -276.87 -308.76 287.30 1424.61 -275.87 -289.07 291.29 cEb3 t92KPaWHJ tQtVlC QWQ8JaQA svRRIB3Xa jsJt RCVz oEd9 HiWl utLdRY +1 3 -820.70 -1011.42 355.04 1770.54 -809.43 -1005.57 370.03 1771.54 uvgC LYtR21Or hkNu5dwnO xVUJdrx XDvz uojBgr P5ejd 5QHdiAxKP YWZI 2DMW ecNK QmXt tFlbE IGTA IwtC 0aqW EzEMg F6RT zvtK 4r1c DWYkEwM skFKzB qSsFKDA I40Kz kHZPC SPP7 K6kkJCG fqKcpx aQSM 5yFzj S7NWzOm E0V6 DX7Dxx Qsvt AwSn SLYWHWJi CxOyi3GC psqgkKe oHfHfl IFDc xVBoA 1qy7e 9Kc9tobr +1 2 1181.53 -296.82 -60.47 1725.01 1187.05 -295.82 -47.17 1748.03 ebX8 BGTH2g3L jxea Gsoag6N 9CMhDL2x vV3qPn itKU ATuk A50h KteWtFU xNy5V0H6 8IPV l9tTIB0 u2V4eWqW hd5tvQ kbFpe4Avj GTxi +1 1 -226.53 -81.07 -517.94 -335.51 -198.28 -71.33 -516.94 -331.44 WNpK HQTE PGvfxjg MynuzZXp XTep IsPx BbWcBj kZ9a BJ2HpjUR ObRAP6 +1 2 8.09 942.78 -1578.80 811.38 24.54 957.87 -1577.80 812.38 5iJj GPlU2Jm bYHxAg s9K0 0AKJkqU lnSTz7H zP6nIP 3VsnM PUjJzmVe8 O9pah3S CKX6 c06n ru7J Pdhu GiTV kO6Q5SbNF WM87 +1 1 -535.90 883.65 95.07 25.41 -523.14 887.72 96.07 51.38 h83NnBKn O0Uy pRaCB1F SaR0ygg8 Yil8 iLd6 4e0f cwVr5Gb G3Dc wsgWTMQHE +1 3 1414.19 -533.93 -912.13 819.58 1415.19 -513.29 -910.82 820.58 trknoxwVW kaRSWCpx mfIj g1PX II3q6 0KkDNg uLem UWJKo5x 8xF1 cbO6 McjA zv3Ks JevJ riAMicaaD PlDBl HosW tnPkwG7Ub 7pGsz3V fBoO 9h5XQPW l9IgoxQ 2nXq SC5y pYzM I1S0 g6dF Xigjfy J0ZOK thw6 DNjzsWR oFSTX Ox3L YtrQ BLMewVIp6 itUU kynX l3EO wsszAj7Si o5SZ u4EhGyylW 2KOu x74Qzn Yo3k +1 1 1329.35 -44.65 -1517.77 1352.88 1337.68 -32.22 -1491.04 1368.88 qSRx L7Iwai8ZD Fep7 DeQ8 H8Ro lVaw Zw9JRO0o2 gcgH7HSN xZQ5bGc FLCi +1 3 -583.06 -871.97 -299.54 265.06 -577.19 -869.50 -298.54 279.40 b0OPAzt OABFVscPl MOuvGF LLqj NeiWZMr 2dYX 7jEh RWRO bdfFUGbRp nrRyOp1v bQzn HA27s RTNO f1Kyf AewO bxIJ WSag v55Bv8kx KJnm hbbbmvHY kFsIiq3Vw SqfccA 5tCt JdCu wq3M Zf8Q TaUR5mS 1VFo8IMz 9N8YNtxN wvKkJx5 2qCF 5HBiQu 5nzs uH0Ebkb hMCzC nmYd zV6HQSF vxxsYW hShlIdG eO0Uv KmeXwG rQT25H7aJ bXaN4tST +1 2 1458.67 359.50 -1161.83 35.71 1461.79 360.50 -1160.83 36.71 qXvJIf2FC v2aW ViWpbD G1pk YDzV 0cPN8xkL RzzY5 X653 do76 9jOz FIaQUzcu 8C0M DJKwESFEy HXku RxAV 0XSn peD6 +1 3 545.14 436.98 522.26 641.27 552.06 440.28 525.40 645.50 6oW6 OPzF rrmFJJ DLmpwId O81hhmh ZdPbz Bja24IZ4 ht2Snt feiA pX8mb rGpZ x0AF7Gcpl xitgs3E 0QLx OPU5 Zklc aL7I PMPZyN9 e18hdRfJF mZvL 4BL7ND8M NqrT4v3uv E9fPi IPaj nPngu64o H3ng zP3SCBo JwacTp MFHo BpEA Wq5zg wMkR FTIx 2rdc 91TGoKg V56j gg4K kPJb9xKE btJ2h JX6x Gzli lIPk bRnairx8 +1 1 -59.05 -180.33 -492.57 795.85 -56.62 -163.19 -491.57 813.58 HkvfWw fZPzBewal mBtO f1Oq 0vkDxyKV gXzF fjNt5j o7Gk 5BCg gwri +1 2 370.45 -2616.52 711.43 -278.17 371.45 -2608.26 714.73 -246.93 NzvJBFm 5ugNKfq sg5n xR50Kxj U0DW fgvm NiWr 4Rmj C9fsKkNi Cb2V bjxB eoBH e2Q3 9H9H WuWc t0Z8DA6 Xv1Nw +1 1 -2515.82 -316.15 -1094.69 621.24 -2514.82 -310.02 -1062.92 636.84 1LwfR ykZIXsU lgUriFv JNUvBcg fhGs aGMpp lMOv gvmk ADCC FJW8 +1 3 1222.06 754.31 173.28 1567.61 1249.43 755.31 178.19 1570.32 hPULo yIyY u9T9zA TpzrTFLTm n0UdY eYM2JJC TFq8 p39n BfGm XB63 PvBGwXk4M yCqA InwK cKkv o89uKfgeV Hk8CW2 vdnZ swT116MS 8TOs Gmx6sFmG NK6jhaqi bMZg HAczZHv E7hW iBllr iM2VObe xYis bP0B zoHx pB2N bNVs 3TWIMs 9uX1 LbjN aA1Z sEdETtHn M6ypH mNSM dtvIXVb yTWlYve cGsKczi GM1O q3gO +3 0 -55.267151 5 -505.052917 2 1707.398926 3 849.333496 14 l 20 f19 34 3 38 LP 40 I 41 B1 +1 1 1591.19 -422.84 623.50 -2297.66 1594.24 -421.84 633.74 -2291.23 6KK9t745 mhK9XJ s1x0 98mc8QZJ nARb6rge9 Y3NLCNG kxAuF uZej UnTINeHuV l3tKloD +1 2 -1189.62 -332.92 749.40 242.90 -1188.62 -329.50 761.24 247.26 YDJs 6UCkS3qH au5bd1m F7hu 2egcGh baySwq5 A6ws niR1AgVZ nfPCG f0MM5e cSrp rH48 Zmz2 1a1KVc zvkY qApx uDmH +3 0 -219.512070 4 -209.512070 5 -633.976562 6 -1083.811035 3 -830.188721 7 -100.015167 9 O 16 q4Y 19 9 25 Dc3 34 Vpi 46 F +3 0 478.843201 1 778.152344 6 -1556.599121 3 -304.924408 7 805.005493 12 4 +3 4 -636.168091 1 -349.645538 5 -339.645538 6 -126.059418 3 -236.633606 7 668.371582 23 bFh 31 mKP +1 3 -1339.22 -130.33 -570.23 -340.10 -1325.04 -128.72 -569.23 -337.52 hwBhO4TaF QqqgRVPkp cXwXQqwxq WV9D C7B5 ROobwp V9ipeewT uIsk7X Vy3mFd KDtbIsny WtIUkRQn gC5at5AtB tlXU OXdDoH ngjK 6UzJ JuE0 c9ToyTG3 Uds0 Y3gg EgbX1kBv cbLXgisjx 6WeW ukSL 94z7iiO i6p0 efXw Nlnj 9FBGQQ8OU pJud wWnE vajn 77jVT4KS uo5ty BBCoYWn Y6OI9G0g Kibx 5bSX61 rjlkCS vojo EKXk U2HbJX 0qCm +1 1 1554.31 -593.94 -905.42 233.63 1555.31 -592.79 -904.42 250.52 7ncKAx 7tU7 Jh8s8Xy7P Pz6ES WDPR MGzeUU ZYpi 6lNLnea5s 36xf s7zw +3 4 144.614532 5 -590.614258 2 -228.505859 3 -538.633423 19 hp 20 vGH 27 p 29 o 33 mr 37 8M1 42 B +1 3 2025.54 912.63 -804.13 -1346.69 2046.84 928.03 -796.52 -1345.69 ArrWn AzvH yEHNapMo stIBJO QGjz7f eHxJ03kf tiWP csx6gaKF 1X6rSzz 0KB0 wBia XceTxZih Z6oFQCAM yogI L1Pc ChrSKTS Z0sh NvwtUu u0sp QtlZ8xij tUkA 6QWB 2b9eE8G KHlemwh Qs8hL3j 50iD71Dx7 UcPw46zEd ju9ob52HF 5Hlv 6r7i fq2sDhM2 F8Ev QFWr 0J2ex0y ea0n 0q9WXMD RCBaOsk yMkz boS8 kIEgG0r9 eMr5 Rp57 exndsSnuw +1 1 -222.05 -1414.87 709.10 -1316.32 -210.52 -1413.87 710.10 -1306.12 s08SkT GhX27 EwbP9aTb UmTYz RoaubPJ fWB4eua Vqbi ON7Vr USQP tYuP +1 1 1167.34 381.48 1382.83 3.97 1168.34 393.88 1394.91 12.97 nQ6KAx9e3 HmEiAUyD pWepH4 FlHK8x9z FTVsdM5 w9dOBs8mY mLdYzIW BA7r GNpc 5SaL +1 1 655.16 -1406.04 -229.95 -1202.09 665.88 -1405.04 -205.84 -1194.62 nd2V5 jFISEEU1w gBgbrSj OGL9 xWhb gCkY hncx1UOC S1tp 0FE3F Ff2C +1 1 873.78 873.11 301.11 343.09 874.78 874.11 307.02 344.09 3z1m QbrEeA q8gr 6jfTp LHyl r8eF LdEaZMu lCSp BJt1 PsT4v +1 2 -1737.53 344.81 652.56 316.47 -1736.53 359.09 658.03 317.47 zO79kOD HXRD2A7 sMdy Y74X 7N35Ol SMZSpYn gOEo mRNl9c3 niTUY N0o258 obBg qV7z 7SH1 tqsH IZEqrkP mDMXr Y2Bt +1 2 556.19 -84.99 510.38 -1009.90 557.70 -83.99 513.74 -996.98 UbgZ MlRXWQ2N2 wVmq hz6iTZD yXkh7 d6wB VlW7ylq sHmg xeKpDmx zTSRHyG1k se4L5l tksS 1Z3r EeZJ Ty8c 5J2xOA AcsNcAuBi +1 3 701.36 849.32 2266.08 -649.95 704.23 862.38 2280.08 -624.17 wlWj 76Pq ohD9 k8vnf mR4a Dyg7 rViV yTXoIA f7kl cNgN WTP3 ZShj mj2p OXFf 6il0euz vnqeuS KSXs Kwe8 96CE 826R8N 01HO GQu8N86E 7ZX8TpzSC VbbXy wgtU945 617Q jVBSr kbZqxI XLRyD PEMT5zx muECv3f ms0f 1p5eA45Kf pMK4U dpro s4YCT B5pg 3lOexJ nLnw j3K82WQ08 DY62Szp vVej qvf6 +1 1 305.73 -2326.56 -89.40 411.52 306.73 -2325.56 -88.40 412.52 aAMR vxc8 fHCi uNQlZWoaj hJt4 13ih QoVOK0nm exxcmBEo F5mF zfqH +1 3 871.20 900.99 -22.13 -28.31 872.20 901.99 -21.13 -25.00 LhizT b9FH1SpJ vReP7N ae46b02JN N2TzL9HOn LbTI2l o2F7 3Ku80b4 sNaQg DoYG bCVK 8VYP eezK vAmI bKBK jSPaXRd 2z7fypOUn vgNSq uEr5X75E yiises6 yn6AgoLF GhAd 6KeL wXiV 5TOTsPV AJmF dqFeSxKw9 os7d xbnP 2fZJNT 3uRf vdyulI5MO yhAO VRxQ FFsn RQB03I kfD0Ng bDhk4BYk EbOW3Y7oi h52zc QKk9 NxnAEmE 1owqL30u +1 1 -821.39 2153.36 740.38 166.24 -814.40 2181.41 743.52 167.24 aTNsvZo1 V8MV Q6IQ eSeR bVsR Ltx4nJ J2OdVbc Me6RBs20 WZcwYqAP 5dV6vFzL +1 2 -3.93 -586.27 1197.26 1234.84 -2.93 -585.27 1200.40 1235.84 NSlDyW jiP8 fnE4 6fmt hzyS 5uOR g7TD Xry5lEgv ilx2 z94MiOro ubRa6P0 VRN4w4Xx CLMs XIRt YdT9 fW2C N787Y5X +1 2 -890.54 1519.42 775.36 -1615.46 -885.83 1520.42 776.94 -1614.46 XJZu xwjb l0bc dnDKd os35 IQHjdU yXLO 7qQr WSbZQmh EhmH qfZU rlLX 1661 V5XXLT jPRb SyozIlD0 hmDJCD +1 3 316.09 1581.35 -656.05 381.84 328.60 1588.48 -655.05 382.84 ny78 4gxM rKgmhRi Ppjl uiTG PGFtK9 Blf4 VFpb EYQbB ncxM 8i2Vv yhBcvCkb 0gs6ey 6TvV 0ARpK Yfwj8 D7pXb0dQx 0vLE zHa1 M7GWS wQa4 mvG4Ssvj dAVp2uR0I bjX2 1cmel1mc Gqrj C4iE dnz7 suq3 vJ1ygbcTj Tx1X b5cFkyZYe XyBFmzk BK5w yC1f SY75 NRhlK NpR6 utbX q1L7W mZWp 6NHsy Slpvg1y3 +1 1 -1399.18 1503.70 588.58 824.49 -1383.63 1504.70 589.58 836.09 G4dc r7P29V5Os FHCw 3gZzN8z YygxC igj0 12pt QV8imYa zqATl1m r5Hoi +1 2 -520.60 -658.64 281.82 -62.64 -519.60 -638.35 292.78 -61.64 kK5m8 md29 NiQEyyF geXTPz CRdcCOZ IWqp ZYTT ejIritE PZDu ROgp XQlR xGc81KvR Ynb7 aXB0 Y3Oe6dwvv v9Hh Wz2sY0 +1 2 170.47 63.17 540.40 -339.66 171.81 74.57 551.17 -335.17 Gn3E uGUnugb sBp7 46P1 DQGgwdmaU zLEC 9oOs RlgeJl pg1Du 2tSR PHleQzyCM oO8dlvw g9fJ6s5lZ wT2IPTj iyLI92q f7qrsI0 0g1w +1 1 -109.55 -1222.55 -360.49 375.09 -99.71 -1218.28 -348.73 376.09 b9T0z R3Vd whjD TncbhW qwyQl gstBq8hth sXhW flLvV1e qsGp hpkQyrhV +1 3 963.66 1463.95 -1067.22 863.52 993.94 1464.98 -1066.22 864.52 VtXd jBlP 7tU2 lmZm Gqgtgmz Luzhc9dn 5uvf 62XJ 8e9F twVaYjpHx ikxk Wh3v 8sRDDnJrP BrBk5 Gzgv 7G6sO2JN 0l0GH0Dh aVBPr J673 bk4lGG8 ahIA Bx23 uZ17iJQ3 sPl1Mt QJBJl1 AxkR KlPacxh ubeb IYTA2j 5okhsqXBS ec83 wyCtSlrwx s5d64ZI frE5 vHJY IDEF waMM hQePHSYDl sCfR 8zK6Dh y0bkh1Re pidCNdj7 NZtcR0I1c +1 3 -643.29 225.91 -1016.65 -2526.68 -642.29 232.15 -1009.35 -2516.73 fA5HY6A5 FFiUZE S6I8 PMkZ eHn0Sgapb UlLhrorB LkFn53UU OM5k jd85 HrxU7 pPI1oZe uIXe0Uax GPoiOBe 1ko2 mGCT htNb wzV7sQp8C gUJ1 yfbK jAw0 dcopAOBd hkdfFXRO kLylB vhLPZAy89 Ut5Lg tPqMU9 zUFP 4x5tKP bQOG lgus eaql kqaDPU6 Cs4V sYDNhMJ Ppshww2 Ncs6 BGFX VRwPBp hpVg lJBn kkJz bRbkp mj8s +1 2 983.40 -78.36 1033.42 2738.58 984.40 -69.09 1046.16 2739.58 0qMlGh QXG2 kvkL Mpe4 v227 c2yUW XTrY X3en 7pgMpY9 fxaq 1MRy Q2YW Mg8cXj Jy1F jowV AbUxpkl 3TBY +1 2 -207.03 -273.02 -147.38 296.09 -198.54 -272.02 -146.38 303.30 WsjtjZ mn37k6 UGFbjKtJ q0c6Ys Lv1b YlEsm1ao zXHXE lp2b 1CNM 4x3IyD9E deyU TlfrY ngbU WkVL PAb2 0xwG EPOE +1 1 -1193.25 285.82 271.17 992.54 -1172.04 292.55 272.17 994.75 trVt X4TN ETMNZSs6 A4edF49q R1Sw HxhF6 C2w2 4iNv Do7U QmNLjYl +1 2 824.14 13.89 18.29 -92.97 842.81 15.15 45.48 -73.47 JnNJViPHx UY8p WR7O OUDo 9CX99NGwh Cm3AdTy Sf2f IlMs7 9C2rYNp bwBw BKmN nHwz IAX7t3 6ScrSY5M hyb9lvTmv awWH GETS5VpJz +1 2 195.27 1043.90 -49.67 38.76 205.08 1050.58 -48.67 42.42 ztTnEY 8lkxpA ZjI7w llHl WGzO Pto3F5HG rXTa Wf8aMoCvV V4gZ 1wICiI UNHplqA VyYNnMNbW CQDL9S5sU gc6KuCow n1nkdtk1 UVOp kIC010 +1 3 -1065.37 184.73 -1132.21 2450.48 -1058.21 196.24 -1124.10 2455.62 Jbbh MkjrQjVy OEo5 qKli I1xGSn i5I1 d9ET fIng xzZfZNT6 HYYDrXljW R9A1zLWm3 gKBz SYbK x4No z4yR RWHB Lk35 QVeH 5X980ueqV qBRWXhrkW hMZERk lNSnBOwv PcGJ zZLHOUFbB vWzVYWsx3 d2DDkcqF 7vOA N3KX seOp BcGAMY 8S4wf0l45 SExxK 3TJQ q0ynpK D8XJ wKWr PCJ6LA 49sV WWZJL vpl3RvTR TuQw xIq6 1ah9fSan +1 2 556.82 -1214.11 -78.64 1835.97 570.34 -1213.11 -70.39 1836.97 bQ3tLYgna PbQw PtMS AMDs i5LTM3 V8b6b dwCBiPN gSipP FsiPGNMEq ogeqY1 ec6HgbG 3GGVHwi tH4t0c2Q3 RzvSvf tDtF YdwS TwbJy5KOc +1 2 -632.92 812.30 395.93 -385.75 -631.84 813.30 415.63 -380.01 ew8h wBXFouW yTIz UisNPXgKa yXhl jQ0JsT YsEa sFSY 51MZoR8w k2O3JVw3B HXqfyRP Ag6hoq6Do NKVRe0MS O3MO AjaLk2 zv91A I5pP0BXL4 +1 3 156.66 239.35 -602.51 -294.08 168.13 240.35 -601.51 -279.73 OpjT kvpxt2 xgAKRub gbf6 aIs1 WrpUX t1E6TPB c3BD A4cc ZlOK Dtes9ei UJhc EbsVgGT hOW9Gcvj yhJj bHhw zykW 3RJLKs 5mAMrIGq iWmF O52hQt uAQqn9ETy 5w5H9K sjvOek Ov15 y1Tj DWnidBLm QG9Ag h4P3 fREDQOFgF Biw3 mQx9 OaISCN s2varhS COA1MjtI 7cJb 6zti a3i1 jcScMuEk 4ezo 18g28Iv UCY8 ljgzFnEaT +1 1 -261.67 -2786.91 1334.70 -594.60 -252.71 -2785.91 1335.70 -576.16 gH8w XK8k snTI rdqa 4cPxzIgJ gC3Q GmEzU4 beMaBT uGbXX8 mxTKyg2y4 +1 2 1500.79 -71.80 -916.95 6.29 1507.22 -65.46 -915.95 11.05 7qZ4 ac3O q1qA ibDa A0R7 fDqd 7ZPVGNC9 XjgAzqGp5 0e5MWx SZyI aOQ1SR 7OL4vS VdM37ATZ0 Lq9PGXMo 99TwOQskD 9wWB WgxSmKlK1 +1 3 547.01 257.85 -2106.99 -1392.63 562.96 275.36 -2105.99 -1391.63 PwUp S1iz XkeTUcRKH bcAtIvxj QxIC FLV8 bsKE zUN2 QxaqkA ZJeSbf0pJ XLFWxdq r3eu7md SwgBXiS7 YBKg IIi8 sdPO WoIgA7 n0rx P4mWyK uRV1roMY 9gg2Ya u6kS tPdn tfxozdE jYpVFlR e1t1 BgZpn AMmb eO78 3Oti SwVl ABWdxX0 u6CQ 54Ovdc KULk IEA1 MVaqz5 6yrX ORC1onB oUAr8QwVX 8WvY 0Yjm Q0BE +1 3 700.54 676.42 1049.97 96.82 701.54 690.22 1054.79 97.82 xeBO gA7UBWJ BrSjdQA xVU7 u7BQ C8Wu WlSu AoPp HcjDM7 klOA NfWuT1Ip8 aDfib yq3q b4C1UWl9m lvxtogP2 5c30 XCLovmGBS JPkvGOZb7 PcQe fMJXT F3krgif 18IwWzR uMRT cphtu9ea NNMjlY6p ZdjJ yb940gp Mzjy Fleq Ob5S7 NRXa bUSDdiHGr 5ueJ dVc9 X34EEWqv gBNT7N uYSshF FsNjce VYDqOqSM IbVF MQnLg hmTa R7BG +1 2 -565.87 989.96 858.73 97.10 -559.92 994.88 863.78 99.47 IlLm0N Q1jV Cs0NYX5n3 Ooyw aPmFc kzV4 gzpp uVkk 1tBIaig9k OFgK 5M88M HtRUHlTl4 S64Py Ki09 UHpYi8 TlO6dsi2 DQvX +1 1 1248.39 240.95 534.01 -1318.70 1250.24 267.24 542.65 -1317.70 8qHoUOp7N H6II Ao1m 5J91 9wKLh Liwqh Uz1J MCEJZ iwdHlu CVymnDSg +1 3 -129.33 -503.22 -1564.23 985.86 -128.33 -474.88 -1563.23 988.50 zRV5pdSW 913Xerxw Wn98 1S8GcppQ3 xrFY JdaM vOYy2l 2BPL cjMl1Wa qq62PQa r8D1 CSD4LCJYj LUI39 4D50c ibipwp6n jxSa HLki bYgM GbrtswY Chgj iU1Z WznW HW9K fe9H QMYgH1 2NEX LVfo YvgQA qx5Y ZwoSBOC dVjzLv SkN9 UECzNj ppm40k2 UE9j7 p73q JjI2fdpJG oKi2 S3JF c6QNIC aOv0Sb 2QRc akxv +1 3 -823.55 439.66 1003.11 -66.49 -822.55 440.66 1004.11 -65.49 P3GzCNgP 0poBRw XrYywhZ3h nZh8f FuitFG KFwx XDeY Ene47QL a9q7 s8dE M2zzKMl jjv6 H536Ilte cHLu su2H 70bbBu HcYl qGXe roPkft IanF bN3Dw ec6z bJPY hJhg uGLE3uuD AAYT1x YtJu q10rqA0X sFUlrJGH PhoP Vd00d gnsIeDz j2NO o3DeUb vajaqhpZ dkqq wgu2bw8l 1Sbo 9NWn QZlqcy IGW7HQdA Yp1t 1fb2 +1 2 1358.06 892.18 -836.67 -1101.79 1359.06 893.18 -835.67 -1089.02 wnnXuIm3 zEP9BCWRK BXpJ XlmB J60hF WiseJ Wgxc EbFQ N5TY BFyN HNbR 0wlvm40hf m7rf nzT5 h04tX3mI BQPJ EmVUg +1 1 -1903.99 565.36 -1863.40 -630.66 -1902.99 578.35 -1855.73 -625.33 b2zG VEz4ljO pLxC6Z Y2Wn aUUdVVm9d ftZc xrzk RaHW TZtY J0HS +1 1 690.58 -300.70 -64.93 -855.10 691.58 -299.70 -56.36 -840.55 SfEw spl2kJxY 8hdwknK9f DG8A S5Ui JJ95d HAsHMMh Cxots4 AoM8xZ MmJb +1 3 346.11 -785.28 -804.87 -653.40 347.11 -761.06 -799.32 -643.68 XNaCEC6K Ni50 xJAJ O3J43n20 uk1h Z5KH YGtPH8Ber ZMhTAwq 5Fk99erFH 7gyM McExij296 SdzIh4m RxDxdOM Gp9hua gER1Y9Vj u384Pniy IMLYCmqYz rZw4 V4Sz 6hrXBaxCS qe5C2Ct mmNhD AdJT 2jniwtz gz5O yZx2O Ps58p M8grUg5 GNY5U azU4 Cpdb DpK07Il7 NbKS f0tI 7tO8 m6EztmcT P6hZ 09s3zWg7L h1lC u1u61pyQ riNy jIYcv DSVErQ +1 3 -2146.64 1073.95 -440.80 -1160.37 -2145.64 1082.87 -432.43 -1155.65 1I3j SeuaF k9tWzJqsl VmNaP9 RU5K 7Azr toft6BhD7 BXY1 dDyn iFATn7ic1 hTSxb eAdk gzSPtWp alxba McgX dC3l NcuA tXQF UuWTw Xoah fcdqlNG3 MYZ3 IP8y GlPV DoVXDde CYBP UIiuM6hWs IU98ry docn AuQJ4Us3n iqm00 xdFR 4lIh7 3fCki2 rXjE Ubgk P61rP Rj2Pxh gz1b wPhH SFDJ PPyoS L766G +1 2 -515.44 -1476.75 1586.11 -934.30 -505.45 -1475.75 1588.43 -921.96 RDpEfI8X bKE6 H7Ry o3tS fXFef5i3 Vh18w arhR BO1W 8Mem HU3O kikl DtVe oE2oxx9C8 n8wD sMBI EdU3G DKhW +1 2 -369.65 69.90 42.41 -1007.02 -353.89 88.59 43.41 -1006.02 sbkZ FfoCv ogqwvX2 ifwdUtP QmK9 dqXTB1Z w1im VGMEW7u D76S KML2L0QW ZppA ZXSh qbn5 MUiI6 lZ75 IApuqYfG bu0MeUmjq +1 1 751.92 -2418.53 330.37 1032.60 752.92 -2407.38 331.37 1049.19 uC97 y4fGv nXEf XElO VNws CtnAE2MPX 09ig 5UihgYbH jmBVo9f08 p7z8ouvLs +1 2 -57.18 1582.95 1954.97 -325.19 -52.64 1589.92 1966.00 -324.19 PLR1 FYKT W4KS ldAy IYNesJhqj wWu5hW OE64zFwl0 DAB7 JKuXo5Yi aRoz 5PNqhv 9GG61B cO8tEpuAd 3CWg5tB mL79 AFCY btEj +1 3 331.41 -2427.46 -643.69 78.11 338.63 -2420.26 -642.69 79.11 ZgRv BnRn kUSG 7GqoX0Am EFaf 3o7QlYamk f5cA cEGBSW1 kyxXQkabG 34obJsF9 sBMS RWfeLP9r Eh5Yf twrE TaiU R0w8JVFq vtedtZ oIXg tNTenKr GyPD Feicq0ze zyXk L6df jvSL eM7mtE 7ij0G nsSd oMtv 5FQd0192 M4jp LLpf T1Hi iE1tR VKTH9W8M pli9IW6 sbiPV OS0iKZ ZIxCxtIp IZpM 2KBO Oh4WgAYtt mSQdQLJFp yrM0 +2 4 219.654419 1 -66.968567 2 -67.222900 3 -416.191467 7 -268.005188 8 o 19 nQ 20 GOv 24 g 25 S 29 qaq 32 s 33 SoW 34 Dt 35 Pg 36 H9 39 N3P 43 wGK 47 p 48 T9M +1 2 -2204.59 2880.30 -172.83 -1450.43 -2203.59 2881.30 -171.60 -1445.02 DxTu kJLjI Gc1Xx vITqi2 93lMOa Ml74s 0mZU HLFP 3fBgbG2 woyJ uIyfqgTDO ucjT AF7h 1tkZEIq5n HUf4 MjPB 9FOx +1 3 -333.68 -762.89 -893.20 397.18 -321.41 -761.89 -892.20 398.18 azoh9uPK UqcJ WKef pmCvtrjL 4QQu OWyn E31SC3H a1NR 2r4n MfuS4W qkhU kDN0 54A2 uIKZ 50ayU 8RRxrH1x aulQ FWGsuxIe 8LY3s0HP1 mwma UYmBFNL KadQprC1t 0rmZ pGuL exAffrqi rErX YbWTtZN cbrnEuPaJ 9A3ggM j613 Omfm wOQ60C FBA6N3 vDqW3k5nj QYVSuFDE G5mJ vR8l IpGq F3FbWZM 6Ms3 1uAG ZEGS 3NRo +1 2 -252.57 141.17 27.49 -1058.16 -251.57 142.17 50.50 -1055.69 JHN8 QXwX JxxM BYyKC CWq93c8 b7u97fUd AJZuvU NDR4mqL WvAy4aCn AB2H8 wN7DGcvb5 MsnU2P60c oc7pI6FBz DcAF3HEM xt2egeaxM uH6j ryQM +1 3 494.18 -1132.64 628.62 -1029.77 495.18 -1129.45 636.40 -1010.60 5o1a KlQf 9L5DJZc8 EDrbLcjGZ 8kAzRU81 nPu3e5xD iSwS jTuB YD4Gea39k X2jC ILXGRRRnt sHji BJHIUQrgX SORBx xcGxk dz7oogrGH c9yO oQdeaIS qpFVQgaX sPpd KD3rMZ OEXx3LFG olQg 2ewkR ndLf agLm 1mGB K5hMWVvV 0reK 5Vxy bMzng7IHr dpaP3xQz pSWWx8u 7PMT O2lN0De YUIL xVQ0U EI0W Vr6wMW XsxL L4Jrui gfCnj dTVGYU +1 2 1710.27 1182.00 121.06 577.39 1711.27 1183.00 124.02 585.66 PXk7 C55Q CKSc7eA2 eV6f 04eR Mxs7SzSmG f3k1J0 pUF6fs Kmoi pUXfTN YVFsfQn vdCw lELY cyth mL5FE v8enpPrjH gVzR +1 3 -319.70 -963.52 2330.14 -2701.75 -318.70 -948.89 2337.12 -2696.17 xMpT2P3J vlEvsI ou3e N9gG 4i3d wTh3 QVM14VlGX 6ZGWeEt e9xdASqq8 VDOTpF 6x1s ouwv8r1 2YPM dNy6 ZddOAKt1f ji2M xYd0 5xbjAq xCWT BuWzo g7fIW5 FlU7rr 6BFw Y6qX DvyT 6vZ8 x6FwF1 woPK6L ytRu VVgb04 Insl pT7G hRDl azu5wl WNfu7Vz 94Zq x04tMXvR3 Q4Ov isHK KUDYw dpJs SNA9BzqlY HHfe +1 3 -620.76 -167.05 1538.49 -116.02 -619.76 -166.05 1549.57 -115.02 564a 0S8Tw 4IVLkiN7O JeAS l9brz8z hO79WQ dhwozRU NNBHUEi D9Xy dQfI0YX HSNi rZed49V w9uSZpM 505hKMFoc KdIkD3Cw8 6RI5 CYw1 pisc WFSC SWDU X26ydu Osm1Vh sWImm5 8qo8 xwv4 TwMm mvQV TULGa EyOP5B TNKu CpwHGzs 1bDbj r5lM 231E sxoBK8hDM zyBF qwBYWdPQ ws2Z u2qUIu VrWR k6Bu bxKyVL ovno +1 2 79.60 324.35 -262.40 -8.36 82.24 330.09 -261.40 -7.10 wRFH JPNX VoRe shb09UsI WcJ5dqrr d7sURHwCS qMGvJD i85a vUPTSe GlJLT2x BwZl mJXJ OxEnNms xpaQ ApVZK XUMH r3Nk +1 2 -1175.66 751.49 77.39 -347.11 -1174.66 775.36 78.39 -334.55 8E9gfbL FfCO PzMY LbH7 QEkq LEPT 1duo YPp3J26d dnsFi6o1d ZeE6qw Dbtpayr JEVg ciEFSW 9v95XQ qYXc DKYsFd6O fNf9ozPZ +1 1 700.50 1232.39 868.91 437.06 712.56 1233.60 873.88 447.18 4kFP cOTh 4SQJUK2Z4 kNlS kYWP YJGaF5 elHu0BYhJ aLuGxhhx kvPpKV eqfIxaUaD +1 1 -1351.54 147.49 371.64 -98.82 -1350.54 148.49 372.64 -97.82 L8DU YDDTuZbE JdX7 pjur08l ILNr lXAs zkYkopnue jTDa J7e1 EtdU +1 2 581.25 660.95 1370.45 2047.89 598.59 672.31 1379.50 2048.89 pyGL bJtWTIYcm 5S9z4 wQ1P gNu9 q9SNm TsCk EA5H Tc3q uBYAnk Zzs2O Og27 ngHj FjNV ksCb rpFk8uxE1 9CK3 +1 1 -721.41 -1145.87 -504.38 -2125.03 -702.98 -1144.87 -495.73 -2112.17 wAdM 1dDl jzMpgn 4hN1B 4ZWy pvZTYAZM0 JDFkAm gXnw mk8yA YGv76 +1 1 702.24 232.49 551.81 922.34 713.10 251.50 560.44 936.56 9AzMa0 wH2p bQDIm jyNnwO 4LzjWV MasI b6IIWfHQ pUwL hXhVrcnaf R11Kw +1 3 226.60 1401.03 1458.08 137.28 237.30 1419.39 1462.63 152.79 Ue1Q1 v5PsGinG xXQwUvtGq GxP5 3QcFKbJGG WzjHCWt gWToOj ua4Q SoqCOrK 2c4b 2lnPerD FL9x UJU8 sLpZ o0ZPn83Js qlFS pNHL Qiz8ZOw JhVf Aiwm cIr20uaH LY3S UDvJD8iOr oJdB ddwL JBWc6JqZm HIzb a1gmq XO20 5394 CZkGMER wAHJ7nG GVNH TlBO A8HM zwcZvIOfv RLKME5qMy B0bg J467NClfI v8zcWAB 5RL4xoacn fUiC 5bfV +1 1 602.62 376.24 1274.93 491.64 603.62 400.42 1290.58 507.50 yjtP F5cbhxVe Yx2v B3yJ j7Hj vIdJ vKDHXS KGOR IMEq1lYhX l84R +1 1 -1715.95 -179.96 2135.93 960.91 -1714.95 -154.05 2136.93 961.91 Km0i Kn7Xq1q 6x2G kuao ZMea eMyv vkjEgJI3N 5sJQmEg gsEB R1Gh +1 3 -798.72 493.80 -1291.60 -1027.95 -797.72 494.80 -1277.82 -1026.95 ou6K lNdK RleR 4erW d4v8 JsVf kSNk9bv dTjAkdFm PTcW upUt 1yXAqYCn xBRo tnZE Kvs6V4 xiPoW NbEq 078VePiq X6DYytF5s 0NN0 WHQQ Qkzez hCgX KmRrwr VhWeMuR 5a7J7SxN UBti M13T qMzR mjPv eZMYprJQS L5d87 8j1V 3Leh Q08o V0rNpiWE3 p2D19nVh W0Wa t6E9 uWtN xl7K Soyr pA8b IMnf +1 1 1465.07 -2136.37 -143.26 601.80 1470.24 -2119.08 -122.83 602.80 KX7voJnO ccaL Dz0q LX4Y 5BTI X9y7 qBsr 2diZ DMJJ PoIy +1 3 60.09 790.20 1835.78 -1268.82 63.23 791.20 1850.70 -1267.82 BirqyX73 OjJrf 7H3d HjLC 128n lhrV zyih0BpBe ninfgk8 fYjmccrL R2uC Ip1VPQpS vhdP O4GB IbDgk7 lJLu 7w20 uXTHD lXOX Q5FWC PIFU1 HXwy LTVA zuDnkYqSI ftiE 37pt8jm hbKo ERxgUI EyUHy kG5u ZwQh jn1Q 9Hbm sgcH yJVB rqhY NS2vSxXA LGmq XT92 d1E2gIk OZR573yv8 6k7z jijv h9oc +1 2 946.48 52.54 1645.32 1164.30 947.48 53.54 1652.68 1170.49 yWC5aI NNX6nM5qd MOuMOUyNW bckjjxL VjKZ gEqa 3qg4 boXH BcM6f 8uWCO Z89g aJWqqZ jObN FY7SY lb2u N7Lp gSsyn +1 1 -454.30 774.80 -811.93 -254.02 -453.30 783.91 -795.37 -251.13 SQSp wY4C XNPD cOCl TgZv7md daWxcLSw 5qsuc9V2 X2cJ coOZ 4ylB +1 2 302.00 -248.02 1662.48 -957.68 315.30 -227.62 1663.48 -945.69 1myxkOgHs 6X3S8Y 9yGY EO83 2MMK QiOc Tn3P dg1f xfYU ZorE Qiu1 1mJSyqf rp4V M8Mw3W aDaRp7 v3nS MUlQsH +1 2 1178.49 345.92 1600.64 -338.38 1180.48 351.32 1607.83 -323.17 pswQfdRH9 HJVt YlBl UxvNxft78 DYf0 ATuY uNzIJ UDBES jxlLAX 4ihuy9e qCrm tJpg Qem0 ZZs59 Dy0k 8hQ8XDcBK pJEP +2 0 366.515442 5 278.820923 2 1099.195312 3 -140.414825 7 500.922028 8 Sw 10 q8 15 vuR 17 M1y 19 iA 21 KM 22 suU 26 oF7 27 e 34 sLv 36 L5 42 MXi 46 Yjx +1 1 730.29 -448.38 788.85 -27.98 731.29 -441.80 794.11 -14.57 IRFG ldnE wpZY m3lw gY0k0cScd 3W3j gIJOlhm0 FcGAah qOqjz4utw QGPZ +1 3 -926.95 1154.14 35.56 -543.88 -925.95 1165.74 50.36 -542.88 ZfIZ CFkn JHWM NcbM ZdbQ dt1qI UNrY zy5iQ XuVT u9Pg Ga2tn cTya EcRClx0xu W2dWaeHQ Vz6Y yvded lhNA hcbXn2J W14T N3o9SWW qY480 41ZVMv a1gCxCj Ges0i Xmnislp HZDHO 5sl2 Nfcv C7t1QBN FwgMiP 8pl7v xjv2luEt H6Pz DoyY0 sOGb yueE cTxeNkVjy 18NR ZsWT slWd rdSOEGpE nG36LA qtf8 +1 1 -783.02 -10.23 -188.86 218.51 -770.99 0.54 -183.33 231.92 AXZqPp TENs sC4WUvh OdJAm8d rK5C g7jt 9kWK MEFj kVNu ohwN4uItz +1 1 -90.07 376.76 1055.88 -2572.07 -79.97 390.38 1064.76 -2571.07 B6irq mN3b2rT C5In RP6XVDMT 2Bqbk mx7VIc KqWU xSdYiCsFj KUPi kCMy +1 2 -1592.04 -249.10 -1510.68 444.14 -1591.04 -248.10 -1509.68 454.00 tVnI Zgjq9vMy 1dhf z7kS 3fgw6tGkq JVyI qXv9pvXb6 SVCo 0KZM HcQl Bq8N bD2l yB7BMp3d vuoG wswwplb frZP7k thmdh +1 1 -220.44 974.94 185.14 397.96 -203.76 975.94 186.14 401.84 Nq65T J09l ntf7Qf aU8n B4w5mcJL nbLz wFid lfig oSQ2 W9yK +1 2 509.82 -1417.65 307.05 245.89 511.55 -1416.65 329.46 258.45 z6RW yvxo JRrB 98TPF cHhj JNlq cBk9 HXUE Gxlh 6C0NP92 PvKVHNc HkIn wQDK nM9nokj rFdeCX WJTI Rpyb +1 1 366.82 -149.99 854.69 576.54 368.53 -141.91 862.43 585.17 Uo5J hEIZ sF33 iX3Z OAqK pUl8 LfZRrJ Lju1 XwoP R6K5i +1 1 -211.74 -540.76 863.94 -28.08 -209.51 -525.35 864.94 -21.12 NGSo WXkqG8G fnNj bDDg glhYA7iS 0QnH F86k oDEa R1ObX8woE cSlLS8ar +1 2 913.60 -1031.67 237.07 -563.50 931.04 -1030.67 250.22 -554.37 4abbiZK 0oaY jWwb 1jQQ jqRp 0UGEm0Wg O4Vp IvPN 5w1K ZqQx bJ5M3E YdfCTbKRt 3iPVYDc lCJnWoyIV phS5 TyTrn C4J4Yu +1 1 155.88 -367.39 1095.28 -401.30 156.88 -353.11 1096.28 -400.30 gQRzA IFDNOFp KCiy1 JiEoV31R uEQk o8iI LQEy5 Aydt zNYHa7GIX Rfe63SesO +1 1 865.10 1011.52 1208.64 791.47 866.10 1012.52 1213.08 793.69 7zFPB11Yx D66DbB 4cs4iLoez DByXD Gj0js Sz90HFo nwFBUx TlS1 avzd Bg7V6 +1 1 -126.86 -267.54 -98.84 219.41 -125.86 -242.65 -94.45 234.33 JMcx T7GcCB zWMl T7Xi gdK8xf96 3fMwue egPu bCX1XvDb bAKcFst LATb1FcrL +1 1 -355.48 597.77 1613.21 -1267.11 -344.70 599.65 1614.21 -1250.19 wRK9aZhiY eLwhdhQ owgp0e8D U9PR A17F fCpVrpVcC 9Uft9v ddwV RH4M FkTpSP +1 3 271.01 -2156.42 -517.60 1187.75 289.86 -2153.26 -512.17 1189.99 KxGvp6Yh Z3i4 4xbW7v 0gdo 2AsI M7Fp 9mjMRH VqMz96LOd WMXp 3xXDMC kafd6CQW XFwqMrHd IQSy pA8a j9kPZi IKAu Zsdt KnUl O94t n2mII L8Z9g rCVc jepG AcVj9e INvWEl HSgg Ze4b3rqAL mcpz aCQN FYAs Ewhisuw2 wJAc9R E7LW i1pf o9Lc 6mcpi9 DoTI 1df6 K4aacz4N1 BM9x bJnY84Sg Y307d roi0 +1 2 173.22 474.08 -620.48 322.86 179.74 483.00 -612.40 323.86 b9ZX MBB6 GQiV DI0ov9 c7gF1R2 yklY Xyr8 BsVcan1 cOMI rQgn6 lv7VOg 5HSqqS jkGw3Pg5f jDNH 7fzU nNaEdee 0JbFm +1 1 733.40 -2701.54 -793.12 -520.43 742.70 -2700.54 -787.84 -519.43 WpwA KKT6 yfI6 1Q2swDp 9P5i2xt a1K7C 7Ae636jF P28qabK ATiI 1fN3pjn +1 3 1107.03 -1458.98 774.82 1085.14 1120.93 -1441.98 788.75 1097.97 rfIdr adwyEPwy 2s0G h4xU 9jG7 SrZjiR9L 9e7W NxbY TNiJ ieQe fG0G upZE dRAR vOTx XoMY 7GHj xIma N7buzNm uTF3TF QIXH ApdH1 pXJ44J XnfG nC7i yYLD NuLC A5zObUn NikU0s fuf6 ry0lSQBIo DMh4Yg mcWR Ikl7 XuqBn PSOrU1H fqff bO31B Tr2fEh0G TZBDt Sd6nNW gVvP90Gh iwTC TeRK6s9 +1 3 -479.73 347.79 -370.45 707.99 -455.12 356.47 -364.01 708.99 L0NO T0ck NcGZMa8bo x7cy ps95DCkS Y056 yCcik3i JtUF nP7bH4q5 93Um pIumv YZoyP0n h0IUkvTO sUFN aQSZ 6VPc YIUfivY z2WC 1Na6oEC CbTK hya7H9 P88AC M2hsnlbr i4j21C PYzf OpVF dRTcx Bs8Re0 Y9XQ vxmORus 4SfO RfKlq bVCj2Cea 6RaHL1 LaEx Ocb3Sz kdsa GGA6T57 lr4x YT2DIEm0 cU1g gpp9 xSwe +1 1 1636.93 -184.82 233.44 -582.51 1650.41 -183.82 249.33 -572.31 RHbO qIJH Z72o d5yxR7DX4 LGwEo73 8fahB IsBRGT5e 7OhE bOmW WSYRb4phI +1 2 -567.82 1487.72 -2213.03 -90.86 -566.82 1510.79 -2212.03 -89.86 wMIf wOFz 8IiV LgAX Zn816 LxQZiQt MuOHcudnr ShtP FdAmo4H 0AE1Xymqd QdVm CHG0i7M YY66 RuMXf dvBC1VR vQRY xGIp3cEc +1 3 1589.32 -1210.82 1804.17 -322.83 1594.56 -1208.44 1824.15 -321.83 Z9mE 3b7eF4 PzYb DRmh tu5V 2PQ7 2pQg sDqr UO4lTIi8 jtMN 9E5ZXD7o IGKAbi VAId u2OLM4u RSVY LUC2 fFtU ZSiEf2XVK MJsMu fmYc2e 0JgLigV rDyQKVFjr fScH7It1 6EjPVAq7 Z6CQ 4c7MYoba TCfkRn RLSH vu4G zxrI DF4O IpPL CzTq8VC RNlF in300D xTOVriSh k8C2 Buxz K3ybtsC ZjDaOvRay qGmfK45p Y0y4 4s07vPYdg +1 1 -1672.71 -855.86 -75.73 162.87 -1666.06 -854.86 -74.73 176.51 bzqG NKY9 8AFbgmK XA0HuPoq ddS1NmZH 2Q8J 2Uv7MG wNEJ1Um8B eOn4qdc mae2 +1 3 -520.15 78.17 -1086.77 -19.35 -519.15 89.36 -1075.64 -17.59 OTjon4 sW0E E6A63 j0T4 xhMN mAu6u LpvN SePDzK1 ohCY5fs vF7VC zhet uW2X PkpM YLK5n hf1B KmIRh Dn4I taLHK JtZgTGw k8VW7 aXB2C qySYYwqrm nKzz BBi0 aQ1e FFOQ T0mq cWAKy k6RL jEmF lvAnX xgtG TmeemnQA 5NPw9NI87 PVPy vqw5 reMO7J xsPy oWE3 UIeaYo1nt tKN6 h3iR njHuwlYCA +1 3 379.27 893.01 -624.17 177.06 394.86 899.60 -617.51 178.06 umNy4G8 romFG piXSpjY S9ETzNB GCWzi 1fcD v8V2 Es1M ZRuS SV2WM4Tm0 OMBs5WT gxqIP60lX uovUv PtHd hqwSklN tc0wpb ohLV 6gKf MFqU0zSHC ZVJXZ LSRQ Y0Da DfCRkTN pJqzXUx7H oENy 4OP4Ewq8 gQ17 G83j lZcY BuSC EYut 0wLK 1D1Tk2yQp HfevL jPXF4p iiGZ jkqMMRkdT k25b9YDD em0h11T Cs2z OMrb9 K22KV rpuc +1 1 -1341.40 1110.78 -104.87 1556.75 -1323.07 1124.12 -100.86 1564.38 b4zD8B cyQ1WoCT XJhL LJzn Daq14Dzi c3Vq THxt p09S 23XQZ0OM rW5xGy9 +1 1 981.68 -825.01 -1504.06 -163.60 982.68 -824.01 -1492.83 -162.60 MqYl JevR j7WPh xtzsaEZgU d1PGlYN9 HSwQLmyU9 sGkkqaqC lBT8 Rv0BP 0lLksMjPZ +1 2 -276.02 474.49 -2570.06 -2217.07 -275.02 475.49 -2566.41 -2214.54 eti0 yrwm 0R5mn8yFv zRN4 HG2ahrv1Q H0zI pz1Rwt eHwvavi1 Sgn0 qtK9d TWXLS 7Fsy2xHGm Hj9L Rtnt Ktxj yD1b k6xaQbKF +1 3 140.26 -370.01 236.38 515.98 141.26 -362.79 237.38 516.98 R5KQ l7NVd1C9 6Iff8t mpbwFpw ZzgD bEwaUbJG KqDs vWRa D0zneeMn HEoD MKa3 RdEC XuGVX6 ivRq rYZF Wpejiv hrpS um60 PTr1 qYoY KLTs Ap9aPM 0tEH dd2h3F 4gJ3aO AZrS KYmb NdPHg zzBq iXZz nHtb ZrVyR5j LfZDy49G KqWr nkFJdeFe l7MG A5H7p L3d1 Wz1Q 8fYB mPuD 2oEkgt7h AgzkzR +1 3 -969.87 1115.59 84.00 -1441.77 -968.87 1121.13 103.19 -1439.64 P5c89YfMs 1UYI YF3o Wm6b M3ycQZf D3xpp Q1vnJGk OLv4AOb EpEW BVE9q axFB5 6fMT VnLTPlBz EHE8 OHdJ WzSE0 KROdGg Vq43 KhQ6 cSDj 6h8M 0PGx6 m6UauvD5r su44 icbj ubpgqKPt 4KUB 2mdEcfL tYna kb6Q 3wdp u3p885D LoOHNC iDwLw9 kbXB qxZJGkuvZ zixZ IVlIfDh 32OS4zG aPpl PocL pSQf G21g +1 2 -427.02 1352.96 -238.28 805.87 -426.02 1355.86 -225.02 815.95 JPbb NXU9CG7 bDDILyFX NTkr mgvmpK wtp3nSn mzBa 3EPGJIc9I pJ0Q P8Zf 5ZaE zKoVdiD EOc9 L9l2 uwEN ipv2VM 0spyHdGkg +1 3 414.47 874.60 127.99 -1041.30 416.19 886.52 128.99 -1040.30 g4Yq rkCF2 nzEv eOr2k1Si OWak9IB3 hTn2 ucJWF4J1 KLaW ypRf aZaDaEv Jpwh NrYDZ1peg yMBnv9O eCqK ACOF CDcT M6Hbh VDxJR32oM Mhkw 0RmE5u0s r0z0 Rx1xr 6lJuDWz vW2QW3pRr Loo4k 2oGk y0qIt7 i7qZ7dkB oeXt d02M17 QzvcHxtqN sbNw NvRd nouj Y04b sTKi MNoXSb 4lSCDPsi 8B8gLMSmU KEaH rWU6 AoSc 6UjTpvoGt +1 2 -431.49 -2222.77 -847.16 155.59 -430.49 -2218.27 -846.16 161.09 jvll 1vQ2thT B6aP 8FfaJerb qqPSStgNj 37dSXbnz VlcKa X8pwDbjxD 40zHrGCty exuouVUgI tdjy tj6PwNt bjCv kbbLLB 44OD dUuK UJuNQ +1 3 692.42 -1289.67 -1014.61 127.86 715.13 -1288.67 -1013.61 128.86 DKtbzfg6x WnTQutq gKO4XB b2RHI mcw3 6oAvA hkBA neRc7UAkD 9Pi4JGV nmJQ 4S8FV0hR YVD8CWi TAw3 PBi9uVO00 BODJ 4hRwCCSIW GDTj Ekdm y4QYwzkw pfWO 6nzi QGhH0 YsWwJ SEyJJg Xo46 QPUv8Q1Kk isesnMrBN 3UJz5xS z1Cu c7eWBDByJ sYpj lSSM S6ji xj88 b9lE 2Ihn Zmh1V2s8 zBNgFhA pyPv YNnbc65 Uaq2UJO dPgi11 WspN +1 2 3152.21 -1405.29 -1014.83 -1030.43 3153.21 -1388.01 -1001.66 -1020.39 JuMfm2o izg85zmim 4CLS IykK 7QlKG1Y ixba ea3DO7R m689 NWOeilUDr RQsgL ghPVhiP 7LKj VKT7 mzK1 1YdcmEZ 4hMM Y3jPJG +1 3 -1736.05 -401.17 -168.65 1342.81 -1729.79 -389.84 -163.48 1343.81 zQXP wd5f3fTCk WSrGteq2P yulWyE vCDcO sjO3 Vbkf jpt6 7lpg ZMcIyT 9TxQa9 TuBTeaFS h0oU V3NN PtUF 3kb8 R6cB hYd9plYTt b0FrytRZh 0pkV oyJNxxy rl1S GDJI Wqzv H1OM gJeAT40 TPwr DxdV xUQyiy FedF 9NTp 1hhS 1F8xFLb2 zzHBS8C rT5g 6teTuFBm eBGA m1C0a3 YJQD 6J0N MhUE 1Bj4tYf 3tjCRtdB8 +1 1 1292.73 568.47 456.82 1016.59 1293.73 570.24 457.82 1017.59 mcPYHhv eQ7IQjpAS 44rxECHBz xzugQIjpK om34j bOeu UiwxO Lalx6F 2YTaN3y o5o2kchM5 +1 2 -345.33 1312.25 694.52 -924.18 -320.07 1313.25 695.52 -923.18 oQyI 01Vi38 Q8Rmnei fvJN ZIQds jIqmIBUX 2viO Yx2X UyY5 w9e8 N5ge G9LV uxpv IvFnAJj aIDOssWA NqdI L5lM +1 1 -12.72 1429.91 -262.42 -1567.46 -10.05 1447.68 -243.69 -1557.51 X7inT S8Zf nxKH i35y qqWP ZgW3 Lesc3ysoX EJvG jTBr sCrLs +1 3 2136.61 104.90 1009.19 583.61 2150.45 116.82 1032.46 590.42 if5bFRFx Vwdhw okyaEs CMzv qZ1OLLW 7QIx QuZRmbgx axhiP7F W4LVGrEfF 1EHC HWf6y bWqXon 1BTuk1 yhzUukvo3 KNxfCT Aab0 1p0eOi xlaZ RY9dvPO wlLh 3MQY2D2 unVH uYKN 3P6R 6U3uZjW YlF6i4Lln woXZ5VI EBO4 1WqFg0 etPnpU7 405q9ZRnm lkGqyC0Ha Xyw9 3aq5yG5 R8IH xt5OF ADoE TOKZSman 5la7 0RUSyXk sDBm0 n62TuV wgNLnauP +1 1 750.01 1299.67 1139.50 -502.40 756.88 1302.57 1141.57 -498.32 oBV7Zu opoaz QEJz kYJ0 99AV Zywsr zD7N43ckB axyt EqUs OZxlWXA6 +1 1 137.01 -414.57 -1558.33 -76.61 146.38 -413.57 -1550.87 -75.61 3pxh y0OGC5zB Ny6RqSd Yeya zIVU 7aqR OKQza LQWmLWrJ Ow2Sjhtw2 iyLG +1 3 -966.69 -411.81 -2259.76 602.51 -965.69 -410.81 -2248.50 603.51 TIHJ vYBVjHhS7 EpfN VEC6P 9a8J5 Uyuk2c8d qTKg z5Wk3wW zEjtcw XAUq sGHA 1WHR BDk0 LYBA 0icUMLe14 34cjP68 DUtq GLYx8X fCTw UfuolXLF7 mt5CX7Ble DWfEvrpW ELb3W yKWE gABVBV48j 7Cc82jI uEo1Ql8 8kf1cq0a6 RcW58hHR6 KoVY FlQDTx LCQmPJ OW5z IMv6Fei QWsMBd1 nlIf s0OWMoaFP cCwb x4B6Ao PNEr fuvrgMM oYnkU rPXVv +1 2 -333.06 1061.55 1206.41 1594.73 -329.13 1062.55 1227.62 1606.69 NMRM 3UZlPjr ZG74Uz QbOS R89Lvj CFt0ceT I5QGP6Jbz EORl Ldpk13 3pT5a d6qR tmEl hnPk xGBV sFKge ZUpYV 96h7 +1 2 -392.65 -142.59 -53.53 1210.25 -391.65 -132.93 -34.91 1221.71 a6isLKG RMNQ B8Ob hlx3JBf9 4OPDJF vddp KJgy3Lyj 8H48b GNhu yhMa6R bUot1 CgMb GUK8 t9rISZu15 wfEe Bf7XX 4YxC +1 2 688.78 -780.94 -476.91 294.04 689.78 -779.94 -475.91 295.04 Ufee Zdqmx 5N86 1GCO CsJoXzndP 6LfA UgQSD8 qQNvH R5Hf 17ey ut64 X6Q9 Imj0z4vCR hIZ7 ZS3eD3ktG Tbuu Q906xkhs +1 1 268.06 -885.79 3337.58 -1030.57 273.40 -878.20 3353.42 -1026.90 9OWW Ebnol jAkO fPgRlcaRg 0bSKJ zxaY jaW5 6CVkA68 KmBOmwQ XozKxfz +1 2 -766.80 2675.83 -157.29 -903.23 -765.80 2676.83 -150.58 -899.45 rTFo OLe6 9H1bMa Y2Xo xelD SToce3 Srlt42 aIUNHV WmjjdVcuc hVCZ 5CfhK sOy6OPZXk puTC oNHM Ynde1V RTF6cOObZ LhZr +1 3 575.93 -928.10 -1840.71 1402.41 577.48 -907.43 -1834.71 1403.41 s0hd sEmh0kh cHuf lB1ltP8nO W4D3Fv cHgju G2jT 3OF30CU3u gN6C5YriR GHXgIW ExRaOp wq50 I5MF boteHg en5S iOt1 GnmRZLih 8boZO 2gkCFPwzY sOqbzM Df0ajD2 AKWR aBhZGbqwI O2Ehp4 jYgn 8tpDfA NHCimzk F2kw Png5RVgW8 IC76wZ4N ugCA fkjk z9Sw iAM1 i0f0Ql KsRB E0e3 QgT3CsOpA c0Un3Uh 4iRE D2jz qWmKYTB rZQ4goK1 +1 3 646.09 -1288.73 909.35 -1434.75 658.83 -1287.73 913.64 -1419.77 FKPoqMomV LvWu3Ogx dZHR 51Qr xyez F4YQQKIlE gFG0 NzJqJ8 Wz1C tiXy JQ0e 3WHv B8K8 CTFM 7v5aF 0W5xu Tjpe OYum ljIi DYxI Bq4t wnOa8 QnkFapL xo2i2JqLy Mv5N DhmjITxGn Jdme YJ43Jqzb Pyj8sm UA3T VrAw DPFd 7eX6x1 8NCb wVcMe 2JlFu4 noX0 ifnu k36H Vlko xf2FZ k6Ns mvTGY +1 2 372.09 -319.81 -9.44 -404.92 373.09 -318.81 3.96 -403.92 vROE lYPk 8fhx Y53w mzlmG 9Pdc9 b2eV XlldFYKgx vrqk At0J HKjC iFOEBg5L 7wSt JGpU QiqhqW0A dVlP 0Q4I +1 2 1216.89 9.66 875.11 391.69 1217.89 10.66 877.92 396.61 f9aTOyz Vocj ssUlgI98e z7Tk PecRCiGu rgALFoaw9 CmkT 5Qqr Lz3Q KLnRyNu sGI9B3x Wni7 aRv2 Ognq2Z NGBbTKHU WsRvNMN dEGh +1 3 532.68 -437.91 -2441.98 2696.70 546.39 -436.91 -2429.88 2701.48 NQrmy 5xjD UF1Z8f 61fyaMXW OT1RKW Myla WFxYHalX1 dP0qy8XFX cu07Akm9Z BxhT YV56SIj Um610aNPM GIbv1OCc3 wTtYg rqhL AOPan5Gz ywf0 yFxbRfmxG B8eHe4 FI4qqCG RLj7 JUCz wB9q L9YV U1DiT 5LPGwz GFmo mXmWwKiQ gXYx IJ77 1H79 V1xp GBlL7Y BUrn MYZg ClZFM 80oUGCqJn WDNdkLL lFi8 jPAv MN6SooEb 1yTy tFBp +1 2 1438.09 -620.16 -411.12 -1874.71 1439.45 -613.94 -396.12 -1873.71 uAzn 7Bjbt FWLw JTfOG9 LvWImw1S XIavIvV DGmn wXSF9 9PqE jVzwp8 oETx k5agjj07 sVUir0 LoWI tMo5hD FYPD YawQ +1 2 747.17 71.03 2164.99 279.36 761.02 74.01 2179.31 293.73 B0cIE qkLR KFki y6Xf AXnp pFyow fqCsPD FooTK uWlj6CeY7 KJQo Q3lg5tmn 9HPvFjN E0j1LbU fHlx TF8k9a Lf8BM sYWQ +1 1 613.62 -832.26 471.44 -238.15 624.34 -828.09 472.44 -237.15 UoBr INKX gArz n4cI 8GMwl7eSL vrLW kmopykF o1WSW6O m1F9 68Wh +1 3 -495.39 -637.96 2322.48 187.74 -486.26 -628.62 2332.81 198.68 IeUnqlX IQPE YKmSrhLU XAyxF 0exDTe4 6Icj 32Y6GRUa YsWM6Mq0n UmmIU ewRUPGu CH7U CFkf sTT1 WCaG h319tubI aVbp7x Gmei TgATuuA xcgBvnhF2 m1nVTcP37 6vQQ7gUZX qsMF ZArY xzVi eYdyn6g bSOm ofcS wBL3qHP7 fs9dB1zq TGGOx7P0 m6E8JCXM BT2v mVec1175 Tgs5 0VjybreUs FvRAQ jcJSFY81t AGaX iwfH htAu Mv4f Ji4k qonf +1 2 -2115.40 -1861.31 821.90 1028.07 -2114.40 -1860.31 829.27 1029.07 GY5F ugHu by50Rq0 SoR1B vcLZ O3eAd ClOjIi tSXZ G5bSDcXpu WjJpj haGuhe mUtzQGTjy wtbUKpVYY Z0IrT0 FOqi j6VK ENOm0apOv +1 1 -839.59 -489.08 -1557.01 -1175.00 -838.59 -486.06 -1552.99 -1158.28 aTjzn111g QEN8cu gv0B FPoYehk 7ETmAjC2 HcOY ylvB Sv1556 dlMv 9r2X +1 1 -406.07 670.34 48.13 552.14 -405.07 673.26 49.13 558.87 5mOt ZoIz p68n cBwJ WBUsR n6l1bbBZD FXdK 4uipwq E3YBs gMDX +1 2 285.08 -1615.19 577.95 -519.71 286.08 -1612.14 590.69 -513.39 SoA4 1knl Ng1ju0 fJTC 8EscHj JzYa9CT Vkfcesj Eeb7 tFdA YaMf xapkUs a04MnePd YHpFR xS7p 57XVufb XFR9 5zJO +1 3 -1960.83 -647.71 -2142.09 -890.06 -1959.21 -640.98 -2141.09 -865.14 NF4W 0rE1 dqZUqX67d 6FMFvkE IvDB 7fXcD183 pyQZBBD AJto MITfj4Iz7 I4NwZMc kfjN FF2a BH0S njLlNsH 9McX QSROtqa wFD1ZpdsG pAJ8x20h Qmyf t2Znkgm E52oozu ajnDcR bRdb BzXN FXWjWs cLuCp Z9zKx02 hHdzR55 Dy19 q1Kt YnBKygZW6 Hwal TyfRl c9CE Ljv2ttmb C5KhkIy 4bvO 9LSM R4fdoD0LL dC56 3mBZz3GwQ QOF5 Zcqv03YQq +1 3 -1165.16 199.31 -490.78 -436.03 -1161.93 200.31 -489.78 -435.03 JmHpPL lSF4vZv FfgPF dW0i ECuF w50LTMZD fmIO Br50iv IzUKodPF OtAP4 Y7Y7b0JhH g774Ge Rg4dAXZ5 hPwT Nr9f0x DS6T IIsm 14l2JBB 77M6 CAaKOorZ qvlB5k yNCZ5sP 3QFt THjx pCmu ErkT9qY EfqTjR XWdF 90gX 8saD 71Lv4X i6f0WW2 QjmBYRb PuMI ahvi Dbwe CuDQ zpMhEf aIHE1kfb i0sXTZgst TTig mDcP Gb3H +1 3 1849.91 -311.31 405.36 -602.75 1872.59 -310.31 409.96 -601.75 MbaKcJ 51J0 odyBn 7x4tTf9U OMCF 0f8G Rf7X3BqA gjlV Vv5k udjD u9L2TX14y IMco 1uXFNT 7pst y67wT QSkQp adpGP Rfn1jd EdlynNX aADZ L1HJ bsoO 7Ttv rA6u fh73 7UEOee24k tmWr Q14bCF QPZc yyE8rOcv2 LYYu45u KGW3 mUZA ksBAVgFQ G55iSVjY xu8l J8dv f9RQ A13i l3Sy fg68a 2wJPk coIE +1 3 920.79 -775.31 641.02 1572.23 938.79 -754.15 657.94 1573.23 pbvS1 yWPpJYZ 7GFs RrJ7 bh0S1X2 ecPx jtM9N htWy MEuGI8E fGibJ jrYw3w bJbiKuyyF C1PO tabXK pfh1ZTSHC 8YOBisqS 9CZ2LAA ENb5 WwgK nrPQ Vo9B dd3o AMLlKb bdbAWrYn Reh9ms lZKcGPG Guix G2Nh 5e0n 9dxW pKaAQEPrF sDLDVsTId d3IG CvlM0P8 a80vmI pmRINJx7H ZCcLYoFZy XkJw q0XO NbrH VsnKASSjx 6LSxhOfhw 8jy2 +1 2 837.04 362.51 1174.85 294.40 865.93 373.55 1180.57 319.63 XJWF Ce7u1H7ld 2SdG BU9J d82t pljLg q5bGrqZ7r yV79 vRjA 1GM96NSPr k6z8 Lmvp Yf6ywSQ6 11Ik EZHtWq u7tZ mmfDKO +1 2 -121.26 999.45 635.46 352.37 -118.00 1021.45 645.29 366.89 BgMcxsv GqmlU ZpIY 0Kqi lvxh Dxau vS1QlxsT Yqbn U73B 4nd8 snwEI SNnuGLJ6 wG4C zcUNR4 Oegtb wgpHQU guSQH +1 3 996.01 990.52 442.70 1808.38 1008.41 998.08 450.94 1812.95 nQXF Y74I NOGh jCcW RU75 NATH7 pJE5Zj uUx618j GaLT6Z7Oy aDsm8Xopv FIfNYZeLA qYaZ zohCT 13v2qPz EwWo RyHLb PKXvg3 mjBk 2gZ39Rx4m hOyJ 0n6arX2h2 ScSYgl nsCW OoLgldho 76r3 NqbT oPuYHC zDY9 eMnBqIT b3bHZo ataz 6NAa m4Sh 07gC VZmN qjcv aswp qShK 1OTQDfs1P taR7Bpj Wimkgmx6w bzGp z94qB +1 3 -309.58 -1104.69 -1094.98 1995.56 -295.30 -1095.98 -1084.75 1996.56 EDxhW0xE IlelbjCb etAW6ik1 scAu eqO2 s2Qi zCm7 YcyBSXu qinO X6ZH 7Zzoi2MN EWgT YG1ugeqx 6TFX 8h3tQf t7HLjT GFLD D4eBbe4a vWHsiFiAM BA51 Av1VzLP3U SNTe8 jdB3y7 OdaNWh QvhP wMV3 ZPPGVA EFEF Qjjw9 81W1 1RuChfOFq WPBm 7m9s zfMj w72K54 M7wD RIfgnG eaH3 sTuH soUD lsBz4qflb UW7Q nzaL8nQq +1 2 376.13 1077.14 -1557.07 -1044.58 383.21 1106.02 -1533.92 -1043.58 4VYrqH1W 30QK IZPu ioW6n ra8OK bgcN RhjI wUo2frSe qW6KZqAu v8Ir ERBv eKZP r21B bt26 nZJR aF0hFOId9 89qS +1 3 -276.71 886.04 -355.52 -502.66 -260.01 887.04 -340.17 -501.66 kEbH fLqyuv xihqstg OfXsdxI0 uWej tIIOqbIs Pnp92U q8LqOBe H2AbWV cfEhdN 4KhWD Lffz iDLfeS8H BXhT p9qq706x hSrN XoYb b9B6VxTK4 Hl3iAJC O9hx2dfn 1SX9YaXs YVtc wOsRN6U PKf7 yBD6DC gAxkpV0 J4IAzCqFL Rcha 1LEA F6clQz7Ld 9Mj7 MyVe ekqj cmIC rrxH XTpK f0Ot O3uD89w4m qaIvgxxZ bPZE s68G T6vV gLjBwRLTn +3 0 190.715866 4 343.957397 1 687.169556 6 -275.663147 3 -856.453674 7 -846.453674 34 tj 48 D82 50 Aj0 +3 0 1313.931885 7 -1260.699585 28 52I 35 VEu 43 p +1 2 696.98 -3465.46 23.41 -578.76 709.29 -3458.61 24.41 -577.76 khzT2w 2iEgIKD vEGQ u15G Rq2QbZx Scze ClINXGQ i65iklkLQ EvwL JQcRt cBnmMK g7zZdE 6Vbp3Ehsb VxFzLE 4oUS 0zenk7s lfJW +1 1 -1463.84 701.53 179.88 74.03 -1448.84 715.52 182.86 75.03 olLcv EGgmyKm jP8c jk36 zl8Mtfvf YmLX UeAo ofIq yUSS5a20O D39l +1 1 -310.50 822.49 710.91 -91.17 -295.68 826.14 718.83 -77.04 Tr9A 2k7b 79Q5 3InsQn JbIQ VBbG dpcKhma KrEsHg7 HBhf uugQb +1 1 1129.54 -197.61 415.35 -1915.37 1130.69 -184.42 437.97 -1913.33 guesV6v tlwRoC8cm 1EU2 PSJ1 eV39Vg7Si GtVjRuc YLgJeH OuuapLI AFPODBg E1mv +1 3 571.39 -254.46 31.96 1468.15 583.67 -242.77 37.83 1471.35 vygk NQVw VPrd V3Dcz5 Ym3Qgcah 6Y06w FkUI Lh1azR0 T8H5S ZZ9s AQQnhR 3FAy lIWUZP0 sLfW i0lC V7Ef NFspQmqa oaW3G DNrn W7A8 MrWNlTJy N3JE RZpW ZcJ4 sOWkR T3pRt TBMIxgO3 YmWU qGEBu6 P3d9BYdT 7lQzi FIU4 ygZ2wzdc l5kw ftWLXsI JaW8 4zcBkkaUS oBenw6 DpFoif6 alACFT lHEv a5TC 1LvDZ +1 2 -464.71 -2303.56 600.58 1182.53 -448.36 -2302.56 601.58 1183.53 ms3u YjJdYVAU fymcHt4 EqOD RrjkFgz M89zHa eoHOnT cdBV u34mjm4 lofy kjrj58 nOClSQ n2I4wF9fE 9gSOhypWS ouZw i94iYfGJ4 uOzWmx71 +1 1 -2296.85 443.77 581.64 778.46 -2287.90 450.72 582.64 779.46 1vs8 J1nU KmJK31 Nv9PLm31W 36a1 zQglT Q4QgcT qv2j7o C74V VBTsn +1 2 -598.07 571.92 -585.27 2292.68 -597.07 583.70 -584.27 2293.68 aM5x tmX27JPSj pvcUx kTCP rdpR WLaQQKPc 9Wsg Xjx8 eKu6z vnYr wtOj4tvn Q2RvyUO 7fNLtQAk K3QI PUQS uebf12DV2 Pl1MNm81D +1 3 -480.09 1971.67 -116.32 600.77 -477.14 1979.46 -115.32 601.77 UDQW5 lNMmoMOkR gMMP2 LQtv50h X2Oew hUUpUib D8WvGO8sT fen4G6Yr DyAc YLZ3JIUB0 qAMy 1WboV U9a9 if3OXwD JlKZ gpmT NbNA YfIZ d2G4 b6yrQ wBc8 aimg vVKR fEFp aErio gn7LadU 7PMS mfkKpoO7 hWJ7 c51e IV1H JHWQErN 53Fg 0MBp GXOh EfwAgZ yNKR 5EHz fcaU0Bv xWAPWlj9 RdbzyoI Y7Flx PqsOJh +1 3 627.57 801.73 137.62 1716.95 640.33 808.99 139.97 1724.17 R0VSDk jV8e 9Piu dLl7 vRqn91 2j58vj W0LB M9wuGl QO92 YBudpBk B5l1 t70Y92 WKtD HOJeQZ2NE IQJSGfhJA gOP0 nnWicg Ee3Rk2cYh JTwmw lQSxPR TEDejWd YWJxUQXxF g7c1 kYQ1895qV jdZO xLZl 5TvR KyqBR9 7TgZ kF7OK03N5 uGCY rOg6 v5iUoloAG alz2aAdxo TuY39YSM gafFsVWJr r5ERfTW7 avjR 3D6c hdFGYNeR VIMTe IFpV 4en1 +1 1 856.51 452.45 997.59 -855.87 876.80 478.51 1013.50 -845.25 9qHAF2Ya Qd4d x9XLI gLBv paSDl6vU Oo4H FuY6b 6kIESVooz D2O5 PyyvBd +1 2 1112.20 -355.96 -300.78 -1572.46 1113.20 -346.78 -295.79 -1561.84 Ia2Z9 NVDE tNSheE9 Xfjq wlu2 kMbSDK9kh ClhK V7JG WugIS QVwM qLJd8 kqtWGMnE0 e8hw IkgF 8rBhD qwpR kHOV +1 3 166.47 -2523.22 2033.88 -82.92 183.84 -2522.22 2035.83 -63.66 q2lu6 dlxw skximyM6 i3Hl r5tGKDrm jNqENt RCj8 IfyA fw0e 0OLDSK6 eYLgHj4H6 7Ajx BsjU koVW A3xa3Y HeEu Ctyx vQtM WNUV IK5yOz nsRu p9pKLejmd HuMh eO5Q MWI3 n3Mq9Hz WxFm fQME dsOX6lCT vLRC MUT6 2uFqEP 9eTC AolDM8iQ gyut bKUhxLYj fcN4NEtYj 7ZQZ 8Zxw VRUzEE qvmIO f78s2ggAF OtxK7 +2 0 421.203125 5 -1775.860962 2 1617.907715 3 -102.505127 13 e 16 lg 18 J 22 V0 25 BZH 32 hlC 33 7Sy 36 wIJ 40 TC1 41 2v 43 HDV 44 rVE 47 ya 48 GRW 49 U +1 2 -379.84 -883.82 137.82 -1040.92 -378.84 -868.89 141.46 -1039.92 wDSR QqqEkH97W dXfz rmY0 2GboCbT 2Tbl L6pQ Zx9c OSs7 xFLSFS6iu kGqsU XbNg jjCevCa uR3OYtfM 9LMFX eJEFY2 8fGqPRQ +1 2 1541.66 -272.19 382.17 -607.87 1549.65 -240.46 403.74 -602.18 zm2c6 J9UE4T jW0oiglx0 9D03 I0bJ bgx3 NHl6 OShl Yks6 YSXa J1RaD545M 2PzZ bdJ7 vZM8 d0uI yHt4 x5ld +1 1 1128.16 -2004.04 -758.49 952.31 1149.28 -1983.40 -736.73 955.86 R9vb kMOFPgB AOqPEHh o5km zkXC 1L1gpA VZhGCYtAO v8BdHnl DkDn WNRQ9 +1 2 -1068.43 -2489.93 -1299.18 -886.95 -1067.43 -2481.92 -1298.18 -885.95 n6D0 pn62 VD9FXk OwFl G6Ca GAqT HbXt 8ApwEr j2BKKl kzx2g ez8x DvZ6 gblp 8WCz1ctYs yxsmtAEgl Vy4s gzat +1 3 920.72 944.97 -1405.25 1014.59 940.60 949.68 -1399.85 1015.74 I45J7 BEi6b88t WJXvaM0 0q8uH Hpqr 3Hzg BIAUJ3go1 1IYi qmBNCK7y xUbYS7i TOm4cBPvb TfY3NP clys5 xfOH 1IXjC HwvQ t0xB gWQ1Oq Vpse n5px dGp3 osk6e T4pRA RK4D x81NZ cpHD7fhAP afjrbmI yEF4 cFt1TbOE 59ti uSOyVZnu tyI5JuNEt yG4NKJ xauG HSWjtzT0 BEio nDVNWx wNuwp MQvC vdEV tJIgzdVu r9Q5If76J QYcpYBooN +1 1 -1022.40 -1651.81 -1217.05 -378.03 -1018.61 -1644.34 -1211.05 -377.03 gKkK tf7GBPCWU 7qIm HABs GFxLDTk tMx3hZLVY assj fdl561KvK BlSg XAFFln +1 3 -151.60 1120.81 -396.03 -744.38 -134.77 1150.83 -384.31 -727.94 2szd sTew CjaEbmX hUqr nHhSUk jW4x3E9Gr jxoCfs So5Uwm 3T0Y h1qprp Wcbhv GhN9Q5JqH kxbW57BcE pvOb RoKhVX Stoyl5Z uxNztuE U65Ecw5iv y0zH IAt9 RBkQG0Zt FsCe dRKE fcBQ8m4 7DCA6Wfrz qPrqVwv x9QZ zjmS 44fDVkIP AZcn I0dQv5ySv tNW0 rWjcOV49 tBkrbRTNg EmYX WADj 70l0 NhbF teFp2JAXo Ns0Q vUgY MDodL6 5VJk +1 2 681.43 -341.28 -1943.57 562.15 682.43 -340.28 -1919.74 563.15 m7MqNk9 peEC rToP 8jMyIM 1unCyk MWIoIc Gh3O rZygX7MMa hfMgLl5T oFr3rx4g dzVYfdOp 3x3XnrG77 Lfss gCso8cGBK bQlg rlJaA0UEi ujlti +1 1 -97.35 -417.55 -297.00 -924.56 -96.35 -411.49 -281.91 -917.33 l8pf pa1h 81mTib h0tB gvuc5YW BJFze XGOvHq Sy7N FDE7 JYWg +1 3 60.41 -1314.33 1754.24 -559.61 72.11 -1303.62 1756.55 -540.02 rIKX CtSv Rjxa XNgjM ZmPi59hE9 NXNE qRmKqT X7G1w9t ZfgbhOFD J6fO 1ZHsFRT4 8gjk we8jCoa ptkeLp2 pfvvVJHl E6xL J0IagagJ AlWa2wqj3 jgTKvJ8 PMhN tbjy IQEMe UeY8aQWdq Do9M cFoB NZivtuVv 3v5Y 85l5M8Ev XvT5 DwVj td08S fYq15Zl9U wCVz N14iB aLPLmukHR wl4H9 XqOz C0kB likRHgx4p D2gt QUzye cHVQo4ze 3Q52 +1 3 246.38 167.10 -467.24 -2042.00 247.38 168.35 -464.61 -2031.41 Ynhh JuZFSmwUA G9Ju ZEKx nE13 ORgsjp XGaAfpa3 qc6mzB 3ZJcHgvxY uXVi JFPl qe8M iK9l gGSm TCbi w2Ntc HuC97KLBI DnT9 H6Jau4 gbAI uuSs7Ym KuOa IcTeb2tKy oN8nd1a fmKV z0MT 8CLU oA2o TcshPG0 ME7Tc6 4yQG9 HjrKDx rZ07 AxkC M9CM 89Zvd 7gXlYIR7S 6Ikv CdyzCj8Q oFOEbV v8Ox4Ree ABBP zFmP +1 3 -373.24 901.39 -58.62 -804.15 -372.24 902.39 -56.42 -800.00 LoDW Au4l26FKJ tsdM GyGROQs yTZVy05 UU4bIlXaM ticdvfuUB Jo94TdOOq g048RGjW Eef2NPGJA wZIO U9A9 rRAm9PFC suuqleZH ru0gN8O Tiw8pF CeZP BYhQsR Fd0C2B Ch2hzD1 N7oe 2fJP LyNha 2sf3 daLYRE hdMy nXbs hCfY Ysiu6 TO9sMzxRz N2BG hDIZp SsRu TOIq 5nNnK0tu4 TvyIY2 iCT7xLX0D N1NZ IwlQ VaU46 DyQkh8ci MJa3 r39wBq8G +1 2 554.23 233.58 -702.26 -533.51 556.34 246.18 -674.39 -532.51 Nykx tLwiHAUCG bWKnBeXs DXfL P7DH vCpgn OaqW qWc7R 8rSIu9vq A5Xi famfz7 P1UO HSoURtNm 4CC3 V3kr0gONo 8WlsPKV 1ykP +1 3 1873.04 1003.93 426.01 10.87 1887.05 1010.17 427.01 17.01 jYWWLjQ LU1h jt2WKPM Grtz ucJ7 Mxmu 1zYXND5Zf I7P9 ZmIk wsMtnL cwsK 9V7iThNDn NS7YBzaAV AUni 5HgYACg8 qZxd tg5j Y0lv atnnrkT d9l1r p9Fx S738 dqoBhi 68QdUZNJb wD9D Mx8zSsFO W70fcTgi IT8v 2N6A95 HXum 8l3Oheu7 q2zI6Y V7Khf k9hNl 1ZJ15orPA uklv PYK3ys3Xg ZZry mTPm qF80 1Q3fmFK ouhP1ux5k AEHUT +1 3 -1654.00 -699.74 981.76 644.34 -1653.00 -698.74 982.76 648.53 Thch jFSb dWyL Twrt XQB6TjUa 5BXfNq LpMlxw7 inncIhnw PulgB3 QC9b Satkz2v s91bLl0dT qYx6 EC2GcM5 OKK3ryVFB CIBAsN 8CjUrA 52FRiFp sFMf VwCN23 0FHD 55A8uVCd DutrWdtg PFURsrPk GsVK uBYaxA jS2hU pPGY WlYs 3Sag o1mopU A2cN U1tHnJ XlAd 8Ae0SDCD ZgP7ug oPgbZgre PJc7o4r4 G8zW bAik IiwE 3S9B4SE YfOm +1 2 -863.34 1242.24 534.44 2351.69 -852.02 1260.86 550.40 2357.64 RFfK KL32lp qlBj shr2 VNeM 4He1 lXVuM7JD rxZ8q7CF 4nur ZJ5oCeZXY kQUU bx5DxkGL f7pm bxyK XV3Zd7ayI waPd Wbio +1 2 -659.76 -56.95 -1331.01 499.25 -658.76 -55.95 -1330.01 507.78 ndo6fZ Oqao ouTo NgUs 2Suf TnmC rOvs gesuuvCeR cTX7 wp89Npp3e Ce1Snz 0xCBwRu h29R U7LgVkye tqqcD ajhGNRze Emnh8a1yI +1 2 -129.72 -274.23 -604.60 1343.50 -112.14 -271.68 -603.60 1358.26 UWNIS RmCYctvGK Dncj 3AIA NxCY dxkA QTC1l 4VCS j7i7Md GF4Z CFQ2zDvcd u1UQ WNYfLjud lOGk 3QZJrQlq M55M bBoUGw +1 3 757.78 384.77 1163.26 389.00 765.93 395.13 1164.26 392.05 ZwvZ ucGCab FJyyz60 YtVU Vuu63IvkA qcSc 9Xba fWkCV1FM B1BJSF7s Ys1M9J JmImkh7G RCZL HJm3Zs HRHtIh sS1edaPR IbnaQMAZV 6N99k sjXEMuY 9hur D2tDQdTb C6AJCocsA KVonZn sNzC smUY v5YL d4On2X7jq ow8XJP AGvv Gdvg aARfAmf cFMaZyB HgXD E0oW 5dSV uhji GzSsha HDW8r4 78xnykY oWM4b w42E9 M1OUIJ Ck33HXEk dCwSMKf +1 3 1176.18 -383.65 1792.53 777.11 1177.18 -359.17 1793.53 778.11 7fIDvBO SmKW ygJE eGGWseOV TSWH QMhn 48Uy cNEVQi0s bmWHiJV UmHYhg 9Wc0LMsp KP3mu5nfr OMJf ELnl 25eQ tjgp gHPY 91FxwC cmTc c3LB 6t1n XhN42F jAyH 6GTM UeHfFL 6J78C c7H9zQ4cB yB38 SO5NIw gyM7 FBVe taqO sxkidZjIt 2PSMr EdBi w32qY 9dLM TJSR6mu4 RKhttsm0k ubTycVA oPE2 1yu5 LSqB +1 3 1167.90 -1025.71 339.35 368.02 1168.90 -1015.06 340.35 383.11 5JKNSXe UvxJQGQy DBJtSe hirfQeiog 3UUB z23S zCwO CbZxk 4s0p zS4r g8HwI2 ZoKw LWlT fwSs 0AAg SzhF e00bX0 wpkY 4gjEnM3w U7Ch wmtsoSF Ashy dn60 ZEYE CcR6 wxzjl cQMyjB ni0A urZf BEqd N3GLOHGL XJjnqMX FrJJ sAeU Zfsx f040 7f7w qiLNVvvX MFIyg7ZY ZSQR WiaYGB Rrzw uebxH +1 1 -1537.68 415.76 -2441.38 1335.91 -1531.63 421.10 -2440.38 1341.10 K7pT 2w7N BGfLDiYo 8EXMc0 1l9RuSVJJ vOaI hSZS z8cMQ NV4Z z6Wz +1 2 -1573.00 -17.41 1430.60 1339.68 -1542.75 14.46 1431.60 1354.13 2HItN xh3zMX a4hO L6IB S1fMs8BT 5EAk9ISkN 949aW VtxG aLT91C X3yxUZzD IwBH ZpKwA qcxm hzHi Aa9JDLL 23Puz tSX8g +2 5 -1478.439819 6 169.070190 7 -1917.624756 11 f 14 k0 15 h 17 NI 18 P 20 UY 22 S3t 24 p 25 5ko 28 5 29 H 30 o 31 y 33 MX1 35 xz 37 rsB 41 E +1 3 956.00 -824.30 30.08 -1876.48 957.00 -816.79 31.08 -1862.54 0v5F iypGzMhP tRfUyB HIxzzeW Y05f 9DtK 8SYqXhhJ DFECBAE 9VBG wiEsh 1b8Z ekGXmsB bQZr Bk48 syA9 z9nd 1SnEqOu4 bn0nwE75 CVbXcQrv JIJM 8FsP rAmx 4VZ5t 1rCqJU3t mdFP JnKm o5rHK3E JDJZ mY33 zD8h uCwzgnBg1 nVwTA bXTuznN GzXG f5k9 hzH42j Bpaz ANk75Zj 3k7c nPYx LAObpupC m7hc MwG7Hn +1 2 1387.18 349.88 54.12 -531.04 1388.18 373.29 55.12 -507.43 RcZD GRHcK5 fwMS7tm opOTww8E Z79H q0uU vEoHCyNJZ tBAZrJdj GCXr ioa2 EInN pljVJD59 6BCs9 g4j0V xcgAm ta4j cxXd2p +1 2 1055.58 -1224.73 -1317.22 177.15 1068.33 -1223.73 -1313.48 183.43 ANKr fc8oEgS d10z Sm1mT Evtf2o3k3 dXJGF HgkIby7Y Br5p qAnW oBoY 9DNA r7j7wsP PlcGHRv1Z 3XuWgq5 2bKs OLe4o 8EVi +2 0 -287.986450 4 -277.986450 1 557.043335 6 -1095.996338 7 -294.092651 8 B 10 McV 12 U 14 Bkc 15 RP 21 pk 23 f 25 q 31 oM 34 PI9 36 AXT 39 vJ 43 MR 45 mhW 46 iLn +1 3 -1367.62 1282.72 769.48 699.58 -1354.86 1283.72 773.56 710.83 7uz5 2jhH TOR9 kS0I 9Ois UDSN 8XKn FnkLFDO9 BwkOAA aYzS M5r4o gt7Th bCAj guIe 2iIKcs nHcGrn k2bFuS379 wsVB 0qCCV C60R nFeS yLzBEtxqk NJLr e3Xm N3lJavowD 7xF3uoGN onN3oLHE KSdd 34x7i 1LN0W O6bOF2 Zv5c y1tWZ fhlR LOVp byxlCAZV QOK7 1H3hj6 2v3LEW0 uTp7P8U 871v ucXX 7JwHh +1 1 -423.04 -1792.74 32.89 -911.18 -421.91 -1791.74 33.89 -907.72 AXQFP ybv8 1vm5 Acy2 xxXjPMXv pY8YN ly8sN rImX aINuZCH 7OAJ +1 3 204.03 -1613.31 -914.04 640.08 205.03 -1612.31 -899.30 641.08 hcRU XO6D VvylGtj3 xJeR hDi4 gMRn6jm 85Pg8auC nscCOVv ZvIQ xRqga bNYi7mW HWtpe hqvbBRqR SxLXU5SS BLt7 gLjo rji0en8QL dvbqFdkqV IEsE HQKK KKBl maTrytx2y LLWV tRys uf6WpB PrkPcy9P AcTm2ZF eeGuMd 3PWO Hbvn fXtu 1wmP 5lWm QMKC 7Jsb y2G9 efUIRyB wtjSr Hefx HTjmCHN SFAI WX2Hsj UQN8 +2 4 -683.494141 2 306.304657 6 316.304657 7 -575.268738 8 kE 9 Ooa 13 n 15 s 16 BK 17 XEQ 18 n 20 4 24 C 25 aHY 27 Xv 29 gg 32 L 33 A 45 1c +1 3 -721.80 -716.94 -1088.36 613.61 -713.63 -709.91 -1080.69 615.05 bBwoQ ML8X IfXK1wo A7cl NIVpo7 1dsx2 JkLDva eft8 oE3qfjicd Mgqq gHUJv Wingjhvvl VNfI 6YcNsVvFP ZJ9H 5xrDEM s8a5GvD blHm oAno18C EQec Q25UJENU svNi 7AKI t4hIaL 4Bu5 nUykZ50 oXkm wYoz O8qy RftgB ehC35HzKK aPFUMLUZz yK8Go0B B3un xWli3J hU0w nwDP 4pbXejz GeRB pom59w ZIUC rqXh zlwIV +1 3 -984.08 -711.20 -127.90 -1618.79 -983.08 -710.20 -126.90 -1610.36 KBBF DnsJ cMh7 6RaE 8XiC dKSt 4ZkgwVXw PaIV PMJTBgqa xPCq DxjK LHoY iwPP vIa5 wN9Lsf 88RxnI AbJY 6PXQ OSYjHzqFx cOMV6wolb 3SzYx3L 6VbHG4 fzjr 520z 0UxG 02VZ LWmd WbXQ65XZd L8aK zsWdznZ rrg4 hbCkgKkY hR4hP kv9x s5vgK9 Uze4ZLjl ZnLL bG7Jhsn wJ93pJ hgavl5P Nn57 a7cW xTOMPlhRl +1 2 820.19 971.27 -690.91 -1173.70 821.19 972.27 -689.91 -1148.28 FBZt9R 3eJm esHt8ejcN idmH AyFK TpJd HnHP U2eF b8cT AEDHs IjBpr4nl R8ri TYSdQ0g wMhXBhvU 1ulAJx Nasm 5x2S +2 0 -104.948212 1 -183.988937 5 -173.988937 2 950.491943 3 -194.526428 13 c 16 9 19 f 21 X 22 1 25 V5M 32 k 37 el 38 2 40 VA 42 4NT 43 wN 44 Pbk 46 XJ5 +1 2 -1201.87 -790.52 -831.78 -1486.32 -1200.87 -789.52 -816.57 -1477.71 K2Qgk HTlu XWeJlXhu Lu0V ClEr kmVc EH4Q4 WHiO wlx8sZt3x dHyYxzrlu Jig4krn HeSa JmvpbTA ccur ZO1f EbGUnP WSI5K +1 2 -349.99 -953.18 -1823.99 -2164.05 -335.73 -941.11 -1814.74 -2163.05 lh87 uvTD StzM07k T8m5 5QierlLMr 4VLz cLVu XUMy qnrw aZRe X6znQbIcV UFFa eSLr qjhpy HY63 aQVZbWXUP vAwc +3 0 630.222168 6 399.091278 3 -564.072266 7 -458.615784 9 1 20 Vrk 39 n 44 eA +1 3 738.71 2453.84 -117.63 -932.76 757.00 2463.04 -84.39 -929.27 jkpd ylsgUehl hcjJ0ditZ QixV wXIN 99pW LIBQ auJta22p IaTG Zlgm vVUp 0JzLfTXC6 luEX FMWueym 0tZkxKA8 BH0aB5 GuODb Qi2g Xl0n dREFzy 5ahfnR6 4QEe Q23z DA90v ojLBZ0k NKhE Fo45 xmmT XaGkUxNHH ogRy46 KEjskRdd MsAw hwWm08 kO8s dwwPB u45X ZnyDh NPFfvmw GEcwfcrK a9nQ HQaGBOO7 be4Ex rzs7 +1 1 -90.00 -1362.52 333.82 1187.29 -89.00 -1349.95 346.59 1193.22 VV7V avpN GKF6dhc3 lHfL 5EEv I7Sv7bH nOq1 XQf9i 3hP9e CNUvJSSQg +1 2 -1109.90 -1851.62 904.79 2069.38 -1105.65 -1828.50 906.03 2076.18 2ZIp 4CvMKwyj QoHpMN6fA BgCm bVRO 3ncY3AoA DylvZLRS gFz3 IM33TXd5Z 0sMCyCqj 48cc cXlp COV76r oFbA1 ih4q NNvZFvU GDQN +3 0 -280.148071 1 2191.452637 6 242.681976 7 681.951843 26 3 28 Q +1 1 -2.17 -751.39 775.39 98.33 -1.17 -728.67 776.39 108.40 FE6R kDolpueqy lkDIKVp N1T6EYkk8 bj6XV 0H7aqNv Axg7zJ TxN0M KHWvOw4D 7OMdIen +1 2 -505.82 -550.67 -1555.22 -959.48 -504.82 -526.58 -1554.05 -953.06 XJxGSC WLqxbnc K0qLo0 Qsa0g dyQh EUSq cv0k aPBJ EdO4 DGuV FAygzqhT t4W0W G0qL HZok axd3 2lVpva X5s4 +1 1 238.00 -746.03 1623.53 -169.34 247.90 -745.03 1637.19 -164.02 VhEH 2TZk tPQXvJhq0 hkHC QcOYjtz YHMcEr U0L0 dzH21Yp x9MFa9N gFcg +1 1 -1454.39 -244.11 227.62 1151.51 -1453.39 -230.85 228.62 1152.51 1hQhJ46z9 3MIQR5JRM c45f oOaXu CazC hsPW lYpL8 KaNT S1cE JDhjdVvo +1 2 605.49 -738.79 -1732.71 -179.55 611.41 -729.46 -1731.71 -171.86 uAEkCVzc2 8OoO hupw Q4m3 3Hpf giUF hewLdD wnVq Cy5Xz1O0 3CAyB 0i2Cd F34P LFsh9o 6uiMaiX 8Hb0 geJMfS xGiO95f +1 2 99.37 -1360.02 1146.18 824.29 111.60 -1342.21 1147.18 825.29 x3kMKvLzI pmF6 yGowTDx FfrE LFQnqm oeCN IDLF NhvlmDB UrG8WRe oOQS CSwM Otmbp0FAH rNawMD1Ft qtZDI2cZ EVVX DZJXq 6R00bMl +1 3 1027.30 1349.52 860.62 -445.60 1032.12 1361.04 867.83 -437.99 OflK p6ljPl xRa7 6pmD hwvrN kyHs SUGkNHOYL PIla uAOAC3 3QD4 GTKZ oNMH pSWW otcW IUIm4 aOuc SSox uz15 dYbWghD 3Nj8O VTtB wXtI jaaN ax83 SZcm SvKZ ZbUF 9BuF qF1v HvfC 3KlI idNj 42yHLk Tr86 tvYH wljP ZWwa y67BVe7V FF9p SIHp asRSVUTYZ 1xH1PYAZ BPGQ +1 2 803.75 857.64 134.62 168.15 804.75 881.46 135.62 182.80 zqvcThakc 52fY dRed h4RH 7Z3O yaQ4YSfz mETF zleCVDI Dcl5Wlw xsgB 2gigQUd WcTnZ 5tQMPwMi rtUgyc 3Ia3 UVBOEsV1 P8owLutA +1 2 -1985.63 1241.55 241.29 -879.53 -1984.63 1249.37 252.31 -863.25 lXEh14W fVHm fN50McMBk pnszL 3YEC 1UDG CEfhhUO XmdU vyGQcTG e8s6 6ZrmCCTo FCJADU WMbwmBAv HNwn WBJQI8yL W1P9q W5uq +1 1 -795.70 838.56 -614.36 437.19 -785.75 852.00 -613.36 438.19 exwR WTeIvDK hN22 piCTdGtT ymeAAPfe 4Zl2b 541y 7luL wQCv vcFQc +1 3 1563.30 153.00 1076.38 105.34 1575.16 164.05 1085.76 106.34 Duqf F0wo12 NDCh8mNS z5n3 6wuAD2 2ALe 0ir0 SSl7 IFUT6y 4jaYrtUJ 1sLPzm eyGOrRV xcH5LKug 8nz4 NhHq iOqeWLDm bKRB 4Ih8cd40h Kh5m TMC3 3rEM 0zw5 XZ6X kchj fBAeLyL9K PtUl 2Xhq XZLw pOdA V33F TR4y PX4h 7ufGSJ ChPo 2VXY SgI0fhTO 1roc oPWu H4IgO SDhqyYxS dDQ4 maCI a6MJ +1 2 335.02 849.25 -1546.43 -89.50 338.74 850.25 -1538.77 -88.50 8kn7 oiRR0W XPUg 8k83Vxv hiI19jKh NUvcEvc 3x3M GxmQNd UIeEkIHm qDnX HqjB DFbB2vG5D IBey6CU 3nK8q nRaqKZQw TPL9 wGG1ls +1 2 1254.37 1345.75 220.99 754.10 1268.60 1346.75 231.09 761.66 lZeaZzs30 KnjtX kd8x 4v5y mClWx 4Zwq WoKu TL2jDJ8 PmKF 44rD r2fD NuGneleDf IkUs qIRIWM VQQZ w4Nd Am4q +1 3 1741.19 -1309.44 1145.42 592.74 1759.55 -1299.81 1146.42 593.74 fRmmtsGV 2GQ9cTU UVe4T q0jgLwU aPXO XHnj GfHW468bT vQ7h0PZ EnCv ybRKXSdt BuRjHaEH mXsJf tQ7P ElbC414w baNA KeHzMX jP2fmB6m qExzc IsFqSFQKb sHMDHgII IhUwZydj Iwk9LkkWM egdp3 4pvO 6Dfd Q7qi 0NCG0 bt2r f9LC jSZKm9XV Fpd5D P4ExWAf uchrOnokl teYl sFQXS jszxMrlXu uaPYEaHbn Lq23 TLAq daPYssPQ 86L6Dgly kKOvcTB5n pyoL +1 1 1406.38 -1291.59 323.66 492.78 1420.58 -1290.59 332.01 517.53 xb0IM9Pco sBta vIXSr3M k0fm EVOY DgC4 L5RZ SjlUx l7tO JlMj3qlS +3 5 -540.708374 6 -19.623169 7 -1502.106323 11 xd 13 b 35 sJ3 38 Q 43 C 44 1vA 49 iJ +1 2 -1195.54 -1164.66 719.04 -1179.75 -1175.35 -1163.08 729.98 -1178.75 Q3GO 4tyt Fsx0y575 MhtJLfWCV 8NwWU0T LIqB q660D sPmv CbNfO6ua B32A PcPA IPLh 8z0h WCIe 9ZJH zODs WPoOZ +3 4 -945.380859 5 -1458.851318 2 902.075562 3 937.363159 7 947.363159 9 Q2 22 MbY 23 Dt5 38 e 39 e 40 7 +3 0 738.645142 1 116.533813 6 -1648.971802 7 -31.189270 +1 3 -918.86 -38.86 97.25 -69.43 -917.31 -37.86 117.39 -68.43 ktqP0nDhV bUylQL Nplm WoRd G7pmnKYg ASh0 80fBGRA tr293 KrZ0YH1b o9i9A SqVM sMLtBqL1 0EF8 48wpm7 Yhe8 u1Exh IFgH 1diw QNCKkPd BrTYi oPBf cGxd cyxFrC YDYS uMQS rH96 M0sx6dhVE Mrj5PDF 72UCOmo YOmT2sni insScz LZauM7 IHajD 9iCme aIkm KVNHJFw XF36AZUM 8Q13o imGUdgR19 BUpUqnHO FTHHoDbgb fT9x yLbA4zVo +1 2 -2009.20 -799.24 -351.67 -1098.86 -2005.70 -776.86 -334.11 -1095.16 K7V98mc zoCfc5 nolsD 1fCv b89Rav M2Bk VSFwLgc gyNaxfJ VrNem6 EhHuEU bHwE ryjEmv 0cgSb GOuib8Yw Us8akl VcRE BYVl +1 3 -900.59 989.43 -69.50 319.92 -899.59 990.43 -68.50 339.70 r1EO PXSUSkcM QntUwujB nW1g SEgoxHxO IC2Vfc z7cZWc AzyH Zpq5Md1 D0ic Y9EZ Wtoc YnHjKyf PniH DKf7Z8z 4KL3OR NlBA pbMx NRii4L7 8FN7l KwbPBOK7h SkP1XDV DTFV mmag csqXb6oHS Zf6sgegHt eN0ek 3y2F w3g9Ux Vol2 FBsu qLoPW lAF3 0gW4dJ fBbyXWR dgxr 4SVNqjQLr lC8Si Wiq7 JGoVmfVbp ZMKf vNdh SYAm +1 2 -596.25 997.47 149.54 238.74 -595.25 998.47 150.84 262.00 E1UdS LPmiay9 eZy4 7KIvsw EOQ8 1llbUxS DhuIuuFn1 dMOCS4 Ydr4p WWId vDID0ETa Q55sgq NgtAkhM l949 0dQX E8NH cHXn +1 1 -913.91 -1082.32 -6.86 -1810.97 -900.25 -1075.35 -4.58 -1809.97 dWl7tDsDk oA4y FpR0 zMKQRtm cho2P dD1uB ngs1 sy6t eGtjha7E Qbnu +1 1 -1779.34 -354.50 -105.58 -485.16 -1769.74 -352.58 -103.10 -462.57 cIcSrYx ilzeP EJORJL DOQrimo6 g74O eLEA QdLxVj3u JSR799 ExDK TebW +1 3 -846.76 -438.41 -152.61 -414.40 -845.76 -434.67 -132.84 -413.40 c0Rt OZ0Z 5N4cY6 dnM6iF6Z aN8Fu6 Rof3SgE uF4S hpatDa Mmsh 89Arz0JtU 3b2wAix NKpldaVr XYAv Ftna j7vf 6xe14 VTsT6 MzFK B4dZiA ZfiOft NsST1E qXQ5 7UvG1rA0f Y6r6 pn6s 6xwdYd8 b3UA GST4rG8B XCTf NhyX DemHcww CzbUbqRrE sHs3 ruXNVXzc N73C 5iOUBiRb thYj DLFUG4ihL qIhQYGO unjQJZf yc9KaSDr8 0ZQraZOo 8ipG +1 3 597.43 346.39 1612.14 225.92 609.52 347.39 1635.66 232.71 1MP3NMFU erce pKh09u 4fdZGs un5GAwaKm 0n0gjRGc yb8x qT12 42xFmCwXf cktTlx4nH yilIG5 Inadpth psHZPz lgFi MllIrXd8J lwrktBid Yojt smTt Mi13AKf cs6k 9UR1 ZaqD UtyDnGQ FTyiyV7ag t0zjtKT uuPW FcyjvYY 6Vv1 3Ap4 poTyk AQ2p oYkG V38j v1bx2YtGf gGkSPazwW FhFA73hj 45bbP7TdB pmPD ye5HeIy YhGA p2cI A8hq t8oZT +1 1 963.91 -1078.42 -543.34 -515.40 964.91 -1070.30 -542.34 -506.05 9ylajWi SWJX uGfH 59KP q6jIw fZwM oToM w5W7 MfWO g0w0 +1 3 -1151.87 -82.84 -865.35 483.49 -1150.87 -65.78 -864.35 484.49 y7v6 HxMcgm 6nsQ kbqDPt zucz o56y Yeq256b lIA8 KUf1 d6n6D5C3x NqW6 6rYE s7E9 4gGA FWLkv4 cL4BxQz NqJkuF62 V1I4FC tNhw RcC10Wjj Jqo61mC h9I4dd DjExJs9sy QzWR NkXq mqLg M4Rk KpSB QjFd M4eB 3xkXO wAvRl6oj4 7aBSeOhQ u7x7 Xmxr hEUiNK WFPw sC3I dO2YnODMT NAa5eYS nxd7v JzMC 2WDu +1 2 490.48 1704.59 -1790.77 602.25 491.48 1705.59 -1789.77 622.36 XRoNZy h2oyL H5xB s1RQRAs 6sfqb 0Aai QwQnzL2 73Ag 9KrS ZtEt ZkZB 1vjp aHDQ kmA8edOFr aIxYj E4kbTNyh LvKW +1 3 334.47 -756.29 -1041.62 -618.80 335.47 -754.08 -1040.62 -600.08 q9W4iOfLT Anlc JMbYldc I1ikl zWQj whBO nZbq uwbCyi RDDLomiz 3EnMNM WfzxEGLv AqOQBZS kxlsee W9Ty gfVj ojO2 Y0MaZ iEWyTuXa fBH4CjE7 eR5o 09i5od YYva bFDZ WOoN0L L6Yh9c xgkdRj mn2HcDEFd 5vYBuI CMwjhM oqUTmX3 VpnQL5bw dQPU fu8x 7Kmgj bg70 jCDT JvAcP M1O2 yd2fBu7e uRpt sxqR 5OJ9DW1 7KQLFiW7 +1 1 965.42 406.09 469.18 782.62 972.45 415.13 476.01 795.60 YXrS6nTS HoFPP42 cG7I nzuJ u5Gl tGeQZjO mnsv UugY i9bj 1zJNF4p +1 2 -825.50 -1259.84 -535.75 1206.14 -824.50 -1246.63 -534.75 1213.67 x3iIpNKBT 91kQ6cncA kUgu4yjv EO3eAFd A6yImLzi Za8L Whi3yuIm NGOBxg BqJM0 nqmW7AC v0wI wyUssV 7YH6 512t1UAb B8PW ZfrQ 473BGD1 +1 2 -1157.32 1460.71 -1003.99 -640.66 -1154.39 1474.05 -985.78 -629.32 9eXdS Tj5j6m jMbAzUWm 2FjW N5gD 8iSO HULy qtEkNNN IZD1cCj 6PZi F3gR aKLf ykQRc7irX qjtEe 182c JXBXddIBt CRgQzTAC +1 3 279.79 -200.78 -434.15 -825.10 288.09 -199.13 -433.15 -812.02 pPZAjm tYuUgcU O6Tn 2V1kd Ubjb0h1 9gLeh qiDsQgO 4tiA akeds BqV4RYu BXYO Cwze4 W0Y4 xqEs zexU VrmF HOKF INgFD8a4 v1Ap 7u6N I63G3 mwl0 8KpX 71J1w4x JjHiXcK OMDbT07bL myW0 5F7W9HwQ gDTAR6jL BE8OO2 v5Tl R4jx j9ah55lR oQN6Elz9K Lu67 16zdYyLN VglHFG ryNvVQM vKP14Wr 1yLmzm5 LhnAuHHVE t6ND wtkzmaaI +1 1 329.44 542.21 877.68 127.94 351.29 543.21 886.33 136.30 RZkN giUe tqP4 7gF7i3 1EYL jW4G UPYO1 NlA9 GKBGFGy ZzmQ3 +1 3 -866.06 -330.81 1126.61 426.53 -865.06 -329.81 1139.90 434.64 eCemCVlHs eI5MnFV v7fl w8aT 3MWd toYB tWFRK FOZK 7Vn4BMg 7yG0 R02r uJJ9 FaZm yJ05G jNnP W0hr uVNfaq vEj6 mIbzg YkLF pU0G2F54 Rhr0 5j6vgOl hDe4l7N2 mAtl4 MeNV6uEs 0Jli b25kQY5 i6VP RVj0 KAX4dOr c01vTs8ZD uN3n eILzB zooWWA gPIyi YmzipRaC f1mNLZ FUUpc qGan CUV7 wvNa VkCp +3 0 113.324890 4 123.324890 1 749.469543 6 -293.296936 3 -566.142456 7 100.954193 19 waJ 23 Na 29 Mzn 31 6M 45 hC0 +3 0 226.137680 4 236.137680 1 34.073196 5 205.150314 2 -465.539124 6 -455.539124 3 -479.760162 7 -469.760162 25 si 29 BI 32 oFW 42 Vhr +3 1 565.247620 2 -492.015930 6 -291.503052 3 509.866211 7 519.866211 8 s 32 KeL 49 Zx +2 0 158.034424 4 230.319427 1 457.845245 2 885.435913 3 -738.668884 7 887.884949 9 H 12 vu0 17 ldz 20 HR 21 0e1 24 X 28 izq 29 D 30 tZ 32 d 35 P5 38 jq 40 Pr 43 Hq +1 2 273.53 854.97 1669.38 427.15 289.93 856.25 1670.38 428.15 0oBE 0nrLKa 2m8a cWpy Mfm9TJ 3ZAA v59PujT amJpNT7X rNToScU OYeb2e2a5 VQVNh2 lAUV5HzVq OE0t v87j VHCJ5op ufp0 bM59G +3 4 -639.555359 1 -445.100372 5 -435.100372 6 -806.543152 3 154.548355 7 164.548355 10 lJM 12 SS 20 n 38 uR 41 px +3 4 -1138.895264 5 -1015.092468 2 -65.916809 3 1449.215576 9 gb 15 j0u 34 JnF +3 0 268.659698 5 -108.648468 6 409.419617 3 991.397095 15 sDG 29 3I 38 KP 43 t 46 T9w +1 1 1255.90 317.89 -914.49 337.94 1256.90 326.26 -897.52 347.16 SQoLT zWS3FLmN dQQP 7Okq lZoEUVGa2 znm7 z7h6n7AF aDhQOr2R JbQ8jyi Ndivo +2 4 42.623901 1 292.275970 5 302.275970 6 -260.117126 3 -734.218872 8 t 9 v 14 STb 17 W 18 Lw 20 X 22 nf 23 RpS 24 Jn 26 QR 29 D 32 CYI 33 X 36 dp 40 jK +3 4 -1142.635986 1 783.052734 2 -283.046295 6 -273.046295 3 421.437805 7 431.437805 9 W 11 kT1 12 0 30 hAg 35 nct 39 Q3w 48 Q 50 7xv +3 4 -1227.694214 1 -77.403519 3 1109.749634 11 V 19 vl 27 jO 29 qTc 32 G 46 PA +3 5 6.172455 2 -231.593567 3 -17.324884 7 -7.324884 19 Q3t 22 LI 24 Ev 25 Lr9 40 bPg +1 2 1957.78 420.83 -601.69 135.55 1958.78 433.69 -600.69 136.55 LZMzdzz znffX aBEwb UzJt EnME KUxv jQXI 11IkB mvxD xWhnM8BD KoQnESJ mvo5 Q9Bz6 gYPn ZwZS h0jk06dVn zCgFONqY4 +1 2 -433.35 -1017.36 1466.98 1473.67 -425.09 -1009.65 1469.22 1474.67 pZUS sdQh bq6G tt8nlR4 e7kR bPL12E VRBx JDQr uiHInu6Ed to6RMxi 56ok ikqb bQ8NDxP4J 6cdw utjAZ4 U3U2 vR7F +1 3 -1099.42 -1335.47 -1205.65 493.10 -1086.19 -1334.47 -1204.65 512.01 kjnT fuDDw5 QA29 st6z0mfKJ g74B UKrF qymDdr D6Mp 6yJv7 qpvNgNC af5gFY XXY3 du5z0OF Oj7fFH ivpuFbt2l dsgnwjdyH Q12dNC8s 747Q LMQzqg mASw rUuvsPxG LXgl ZRlu BOsmrH Y3qn tvpc cMcIBE 8dORMsT n8Ww064a 4BwcYMzo PCVa 84Ij7hOAm xGzF5Kx LiUa vCrw g2kXLC3JM YhzEi YDGko4s bmgwPB sx6t qTV8 VMPS HhJiovG +1 2 271.52 1850.43 -1180.75 -605.39 272.52 1854.22 -1179.75 -603.07 YwgDKBv XQQH bI5Jzcuwd CO7Wy 9Hng D3c4Bm RXrEw bqSxsBV NEuZ z2mfuS7A qVsC cMsZ jOa2 4ey0 YgRS 8Rzv36KC yYMR +3 1 -152.866730 5 -142.866730 3 -548.485413 7 -538.485413 11 l 15 l 37 6Y +2 0 -372.073883 4 -362.073883 5 -297.404419 6 -686.191284 3 603.062439 7 711.182434 10 8 12 RZB 13 S2l 15 mxJ 17 XC 25 c1 31 Jyd 37 EL 38 Y 39 cWd 42 aSw 43 owS 44 pY 45 Zt8 +3 4 -1048.698242 1 792.068726 6 -334.091248 3 1514.965576 23 CF 24 dzA 33 P2g 36 IZT 39 v 41 R 46 C 50 1RM +1 3 2.64 136.20 222.84 -407.60 9.03 148.07 231.64 -383.78 D6MBs Bch3a 4pP3 au8yoX9 idbe Fhym2wO6S XDBG 1pev lL9Pnz Sm9i Jcxmrwb WkG3 zh7mNTv4 zeHo R83Q wBqC j92k 6A4Cf AjNak seFX NGn9g OIScVM1HJ s10R zkD0Qur0 bNC9d6f lrIO HgpD 7QFkrDFB 5eJy 9PrA6jZzZ FcC58Sx Tquin 1yvA aCoggSkc Bc6w 72wy2sIPG pIkdNbO 8iwuz u3Ppw1k D8pD ChP1 QXj4 za2RsFE +1 3 -1841.61 -247.78 842.85 -1192.42 -1838.09 -234.98 843.85 -1162.74 xccx CEA1 qtl10xogR nX27 wz0ocvGDh Cr85E MmJD7s 8hLr JC6a paaF fkI5 jvtW IN7P STFq 494p ZTaYhLx 3QNpGe h6Ve B7xeYz0a 3tbDPF xUqJ XFKnUi1 PRnd dN1OVm IddyGgGyj XbDlE w3H3 G87u bxt8VeIK 6uDh kG1Q I6GUIw AOAK5Y 5VfW aV8m 1j6F 4zjc AZAK V1vs I4zE s484 3AF8eFYIZ naCC +1 1 541.90 -1040.99 -779.41 -65.08 544.52 -1032.11 -778.41 -64.08 K7BS XPydfB3V 1ukK TALhDaTm 2L6ZTQn5 QLY27 3g7ILEmS ZMEP5e2 DPKD MTwh +3 0 -138.885406 4 -100.766083 5 -21.178741 3 528.251648 7 538.251648 9 U3 40 c 43 G 47 NeK 50 iga +3 4 -623.399658 5 -1547.615356 6 -1534.350464 3 -623.557800 7 -613.557800 9 4 18 g 19 g5 21 GS1 28 SA 31 bH 42 G 47 VvF +3 0 717.469421 1 117.791565 6 -544.901306 7 -1582.207397 13 q 24 ymH 32 lrj +3 1 1701.785400 2 -378.940979 6 -368.940979 3 -752.691772 7 2.921539 10 sT 46 n2 48 1yT +3 0 -292.987122 4 -67.054184 1 74.357147 5 305.435303 2 -358.408936 6 123.628792 3 -402.704742 7 -392.704742 12 dr 14 TKl 20 sIH 24 Zbt 27 ITE 39 Tq 44 F2 45 VM1 50 p9M +3 4 -608.792542 1 -104.079613 5 -94.079613 6 -1165.461792 7 -311.042847 11 iE 21 UX 26 qjJ 27 t 36 ic +3 4 -387.098572 5 -244.984497 6 -806.802185 7 -2198.458740 8 R 13 3yL 20 j 28 NA 37 E 42 7n 47 OS +3 0 1088.660889 1 2025.540039 6 359.038025 3 -420.418549 7 -410.418549 26 cD 38 K 41 SD5 +3 0 -105.633598 4 -95.633598 1 1305.330933 6 -1338.406616 3 -875.435242 11 GH 41 D 46 o1 47 NX +3 0 -72.075607 4 1.245770 5 -1194.327148 3 -356.062988 7 169.373764 26 A 28 J 35 yFc 48 Bj 49 rh +1 2 -1433.38 -263.32 975.14 -1256.27 -1428.83 -262.32 984.02 -1251.83 GIc8 AUMGl LuNnIscS W853SVvJE FVkFLgt 9EZ30s2p7 LFRl kFYb yxQyDsEi x3HV BL1qrr6O LPf8 OeIM G9lb 3VO85Ol FefZ Af7d +1 2 404.28 -1368.41 1047.50 -345.98 405.29 -1367.41 1055.20 -331.18 2dNsLZhs Jlo6 gLka 8nxFuv P8E8od2x GVSB mqwtuuHE 8DuW vE1F UHS8 3QPD b8jn9wb 2YcKz1 055Bo SC67e f2NsJcV5 4CciuNB9 +1 2 1037.52 2085.77 628.44 296.19 1038.52 2086.77 630.93 298.65 YuPG m1rswi VHAAiE1g 0oDUWXF 9V575HA60 FGuPCsIZi OTjDveA noMh rCMZ qqfah H9Fr SdENmsHv WWuP On16 i8wQ 9mwk wH0s +3 4 -2371.494385 5 246.318970 2 12.916138 3 27.760773 7 620.571411 10 73 11 vwv 37 eD +1 3 -23.12 859.21 951.56 -742.77 -20.71 863.85 961.76 -739.95 FimR kP7LLlk nSgl Nn91 vj3K6 vxc2AAjS ydI536CS 1yRTLk kWxtNUUCX NEwz JrqN lSWDUb6v 3mVK fhZnaki pxWU1 lBzX EBz8 i4Aj BXATlX DDOX RQjDJEz VMsIx Q6uV 5zMO RPdaHDBAC yLBb 9mU4 Vm9A7M g5BpJc sh95wr69m ZbOO tEOH3dEX qHBlZG hugo JBhsj Dw9lNauE aVNI mbuCDVXQA vGJXRD SPFH wzx9 MMxS 9P13 +3 4 329.664703 1 2409.356201 2 47.066406 3 -610.480713 7 68.335785 +1 2 899.81 465.75 2362.77 -1195.09 906.26 466.75 2363.77 -1193.90 cAFN x3ndM KiVJy 1ivO4L vXO9 IynG Jyt7 1a45nNb5 vXOmoxc2p 17boA 2lRS va7j QUppJM GyrB uOKWfTgK EC7h 6q50m +1 2 382.16 -1653.01 1317.29 -702.39 393.28 -1647.48 1324.46 -696.59 BQNey cwTm zl38 jJWf 9RFV hCRz xFMylT 7L1uWDK5V j3f63 cmpk zJW8 XReYp 2bvm ZYpe8IwK iOhP gPyRc D8b1zKEeA +1 1 583.95 639.98 700.24 161.98 593.53 643.26 715.49 169.53 UUeIks OFdV hqBHR4CG6 P5fW fvpINv3 HFq1Fcgn xfKn1H6v 1mMzwJ2 Q0ZiR Oszq +1 2 -230.73 982.79 -537.15 -361.12 -226.21 996.19 -536.15 -360.12 uhCL 1zmJOrpo5 tmspTf IEhY 4FXynnUQe jWyZEYtR jr08ixIC 1p567 yOG0 FHbc C6WG Z3H4p3 TBeH1I 8nfc dZmv nAml MBOABrk +1 3 289.28 -266.49 1642.14 1509.53 297.97 -248.09 1647.59 1513.22 1amq cuKP 5fAb wzNus9PH i6e6Sr mGiX 6Lh7 KSro nh0vD hfb9 lPHcg rkAF o4QJDh H4gRmllR JxUSl lsqs 6eGtT xBFe jsFANN IZGTS1 2Aefk mjwHpX b621y3PH RoDH 16sx TGi3NJDuj cjjT QHJjgZte ALAGFkS 1R1B CIWw 06ZB yotWTPOkh OCyI KV1fT EwnM6ayfk XpZ8vr7 LRUF 9wcpiWA UEqG U8Bpm pvtIa hqw3 +1 3 581.79 66.81 -692.23 -683.58 586.40 79.31 -691.23 -672.65 Md82 TjodEB O5lp tCME6Y 9CuEV Qm3AlEfSH rZIV f0FsDsOH 95cR 3dup FnIpM uSlb RsEC JgZEYC7Os 22KQ xZzsa3 X8CMZRDFf OQ11J ncN4 VWGV 3p67 CGrGP wUlx ArIhCNFfQ U4ZY KTZU Wb3H BImz Q6eaamNj O5s5 rwZE WpkaS0 UUtvr75 SNxMmaa lVHC wzjsA OmR9 2fUQ aKbw eZpd sBXx kqwPG sYph +1 3 -1009.77 1099.13 -268.20 -1074.61 -1004.07 1100.13 -254.22 -1063.66 L3Sk Og4Y CzCI pS7k M5se JqxK yaFBItu WB0wz8V ckX4 pMD0 drVw 5jbBUNP OdDgn5YnU aSBXeP MMkDfQ Nbh2BhG6C yZd7EVzM XsiY mHZF tm0J Q3eL Fq962w rxnm fGKu9kEE 9dVFxfkAv 85zQ7oZ zNtpKB NL3l neGP NOQ5 ye0v 4liA 7tZf2t H0XP EjvG x8eg EArJ Ikrt Az1V Y4Ro zgtPRHYw Xrn0 3vMta3KF +3 4 344.223938 5 -678.260254 3 -330.700989 7 399.553772 18 c 25 Fc 26 kNJ 35 HS 37 wWT 39 D 45 D8U +1 1 1431.81 -128.60 1161.03 -631.59 1443.18 -127.60 1162.03 -607.95 nYkOObT l4oO fNdC 4siY l7Oj XWpeUiPP l9pV aRvz2OFR qQlf gUJA +1 3 -1116.47 390.27 -372.62 -598.89 -1111.64 391.89 -360.26 -597.89 f6JR 5LTlH p2Nev0Kfv a1D8NOUP0 xHvp Ha1h8 HlTH LwS7Q7v PBCA xAsa Tp5p qoo5 0W9s Tvz8etC Z0f9 8q7h 513rV 3IxqEoX 2Fk0jmnKe qZdM0 OJsyM PO6R zCo4l tgHsPa 4mp4 R2YL xWv7OlLk oQZr mb6KPWndM Fas2q JqWAGY J5Bigr snuZ1I d3iftvYF fsug iMbO CkGs 70rTXoPq sWTM LUAnzQnh8 1xaAU euZjr XgrWgizEj +1 1 -73.20 630.43 581.03 154.54 -72.20 649.06 595.55 164.28 4Q1Q MD8hrNq xCl4 EMr4g0 OYHwE XEeqhq1 3crMBRND 9rgm0m76 mqV1 pHcBUK6 +1 1 -927.68 -79.39 116.13 -527.37 -919.84 -56.47 135.17 -526.37 VWx2i QLLYyfB0a kcZpQ bOnK MVFGMg3be fl3vd ZYQfOdg ieKMB xXpbvORv pDp0xKP +1 3 950.89 -463.93 569.32 -1454.13 951.89 -456.21 570.32 -1449.34 SEK5ZekV s34Dproc NHZmr wWMItI GWOd t7Cq w3Aq1u ss0CQ L4B8 lEgYWEgj sZOmRXS NtWSGo n3JT0 lexa0dA AvPS 7TDX Db0o Gsycm PIN7 GzBNba3t AYhp W7256Uh EUQ0 NQmzNXO4 PrXB GDQVW8 CY9K dzo2 KFvC oNyM BbdO pmlfU3 gaMU RLM7 CuvXJz pETy EUbM YdRh 0khj tD2X F4Mt deq8uSjyo 1PnM +1 1 -201.79 237.07 410.32 603.24 -190.28 238.07 414.85 621.89 jhX3 jHmSluY I3IL8LB p4Tf 1c1H BGdC uDj5rG TsNk 3kzzlh 6AFC +1 3 -2965.89 -1343.91 -136.29 560.56 -2959.67 -1333.74 -135.29 573.76 9PhW 5AJT 7egW 5G0tWTZlk 5iTX q7GeXhuO8 FSF3m2rD hGyVQMs F9Ox0JF ENnARNFu0 5mnm jF3quTJQn A6VD IgFe xeb8C 0g9sjvL elAR3KFD Vy9guwI 6pvc kWePHY4 ClOA ijb1 tonyo juwm0yN M74h my6HXYY 9u8O 4lbqXPJo wpVG CX2x ytRaa6uC jfMi b6XiBmW7 VagB uxhEve AmdU nL9L 9sMw 71ie vbVnAUx RPbe9hA7 Mhqiv GB8MlOM9a +2 0 207.909866 1 -192.463440 5 383.199890 6 -102.355347 3 -195.141769 7 -185.141769 9 F8 11 hfL 12 Gor 18 7 22 q 31 t 36 3cz 37 y 40 d8 41 92h 42 Z 43 eH0 47 S39 +1 1 -882.02 601.89 -72.72 -295.77 -867.81 602.99 -70.64 -283.55 CkIHlJg GqkZ s90V93 igGLlFVhM bjTo36Hg1 RrHmh 4VGI stAJW0k gR6ozK38 ZpUE7yKYY +1 2 554.31 -361.51 944.18 -772.16 559.80 -347.60 948.39 -764.81 yBPj PioH IR9MU326o sNL8GTdb HCy47fP0Q cX4B Voiw W12R EcrZrK jN5305iku QNBW AWNzrLWlC 8FKW 7hTJ49 3NYa 9IwNwTY1 yujf +1 2 -282.55 -436.01 60.22 1393.10 -281.55 -435.01 61.22 1403.14 Nk63U6m4K ALmv LgESBiLH pam9wN1 owGX Hvdd 4ut0w zQaVi 4JBxd65TJ okW9 M4SG2l8s APogAkNZ kjKy 3sSFvNmU 7Fgb i3CsqjI2 Enj4 +1 2 1340.94 95.45 1240.81 -626.45 1341.94 96.45 1243.65 -625.45 8NoSqkNv xV3d RxpSNQggn ZDNKz05z eQFh X0wd sVUDSotO pMWc24 qbkl 5iKRtEOJo Fl0h 00Fm UoA9XRc cWNL RqmGuFF OEME HTOss +1 2 -572.72 -1189.38 -393.90 -107.02 -557.05 -1188.38 -377.18 -106.02 fmGL7ZFp s0hx P363G c1yH jzHQ 6Ks9Y VNdWnquf Mjma 4GHZ Wx9r160 ZsneFUSZ NFMkthEd TPiqabSx o4uo9 Y1uz 41qr WXw4 +1 1 -694.32 -1220.70 -2245.86 983.96 -692.01 -1218.99 -2241.43 984.96 7lrew5 fqh8 ARjD Q42xak voFy Uk7db rx67QF C6oiVusX lT2sMY ZkRIMVxI +1 3 1225.56 1317.29 1263.36 419.82 1240.25 1329.79 1269.02 425.87 pTUI AjSE 51Tw Vqhmm2iGm axni1 zXN3wv 5pwez QDo2L8Q G4Rso7 Q0ubAP quix B8Wlf 6Sck o4ES DB3TV tRGn73P jNFzJ 3ja3 m1rW JCg1 QQmLLrk ZKYv4Tgh4 DBW4rit ZTqh h6U2 O9sdK8Co G2SNcl9 3HWZNqT 8X4S RjUy irNg NCpYqUZ1 jjKRgUMW7 gGRk kH02MMy In8lv0W npkY f8z02WD mdvo 0EGyPd4 X8W3fD pUgY JQfV +1 3 -109.92 -412.91 553.64 -324.51 -102.20 -399.72 554.64 -323.51 wjL28Zef teNiy 2FQmL TCvC LNf325D kzls C13c mkJ8ys TvpK LWOLZJ WzedPnb2 JYUH9 z7BeeiH ammoW CrL5 GYcb oh8O 3tpGxB RDYC Bcf3 11Wi EL0a 1rIm 1iMvJ 5KkDZeT56 5GwV Uq1Tof mvwiSlT0 7eJwOmfID Ux2VWHg GP1P iCWv tXIn kBaO uGHSePX oOfKF km5onpjo v7tpxGle Ggks Jriw wKSB Bvaqntln Kpu0Vo +1 1 -634.87 -13.55 856.55 -1057.09 -627.07 -12.55 885.95 -1048.61 t1wkubooC vzhe2j dQbA nw9K xAMN hqFJ oBCM jtT7 9CvQBvYj axjcTJ5Vu +1 2 -1290.12 -2590.91 374.00 973.69 -1289.12 -2584.99 377.89 981.14 GCbhM OUjy4 1sax xxZZ hc3v so3s kzxw IwABz9 zmxJ 0gAT 7iRyI SE9gxJL XVNo r3kfbk ORNlE6G D2kR kLWh +1 3 664.35 563.94 1661.80 -17.12 665.42 564.94 1666.13 -16.12 ONARS Zoh72fP HH5z g62dU VCaV g5x5 SgpqH7WDK 3BM7HdNyc eQ2S OGHJj c9Z3 M6oB P4mG6uZg cfUSR qYNgzZV fwf9v0TL ZzsJ f6hhZy coAh 3o9x x6fXx8rZh i8x3l UiaK VkeM3ner CPqvFjh8 tR4ah7CZC RK1a8 FnXc xQoNnFqL p8bZ KkGl nNRd uq8l YIolLJRc v5M4 5RWB 4at3F Xqnja vmqT8 R7sQQUx NRvyyh gq4pWT1vu JiahO8Ije +1 1 -520.10 -1721.30 841.50 1768.75 -519.10 -1720.30 842.50 1769.75 UEag bxPqVA dT9x vQ3gbfj YjG4x tu6l ZiKqgH4 nm2Xul OFny LipG +1 3 -2575.67 -40.39 470.52 -1677.10 -2554.25 -39.39 471.52 -1659.20 Lzpn b36f roqS6GCGa 6uAT 5jXA7hx WnqAZMYKD GkTJ19Lm 4AP5 4XtL Z27KEhk ENpG zCsS VenA 2SXFozY Nl3qAhKO AxEiG JlgR iq4x h6CQ ffMk 2vBWx UJXz YAsrqP SKU79g Qeaz1 pKoaA0 oHuz j9Pnuei 9M9nbA7d FYvu mbY2 vMV0YK no3N 9Gt1 o7Um wGiWtmn qp7YOVxL4 BlIw p0mP9SG8C bqk4 0zDb6932s 7cDsTRu Fb68eMZdD +1 3 700.93 -740.18 1375.98 999.48 702.64 -739.18 1381.79 1015.51 YxeK5C 8geTJ FvE0 FtU3 Byi8 Y9KDc KUXG BVKdeggL hnHj WyVbdAc kYBWNDY yRSlx4 9LzXy S9ghcG 71T3 l0zJ poOHpvYB7 cJSoPU8U pHcld tQ0u u3Z0eINTB Plmn 8ucmiWvJV VBYn4 0uYAe 6WDA wUKv sfVT oKGiK 53X4 BPuT 0Ix6 Qr4at HlmM R5fm5QS 8nDz irpW 80CK NyFU rklv zGJE gklm GMb4 +1 2 369.68 -106.50 1425.85 -1450.25 379.46 -94.08 1429.94 -1440.25 pF0u 6Uk2 jW0y qjEI bRDlMYUf bKq0 19VJ 5Rgm SGZW S0eL lukDKSQ VVfGwGmu8 ELsJ LEZA DiiC ZN1d JOsW +1 3 481.85 -850.87 417.83 129.23 482.85 -842.47 430.52 131.25 pncCrK e87j1HAnl jznN PwaG KTt48CmL AtkhmyDW BRcaNZp oiAP1o 7w03H 9mVx tBcZBj RW9m ZYmD skXcwvD1C YjiI W6RTW EdCV 7VrsIA FC55 J6KTRx Nnrj ajhH xr74vhdr fUGZ SPfL 3NVIKrIe8 xMyJZp CaRholb vjmL8DD6 HIBmfcw heKq zppt2FtPu 0ziP WGkzXuP NurI YzhhlepHb q6FbeF2d qiRK 5MHDFgE qvWakqoA MOJyfx w74W U7jPkoARo +1 3 677.22 609.05 125.70 -1283.99 691.50 610.05 139.96 -1280.73 oGMBr SnEg6F 7E5d xC3V ToEsTXW3 pyXcBjCfn i0D5zo uRx4O Ogk5OIAVm Up5Vodg LOKVDgl qCi7 5L2i3DR RFr4 ppiBcDP9O xVk0 Ge4q LmZMLByo 1flIG9k9 n3Xuly KdSlQ3P 4eCC fdt2 IyEM 6XeQikrA iLpo Mcoc 5DhE a62c G6Bpcx yrHL aT4Szw Zazf5 47wj EqPXi 3k53eQ3nu oodhmpWzP KiUzAAw4M MG6I WnjjCq9 8ddJ AiI1 g9Fw +1 2 -681.83 1317.65 -477.98 -466.62 -666.35 1320.94 -465.88 -460.11 G2Jm PH9o5GH eQBF 3blE s7wwgPhN Xwsyum y8VO6 DvmF Hrif FMUle8s K8vXid 1AuHoFQr LZtrpq ijHhYqk5 QIQkyN 1gU1 boYC +1 1 -1453.09 711.00 -1395.22 -1673.45 -1450.80 729.58 -1391.67 -1672.45 E2gT zYJa Xf9c 0rlW mgxSsg2 5ezu 4XPmuhL Ip7OK jtYM4NrF CGgV +1 2 454.69 -173.54 -403.98 284.44 455.69 -172.54 -401.27 296.75 uQHQE8vU 8Npj zAZc g44p 4G897rB OuSLmz3 N7jZ Bo0NRZ hYajqg 1Nyf z9Fn QeXr RJba h8p1sg c9a5 1fTvsw11 1M8D +1 2 388.52 624.47 890.04 129.63 390.71 625.47 895.35 130.63 52QL L4uq Yu2p1czA 8KXQi9D 21TisYhQ sOAP SuowzZp jzo0 8HFOimvua VaBgopE X7aavT K6fi ogNB OdDe RV7P irrzLB4R jz5ra +1 3 -1148.36 -1308.26 1089.45 -938.72 -1147.36 -1307.26 1100.07 -929.45 3warFh jDxr ugwy hH62AZOj NVSQ vgR84gHI gGMO jAZ8 QWi1 zB2lE96j2 Ih03 k2H9i WsEsnG M6P2Uo4j9 vecO 3NZ5Z 6GVt 4nIQ9TI3 ItRW Rg0q h6kP xzW6keg FJldVPUM4 580ZU mWSHIKiR lUJg TdZPv 8fGK uH32 2mV6 YlPi9n2UK R4v6 vUedi bLGo CKVnzXI2M l4G9 iAaiq Um8H EbG2pGd28 gf5Nw Sz63 UGuW Mltx +1 3 510.23 -249.49 644.15 -136.87 529.08 -248.41 661.05 -135.87 FSHel CZ9y NqI6 3cN9I qap2 kIAC XJqYBhc Kk75 HfQpGU8N5 oXr55zPcE xE0iKVipd uO86ET ux3y jAXo VsZ3fr Kuhg GQRI heoe w4q6DQ JmHX7VR 7SYGOC aXCVL AeMLbBjwc Blkv Cy1bbq Zdnyl cD1dez0U 5j7h Znyb 1sdU6xPc M43m pG43 dzLwWT1m k3hOE M6Am 90UJ YXTjBo9C xLWeii 9feGB XWphX z89xdxXOA CFJANdG b9LXjREbk +1 3 962.74 -719.76 -110.34 1363.44 979.45 -717.24 -98.52 1369.35 W0oO 9h7c1a 5F3P 56AdxLul 1iUw2MVD yNZd i3OKk69N ZzIxFZyz8 vw0v RxXFUO OAJs Acse XMQkEO UnUv 3yZS gijmOoYO 5ndWJskMN xx6f vYAiqtG Xu0layR jdYuo qz87 8FleN GyrK5o8Q1 4UNK7 zujw Z5seLh wI3U ixn8 V77a stv4xe PyJj UOgK PQh5 QEVmwAV k9kq P0sjE6yP fA3qKWP EWcsPI 9jt2cGBZu jZs3 6lyf 7pbdfciXd +1 2 -344.75 198.35 1037.33 1079.04 -342.98 199.35 1038.33 1081.05 jbX0 Ns6d ivC4 3Sgr29W6 xMatMOih S3mn2eb IBuTn 2ChGwF peSH5 xq3I qLJR CRFT 4W2m nGw9IOrM nTs1 1lHCP alUHVhL +1 2 -1201.80 841.03 -516.24 -1288.80 -1181.98 842.03 -515.24 -1271.96 0yJOL qRqcb0Cn 0c0i d1Tx jDmjkC pCpNVmnM ezZfTzDQ okKd awbl AAdt cmgIh3xxs NrRAqEXIk PPXJx7 zCqw REHe RQ0gXA8y iC5UIFkCh +1 2 -1153.55 1247.09 -1119.07 -1875.30 -1152.55 1264.07 -1087.16 -1874.30 1wJEREiO Xq1H Pq3ELp kZcw5pLYr 1LgDlgfre QPMGQjZut 02ERf wQfQONlw vPWm luWzw OzQvDx zsml fMjJ 5phTkM 1pJc90X6z GfWe i6HJW3R5T +1 1 -468.07 -1920.56 1450.00 546.84 -446.80 -1907.01 1472.76 553.43 ljz8 DtEzn k8vqK Z5Vn 1vlY0UlL4 AgUyCzBX CBXb xHwL c94S9LBJM Zg7t +1 2 -1474.66 255.69 -599.06 1557.83 -1458.70 260.82 -598.06 1575.95 iTPugZ U2zk Or0K AGqU kMwDP 6bIK 36CS s6iBFhNP to527T eP7NpurZj 89Bb NAM9 hGEbnqK 7G9di4ia2 HfDtvOP GEIti BPoj +1 3 -1699.96 -1270.66 1451.75 -1031.53 -1698.96 -1269.66 1452.75 -1020.91 a3OSgHLi zfZyeHJ kJcljGe J1MuJI 466v AfqK XJK5 KHpAOju6q ea0sZMIz ioByPJbof 3LAg bPr3eLHo n8m4ed2 SZe4mb 6sOIIe 2qkl aLhd FRoRl3C a0io1 BvNRv X4WSkUHmy k1k5 kmBk 4tzC GACr 1YLi hk17L ibP4 1SjS Vg21 OfbRM4d Sg32a3r7L szqW 4NujQY HGrBnlUQF 9iJds0L5 HUtHXv zHEN 9Uld4yqzw RFyVJp 609E9Z U7or to0S0NT0 +2 0 -424.430786 1 -348.363678 7 -1078.835327 14 bs9 15 ba 16 g 17 r8T 18 q4G 20 j 24 LL 26 mc 28 KcY 29 a9 32 88z 34 Zjd 35 Bn4 39 JVh 48 D9 49 SR +1 3 -2634.27 -95.02 -770.78 -1279.08 -2618.59 -94.02 -769.78 -1278.08 ov2k 5NCRSU 6ZvL QzikarEGr 5AJs uIfkp tBPs S6Km Iiv5u9Zw 5uhcLeHP 90aahy 6HMT wlrw 5qvUNU 5WWDHXX pAn5 Sywk ZxFpB QGAC nHliXUW z0DIbDLO wffV rp3ZzPR8 41fkIOFaA WCBF NYVLw55EV VVV0q1qJk Unv4R 5JWz SsYfgYtWp GKACPf0 XY9S w7tJ vE9h dajw iWrZ 5tpvK r6Mf DjWC mAfo WUlwR4c lu87 ZstY +1 2 1000.06 -302.43 -1711.47 15.60 1001.06 -298.73 -1701.99 16.60 jt4A l8P8 efPx jWSF A7YhF 0VKTncNp 1mdc l0hz XxrXUd mUBd vOzg nSs9m TrYa4hiC 1A33w GyKk oxnp Uc1K +1 1 431.59 -437.70 -861.36 -854.63 433.28 -422.95 -858.84 -841.19 g8zjN6 Xevv uK6P 7NrSUu8 9EH64jJY Wmbr ryJwMp5 cyrf2 sZ0OmLZEK i5tx +1 3 -573.03 1692.78 572.51 -191.37 -572.03 1693.78 594.83 -182.48 6UdUR 4m7L SC9zUtZ ELAS tOBO yi3b VWFu FWcqMjih Vbhz hOU6LxXE vNNb PPQ6 xUIOwZR4z dph8 Fybp0S btas vJq3 ijavHs 0rYB GjqV 25oa fZCH kBsT HrcV Z3ofgBS9 7sdtso 0FpU m8GOo fLOdYAi K8AvO3kt RZ8B Jx9N Z0sP zPrzoRD 4f29XAKj NI4g 6U8iQI53y q8pjrEK nH7T 3wacm h3Vu059 btYS 6MSsGVNMr +1 2 -612.10 -1679.44 -400.18 -872.87 -594.30 -1661.71 -397.35 -871.87 W1CJ 64MNyQu6 JLqh 2ntV KPVOnI952 3jC6MSZX zahG2 GrO2D8bP RqK1 Btn7 gxMn gWVp ngmc VCGSMqCC sTjUZrzy nAoz b9UbfbF +1 2 -466.70 -1325.20 1242.58 648.23 -459.92 -1320.98 1243.58 654.32 nKSC oDQGKG8Dr WMuTw uYJR XdVY 2AyR LwYQx HE7AQgDC Q5P9 uVlMcWYZj 40Xz v6xvx 6Qfe NXDiz dk3sNy Rghs EOeXtYnN +1 3 -1419.78 1301.91 318.08 139.93 -1418.78 1306.20 323.36 145.38 cdim hwrqf 4T3EbWIKp W1902gh 5ExZ HdpF c46i DYzDC LlDOD8 150gf YA1boHyf 9N9v FQaj3A 2PEH ue1m m5tO FSfQ uwi5 0PGbLWto AqLU 9s7mq 1tKJ AglJ9 I9rO irOG wv7d2cj 865B ijrg eKND V6sz jFVrU UHfHx YYFEx oYWef9Y udyBin ipIxLx m0sy srAcc NQ6s xZxM lpPNq nuFsyP9iA AL1e +1 2 405.35 1377.03 1910.51 -693.15 414.30 1389.83 1912.74 -686.76 a9qJ M8wNwpzAq 4Tj7 Hi7M 34xl0 lpeYcXtG8 U1FNWvHvZ iKtopf lc2U j4OS at26V EI0wrRMv wOltd6F ygqb Akq2 Ef1YQY7u sghqOIhsu +1 3 -949.37 1855.72 -165.97 -884.04 -942.24 1860.49 -164.97 -883.04 o2yE tIGB hxRF kv3p 6xwq ibIx WG9Lu CrUE8 A7hupurx Xvotgwxhu uH9ED OtgLFld HcMaCqI8 hoZRMXUQ uJL5hArq YhluYWn4 Yakjfbh8 tbE7 dqF3gy AGfD 0V3GWZE Z5dXe s6HW pqvvhCVce ctgiU jLgfQtU9 a4jGsXVel 7IzZcie R25RTl MgRI GjDH 0ous 41LN FkC5QhU 7IGKPORu erj909 HaGMQrnEZ BGCd ChSL 9czc XofoP YHe5 e6ecTnHW +1 1 -828.63 -1360.07 -1339.28 -967.77 -809.78 -1351.32 -1338.28 -930.21 NSSoC9LJ RyPCzTGP qgBc HusDWtE gtuja wych fTPE WKnY XdNIjsAGI ojP575kU +1 3 -1023.04 -845.97 1853.25 804.04 -1008.25 -844.97 1863.38 805.04 aYAx yNFu C7VX1g KJise1wBw 3Jla38i qLR1 4Nzn 4McvDE4I Yhzg 3ktueW 8Htj EuC7DrocK ycTaGtiPP tFNk CDNR 7Yl6 OmpcInY5 9viVI 5CxSxz Aouu 0YAS YqPNaNA7T aCYE hwPK YxRz oOU9oRCW OcXtaj H2DL 19m8 n3ut 5xqz 9cvk zjwj gnUm zsat2s6bf 522i ldOR CfL8B G7H8 McqKKmQ i7XM wP6G bzqPjy6fo +1 3 -1976.97 -872.95 1542.48 -192.08 -1969.19 -871.95 1546.78 -184.91 18TpleQpF Rlo05JtCj E3tLgnz1 qNfo csxmk4Fq xeCS7JLeb eHQEit3 VFjD V2EEnmlaD 6KPxq7osj n6mU cOGdyaJpu hN8gZev t8v9SWi ktdo5nJUi Cz7K QEew QgPh RnHP Q2OnLB9 oaAg a3ht138X Vy1O nB1XtbEq nG4wqW EL4hp 72vD TZGC 6P6C 2pbgraZ iS0d zZwL pOyX rze3mDp HQa72 eXDt 4tba bYxh gYYm s7915io6L V04m ZPK8 Kznh +1 1 1249.33 -1587.86 1258.89 -669.09 1251.60 -1576.69 1274.49 -663.22 A04v UwmJYtOq jLWd46 J6rJ Wr75 dNzX EJQR eTvz VLiS BI0rsAP +3 0 176.286591 1 402.969910 5 412.969910 2 534.351135 3 1480.926758 9 df 24 MT8 +3 0 231.253418 2 -212.000107 6 -202.000107 3 -701.194885 7 -691.194885 21 YkV 37 sX 40 g +3 0 -112.718506 1 -402.172699 2 1139.305908 3 743.083740 7 753.083740 9 VaP 32 7yU 43 b +3 0 1764.682129 5 -300.345398 6 -1094.374023 3 -101.394257 7 789.336670 10 m 12 K 16 Hv 23 Eu 37 FYg 38 8 39 uF 44 Sr 45 pK +1 1 1306.30 -628.13 1003.40 -570.85 1307.30 -627.13 1010.40 -559.18 j8Do Mm4DjC57O ANNN FHqj zxVOovs kCyd tIJiux mVUP ike3 rwhFe +3 0 119.990417 4 129.990417 1 1019.889282 6 -89.923279 3 207.548218 20 ba 25 I 41 Yy3 50 IJB +3 0 17.547962 4 27.547962 1 655.843872 2 -236.547791 7 848.050659 21 kC 22 yO 24 Sk 25 ac 39 ysV +1 1 619.51 421.13 533.95 -1528.89 620.65 437.18 534.95 -1525.41 wDmHo AjZ0 Guc1 2NQP5 lq8y jhp6 HJjv wl5d zTy9 QrPI +3 4 -1000.231018 1 -317.861786 5 -307.861786 2 2354.413574 3 -136.470490 7 449.305145 17 sG 18 S 22 Ng 35 L9m +3 0 -456.637482 4 252.034271 2 1284.857788 3 222.488281 16 94 21 HbG 35 lx 37 Xu +1 2 213.21 1323.45 1270.97 -1768.79 229.66 1324.45 1271.97 -1767.79 6dyuDN he72 OTaIp KpgDe 7fH2bc jjJdgHYLJ bWfT KdzG kHFhP keVW Zf9zwTW xABi TmGpS38Cr onVSsjm yDECX JmO6 YiY8y +3 4 149.125854 1 -142.746216 2 -65.247643 6 -55.247643 3 -306.602905 9 jD 16 a0g 25 hsM 30 XY 47 z0 +3 0 -182.768509 4 108.419571 5 -2014.106445 2 1062.388672 7 -2251.297119 9 w 20 jn 24 A3Y 40 oPi 43 bY2 +3 4 -774.934814 5 -563.918396 6 -784.180725 3 176.184402 7 186.184402 30 VI 32 j3 38 JY 43 gFV 44 WIk +3 0 -144.518494 5 -1007.389404 6 -469.748016 7 -912.269897 21 Fy 24 zOc 35 bY +1 2 -530.98 -419.07 -565.52 -948.48 -525.81 -409.42 -548.51 -947.48 RjlMTP03 aeMGgpCTo b9QjdEK DC6O CXWFZu K7PvM HZ2L yDxx sWWRUxsuD yufl g1Od 2xsTIc II4J FoWSuLS kkX4qbfo9 AfstNjYVZ 4e6Y +1 3 -2021.21 -394.56 520.83 -317.02 -2018.06 -388.17 521.83 -304.21 71md50 ldmyu01W pa3HnK28w 6oko 81YhGExz dT0B 6VBU g0G4 CdwL cGneH BJGEK Ozq8 qCRSoX2si XCwZg6UE Ru0q AKvFnG Qlnu0i oKWy MwFX kqVMuOs 6hWj zNL55n 05EBTN2 W01P XM3z 8x6h Kt8QcE erzi 1oqugx Yqkq uht6T WejZD4jYj Qgm7 Xf3Q NJY6 B0PrY2I SphHEmxR bijk6fnO YQO7 EzkU 8jXh JoYXE 6Vzx +1 3 -1232.40 8.07 -713.25 148.37 -1231.40 25.73 -704.20 177.79 8r1n8Dc GzVRJ7 9dOisBZQS NcBG FVVA whAK sOp2 a02Nl CNKz HhZj R9vUD 5i4y R69HZev 8vsP w1eMYNTQX njUu IKYcenLSc DmJY0B b3Tc GXRZL j3TmJq 3Sag zWJp fKvl F4R5tS ujU5 PBvpih POsE 8sof Wqou AiSZs6B aLsn npyXxJNd FnkpcMX69 UeXwQIi Cu5O 0J3l9d CTRi ftx3 zuhqC rN8X2 7W8crVN SvYZHusP +1 1 -783.18 1619.77 2454.19 -942.60 -773.37 1630.39 2455.19 -937.25 b34Rc WaXZ oKHm dSbl EDUerRmJg 9h2Vt0 z0uz Xgb6 ybSDV0O3K 8EWy +3 0 568.263062 1 946.698120 6 490.788635 7 -919.682861 34 J 39 prT 50 vlV +1 2 269.58 1029.88 1834.94 875.74 288.31 1052.71 1847.18 876.74 zXW9 pfLkw nta0 8fhii hd8BMUyZ ADGbvZ aNNRXvl P9Xer i1BY 3sKzB3 qstI OZwiTsEMY xRU3 1MtG277Ga ixK4 uwgI pivJyc +1 3 276.40 -663.46 -2165.95 -1568.62 300.55 -662.46 -2164.95 -1546.46 uXZCX3Y u26bp 0Wx7 WujwlbD vT8t x2oEDB Sj5Gq wk6DvnO XUr66 63R5j1VBe KHrMvF BFb4uVXFh BaWWWW96 r3LomhCv ZlGHvjX 9ksjLBU cLfx51Bp t5Xo vTpNz 71diu4yE lVym PLF8 hqOQYvTD OH7D NDcg GjzE 7CCJ1Vc 7Jyr QT72 VJLKd3Gg pTga yxEo MufV B9W3 I8cVb 8OTyWM ttrdDBPx Yo8Rjc PFZM5CR0P uOCd gPA6TSEbO fMtye0NWc 3XfkjL +1 1 546.56 -1142.34 -1102.00 1226.59 547.56 -1125.16 -1087.78 1240.06 4Cxzyn xsi4 QkPE612 5MIp ETTvo aCmM 9aRf Gzg3 z4MW AmPO3 +1 1 488.41 1585.47 -1669.41 -711.72 489.84 1600.33 -1663.82 -682.87 n4yLxLQxq IlH5 9bVM 1BJILVjy 2fEX Zy2wQou waTlNz PX5j7 HYY0T9pmq nGMFVV +1 1 418.31 954.18 1592.01 -1910.05 419.31 962.84 1593.01 -1909.05 oVnccAZ9U pcho tK6d3 hsar TkuNI qRnM 1qbg tppLRti 3aAa nEHsx +1 1 436.66 -478.70 3264.27 -293.68 444.69 -476.51 3265.27 -281.85 yW7F SnvF 2dYO znmddjx N1898 mgKb pNrZXx99x LMiT D21K aOYDZKh +1 1 -18.92 -140.82 1366.40 -1241.13 -9.39 -139.82 1375.99 -1240.13 VOmm OOTMX GdCeRf JdnvTm9k kvPa4 Fn5k NSeB WkmmR9 wgf2oX6 HHjighEs +1 3 475.79 -1516.58 1496.20 -558.47 481.50 -1512.86 1514.15 -557.47 xDcj 7bqY HhIA jluyzk51 KdTQ eiLk krBNho 0owD CNOX TUK2 1fuz TS9LGY82 3LwTni 9ojR EaQpc mGhc w5Px O7qr nIRz LVASdq BRWPOs2Q7 8jxtbUPv jnCh c67aF9d Oa7E 4PFv lRa5 dKIb7lEo 5rX8 6UnZ dto5 3oDCc jorKd KKZQ7r Yp9dhIbY aj3X UD624itt OPfcpZHK H6vI R8Zw 8puE WpuQcLZB yB0kovDk +1 3 535.15 1801.85 61.09 1113.18 549.77 1811.25 62.09 1125.83 mqaLDlQzl MExkdMWIa cVVdK flHW EVYnaedJf qk90Fii zyMM vxhG8kww gT9o QMrjsddn cQBPBUG Uuyob5Z S1xX0YVK eGuI lIhl 4uBL sSkw7X NM43 lMHdFMt eCX3 2P3954 YKhZaV ApM431X 2228oSOF v6S0 y0Lq WmLZf 4vx3 fOtzj iRwUqQQO eSwx KXkzc7 4GMf gtse ShTr D3Jt OLmO zapx kh7IZrzWp eaJ5rgp uKT9 fyFI 0jMe +1 2 -235.07 903.15 -647.54 -1933.27 -230.59 904.15 -646.54 -1932.27 PdZ6xVy zoYT bljHi Ahff GHXxf7csc ZlFn Q3ba NhxG Yqb7Zk 2VPn J5HS 5PCObOjoH TiWAM7d UxTVnquV2 JtOX1EPlx qsV4S UpX1mV +1 1 -581.75 1203.68 -661.80 871.88 -571.42 1207.80 -660.80 872.88 rdsaOdU itjRpirQ VTZw Xy0d bZJWrYx zoIrgZuL9 Faux hrVDiyuqk aBl4 lSJY0 +1 2 -1169.46 1034.02 739.74 207.65 -1155.30 1039.67 766.52 208.65 oBfH 7ItL KhZ8I9Zn MXhgURNz EcFxXQ R9GSe qvF1mF Wa2nMCp Dp8l A0aRjIrOt f5srBeup 1hGt 42AzR9wNq CMda LFMc8oU YlVebi 86k8 +1 3 34.29 1484.73 -1469.16 -1843.11 35.29 1486.51 -1468.16 -1824.37 QDXv bJp1 MSbe ryst Bly8 A0G8 CyR4 vxzB sScQ mtER FyDq PByR u0DLy7 ADwjwuIP p0rZNRdkc AkSaF8 TnW2lB GkMzmNsI uU3x NEFF gZsU7Az SFkxLH SMp8 jIOaz oKpFSc51 NpVFI hLhc 0VJbpVIQ tmopJR zC8Oil s5HW6jUjO fVLF fxvJrFyxt 4CRj 3q7X BoM8 o2sFvv3w 0NR01R5n i8zJ LRDGu 5A54 2Jv8 nvfpZ +1 3 -877.34 463.66 1095.88 -1350.69 -872.24 468.17 1096.88 -1335.61 PmPcZZwgF YrFWv Sja0 WD8vQasO9 qnUh riZG nCCT QRRY GEbS JpSM wsSc eJb3 VHRb 0l0eF5 dfiV uUTH YcOv 9zYP 9xOAu 93w71a R22qNt hSNC YiHk r4A1K58Fv fwhU6j4 3sMR K2Bu qikn8 02mR7 uhI8xL MmZW mvcD Ut7n 6apG gkDbKoZrz RRYgUui 31iO8vzI8 8So2 ylbW Qbfb rgp5 QtVe Fub3 +1 2 497.72 -294.84 997.87 -624.82 507.34 -293.46 1009.58 -613.59 XR9Xy4dkY r4jDRh BLRczaQ 9cUG WQImXKXCQ wgEgR JnEk SIiPX R5UT pjd6 yXk1 UbMc lDNF HmKRyWmMx 2bta MObm Jck1i2J7d +1 2 -1416.32 64.00 1508.21 178.00 -1394.85 66.85 1520.88 191.74 ANhbj3Hle 1kWZ9K o1c5 UMmp eXdk igJuQ2 EinOv 4Oei nDAE9s Xs7K4 rB3r4CYA 53ew pXCZ DB1aAB nPj2 AP3mqhw woJ1 +1 2 -301.73 797.69 -321.67 1478.87 -300.73 802.29 -320.67 1479.87 lPC3WZqqm r2u4 y8RpQ PDvG b8fh 2tvpx BThU mPHjmRBPQ gj8nor FpdQfc YhqMvKHf4 pxLL9Kf 8YamI e831NEm 3tPihpd5 iBHX AYlEN5 +1 3 -839.39 179.82 -498.80 247.57 -807.42 182.16 -497.80 248.57 JfON04O ZRC0QoO EzDaEfPpv 9ofypk EX9z jS1K rx588jXk Buvr bcScZfD UC0r hIHn DsKW csPuR cDFwYnlbk Gktx OR1G Wao8UfqP LTsplm 4x0OgzG B8kM UwTu j5d3 38TY d0ARKFl bPRTCVi2d FVlw dCMy DwFoky puur bEab BJb4yNO w5w3m5Ky sKIb tH7S xZYoVx0d h6Pu 14SXCX9u3 WekYMai ImrP 3HhJ GhjWlU cdJawtr lM4l +1 2 -238.63 -895.55 -1226.30 -1078.85 -225.58 -892.78 -1216.47 -1077.85 rSOzKG BI10R oy3w cYrY 8Xsz kIMFg SmTB WT64 BUedwjVM UGTt 8TZd eW1IajKHW PWez RfNX KCt2 DkU0 XsPF +1 1 -1651.67 -1438.19 1273.87 1403.06 -1647.56 -1437.19 1274.87 1409.32 stnbX8R KQcgq E619 C8b5S3V IeXQv rvtXrMpq Nkq43 sFo4 uhSP ImNDvmko +1 2 -491.16 -134.10 1023.04 -396.44 -483.13 -133.10 1024.04 -390.64 tqyD SD8y ituH CdYu iRSuuHq7j OI0i 19DiMU u4qC Xf4Ex Tmz1 tr964xz tpYu cq149 qHuYrHsHJ uNhwXb dHO9 JwSUd +1 3 -970.56 -2678.15 -120.02 340.44 -969.56 -2675.06 -104.85 341.44 bVbO t6e1 7fjj 8plReICiE l6Kdo EqOJby xmrl 1HXe 0mmr ebrO ZvHdebcpS XOqRT a5mCz BPrI fA6i5v nzIs ydeO KuCh vmLBy8vQN avw3zUXTd MHhT 9fO8ft vDsLzYI oaCl 2g5N 2sv3 ZGSCUKvU YyX3 b3Vw QwyT a13b ITKW zkM6l fj6lo tCflCS AlzF fBFo cFw8lzqS ZmJg5H rAlo rr2R 6B6e om1b +1 3 908.24 -1530.74 -365.65 524.53 916.11 -1529.74 -345.94 525.53 eZkx u3VPa1 XDrNS8X 07nDd Va3Tg 4yh7lhA mCrJ 9bYY PkUxnnDw3 ASpEsy3oj OJgK5 BTlM OqNdTz FuTN 5xqk52I1q PKuMUd0 XI8oq3 hzIA mSHx6v14 94RT syFJFp8y 9PgK 1g2h Dlc2 GX3i bzs8 fEEf aWaU7Y lCDJ 1MRH QxYs9Dl8m Hygx4 GUyikP6ia DNokE sJNZvMPwR QQELU2J3 E9S4 nuiR BFIA yX93 DVBF HU0k rHjk +1 3 1173.75 -47.88 942.10 75.67 1188.93 -38.60 951.41 76.67 MwEX 0HEr wsQ251Z 9kWqTdEC RSbk uvDK SRXL 2ZHx xalGt EYlS IAv5W7 hlJ2hbgY DIXeVZ hiKI 4b8qc2OPZ DJRA lP6Q xSv3IW 0vdt zBid 9cqp mFdm tiq76 13sRQ Jdpvb rEtk30GAp 2udV51v HJa8 qhC7B5 yRZS5Y DL0D FfkBxsp2 vsqgbKp C8fc 0Mm9 YaCgV1wS 9hOmO NE9hZonO jOtJU9DZg 60BJL SzfcZlv 1ZkY CmeCWM6 +1 1 -2099.55 -1438.17 203.79 615.78 -2098.55 -1430.93 205.87 616.78 XG4g LBou K6z9 DyZn24Wg XbVO uHftuP isWnbISf wlr7t26Z N3PI BOOjI +1 2 -120.84 -54.83 -1145.27 2101.60 -105.94 -53.83 -1135.63 2119.01 y5ey3RlV zhBQUKzWd JHNv6RG rn8f9p8n8 Rp1D RWNW 7wZL lzqk 92Vm zO3E 9SonI MMAXpYG4v XpWH Ec0j TLxAMEiLO qXXS ezipvPlUX +1 3 -1586.01 470.66 1050.27 -1330.46 -1579.99 493.40 1051.27 -1327.53 RT7Kmiq EWda5 adEW Z4b7KC9 EhNktDO rUUZ Tnlmp4mDT au1U rWGc UF9X iYP8 CVz2m3rzo Iu3g s2uxQ t5vl2Gg4 rLw5 Ga5n StgkTGg 6BsnlV Jfnd wNno5j m2AQ PU41 qWgU vIJY t6zSiVh0I Efry ocvj YmMr P6HZ USjm 5cP6DT RjIP 1067 l75e4Vwhn BnyL uMay XM4q6fjm gKNp MxPV BcNC 5sFUdCF Mn3s +1 3 -9.81 197.78 1211.76 -932.29 0.29 201.78 1228.61 -912.70 fqloPm4r XMy6 8RZBR2 xdEYmY1GE FqfzNrAYE DN4G 5z1Z MboJ nIsgIR H521mI6pz HROJ wayC plWK UjsZ hEm84EtI0 nK0mAJp BW0lW7Z d9t6yBX nXSV Y5lE p50FKXvd5 CKpWW PiHt t4iE cx31DsJ T8t0b2 lbzH JR6YV H6LF ns9u 5ss0vPs yIi0E phAJ fOqu STyO qZ4z kFFD IoBx p38R K6ta OK3sb7v1 HreA MzbiK +1 2 -1161.11 -586.30 41.10 -1111.12 -1160.11 -583.65 46.06 -1110.12 ZBZbG pixtLP5v rxT3 RX2ZVr NbVhe73 Alsw WS9TX 0NqZD VW7y RHCsv t0a3 f963 GJOR xDPB 7Nhx XGDDk 2T1PCOPBZ +1 2 429.93 708.66 1110.89 -413.52 443.65 718.74 1124.41 -389.79 ePc6 jJxm Nk8W MAPxx w6PqR vzr2 0AXh o0670C bDH3 hy1FC Idr8 3fuJMfpSY WfGU0hSWN vhwtCh Jlm7 HBhsaS S5JyT9X22 +1 2 -459.08 899.78 -478.09 450.21 -436.54 900.78 -466.56 468.14 dA2poD QGoF 0mz4 k6Xr88o uTRfqUW oaj8sOB cKtY NGZK 0Wol RUa2 JIza 2ZoD EX4WIIFF sLfS22TRg E0we eIFKZKL1 tJDLk7 +1 3 260.46 404.50 2037.85 -1922.09 261.46 411.26 2053.05 -1911.79 uBlFaZqT FJJuXk0V FDnB GhxGI5 H5Sd fYjpBv1z jphe ZR9q dyGf ZbDm nGou nvbrKY XMtm yBmvNOE hAEto XI7I1 bjYytF 0YQh tjOi 9Kgi fi73 JfoR k6g9 ggov DL1p d8UA 2BIy2Ao onMG t2HB Hxj1 z86a yCZzZVXu mhaOjZPC NiEM heEF buue sSSW GcKB S0kf ioKB2ulx kyQZ KK9c GIPj +3 1 382.003906 5 392.003906 2 -498.576935 6 -326.463531 3 663.082458 10 az 13 8 18 tL 34 ADZ 37 d 41 gk +3 2 -137.022079 6 -127.022079 3 -982.278931 7 87.960663 18 T 37 6J 40 Pz +1 1 2157.61 -1621.57 724.27 -392.96 2171.70 -1620.57 725.27 -389.62 LXNH6g dJgr CZh3 lOX6Urm 1vrs Z50HaoIN 3X4J xDbZ UfPoKG LAbG1q +1 1 1186.31 -329.45 -363.04 349.19 1201.42 -328.45 -362.04 350.19 hBmPOslU CeuL5xdR xhtWlteaQ SJhI KBHc21 VybjgME Un2PCP6 0kXz jsIEZR gJ0GH2 +1 3 1112.52 1453.64 907.52 173.39 1120.34 1454.64 908.52 174.39 Cv32 AcfW 8HWc 5Mzo UxtU xA14 HqYmMRSiG 4KBRabwm KkLJ ObMs g6DTDA 3DjK Qb4d yjxOWelx jNoq 7ivf H08i p5NMlv HUav 4zhn TXnPpThD8 0IvLnizb guLpikewa ivzI pMhlUn q64ZPZ7 bhoe W3Xg 1X3AMK9o SaX7 dXb2u LuENmd7xj D6Xg0UNsm CzEn5Hjpc VLdyoHog 46Efv3DZ f8AB p9i7 jY7H tf9kV 9zjN xh01sf8 bEqZ +1 2 71.94 2693.01 1648.01 -732.32 79.70 2707.51 1649.01 -728.69 SdlQ SqEX aWDkq Fuzj gO1UXK VN3aS E4Si1y4 SWBE3nbw loH1wFmd EhcvWT Xi2Y JXrAk cjZbJu hAllm9 YRH14M6zd uipl VY59ph +1 1 442.62 459.89 398.69 1669.28 446.43 460.89 399.69 1670.28 D9403JUV8 w6N8 4THp 56Pi NYJ1rl6oh zfpc hRmevB K4no L2SO qmXK +1 1 -2477.69 -672.49 -759.20 936.22 -2458.77 -654.62 -750.05 937.22 RG4I Na0h ZxVWU93 oSbV 58XrJ8 jIOwvCId ndlYq8iW8 dVIkcQ2I M3hy gBoo +3 0 25.148041 4 35.148041 1 1846.179321 2 1201.441162 3 -406.381653 12 rEu 15 ZGN 23 bt7 27 aU 36 I +3 4 -641.724182 2 -401.839844 6 -391.839844 3 -760.550415 7 490.815765 11 1b 19 Isd 21 FE 36 F +1 1 650.54 -1200.44 768.14 458.12 652.77 -1175.02 775.38 460.75 4fhHruQ lgBiS KgMK 9bVL rmB2Vhcj SUnxx2vDq ZYIt pdsq t9j7dq MeSi +3 0 1185.846191 1 -266.064453 5 -256.064453 6 -1125.182007 3 1740.767944 31 PIE 36 FZ 38 2O 43 I 48 wf6 +3 5 99.827423 6 -94.004150 3 285.720703 15 lH 28 T 32 Ab +1 3 -191.87 1824.87 195.55 -1098.83 -187.33 1831.34 217.71 -1097.83 33U6 ifYMSl rE2m97 TadzE HHRbq5jIw jiqKG7 uzRz WCKE pk3RD 6LAq jXbRr vveBF wmFa 2BgOvnrC vb5QL zEzA Tg7X98Ob PNTT zzyb QA5D X6dfkup qPvt je0H ZabG 2il3 oosImKcY qQYeR 5cJB wkmQNacCF scvm Vz25B FsYZ 58FaefBM ltau6r VdZl jArQQ wgdv8 kIxO6N 3ebw vaCt QeVC mVaQ kSYxxs +3 0 1605.417725 2 -291.539032 7 -264.720398 8 4yb 34 2 42 uZ5 +3 4 -979.674988 1 137.821548 5 147.821548 6 -1092.345337 3 -105.920166 19 lG0 35 BY 40 A2 48 a5b +3 0 338.119843 1 541.796753 2 -360.535767 7 -1723.766846 13 V0D 16 8Yn 30 33 39 3NP 46 l +3 4 -695.725769 5 -307.716431 2 -449.013824 3 204.624969 7 214.624969 10 1HR 17 EmL 20 9W 22 92b 34 V3J 38 t 41 Y 49 et +1 2 -959.12 1037.95 -927.42 246.80 -958.12 1049.38 -923.27 247.80 kQvQIv8hX X4Lz yZna sM2k meBx yZBF1bZB QolL XABD p8brM4EDE vXXUB0AzE 4L2MFYAk XWpDFu OU5c4OK QniJ 9y4rbH4L GVK3 zdKI +3 0 -270.514557 4 437.654755 1 -155.558594 5 -145.558594 2 1108.926636 3 489.368286 10 M0s 34 l4 44 LI 46 X +3 0 -152.552124 4 68.710663 1 -33.338577 3 1750.409790 8 Ll 21 Mj2 25 z 29 BM 34 cO 48 p2V +3 0 2554.447998 5 414.176544 6 308.973724 3 47.843445 39 O +1 3 -1384.17 -505.86 1588.77 677.10 -1383.17 -491.21 1589.77 678.60 gRRd qQKdFnNvm chT8aAsUz t0o6Z0 762irBD rn4T OiNLnx MnrS zJMB muom GHFX0ds 1AUCwz BnPc 4xGK LI4rT32 vpEslzp QSbdo VmZeJTu09 MD6L FKZj 3YOo 5Gd4Eg5YM KmZ5b9dc ZFIc8K O545VX88R 7VXow fyflhK UiMys2a6f 3W6S32Z wWqRoBfnO WqWb zCbA zVH5MJz kqoxK JBq2e K5AlZtDX iSY5GRqB LPgXbE9 izjzVU J8upuM6Fa gnAo BsSrjq dWkYItX +1 3 250.39 -499.17 809.47 -562.68 257.38 -498.17 812.00 -556.65 KPyt NKHCB tWqAmOsl1 OtF5 yy8Rp 5o4UG0 vETk F2REc49e y07a LhclBG 76MTdYU7f 0tY1tK 1d43 gRDz 6DUZ jFcz CR1y AIpR9F83 ZSTe 9SQWBbo zR7L vOy2 rJbA Wi7Y HjjM CAtL DPc4 NCY1 ZunI9fP 4hWy IFzl o8OKUTa6 HDXw eafpB jIZ9tN r65g 1lSP9Wl nbHN 6DwX emA4BTuvU NZ0G cfuVSnHuJ UbmYusB5O +1 1 1098.13 -774.75 924.53 965.19 1099.13 -754.83 925.53 970.13 SRVlpiSD Flof zXg8 7pNRou pIEo iihdDTfUC b4WF foDBuBjR jOOETn wOcZSLjZz +3 4 0.169647 5 -173.688599 6 -1101.643311 3 508.131012 7 629.956543 24 5 29 Gz7 42 M0 47 7 50 IBv +1 3 681.09 32.84 -319.08 -1670.45 695.26 33.84 -297.31 -1669.45 Hd22 QTfkVYZC3 gYc3hU5E jp3V Dxad 3dIe MdIN osVx 8gpQkn0Qp gtD3 zZI3 eRHOM5 aS3n 8Q8Y rhU0nUd X3i7 0NEX2y F5uFeOo7r An48bYl j2Z0hX lrSbz0s 8ylE V4t9 5pfy iEGr Cdlm jpZimsgI AJAD U8PPjOB svhk6 eRlfdj 9llentzx LpY5 XnZi c68Dp7Bm0 nWAc EzO9RycG zqyCu3m3 LqGg Jzl5l J6QK NCaS c6hh7 +1 2 -1307.17 1115.71 -124.87 -493.30 -1282.44 1135.47 -122.08 -468.57 B7FKc5xSt 4OuU 65a8 9suVuGIcZ 777Z nAfF pWmZ jx0u FiOJsSHR YB6L KUesZKXSu GzE4 ZeJQEgpZB PwLq 9km36S P4F3b amKn +3 0 -459.025726 4 -115.529266 1 -428.920807 5 27.187744 2 -498.335327 6 -488.335327 7 751.006714 8 4hA 12 xI 22 js 31 Cnt 36 el 41 Ojl +3 0 811.348755 1 -349.754395 2 1028.380371 3 1357.199951 8 m9O 21 2c 23 cP 33 F8f +3 0 1543.776611 1 89.791565 5 99.791565 2 2125.010498 3 -563.380066 7 733.116760 10 t 14 nE 17 n 22 9Mv +3 0 195.102417 4 205.102417 5 207.600891 2 292.367859 6 302.367859 7 -735.791443 11 l 14 k6 26 1J 37 sp 42 o8G +3 4 -1094.673218 1 -115.419106 5 -105.419106 2 525.135315 3 -540.906372 7 -530.906372 8 B 11 tU 30 FD 38 Q9 42 V +3 0 350.862793 5 -591.600464 6 351.551758 3 1189.383423 14 9p 23 w 29 O 32 PZD 35 PH 40 QYO 48 fL +1 1 -853.41 -513.30 -537.04 -799.85 -850.05 -512.30 -536.04 -798.81 Qe6E j0k7KS jt56lw43 8zfN myFx rv8h 341P 2mHVQc2 kbtK fzC1ISY3s +3 4 -2166.820312 1 629.166504 2 -235.769165 6 -225.769165 7 -115.663147 12 e +3 0 1043.649292 5 -1592.331299 2 1075.006226 3 613.408691 7 623.408691 21 Ny 33 4C +3 0 157.193680 4 167.193680 1 318.823730 2 690.977112 3 902.830750 7 912.830750 41 1 49 Lrr +3 0 968.900879 1 604.381348 6 -763.836914 3 -580.517334 7 483.840118 8 BM 12 wdg 13 n3y 18 Hm 38 n +3 4 -88.053925 1 858.671570 6 -673.894043 3 87.550659 7 804.182251 19 S 26 I +1 1 -1245.75 119.62 1219.46 -902.93 -1244.33 124.63 1224.57 -901.93 iEBF j9jJaK 5dxaixWRd yFoj Ad69xuy4 OxKrr ORHMajav Lq3i RJsS Lg7z +2 0 -167.012589 4 -157.012589 1 -158.043015 5 -148.043015 2 214.233810 3 -115.803085 7 -105.803085 8 2Z1 11 u 12 EhZ 15 N 17 vV 18 T 20 3v 23 5 25 9iq 27 8 31 1a 33 W 35 V5 +1 3 515.90 1071.64 777.41 -1300.05 531.88 1078.05 778.41 -1294.14 mymK b5aX X7fHmNr xxml 6UdmXr pQjmi OK5Q 3fIj Bj2Bh 7kH8RkeL ZlscPlYqM DeUTFs 73Uj AUDG3F 00zYL1 wvvlj5bND cVAl 3hwIp eVmtH 6MIoDF95q yGof dmIU ReOL CqerU Jpqq A3d5 2M0K9S 1yLZ dqUS6Pg jBkH mOTc hS1NXDX6l ZNm7 hIa1aX1aF yMFR 2pZyENM dpwAbPm bS08Fe uAKnaFuA7 xOfe Wc6z A7SOcgUkI vZiC +1 2 -345.61 -680.93 1474.37 -2846.79 -341.92 -678.96 1476.06 -2830.21 inRW 4HYc 7KzV ugrs 2CbV FueY2v QTMN o4yoHM2Sl Hmw4UQd dhuF OPVN Mi4o vR5p s7Yj qrZg dkJN xKD8 +1 2 1793.76 969.83 1172.49 -247.74 1813.28 991.90 1182.51 -232.41 kY0r Z579Ip PrSF xmA9H tgKRmLwrN jvvmgR2 E8omEhkN zAlnSf KMMZ 6wChv uSfEtk TisC Uq0pXX1 IOjMiIV 2YGX mQS8 JUV3vo +1 3 -514.94 431.74 -2172.51 1787.11 -513.94 432.74 -2171.51 1794.45 Ak3E Y6hLv luf6 j6f7 UhG2WL OT9j9 pSIS MPRYnvf 0Isu pHid 19KkJRvIb FBad LjkeIqrih 4wYk pRXD fpxtJz Pxm6 tJJA 7xFlGjy4G W0vlPFyuK jHoA6pYUC PX0fu GkoQ I43e eLvtIzb 6vrauq6 Hbpq 4ijIWieI 158K XEUw Yolj sKdg Klbe GoXD GtE3 WX5e Ce99 RSX9ZZ rXvQtD9u SvBf LJi5N0P vkOpSRy1 Z8hl9PIxm +1 3 -1119.33 -268.58 -235.14 817.93 -1118.33 -257.70 -230.29 828.95 UUGZOLCmP 5rvi09 m6Lq 39wMl2uNT Uk3H V0uUrCS WdM9 XTB0to7Zl VnaAI9 LNSB fTtCx EroV 4AxmDe3e bfShph vE2iC hKr9Z ie6Idbe DEYO bZkf YGLqrzy2R abs1 SAwys0 2BfP65 mPGG trtwyU zLP2X ex49 37uM4eb p1wd Yvsh Ivyh 4HfU q5f8iyBu aVp3 rNsi I56h ZLCSircc NsPqHr0s4 0PPwt 5GrS mEX7L KifU 89St +1 3 712.35 264.09 -1790.03 271.92 713.35 270.91 -1783.83 278.22 cXF8rYQ iyjt rYoJ ND40 K9Wa Ogjg 7szm OlpDy de0S AMPWso BtgE8hF juVFXaV ngKuOOJYc ru8J X0ZwhinlS 7P2d G7oJ BKZ1 btD5 r7zM WIId iT2Q1K qSuNG ynIlTkk KmEEN JKRqTAU NcdRbMDV9 pQSkA BKysbzrq jmhQmSqYp YpLJkbC Aaf97F Q8QBc 03y5 z9Lt9Vwf KNq9 PTwxIE fM8YO v9gy 0ub6 ebNR qOFje XeCrt1 +1 3 507.09 -1407.05 -537.65 -1202.11 508.09 -1392.96 -515.47 -1185.38 9N5M V2H5 Pbb0 mpFI hDUZ eun6 t8Aj cnPq lfyV rOLea ujuz49kBH v7I5R4tX4 XS6r gv2AaXr Lm6n mpgq RcFy COFE 2QmY 92D24D eEm6 z16SUc9 wyK8OtauU ohQbcRkt YucfzU7BZ M314 JM29 11pC kuUfD nOtxLm5qM 8mKdyE7se e0otay4Ig aT1vU4ZTF FGRH WZTf8owe Wi2EXbpi KcerDLXE CvW0BE DDHv OfiwdDTOd uicjT3 O7eZ Qe8NbttDa +1 3 -1064.26 -1022.20 -882.38 -664.16 -1063.26 -1021.20 -881.38 -649.38 ju3QzK dB2xT AyVl pCkr29 vDpE X7Kp9s2 BGCM EEhjWX iqA67P WGF0F ThCT JfKMGd ERI0 hcbs kesTop zWiX SJjsOHXw vUQfFY jjeG RohO 4g0C YSPx g1jfj0H hMlgN0 LyRwUY9 QCk1 e32a q4XE Om2G Su5z NSi5x3 XtqxZ C904 DjucwnK PMer oO549z6y siUebY9tw NujMmW piLzAfS4 2zuh1M0 vjWPo Hu7T VVZlH6i +1 2 -1134.14 1281.87 -512.89 1407.04 -1133.14 1307.75 -511.89 1421.84 g5oH SWHmMKJ8w F5xyu85 tMUi nYVW 8IfRuq3 hoU7 UGkT icQTu VbLJ DiFPGA3Y Smbl gBFO7kx hRID 7Hsh6BaR k598SpA hHxf +1 1 914.17 -1046.03 292.59 -857.89 920.02 -1045.03 302.77 -846.62 MX4LT xThr yHD23 lUPu V4insD JHcnFbWtC S5jeM9 fczjyuPjJ TNXp5uDJ LDqWMLv +1 2 -691.35 1139.18 1619.42 -1004.78 -690.35 1140.18 1638.36 -990.09 qRy0 nc95 TIKn 9k5t bG8rL n9o8 QNOGJcN R2bz CVz0sVUQ XIm6 8PcgpvGL ugYY C5D3 5lMe GLWh6p ixtv dwZRJLP +1 2 -624.78 -1148.37 -977.72 -1460.17 -603.79 -1147.37 -976.72 -1443.05 w0NuDvWf Gf7m MC4FmXrd Ox0C XvUV sECF QE9A B1kEQEQr bZFr R6DyOT 8iFR O2C1xK77p re22vPwC g3KKj4uC oeCuqD hMHy qiEB +1 3 538.77 -1096.70 -1192.21 881.90 539.77 -1085.78 -1162.02 887.04 MFMf wdoD VEJD i79htSPk iyGX 5DA4 kQJerY yDj0 gC6uoGbYQ u19L2HqF mkxTHqXd YFxR giQ23D73k sk44 mhJqI7h LiL1 4vwl NoBrNl6 Pbrh UgEy ccch ljsi TS03 m0H5 KJx3 fPoe8dAU j6L26J Sfpx tscs 9uCKsPHs J14N6 MU1c ExU8Kru4v Axpt SUJT XvtKZlV aexQE6 vgvP8 ASUWG FKseR9XO 2BUD FSk7 8uAkjs2pf +1 2 -102.11 272.21 529.18 139.05 -94.13 273.21 530.18 148.37 NtWRz9 LMqJ oDa6 vKhqS gplM03 NShZtaP3 x6WG QlP6d p9Hy nS8Aj7l PdfY FKQ3P TblD geuEjpEz usMKVNAlE 3MNVSO 0suA6B +1 2 1019.02 76.23 396.64 -455.47 1035.57 86.83 403.96 -454.47 SdrI kF6F A89J7B2t9 zSvi jKGJyNl9n k3Bi wmZUiJO wl60 Z4LLxly6 AU0Q BpK6CtNM wHPVRE2w tCJ3 9JEv IoJM 1lBrBneZ ixk3 +1 3 588.03 971.70 -432.70 349.63 593.49 989.52 -427.56 350.63 reZuyLMZ qmtY LaDN97Cy WrpZUn exOpthtj qUfE s7fb E2w3V RUGs jcve vuM1 ckwwLMid xJ0l CAt8iKrhu JHhcjXNSJ oeyn j7HBb254f LbaML KPcss fANL 8NxH8 5vInwvwb wDuk LzTbi5 V8xJcgtRb CDLO hyft HPZZo4 0fWj OV3I jTku 86IM OEe3hH PvX2iUb4 f921 W2V8 CZZPV tkLe8gOY rOpcri SGgD T1PF zTXkH 9v5v +3 0 -160.621597 4 -150.621597 5 -2047.399048 2 593.798462 7 -1989.853882 23 6D 32 Ty +3 0 1758.737915 1 413.675690 6 -955.219482 7 -575.618530 42 j +1 3 2051.29 -601.72 -249.65 1555.24 2063.80 -600.72 -225.81 1576.56 INeV ffHh xOyP xTZyt Ls3x Dr0D12Uy HqREx2lc uYwF16 71dxj 7xL8 hA2b Paex6t2 tVfM 68rPVC1gs H56I VpN6eswKI LiPI77 lpbb g4Ci ESCYoujO Rdlz f2jwHoyX BF0m OCFq ebYe aJts V2sa gwEm eAFBKoC NE7u9O Gygju KL3D Msc8uT huKRuLrWh 1L7fNhT 7ln2 6h19 Iagd ZnxvItM RI8Vsf8 z7Jh AUSw xa01 +1 3 1286.66 381.50 -734.91 2894.89 1287.66 385.60 -711.13 2895.89 B2aE BkM5 ZoRIKV dE8b 0dySs 2jr0 3t4U EX6d6SZ5 lUSn2BK0 Hbno Xflza8pI YbQ8 1swu AnkHp20Z 2QAghSU3 OMUL 15fz T2q0 pFYN 7IWW rAPr ygwI G9I5 NTiy TOxAO QpoxHixXV yJN5 blcemJS pmUd tsdA6Dsju Yzn8 DUOj HzIv lhem wnSyWu4YW XBH1 08VyNN I6TPByJ lbaso DFuz bnsjvx xPSh GMbz +3 0 -144.361786 4 -134.361786 1 -408.211121 2 -50.192139 3 1286.401123 10 o 13 au 30 Iqh 44 d 45 ZUX +3 4 -688.902710 1 862.651978 2 1605.878418 7 -777.897461 8 Us 16 1 45 O +3 4 -177.481873 1 984.266663 2 860.276489 3 315.600464 12 AGk 16 mo 45 4Vj +3 0 649.571777 5 -2931.408203 6 -866.776306 7 -1091.172485 10 OJc 14 q9e 40 KX 41 3SR +3 4 -563.980652 1 400.796722 7 -347.326721 14 xcf 25 X 32 0 +3 4 -1147.563965 1 1646.168213 6 -557.810181 7 -717.835144 38 e 42 9 +3 0 141.892548 4 151.892548 1 249.856613 5 259.856628 2 147.280914 6 157.280914 3 803.217896 7 813.217896 8 o 13 b 50 b +3 4 161.789169 2 611.804504 3 -720.535339 7 744.622742 9 JXo 12 jES 22 zLJ +1 3 2425.49 461.25 1277.56 566.95 2428.83 472.24 1289.94 577.44 hSBa Z7ra VON7xc Nwg91M2PF sGHt cbV2L yvxpJVB6T a09S P5jh3eM5S hnL1 CHwvccID 92m1 qtZ1 0Kzq yMwx J0fjp2Qkq sBLj R5VW hp4l6b 4AXO spRN cPy2yS pluu mXJZI0eD UFvYMrG ZCyF7EoD wXrs zs1FM6s4 ZpYO wHHR Z7asn ewdhB JPPa iQD3 Afoh ImUak ddeiVb ONgx q1Zp TnS1 5ZyIgNBf TyJAFjf cAH2 +3 0 -331.767944 5 -2060.870117 6 -751.062134 3 823.402832 7 833.402832 19 X 38 Q1 +3 0 2031.720703 1 -273.711609 5 -102.252106 6 -542.956116 3 -730.995361 7 -139.646942 +1 2 -87.18 438.37 -3.91 -84.53 -78.25 452.78 -2.91 -83.53 4ByDCer fFRi UN1c ahggVl z5QkEOA 5p8TvLEH Boweb9 T22v25fD6 21JrWS IjYWChbk C0Z190kcr GtYwQ PJam 0R3J plCX ArF8 X2Qx +3 0 1003.410706 5 -239.124847 2 994.629822 3 -500.790894 7 85.225327 8 W 19 oM 25 Ll3 33 3 49 Ju +3 4 -670.362000 1 -253.537109 5 -243.537109 6 -860.799561 3 1727.738037 9 DAB 11 oa 13 BNY 50 Tt3 +3 0 125.622681 1 -190.168732 6 -507.969421 3 97.653900 7 834.028564 14 CWK 49 u +3 0 -18.660614 1 513.296753 2 -71.394440 6 16.563387 3 -214.872879 7 -204.872879 21 YNp 30 d 35 C 36 gD 45 B +3 0 361.128693 4 371.128693 5 -1381.996216 2 659.040283 3 165.214966 24 Gv 30 DeR 42 3e 46 jV +1 3 -1097.19 1255.15 46.23 -1298.17 -1094.97 1268.32 47.23 -1290.70 DCZYD7qZ MpVC KEur Ifdb kJkw PJdY Kfq9 XS33 XaJJ 73V9xgRd r9MQ zhbK 0ix8hBK fvpH GYXH4 mfO2lfiW6 AKdz aaEy 1ZpBXl6 EZdmoo asJ8 Qxtw aRSN KsVy 3COb LwEkDIJg UtoVS ZRYC T65kExlyT rQkhwO 3vsh 2IJZrY2j4 KpzE6OEb Qm5E 3zqpOJB5a prKy yxzB2gX 22Xf q4kK 38rc mUwk 2TkgmL kaeO +1 1 -513.27 907.80 -2336.71 -455.10 -508.04 920.72 -2335.71 -454.10 JJjo Rw1W q1vr hxIa HGm1NUlh vi2MMe ujqnV4c LAf3 y4p4 fAGQ +3 0 881.928101 1 401.741821 2 560.031799 3 1233.807739 15 3 16 8J 22 cz 33 G9 43 p +3 4 -1510.555664 5 -502.018341 2 -476.359802 3 15.535614 7 905.853027 13 U 15 II 17 2o 43 f3 44 Ei +1 3 -771.13 322.44 717.71 -1375.17 -770.13 330.16 718.99 -1364.92 jTGrqjvv WuBgTl kB0n sJLI 41ah N8KZ GEDm aiMu utjwk dTih79 Wxit VnUM Vbp0IO bADA9FbrC MDNvrwv VNUx pAetqqHTx Y5SF YXMK1GBZ 78ifoEu MAobQ JVOtkf fo4q8XXM clkeEC03 REMVt8h fL0y ZZLsm57Yy y3Xm dOwY lva5a 0F5y VYQr vB7IFH lWoD 5q2l3 PHuHL25CO zBJU oDZUivC MbbqKiWW YLdB QJa1 1mMU G7Xaeqc +3 4 -318.073364 5 -642.648743 2 505.295776 7 55.109375 11 tLO 12 B 22 OUh 24 AF 44 O +3 0 -420.903961 5 -1753.677246 2 281.175385 7 -1988.763916 8 6R 13 U 14 v4A 16 T3v 24 9 44 9f 46 O4N 47 sVL 48 2ah +1 1 28.78 384.47 903.89 566.94 30.70 411.41 904.89 567.94 VSr3 v19hlObT 3MyWr vm6N1 pUOJ NKZ9iknj KmxvptiGj pZJ4Kq rUcg9c xRil +3 4 -854.842407 1 1301.285400 2 -389.308960 6 -236.510132 3 -474.238770 7 824.084229 10 Qj 24 Jd 29 rR9 33 d +3 4 -1691.115723 1 -376.819733 5 -366.819733 2 -343.835724 6 -333.835724 7 -1061.726807 12 S1f 22 z8 23 Y 30 P 31 z42 +3 0 409.453247 5 -658.968811 6 18.464539 3 -859.387939 7 876.247925 8 tDP 20 8HO +1 2 1585.39 532.39 453.68 278.31 1586.78 534.66 466.35 282.55 2csZogH a81cL q8Ge IHYqEN73J hd84lLi a5d85LY qP4z 3qedfv FngQ PzmMVM OOWMS NzEH mnWs8p ro3r UirRE5 Ops3gsUT YWK4iPhq +3 0 121.040176 5 -1212.193848 2 752.405334 3 -966.559998 19 mU 24 3 49 nGI +1 2 450.44 697.16 -647.07 218.15 454.97 709.79 -642.34 238.81 A1nsl nEF0H7j6 PnY4 CkhT 1oQ2 hihX XEBL ymgi gTRO Cs3M Qgze wBsl tsXp FOTB 3KTF G0T4 4Mvr +1 1 -654.68 -385.88 -1251.91 1233.75 -653.68 -382.12 -1245.94 1234.75 xAAWyt1K1 sUuRHInT4 fU6q l40ghR UoQR PJFn YnnM OXQI 4xFlCjfpi 9L8W +1 1 -1220.88 304.74 -334.86 132.11 -1219.88 315.22 -333.86 145.75 V4OZ XnT5Pr xntr ilCP 3D5eigLc6 SXNF24u9 3nFD nnVAX4ZP0 bVDU Ojiv +1 2 1364.49 50.57 -60.37 306.29 1391.70 51.57 -50.28 340.54 yyD0 By00I xrJD oervAL 7GNS CxQxDMs k8zW O0a4 Tndo T5CNhx xmjigeE7 546Wrx XQxMd dL9N tHgLF89WI Mmk2FDs Hd0S +1 2 211.62 -154.01 103.98 333.63 229.79 -152.56 104.98 359.04 s3EmExDaL BViR1 KT3n IaFx qnU03Dte vfJG SD7k vxymK UaB0 Fbya Rm3TTh L7U2i XFUp0z2i V3RGoHY eoqT CmIe vTV9 +1 3 -576.71 80.81 -1766.95 72.33 -554.76 81.81 -1741.17 73.33 T4nX F7ZKlVMG lOrp t18B jOXi sWokUJ NLWn 5U4lUAf2 7dug hPHL JBxf98QS Pp0Xj vPZVt308B JxfN df7R9H vXNm N7Jvzas 4eDCHC Y8qM H7YLqSmxw tyuy SHg7 HC9g kC13 rrqy jhg2YPN 9jM3 ISJoP5hmO 79b2W6ep Kw5KGUo N7BhHmZu qB56QefDJ CuJGF7Cv CFZwJpoBk OT0G IB3KkLGNt AsDzICXQ bbBE fdBvwdyb EZoRWCjL JuzEBDSS IMnH meKbIxS2X +1 2 -1757.97 311.93 -1402.21 -1316.83 -1751.70 312.93 -1390.59 -1297.75 wzZs 1WtLv5m WHLt havejQa euRaz JGLJ ehdX iHGU Dm83 lch0 4kANCSQL KmuxRItAY NABC3z 579LreF0H BPMx mrzU c7Yovr1 +1 2 -2771.38 408.06 971.38 -723.73 -2769.50 412.67 972.38 -705.54 D44b PJPKU CfbN k1ME ECak 9jygsZ 7vUg5 jWLQ haJN 4bTINsBlg uE3O uHY6o 8N8w keLTjA FZGL TtNGr lz2t +1 3 1773.84 -784.31 1170.56 -103.09 1774.84 -775.29 1186.24 -94.29 kdtC S417twK BPBh zuB9 iYek vD5r MOJ0 KoqH 0x5OJu7R id8tm3W sJpfbem uuDy LyQN Ds0q wBSf yaAV Kz1mTdPe8 bG7z R6UbZpA engwot 5xgMi 4ICGP JcXD VYkc0Sfvv qB3E5n8L hmhv CIUx 1yN2 qsH6 vmML5 uu9i mcDp e0TdPyQC qbie jr7Jum2 KF6PB kCUf wFPZLE kMkjki yLVZ rEII pXPys1tp6 xFnT +1 3 -415.32 245.77 1844.83 -1006.75 -406.33 270.29 1845.83 -1005.75 xz19 mecQ6U1 LzQj qjVNw jUQM 35hC1Sw zsPT pcLfu 6dbK4M GJ30 RGWb ZMx0s 19wA gRTx1 Cu5M sHfCI2 5PQR hbHzCuh 50rR 4Go7 TjcV a48Hcw 7Gg4NlJv Bm7cElW Yi3NFT89 At4CbqIHt yuJkvkg76 U3JDLu X0FEbC cjK1uF5JD hdvDOib P7uoi 6PPN5Z2 nDU0 Lhc4M AshRm 4LI5 YIa0fXS0 iYFx YZxk 5YPJAbobH gjAlHX DZEA +1 1 -1568.31 -691.62 -726.24 -863.80 -1558.00 -675.08 -721.58 -862.80 IjzW Nxne 2g7s i85Q gUER Q6vT afesSi6k spQT MllG0 UjaqWdbe +1 1 346.14 577.05 121.32 -61.81 352.04 579.87 122.32 -60.12 Rkj8 IsHYCh Pfed PVo35DP 1h7qkv Zyp0 3R3q EIYy zmmB iitp +1 2 -1487.59 -847.38 2989.60 -1167.70 -1486.59 -845.41 2991.51 -1166.70 IGgl2sh UE9aoS 9bb1 1GvC sps5N Cbcp BP01 5s9MWe 4BLzio 7Rk2I5tD wZaI 6p2gizG 6ht3 xD4RIH5DP qbLeqD ewtUnfEb wMEOwzU +1 2 628.10 462.46 -102.19 595.73 629.10 464.45 -95.01 597.13 s1d7NcByX 6f8R THT96Qi 2pFQ khTrUavoI gxFW0 zNvMX EpxP 1ntI vEWd 6BMHza0N GPjy RrIL c8iI GHutcQ 28Jf Y52n +1 3 -855.53 631.76 43.72 -176.42 -854.53 636.71 44.72 -175.42 NshC PoD05LC 5lfx TmJ7SZatc DCmaxl FHDc WZzF1vK jg5sN C2wR1 h9JP h4wNort KNSMsXw DS6QY rNK1WxMo kw1BwAOx XVWB UF5dq EwsGM rciQ D0PgOu SRUW yvO3 KdkdC pBOhQK45 OKDj e6wcikUs Ucjd iLRQOL LhMTX rEyC 6Fm2Ce EXzk mWQN6oOeq nM3niAJos dYxi BtyA JLf5h6Q vAluj2SG QFpb dpG0 asyT FIBiB FYNa +1 2 -1677.63 -3568.21 1427.84 -521.35 -1670.64 -3564.60 1428.84 -511.29 Tld8 tj2h cqMX dgN4 KoY8l6HKU UQn7KWX4 iGde 5BsEIGg5 wSHRPKL9O LD1H G9NI bjrq6W hOGyY3k oNLj8n AFrN Hdm8 ApGb +1 2 -467.49 13.64 454.34 -338.57 -436.40 27.46 466.80 -337.57 o5Vs sr7BVr 3WrHp p2HP 6fJLoAuw je0D fp3HtYoM Ts2V2 NtqO xNPwQt4Ja sKUeZaVh y4ySAgd pyct IQEoI7a2 7GJ4 Xs8W Nr2FPj7h +1 2 279.71 943.27 -561.13 -1197.85 292.91 944.27 -547.43 -1189.23 VcyV4Phe VezV AvisQ vpP7cy bRegr 8Uof oQCL3 MrPtt AQwrLUEl AuUS BZc6t8nle ZdaM1wlVQ 1nDO0 PZyrPHp8V mLxl350q yOIy BFt9tj +1 1 -1848.33 -65.18 967.61 -567.88 -1839.40 -64.18 968.61 -560.98 605xG atPY lGqk aKRBq t8io V3Di gtqAgN3SQ wkvBs7w bnnZ YRV7bX +1 1 816.97 -1243.38 11.69 -54.54 818.09 -1242.38 12.69 -44.93 sm1C idUJ OOO4GMcK rsPc3X n6colW qYEI 1mGPYcZso 701nMFW EzXb Z7nH +1 3 1830.38 1487.41 213.59 203.43 1838.75 1488.41 241.64 209.59 K0vvDfSo EzcOGvs IR7rlXl Coub C6tK L3MfCSJ gkVh R2z6k HJDTU6Z vkpZL6 k1fA 9yHeRiK FpCg a4Fb9tg Ftxigbd kOeM OrQhSW xsMEWFab 7ggi 5Ud8 Rz4J eDCW CepUgcBZJ WVNtIj SpW4 dnAjbiyG eXnL MLasn WrrD 0SNJUlP fKT5 SPTz CV2q sSbz p7bU dPiN LRX0 UNxE 9Z50q RLue 1oEDI nt5Jf B3UArtP +1 3 -943.84 1813.33 -2016.33 746.73 -942.84 1825.04 -2015.33 747.73 LxmfqCms ikXaY4G kHhS6 J5kl MMKn 4ayHWLNHN 4j6eIS5 wkHl 0QTzn Xg3o FqVjGyyo seYcZG9k1 MWvT eGGV Tqme 6D22 TQ4t1LT nEb0RLwXn HYyREh 844g pECso Oofv DrFF agBG RV11jgPa sM4k oiwUt 6md4f pzr5w4 MJMs4F A2c0msF NgVl 7J6x2yVdF nae2 Cct3 ur5w cLD70N0F 9nlf vsVT n2za lPG2 hQ1x AA4M +1 1 -192.97 908.68 1847.71 243.45 -177.80 934.23 1863.61 250.00 5s89 xXXl hBvS zeq50 hleHag OvMf0Uo X3l5KdR NoAC lr38xP LAoO +1 3 1085.09 234.76 -414.23 225.22 1098.89 235.76 -407.46 226.22 4D9i3 HBTQwpIM DyXA kspQ e5zb hiVzyP2 OBsvoIcL 6bFyY3m KHoU xfj3plGzR U8Xg AAjN 21JD4V l1zT 5KSs EnRqxeS5 VYGr6xK yJpSLF vekm fDV7 zazO Hfi80 TokgQLk 7hNP PQzR tesQJ AS3XC gjcK 13sQbXmRC Zp9R yk4g IRLC fFAv xJkE FfuQ zRDo ryyypdclL zLlp sr34 KgXm OAiv EJxzs2V U44B +1 1 86.73 -1015.54 -452.31 -1321.94 93.74 -1010.88 -451.31 -1320.94 orIbqQLzZ eMdOneX5 k3b9RUC LMHZb lcBa OSrsTV mRlSbWT8 9jw7 78uUueIPN C5Pw2KQ +1 2 687.11 149.05 1205.02 -82.00 698.48 154.81 1228.07 -64.46 g87V ElwAh4AHw jzStoD s8XS0 dyEr pii3 vYA9 nuEJG0mD 4jH9VnZ LtC6 s3tQ Phf7X0vFW hBQRO 16ev GwYA krT3 ALaY +1 1 -1330.56 231.00 175.25 1334.39 -1329.56 238.24 199.82 1341.58 stCe LQPu GinAbIO1 o691 3a6nu0 QMEdVbPWb E7JV VDqp 11sEgW A3tFYRR +1 1 463.08 -435.68 72.89 -1267.65 464.08 -433.45 91.80 -1265.50 m3Hb8 RI9nr3 mkqTwaA nqez d9dluN O33ocB3 8m5i plrQY1 Pw5r utdl +3 0 597.549988 5 -619.750061 6 -1015.680176 3 826.237305 7 836.237305 15 EeG 20 O3 33 Ts 45 T +1 2 2286.50 1312.81 1005.22 1319.97 2287.50 1315.95 1006.33 1320.97 05pWPEv gWbN E5Eb QyTE t8Jcj g3Bl 1O3sSc CnW9Ek ymJLjq XjOA LPz5pw kxg9 6R9K hpCI i2cTfjdO SwEH vPoq +3 0 -51.293671 1 -276.304657 5 445.604645 2 195.783752 6 205.783752 3 1412.128418 16 X0 41 L 49 q9 50 6 +3 0 -167.694061 4 -15.030678 5 -529.641174 6 -729.928345 7 -578.335938 19 w2 +1 2 -1692.14 39.17 -511.50 -139.60 -1685.87 45.29 -510.50 -132.14 Om1F iJR5qqEMF 9GBQp NJpXZZx 6yqg eelm gbpu Xp5Bb YMKKT2xnQ ksmDY JjXwT8 tG75 uaV63Wmp uYdk i9QDJYBo k62Q 6wtH +1 2 623.51 -652.65 621.54 688.91 624.71 -641.45 622.93 702.03 FPcI GoLzrpd VdAOM z1rC hSmC OrRzbG dFsjaSk SWGwu 8IRsdn Asfm5C rXu8Ltut g4yGUTKNe OXxi7 tdoahZlrX E47WW29 tb4P 1t5ZeB +1 3 -746.04 1027.12 -604.73 619.09 -734.59 1029.91 -603.73 630.79 JpiZEsGXX dbrx hX11 Ffd0Es8G 93kr egyvZ4IA CDhBgu 0uqT hxwr 8irTz Eqciuwp gEkOb RzUU3fv3 JWY6 ba1h 7WDK m6YjqNqh 3lSr R6I8 56ei haaQ LPhOC EKHv GvDF NyYm LVua 9mL9n4 a4UiU UN3XDgkO4 YUV3 C1yd tzQFUp63A kSe1 kIxxoh FGC7 9GuOQ aomm EoFx 3ed4 iGcH1 ErQ30I yK2s 5Rk1 +3 0 217.586746 4 227.586746 5 -785.522339 6 411.055725 3 1167.865601 8 L 12 bt3 30 49K 35 4iN 36 nw1 37 Zg 46 PR +3 0 1152.482910 5 -113.303833 2 -107.802750 6 -97.802750 7 -408.192200 15 b 21 55w 22 nWm 39 g +3 0 201.057556 4 211.057556 5 -60.409912 2 497.414337 3 108.881531 7 770.981934 12 00 31 k +1 3 -1211.19 -355.40 1025.95 633.02 -1204.21 -346.02 1026.95 634.02 oKeo FxH83 S0FuyxI AKl6 oiCNmi8 U4bUXgTk k4MvrfC vL8f 3Am8 amaz5 jTbv aFgR iyNB 2F4QFeWL pj5EZD3 jmBZ WbfgNkF iwjg 3hrd 4yP3 okHnP20 QL5oyOG tOqo i5i0ME j42ADXZ ooGU MP1E qGkCZyidS 1Upm sbHZQXNJx 0tox2ht 4wSM qTGly RWWevJK lTtR KDLD3o VbpCz9 KDdp 1oiSM2Y cJu9 b8j3ldJ0Q QKsO1vcyr MUppl +3 0 2014.410400 5 -1397.514404 2 25.321756 6 35.321754 3 1421.526611 17 4W8 39 WW 41 8 +3 0 -359.725525 5 -1037.680664 2 -130.980713 3 630.930054 25 K6 30 lHy 37 SF5 45 S +1 1 -2127.81 1513.40 -219.79 717.21 -2124.64 1523.47 -218.47 727.27 WfeO NWjA iQ32 YaUp j2xn h3gT qNN3 WJUL wY6XI2r1V rCDe +1 2 -151.78 388.40 764.44 -176.55 -150.78 399.05 779.49 -175.55 60gg y5fiRl3H hk6oq BzSP6T zDP6 jL7E YRuYlUZDo PCXs buQN2BK rM6zJ 0KZP 0aU3O6 Xi3VL qVB1 mWaS hZOPyCK fK64zi +1 1 -1208.82 -1332.23 -658.19 357.00 -1207.82 -1314.00 -641.00 378.96 iPgofyc7k KxzeYp pltiD BKOjjZDQ9 NiXq izKg nMgd ix91 KMjxTDXI XOCc +2 4 -363.003418 5 -763.088562 6 -309.498718 3 -645.773438 7 -635.773438 10 a 12 JU 18 w7 20 OsV 31 JU3 35 S 36 3 38 i 45 j 47 L 48 8vk +1 1 -324.34 -1981.27 -692.38 -405.62 -317.90 -1980.27 -691.38 -404.62 tOjOnWpP pBjh U9Wj 9y6g EHoDIM mCTv Sy0R Rt8K 4hXo53HER hfOXIvR +1 1 -1447.86 -577.99 53.56 474.44 -1446.35 -576.99 56.40 478.81 XB2A rHmF qQ2GBXXP2 Sp3t ydUK XY7V Kjrd aSki TynK9XPKQ levY +1 3 1036.79 -153.69 -858.84 1153.05 1037.79 -152.69 -857.84 1159.98 8ghe F9JoWkK XtW7 cqRBWW RFQe vZelz2mU m2WW 6Mdn UBKX04PY 5tKYCqkCX OlM6 P5d5A 8vPh Yf6lUD VHir y1NaD KGIE 3FA4 JDBK XbXlDZk6i 5I4r P1vn r7J9etY Jqje LfgX TATgo ZSkPLz uIt0A b4gDSofsu Xuj2LR9 s52G shLS FYR8 GIRT iKrK q3fAwNBzZ EqBM WcM3HY pMWD 29gk 2CeQVoNP Ga1S W2ikRc +1 1 -1173.66 1206.71 -486.28 -104.27 -1171.90 1217.84 -472.17 -98.20 9s6a LK5Z LhITEf D06xeYk kkP250 gzug 2GRR 5bdU d4W6iRR om0V +1 3 2248.41 1112.49 -657.77 -28.27 2249.41 1117.44 -642.25 0.96 B5Nx 5yi4 OiApm dsrq J4oR aNcT biLc ckv9TGxST 1VsV eMKH HdauL2mV 6c3QfxT6l cjA0 MufQT5 CHVNp kedZd kh8m QLHSL7xW7 NS7E 47ot LcyKh 6tse0 jqDv HIB5PX cAMq jgF6Xwim iRPXdwV tMeV SzuZ MMTc 0NHN k4ZjmIjE dtWRUaOAx bYYTdJsIq PRhD CrUx zJMZ Y57nIA 6jty 6zgD pOrf tO5bg A3hLotz +1 2 -80.01 1424.08 -1296.67 -389.16 -53.63 1425.08 -1295.67 -378.48 uNLhy0 xYn3 nVlxtSjZv 8xwm GMKC0 mWz7 7AKG aGKC IZ4hRsGP vo3R jRaW ESVBxn ScyjRo FemnYAhbU CLwZBR MKa1 15fR +1 3 601.77 691.40 896.95 732.83 606.89 707.23 908.33 733.83 G8Ss 5MzOU5OUo zPbh UJxD 97bZ tyAG aZEKuM rX42kA Gytl nezr8J G7YJ7gP Cnzc G7Sf zX0U 8Dq8 iOjl T43r0 RCVO 99NXsIeP n5JI fceqdGt9W OJhD cjyc CtPw8ob51 LGTW MaGy 5t1A xJVIh L1diix p9TA qD1AoggVe 1kMBN wLnvHVxM Ss2Y rxCA TpzLO69v z1kFT V89S Bijo 9fXG ozmq4a JXQI4ByBF gvMv +1 1 1631.59 269.85 371.10 -97.74 1650.82 272.83 372.10 -96.74 VN2UM Qx060z hv8ybs kxCP 11TQZ4 rbRL 8nOG 64JSn yc9lLnK4 tSNg +1 1 -868.21 -227.01 713.84 -839.53 -863.93 -213.18 715.91 -838.53 JAm7 9oIo XOfAfR v5XOlZPjO CRQM r3A3 iPonXuNnI rtiN Onb6ernt BUn2r +1 2 1413.27 -744.86 -942.36 298.08 1414.27 -735.10 -941.07 314.85 Nd5h RpQewVWn A8xWXFzF0 edHRKSm8 41HWLkV k4En kI1AdCl T2XC lsNb teNIec7 4wRI7o 4PHur6a6 1tp6 4gxPtB3jX WNwe3Ic 0cJO KiS2 +1 3 1258.56 2537.48 -393.05 850.60 1259.77 2539.25 -386.92 855.29 R05m E6LUITCHw hHvx 2TmQA9v 9Y1e qLbR CgdNv2Upx 3zdf 7btx LNx4IVlfp 85BdV syqU 0yJM xvPbDH palt 93186 Z9nO AzX89phIU v3MX8nBF bdraKkAeW Q00f4jVt GascBNbEi QCCe oPiHa5 tET9pjfT vQs3 vOcqHf QSWs oC1qnUtF PlT77Ac1 Ce5rZE 3mrmQ2K8 dlRA OkrSf0jGI bqAN tGbQYNRvg 71DK n9D1 upd2 89mkr BWCy EFjJjT7 wDmk +1 1 1068.52 -906.20 -48.40 1571.51 1069.52 -905.20 -47.40 1572.51 5dtn weUDE sDwrPt9O 68BG Ey6L3 jTzV XnGf7Z KDwY y3Lm0wwx8 YZX1 +1 2 -1107.77 136.95 -912.71 -1248.25 -1094.09 137.95 -907.48 -1233.95 VuRp FVFZ JUQs R9uV6 230M TD9JTra9t abs8 8CSCo5AD 0ogyCxI VMnzrLsln 3WnpDXbs Xkqfc2Rk4 i3jFik yU3a WqvFX RoO3Gc IZ8p +1 1 608.76 1343.13 -204.73 643.82 620.02 1357.01 -195.92 645.04 lxeUHf FCEvKCJD5 mQEs Sx3T eRKw qqIbqM KxEi M0Zb m2F0 4V7W +1 2 770.01 552.44 -90.93 973.11 779.60 557.31 -88.78 974.11 to3u McmWXisK EogD Tzc5 dKE5 RGjjDE ynP1tl UCYOQ 1Uxd9HYu f4GkJ7 RFao c8gG 3X2B8tLzy JMM8 JxFq XiNFN5 aV5r +1 2 83.21 1015.27 977.10 2241.36 98.60 1040.93 991.61 2257.20 0Jhvs tf31 6hJG XQTH SCVh ZPLzpKc02 UjfL5O IEwn 7iEb XM80v qED18m00I 8T8Zn N31mjw nNGJvr bULCHis klc2 934e +1 1 1224.72 1601.97 648.05 -970.51 1242.52 1602.97 657.36 -969.51 gdUL bC0O vLpQ 60Cpza1a YtqK tjlJ Dbf3 lcbU tdE7 rR2DoqAF +1 3 1128.26 1041.28 172.51 1043.43 1129.26 1047.55 187.84 1053.99 1hBkH2QGH D3Qa MlAn Y9cZ WHEK sRIYM wJdTN1rvb gEv5 EOpG u3Up pKnz DqMfXYI4 vDmm fpMH 5kpQ BR2e35s xkk5i5Bw EOnyAsPXO EaR4hAy MbqB L7lcQy3p nOkQZD91 dOz02Qt10 M8zbe w3z8 t24N JJuC VjU0 kxlu OLD8OaESL 4Hsz dPPg bq7a 99giCyn Sbgz iDoi vKb6s 5WWoh EtPE GDAi zGSX xrsLW4ftf zEKS +1 1 -690.89 -130.63 328.62 2305.00 -682.96 -129.63 340.12 2306.00 m6M10bQcn uWKT 1C39 NFCxdu8I1 G3yY UEWy 8qOd FzXzv4C RyNs TvRx +1 1 -1404.67 945.29 1356.21 1073.02 -1403.67 962.90 1357.21 1080.82 l9J4ympTn 9n9W wc16DXKu 605hD3QG gwICl LZxboy K12T oTDg77UC P92F 5mDYeJhiV +1 2 1022.48 -1120.70 1920.95 959.31 1035.10 -1110.24 1921.95 995.51 9At2MkdIP X6V6RbbZ rl26 OMYhhG GWn8SR4 SfMM KLOC26Tx ll7E az5y6Gv gbQ7L pyfRlEZAm TvgJ mIut ZcOOF f09E s43K p8m7 +1 1 465.05 475.42 -215.49 1823.10 466.05 476.42 -202.93 1827.91 XKsLR tCL7C0 l9MoH kSMqWBpz2 hvdY MOKelT NDEI VlSG 9PcA 0xuOo8NZI +1 3 -28.48 -1371.95 -807.78 -125.31 -16.36 -1370.95 -788.84 -119.09 hVvvqzncU QzvHfD3q jeYA gUYjYt WZ4C Uc2hsqt 7ZN5KUuO fgkl VPHme5F yJZp pLoG syeW C6gHO03Tl aEsEG QqWz gKBR IyQk UQjy MlL19uHsE 0EO6i 6ocV tHDn ItP4r4AZh YPQRGYboh 0YYC Dbdu7cBNt jwdz 3kMeSvWE ncfv IOSE NSQC vc5s Y3nOO Il0N RQQZxeC Ajw0W bkXx OKtG VVdH rR3q J8hL peYP V37g +1 2 -427.83 1020.58 -583.02 71.82 -420.71 1022.35 -582.02 72.82 YvL4 fPD5 z1Sm3 onnDwzh 4IbW oBNH z4L6QAO8 usN4Sq0 Kwun ARqpVODx U0LSa3 lLOB cmC4ee5cJ dkHu mzOp QIcn cv662BQyD +1 2 1936.16 1409.09 456.84 1325.07 1938.32 1410.09 483.86 1326.07 FP5Y T4Yq eBGr Dksr Dt4sjbZK tnEc fF35lEdi 9ebw E08Tjz7 vAdG oXj3 ddBc 73cu a1D8wC0N J5V9 aD2Cm920A zNHG74 +1 3 -3232.51 1329.63 -495.76 -639.24 -3211.40 1347.37 -486.07 -635.12 TsTWkQC gWGR hY3P HSMG 6oRy 0t0M 4KvV R9DU 1Htn7 TzJJ 0iZy q5eI WIOloNzb 4HKi YVbrHOj pPMR aKd2 MNJ8G eaBN7YpHi ZwYz uMEZ B6jae4L kxXbp5 h4yjMuuB0 9IDy EOEX 29I3s sTR7IPeaO oUC8zLwBP urK0 A3gm5Pj lc1K BQ7k b4QvU rYKB MSzv ZtrVKL lvj6p955 KAmz ZJ6k09wjr vlC6 iPqKkyt EF3C +1 1 -2627.35 191.86 847.03 434.69 -2612.57 194.15 848.03 435.69 qONMGQ6 N5zv 4PDWf TGv3Y aUbcKr N3bM mu0OTQ mz9v9SZp6 72BMCx HkOueY +1 2 424.50 -1677.91 -1073.21 878.89 425.50 -1674.90 -1072.21 879.89 V6mHNltFI BdGR 71BF AQHs IAhH UAJDxJ adfuiMc nx4FbX VwGl jnf4JO3 g10T 09EvPd lyxDj 7KL2gjRpV FwqzXPY USmMM SB4Ek69K +1 2 -1390.49 -373.54 -11.74 -168.05 -1381.74 -372.54 4.28 -153.72 b5BM O1F5 JYtf xIyx puMzUAsqD eIi2 JuYH VcXWYC1H 5C0g NReA 92pQwPZq3 WeYdw dKQH kCjXEvv dkGv uGdT MBV8 +1 1 -738.08 306.06 -1155.34 -1267.58 -728.46 307.06 -1154.34 -1248.68 nYn52Q y1FSe rMhY 1n1y8qp4 NBNM jBRtSivt n6O275sdY VxekwlDl hQB3 Kh4v6 +1 3 -449.14 -211.09 -1835.76 908.76 -448.14 -205.21 -1834.76 917.19 beaz6C6 Fz568MHQ lo0i zhxIHGy Ry7F 5TkO T2Cs 75MKmmk1i 8OuY7Y1d yIhEBX e8e282W UgKIaDy uCUvHJfEC Gsjpq Htmr 2rrH IfHZCO0I Ipn8 TCx639AHC FjD6R28p zc1P nx00 iyq8a 8YN7 Dc1n xl0P 93Y5 UBG8A1e avGpZ VZoM ceUTGroA 87Yq hyoC1 fN4G 7Yna JJhf R3uKa CZlZl2ho JaQFBN 704Rb bJGO HLC12Y12 OwGvniWvc +1 2 -1196.52 -1537.24 -1476.06 -549.89 -1185.68 -1536.24 -1451.11 -533.10 BJJck o9Ss 9psgH1Q4 4SfK9FaA0 Z8n9 owoawyy4 NwVeP tcqAf rjIU 4WIKcN 4umt YPlIJoYD lfo7 p7Zg ehmr xAB52vPGL R1mJfw +1 2 214.62 945.17 1308.76 229.00 221.87 946.17 1319.16 245.97 ORQw 7PCfy7 etcs FSJL vHLBUo40 MljTL9z vlUZ W6tH brvHr 88DD CrU9 8iX5 cQCquB Pfvw hipnX oND8 dXRJ +1 2 531.72 1284.31 625.44 -128.43 548.02 1296.12 645.61 -127.43 Tww5UiD QXS4 3MRbRSso 8WXkf903 Cv91 88eN3FGm1 tU58 Y9IC0f rmDEX zCoBriQRX StQyrdQ bR9Qf2ZV eKKQZl ohR4G5r0 dGyjZ iu2W VMOvpVB6 +1 3 -940.98 1086.83 -680.37 1009.43 -937.82 1091.56 -679.37 1013.84 P61Vrx BghD MjgrOrqKT 6CfkXB ElxR 8x0gR8wAl b57W l837 dZKO rpEqm 9T7I63 tojy 7gWcH 11mT szEZ wdkB iLQt84Ft MGXKBQi O2jM7V 3uIsHC Pg9I Qnk6 gRsk wx8K dGr9 dvtz3L 8VcKBjaq 1KQA Q3u8Ab Ov50 XHhe1Kg 0Zz8 VljA9 stWVXsAm dApF UCCrskT Txvr HKzq 1SVh98h6n IVVH nvkA sdIbj ztHt +1 3 -1366.07 -153.20 -27.75 773.14 -1362.35 -152.20 -9.31 784.76 N5HKs tCIF psiZ tIq2 CfEd HEfc 1xr0 uafF mxXm dkig rU2j4lt YtZo ykvvpj NGQf lH4P Sdoe PmmGMhN6 YaPZ 2Ysum h3mr nZMCcg57R baW2 XqyRS ANOO 6GSt M602 NwLo eZkG FjeE XrgqW9oe 6zxNSBmqY YBqr BR9h MAEdMUx KI9r JLqiL tsNd RQIy pygW iirI xyQjSE lofS Z1Jr +1 1 -404.44 -673.81 -1147.86 -202.00 -403.44 -672.81 -1146.73 -201.00 6E2sWwNf jefH IqXg xz52czDL wNsll6 TC1X ruJqUwZnC 3tLr 494B 1fezzII3 +1 2 -162.48 1111.76 1877.72 823.46 -155.55 1118.94 1890.43 832.05 nBZDoF OVcD6F6AC UPmE Q5Gx oHqA 9UVM xAQJ Np8kU Eu6W 15oKjM1sB jXjMj IjsH xO2O RlvQ NcAYj oI7K 1ugP +1 2 2147.32 -805.07 524.53 -700.35 2157.80 -804.07 525.53 -680.33 BJ2H jibCJ5Ln 8mpL eECk 9Os1GVaP 4WLgqas jgQ5kX7l tbX9 P7UpQIsq rbZ5PjGE 2AVr vcOc fDFQNc jM3j IW2l hWskm YnoCDc +1 1 969.25 416.04 -3.39 -1120.75 989.84 439.27 13.01 -1105.21 oOkV qziMO7G5 73Ke aeR2Vn qzaBv wsFGxHn zlUo 9vhN3Kz AkQL Vfrl +1 1 1679.57 -1014.79 585.03 -1375.41 1691.48 -1013.79 589.92 -1364.03 ZEBo6 6HMdIPt xPj8 mI4Ro 8L5PPX lgRW EboT8zEGE l5VIGi2 WmGUfS63l XTm9 +1 1 641.53 -1363.84 1290.76 -1143.78 642.53 -1362.84 1301.87 -1138.83 ap3sKi uFmVhS 29XY WXZ05 FuaPw mgH3OYqsa 7lpQ8 TI8W RLax gHwtHe +1 3 743.97 125.17 -550.55 -675.56 744.97 130.45 -539.34 -660.73 QtgrsLhRz Qt39j70 2Es03b U57Y U4MTq5N xPHSgoE xMlx 1EXl qJll W6oHj1 oRYH 1wUaey 0qTx QNcuMQ vXwAsM KAke CoddVJw rPQbuq DuoqL MrgJ CN2hlAFw T6E6 NbSVhi vE9t 4JCU z90R QgKb CWPZraLXk tiFLTW37 HjTpLHJ Y50GoXd1R wxISt DdZf7h8P ek8xl LYuD bZ43d wMqC SGYS WryW yzFI IKCw Wiat9Q2 Y4Y0JHY +1 3 1631.11 2046.27 2033.55 -338.52 1635.17 2058.37 2034.55 -330.70 yXN03X 5Oxx qawVLg lZwKcF 9AsxJeeAi AtdA gQ2p WpA4pTi lJSRI L7uu QoA10NJ h9egJ zXvT zSf5 UHZn 9geR0 tOKr uvpF cSCv67 4H30 zzDn4FaE PcSqwf yzn8 EHD1h wsri8XpE DTwbpO EQoqo uUYazK N1hpyULl AKJBPb 7NVg wl94n6P EgO0v0 K3zG MQVW 7lmzr pTUALF o1QOLRM keEihVRuA Vqym2ivi paHB YjhO3DN6 1ZvDV +1 2 256.00 -192.52 -458.27 1881.99 257.00 -180.24 -455.68 1882.99 cRgq eipK nHWC TEIUPYzAI 6gpB qPZP a6oS BEuDojxc FKWe rXGjrum xGNy ylYj GGbO SqX0 jrhd aE2k ZOjL +1 2 214.46 657.87 460.37 769.90 215.46 661.20 461.37 774.92 LdQuRwcU u9MHmPlf wk8fw1ei 3qXO aAWP lHJH TJzm 4DgO AnzAUNl WF0kf5 M4qs jZ17 YwxqI 00JOa TGur 7BYy97 r3UQ +1 3 219.04 1342.06 348.03 1178.43 234.87 1343.06 363.53 1182.97 3hryF aufclBWl fi3gi7 ErN4POU paNbSZ YNOS Ydv0 nQZvD rMN2fs7 QH7q r8BejQxS gtH89d5J hk2c 6egNdX zxb2 v3sPSD UBo7fN n6C7V x9vD4seBf y4li7dp q7gd JVq2 NA8E VYOPe fdfM M5yZ O3uzW 7EOe vw0O uy9E 3LIX UIwRWx FFtu YAOAEo 43kxIZ bdzf eFx6 Etan Kjh5 bEo43 xrOwr 6boDC1 fwXW0TJ +1 1 -1084.33 393.85 364.51 565.38 -1068.81 428.77 365.51 566.38 xlhMdNqQD yUs5 vFEM Ov38 tZuc9vH JfdTCSJD2 l69kDg4P JFSW PrZkfDe HbP5 +2 4 34.969238 5 -367.765869 7 -481.548767 9 MW9 12 z 18 3Lr 20 D 21 bA 22 L 23 do 26 F 27 fP1 35 j 38 5 39 x 44 A 45 TP 47 hMj 50 9V +1 2 -2123.49 -758.77 -624.35 61.56 -2116.27 -751.32 -616.06 73.80 4AC7FP8n cPmngSE07 X2MN rCyhJZNCZ WQfSs 6p57H4RId QCxL7ebjl dwGIj g7bv XhzG HPNZPz 404v WhkR frag uqzT ygUV rIODc2 +1 1 2121.54 -561.07 772.49 1014.45 2128.68 -560.07 773.49 1020.47 fHJU bz0gk x9L3g6 5sQf A2gjdLUDj OuvOXxcps m086 u4zBP 9QHn kTem +1 3 725.57 -103.86 289.26 -902.55 726.57 -95.83 290.26 -898.91 oxBGg d9qvysdKq BXpDxx3 Ptefz Ig0qdiJq RtS8 4lcL 8PitPrSdv 6tZLoU F12T3R cXPq fAwS Ftv3 0wwk r09a xNM4 bfbI OjAy pXMF mw7u XZVIC eO4c j09x 7aIFsAMt zbGgr 0s0R 1AwL splG O5zi 1yyk NR6nA6J eJvWppB BqV9 LsW1q tmnK tBEr RAIt hHgl toHotxM fHvef E99r1x1 Aglx E3Ag +1 1 -220.51 1107.85 -460.18 1948.05 -219.51 1133.19 -453.97 1953.59 XMzP Euk35L L8iMv5 ahql qhNFlYD u4tvNg7 wTTy EX7g aNt4INqAQ uX3sxSltX +1 1 -1783.61 -881.50 -625.59 1277.68 -1772.46 -870.62 -610.17 1282.28 6bVU1ossD RD12 R4ql LQQa jOhULYjr SqDV uCdA lIeah9r 0L1v mxqr +1 3 677.98 1550.25 925.16 142.50 688.41 1551.25 931.20 153.66 GVE4O6XFr pjOF Ehhp P3e6UV 2W5n iPE9 l1yI BjtTTs mePg 98GVO7 quY4 Rb7Yrt4y NujZoQ obR6S5M tTkL Jw5M C4WC 9B7c hPKHv3F l1TocYb54 OBdX s5OA SiW4HI bPkx Mqvhg5m VpAzarI NrFRHKCY FXKN GnvI 10vZ2M dF00 ey1X7Rnw0 Agc2 JXrX yCDGvFXVt nqEj ccPTU jykXDmSuw b3Jv oXQz MgVH eCeo jW0h +1 1 -113.01 77.08 461.28 2063.93 -99.16 87.88 474.89 2064.93 mzJsUn8CZ xSY9 gWuq r5nx NrcIcE mo7I ECHKJku fsEx mZ27bbzl u7zKc +1 3 -164.45 -1006.03 816.02 86.24 -163.45 -993.34 827.95 91.47 fxjVt FMm1 AhwDG 6b2p ikEM6gBlL XIF6 FPy2 LbZX PZjE yQv6 E0jC jjWb KnCE dAyLY tSql k5f5 7YVQ eAGB SeEOm qC43XJ NLJe kCfjr2NMx yNQ84 oGiPUzw2 c6yt7Jg vzHkqovp0 YQQoMK1 2hToW O0h0oG GZp2Fk 2lsGrWv7o fABOaJ hSjq3j UF70y QKK3 FS49 kFnDJ 7yqM 2nKu zjjq ZMdS HvHh iC5X +1 3 553.39 -536.66 1327.54 661.69 562.51 -524.17 1363.55 662.69 MWM7P T5y1tiE2 bXTn JNvUw j3Ga JLiOGE e6Dg HX16 gwaI7aE7m KEe4Yn3 lMb8H liHz wSqL 7PN49Mp3m FGNFNR s6dcy 8VqFYf YxoU Pvyl BMvP QYas qV3RjTs c5ciamEj evaI uT5q1 7bze 4tk6 qKZq g8XY ZDbqYQ5x rk4Y ET9dW BzJ1 LnlZ YApWtpwVF hHqj2U5 cxj3 pqJjv GfdQ mJIt I0ZD4xj nrZn jMyW +1 2 -1273.22 -264.87 -105.81 -453.49 -1272.22 -263.87 -93.09 -445.93 yl2QVUQ 0R4a d967 EnwP 60NNQ UWz2 pG1G gR9j47uf GH3uj74l FcpeKj 04GrOfB3 s1hU djg9UTf62 lhbn d2GWO8y tsw9dJ fRIQ +1 2 -1067.06 298.75 -602.73 -338.52 -1066.06 299.75 -600.40 -321.75 2EnU v73vLMASl PE06 9myA iVHR 1BmI v3ld khUV3c W0a7 SRDcWtbR YAIw 4LWVxVzG KPIUo vwlXhP cb1M 9Up43v2q vIzF +3 4 -1728.090088 1 -377.958618 2 1249.488647 3 -780.149414 7 -770.149414 14 5 33 N 35 VL 36 Kn2 38 eU 50 oqL +3 0 -441.004456 4 -431.004456 1 859.893616 2 464.565216 6 474.565216 3 500.307983 7 705.921021 10 V 20 W 45 B1 +3 0 570.386292 1 -86.779335 5 -76.779335 2 -160.240082 6 -150.240082 3 1007.939697 10 wfV 14 7M 26 Q 27 4e 29 T2E 34 COp 37 wK +3 0 1067.006836 1 34.443573 5 44.443573 6 -2434.550781 3 -844.182739 7 -67.540741 10 N 25 T3L 27 PEW 28 6k5 29 B 38 71w 50 Xp +3 4 -729.571045 1 1110.812378 6 302.446960 7 -1107.405273 11 gd 30 gs 39 vm 42 eVO 49 A +3 4 28.137878 1 440.734955 5 450.734955 2 2291.451172 7 -1509.997437 19 zl0 35 3c +3 1 72.566406 6 -590.340210 3 -992.497070 7 -982.497070 9 37 10 eH2 12 i 24 t 30 S 40 mn 47 s +3 4 -429.598236 1 748.363220 3 1386.863159 11 Q 24 z 29 SlH 36 G2 39 O 42 jyD 50 W +1 2 750.94 -1984.55 604.06 762.29 763.06 -1979.60 612.64 768.19 tJEMLYbW rtu1 rnlv SPkJ f3IZ jqrE9 sakrS zYJV wWBM cte9y n2U51s iBgmD4w wJI65HUDA N466P Vy0oofjY v3VHL7 wrzvb +1 1 1367.85 -578.66 48.80 1502.44 1382.97 -577.66 57.47 1503.44 EeOS 91tL qBkKcRkH x7xRjU Rsi6 PUlstC7BX m0bn TDm688J dZTTJBv ifNC +3 4 -669.330383 1 -433.394897 3 1561.986572 25 c +1 3 -1088.30 -1114.26 -409.99 261.45 -1085.17 -1102.22 -402.48 272.32 p7f47re Jom6 VYYL PGmD3 N9pe OA1l bh2z X4Xu igRANN suGdY3QX 8YvLXb PArc M5cFbfoJ fzjH 7WfaNLWp 6yTf TmiuOc Ot9HcC 6nP7 B6djHgK8 lKue WiXY av7t mYzCFydG DB0F33 Wvs7 eVgZ saIIkbq GHyQOFeR Oe7x pvX6 9Lz4P ktIhYA3 mg5ueuvX AxZGZI 4963 3HoUvHJcA 5zBL 3DQx9 2SRbpm83 sFx9fwGqm jRoniO l9LC +1 2 -1413.48 203.16 -470.27 720.87 -1410.19 211.80 -469.27 721.87 QLaJ YiBrWH xFa7Is0J aLeIgL7Sw SCgZh7MbP fU6o mi0N EOayfVJx2 4LJe PRZO sH4emqs Ey8SL fgys dBqLhO8EQ 12vGFK kjEG AfS5 +1 1 -659.47 203.77 1424.15 527.32 -658.47 215.63 1442.08 537.45 blzqt J2W26 mlzAu lX97 DeZb 8OxQ 1awSzf UGND RVT0kh Z0zQ +1 1 -1299.08 1143.74 -1709.89 -237.58 -1293.45 1144.74 -1708.53 -236.58 oc90 eWoF aHElz lRrsFGKw X52d n6o8 4FGz HuPrM bOK8 bXCo7mJ +1 3 -22.80 -319.26 -906.23 830.63 -10.93 -315.30 -872.35 847.51 GsEPmJ piOu rI2P gLA5 9zh8 yyBZQiW fbkGC LZx5c hczwSyDu SJf8 EWXvnCoU xYhE ljLJ dGuWRA5 xSk9 tVEu RkoN VdmB u5Io dNzQiAGb Fx4uy34Rs Qfii JUBN4 8yOOXS jBCf 8hzXDM KgJd ulR3lYF nM6j4B AL5T nHXC8eF qDbzu6Mf9 GdfRkzMDb r6JP6 SC9ujTsx 1fxKhIn7 QTluGc aEYS D8YLSg sd5H XYDs PA0zNl o7Ejpqtu8 +1 2 -566.36 226.92 -2044.98 -232.87 -554.34 227.92 -2032.64 -213.78 nP3b3Me 0rrV DSOk JwnmK47lC DxOuln1 MWlk QaDcgZ bomargk3Y lUmzmsU Wposq Ssh157F4 LRaq d61xmE 7B2N QR3H9YW snOCs yEr9A4tU +1 1 -1328.30 262.44 -1976.44 -1025.47 -1316.30 263.44 -1968.05 -1024.47 YmDT HrFEsb ngGVuUDiG 4kjtOx2h FZXr67mj loGM IEm1 eGbQ xdS2tW 3N15 +1 3 -573.08 -268.30 212.65 291.94 -560.28 -267.30 226.25 310.77 XbH1IVk Us25 o1lL waLnf J54f GKJMNLiS JL8nwu EJYsxbsT6 k9fz UBr5nx54R mfhL IpRC RgXe 5MLy v5Vt O39r pKFn 9rvH Uek1 2wiIj9jf5 iGoNQoqsn Xz4g CrRUyotnR JPFwP7r oh5z aikLjdRCc Tj8I qWG4FWOdU zOHC Fqqy Oasq OfMO UnrCzl cutrDwYPx IdWDSDXn1 UCmJ Ux32 yi0Y3 4As1VfVJn OGU0 zCaXah7P CP6K UYNqD2dT +1 3 534.81 313.60 75.11 118.18 535.81 327.08 76.11 135.23 t0RS MvGmdT zxTHxuA UQSx wulC m9dt V3wJ TPjgqE4a 4HqliO cv1ER2q YSWr 7qJv rL7k 5OUy lohG1 akgw nyZhWsch uOGB pZvtY f2Z5 ho2thEV dBkZ GQimuSK2 sHq4 21Nr C3PxD0S8P mDso oJALn L3lK 6zHJlYN KLM1 lWpX 7NWf4yi 9BEQ J9GobROsq wonNYdpxd lbBhy aOJ6jZ v4zMpfzZq jpiN xeEUsqiaU qwAF smhMvb +1 3 357.61 1093.28 28.53 339.93 375.36 1094.28 41.45 368.77 c1jxZuWw MAJl kSNk3 SfMo JKN6 V2S1W lYlggxCNK GwTc xOEs 1jqj wxBQ1Pe b6cU jY21 O45t bqOB gadEzpC 4Rj2 DiITq5 FXSQ NxLpgNpX5 NP5c ylYZGqyj XdBfc 4vYP TaA5 OtFW GoNh dXBudKfNp Gyez LwLN BihNQ4h fkZJ aUyJbRxLy j1MdtucNI XNii tNy23R 58Gw0bD1g lIVQ q2yv m19xFOb TDIHzYsg kG1B qH3w +1 2 -221.66 -34.39 -1601.65 824.37 -218.36 -8.45 -1587.54 830.30 j6QzHhp6E rrbO2Dud4 cF6Q7LWGO yy7d0hV lYHr 0nwA 9Jn1Gw3w lExP GJ694Bdm y5u5 bzTUzUyrv M4ANvxy WKyk 1Mky LCq4ZVL T99C BrPYGn89 +1 1 -473.81 249.97 1471.55 810.42 -472.81 251.32 1472.63 822.30 DzQd Jsjn SApMTALc ptvMO0 h6BI9eb FTNIeHiTY 86D9p2j keVo rs19 V1Rl +1 3 -1904.61 1992.59 124.39 -532.22 -1889.60 1993.59 142.54 -518.87 SyNwAN ltpr 2hs4 YB8GdW1 m6kh wICJKUu0e r98f Wz9f sr6mpI Mqxs n3gf v1Y0SmC 66v6WT5so 5QrTw NyCY5DniP LAysu6g2I 5Sny6dv Q2g9 mIsx7n v0Wl 7BUr DhPZ eETlk Ms1Z72 PmUB C3sf5kaOI SCAI 8fSQX YB4QUstaY SSqxGBY 6i44 cMkO0 9VWa jzZNEP 9aXGh drQR 4ECHW ZUJd3oeZg QyYk0M0Q kWRy p649L riuu UmdH +1 2 562.69 -222.17 170.04 963.73 575.12 -194.81 176.00 964.73 sCGJ xlP1 WvBJ or91sB VKdWIH iYJEN uocNWTz 2Hzo mr009sMIX UM5C KjQgw K3dD 64Zo 9IVJ qUa1 RFcd8F 5hPQM1DK +1 1 1112.17 334.92 -940.83 1346.22 1119.44 342.82 -935.53 1359.24 jY7TUtE3S 2lx8xPMH gIfV y2O86Kw pixt JsR1ShQ kP7BV79 dU38 swUv EbFv +1 1 1742.99 392.53 1727.33 573.53 1760.69 393.53 1728.33 580.16 CbRm 3nLq KgHlFAM VHof oQYPElkiM IrM7 hefz G8nrq opvbNNfRo BeNbVv +1 3 17.82 693.52 565.89 -774.89 40.87 694.52 589.41 -773.89 tXjw oqkPi79 4iG2 Xw9G hYGA 1U8k CoJ3 P1IX Y4XW xb1yszYG ghWUxaNSX RJ6g RlbykL ExF5gDkHY wbWwWn FIuEs vQBX EfV5fg i4uH3 oNKM TlAS cHs28ys3y O75R 2ZPTtb0O WTqG jASzC GXOT 29Nz YF0W yGFzy38nM gi7J2MN6 jBGzqgnU s74A stvqU a6UVswnLO O1fV 17hPvAB7 BscnID Wzivp Ai7cfXK Mn11K Od9ETv0n SQi4C +1 1 -1414.87 -463.45 -36.02 2373.36 -1413.53 -462.45 -32.08 2384.03 B0Qn fMVlB9ATH wIer daYtebf7 R75QCU ZZKy hgSx hM49 sO7IXReEK eFREQEG +1 3 144.58 739.04 -121.51 598.53 145.58 740.04 -120.01 603.43 qLn3 Ehuk Lttya UFpF FSDG 6goC zppi B17p nDFBK KrTj wHAS lYakBq2 yVc3 N4CE 7MKd IwjhV uQsA tg1k Aih3 6flyqlir anFGiB m4P3 nDud SzVY9 ZjA1 PfLq E1Bh N5OV ryfMr3I1o PKoqJ4OC vr5aD KN4UVET 4r4t rW2lYj gIsDP iKKL vRyNe ujoD lur3l1MgR P3qG4Gs9 7tSYC h2thww0TA G1eN +1 2 488.46 992.62 199.72 -1341.32 489.46 994.51 212.20 -1340.32 Zm2e 6hxP2F exrB nLHyHS bn5F CGbd J1Hd IzdH bi2O wRIi UKPJUlYqO OmtL pdJW1O40 0Q81rl CclyqDs n6wVfIBsE vqaraA +1 2 590.81 -1337.89 -657.31 1129.21 591.81 -1323.91 -643.92 1133.08 akw8k WEYOPhqW nu4G3ajol kbyv NAfg6qbB Ciij EXL3 toyJ fhCu qrf8 XWh61ei YNXT2GGHn Pf7e To5NA7Sl6 O8ZmOMD LGPd KKc7 +1 1 925.52 -67.67 -592.28 -611.85 926.52 -61.54 -587.46 -610.85 hSso Kcrc GChl5sy8 S7Gm rKBvq 0MyY dBTU jHQEgk 7Zdz jfU7Q1 +1 3 -866.97 -527.43 -102.29 697.50 -864.32 -526.43 -100.76 707.56 dndECJEu uBKwTVw teGX4s9 Mj52RpWch HVxjePwM xv0l 0ocl NBdg BK5sn6v2 9QjZ YZV1 fJT6 XKiI lJqd wu7u vTo9 TcGQ RfkEc1eQ RxqAoPo dJU2 E0GmOH7t6 DsZplL2Qx 1CTJ Zwkn ITz4n4s7 uo7s li4QvNv MbfnRY eIbvny3TJ OcxR 9Rr7KGQ c8I6BGtzO ZDFd CW00 DjUdO phTU kgrbrApcF lQYi cQAaLv28 ZAals fmVx DDRY nd0pl5KYT +1 1 166.99 252.84 -892.80 -180.90 167.99 256.50 -885.30 -175.80 dzBb Qh4U yMV20a xvfP BmRb EZt6 ENhT G5ri qM2B GgxIe2Fb6 +1 2 -0.13 68.51 993.36 -1299.20 0.87 71.83 994.36 -1290.84 gplX tInV S8ds pkxTqU4w H39C IvHtmBA OJvK BdztRTsL afEX zGGB 6TR1 h1mZ eOfeqk6Ap sCyX REMgiC 9Oq0 05Opafj +1 1 92.81 617.17 -138.00 252.60 93.81 618.51 -112.78 253.60 fomGqfIL adeR rUso a64TIxl nZ774fj sYwBC maAG BthK rBr3OLBp atMIi0Rb +1 1 -1842.58 -273.31 374.64 -561.24 -1824.77 -267.55 385.17 -554.09 to4u IKWX z6RVObyyU xGpj tzRY m2Qa JynrdFy nVmfiCXFW vJDK eDls +1 2 -263.88 -732.77 -1219.89 468.05 -262.88 -716.44 -1218.89 481.15 CNgJ AkOu sTNuPMj CGJcfK rLeO 0lUVwXKZ 6XxXuau BNFn9WV 4KsKJInW ReWu 4l5geMF d0wd 9Fx0 ORyqzW igFM ua1j T0lBV0hb +1 3 -533.82 564.33 -825.72 -175.13 -531.41 565.33 -796.86 -174.13 BYqo xZYB QeVAgScv Kgcv8 97nXgDk GlnRth lOLq21HN Vb6L V8GvYe8 cYhH Z9W2 gtjs5FNjC i11415 GmrI vWjU RpTkDk H5qOc ImjUNBt S7Wt ccQR JqqU8 ktmX eOIS B6Pdnt T1FF0a xqZEUjv hSOe t6IU vyHv g0ar wQVfjW gYod ptFkqR sm1tX 04Erd0B Xb4f9ijW9 MXDL Cxjn8s6 48VdWzj drh5 SBNZ 16S6 hKHy +1 3 -599.07 -375.47 -112.20 -375.88 -589.55 -374.47 -111.20 -367.72 QIoR w2rgWTAA vtE5 tYICksAaW xKQh YrGe G2711JUb BY5L rVvl 6jvt r8Uy tGRC 5VwVS0Rzb 80fmtQiqT 602gyDV U9ho onZY dDT6 lZp5XZ3C tZLe y1sdy WltotnkaY jpdU MTGe XNmQyg AWpHAdzCd P9QL9azj 5gkL Sl1H i12LWNs LA2W JSX5S YGJ3 0AcxQ6cEy UxdIrnMte i7Cz CMzchTb ic9G bsUY IMhNTpZAR ep6c rgqY 3QvVCjj +1 3 1846.34 887.74 -164.83 -142.85 1851.90 897.98 -160.24 -140.66 sHYn EtXhWSkA sNO9 gKJX BT9n ApET 1rBiXJ y5VM 3ka0 ig7j q6ng d76QV3Tf 3tAX zoT2Ng hH1s 9wZu HwCIbxEiB wMfP cMFqz 0mNr9C8 s1wQ0 BBh2 if2Z fswzZCM DTMp JEa5W4 JOnu p0PY KnUKxGiU7 dBuGqzr 5zTWrws LiQEVp Ri1G r74R qgbO JJc6 QtYfxprHO BvHyAmu I4LYeIxE oFBJ XYvj OyNu pODGxZ5iA +1 3 -1029.19 977.39 145.44 24.65 -1013.60 1001.36 149.96 44.01 k44x Wmdb JbWVH3IMk 5MzV7s ts0s Fit6 AE6fHf BJl7QGK O40H mxye jPuQ IXlY AfVEb1 0PYm BOf3Aksg WwoCsIwr qpr8KfVzy xrtDsf8 RQmN 73v76EX ZXNe n1LMuWWlA zPCvTsEB Bujy zPGe 0OGB f9B8lsrT kssm cK6kpteQ LhQ5 31Fso2 NNYw 3nam 4f7V J9Jq iNOv 2mCdrPP 00NB Elwf qCOlgwz 5oKxllQ6l 6ups LEwv +1 3 1909.58 1055.51 1478.00 -943.21 1936.49 1063.65 1479.00 -939.69 Otj68nb TVt9z vNGQtzLT dgvsHft 0fkjNPfl ND2psW CLgkq5e BB15UswB q4mr Lfb7Y8Yp gobj Lqbb Hdy4iUY bLPq fI4L QVho AjDT cIfJqt ALvD vCiKFF k3MGiu EhpD hgcw5 PNkd e1xe MFB2Kj6vh 80L3nSt A58LB ULWC 1I6w iVRSqb50U Tyk8d wani wxtUKhWxg 2dWdT9 ThuMu gm5l ayv0 I15e 7lrL 6yqr ndAl uV25jS +1 1 -453.53 -190.70 -223.06 -2218.35 -446.49 -189.50 -216.20 -2201.18 Xo5OB7 W9GX51dN VzLt o4PXA Q9Zl BPPn XhB4 koM2vskW iKpKH Ugqi +1 3 -1065.82 368.93 -591.64 121.66 -1064.82 376.75 -590.64 122.66 VeWZ Ip4G Ncx0 EobZsl K7ih9HzBp a6Oc M39XrG hqMC bF3NZr tDs0Txth xEtu BSYss FdAOS d5ya DlFz 1YV7 8lJi A5kb jz3O fTlXysISI BF7kb8 oPW3 5waOpDAZB Vdp4tnB dVEZ2e37 McylV5 jGmG LsQZ T655UPXa BUbA6mB9t gLmV UjZjqRo Y9yMjXriS oByH duBo0RB 1FFmr biT0gw2B lHy5OI2l 9XD29 pqsn 1X1E d7b0bg HI7I +1 3 536.67 3212.20 -1324.60 925.99 537.67 3233.56 -1302.33 937.78 0sf8iTB xfDjS9 2HxiBpV adMTpThK 5Gx0 TR7H2y mEy62 n2vn 6t4w qhuFE HsXjmY r565Vf8 i41a2nrAC EZmyp sMcfN9L 36i4w XjMa7YK aBUr mkhx 8ddF3WW DymiOc gyVOnXUC 4sIy OJVwWaXV 1TIUJlFnB iS74I 7MjK4jc eSSUbd PGrI 4sCS eSgEo SBXYa vdgv PZk4 d3RYylAh ziTqFxLT V2VX dyQ8 cCgye jEnW9 yercb9TS cY6pMX5 jr1lRnq +1 1 -1228.15 1120.38 -1756.74 1283.84 -1224.63 1129.59 -1753.70 1284.84 ptQf ivbV z1e9 BPEx 009b 9C5R dwV1Uvs RKfchVyX 2bxwbyJQJ dolMoPE5H +1 1 171.62 641.31 -1074.78 -594.02 174.52 645.64 -1064.58 -593.02 uKD8 jH5hCA 8reQJ VeCvGnjC bSJO mdbuh n4xH5X0 Q3eH1mC 6KqG TjXH +1 3 1821.00 -182.15 1097.85 -527.40 1822.00 -162.49 1110.02 -526.40 VNGzrx7 5Wz6D4 Jigm iBwY xkVl gCME Lcc7 kfff aVPCg rP0t 7flwZ7nuo S7Bj Svkk8 G3CZUBv OGxd c8rr Jwl3 iGn0 Wth2yf cwPH GtoT y3WLAw t4dt f40dYJ 7LCKiaY4 Mu1o5fpX 7szvC6TQd UDXIOEDL lZNphZin eYum 3zAmFmC0f 2q0GVGrm ouD4 Lbz3 SXJc APy2I33 quHW mxHC 4ApU7wh ZlJEcZ LOJXj NUPDCrD gCYT +1 2 1158.39 -418.83 -43.17 1988.45 1174.73 -395.93 -42.17 2003.22 VvyjYZlB1 tjtb q5Uq 7o9X 5CWi K5b9T O8H3 WnHs 52ODSfH HcGB DhLF P03Z87O XdoKKhC8I j5nte4dZd Ub4Ow 9vbZ QNRVM +1 1 254.53 669.26 -132.42 3405.31 257.31 684.02 -117.14 3419.79 IAZSUPxO Bj0U wFJW 9N6Tv oGlb 44Sku9m Sp5aNk 5el49h CIMY oaY3RzK3 +1 3 926.35 176.22 1016.52 334.37 927.35 193.41 1023.01 362.08 JGR8 A8Vxd8 k4jh T0gnDYIh 9T68o8 hOs4 8znBmkKCi eDpw GltLan 0HSUjI4IE ltRiVe06N uISNQN8rc G1uf DJlSsC 2TRuo sTWbN4ed umJc hlMc EwsBnMP AjKCwERl d229 OV4axU 4iOrUW6 Xd5VA CK3I6ByVL XyzjT SSLxG SUzNuV vpMF3nA ujthDG wobfItV o63P aVnW mcMJiOY8 fsPJ 7s0E CLrb fIessS 6G6b hCF6Y0DT HkvKR8o8 lomx NPsC +1 1 1594.86 -73.86 614.30 1523.74 1602.96 -71.45 615.30 1528.04 tBca LJMtBy pNCZ tfTi iijMt 6hq3Pj Sqpa ix7f XQ95 cscj +1 2 -1744.52 -553.48 -1014.53 -973.22 -1733.21 -551.57 -1011.57 -972.22 G0Y3 9f3H MCmcGWx k3YSfRf D8HM IvCSDWg KoCM VS91D VQAC EXY2 z5RPk coeCN fY3pqF83 pKiI6LWlT v0hO tmbNcys ROJglSZAS +1 1 -15.84 49.52 -622.10 81.60 -12.19 55.64 -621.10 90.53 rUSI2Em qwq9 NXPL LN91JBZh RVSi jiIzoj wVu4 QxQQUJ45 mEsLcx9wi S9zIf +1 2 -573.17 855.05 -1723.28 133.49 -565.35 856.05 -1716.31 134.49 z99qOjnM ZLXk lNnJ NGw3 3DIb sb77 irCVdFpY 63u3 j0toK3VPV aTJDgrMG8 ZC2r71 1UH6 bWUFnSEy FKFQ Af62 0Npo nkSxaM +1 3 -208.70 -502.63 -1271.16 153.24 -196.22 -496.00 -1260.32 154.24 q1Tr Oy5QOnj Cvrrd3NJj 1jAT Cr5W0X G19K fcWB xQJiKS19T KQIuw 6yQw uzRs 2owI tW07v8X J6Qy c2XaP DPP1W65 YNSF qfNDG 4UgB83Oa LhvF EJUt rN9L zgKi7WSF0 qz2A yWZZ ZxgQR ItUuoOBj VjrpVkQV fgidwe fdf0 Ixma9 fL25 1sbu 8CrJWtu1 AX3k3 DCW5 3KyJ0b si2TvcbKI WT2X iqbwO9W vXNdeqs PrFg efhuv8G7 +1 3 -33.83 -937.75 312.60 158.50 -26.45 -934.85 313.60 163.06 rTfI 6b91MJK sQPyq L3hi gn18 ZFst x7Wy Fq0yZ2l 5COo8tRNH NbA6FpV WlwU ljds P1yweFTW rx2CNXf vsyhn WEFt vQ66 vfca 1CAhd CNMD YtiJ K9m2zR 9AsIofY rcGotq9P EVPzkpXij Hcv0 pPSeR5Z 5zgI dWJi 0dDuCIi5z wP1bX61v pThD 4tlj Evut mwpy5 mMsz PNLQORx 9x8X 4LgI knLV tzEI 65Zv uYrL +1 1 -457.67 -51.06 -662.97 2663.25 -456.67 -50.06 -643.09 2676.27 sGcu3 Pq4q7z6Op oqTmuf FiUuPl9 kEj61X ubTUpW8IA zcPVt b0JY jDOo A9iWi7Q +1 3 823.18 2932.60 885.50 263.32 846.69 2933.60 890.21 272.39 58nzy0ub LQ7fmPvs yygf QDuuML rGvl SDIcjaEM1 Y8nQ O76l jgQq ummHGWV kYrxk08j 65cbvufY FsOEaH MGNzLW 2bn8RzYD IIb2FU 96vG yW8d kEgM hr1V njpPkwrdU M8EH9JNks Vi4q BBxY aEXT 11bg8I7p kTHh qww2Nz2PG moRd 0ppDcs30 vZJzzo 7hpStR qWlwJ XSHy GJGm OV38ve8d RiYg aJRu boRKW lOHxc AdF6 8jJk UDGC +1 1 1337.52 -128.56 375.21 -218.58 1342.42 -112.87 376.21 -210.09 JSeMecMp g2Eew BaBf9E1 v9Y10pdOF XcnH Sq0e zb96wuU IGp2 63Usv rb9y +1 1 -773.09 691.34 -446.63 1342.60 -766.17 692.49 -436.56 1352.52 ihTs zpm6 fWyL OQU2W aiLC 0uAs Pxov ddbO jwwP fCZm12 +1 2 -240.41 719.91 375.17 969.20 -239.41 725.58 377.06 977.17 qSwI76uzn XXXZh5Ph dIIw4NRS TdIy QdPo WGz92 nEWV S4ZO bhje Zii8W p3Jm 1RBI 3rcG21O KGvo rAVgd TARV weiK +1 2 -746.13 343.79 -1080.19 -982.08 -743.09 361.16 -1069.89 -981.08 c2SqOb Ok24 z3XF5Z tB6c ulDXB pmyS4PCaz p8XIiJLLz LCdo QIr9 R0uJdL BFWv H0I7Rk2di Pd9nGBp1 GTUjgVKQ mN5Y LMRp OA6YCSLZ +3 4 -481.134949 5 -1281.260498 2 198.090302 3 -260.155060 7 202.287140 9 qOw 11 I78 22 3q 27 Bk 29 jg 40 66Z +1 2 990.73 138.06 -919.60 -2210.98 991.73 145.02 -892.41 -2209.98 Hnv1p nBv3x106 3G6F 9XVe 0ahb1CG nus6oWB 943g d7XT yMUssIqk CsAy9ZEz WDvHMQEN e10S AqsaHiTOr w9UD 7g3B6klf gKI0 ZHmly +3 0 630.556030 1 508.101044 2 158.495163 6 493.631287 3 348.247925 10 p 15 jJ 37 zE 45 n 47 o6 +3 0 31.076172 5 -439.614319 2 -217.853210 6 290.761322 3 -136.563828 7 -114.980972 10 m 24 z 28 Yc 30 6 +3 0 829.804565 1 781.600525 2 623.129517 3 520.736816 20 2V 41 LGU +1 1 -432.20 618.19 -1170.61 281.29 -431.20 635.90 -1169.61 284.79 jJlH LIk93v2 AQHX scJlc0F5 VMilf8W F53xD gZ1Z XUso NZi6 U1A8 +1 1 -423.52 532.84 774.05 -1540.02 -398.52 544.33 777.83 -1539.02 gbi1 sbio TaSs 7mUdNilD DCfrWzC 4on1Ey YKvsb0Sy wjTw ECKd RyA1QfC +1 1 246.58 606.57 67.01 472.87 253.51 613.34 82.56 473.87 yi3z oVZgi RLlR Iz7IX yFUu o94J xOJh aBzMzU3RV MPsyiK rJdLL8 +1 1 -124.22 156.88 -1670.05 0.57 -123.22 172.60 -1669.05 1.57 QdmfX nny0K auIq gqGw tabg MJQa HKxO hyM1uqlA BfCtYyqO Hubq +1 3 130.22 -2276.97 -301.54 -599.10 148.92 -2275.97 -292.84 -585.60 GZee 04LVuZi Ubm9sbXB YMqYft NJni atp5 FTp9hd wPyg obEQ in0SQ 8aUru gl49Xipv zOB21a6 KBqQ 5OYK 63VEA pT9xRNGw CSLxkHIX EON0 KOkvwd pGx9 XVPHsYLaT 8vD3 kzICuN CxUy n8a6LoSTe opU0 1JCo H7Zb06dO 1Zle wMOE OLEe 5mazlu GV4H3Zm VGNvIC zrB2OWF C1dc0IzR ZJZ8QMVdY eI4Q RxVGSpjF RkCS ie50W soRJ +1 3 -153.28 347.04 32.92 393.77 -152.28 363.71 50.75 394.77 hEI5 6Xo0QW 6kob25Wt oAG2A tmqbaN 5ZDd2FF WKot rgpA pzgx oTCwtcz4 7I10 b3CT IZ4T PnSBTewio L7rCONdDo E6O6mJrpI 7BMb cf7lx WAIBKN x1Il dYAk68B5 lfcQ QQvK WpMAI 2pkw S0On PG8R v7KZrmT0t cxM1 cwPD8M4F4 a8LquObGx 5LhCs2Pz uf0sqpY CoixdFk C2s8MKf Orst LnWR YLMy yYJr FE8v nu47Ij1 Y3Pl xXCAd5kGa +1 3 162.32 204.70 265.18 2153.15 170.04 221.54 266.18 2154.15 TVp5Vp7t avVqoPvhu mqZx icTv8o q5IWKoH8 GaZd vgLp 2iUi 9Orv7GP esy2PScLv fHxd UZ82 l56k hTEGkAIDD fHx2I cOXz YA9B6SXB 92haChr zRW4 KbOKRU 3hSOvkgc j7n406 oMSb7 AUd1r Rc0Dl QY3F PA8s 0NsuMVqng cNlCDrSB E61gRpBE iMju YsrI WGFT rzpEKkR aNPL 8rdWZzB u6qZ zBme B0ScUF3U kWxKHnQ N7fGMvWE6 FAffjhTgH 7BDxlrVc +1 2 91.71 1155.95 582.49 137.33 92.71 1172.98 583.49 153.37 H2O2nDGy MEC6Nu wGQH HuGLi y64k Zn86 aCjn ckNI Osy0 tW2nFh IgtB PLsW uQAvhJNfB b3c2Wb1GX G58a i5XX9WoGJ GkZ0 +1 3 473.28 474.72 264.50 1211.23 474.28 478.69 265.50 1212.23 rP35 sesP DqkMK3 6Gxk2C4 lzdV QKQOt9nJ kcr0E4S HKaS61W op5F gfnVPfX 1vHP UyIH a6BFROv euIO pT52 hUdHPym bkmO zq7hlKnlD 3YN4 yLfyxICsQ liZA FrSR aaE4 P5PC OHpPrA76i Nu1Vulgog QHvD CIeQ yqFJ 4QRv kyqp 6Upy WKcKr8 9TpO dfag sNDg yRXHOM8 cBSU ldtApsWdV e960 OjVOkiJxB PsuQ zQph +1 3 -844.27 -2708.92 -1950.84 2619.77 -843.27 -2707.92 -1933.51 2627.15 l3EJ DkDVwgMK9 PnY0sP yIu30qA kZlzl 4I6h ZHzD fkfkxaf2y zvXVS kwohyG1 JnKd0 fhMP Ah75 1jFa Q4sc Gnxv 1cpE SKmF HxGX r4c6 P6bS D5lS 45Xc iPBa mf6LY piYWmIeI MdMaPLAN z50w ZH0OrPXCN 2ZTS9Dr k26O 8hXV FkPi 9MoVBa 78tY wWdPuz1s jFTMhq ODKV 5XHd sLex E8MX7 XJWiNl C8LqLgXi +1 1 -763.91 -1762.02 -397.83 -621.31 -762.91 -1756.82 -390.91 -617.90 aOeh xSTlDgGM gzWT nfk6ftS3b rT2TbF7 7Yr0 iHgb 1l18u ZvqhCee M33TWJoD +1 2 867.18 302.07 789.72 424.60 891.57 303.52 797.77 425.60 C6yU 9tQW v0oj tWsI ubmN PcSX uUt1 mo0W elee0f yDHo I6vH XD1G J2Uj nY0c64j m4hrv kq1x YimVsN55 +1 3 1148.62 -760.48 -931.66 499.46 1158.10 -759.48 -930.66 501.03 2mxn EuILs D7QCjYPj1 yOdX MhJh8uDP Icrm 7bIZ02XIZ 5vt8A2y A5Sz 1Egn 55hrV qk22B UzxgfeSw ZTOeUxSJ dANBsh 9eiW yMuXb9uLW raM0YIDs 8bCmJt3w2 cA9sO i1y5x resR PVnS USo6hP5 ct1c vRVg nc4eiavsF CfrKd SdWT UPeD 4dj9 q4C8 GC8RYWQ dkXKd 7hrY 4RZIC rwHQExF SZAY DqcV DGvyX7 NVRnHq2n 6TxV l1e62ge +1 3 -22.09 1081.58 286.66 808.87 -21.09 1106.41 300.73 809.87 H13P UmtrWqo vDgK osG1OpRQ Taj06 tLE0zLQv1 9gtKneHG M6BH yooGj nzRQffjR NdSyDL7 lxCpFuX Zx7nICFL4 06VY Vocy i5MfGqSJ hPiN OunC Bqfq QYK4G f5HE Ebdqz67P NgMF aecM DaGb Kr0x uQLy7L EPEAeXdXS n2XiRi4 jPum ySIg b5t6ky haVJ FQ5nGt6gu 2DWP c3MSE4Lc ns7J TNNo H5BUU AEEr iTbf IWuSvd AFtZ6 +1 1 -236.57 -1187.94 -944.70 1498.11 -235.57 -1186.94 -932.56 1512.73 vS3r 7k8oamN4 nUej CyAt kE5Fo 2lRtI ad2AqL xFAdcUio5 HXkd Oppq +3 0 707.648193 1 55.009220 5 65.009216 2 -442.917572 6 -432.917572 3 -128.660370 7 921.645020 19 hU 21 0Je +3 0 998.181152 5 -2337.191162 2 731.166199 3 1164.373291 13 p 29 o +3 4 -338.327698 1 1055.253418 2 1501.842529 3 916.491333 50 Xz +1 3 328.00 -1112.35 -1096.58 -1252.95 333.97 -1111.35 -1079.99 -1244.88 0Q7n toorBOn6 PLSc df0n 6wpmr xYga 0bX8Skfy NrsK kQxEH3lju JDoM nNpR 8L7OK1 OVy6 pZSEkYL qNKf lNj7 2LSv 3cA4x5kM sUx8k xXI4 FrUZJ cn8O ktmn ZI5U HKN9e8pkA C79J gBGP JbEhgC tj8q 4ZiHs7lw GqDlXv 99jf JIXG1D 8GUjym5 lHMy RxuI mLed 7AMI cO4S OsKt LNkN IzT6 kACEg +1 2 -1778.66 -840.44 -469.31 442.49 -1776.48 -831.43 -457.15 455.12 aJ5DEp lGK6Gl TexGY9IT0 HwFYecbNF huLw nW3X BIFF FPc8 rgRW kO8d kQeV R5jMocWR6 2r4Xz3 t2Rw D046jOC gZgP 95HU +1 2 -1119.64 -1706.25 1104.34 -482.20 -1118.64 -1690.03 1127.61 -481.20 FTsk iQwTO X6iCa8MIZ gzJhj g8xkcs bCl3fIc bbAQ vnj7 gmQf Ajj9 vXVeHZDv5 pJfsn eAsK loeJ3m 2zakCs aOpf I9L602oo +3 0 728.108521 6 -969.889709 3 779.431152 7 789.431152 8 Y7 10 yT 28 aL2 33 Cdg 49 j +1 3 310.01 931.14 149.58 234.79 311.01 937.11 150.58 237.93 MugE bSZgq5jB zuXS6pI Yevnp0Cq lpRC 06jZ RUnQL AIS2 WUtxVPrN BZC3 9oEfvgT6S BagD tjSo Byay Y6Ouo1 SIr18Y Yqd7CefEj L9aIJMxE NKjtOSI jyCcC9E5 uGuVmp 06g88 hLZa 7hZB jqWP V8Mq WKgA qEockab dRHO 6DrN Gu3O MZwBi WXT0 3EjQke rEi8 IKbf Q6MEE AVKj0dJ0w 0old qMioPSwb9 j0pRTpOD MA8a pm2k +3 4 64.439636 1 791.305054 6 39.713928 3 1542.010620 17 H 18 H 36 tQF 50 py +3 1 -389.830017 5 225.830154 6 -234.764771 7 -845.544006 18 EcI 29 th 44 uKZ 46 vDe +1 1 -975.40 -1881.55 -315.87 240.93 -973.96 -1867.82 -312.91 241.93 mlCF KdiW G9ucsoV9 qwP7 QFhq rIVq ReoM FNujfwq Szoy WkH5lOZfF +1 2 -1305.23 -93.88 677.29 -363.20 -1292.43 -92.88 678.29 -354.89 ZHGkGNB JqUoWezg bzecXuVk j970T9ron N0Vy VqH6 9PoX WhLzM K1OV EBdhjvOH xw6A AkSzJaV zDKL M90V6gCKr CdYW 361q oOYEPDDu +1 3 390.25 1517.79 1440.50 -1634.74 400.86 1518.79 1451.73 -1627.69 1Qne P2MguC 44zJ u6hP fG2u4iDF OyGIhWRY o4Vy y9rP GcK5933 ppv3 KW08 xy6ItA V8Mn P0Y8 lq7R BOTgHvek iIUq fROT KoxUs pVI4AOYB tCth ewceqY zMRuu1 KDC6hsdn9 PAGJcByXk BdwIAOV6c peMs uKvxRRF6H WMU2 2CZs sOSpJw4ie yxigGKw 6HtJtZ grVQVit YxZB KxlxM6 kx6ijr qDixcgD qpvTArsd4 fCyuM r0HRKHVtP F82L ARjPmT84 +1 2 557.82 -343.15 -762.66 -931.82 558.82 -342.15 -752.54 -918.03 ta448fovr TGFPkx ydVQ pf5Vj ABk6 AAuV ARmA le1NrY7J4 iISfJC NFPWxFMCm gkc8 hPruFIT GzUu 0aHwDV n2KC rhs8Q g6fiyM +1 1 786.93 -709.62 2916.54 -487.18 787.93 -697.79 2926.83 -461.70 0Zwnc1 Kvkk 9EK4R wr7n5dL WqeR mIsIb4r qiH4s vCkS L0SdZ6 W6aYG +1 2 48.99 -164.27 746.51 -991.06 49.99 -163.27 747.89 -989.27 oMiN t2v2Axk VqVWE u6XaN7L coHK GuO9e1Cf sOlo R8gxxadr F3kS iTD9ETG8B CqyLy HWR2p5ES LYJM ATZe tYu2 wUybBa gsmz +1 3 -56.30 -215.80 -1327.30 -591.05 -36.82 -194.31 -1326.30 -590.05 hyvSI4 hq0m 7U7i pKai2ab9 y2en 5m4VD VQ0f 25xkge bETBz slV50DwG GqWwm89Fv QBToZCCyq yxYLXQ aBlBvH zwkkO59 Rnjt JXxB wDHsOLnN H3Rw6 sPii bjRMe gRox dSK0d ETUj zGpy8fv a6F9L 1npA RBnxqgz LAmbIES G5tj diGT aIuE r9bz IlcJb9 6mToy Fp8b E5e6 P2cyQ soIxwrE ucTX 6eyQ WfQy tVGP +1 3 -98.08 19.28 -1043.59 63.49 -88.15 20.28 -1039.28 75.74 alB7 zhg65 WMWKv YMflqPe C8Px kSme w0cu2KIn odoq zedHX D75nL c0207a2mN diJyV t6i4eCCf C7J9GS n2qk IXDs JwSdOJx 07BXF J8nR cYDL 3cfVl9Q XNDJtUzt eaG2uS6p CHyF ixnek vJrzjenJb OGDx NGDTT5sc i8AIh9JP ADZB mOBw POjS hXB0T AkwF pQb5q HemB 0RpcJtlD0 q30k RqMX wjN5 oK1w RZKprkQW tLDt +1 1 873.20 -729.26 -1238.26 1201.69 878.42 -728.26 -1204.05 1202.69 jmYb JEr2 ConR u6WsB c6v3 ROgvmE A0xmUZX7 MFP2 80qzTWKsy V8OA +1 2 -1297.12 -484.41 -44.08 2602.85 -1282.95 -483.41 -40.10 2621.48 YicZ JGqUqPYO KYHneEwQ keb7 WszBpLuG 1Oqt QFgD4 NHtUn gw0OiAXey q90b7Pt hNyOqPE r7Zr Ga9U iBKw szwIVf DhpD Hxj8 +1 3 -2025.32 -1513.90 13.45 1263.57 -2006.27 -1512.90 14.45 1279.03 741o xJyt2wAr FxVxziJZ YECU pxF3 9IfnGy EVY8S ielF YmwE3j 0UTFRZYbq RmQVL6l fQeI qJi73 Gcj7 sYkW Qbct s3Ix UYBKj5 uRR6 SEYp7Z ducn PLX8JUqEX q8L5 c5S6pVOdi oI9R3 qMUqzPFR b12w f2tD 6zqk O49b CbXdk9 05h1R PBxb mAn2 1kzN 9Gdl VjZk wnfrPb7 QI0t Ld3U eOqFuyjs jcsd l7Xp +1 3 665.44 -344.91 312.68 -573.58 666.44 -333.30 313.68 -562.64 9zhS fMee DX68 Kzqkak78Y KPQQ J2eErF3 Z19T 0xm3 xcGF kNj3Epio IhCz nDGd By6u nM3co7Q IACZ BNw8 bsRX H8J4 UfcjF8t 55Pi mAXT M6zs T8tqLmLQO PNUFsg 6c2CIXcpL 8o2nts AIFG6rMYi sgif 2p8DZui Z89V Uvp6 qODjVfm 4nAf l6l7 78FP66xX KEHS Jo44 MEaSLkV mdKl nELuy wQER y19Fj70 0eutc +1 1 -2422.42 -1177.09 1324.90 -690.42 -2421.42 -1176.09 1325.90 -673.76 3Bp2afe cWgw t3ma ab97y iInmc I3lFD zvBqnrPjv JCgZ E4ui X3Zlrk +1 3 -2335.17 -534.94 76.37 337.38 -2324.53 -530.72 81.44 338.38 wV4A XTIcCJJ T5thwi2 ZWtRk6S pBbAhb9yF TUeX dzfz97ix4 BxOhGtwDM GlCp sNfRgtu Dd0cQ4cIq XKpvMk ZIifCQ4f5 HtlQaZUrs REIo Zv5G GqUgSc gamzLVU7Q 872T gMeS boQhG KaEzFql jhei 8HJq oHe2 EMlpOZG psqTiBXF j9Igpqjc 0SsIw wfTtBA4P L6FXId u0a8zFlf ykxqqW T328 Se9VB79 XdxP qzsp v3rc OrXt oMow TMqMhuY Uidp BMcC +1 1 1484.11 1080.52 1779.89 1765.30 1487.56 1083.17 1798.01 1774.54 zTX6jQWb Qd96 szfrmAXbZ Tkjb 8cl5Zvu Naly f73N Stvv sBgO6HNX NPjBEP +1 2 -316.70 -43.28 -640.97 1029.93 -301.83 -42.21 -639.97 1041.18 jVOw DJIQD Lbog gDxmPW ewatJhq aTRMZ lVaIHnbak 8k9PrU DNps BNHLKUx Tpva DV1PBxu oEMTRBHe kPScgKlTd aJxIMpnlN oqjx e8f06zsK +1 3 318.99 281.95 1022.83 -258.82 325.20 302.31 1023.83 -257.82 aRoP njwJiF QyXyPTEs N0rSr w1TCclSH Dvuguc6B8 9vNE rWhlD NIthx bD4W DbEKdOq qIG13 UoTi Q6Yd MG1WCwTY fEWX dEup meFg nwha q69dig 764QYpx1L G2Nn X4CO2g P1XmRZkNP yifI xlsqEwO aPfPv24 BB2xTHYv OLBVtdw rWRU USkz 0KXvg0 eqyU inZS4bE apzR tgXX eaam9c45 FMkw k3Q6rA tQJMjFpO 2Enc GAMc wrystfGZI +1 3 -22.77 472.26 677.25 768.24 5.68 473.26 682.79 771.08 9xOd7n JpNJ eBmba kxTmLcsHA sVQPvz iyag E1yB0CCY c8mH CwLAJ 5IASwsuK HShz dYK1t1oU0 pHi5nugkq 4rXt AaA6 IMiq wjcLG Ke267iI mevB QMds9 JjICfEw NZC6bo 25gO gv0dyvtJc 9VUSi 4Gx3T OmFs Ug2x rWSm IfzpSQXK6 ctFx61 Cxy6 euuXg ITiT Lacx AHAW WYRu XqHyU7BqI F7Fp MAWS mFf8 8u76 mVEEEptE +1 1 -458.42 -691.20 -430.19 296.90 -435.67 -688.61 -429.19 314.88 HTZ2 32OV eJ9vv55 E22YQMN YiRv 3fdWHSR6 LXp5S2SR SVdDEWWsA LbkQ j6x2 +1 2 134.81 353.41 -105.47 1844.03 135.81 362.06 -104.47 1846.93 didT KDb9k O8tL 0tyv 8d0S1gXVr Mhjb GnsCOb biekejPl rHCHL6f1a A98l NrORqbJ FfvC0Z AiZqC fGc8 kh2F4FLRl ZKc1 PPlN4Q +1 1 -265.37 -2608.24 -1435.89 -617.79 -264.37 -2607.24 -1419.90 -610.52 YdTgUz a77zrFUC gLK2 1aMC ZoGgO Ec24 0BPc mE7F oTvg m9Fp +1 1 -627.89 -354.86 451.81 63.19 -617.48 -351.62 452.81 64.19 4meL pBXJQk1 rhlJWSGpB 3Ad2 YA6i6 EJcGGBW hr8o kGqb AP6S UDDz +1 2 -721.42 -51.42 2527.28 -520.81 -720.42 -46.64 2528.28 -519.81 tAPF Z9Br QKCPdmGG y7Z4gXY WnvSNb lOAC UCPg ahmzS0tCf iciB 81vs Lo8u93S1c rOF3 Shj3 VtrTZPepL zkW6 GvcO FiK5DxQK +1 3 401.90 -146.14 1277.34 -841.18 402.90 -145.14 1278.34 -840.18 xozPwkB pLPrwPqr TBeHO4 EbQcwF poNb IoDW Etpy AaWi DfCMkE UepLkQAg 4LszvYUg roOivO6 HOPI1F VsnXuX0is 5sdo J7zXdliC Mqvk g4k2IsS7 KuoZ YoYCUHEsv 5d0b 9iDxO xZ4jw1x S2AH0m2Bt wAJk3co XfvzS4 9bGRuI ZGSC fad9HpLE 9LCs8Jho JvJd74sIQ 0NgxmXIV LJ0v mrvm H1fZ78O E0Fp 34fYZZTnD OVsVO XKZuOqR dAI9HeJMi lzp4 hUh4 vxlC +1 1 825.40 -193.65 -968.93 1773.13 856.86 -192.65 -951.15 1774.13 lUGaw POxmY ss5M2IxKh obOV OwMO31K 7AFHL 7PND8 OY1NQkQb4 DMS4 CdHD +1 3 -185.34 -512.99 880.65 282.30 -173.34 -511.99 890.13 305.94 iqGRK6xgc W9rJ j2Ze ZTWvfnjXb wCKn Kprs bEE6 FwOp 38rhu kKJF 0s5zM TyNbBsUM NIMQ WQq578 25l2fm9I 56xv rkryKB 3jH7 w2d8 oe5KklYV K2MC 97it7jNR THZpv JRhO ienq 4hG5swP m7s7Lx jFEi Ll5VspEQ mimn bnPeLf6EX u35xW 4zDF aXAjCbOKw YT6lA5MLY pGFNsUZ C9S0 Tm2y GpHWuKp6 p6uBe MG9rlb5 yRIL eKJ6 +1 3 -449.86 -502.18 -882.58 -545.31 -448.86 -491.48 -875.32 -527.61 mYBR6r aiijGMO rzFkG 40ZpYHqie G4dW 57BQeb rrJ8 7tnJ scg2 yAWJMMnCL mcHNtgXY 5OSUFuu 43QF OsDC syMyfNIKF L1iw S3xHo1 gYO4 QKa7 xK6L i8hx SwlR4F0R jWOU TlVqq 3cZL HGkK 6T8gp3H YN3f vNDhxdiu qPDqiyI j2xV2ZljF jEz6 nxEGrhJ3 2WIG m655 sGpq tIftC Cmuj D3T3N TUm3 wP4I T36fvX6D RslA +1 3 -1656.42 -16.67 -572.59 331.10 -1655.42 -15.67 -571.59 338.40 SnzmvUEE gsFY A2dbin Nl88YcMcE PnKZoody 7bGvL LZhp n5vv sdyzx1MOo LBvWws 0dsL 083x zShjf jw6cCYwP DSvQ 8RPm jCN8NI JVE3PoI sePWlq 0u2VIk vNlfw4 KCeJ xfpr XRwu Q8I3 lAvqC M4mu Zdxb SdKh H8RK vtHGQhVUQ DODplA83e G5VchAJ vnpS 5hYnEVF4 ti3zoB2 IdDSW v9wK neYOVcI JyzM jlBO acdD s8cH +1 1 -479.24 904.19 539.79 374.89 -472.91 905.19 540.79 384.51 RjsV50 NYX5Rh SNQ0 MDwok7pGz DvLn 4Ky5 4OW5GSml j6DindI GurA5v wR9zeVd +1 2 -1316.71 -350.45 14.66 495.10 -1308.30 -349.45 21.56 496.10 TwAX Ha8wksdpd ugMjAYQte 4m1z rpF1 nzbI XrIPTh9Bo pTsYlXQ8X 1UCP dD97DIUGl TJ03Of bMPT yq3Q PwnGD8 JeUg VYsg mzm68wKPB +1 1 -3268.70 265.79 -63.47 638.35 -3251.00 266.79 -62.47 641.98 GDZARCrbU Qf6C H9Io 02S0UHKM 7OBz qhC3 WYiU5AxI tF04 byda 5xxd +1 3 -0.72 -1066.78 1402.55 1535.41 0.28 -1060.41 1407.43 1536.41 7JN8 ogWR XuyG MAla 4kp3 hPN2YR xtj3r fwz3qiu xoI8 CBT5 9nvVMJBly cGn1 SVz68I9uR TFy2 OpsL xSdgU bHZs zZIO d0FbV4mu O05tUGx oOdK cU7Wheunk M1oi NXmMv1qSY GTt5 wXtFO ms76 BZlF xWvze OMI1 baE4 77Lu Kq3M 9CELPqHRK qw0I bepvDZeN ZWWJ aWMO 9r2oB TibGhqZz V4ED RBq5 ZnFG +1 1 1391.04 441.42 1608.51 160.98 1395.79 445.21 1613.68 161.98 Ngat LV4y ipqJ olcT qc22dxW mbOY cfBaLQ7t LwAO sl3kVrdP LqQBHELW5 +1 2 -242.35 970.10 1508.43 971.34 -233.84 971.10 1509.43 999.03 UZppPJZW RgHB dbsT 5snp FDg9 SvTig9r OjV8 S2pD chZd4hEN TR5s hWlFqM proh VCdmIT7gV HXt7da JbELe5O SFiyS l1gUagA +1 3 -308.97 682.21 1202.68 1462.73 -305.07 686.76 1211.85 1465.86 7bhu O4dr kIje WvFW fXbb unhGsDx nmWrVCeV jfwckz Dy1j4fg3R YyGu isTK 1a7l vlhEm 2agNEdji bKuCx p2oE uXAyHwQ V7Czh7feo YZ6QwCu Ws74 EjkL0z xx3gSmT8p uxrH0U3 H9LN uQTdbX N72V 4Cgl2TZv uIwy vh8RkXb jmbaC eDMl manFh a7gN FOYH sZuB brPw ZzPD Kopj Ic8N drzBJ0P jTZr DPj5 yfzUD +1 3 -311.17 -466.85 -252.28 258.36 -310.17 -465.85 -248.39 261.32 WZiJuo GPJMSruL1 SsdK NyHwwr soe5ppDX LHvn V3qp NtrN xD9p HkOP rIXaHZ DHlt yVeJ mSwde iBXTq zFkd Imr2tB D5bWS WPTz DbUB unxw AjqY hP0s SlKILRP TtSO ejDg wgGB B5Ej 9NSjQjrQG hoSmPj 8r4jMII ucHa A1bu 1EAS 8b88 rXjKuNFmK zYHD GhObXSvy kxh3yUIP vAH0XD83 smx9Un4 9xTfKeH1 hAHa +1 3 -135.55 -1163.59 354.94 1871.56 -126.96 -1142.07 367.37 1873.96 HF4U5q fOVa GzYIEx nk4GaU Jq6qOt eDYv sMigdmK i0Ya QIYc Fb3E 06RQ ggbH rxGR4 AqoR1 Kz2W wY1eEKwzr AINesz 1G0PeDdG LjgBnoPE EzVB OQfMuJk0p FUZX5Re Wfltlk MS4Ce o4pXS9 HAMYjQwv NllgZ w95x JqHkbKr2 uoVN 2egfl7Q nW66 NlRfxt8yI kQ9W JRMqdrP FHAyfT CKym gLNl Oneb9uxB IR8v6 1T4s4AUg X8V7 UNqQ +1 3 -837.68 746.81 -555.57 -36.44 -827.80 764.80 -543.65 -28.65 OLAyRYBFx CfBsLFsY PAIA QJc7rUXS 6dAbVJQJ 4P6u cjBI xBrs 9sQfGUI 2KjW MEmP 405v pNLV ifG8PUJ KHEp ElHbjEE 5fTIp7nt NqR8ZdU 6pukC f4L1 cCjPYD hwn0 LMLk Z15m z3tGB3A hUuO Iocx 8EU3 98z6 cJDYHamO Hy6Q5 apnZvvZ AjGGdVK dGn5 aCHP qVUzWF5 76Ja PPzgLitOy r3IL KNjAL6f Bzbq iLG9 bcz4lwde3 +1 2 -325.87 1848.59 718.13 -428.44 -324.87 1849.59 731.30 -427.44 SASGm5 cOYG jpWfvYIo JNav GX4oTr TuLh ZMmeMtrW 7TQEwpw yBp0 u3ho efay gtunMLox NJUW g6W8 87We YWK9 nv320 +1 3 314.43 2435.33 598.34 -899.96 322.55 2448.32 603.07 -896.70 P8Uq9mDg9 gv7iyP AGBuit1 FujlxM 0z1T8 kgmq KI2OVAv z2b3 RJXZJF2M rFWHC1 kcFtBhsc tfjK DZ4s Wxg3tolj 0VDD GHAB mrNf nnZ08ZM Qh2z 9HWvcvInC XEZQp2 YXV7 s6nz DYyM8 d4dx 99aq sJ1B ADcI SUyB vlCZb02AL CHHg Gzgs JFlkF LhMN e0l0CnEB6 TxVd fBjX4 iw6fYx o5LL L8fdb5r lwyIWwaL UyO8wO p8OgvmM10 +1 3 1826.85 1233.50 25.70 -613.05 1848.77 1234.50 26.70 -600.69 G1Gg FkOV 2D1D rhRrde0fr 5l5l1d2 5ykHhg1 De9N cZ9HzHf ufh4 fRbQMp 5kiNx6igN 6bRp 2iUW2 2j6G GY9uQ1 ZRwrJHQCQ OpBy6 KIqZgB Eowi3c Tpiy ig325c8 XcwF 0sN5tyMb Z1mfzW QdzQ 0pZn 6tatVR iri4 8ByI 4lLH a2tDR 7zON yH4j L4uLv7k vcM0A2k43 viwT LSC6 7VTM PPUrBCT9 Twio BGhL THBCKIjv1 1Vn3 +1 1 -1141.78 189.45 566.46 -239.20 -1140.78 214.55 567.46 -238.20 A17gv 5Jnrn NP5MuJRK 226jVNCC9 MdJGdRQZ Q6Sz BWGX8sB VHlH Es6unptkd feGH6oqEj +1 3 368.52 892.82 -313.51 230.53 369.52 903.60 -312.51 239.74 YSBh varMLQD Ljrt p7SEBH p54L336 ZGO8YXDz oRI2 w1py mRFRC nXKpxXPLX wUhl XooA dcUa 4AU0 TbVr OxFu I38Vqx dlK7 mcbBYRJ v29ic4WOh UldS35H yyjDbA jXZB dgPwl7yNu oj9w0 PyWM NTFXOUas Fv41 xSqcoH 9Bdo dmw9 anOmAtW 9G808C EMDW xPm2 cn97 TZnz XWYmMF9rB TkKWb2F ZYN4H8jI DhkirssRW ow8D UeT9tY +3 4 225.480896 1 -358.254974 5 -348.254974 6 451.954712 3 1059.205200 20 kF 27 xpl 35 i 36 Pa1 37 9 44 a 46 U +3 0 896.997620 7 -14.861206 15 Py 47 vX +3 0 -389.799957 4 -304.387665 1 1279.457031 6 -483.208099 3 889.682190 7 899.682190 13 N 15 N 22 WSA 24 fe 28 F 38 Q3 40 B +3 0 145.700439 4 155.700439 5 -392.618896 2 57.866898 6 67.866898 3 573.760681 7 583.760681 13 w 25 wo 30 E 40 q +3 0 128.305557 4 138.305557 6 -1943.827271 3 -841.530823 7 -670.558655 24 q 27 2BI 35 jWx 42 Qem 45 zlc +3 4 466.425934 1 -268.568115 5 -258.568115 2 462.432526 3 814.276611 18 t 19 1 45 9f 48 Ui +1 3 -1012.10 -497.51 -1617.89 -708.14 -1001.55 -489.41 -1607.66 -696.50 TQ4B 1aSh Gbc0J4 V7DyVd6Q bFrg eCC4gM3 t9B5 nc2t KrHtofqfQ S9ktPy 3bpA Zr0EY MIu2 lWoK we9F gjgd NhS19xL 9tOEqc 1VbdfFK Qmt0hlRic 9hAO xROIdVq tMrf KdijO z289uOBTN DWYDVGk YJnS7 gPEA24dvZ LsRu 5Bbupgq QLAzPu5 32pN f7HK pvYL o2R5 hc6z Th9B0o1P 6l4KVEJ xIYYZRkl DAHIBd25o RFiBl 1Onkfxji 0bsT +3 4 -1292.657837 1 -292.181091 5 -15.722107 6 -14.787292 7 -538.087219 20 Hf 44 97F 45 AZB 46 3D +1 3 -94.95 -731.96 1650.40 -1133.55 -86.28 -730.96 1656.47 -1126.56 a8Dw3Q yDfQ 2Z3M Q10M 5U93kNHwZ iVMq V8ED 4iW6 tIHA8Cjoj TpsS 2rB0 nCZEOX VuAl VRXg t6dgupqu 2unv BEwp N6KQ i5sb UgLiUa8 JBlbpVIv MTTVxrH9 5ivp stOf Iru3 l2L4u YkCQ m7nH 7E47 lso4 7Zps SURW Ulnu jBpD xSURKo gfP99k xeg2 UtKLVe3 PrmG Bs3u2rGtp qoFp AxVy VJjZz +1 2 512.45 308.88 -764.52 1702.99 519.19 314.91 -755.65 1703.99 t9j3PSkY WVHw0JLyN JU3j 94DE zh0d fKhI OhXgRC LGivVX eUpn mTYvWNo8 zw6LHpWDV 8m6Et3y QtRT TWVX adG8 ACq7 dSzi +3 4 -825.877319 5 298.624390 2 536.300964 7 -1638.293213 20 84i 21 i 25 LiL 33 ng 35 1LL 40 2 41 W 45 9Y +1 3 247.40 750.25 -129.31 1100.81 254.96 751.25 -128.31 1101.81 dJgo sKnHSyD f6yzp lbPh ojS2 nuG1 aUti w5HV uPTk 2X7Xw JVodcDkj AsOe ahtPrKl ZEZI dJMk wcdUPFr N13N HYCci8 S1u6 8dEW XdUfAvq osyFoRPVD Fg9sk ENd3PToX 85yC qzQVlJ nntf SSLq nF55sN pJaB jZRcd AZ4i 30t1 EqJs rult QkbDp q7FBWJP 9KS6OAFQ aEue CDUR sRJQ5Y2us ptNwrcZ w80E +1 1 -871.65 1810.84 -1459.85 1011.59 -870.65 1829.27 -1448.86 1032.81 QifTJvURL 4GdjB pcFan HpOyo bx2d W0Ad zoIGaK8 d8zO LrRgqU3B J2lD +1 1 243.09 -1561.37 -2016.21 1510.70 244.09 -1549.60 -2014.62 1522.20 EdKJFwpp gOLW3 1vwzfW urD6PGjY upQn g4xtX ARKe f9xZFCQ gnq0 uSXFTkN +1 3 -27.76 -886.29 2744.01 741.57 -22.70 -885.29 2758.09 749.31 tJAMML0q k8Y1ZX ePph3ViJz 2GhuN Vu8Y7Wa1 zLtD XEJi MSDM TK8p O2Muf TerVZYL Hi6u 5HrHnuApD mHMn ZLvI VScy1 cthyrK 42mebuH KKmHrtpH bgEB AfIB i6mZ c6Od5ab6 mUhN pmmy dctQc1 Wzdc 1J8Y ikjFxUQe EdVr Y83cp 70aY 2qu3mS Up6LY4S64 v7lW KmQj J0HAyLK j2qS BG0L 36q24Q bDM3LqN6 QpGo AhbpLdrIJ +1 1 -233.41 293.59 660.06 1123.26 -232.41 294.59 661.38 1128.77 qy6F2 kM75 3bIDz71 lIQo jCkJ3rX9 gzNMnzhc4 ZgP5 18kR ai2MH3 Lf2g2 +3 4 -226.904419 6 -1627.020264 7 -1356.295410 8 I 13 g7M 22 CV 44 Y +1 3 482.94 -211.69 972.83 943.87 483.94 -192.39 975.44 944.87 IxT5lMW 3ZVQ pg7y scFN yjqP QWLNzvc lfmLuh9H Up8W oGJSyVD uhhN CtNl jqpu N0Pps Z1es UwzwD 2enOFrHYx 9fLSGS6 1W22 rFCyjq HPtR XvSD 4sfdQ9H8p 4XRnOQvJ kv8TcWGZl JTYi QqPho fpPG rbBf FZtZ 4gkkh 9jDy hNs3bsnCl juHaQK 2vDP6YCqX AnEV vxPt 4Ux3 1Cqk KIn8 Huem ExX3 96s1bHzXE ganw0L +3 0 848.055420 5 7.513611 6 -568.724731 3 -353.071167 7 47.783127 24 H 29 ztc 41 by3 44 Sk6 47 ai +1 2 3324.66 -1404.14 -1559.18 -1220.13 3325.66 -1403.14 -1547.30 -1219.13 adOEC7YMP ha4r NRiL QmCKq6HP 29THZuZ4l 5kq7wrk Tr8y P5YNjpE qtAax 5mRdum YEyk YEce QBqFJHaAg bZKd8gEp2 AMFA QMx7SryB xJae +1 3 -784.27 601.51 -106.53 636.63 -774.43 606.93 -84.21 637.63 HhL9nYB2g VSx77mHn zZNjgICy kPAqlLH Di6C5 TKBD 487o UBhGx OdEF rHJo 9fYt rE2l abvl fgjO L65fViS8Z CEiYr rhwf Fe7Ph4Hn h0C9ZaxZ grfu UHTJ CnDu3 rlH1Ib 54QN urqM gxSeVlz hMAE8X 5XLk a7A4 DLyyq5Oj6 6H83 eDeb ZeM5Kb0QD aXv1 GKwhh5 VEc0C d5SSwMf QcQd3Dr QSU1 HdisK VxBiVT7 sC4B TNi7y9 +1 2 428.04 137.69 -478.96 465.57 429.04 138.69 -470.78 475.08 6kmV j2wq6HnWQ 4Gg6o 4t4d6fO dGYX JfY1 xljTHv 46xR 5cWQnx51 YvKe EFbt 1srVMWp shCS4rPRz SllnmG mis4RmN ySUz GSF6 +1 3 -460.72 -780.72 935.58 -13.69 -446.95 -777.31 947.65 -12.69 axvX wzQ9Z uBVE ayH9 8y56H1OA9 IQ3qBR WY4a t7iF MnmnD qqj2 DG69 JLmph7TrX zV6wtF7 Plylim5 NOd6MFxB p10X GtJme6 6Zkn6t ezDq o70DSGh UNHIyC 0R9b RCTESC woPGLw cnF2w35K 4miJ EcXwl 6yys sN0M uETFy 6Rs87fT dgc6i x87U C3ClGOeE iTfG K4hp dcFo Obua eod8ncxrY PMmJZuBFd jvMOv sldc UjTG +1 1 590.03 -784.54 58.71 1164.55 591.03 -783.54 60.00 1165.55 R0mT 5PPg tQrbR V92cBbD u7hI lSwH hLF4 DBGMphTJI dhUYIb dLeiD +3 4 459.706543 1 406.196289 5 478.603638 2 -21.832027 6 -11.832027 7 -111.840637 38 wa 41 vW 50 B +3 0 95.811668 4 105.811668 5 -737.889221 2 489.232971 7 -267.458801 18 M2 23 LB 31 12N 37 M +1 1 -756.87 332.67 -2731.36 473.23 -755.87 333.67 -2730.36 494.40 91Rgdcrw 4dWB oyI61vRq ckyd cqJi4L 8URd jccjD bJhAcjr8 0V8ER bQovMM +1 2 162.34 -536.37 40.16 451.89 163.84 -535.37 48.19 460.75 5HlV32i a1RfD VQ07 1TGQ BDpQfNv 54nlA Mx2J eu76 mVYc wHtz WWwv8uf 4yGXPrGN WY2D UI4NLe8 LL0L d5Lfc WvbTfKBn +1 3 288.39 412.07 241.82 1802.00 289.39 413.07 271.32 1808.29 6j7GXDzV HdGB smdTX D5n7 k1gP 7zEJ M0Ut Q5zc7v7w C0ls z1OWLuca xj0En239L jjwp VHgQ piMV80r3w 01Mm EbiGo7Qx tbE2 zLLZ 6rxm1jjXw h7el kblG p057 qMdtU SBBK Zvmx F21eV sexg VT3HoJV ZThu3 tywS zF4qRgn6q CZ0iZz 4PC9 JVgZU CqVeisJ eskuWQW HAh8bbB0M A34A YgnVPw b3vg aDxd dIBy HDvy +3 0 1904.969482 1 -244.127457 5 -234.127457 2 -238.666550 6 -228.666550 3 490.328278 8 Y 20 6 22 I 36 M1p 38 o5I 49 fZb +3 4 86.073105 1 2165.320312 2 374.078735 3 -236.558884 7 -118.061691 10 ySJ 12 Dbc 26 vve 27 AkT 32 sw +3 4 -123.522522 1 307.255737 5 317.255737 6 -778.389587 7 -300.417847 8 q 13 9 33 H3m 36 cWd +3 0 -7.620728 1 6.713577 5 175.320023 2 217.316971 6 227.316971 3 -614.040405 7 89.089508 12 JX 22 Ge 34 pBK 37 V 45 HAc +3 4 -1142.025391 1 -102.822937 5 -92.822937 6 -379.921082 3 -386.352020 7 152.940460 12 6 21 dQ 32 K 38 wg 44 X3 49 WU +3 0 1425.664062 5 -411.690460 6 -241.363510 7 156.037170 12 R 22 Eg 35 4V 38 IXm +3 0 1119.539551 1 -260.696838 5 75.435066 6 -797.859192 3 165.310028 7 442.138885 15 e 31 9Nc +3 4 -1324.194580 1 -274.831726 5 162.786865 2 732.379639 3 494.918579 13 N 22 HS 31 Q 40 nBb 41 y +3 0 140.141678 4 150.141678 5 -681.972839 7 -863.331116 14 2 15 H3 39 ar +1 3 -1534.11 1056.62 -1546.77 2053.50 -1533.11 1057.62 -1543.34 2060.46 jOaS om5V 78GLQoSSn Nt7C qYCn T82W9 pCl9 MWLI B5GL TaoI ESBCtQM 85rlg C6tv ylc3pdIYV hYTC kuP9XP 204q gQrgk FeTA MKnF 1T934z pbGNF1jFV 2Ffy MIVq Zdv8T zWac LNQGhGN jN55iKPwx Bdh7pP0b dgXb x64nYKk GmyP PMJL Vbus GUd2NK n12765w zf5In0ucc sl8AoKQB qOrsb PywI ne12KJe lDHe Qus97Y +3 4 -1049.095215 2 467.724640 6 477.724640 3 846.014709 7 856.014709 16 HbX 20 1U 23 Mcb 34 2gN 38 m +3 0 -189.976288 4 -179.976288 1 -16.725330 5 -6.725329 2 855.734802 3 1063.138062 32 nZ +3 0 189.330475 4 376.358246 1 1020.373535 2 482.903992 3 994.783325 9 A 20 e4Q 24 3U 32 M +3 0 1236.788208 1 -306.502411 5 -296.502411 3 -994.652039 8 8Ix 20 u 36 uR +3 0 246.822861 4 256.822876 5 -870.016541 2 695.262695 3 -498.745544 7 845.615662 11 4 12 Pke 15 C 43 n +3 4 151.276825 1 -397.070282 3 874.845032 29 4y 34 xHn +1 3 41.94 637.72 571.35 -2653.56 42.94 650.07 578.60 -2652.56 G7TDc LYq2 gt