 or Foundation?
There are a few subtle differences that can mean one structure may be preferable in certain circumstances than the other. It will often come down to the personal preferences of the individual establishing the trust or foundation and/or those advising them. It may also come down to what the trust or foundation is to be used for and what assets it will hold. The key is that both foundations and trusts are extremely useful structures in the context of wealth and succession planning and philanthropy.
An original version of this article was first published in the IFC Economic Report, February 2019.Colgate-Palmolive Co. (NYSE CL – $67.00) said its sales slipped 8.7% in the third quarter to $4 billion, hurt once again by significant currency-related headwinds, though profit climbed during the period, helped by cost cuts, increased prices and a more favorable tax rate. Overall, the company posted an adjusted profit equal to $0.72 per share, down from $0.76 in the third quarter of 2014, in line with consensus, but slightly shy on revenue estimated at $4.07 billion by Wall Street. For Colgate, roughly 80% of revenue is generated abroad and foreign-exchange volatility had a 13% drag on sales. Sales in Latin America fell 11%, while volumes fell 1%. The region accounts for 27% of the company’s sales. Colgate has raised prices in recent quarters in an attempt to offset the hit from foreign exchange and sales would have increased 5% on a currency-neutral basis. Over the latest quarter, Colgate, the maker of its namesake oral-care products, Mennen and Lady Speed Stick deodorant, Softsoap and Irish Spring and Science Diet pet food, said it raised prices 3.5%. The company also has been working to cut costs. Colgate brought down selling, general and administrative expenses to 33.7% of sales from 34.2% during the same period a year ago. Excluding special items, gross profit margin was 58.8% in the period, an increase of 20 basis points versus the year ago. The company’s operating earnings record, over the years, has been solid and consistent and its return on capital easily exceeds its household products peers. Defensive-minded investors will like the stock’s low Beta, its long annual dividend streak, the share-repurchase program, high profit margins, wide geographical footprint and strong positions in its respective markets. The shares also yield 2.2% at current quotations.
<commit_before># Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse
import http.client
import os
import re
import subprocess
import sys
import time
import traceback
import urllib.error
import urllib.request
from textwrap import dedent

# Example: Checking out Revision e441a99009a557f82ea17ee9f9c3e9b89c75cee6 (refs/remotes/origin/master)
reGitRev = re.compile(r'Checking out Revision (\S+)\s+\(refs/remotes/origin/([^)]+)')

#         Policeman Jenkins example:           [Lucene-Solr-7.x-Linux] $ /var/lib/jenkins/tools/hudson.tasks.Ant_AntInstallation/ANT_1.8.2/bin/ant "-Dargs=-XX:-UseCompressedOops -XX:+UseConcMarkSweepGC" jenkins-hourly
# Policeman Jenkins Windows example:      [Lucene-Solr-master-Windows] $ cmd.exe /C "C:\Users\jenkins\tools\hudson.tasks.Ant_AntInstallation\ANT_1.8.2\bin\ant.bat '"-Dargs=-client -XX:+UseConcMarkSweepGC"' jenkins-hourly && exit %%ERRORLEVEL%%"
#               ASF Jenkins example:        [Lucene-Solr-Tests-master] $ /home/jenkins/tools/ant/apache-ant-1.8.4/bin/ant jenkins-hourly
#       ASF Jenkins nightly example:                        [checkout] $ /home/jenkins/tools/ant/apache-ant-1.8.4/bin/ant -file build.xml -Dtests.multiplier=2 -Dtests.linedocsfile=/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-master/test-data/enwiki.random.lines.txt jenkins-nightly
#        ASF Jenkins smoker example: [Lucene-Solr-SmokeRelease-master] $ /home/jenkins/tools/ant/apache-ant-1.8.4/bin/ant nightly-smoke
reAntInvocation = re.compile(r'\bant(?:\.bat)?\s+.*(?:jenkins-(?:hourly|nightly)|nightly-smoke)')
reAntSysprops = re.compile(r'"-D[^"]+"|-D[^=]+="[^"]*"|-D\S+')

# Method example: NOTE: reproduce with: ant test  -Dtestcase=ZkSolrClientTest -Dtests.method=testMultipleWatchesAsync -Dtests.seed=6EF5AB70F0032849 -Dtests.slow=true -Dtests.locale=he-IL -Dtests.timezone=NST -Dtests.asserts=true -Dtests.file.encoding=UTF-8
# Suite example:  NOTE: reproduce with: ant test  -Dtestcase=CloudSolrClientTest -Dtests.seed=DB2DF2D8228BAF27 -Dtests.multiplier=3 -Dtests.slow=true -Dtests.locale=es-AR -Dtests.timezone=America/Argentina/Cordoba -Dtests.asserts=true -Dtests.file.encoding=US-ASCII
reReproLine = re.compile(r'NOTE:\s+reproduce\s+with:(\s+ant\s+test\s+-Dtestcase=(\S+)\s+(?:-Dtests.method=\S+\s+)?(.*))')
reTestsSeed = re.compile(r'-Dtests.seed=\S+\s*')

# Example: https://jenkins.thetaphi.de/job/Lucene-Solr-master-Linux/21108/
reJenkinsURLWithoutConsoleText = re.compile(r'https?://.*/\d+/?\Z', re.IGNORECASE)

reJavaFile = re.compile(r'(.*)\.java\Z')
reModule = re.compile(r'\.[\\/](.*)[\\/]src[\\/]')
reTestOutputFile = re.compile(r'TEST-(.*\.([^-.]+))(?:-\d+)?\.xml\Z')
reErrorFailure = re.compile(r'(?:errors|failures)="[^0]')
reGitMainBranch = re.compile(r'^(?:master|branch_[x_\d]+)$')

# consoleText from Policeman Jenkins's Windows jobs fails to decode as UTF-8
encoding = 'iso-8859-1'

lastFailureCode = 0
gitCheckoutSucceeded = False

description = dedent('''\
                     Must be run from a Lucene/Solr git workspace. Downloads the Jenkins
                     log pointed to by the given URL, parses it for Git revision and failed
                     Lucene/Solr tests, checks out the Git revision in the local workspace,
                     groups the failed tests by module, then runs
                     'ant test -Dtest.dups=%d -Dtests.class="*.test1[|*.test2[...]]"...'
                     in each module of interest, failing at the end if any of the runs fails.
                     To control the maximum number of concurrent JVMs used for each module's
                     test run, set 'tests.jvms', e.g. in ~/lucene.build.properties
                     ''')
defaultIters = 5

def readConfig():
  parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,
                                   description=description)
  parser.add_argument('url', metavar='URL',
                      help='Points to the Jenkins log to parse')
  parser.add_